UNPKG

2.84 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.7.0\",\"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 -o 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 && yarn e2e\",\"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, 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__, "updateSiteConfig", function() { return updateSiteConfig; });
49055/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSiteConfig", function() { return getSiteConfig; });
49056/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConfig", function() { return setConfig; });
49057/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getConfig", function() { return getConfig; });
49058/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sanitize", function() { return sanitize; });
49059/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addDirective", function() { return addDirective; });
49060/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reset", function() { return reset; });
49061/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./src/utils.js");
49062/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
49063/* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./themes */ "./src/themes/index.js");
49064/* harmony import */ var _defaultConfig__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./defaultConfig */ "./src/defaultConfig.js");
49065
49066
49067
49068 // debugger;
49069
49070var defaultConfig = Object.freeze(_defaultConfig__WEBPACK_IMPORTED_MODULE_3__["default"]);
49071var siteConfig = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])({}, defaultConfig);
49072var directives = [];
49073var currentConfig = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])({}, defaultConfig);
49074var updateCurrentConfig = function updateCurrentConfig(siteCfg, _directives) {
49075 var cfg = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])({}, siteCfg); // Apply directives
49076
49077 var themeVariables = {};
49078
49079 for (var i = 0; i < _directives.length; i++) {
49080 var d = _directives[i];
49081 sanitize(d);
49082 cfg = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])(cfg, d);
49083
49084 if (d.theme) {
49085 cfg.themeVariables = _themes__WEBPACK_IMPORTED_MODULE_2__["default"][cfg.theme].getThemeVariables(d.themeVariables);
49086 }
49087 }
49088
49089 if (cfg.theme && _themes__WEBPACK_IMPORTED_MODULE_2__["default"][cfg.theme]) {
49090 var tVars = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])({}, cfg.themeVariables);
49091 tVars = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])(tVars, themeVariables);
49092 var variables = _themes__WEBPACK_IMPORTED_MODULE_2__["default"][cfg.theme].getThemeVariables(tVars);
49093 cfg.themeVariables = variables;
49094 }
49095
49096 currentConfig = cfg;
49097 return cfg;
49098};
49099/**
49100 *## setSiteConfig
49101 *| Function | Description | Type | Values |
49102 *| --------- | ------------------- | ------- | ------------------ |
49103 *| setSiteConfig|Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array|
49104 ***Notes:**
49105 *Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset
49106 *the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig
49107 *to the defaultConfig
49108 *Note: currentConfig is set in this function
49109 **Default value: At default, will mirror Global Config**
49110 * @param conf - the base currentConfig to use as siteConfig
49111 * @returns {*} - the siteConfig
49112 */
49113
49114var setSiteConfig = function setSiteConfig(conf) {
49115 console.warn('Setting site config');
49116 siteConfig = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])({}, defaultConfig);
49117 siteConfig = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])(siteConfig, conf);
49118
49119 if (conf.theme) {
49120 siteConfig.themeVariables = _themes__WEBPACK_IMPORTED_MODULE_2__["default"][conf.theme].getThemeVariables(conf.themeVariables);
49121 }
49122
49123 currentConfig = updateCurrentConfig(siteConfig, directives);
49124 return siteConfig;
49125};
49126var updateSiteConfig = function updateSiteConfig(conf) {
49127 siteConfig = Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])(siteConfig, conf);
49128 updateCurrentConfig(siteConfig, directives);
49129 return siteConfig;
49130};
49131/**
49132 *## getSiteConfig
49133 *| Function | Description | Type | Values |
49134 *| --------- | ------------------- | ------- | ------------------ |
49135 *| setSiteConfig|Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig|
49136 ***Notes**:
49137 *Returns **any** values in siteConfig.
49138 * @returns {*}
49139 */
49140
49141var getSiteConfig = function getSiteConfig() {
49142 return Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])({}, siteConfig);
49143};
49144/**
49145 *## setConfig
49146 *| Function | Description | Type | Values |
49147 *| --------- | ------------------- | ------- | ------------------ |
49148 *| setSiteConfig|Sets the siteConfig to desired values | Put Request| Any Values, except ones in secure array|
49149 ***Notes**:
49150 *Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any
49151 *values found in conf with key found in siteConfig.secure will be replaced with the corresponding
49152 *siteConfig value.
49153 * @param conf - the potential currentConfig
49154 * @returns {*} - the currentConfig merged with the sanitized conf
49155 */
49156
49157var setConfig = function setConfig(conf) {
49158 // sanitize(conf);
49159 // Object.keys(conf).forEach(key => {
49160 // const manipulator = manipulators[key];
49161 // conf[key] = manipulator ? manipulator(conf[key]) : conf[key];
49162 // });
49163 Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])(currentConfig, conf);
49164 return getConfig();
49165};
49166/**
49167 * ## getConfig
49168 *| Function | Description | Type | Return Values |
49169 *| --------- | ------------------- | ------- | ------------------ |
49170 *| getConfig |Obtains the currentConfig | Get Request | Any Values from currentConfig|
49171 ***Notes**:
49172 *Returns **any** the currentConfig
49173 * @returns {*} - the currentConfig
49174 */
49175
49176var getConfig = function getConfig() {
49177 return Object(_utils__WEBPACK_IMPORTED_MODULE_0__["assignWithDepth"])({}, currentConfig);
49178};
49179/**
49180 *## sanitize
49181 *| Function | Description | Type | Values |
49182 *| --------- | ------------------- | ------- | ------------------ |
49183 *| sanitize |Sets the siteConfig to desired values. | Put Request |None|
49184 *Ensures options parameter does not attempt to override siteConfig secure keys
49185 *Note: modifies options in-place
49186 * @param options - the potential setConfig parameter
49187 */
49188
49189var sanitize = function sanitize(options) {
49190 Object.keys(siteConfig.secure).forEach(function (key) {
49191 if (typeof options[siteConfig.secure[key]] !== 'undefined') {
49192 // DO NOT attempt to print options[siteConfig.secure[key]] within `${}` as a malicious script
49193 // can exploit the logger's attempt to stringify the value and execute arbitrary code
49194 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug("Denied attempt to modify a secure key ".concat(siteConfig.secure[key]), options[siteConfig.secure[key]]);
49195 delete options[siteConfig.secure[key]];
49196 }
49197 });
49198};
49199var addDirective = function addDirective(directive) {
49200 directives.push(directive);
49201 updateCurrentConfig(siteConfig, directives);
49202};
49203/**
49204 *## reset
49205 *| Function | Description | Type | Required | Values |
49206 *| --------- | ------------------- | ------- | -------- | ------------------ |
49207 *| reset|Resets currentConfig to conf| Put Request | Required | None|
49208 *
49209 *| Parameter | Description |Type | Required | Values|
49210 *| --- | --- | --- | --- | --- |
49211 *| conf| base set of values, which currentConfig coul be **reset** to.| Dictionary | Required | Any Values, with respect to the secure Array|
49212 *
49213 **Notes :
49214 (default: current siteConfig ) (optional, default `getSiteConfig()`)
49215 * @param conf the base currentConfig to reset to (default: current siteConfig ) (optional, default `getSiteConfig()`)
49216 */
49217
49218var reset = function reset() {
49219 // Replace current config with siteConfig
49220 directives = [];
49221 updateCurrentConfig(siteConfig, directives);
49222};
49223
49224/***/ }),
49225
49226/***/ "./src/dagre-wrapper/clusters.js":
49227/*!***************************************!*\
49228 !*** ./src/dagre-wrapper/clusters.js ***!
49229 \***************************************/
49230/*! exports provided: insertCluster, getClusterTitleWidth, clear, positionCluster */
49231/***/ (function(module, __webpack_exports__, __webpack_require__) {
49232
49233"use strict";
49234__webpack_require__.r(__webpack_exports__);
49235/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertCluster", function() { return insertCluster; });
49236/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClusterTitleWidth", function() { return getClusterTitleWidth; });
49237/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
49238/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "positionCluster", function() { return positionCluster; });
49239/* harmony import */ var _intersect_intersect_rect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./intersect/intersect-rect */ "./src/dagre-wrapper/intersect/intersect-rect.js");
49240/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
49241/* harmony import */ var _createLabel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createLabel */ "./src/dagre-wrapper/createLabel.js");
49242/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
49243/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../config */ "./src/config.js");
49244
49245 // eslint-disable-line
49246
49247
49248
49249
49250
49251var rect = function rect(parent, node) {
49252 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].trace('Creating subgraph rect for ', node.id, node); // Add outer g element
49253
49254 var shapeSvg = parent.insert('g').attr('class', 'cluster').attr('id', node.id); // add the rect
49255
49256 var rect = shapeSvg.insert('rect', ':first-child'); // Create the label and insert it after the rect
49257
49258 var label = shapeSvg.insert('g').attr('class', 'cluster-label');
49259 var text = label.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_2__["default"])(node.labelText, node.labelStyle, undefined, true)); // Get the size of the label
49260
49261 var bbox = text.getBBox();
49262
49263 if (Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels) {
49264 var div = text.children[0];
49265 var dv = Object(d3__WEBPACK_IMPORTED_MODULE_3__["select"])(text);
49266 bbox = div.getBoundingClientRect();
49267 dv.attr('width', bbox.width);
49268 dv.attr('height', bbox.height);
49269 }
49270
49271 var padding = 0 * node.padding;
49272 var halfPadding = padding / 2;
49273 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].trace('Data ', node, JSON.stringify(node)); // center the rect around its coordinate
49274
49275 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
49276
49277 label.attr('transform', 'translate(' + (node.x - bbox.width / 2) + ', ' + (node.y - node.height / 2 - node.padding / 3 + 3) + ')');
49278 var rectBox = rect.node().getBBox();
49279 node.width = rectBox.width;
49280 node.height = rectBox.height;
49281
49282 node.intersect = function (point) {
49283 return Object(_intersect_intersect_rect__WEBPACK_IMPORTED_MODULE_0__["default"])(node, point);
49284 };
49285
49286 return shapeSvg;
49287};
49288/**
49289 * Non visiable cluster where the note is group with its
49290 */
49291
49292
49293var noteGroup = function noteGroup(parent, node) {
49294 // Add outer g element
49295 var shapeSvg = parent.insert('g').attr('class', 'note-cluster').attr('id', node.id); // add the rect
49296
49297 var rect = shapeSvg.insert('rect', ':first-child');
49298 var padding = 0 * node.padding;
49299 var halfPadding = padding / 2; // center the rect around its coordinate
49300
49301 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');
49302 var rectBox = rect.node().getBBox();
49303 node.width = rectBox.width;
49304 node.height = rectBox.height;
49305
49306 node.intersect = function (point) {
49307 return Object(_intersect_intersect_rect__WEBPACK_IMPORTED_MODULE_0__["default"])(node, point);
49308 };
49309
49310 return shapeSvg;
49311};
49312
49313var roundedWithTitle = function roundedWithTitle(parent, node) {
49314 // Add outer g element
49315 var shapeSvg = parent.insert('g').attr('class', node.classes).attr('id', node.id); // add the rect
49316
49317 var rect = shapeSvg.insert('rect', ':first-child'); // Create the label and insert it after the rect
49318
49319 var label = shapeSvg.insert('g').attr('class', 'cluster-label');
49320 var innerRect = shapeSvg.append('rect');
49321 var text = label.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_2__["default"])(node.labelText, node.labelStyle, undefined, true)); // Get the size of the label
49322
49323 var bbox = text.getBBox();
49324
49325 if (Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels) {
49326 var div = text.children[0];
49327 var dv = Object(d3__WEBPACK_IMPORTED_MODULE_3__["select"])(text);
49328 bbox = div.getBoundingClientRect();
49329 dv.attr('width', bbox.width);
49330 dv.attr('height', bbox.height);
49331 }
49332
49333 bbox = text.getBBox();
49334 var padding = 0 * node.padding;
49335 var halfPadding = padding / 2; // center the rect around its coordinate
49336
49337 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);
49338 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
49339
49340 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)) + ')');
49341 var rectBox = rect.node().getBBox();
49342 node.width = rectBox.width;
49343 node.height = rectBox.height;
49344
49345 node.intersect = function (point) {
49346 return Object(_intersect_intersect_rect__WEBPACK_IMPORTED_MODULE_0__["default"])(node, point);
49347 };
49348
49349 return shapeSvg;
49350};
49351
49352var divider = function divider(parent, node) {
49353 // Add outer g element
49354 var shapeSvg = parent.insert('g').attr('class', node.classes).attr('id', node.id); // add the rect
49355
49356 var rect = shapeSvg.insert('rect', ':first-child');
49357 var padding = 0 * node.padding;
49358 var halfPadding = padding / 2; // center the rect around its coordinate
49359
49360 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);
49361 var rectBox = rect.node().getBBox();
49362 node.width = rectBox.width;
49363 node.height = rectBox.height;
49364
49365 node.intersect = function (point) {
49366 return Object(_intersect_intersect_rect__WEBPACK_IMPORTED_MODULE_0__["default"])(node, point);
49367 };
49368
49369 return shapeSvg;
49370};
49371
49372var shapes = {
49373 rect: rect,
49374 roundedWithTitle: roundedWithTitle,
49375 noteGroup: noteGroup,
49376 divider: divider
49377};
49378var clusterElems = {};
49379var insertCluster = function insertCluster(elem, node) {
49380 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].trace('Inserting cluster');
49381 var shape = node.shape || 'rect';
49382 clusterElems[node.id] = shapes[shape](elem, node);
49383};
49384var getClusterTitleWidth = function getClusterTitleWidth(elem, node) {
49385 var label = Object(_createLabel__WEBPACK_IMPORTED_MODULE_2__["default"])(node.labelText, node.labelStyle, undefined, true);
49386 elem.node().appendChild(label);
49387 var width = label.getBBox().width;
49388 elem.node().removeChild(label);
49389 return width;
49390};
49391var clear = function clear() {
49392 clusterElems = {};
49393};
49394var positionCluster = function positionCluster(node) {
49395 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('Position cluster');
49396 var el = clusterElems[node.id];
49397 el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');
49398};
49399
49400/***/ }),
49401
49402/***/ "./src/dagre-wrapper/createLabel.js":
49403/*!******************************************!*\
49404 !*** ./src/dagre-wrapper/createLabel.js ***!
49405 \******************************************/
49406/*! exports provided: default */
49407/***/ (function(module, __webpack_exports__, __webpack_require__) {
49408
49409"use strict";
49410__webpack_require__.r(__webpack_exports__);
49411/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
49412/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
49413/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../config */ "./src/config.js");
49414
49415 // eslint-disable-line
49416// let vertexNode;
49417// if (getConfig().flowchart.htmlLabels) {
49418// // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?
49419// const node = {
49420// label: vertexText.replace(/fa[lrsb]?:fa-[\w-]+/g, s => `<i class='${s.replace(':', ' ')}'></i>`)
49421// };
49422// vertexNode = addHtmlLabel(svg, node).node();
49423// vertexNode.parentNode.removeChild(vertexNode);
49424// } else {
49425// const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
49426// svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));
49427// const rows = vertexText.split(common.lineBreakRegex);
49428// for (let j = 0; j < rows.length; j++) {
49429// const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
49430// tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
49431// tspan.setAttribute('dy', '1em');
49432// tspan.setAttribute('x', '1');
49433// tspan.textContent = rows[j];
49434// svgLabel.appendChild(tspan);
49435// }
49436// vertexNode = svgLabel;
49437// }
49438
49439
49440
49441function applyStyle(dom, styleFn) {
49442 if (styleFn) {
49443 dom.attr('style', styleFn);
49444 }
49445}
49446
49447function addHtmlLabel(node) {
49448 // var fo = root.append('foreignObject').attr('width', '100000');
49449 // var div = fo.append('xhtml:div');
49450 // div.attr('xmlns', 'http://www.w3.org/1999/xhtml');
49451 // var label = node.label;
49452 // switch (typeof label) {
49453 // case 'function':
49454 // div.insert(label);
49455 // break;
49456 // case 'object':
49457 // // Currently we assume this is a DOM object.
49458 // div.insert(function() {
49459 // return label;
49460 // });
49461 // break;
49462 // default:
49463 // div.html(label);
49464 // }
49465 // applyStyle(div, node.labelStyle);
49466 // div.style('display', 'inline-block');
49467 // // Fix for firefox
49468 // div.style('white-space', 'nowrap');
49469 // var client = div.node().getBoundingClientRect();
49470 // fo.attr('width', client.width).attr('height', client.height);
49471 var fo = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject'));
49472 var div = fo.append('xhtml:div');
49473 var label = node.label;
49474 var labelClass = node.isNode ? 'nodeLabel' : 'edgeLabel';
49475 div.html('<span class="' + labelClass + '">' + label + '</span>');
49476 applyStyle(div, node.labelStyle);
49477 div.style('display', 'inline-block'); // Fix for firefox
49478
49479 div.style('white-space', 'nowrap');
49480 div.attr('xmlns', 'http://www.w3.org/1999/xhtml');
49481 return fo.node();
49482}
49483
49484var createLabel = function createLabel(_vertexText, style, isTitle, isNode) {
49485 var vertexText = _vertexText || '';
49486
49487 if (Object(_config__WEBPACK_IMPORTED_MODULE_2__["getConfig"])().flowchart.htmlLabels) {
49488 // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?
49489 vertexText = vertexText.replace(/\\n|\n/g, '<br />');
49490 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('vertexText' + vertexText);
49491 var node = {
49492 isNode: isNode,
49493 label: vertexText.replace(/fa[lrsb]?:fa-[\w-]+/g, function (s) {
49494 return "<i class='".concat(s.replace(':', ' '), "'></i>");
49495 })
49496 };
49497 var vertexNode = addHtmlLabel(node); // vertexNode.parentNode.removeChild(vertexNode);
49498
49499 return vertexNode;
49500 } else {
49501 var svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
49502 svgLabel.setAttribute('style', style.replace('color:', 'fill:'));
49503 var rows = [];
49504
49505 if (typeof vertexText === 'string') {
49506 rows = vertexText.split(/\\n|\n|<br\s*\/?>/gi);
49507 } else if (Array.isArray(vertexText)) {
49508 rows = vertexText;
49509 } else {
49510 rows = [];
49511 }
49512
49513 for (var j = 0; j < rows.length; j++) {
49514 var tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
49515 tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
49516 tspan.setAttribute('dy', '1em');
49517 tspan.setAttribute('x', '0');
49518
49519 if (isTitle) {
49520 tspan.setAttribute('class', 'title-row');
49521 } else {
49522 tspan.setAttribute('class', 'row');
49523 }
49524
49525 tspan.textContent = rows[j].trim();
49526 svgLabel.appendChild(tspan);
49527 }
49528
49529 return svgLabel;
49530 }
49531};
49532
49533/* harmony default export */ __webpack_exports__["default"] = (createLabel);
49534
49535/***/ }),
49536
49537/***/ "./src/dagre-wrapper/edges.js":
49538/*!************************************!*\
49539 !*** ./src/dagre-wrapper/edges.js ***!
49540 \************************************/
49541/*! exports provided: clear, insertEdgeLabel, positionEdgeLabel, intersection, insertEdge */
49542/***/ (function(module, __webpack_exports__, __webpack_require__) {
49543
49544"use strict";
49545__webpack_require__.r(__webpack_exports__);
49546/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
49547/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertEdgeLabel", function() { return insertEdgeLabel; });
49548/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "positionEdgeLabel", function() { return positionEdgeLabel; });
49549/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "intersection", function() { return intersection; });
49550/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertEdge", function() { return insertEdge; });
49551/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
49552/* harmony import */ var _createLabel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createLabel */ "./src/dagre-wrapper/createLabel.js");
49553/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
49554/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../config */ "./src/config.js");
49555/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./src/utils.js");
49556 // eslint-disable-line
49557
49558
49559
49560
49561 // import { calcLabelPosition } from '../utils';
49562
49563var edgeLabels = {};
49564var clear = function clear() {
49565 edgeLabels = {};
49566};
49567var insertEdgeLabel = function insertEdgeLabel(elem, edge) {
49568 // Create the actual text element
49569 var labelElement = Object(_createLabel__WEBPACK_IMPORTED_MODULE_1__["default"])(edge.label, edge.labelStyle); // Create outer g, edgeLabel, this will be positioned after graph layout
49570
49571 var edgeLabel = elem.insert('g').attr('class', 'edgeLabel'); // Create inner g, label, this will be positioned now for centering the text
49572
49573 var label = edgeLabel.insert('g').attr('class', 'label');
49574 label.node().appendChild(labelElement); // Center the label
49575
49576 var bbox = labelElement.getBBox();
49577
49578 if (Object(_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"])().flowchart.htmlLabels) {
49579 var div = labelElement.children[0];
49580 var dv = Object(d3__WEBPACK_IMPORTED_MODULE_2__["select"])(labelElement);
49581 bbox = div.getBoundingClientRect();
49582 dv.attr('width', bbox.width);
49583 dv.attr('height', bbox.height);
49584 }
49585
49586 label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')'); // Make element accessible by id for positioning
49587
49588 edgeLabels[edge.id] = edgeLabel; // Update the abstract data of the edge with the new information about its width and height
49589
49590 edge.width = bbox.width;
49591 edge.height = bbox.height;
49592};
49593var positionEdgeLabel = function positionEdgeLabel(edge, points) {
49594 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Moving label', edge.id, edge.label, edgeLabels[edge.id]);
49595
49596 if (edge.label) {
49597 var el = edgeLabels[edge.id];
49598 var x = edge.x;
49599 var y = edge.y;
49600
49601 if (points) {
49602 // debugger;
49603 var pos = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].calcLabelPosition(points);
49604 x = pos.x;
49605 y = pos.y;
49606 }
49607
49608 el.attr('transform', 'translate(' + x + ', ' + y + ')');
49609 }
49610}; // const getRelationType = function(type) {
49611// switch (type) {
49612// case stateDb.relationType.AGGREGATION:
49613// return 'aggregation';
49614// case stateDb.relationType.EXTENSION:
49615// return 'extension';
49616// case stateDb.relationType.COMPOSITION:
49617// return 'composition';
49618// case stateDb.relationType.DEPENDENCY:
49619// return 'dependency';
49620// }
49621// };
49622
49623var outsideNode = function outsideNode(node, point) {
49624 // logger.warn('Checking bounds ', node, point);
49625 var x = node.x;
49626 var y = node.y;
49627 var dx = Math.abs(point.x - x);
49628 var dy = Math.abs(point.y - y);
49629 var w = node.width / 2;
49630 var h = node.height / 2;
49631
49632 if (dx >= w || dy >= h) {
49633 return true;
49634 }
49635
49636 return false;
49637};
49638
49639var intersection = function intersection(node, outsidePoint, insidePoint) {
49640 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('intersection calc o:', outsidePoint, ' i:', insidePoint, node);
49641 var x = node.x;
49642 var y = node.y;
49643 var dx = Math.abs(x - insidePoint.x);
49644 var w = node.width / 2;
49645 var r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;
49646 var h = node.height / 2;
49647 var edges = {
49648 x1: x - w,
49649 x2: x + w,
49650 y1: y - h,
49651 y2: y + h
49652 };
49653
49654 if (outsidePoint.x === edges.x1 || outsidePoint.x === edges.x2 || outsidePoint.y === edges.y1 || outsidePoint.y === edges.y2) {
49655 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('calc equals on edge');
49656 return outsidePoint;
49657 }
49658
49659 var Q = Math.abs(outsidePoint.y - insidePoint.y);
49660 var R = Math.abs(outsidePoint.x - insidePoint.x); // log.warn();
49661
49662 if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {
49663 // eslint-disable-line
49664 // Intersection is top or bottom of rect.
49665 // let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;
49666 var q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;
49667 r = R * q / Q;
49668 var res = {
49669 x: insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - r,
49670 y: outsidePoint.y + q
49671 };
49672 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn("topp/bott calc, Q ".concat(Q, ", q ").concat(q, ", R ").concat(R, ", r ").concat(r), res);
49673 return res;
49674 } else {
49675 // Intersection onn sides of rect
49676 // q = (Q * r) / R;
49677 // q = 2;
49678 // r = (R * q) / Q;
49679 if (insidePoint.x < outsidePoint.x) {
49680 r = outsidePoint.x - w - x;
49681 } else {
49682 // r = outsidePoint.x - w - x;
49683 r = x - w - outsidePoint.x;
49684 }
49685
49686 var _q = _q = Q * r / R;
49687
49688 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn("sides calc, Q ".concat(Q, ", q ").concat(_q, ", R ").concat(R, ", r ").concat(r), {
49689 x: insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x + dx - w,
49690 y: insidePoint.y < outsidePoint.y ? insidePoint.y + _q : insidePoint.y - _q
49691 });
49692 return {
49693 x: insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x + dx - w,
49694 y: insidePoint.y < outsidePoint.y ? insidePoint.y + _q : insidePoint.y - _q
49695 };
49696 }
49697}; //(edgePaths, e, edge, clusterDb, diagramtype, graph)
49698
49699var insertEdge = function insertEdge(elem, e, edge, clusterDb, diagramType, graph) {
49700 var points = edge.points;
49701 var pointsHasChanged = false;
49702 var tail = graph.node(e.v);
49703 var head = graph.node(e.w);
49704
49705 if (head.intersect && tail.intersect) {
49706 points = points.slice(1, edge.points.length - 1);
49707 points.unshift(tail.intersect(points[0]));
49708 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Last point', points[points.length - 1], head, head.intersect(points[points.length - 1]));
49709 points.push(head.intersect(points[points.length - 1]));
49710 }
49711
49712 if (edge.toCluster) {
49713 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('edge', edge);
49714 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('to cluster', clusterDb[edge.toCluster]);
49715 points = [];
49716 var lastPointOutside;
49717 var isInside = false;
49718 edge.points.forEach(function (point) {
49719 var node = clusterDb[edge.toCluster].node;
49720
49721 if (!outsideNode(node, point) && !isInside) {
49722 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('inside', edge.toCluster, point, lastPointOutside); // First point inside the rect
49723
49724 var inter = intersection(node, lastPointOutside, point);
49725 var pointPresent = false;
49726 points.forEach(function (p) {
49727 pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;
49728 }); // if (!pointPresent) {
49729
49730 if (!points.find(function (e) {
49731 return e.x === inter.x && e.y === inter.y;
49732 })) {
49733 points.push(inter);
49734 } else {
49735 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('no intersect', inter, points);
49736 }
49737
49738 isInside = true;
49739 } else {
49740 if (!isInside) points.push(point);
49741 }
49742
49743 lastPointOutside = point;
49744 });
49745 pointsHasChanged = true;
49746 }
49747
49748 if (edge.fromCluster) {
49749 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('edge', edge);
49750 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('from cluster', clusterDb[edge.fromCluster]);
49751 var updatedPoints = [];
49752
49753 var _lastPointOutside;
49754
49755 var _isInside = false;
49756
49757 for (var i = points.length - 1; i >= 0; i--) {
49758 var point = points[i];
49759 var node = clusterDb[edge.fromCluster].node;
49760
49761 if (!outsideNode(node, point) && !_isInside) {
49762 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('inside', edge.fromCluster, point, node); // First point inside the rect
49763
49764 var insterection = intersection(node, _lastPointOutside, point); // logger.trace('intersect', intersection(node, lastPointOutside, point));
49765
49766 updatedPoints.unshift(insterection); // points.push(insterection);
49767
49768 _isInside = true;
49769 } else {
49770 // at the outside
49771 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('Outside point', point);
49772 if (!_isInside) updatedPoints.unshift(point);
49773 }
49774
49775 _lastPointOutside = point;
49776 }
49777
49778 points = updatedPoints;
49779 pointsHasChanged = true;
49780 } // The data for our line
49781
49782
49783 var lineData = points.filter(function (p) {
49784 return !Number.isNaN(p.y);
49785 }); // This is the accessor function we talked about above
49786
49787 var lineFunction = Object(d3__WEBPACK_IMPORTED_MODULE_2__["line"])().x(function (d) {
49788 return d.x;
49789 }).y(function (d) {
49790 return d.y;
49791 }).curve(d3__WEBPACK_IMPORTED_MODULE_2__["curveBasis"]); // Contruct stroke classes based on properties
49792
49793 var strokeClasses;
49794
49795 switch (edge.thickness) {
49796 case 'normal':
49797 strokeClasses = 'edge-thickness-normal';
49798 break;
49799
49800 case 'thick':
49801 strokeClasses = 'edge-thickness-thick';
49802 break;
49803
49804 default:
49805 strokeClasses = '';
49806 }
49807
49808 switch (edge.pattern) {
49809 case 'solid':
49810 strokeClasses += ' edge-pattern-solid';
49811 break;
49812
49813 case 'dotted':
49814 strokeClasses += ' edge-pattern-dotted';
49815 break;
49816
49817 case 'dashed':
49818 strokeClasses += ' edge-pattern-dashed';
49819 break;
49820 }
49821
49822 var svgPath = elem.append('path').attr('d', lineFunction(lineData)).attr('id', edge.id).attr('class', ' ' + strokeClasses + (edge.classes ? ' ' + edge.classes : '')); // DEBUG code, adds a red circle at each edge coordinate
49823 // edge.points.forEach(point => {
49824 // elem
49825 // .append('circle')
49826 // .style('stroke', 'red')
49827 // .style('fill', 'red')
49828 // .attr('r', 1)
49829 // .attr('cx', point.x)
49830 // .attr('cy', point.y);
49831 // });
49832
49833 var url = '';
49834
49835 if (Object(_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"])().state.arrowMarkerAbsolute) {
49836 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
49837 url = url.replace(/\(/g, '\\(');
49838 url = url.replace(/\)/g, '\\)');
49839 }
49840
49841 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('arrowTypeStart', edge.arrowTypeStart);
49842 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('arrowTypeEnd', edge.arrowTypeEnd);
49843
49844 switch (edge.arrowTypeStart) {
49845 case 'arrow_cross':
49846 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-crossStart' + ')');
49847 break;
49848
49849 case 'arrow_point':
49850 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-pointStart' + ')');
49851 break;
49852
49853 case 'arrow_barb':
49854 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-barbStart' + ')');
49855 break;
49856
49857 case 'arrow_circle':
49858 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-circleStart' + ')');
49859 break;
49860
49861 case 'aggregation':
49862 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-aggregationStart' + ')');
49863 break;
49864
49865 case 'extension':
49866 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-extensionStart' + ')');
49867 break;
49868
49869 case 'composition':
49870 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-compositionStart' + ')');
49871 break;
49872
49873 case 'dependency':
49874 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-dependencyStart' + ')');
49875 break;
49876
49877 default:
49878 }
49879
49880 switch (edge.arrowTypeEnd) {
49881 case 'arrow_cross':
49882 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-crossEnd' + ')');
49883 break;
49884
49885 case 'arrow_point':
49886 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-pointEnd' + ')');
49887 break;
49888
49889 case 'arrow_barb':
49890 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-barbEnd' + ')');
49891 break;
49892
49893 case 'arrow_circle':
49894 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-circleEnd' + ')');
49895 break;
49896
49897 case 'aggregation':
49898 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-aggregationEnd' + ')');
49899 break;
49900
49901 case 'extension':
49902 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-extensionEnd' + ')');
49903 break;
49904
49905 case 'composition':
49906 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-compositionEnd' + ')');
49907 break;
49908
49909 case 'dependency':
49910 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-dependencyEnd' + ')');
49911 break;
49912
49913 default:
49914 }
49915
49916 if (pointsHasChanged) {
49917 return points;
49918 }
49919};
49920
49921/***/ }),
49922
49923/***/ "./src/dagre-wrapper/index.js":
49924/*!************************************!*\
49925 !*** ./src/dagre-wrapper/index.js ***!
49926 \************************************/
49927/*! exports provided: render */
49928/***/ (function(module, __webpack_exports__, __webpack_require__) {
49929
49930"use strict";
49931__webpack_require__.r(__webpack_exports__);
49932/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
49933/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dagre */ "./node_modules/dagre/index.js");
49934/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(dagre__WEBPACK_IMPORTED_MODULE_0__);
49935/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
49936/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_1__);
49937/* harmony import */ var _markers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./markers */ "./src/dagre-wrapper/markers.js");
49938/* harmony import */ var _shapes_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./shapes/util */ "./src/dagre-wrapper/shapes/util.js");
49939/* harmony import */ var _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./mermaid-graphlib */ "./src/dagre-wrapper/mermaid-graphlib.js");
49940/* harmony import */ var _nodes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./nodes */ "./src/dagre-wrapper/nodes.js");
49941/* harmony import */ var _clusters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./clusters */ "./src/dagre-wrapper/clusters.js");
49942/* harmony import */ var _edges__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./edges */ "./src/dagre-wrapper/edges.js");
49943/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
49944
49945
49946
49947
49948
49949
49950
49951
49952
49953
49954var recursiveRender = function recursiveRender(_elem, graph, diagramtype, parentCluster) {
49955 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Graph in recursive render:', graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.json.write(graph), parentCluster);
49956 var dir = graph.graph().rankdir;
49957 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].warn('Dir in recursive render - dir:', dir);
49958
49959 var elem = _elem.insert('g').attr('class', 'root'); // eslint-disable-line
49960
49961
49962 if (!graph.nodes()) {
49963 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('No nodes found for', graph);
49964 } else {
49965 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Recursive render', graph.nodes());
49966 }
49967
49968 if (graph.edges().length > 0) {
49969 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Recursive edges', graph.edge(graph.edges()[0]));
49970 }
49971
49972 var clusters = elem.insert('g').attr('class', 'clusters'); // eslint-disable-line
49973
49974 var edgePaths = elem.insert('g').attr('class', 'edgePaths');
49975 var edgeLabels = elem.insert('g').attr('class', 'edgeLabels');
49976 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
49977 // to the abstract node and is later used by dagre for the layout
49978
49979 graph.nodes().forEach(function (v) {
49980 var node = graph.node(v);
49981
49982 if (typeof parentCluster !== 'undefined') {
49983 var data = JSON.parse(JSON.stringify(parentCluster.clusterData)); // data.clusterPositioning = true;
49984
49985 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Setting data for cluster', data);
49986 graph.setNode(parentCluster.id, data);
49987 graph.setParent(v, parentCluster.id, data);
49988 }
49989
49990 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('(Insert) Node ' + v + ': ' + JSON.stringify(graph.node(v)));
49991
49992 if (node && node.clusterNode) {
49993 // const children = graph.children(v);
49994 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Cluster identified', v, node, graph.node(v));
49995 var newEl = recursiveRender(nodes, node.graph, diagramtype, graph.node(v));
49996 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_3__["updateNodeBounds"])(node, newEl);
49997 Object(_nodes__WEBPACK_IMPORTED_MODULE_5__["setNodeElem"])(newEl, node);
49998 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].warn('Recursive render complete', newEl, node);
49999 } else {
50000 if (graph.children(v).length > 0) {
50001 // This is a cluster but not to be rendered recusively
50002 // Render as before
50003 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Cluster - the non recursive path', v, node.id, node, graph);
50004 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info(Object(_mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["findNonClusterChild"])(node.id, graph));
50005 _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["clusterDb"][node.id] = {
50006 id: Object(_mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["findNonClusterChild"])(node.id, graph),
50007 node: node
50008 }; // insertCluster(clusters, graph.node(v));
50009 } else {
50010 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Node - the non recursive path', v, node.id, node);
50011 Object(_nodes__WEBPACK_IMPORTED_MODULE_5__["insertNode"])(nodes, graph.node(v), dir);
50012 }
50013 }
50014 }); // Insert labels, this will insert them into the dom so that the width can be calculated
50015 // Also figure out which edges point to/from clusters and adjust them accordingly
50016 // Edges from/to clusters really points to the first child in the cluster.
50017 // TODO: pick optimal child in the cluster to us as link anchor
50018
50019 graph.edges().forEach(function (e) {
50020 var edge = graph.edge(e.v, e.w, e.name);
50021 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));
50022 _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
50023
50024 _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]);
50025 Object(_edges__WEBPACK_IMPORTED_MODULE_7__["insertEdgeLabel"])(edgeLabels, edge);
50026 });
50027 graph.edges().forEach(function (e) {
50028 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));
50029 });
50030 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('#############################################');
50031 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('### Layout ###');
50032 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('#############################################');
50033 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info(graph);
50034 dagre__WEBPACK_IMPORTED_MODULE_0___default.a.layout(graph);
50035 _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
50036
50037 graph.nodes().forEach(function (v) {
50038 var node = graph.node(v);
50039 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Position ' + v + ': ' + JSON.stringify(graph.node(v)));
50040 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Position ' + v + ': (' + node.x, ',' + node.y, ') width: ', node.width, ' height: ', node.height);
50041
50042 if (node && node.clusterNode) {
50043 // clusterDb[node.id].node = node;
50044 Object(_nodes__WEBPACK_IMPORTED_MODULE_5__["positionNode"])(node);
50045 } else {
50046 // Non cluster node
50047 if (graph.children(v).length > 0) {
50048 // A cluster in the non-recurive way
50049 // positionCluster(node);
50050 Object(_clusters__WEBPACK_IMPORTED_MODULE_6__["insertCluster"])(clusters, node);
50051 _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["clusterDb"][node.id].node = node;
50052 } else {
50053 Object(_nodes__WEBPACK_IMPORTED_MODULE_5__["positionNode"])(node);
50054 }
50055 }
50056 }); // Move the edge labels to the correct place after layout
50057
50058 graph.edges().forEach(function (e) {
50059 var edge = graph.edge(e);
50060 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(edge), edge);
50061 var updatedPath = Object(_edges__WEBPACK_IMPORTED_MODULE_7__["insertEdge"])(edgePaths, e, edge, _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["clusterDb"], diagramtype, graph);
50062 Object(_edges__WEBPACK_IMPORTED_MODULE_7__["positionEdgeLabel"])(edge, updatedPath);
50063 });
50064 return elem;
50065};
50066
50067var render = function render(elem, graph, markers, diagramtype, id) {
50068 Object(_markers__WEBPACK_IMPORTED_MODULE_2__["default"])(elem, markers, diagramtype, id);
50069 Object(_nodes__WEBPACK_IMPORTED_MODULE_5__["clear"])();
50070 Object(_edges__WEBPACK_IMPORTED_MODULE_7__["clear"])();
50071 Object(_clusters__WEBPACK_IMPORTED_MODULE_6__["clear"])();
50072 Object(_mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["clear"])();
50073 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].warn('Graph before:', graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.json.write(graph));
50074 Object(_mermaid_graphlib__WEBPACK_IMPORTED_MODULE_4__["adjustClustersAndEdges"])(graph);
50075 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].warn('Graph after:', graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.json.write(graph));
50076 _logger__WEBPACK_IMPORTED_MODULE_8__["logger"].warn('Graph ever after:', graph.graph());
50077 recursiveRender(elem, graph, diagramtype);
50078}; // const shapeDefinitions = {};
50079// export const addShape = ({ shapeType: fun }) => {
50080// shapeDefinitions[shapeType] = fun;
50081// };
50082// const arrowDefinitions = {};
50083// export const addArrow = ({ arrowType: fun }) => {
50084// arrowDefinitions[arrowType] = fun;
50085// };
50086
50087/***/ }),
50088
50089/***/ "./src/dagre-wrapper/intersect/index.js":
50090/*!**********************************************!*\
50091 !*** ./src/dagre-wrapper/intersect/index.js ***!
50092 \**********************************************/
50093/*! exports provided: default */
50094/***/ (function(module, __webpack_exports__, __webpack_require__) {
50095
50096"use strict";
50097__webpack_require__.r(__webpack_exports__);
50098/* harmony import */ var _intersect_node_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./intersect-node.js */ "./src/dagre-wrapper/intersect/intersect-node.js");
50099/* harmony import */ var _intersect_node_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_intersect_node_js__WEBPACK_IMPORTED_MODULE_0__);
50100/* harmony import */ var _intersect_circle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./intersect-circle.js */ "./src/dagre-wrapper/intersect/intersect-circle.js");
50101/* harmony import */ var _intersect_ellipse_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./intersect-ellipse.js */ "./src/dagre-wrapper/intersect/intersect-ellipse.js");
50102/* harmony import */ var _intersect_polygon_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./intersect-polygon.js */ "./src/dagre-wrapper/intersect/intersect-polygon.js");
50103/* harmony import */ var _intersect_rect_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./intersect-rect.js */ "./src/dagre-wrapper/intersect/intersect-rect.js");
50104/*
50105 * Borrowed with love from from dagrge-d3. Many thanks to cpettitt!
50106 */
50107
50108
50109
50110
50111
50112/* harmony default export */ __webpack_exports__["default"] = ({
50113 node: _intersect_node_js__WEBPACK_IMPORTED_MODULE_0___default.a,
50114 circle: _intersect_circle_js__WEBPACK_IMPORTED_MODULE_1__["default"],
50115 ellipse: _intersect_ellipse_js__WEBPACK_IMPORTED_MODULE_2__["default"],
50116 polygon: _intersect_polygon_js__WEBPACK_IMPORTED_MODULE_3__["default"],
50117 rect: _intersect_rect_js__WEBPACK_IMPORTED_MODULE_4__["default"]
50118});
50119
50120/***/ }),
50121
50122/***/ "./src/dagre-wrapper/intersect/intersect-circle.js":
50123/*!*********************************************************!*\
50124 !*** ./src/dagre-wrapper/intersect/intersect-circle.js ***!
50125 \*********************************************************/
50126/*! exports provided: default */
50127/***/ (function(module, __webpack_exports__, __webpack_require__) {
50128
50129"use strict";
50130__webpack_require__.r(__webpack_exports__);
50131/* harmony import */ var _intersect_ellipse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./intersect-ellipse */ "./src/dagre-wrapper/intersect/intersect-ellipse.js");
50132
50133
50134function intersectCircle(node, rx, point) {
50135 return Object(_intersect_ellipse__WEBPACK_IMPORTED_MODULE_0__["default"])(node, rx, rx, point);
50136}
50137
50138/* harmony default export */ __webpack_exports__["default"] = (intersectCircle);
50139
50140/***/ }),
50141
50142/***/ "./src/dagre-wrapper/intersect/intersect-ellipse.js":
50143/*!**********************************************************!*\
50144 !*** ./src/dagre-wrapper/intersect/intersect-ellipse.js ***!
50145 \**********************************************************/
50146/*! exports provided: default */
50147/***/ (function(module, __webpack_exports__, __webpack_require__) {
50148
50149"use strict";
50150__webpack_require__.r(__webpack_exports__);
50151function intersectEllipse(node, rx, ry, point) {
50152 // Formulae from: http://mathworld.wolfram.com/Ellipse-LineIntersection.html
50153 var cx = node.x;
50154 var cy = node.y;
50155 var px = cx - point.x;
50156 var py = cy - point.y;
50157 var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);
50158 var dx = Math.abs(rx * ry * px / det);
50159
50160 if (point.x < cx) {
50161 dx = -dx;
50162 }
50163
50164 var dy = Math.abs(rx * ry * py / det);
50165
50166 if (point.y < cy) {
50167 dy = -dy;
50168 }
50169
50170 return {
50171 x: cx + dx,
50172 y: cy + dy
50173 };
50174}
50175
50176/* harmony default export */ __webpack_exports__["default"] = (intersectEllipse);
50177
50178/***/ }),
50179
50180/***/ "./src/dagre-wrapper/intersect/intersect-line.js":
50181/*!*******************************************************!*\
50182 !*** ./src/dagre-wrapper/intersect/intersect-line.js ***!
50183 \*******************************************************/
50184/*! exports provided: default */
50185/***/ (function(module, __webpack_exports__, __webpack_require__) {
50186
50187"use strict";
50188__webpack_require__.r(__webpack_exports__);
50189/*
50190 * Returns the point at which two lines, p and q, intersect or returns
50191 * undefined if they do not intersect.
50192 */
50193function intersectLine(p1, p2, q1, q2) {
50194 // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994,
50195 // p7 and p473.
50196 var a1, a2, b1, b2, c1, c2;
50197 var r1, r2, r3, r4;
50198 var denom, offset, num;
50199 var x, y; // Compute a1, b1, c1, where line joining points 1 and 2 is F(x,y) = a1 x +
50200 // b1 y + c1 = 0.
50201
50202 a1 = p2.y - p1.y;
50203 b1 = p1.x - p2.x;
50204 c1 = p2.x * p1.y - p1.x * p2.y; // Compute r3 and r4.
50205
50206 r3 = a1 * q1.x + b1 * q1.y + c1;
50207 r4 = a1 * q2.x + b1 * q2.y + c1; // Check signs of r3 and r4. If both point 3 and point 4 lie on
50208 // same side of line 1, the line segments do not intersect.
50209
50210 if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {
50211 return;
50212 } // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0
50213
50214
50215 a2 = q2.y - q1.y;
50216 b2 = q1.x - q2.x;
50217 c2 = q2.x * q1.y - q1.x * q2.y; // Compute r1 and r2
50218
50219 r1 = a2 * p1.x + b2 * p1.y + c2;
50220 r2 = a2 * p2.x + b2 * p2.y + c2; // Check signs of r1 and r2. If both point 1 and point 2 lie
50221 // on same side of second line segment, the line segments do
50222 // not intersect.
50223
50224 if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {
50225 return;
50226 } // Line segments intersect: compute intersection point.
50227
50228
50229 denom = a1 * b2 - a2 * b1;
50230
50231 if (denom === 0) {
50232 return;
50233 }
50234
50235 offset = Math.abs(denom / 2); // The denom/2 is to get rounding instead of truncating. It
50236 // is added or subtracted to the numerator, depending upon the
50237 // sign of the numerator.
50238
50239 num = b1 * c2 - b2 * c1;
50240 x = num < 0 ? (num - offset) / denom : (num + offset) / denom;
50241 num = a2 * c1 - a1 * c2;
50242 y = num < 0 ? (num - offset) / denom : (num + offset) / denom;
50243 return {
50244 x: x,
50245 y: y
50246 };
50247}
50248
50249function sameSign(r1, r2) {
50250 return r1 * r2 > 0;
50251}
50252
50253/* harmony default export */ __webpack_exports__["default"] = (intersectLine);
50254
50255/***/ }),
50256
50257/***/ "./src/dagre-wrapper/intersect/intersect-node.js":
50258/*!*******************************************************!*\
50259 !*** ./src/dagre-wrapper/intersect/intersect-node.js ***!
50260 \*******************************************************/
50261/*! no static exports found */
50262/***/ (function(module, exports) {
50263
50264module.exports = intersectNode;
50265
50266function intersectNode(node, point) {
50267 // console.info('Intersect Node');
50268 return node.intersect(point);
50269}
50270
50271/***/ }),
50272
50273/***/ "./src/dagre-wrapper/intersect/intersect-polygon.js":
50274/*!**********************************************************!*\
50275 !*** ./src/dagre-wrapper/intersect/intersect-polygon.js ***!
50276 \**********************************************************/
50277/*! exports provided: default */
50278/***/ (function(module, __webpack_exports__, __webpack_require__) {
50279
50280"use strict";
50281__webpack_require__.r(__webpack_exports__);
50282/* harmony import */ var _intersect_line__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./intersect-line */ "./src/dagre-wrapper/intersect/intersect-line.js");
50283/* eslint "no-console": off */
50284
50285/* harmony default export */ __webpack_exports__["default"] = (intersectPolygon);
50286/*
50287 * Returns the point ({x, y}) at which the point argument intersects with the
50288 * node argument assuming that it has the shape specified by polygon.
50289 */
50290
50291function intersectPolygon(node, polyPoints, point) {
50292 var x1 = node.x;
50293 var y1 = node.y;
50294 var intersections = [];
50295 var minX = Number.POSITIVE_INFINITY;
50296 var minY = Number.POSITIVE_INFINITY;
50297
50298 if (typeof polyPoints.forEach === 'function') {
50299 polyPoints.forEach(function (entry) {
50300 minX = Math.min(minX, entry.x);
50301 minY = Math.min(minY, entry.y);
50302 });
50303 } else {
50304 minX = Math.min(minX, polyPoints.x);
50305 minY = Math.min(minY, polyPoints.y);
50306 }
50307
50308 var left = x1 - node.width / 2 - minX;
50309 var top = y1 - node.height / 2 - minY;
50310
50311 for (var i = 0; i < polyPoints.length; i++) {
50312 var p1 = polyPoints[i];
50313 var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];
50314 var intersect = Object(_intersect_line__WEBPACK_IMPORTED_MODULE_0__["default"])(node, point, {
50315 x: left + p1.x,
50316 y: top + p1.y
50317 }, {
50318 x: left + p2.x,
50319 y: top + p2.y
50320 });
50321
50322 if (intersect) {
50323 intersections.push(intersect);
50324 }
50325 }
50326
50327 if (!intersections.length) {
50328 // console.log('NO INTERSECTION FOUND, RETURN NODE CENTER', node);
50329 return node;
50330 }
50331
50332 if (intersections.length > 1) {
50333 // More intersections, find the one nearest to edge end point
50334 intersections.sort(function (p, q) {
50335 var pdx = p.x - point.x;
50336 var pdy = p.y - point.y;
50337 var distp = Math.sqrt(pdx * pdx + pdy * pdy);
50338 var qdx = q.x - point.x;
50339 var qdy = q.y - point.y;
50340 var distq = Math.sqrt(qdx * qdx + qdy * qdy);
50341 return distp < distq ? -1 : distp === distq ? 0 : 1;
50342 });
50343 }
50344
50345 return intersections[0];
50346}
50347
50348/***/ }),
50349
50350/***/ "./src/dagre-wrapper/intersect/intersect-rect.js":
50351/*!*******************************************************!*\
50352 !*** ./src/dagre-wrapper/intersect/intersect-rect.js ***!
50353 \*******************************************************/
50354/*! exports provided: default */
50355/***/ (function(module, __webpack_exports__, __webpack_require__) {
50356
50357"use strict";
50358__webpack_require__.r(__webpack_exports__);
50359var intersectRect = function intersectRect(node, point) {
50360 var x = node.x;
50361 var y = node.y; // Rectangle intersection algorithm from:
50362 // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes
50363
50364 var dx = point.x - x;
50365 var dy = point.y - y;
50366 var w = node.width / 2;
50367 var h = node.height / 2;
50368 var sx, sy;
50369
50370 if (Math.abs(dy) * w > Math.abs(dx) * h) {
50371 // Intersection is top or bottom of rect.
50372 if (dy < 0) {
50373 h = -h;
50374 }
50375
50376 sx = dy === 0 ? 0 : h * dx / dy;
50377 sy = h;
50378 } else {
50379 // Intersection is left or right of rect.
50380 if (dx < 0) {
50381 w = -w;
50382 }
50383
50384 sx = w;
50385 sy = dx === 0 ? 0 : w * dy / dx;
50386 }
50387
50388 return {
50389 x: x + sx,
50390 y: y + sy
50391 };
50392};
50393
50394/* harmony default export */ __webpack_exports__["default"] = (intersectRect);
50395
50396/***/ }),
50397
50398/***/ "./src/dagre-wrapper/markers.js":
50399/*!**************************************!*\
50400 !*** ./src/dagre-wrapper/markers.js ***!
50401 \**************************************/
50402/*! exports provided: default */
50403/***/ (function(module, __webpack_exports__, __webpack_require__) {
50404
50405"use strict";
50406__webpack_require__.r(__webpack_exports__);
50407/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
50408/**
50409 * Setup arrow head and define the marker. The result is appended to the svg.
50410 */
50411 // Only add the number of markers that the diagram needs
50412
50413var insertMarkers = function insertMarkers(elem, markerArray, type, id) {
50414 markerArray.forEach(function (markerName) {
50415 markers[markerName](elem, type, id);
50416 });
50417};
50418
50419var extension = function extension(elem, type, id) {
50420 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('Making markers for ', id);
50421 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');
50422 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
50423};
50424
50425var composition = function composition(elem, type) {
50426 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');
50427 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');
50428};
50429
50430var aggregation = function aggregation(elem, type) {
50431 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');
50432 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');
50433};
50434
50435var dependency = function dependency(elem, type) {
50436 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');
50437 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');
50438};
50439
50440var point = function point(elem, type) {
50441 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');
50442 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');
50443};
50444
50445var circle = function circle(elem, type) {
50446 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');
50447 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');
50448};
50449
50450var cross = function cross(elem, type) {
50451 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')
50452 .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');
50453 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')
50454 .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');
50455};
50456
50457var barb = function barb(elem, type) {
50458 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');
50459}; // TODO rename the class diagram markers to something shape descriptive and semanitc free
50460
50461
50462var markers = {
50463 extension: extension,
50464 composition: composition,
50465 aggregation: aggregation,
50466 dependency: dependency,
50467 point: point,
50468 circle: circle,
50469 cross: cross,
50470 barb: barb
50471};
50472/* harmony default export */ __webpack_exports__["default"] = (insertMarkers);
50473
50474/***/ }),
50475
50476/***/ "./src/dagre-wrapper/mermaid-graphlib.js":
50477/*!***********************************************!*\
50478 !*** ./src/dagre-wrapper/mermaid-graphlib.js ***!
50479 \***********************************************/
50480/*! exports provided: clusterDb, clear, extractDecendants, validate, findNonClusterChild, adjustClustersAndEdges, extractor */
50481/***/ (function(module, __webpack_exports__, __webpack_require__) {
50482
50483"use strict";
50484__webpack_require__.r(__webpack_exports__);
50485/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clusterDb", function() { return clusterDb; });
50486/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
50487/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extractDecendants", function() { return extractDecendants; });
50488/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validate", function() { return validate; });
50489/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findNonClusterChild", function() { return findNonClusterChild; });
50490/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "adjustClustersAndEdges", function() { return adjustClustersAndEdges; });
50491/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extractor", function() { return extractor; });
50492/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
50493/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
50494/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_1__);
50495/**
50496 * Decorates with functions required by mermaids dagre-wrapper.
50497 */
50498
50499
50500var clusterDb = {};
50501var decendants = {};
50502var parents = {};
50503var clear = function clear() {
50504 decendants = {};
50505 parents = {};
50506 clusterDb = {};
50507};
50508
50509var isDecendant = function isDecendant(id, ancenstorId) {
50510 // if (id === ancenstorId) return true;
50511 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('In isDecendant', ancenstorId, ' ', id, ' = ', decendants[ancenstorId].indexOf(id) >= 0);
50512 if (decendants[ancenstorId].indexOf(id) >= 0) return true;
50513 return false;
50514};
50515
50516var edgeInCluster = function edgeInCluster(edge, clusterId) {
50517 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Decendants of ', clusterId, ' is ', decendants[clusterId]);
50518 _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
50519
50520 if (edge.v === clusterId) return false;
50521 if (edge.w === clusterId) return false;
50522
50523 if (!decendants[clusterId]) {
50524 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Tilt, ', clusterId, ',not in decendants');
50525 return false;
50526 }
50527
50528 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Here ');
50529 if (decendants[clusterId].indexOf(edge.v) >= 0) return true;
50530 if (isDecendant(edge.v, clusterId)) return true;
50531 if (isDecendant(edge.w, clusterId)) return true;
50532 if (decendants[clusterId].indexOf(edge.w) >= 0) return true;
50533 return false;
50534};
50535
50536var copy = function copy(clusterId, graph, newGraph, rootId) {
50537 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Copying children of ', clusterId, 'root', rootId, 'data', graph.node(clusterId), rootId);
50538 var nodes = graph.children(clusterId) || []; // Include cluster node if it is not the root
50539
50540 if (clusterId !== rootId) {
50541 nodes.push(clusterId);
50542 }
50543
50544 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Copying (nodes) clusterId', clusterId, 'nodes', nodes);
50545 nodes.forEach(function (node) {
50546 if (graph.children(node).length > 0) {
50547 copy(node, graph, newGraph, rootId);
50548 } else {
50549 var data = graph.node(node);
50550 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('cp ', node, ' to ', rootId, ' with parent ', clusterId); //,node, data, ' parent is ', clusterId);
50551
50552 newGraph.setNode(node, data);
50553 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Setting parent', node, graph.parent(node));
50554
50555 if (rootId !== graph.parent(node)) {
50556 newGraph.setParent(node, graph.parent(node));
50557 }
50558
50559 if (clusterId !== rootId && node !== clusterId) {
50560 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Setting parent', node, clusterId);
50561 newGraph.setParent(node, clusterId);
50562 } else {
50563 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('In copy ', clusterId, 'root', rootId, 'data', graph.node(clusterId), rootId);
50564 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Not Setting parent for node=', node, 'cluster!==rootId', clusterId !== rootId, 'node!==clusterId', node !== clusterId);
50565 }
50566
50567 var edges = graph.edges(node);
50568 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Copying Edges', edges);
50569 edges.forEach(function (edge) {
50570 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Edge', edge);
50571 var data = graph.edge(edge.v, edge.w, edge.name);
50572 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Edge data', data, rootId);
50573
50574 try {
50575 // Do not copy edges in and out of the root cluster, they belong to the parent graph
50576 if (edgeInCluster(edge, rootId)) {
50577 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Copying as ', edge.v, edge.w, data, edge.name);
50578 newGraph.setEdge(edge.v, edge.w, data, edge.name);
50579 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('newGraph edges ', newGraph.edges(), newGraph.edge(newGraph.edges()[0]));
50580 } else {
50581 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Skipping copy of edge ', edge.v, '-->', edge.w, ' rootId: ', rootId, ' clusterId:', clusterId);
50582 }
50583 } catch (e) {
50584 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].error(e);
50585 }
50586 });
50587 }
50588
50589 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Removing node', node);
50590 graph.removeNode(node);
50591 });
50592};
50593
50594var extractDecendants = function extractDecendants(id, graph) {
50595 // log.debug('Extracting ', id);
50596 var children = graph.children(id);
50597 var res = [].concat(children);
50598
50599 for (var i = 0; i < children.length; i++) {
50600 parents[children[i]] = id;
50601 res = res.concat(extractDecendants(children[i], graph));
50602 }
50603
50604 return res;
50605};
50606/**
50607 * Validates the graph, checking that all parent child relation points to existing nodes and that
50608 * edges between nodes also ia correct. When not correct the function logs the discrepancies.
50609 * @param {graphlib graph} g
50610 */
50611
50612var validate = function validate(graph) {
50613 var edges = graph.edges();
50614 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('Edges: ', edges);
50615
50616 for (var i = 0; i < edges.length; i++) {
50617 if (graph.children(edges[i].v).length > 0) {
50618 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('The node ', edges[i].v, ' is part of and edge even though it has children');
50619 return false;
50620 }
50621
50622 if (graph.children(edges[i].w).length > 0) {
50623 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('The node ', edges[i].w, ' is part of and edge even though it has children');
50624 return false;
50625 }
50626 }
50627
50628 return true;
50629};
50630/**
50631 * Finds a child that is not a cluster. When faking a edge between a node and a cluster.
50632 * @param {Finds a } id
50633 * @param {*} graph
50634 */
50635
50636var findNonClusterChild = function findNonClusterChild(id, graph) {
50637 // const node = graph.node(id);
50638 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('Searching', id); // const children = graph.children(id).reverse();
50639
50640 var children = graph.children(id); //.reverse();
50641
50642 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('Searching children of id ', id, children);
50643
50644 if (children.length < 1) {
50645 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('This is a valid node', id);
50646 return id;
50647 }
50648
50649 for (var i = 0; i < children.length; i++) {
50650 var _id = findNonClusterChild(children[i], graph);
50651
50652 if (_id) {
50653 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('Found replacement for', id, ' => ', _id);
50654 return _id;
50655 }
50656 }
50657};
50658
50659var getAnchorId = function getAnchorId(id) {
50660 if (!clusterDb[id]) {
50661 return id;
50662 } // If the cluster has no external connections
50663
50664
50665 if (!clusterDb[id].externalConnections) {
50666 return id;
50667 } // Return the replacement node
50668
50669
50670 if (clusterDb[id]) {
50671 return clusterDb[id].id;
50672 }
50673
50674 return id;
50675};
50676
50677var adjustClustersAndEdges = function adjustClustersAndEdges(graph, depth) {
50678 if (!graph || depth > 10) {
50679 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Opting out, no graph ');
50680 return;
50681 } else {
50682 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Opting in, graph ');
50683 } // Go through the nodes and for each cluster found, save a replacment node, this can be used when
50684 // faking a link to a cluster
50685
50686
50687 graph.nodes().forEach(function (id) {
50688 var children = graph.children(id);
50689
50690 if (children.length > 0) {
50691 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Cluster identified', id, ' Replacement id in edges: ', findNonClusterChild(id, graph));
50692 decendants[id] = extractDecendants(id, graph);
50693 clusterDb[id] = {
50694 id: findNonClusterChild(id, graph),
50695 clusterData: graph.node(id)
50696 };
50697 }
50698 }); // Check incoming and outgoing edges for each cluster
50699
50700 graph.nodes().forEach(function (id) {
50701 var children = graph.children(id);
50702 var edges = graph.edges();
50703
50704 if (children.length > 0) {
50705 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Cluster identified', id, decendants);
50706 edges.forEach(function (edge) {
50707 // log.debug('Edge, decendants: ', edge, decendants[id]);
50708 // Check if any edge leaves the cluster (not the actual cluster, thats a link from the box)
50709 if (edge.v !== id && edge.w !== id) {
50710 // Any edge where either the one of the nodes is decending to the cluster but not the other
50711 // if (decendants[id].indexOf(edge.v) < 0 && decendants[id].indexOf(edge.w) < 0) {
50712 var d1 = isDecendant(edge.v, id);
50713 var d2 = isDecendant(edge.w, id); // d1 xor d2 - if either d1 is true and d2 is false or the other way around
50714
50715 if (d1 ^ d2) {
50716 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Edge: ', edge, ' leaves cluster ', id);
50717 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Decendants of ', id, ': ', decendants[id]);
50718 clusterDb[id].externalConnections = true;
50719 }
50720 }
50721 });
50722 }
50723 });
50724 extractor(graph, 0); // For clusters with incoming and/or outgoing edges translate those edges to a real node
50725 // in the cluster inorder to fake the edge
50726
50727 graph.edges().forEach(function (e) {
50728 var edge = graph.edge(e);
50729 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));
50730 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(graph.edge(e)));
50731 var v = e.v;
50732 var w = e.w; // Check if link is either from or to a cluster
50733
50734 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace('Fix', clusterDb, 'ids:', e.v, e.w, 'Translateing: ', clusterDb[e.v], clusterDb[e.w]);
50735
50736 if (clusterDb[e.v] || clusterDb[e.w]) {
50737 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Fixing and trixing - removing', e.v, e.w, e.name);
50738 v = getAnchorId(e.v);
50739 w = getAnchorId(e.w);
50740 graph.removeEdge(e.v, e.w, e.name);
50741 if (v !== e.v) edge.fromCluster = e.v;
50742 if (w !== e.w) edge.toCluster = e.w;
50743 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Replacing with', v, w, e.name);
50744 graph.setEdge(v, w, edge, e.name);
50745 }
50746 });
50747 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].warn('Adjusted Graph', graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.json.write(graph));
50748 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].trace(clusterDb); // Remove references to extracted cluster
50749 // graph.edges().forEach(edge => {
50750 // if (isDecendant(edge.v, clusterId) || isDecendant(edge.w, clusterId)) {
50751 // graph.removeEdge(edge);
50752 // }
50753 // });
50754};
50755var extractor = function extractor(graph, depth) {
50756 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('extractor - ', depth, graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.json.write(graph), graph.children('D'));
50757
50758 if (depth > 10) {
50759 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].error('Bailing out');
50760 return;
50761 } // For clusters without incoming and/or outgoing edges, create a new cluster-node
50762 // containing the nodes and edges in the custer in a new graph
50763 // for (let i = 0;)
50764
50765
50766 var nodes = graph.nodes();
50767 var hasChildren = false;
50768
50769 for (var i = 0; i < nodes.length; i++) {
50770 var node = nodes[i];
50771 var children = graph.children(node);
50772 hasChildren = hasChildren || children.length > 0;
50773 }
50774
50775 if (!hasChildren) {
50776 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Done, no node has children', graph.nodes());
50777 return;
50778 } // const clusters = Object.keys(clusterDb);
50779 // clusters.forEach(clusterId => {
50780
50781
50782 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Nodes = ', nodes, depth);
50783
50784 for (var _i = 0; _i < nodes.length; _i++) {
50785 var _node = nodes[_i];
50786 _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
50787 // that it still is in the game
50788
50789 if (!clusterDb[_node]) {
50790 // Skip if the node is not a cluster
50791 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Not a cluster', _node, depth); // break;
50792 } else if (!clusterDb[_node].externalConnections && !graph.parent(_node) && graph.children(_node) && graph.children(_node).length > 0) {
50793 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Cluster without external connections, without a parent and with children', _node, depth);
50794 var graphSettings = graph.graph();
50795 var clusterGraph = new graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.Graph({
50796 multigraph: true,
50797 compound: true
50798 }).setGraph({
50799 rankdir: graphSettings.rankdir === 'TB' ? 'LR' : 'TB',
50800 // Todo: set proper spacing
50801 nodesep: 50,
50802 ranksep: 50,
50803 marginx: 8,
50804 marginy: 8
50805 }).setDefaultEdgeLabel(function () {
50806 return {};
50807 });
50808 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Old graph before copy', graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.json.write(graph));
50809 copy(_node, graph, clusterGraph, _node);
50810 graph.setNode(_node, {
50811 clusterNode: true,
50812 id: _node,
50813 clusterData: clusterDb[_node].clusterData,
50814 labelText: clusterDb[_node].labelText,
50815 graph: clusterGraph
50816 });
50817 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('New graph after copy', graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.json.write(clusterGraph));
50818 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Old graph after copy', graphlib__WEBPACK_IMPORTED_MODULE_1___default.a.json.write(graph));
50819 } else {
50820 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('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);
50821 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug(clusterDb);
50822 }
50823 }
50824
50825 nodes = graph.nodes();
50826 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('New list of nodes', nodes);
50827
50828 for (var _i2 = 0; _i2 < nodes.length; _i2++) {
50829 var _node2 = nodes[_i2];
50830 var data = graph.node(_node2);
50831 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug(' Now next leveö', _node2, data);
50832
50833 if (data.clusterNode) {
50834 extractor(data.graph, depth + 1);
50835 }
50836 }
50837};
50838
50839/***/ }),
50840
50841/***/ "./src/dagre-wrapper/nodes.js":
50842/*!************************************!*\
50843 !*** ./src/dagre-wrapper/nodes.js ***!
50844 \************************************/
50845/*! exports provided: insertNode, setNodeElem, clear, positionNode */
50846/***/ (function(module, __webpack_exports__, __webpack_require__) {
50847
50848"use strict";
50849__webpack_require__.r(__webpack_exports__);
50850/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertNode", function() { return insertNode; });
50851/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setNodeElem", function() { return setNodeElem; });
50852/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
50853/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "positionNode", function() { return positionNode; });
50854/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
50855/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
50856/* harmony import */ var _shapes_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shapes/util */ "./src/dagre-wrapper/shapes/util.js");
50857/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../config */ "./src/config.js");
50858/* harmony import */ var _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./intersect/index.js */ "./src/dagre-wrapper/intersect/index.js");
50859/* harmony import */ var _createLabel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createLabel */ "./src/dagre-wrapper/createLabel.js");
50860/* harmony import */ var _shapes_note__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./shapes/note */ "./src/dagre-wrapper/shapes/note.js");
50861
50862 // eslint-disable-line
50863
50864
50865
50866
50867
50868
50869
50870var question = function question(parent, node) {
50871 var _labelHelper = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
50872 shapeSvg = _labelHelper.shapeSvg,
50873 bbox = _labelHelper.bbox;
50874
50875 var w = bbox.width + node.padding;
50876 var h = bbox.height + node.padding;
50877 var s = w + h;
50878 var points = [{
50879 x: s / 2,
50880 y: 0
50881 }, {
50882 x: s,
50883 y: -s / 2
50884 }, {
50885 x: s / 2,
50886 y: -s
50887 }, {
50888 x: 0,
50889 y: -s / 2
50890 }];
50891 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('Question main (Circle)');
50892 var questionElem = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, s, s, points);
50893 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, questionElem);
50894
50895 node.intersect = function (point) {
50896 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].warn('Intersect called');
50897 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, points, point);
50898 };
50899
50900 return shapeSvg;
50901};
50902
50903var hexagon = function hexagon(parent, node) {
50904 var _labelHelper2 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
50905 shapeSvg = _labelHelper2.shapeSvg,
50906 bbox = _labelHelper2.bbox;
50907
50908 var f = 4;
50909 var h = bbox.height + node.padding;
50910 var m = h / f;
50911 var w = bbox.width + 2 * m + node.padding;
50912 var points = [{
50913 x: m,
50914 y: 0
50915 }, {
50916 x: w - m,
50917 y: 0
50918 }, {
50919 x: w,
50920 y: -h / 2
50921 }, {
50922 x: w - m,
50923 y: -h
50924 }, {
50925 x: m,
50926 y: -h
50927 }, {
50928 x: 0,
50929 y: -h / 2
50930 }];
50931 var hex = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, w, h, points);
50932 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, hex);
50933
50934 node.intersect = function (point) {
50935 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, point);
50936 };
50937
50938 return shapeSvg;
50939};
50940
50941var rect_left_inv_arrow = function rect_left_inv_arrow(parent, node) {
50942 var _labelHelper3 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
50943 shapeSvg = _labelHelper3.shapeSvg,
50944 bbox = _labelHelper3.bbox;
50945
50946 var w = bbox.width + node.padding;
50947 var h = bbox.height + node.padding;
50948 var points = [{
50949 x: -h / 2,
50950 y: 0
50951 }, {
50952 x: w,
50953 y: 0
50954 }, {
50955 x: w,
50956 y: -h
50957 }, {
50958 x: -h / 2,
50959 y: -h
50960 }, {
50961 x: 0,
50962 y: -h / 2
50963 }];
50964 var el = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, w, h, points);
50965 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, el);
50966
50967 node.intersect = function (point) {
50968 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, point);
50969 };
50970
50971 return shapeSvg;
50972};
50973
50974var lean_right = function lean_right(parent, node) {
50975 var _labelHelper4 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
50976 shapeSvg = _labelHelper4.shapeSvg,
50977 bbox = _labelHelper4.bbox;
50978
50979 var w = bbox.width + node.padding;
50980 var h = bbox.height + node.padding;
50981 var points = [{
50982 x: -2 * h / 6,
50983 y: 0
50984 }, {
50985 x: w - h / 6,
50986 y: 0
50987 }, {
50988 x: w + 2 * h / 6,
50989 y: -h
50990 }, {
50991 x: h / 6,
50992 y: -h
50993 }];
50994 var el = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, w, h, points);
50995 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, el);
50996
50997 node.intersect = function (point) {
50998 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, point);
50999 };
51000
51001 return shapeSvg;
51002};
51003
51004var lean_left = function lean_left(parent, node) {
51005 var _labelHelper5 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51006 shapeSvg = _labelHelper5.shapeSvg,
51007 bbox = _labelHelper5.bbox;
51008
51009 var w = bbox.width + node.padding;
51010 var h = bbox.height + node.padding;
51011 var points = [{
51012 x: 2 * h / 6,
51013 y: 0
51014 }, {
51015 x: w + h / 6,
51016 y: 0
51017 }, {
51018 x: w - 2 * h / 6,
51019 y: -h
51020 }, {
51021 x: -h / 6,
51022 y: -h
51023 }];
51024 var el = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, w, h, points);
51025 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, el);
51026
51027 node.intersect = function (point) {
51028 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, point);
51029 };
51030
51031 return shapeSvg;
51032};
51033
51034var trapezoid = function trapezoid(parent, node) {
51035 var _labelHelper6 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51036 shapeSvg = _labelHelper6.shapeSvg,
51037 bbox = _labelHelper6.bbox;
51038
51039 var w = bbox.width + node.padding;
51040 var h = bbox.height + node.padding;
51041 var points = [{
51042 x: -2 * h / 6,
51043 y: 0
51044 }, {
51045 x: w + 2 * h / 6,
51046 y: 0
51047 }, {
51048 x: w - h / 6,
51049 y: -h
51050 }, {
51051 x: h / 6,
51052 y: -h
51053 }];
51054 var el = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, w, h, points);
51055 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, el);
51056
51057 node.intersect = function (point) {
51058 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, point);
51059 };
51060
51061 return shapeSvg;
51062};
51063
51064var inv_trapezoid = function inv_trapezoid(parent, node) {
51065 var _labelHelper7 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51066 shapeSvg = _labelHelper7.shapeSvg,
51067 bbox = _labelHelper7.bbox;
51068
51069 var w = bbox.width + node.padding;
51070 var h = bbox.height + node.padding;
51071 var points = [{
51072 x: h / 6,
51073 y: 0
51074 }, {
51075 x: w - h / 6,
51076 y: 0
51077 }, {
51078 x: w + 2 * h / 6,
51079 y: -h
51080 }, {
51081 x: -2 * h / 6,
51082 y: -h
51083 }];
51084 var el = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, w, h, points);
51085 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, el);
51086
51087 node.intersect = function (point) {
51088 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, point);
51089 };
51090
51091 return shapeSvg;
51092};
51093
51094var rect_right_inv_arrow = function rect_right_inv_arrow(parent, node) {
51095 var _labelHelper8 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51096 shapeSvg = _labelHelper8.shapeSvg,
51097 bbox = _labelHelper8.bbox;
51098
51099 var w = bbox.width + node.padding;
51100 var h = bbox.height + node.padding;
51101 var points = [{
51102 x: 0,
51103 y: 0
51104 }, {
51105 x: w + h / 2,
51106 y: 0
51107 }, {
51108 x: w,
51109 y: -h / 2
51110 }, {
51111 x: w + h / 2,
51112 y: -h
51113 }, {
51114 x: 0,
51115 y: -h
51116 }];
51117 var el = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, w, h, points);
51118 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, el);
51119
51120 node.intersect = function (point) {
51121 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, point);
51122 };
51123
51124 return shapeSvg;
51125};
51126
51127var cylinder = function cylinder(parent, node) {
51128 var _labelHelper9 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51129 shapeSvg = _labelHelper9.shapeSvg,
51130 bbox = _labelHelper9.bbox;
51131
51132 var w = bbox.width + node.padding;
51133 var rx = w / 2;
51134 var ry = rx / (2.5 + w / 50);
51135 var h = bbox.height + ry + node.padding;
51136 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;
51137 var el = shapeSvg.attr('label-offset-y', ry).insert('path', ':first-child').attr('d', shape).attr('transform', 'translate(' + -w / 2 + ',' + -(h / 2 + ry) + ')');
51138 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, el);
51139
51140 node.intersect = function (point) {
51141 var pos = _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].rect(node, point);
51142 var x = pos.x - node.x;
51143
51144 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)) {
51145 // ellipsis equation: x*x / a*a + y*y / b*b = 1
51146 // solve for y to get adjustion value for pos.y
51147 var y = ry * ry * (1 - x * x / (rx * rx));
51148 if (y != 0) y = Math.sqrt(y);
51149 y = ry - y;
51150 if (point.y - node.y > 0) y = -y;
51151 pos.y += y;
51152 }
51153
51154 return pos;
51155 };
51156
51157 return shapeSvg;
51158};
51159
51160var rect = function rect(parent, node) {
51161 var _labelHelper10 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, 'node ' + node.classes, true),
51162 shapeSvg = _labelHelper10.shapeSvg,
51163 bbox = _labelHelper10.bbox,
51164 halfPadding = _labelHelper10.halfPadding;
51165
51166 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].trace('Classes = ', node.classes); // add the rect
51167
51168 var rect = shapeSvg.insert('rect', ':first-child');
51169 rect.attr('class', 'basic label-container').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);
51170 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, rect);
51171
51172 node.intersect = function (point) {
51173 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].rect(node, point);
51174 };
51175
51176 return shapeSvg;
51177};
51178
51179var rectWithTitle = function rectWithTitle(parent, node) {
51180 // const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes);
51181 var classes;
51182
51183 if (!node.classes) {
51184 classes = 'node default';
51185 } else {
51186 classes = 'node ' + node.classes;
51187 } // Add outer g element
51188
51189
51190 var shapeSvg = parent.insert('g').attr('class', classes).attr('id', node.id); // Create the title label and insert it after the rect
51191
51192 var rect = shapeSvg.insert('rect', ':first-child'); // const innerRect = shapeSvg.insert('rect');
51193
51194 var innerLine = shapeSvg.insert('line');
51195 var label = shapeSvg.insert('g').attr('class', 'label');
51196 var text2 = node.labelText.flat();
51197 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('Label text', text2[0]);
51198 var text = label.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_5__["default"])(text2[0], node.labelStyle, true, true));
51199 var bbox;
51200
51201 if (Object(_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"])().flowchart.htmlLabels) {
51202 var div = text.children[0];
51203 var dv = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(text);
51204 bbox = div.getBoundingClientRect();
51205 dv.attr('width', bbox.width);
51206 dv.attr('height', bbox.height);
51207 }
51208
51209 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('Text 2', text2);
51210 var textRows = text2.slice(1, text2.length);
51211 var titleBox = text.getBBox();
51212 var descr = label.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_5__["default"])(textRows.join('<br/>'), node.labelStyle, true, true));
51213
51214 if (Object(_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"])().flowchart.htmlLabels) {
51215 var _div = descr.children[0];
51216
51217 var _dv = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(descr);
51218
51219 bbox = _div.getBoundingClientRect();
51220
51221 _dv.attr('width', bbox.width);
51222
51223 _dv.attr('height', bbox.height);
51224 } // bbox = label.getBBox();
51225 // logger.info(descr);
51226
51227
51228 var halfPadding = node.padding / 2;
51229 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(descr).attr('transform', 'translate( ' + ( // (titleBox.width - bbox.width) / 2 +
51230 bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + ', ' + (titleBox.height + halfPadding + 5) + ')');
51231 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(text).attr('transform', 'translate( ' + ( // (titleBox.width - bbox.width) / 2 +
51232 bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + ', ' + 0 + ')'); // Get the size of the label
51233 // Bounding box for title and text
51234
51235 bbox = label.node().getBBox(); // Center the label
51236
51237 label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')');
51238 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);
51239 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);
51240 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, rect);
51241
51242 node.intersect = function (point) {
51243 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].rect(node, point);
51244 };
51245
51246 return shapeSvg;
51247};
51248
51249var stadium = function stadium(parent, node) {
51250 var _labelHelper11 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51251 shapeSvg = _labelHelper11.shapeSvg,
51252 bbox = _labelHelper11.bbox;
51253
51254 var h = bbox.height + node.padding;
51255 var w = bbox.width + h / 4 + node.padding; // add the rect
51256
51257 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);
51258 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, rect);
51259
51260 node.intersect = function (point) {
51261 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].rect(node, point);
51262 };
51263
51264 return shapeSvg;
51265};
51266
51267var circle = function circle(parent, node) {
51268 var _labelHelper12 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51269 shapeSvg = _labelHelper12.shapeSvg,
51270 bbox = _labelHelper12.bbox,
51271 halfPadding = _labelHelper12.halfPadding;
51272
51273 var circle = shapeSvg.insert('circle', ':first-child'); // center the circle around its coordinate
51274
51275 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);
51276 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('Circle main');
51277 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, circle);
51278
51279 node.intersect = function (point) {
51280 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('Circle intersect', node, bbox.width / 2 + halfPadding, point);
51281 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].circle(node, bbox.width / 2 + halfPadding, point);
51282 };
51283
51284 return shapeSvg;
51285};
51286
51287var subroutine = function subroutine(parent, node) {
51288 var _labelHelper13 = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["labelHelper"])(parent, node, undefined, true),
51289 shapeSvg = _labelHelper13.shapeSvg,
51290 bbox = _labelHelper13.bbox;
51291
51292 var w = bbox.width + node.padding;
51293 var h = bbox.height + node.padding;
51294 var points = [{
51295 x: 0,
51296 y: 0
51297 }, {
51298 x: w,
51299 y: 0
51300 }, {
51301 x: w,
51302 y: -h
51303 }, {
51304 x: 0,
51305 y: -h
51306 }, {
51307 x: 0,
51308 y: 0
51309 }, {
51310 x: -8,
51311 y: 0
51312 }, {
51313 x: w + 8,
51314 y: 0
51315 }, {
51316 x: w + 8,
51317 y: -h
51318 }, {
51319 x: -8,
51320 y: -h
51321 }, {
51322 x: -8,
51323 y: 0
51324 }];
51325 var el = Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["insertPolygonShape"])(shapeSvg, w, h, points);
51326 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, el);
51327
51328 node.intersect = function (point) {
51329 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].polygon(node, point);
51330 };
51331
51332 return shapeSvg;
51333};
51334
51335var start = function start(parent, node) {
51336 var shapeSvg = parent.insert('g').attr('class', 'node default').attr('id', node.id);
51337 var circle = shapeSvg.insert('circle', ':first-child'); // center the circle around its coordinate
51338
51339 circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);
51340 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, circle);
51341
51342 node.intersect = function (point) {
51343 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].circle(node, 7, point);
51344 };
51345
51346 return shapeSvg;
51347};
51348
51349var forkJoin = function forkJoin(parent, node, dir) {
51350 var shapeSvg = parent.insert('g').attr('class', 'node default').attr('id', node.id);
51351 var width = 70;
51352 var height = 10;
51353
51354 if (dir === 'LR') {
51355 width = 10;
51356 height = 70;
51357 }
51358
51359 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');
51360 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, shape);
51361 node.height = node.height + node.padding / 2;
51362 node.width = node.width + node.padding / 2;
51363
51364 node.intersect = function (point) {
51365 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].rect(node, point);
51366 };
51367
51368 return shapeSvg;
51369};
51370
51371var end = function end(parent, node) {
51372 var shapeSvg = parent.insert('g').attr('class', 'node default').attr('id', node.id);
51373 var innerCircle = shapeSvg.insert('circle', ':first-child');
51374 var circle = shapeSvg.insert('circle', ':first-child');
51375 circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);
51376 innerCircle.attr('class', 'state-end').attr('r', 5).attr('width', 10).attr('height', 10);
51377 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, circle);
51378
51379 node.intersect = function (point) {
51380 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].circle(node, 7, point);
51381 };
51382
51383 return shapeSvg;
51384};
51385
51386var class_box = function class_box(parent, node) {
51387 var halfPadding = node.padding / 2;
51388 var rowPadding = 4;
51389 var lineHeight = 8;
51390 var classes;
51391
51392 if (!node.classes) {
51393 classes = 'node default';
51394 } else {
51395 classes = 'node ' + node.classes;
51396 } // Add outer g element
51397
51398
51399 var shapeSvg = parent.insert('g').attr('class', classes).attr('id', node.id); // Create the title label and insert it after the rect
51400
51401 var rect = shapeSvg.insert('rect', ':first-child');
51402 var topLine = shapeSvg.insert('line');
51403 var bottomLine = shapeSvg.insert('line');
51404 var maxWidth = 0;
51405 var maxHeight = rowPadding;
51406 var labelContainer = shapeSvg.insert('g').attr('class', 'label');
51407 var verticalPos = 0;
51408 var hasInterface = node.classData.annotations && node.classData.annotations[0]; // 1. Create the labels
51409
51410 var interfaceLabel = labelContainer.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_5__["default"])(node.classData.annotations[0], node.labelStyle, true, true));
51411 var interfaceBBox = interfaceLabel.getBBox();
51412
51413 if (node.classData.annotations[0]) {
51414 maxHeight += interfaceBBox.height + rowPadding;
51415 maxWidth += interfaceBBox.width;
51416 }
51417
51418 var classTitleLabel = labelContainer.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_5__["default"])(node.labelText, node.labelStyle, true, true));
51419 var classTitleBBox = classTitleLabel.getBBox();
51420 maxHeight += classTitleBBox.height + rowPadding;
51421
51422 if (classTitleBBox.width > maxWidth) {
51423 maxWidth = classTitleBBox.width;
51424 }
51425
51426 var classAttributes = [];
51427 node.classData.members.forEach(function (str) {
51428 var lbl = labelContainer.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_5__["default"])(str, node.labelStyle, true, true));
51429 var bbox = lbl.getBBox();
51430
51431 if (bbox.width > maxWidth) {
51432 maxWidth = bbox.width;
51433 }
51434
51435 maxHeight += bbox.height + rowPadding;
51436 classAttributes.push(lbl);
51437 });
51438 var classMethods = [];
51439 node.classData.methods.forEach(function (str) {
51440 var lbl = labelContainer.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_5__["default"])(str, node.labelStyle, true, true));
51441 var bbox = lbl.getBBox();
51442
51443 if (bbox.width > maxWidth) {
51444 maxWidth = bbox.width;
51445 }
51446
51447 maxHeight += bbox.height + rowPadding;
51448 classMethods.push(lbl);
51449 });
51450 maxHeight += lineHeight; // 2. Position the labels
51451 // position the interface label
51452
51453 if (hasInterface) {
51454 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(interfaceLabel).attr('transform', 'translate( ' + -(maxWidth + node.padding - interfaceBBox.width / 2) / 2 + ', ' + -1 * maxHeight / 2 + ')');
51455 verticalPos = interfaceBBox.height + rowPadding;
51456 } // Positin the class title label
51457
51458
51459 var diffX = (maxWidth - classTitleBBox.width) / 2;
51460 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(classTitleLabel).attr('transform', 'translate( ' + (-1 * maxWidth / 2 + diffX) + ', ' + (-1 * maxHeight / 2 + verticalPos) + ')');
51461 verticalPos += classTitleBBox.height + rowPadding;
51462 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);
51463 verticalPos += lineHeight;
51464 classAttributes.forEach(function (lbl) {
51465 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(lbl).attr('transform', 'translate( ' + -maxWidth / 2 + ', ' + (-1 * maxHeight / 2 + verticalPos + lineHeight / 2) + ')');
51466 verticalPos += classTitleBBox.height + rowPadding;
51467 });
51468 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);
51469 verticalPos += lineHeight;
51470 classMethods.forEach(function (lbl) {
51471 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(lbl).attr('transform', 'translate( ' + -maxWidth / 2 + ', ' + (-1 * maxHeight / 2 + verticalPos) + ')');
51472 verticalPos += classTitleBBox.height + rowPadding;
51473 }); //
51474
51475 var bbox;
51476
51477 if (Object(_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"])().flowchart.htmlLabels) {
51478 var div = interfaceLabel.children[0];
51479 var dv = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(interfaceLabel);
51480 bbox = div.getBoundingClientRect();
51481 dv.attr('width', bbox.width);
51482 dv.attr('height', bbox.height);
51483 } // bbox = labelContainer.getBBox();
51484 // logger.info('Text 2', text2);
51485 // const textRows = text2.slice(1, text2.length);
51486 // let titleBox = text.getBBox();
51487 // const descr = label
51488 // .node()
51489 // .appendChild(createLabel(textRows.join('<br/>'), node.labelStyle, true, true));
51490 // if (getConfig().flowchart.htmlLabels) {
51491 // const div = descr.children[0];
51492 // const dv = select(descr);
51493 // bbox = div.getBoundingClientRect();
51494 // dv.attr('width', bbox.width);
51495 // dv.attr('height', bbox.height);
51496 // }
51497 // // bbox = label.getBBox();
51498 // // logger.info(descr);
51499 // select(descr).attr(
51500 // 'transform',
51501 // 'translate( ' +
51502 // // (titleBox.width - bbox.width) / 2 +
51503 // (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) +
51504 // ', ' +
51505 // (titleBox.height + halfPadding + 5) +
51506 // ')'
51507 // );
51508 // select(text).attr(
51509 // 'transform',
51510 // 'translate( ' +
51511 // // (titleBox.width - bbox.width) / 2 +
51512 // (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) +
51513 // ', ' +
51514 // 0 +
51515 // ')'
51516 // );
51517 // // Get the size of the label
51518 // // Bounding box for title and text
51519 // bbox = label.node().getBBox();
51520 // // Center the label
51521 // label.attr(
51522 // 'transform',
51523 // 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')'
51524 // );
51525
51526
51527 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
51528 // .attr('class', 'divider')
51529 // .attr('x1', -bbox.width / 2 - halfPadding)
51530 // .attr('x2', bbox.width / 2 + halfPadding)
51531 // .attr('y1', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding)
51532 // .attr('y2', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);
51533
51534 Object(_shapes_util__WEBPACK_IMPORTED_MODULE_2__["updateNodeBounds"])(node, rect);
51535
51536 node.intersect = function (point) {
51537 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].rect(node, point);
51538 };
51539
51540 return shapeSvg;
51541};
51542
51543var shapes = {
51544 question: question,
51545 rect: rect,
51546 rectWithTitle: rectWithTitle,
51547 circle: circle,
51548 stadium: stadium,
51549 hexagon: hexagon,
51550 rect_left_inv_arrow: rect_left_inv_arrow,
51551 lean_right: lean_right,
51552 lean_left: lean_left,
51553 trapezoid: trapezoid,
51554 inv_trapezoid: inv_trapezoid,
51555 rect_right_inv_arrow: rect_right_inv_arrow,
51556 cylinder: cylinder,
51557 start: start,
51558 end: end,
51559 note: _shapes_note__WEBPACK_IMPORTED_MODULE_6__["default"],
51560 subroutine: subroutine,
51561 fork: forkJoin,
51562 join: forkJoin,
51563 class_box: class_box
51564};
51565var nodeElems = {};
51566var insertNode = function insertNode(elem, node, dir) {
51567 nodeElems[node.id] = shapes[node.shape](elem, node, dir);
51568};
51569var setNodeElem = function setNodeElem(elem, node) {
51570 nodeElems[node.id] = elem;
51571};
51572var clear = function clear() {
51573 nodeElems = {};
51574};
51575var positionNode = function positionNode(node) {
51576 var el = nodeElems[node.id];
51577 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].trace('Transforming node', node, 'translate(' + (node.x - node.width / 2 - 5) + ', ' + (node.y - node.height / 2 - 5) + ')');
51578 var padding = 8;
51579
51580 if (node.clusterNode) {
51581 el.attr('transform', 'translate(' + (node.x - node.width / 2 - padding) + ', ' + (node.y - node.height / 2 - padding) + ')');
51582 } else {
51583 el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');
51584 }
51585};
51586
51587/***/ }),
51588
51589/***/ "./src/dagre-wrapper/shapes/note.js":
51590/*!******************************************!*\
51591 !*** ./src/dagre-wrapper/shapes/note.js ***!
51592 \******************************************/
51593/*! exports provided: default */
51594/***/ (function(module, __webpack_exports__, __webpack_require__) {
51595
51596"use strict";
51597__webpack_require__.r(__webpack_exports__);
51598/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "./src/dagre-wrapper/shapes/util.js");
51599/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
51600/* harmony import */ var _intersect_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../intersect/index.js */ "./src/dagre-wrapper/intersect/index.js");
51601
51602 // eslint-disable-line
51603
51604
51605
51606var note = function note(parent, node) {
51607 var _labelHelper = Object(_util__WEBPACK_IMPORTED_MODULE_0__["labelHelper"])(parent, node, 'node ' + node.classes, true),
51608 shapeSvg = _labelHelper.shapeSvg,
51609 bbox = _labelHelper.bbox,
51610 halfPadding = _labelHelper.halfPadding;
51611
51612 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].info('Classes = ', node.classes); // add the rect
51613
51614 var rect = shapeSvg.insert('rect', ':first-child');
51615 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);
51616 Object(_util__WEBPACK_IMPORTED_MODULE_0__["updateNodeBounds"])(node, rect);
51617
51618 node.intersect = function (point) {
51619 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].rect(node, point);
51620 };
51621
51622 return shapeSvg;
51623};
51624
51625/* harmony default export */ __webpack_exports__["default"] = (note);
51626
51627/***/ }),
51628
51629/***/ "./src/dagre-wrapper/shapes/util.js":
51630/*!******************************************!*\
51631 !*** ./src/dagre-wrapper/shapes/util.js ***!
51632 \******************************************/
51633/*! exports provided: labelHelper, updateNodeBounds, insertPolygonShape */
51634/***/ (function(module, __webpack_exports__, __webpack_require__) {
51635
51636"use strict";
51637__webpack_require__.r(__webpack_exports__);
51638/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "labelHelper", function() { return labelHelper; });
51639/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateNodeBounds", function() { return updateNodeBounds; });
51640/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertPolygonShape", function() { return insertPolygonShape; });
51641/* harmony import */ var _createLabel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLabel */ "./src/dagre-wrapper/createLabel.js");
51642/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ "./src/config.js");
51643/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
51644
51645
51646
51647var labelHelper = function labelHelper(parent, node, _classes, isNode) {
51648 var classes;
51649
51650 if (!_classes) {
51651 classes = 'node default';
51652 } else {
51653 classes = _classes;
51654 } // Add outer g element
51655
51656
51657 var shapeSvg = parent.insert('g').attr('class', classes).attr('id', node.id); // Create the label and insert it after the rect
51658
51659 var label = shapeSvg.insert('g').attr('class', 'label');
51660 var text = label.node().appendChild(Object(_createLabel__WEBPACK_IMPORTED_MODULE_0__["default"])(node.labelText, node.labelStyle, false, isNode)); // Get the size of the label
51661
51662 var bbox = text.getBBox();
51663
51664 if (Object(_config__WEBPACK_IMPORTED_MODULE_1__["getConfig"])().flowchart.htmlLabels) {
51665 var div = text.children[0];
51666 var dv = Object(d3__WEBPACK_IMPORTED_MODULE_2__["select"])(text);
51667 bbox = div.getBoundingClientRect();
51668 dv.attr('width', bbox.width);
51669 dv.attr('height', bbox.height);
51670 }
51671
51672 var halfPadding = node.padding / 2; // Center the label
51673
51674 label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')');
51675 return {
51676 shapeSvg: shapeSvg,
51677 bbox: bbox,
51678 halfPadding: halfPadding,
51679 label: label
51680 };
51681};
51682var updateNodeBounds = function updateNodeBounds(node, element) {
51683 var bbox = element.node().getBBox();
51684 node.width = bbox.width;
51685 node.height = bbox.height;
51686};
51687function insertPolygonShape(parent, w, h, points) {
51688 return parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
51689 return d.x + ',' + d.y;
51690 }).join(' ')).attr('class', 'label-container').attr('transform', 'translate(' + -w / 2 + ',' + h / 2 + ')');
51691}
51692
51693/***/ }),
51694
51695/***/ "./src/defaultConfig.js":
51696/*!******************************!*\
51697 !*** ./src/defaultConfig.js ***!
51698 \******************************/
51699/*! exports provided: default */
51700/***/ (function(module, __webpack_exports__, __webpack_require__) {
51701
51702"use strict";
51703__webpack_require__.r(__webpack_exports__);
51704/* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./themes */ "./src/themes/index.js");
51705
51706/**
51707 * **Configuration methods in Mermaid version 8.6.0 have been updated, to learn more[[click here](8.6.0_docs.md)].**
51708 *
51709 * ## **What follows are config instructions for older versions**
51710 * These are the default options which can be overridden with the initialization call like so:
51711 * **Example 1:**
51712 * <pre>
51713 * mermaid.initialize({
51714 * flowchart:{
51715 * htmlLabels: false
51716 * }
51717 * });
51718 * </pre>
51719 *
51720 * **Example 2:**
51721 * <pre>
51722 * &lt;script>
51723 * var config = {
51724 * startOnLoad:true,
51725 * flowchart:{
51726 * useMaxWidth:true,
51727 * htmlLabels:true,
51728 * curve:'cardinal',
51729 * },
51730 *
51731 * securityLevel:'loose',
51732 * };
51733 * mermaid.initialize(config);
51734 * &lt;/script>
51735 * </pre>
51736 * A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults). A description of each option follows below.
51737 *
51738 * @name Configuration
51739 */
51740
51741var config = {
51742 /** theme , the CSS style sheet
51743 *
51744 * theme , the CSS style sheet
51745 *
51746 *| Parameter | Description |Type | Required | Values|
51747 *| --- | --- | --- | --- | --- |
51748 *| Theme |Built in Themes| String | Optional | Values include, default, forest, dark, neutral, null|
51749 *
51750 ***Notes:**To disable any pre-defined mermaid theme, use "null".
51751 * <pre>
51752 * "theme": "forest",
51753 * "themeCSS": ".node rect { fill: red; }"
51754 * </pre>
51755 */
51756 theme: 'default',
51757 themeVariables: _themes__WEBPACK_IMPORTED_MODULE_0__["default"]['default'].getThemeVariables(),
51758 themeCSS: undefined,
51759
51760 /* **maxTextSize** - The maximum allowed size of the users text diamgram */
51761 maxTextSize: 50000,
51762
51763 /**
51764 *| Parameter | Description |Type | Required | Values|
51765 *| --- | --- | --- | --- | --- |
51766 *|fontFamily | specifies the font to be used in the rendered diagrams| String | Required | Verdana, Arial, Trebuchet MS,|
51767 *
51768 ***notes: Default value is \\"trebuchet ms\\".
51769 */
51770 fontFamily: '"trebuchet ms", verdana, arial;',
51771
51772 /**
51773 *| Parameter | Description |Type | Required | Values|
51774 *| --- | --- | --- | --- | --- |
51775 *| logLevel |This option decides the amount of logging to be used.| String | Required | 1, 2, 3, 4, 5 |
51776 *
51777 *
51778 ***Notes:**
51779 *- debug: 1.
51780 *- info: 2.
51781 *- warn: 3.
51782 *- error: 4.
51783 *- fatal: 5(default).
51784 */
51785 logLevel: 5,
51786
51787 /**
51788 *| Parameter | Description |Type | Required | Values|
51789 *| --- | --- | --- | --- | --- |
51790 *| securitylevel | Level of trust for parsed diagram|String | Required | Strict, Loose, antiscript |
51791 *
51792 ***Notes:
51793 *- **strict**: (**default**) tags in text are encoded, click functionality is disabeled
51794 *- **loose**: tags in text are allowed, click functionality is enabled
51795 *- **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled
51796 */
51797 securityLevel: 'strict',
51798
51799 /**
51800 *| Parameter | Description |Type | Required | Values|
51801 *| --- | --- | --- | --- | --- |
51802 *| startOnLoad| Dictates whether mermaind starts on Page load | Boolean | Required | True, False |
51803 *
51804 ***Notes:**
51805 ***Default value: true**
51806 */
51807 startOnLoad: true,
51808
51809 /**
51810 *| Parameter | Description |Type | Required |Values|
51811 *| --- | --- | --- | --- | --- |
51812 *| arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | Boolean | Required | True, False |
51813 *
51814 *
51815 *## Notes**: This matters if you are using base tag settings.
51816 ***Default value: false**.
51817 */
51818 arrowMarkerAbsolute: false,
51819
51820 /**
51821 * This option controls which currentConfig keys are considered _secure_ and can only be changed via
51822 * call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to
51823 * the `secure` keys in the current currentConfig. This prevents malicious graph directives from
51824 * overriding a site's default security.
51825 */
51826 secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'],
51827
51828 /**
51829 * The object containing configurations specific for flowcharts
51830 */
51831 flowchart: {
51832 /**
51833 *| Parameter | Description |Type | Required | Values|
51834 *| --- | --- | --- | --- | --- |
51835 *| diagramPadding | amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
51836 *
51837 ***Notes:**The amount of padding around the diagram as a whole so that embedded diagrams have margins, expressed in pixels
51838 ***Default value: 8**.
51839 */
51840 diagramPadding: 8,
51841
51842 /**
51843 *| Parameter | Description |Type | Required | Values|
51844 *| --- | --- | --- | --- | --- |
51845 *| htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | Boolean| Required | True, False|
51846 *
51847 ***Notes: Default value: true**.
51848 */
51849 htmlLabels: true,
51850
51851 /**
51852 *| Parameter | Description |Type | Required | Values|
51853 *| --- | --- | --- | --- | --- |
51854 *| nodeSpacing | Defines the spacing between nodes on the same level | Integer| Required | Any positive Numbers |
51855 *
51856 ***Notes:
51857 *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.**
51858 ***Default value 50**.
51859 */
51860 nodeSpacing: 50,
51861
51862 /**
51863 *| Parameter | Description |Type | Required | Values|
51864 *| --- | --- | --- | --- | --- |
51865 *| rankSpacing | Defines the spacing between nodes on different levels | Integer | Required| Any Positive Numbers |
51866 *
51867 ***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.
51868 ***Default value 50**.
51869 */
51870 rankSpacing: 50,
51871
51872 /**
51873 *| Parameter | Description |Type | Required | Values|
51874 *| --- | --- | --- | --- | --- |
51875 *| curve | Defines how mermaid renders curves for flowcharts. | String | Required | Basis, Linear, Cardinal|
51876 *
51877 ***Notes:
51878 *Default Vaue: Linear**
51879 */
51880 curve: 'linear',
51881 // Only used in new experimental rendering
51882 // repreesents the padding between the labels and the shape
51883 padding: 15
51884 },
51885
51886 /**
51887 * The object containing configurations specific for sequence diagrams
51888 */
51889 sequence: {
51890 /**
51891 * widt of the activation rect
51892 * **Default value 10**.
51893 */
51894 activationWidth: 10,
51895
51896 /**
51897 *| Parameter | Description |Type | Required | Values|
51898 *| --- | --- | --- | --- | --- |
51899 *| diagramMarginX | margin to the right and left of the sequence diagram | Integer | Required | Any Positive Values |
51900 *
51901 ***Notes:**
51902 ***Default value 50**.
51903 */
51904 diagramMarginX: 50,
51905
51906 /**
51907 *| Parameter | Description |Type | Required | Values|
51908 *| --- | --- | --- | --- | --- |
51909 *| diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Values|
51910 *
51911 ***Notes:**
51912 ***Default value 10**.
51913 */
51914 diagramMarginY: 10,
51915
51916 /**
51917 *| Parameter | Description |Type | Required | Values|
51918 *| --- | --- | --- | --- | --- |
51919 *| actorMargin | Margin between actors. | Integer | Required | Any Positive Value |
51920 *
51921 ***Notes:**
51922 ***Default value 50**.
51923 */
51924 actorMargin: 50,
51925
51926 /**
51927 *| Parameter | Description |Type | Required | Values|
51928 *| --- | --- | --- | --- | --- |
51929 *| width | Width of actor boxes | Integer | Required | Any Positive Value |
51930 *
51931 ***Notes:**
51932 ***Default value 150**.
51933 */
51934 width: 150,
51935
51936 /**
51937 *| Parameter | Description |Type | Required | Values|
51938 *| --- | --- | --- | --- | --- |
51939 *| height | Height of actor boxes | Integer | Required | Any Positive Value|
51940 *
51941 ***Notes:**
51942 ***Default value 65**..
51943 */
51944 height: 65,
51945
51946 /**
51947 *| Parameter | Description |Type | Required | Values|
51948 *| --- | --- | --- | --- | --- |
51949 *| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
51950 *
51951 ***Notes:**
51952 *
51953 ***Default value 10**.
51954 */
51955 boxMargin: 10,
51956
51957 /**
51958 *| Parameter | Description |Type | Required | Values|
51959 *| --- | --- | --- | --- | --- |
51960 *| boxTextMargin| margin around the text in loop/alt/opt boxes | Integer | Required| Any Positive Value|
51961 *
51962 ***Notes:**
51963 *
51964 ***Default value 5**.
51965 */
51966 boxTextMargin: 5,
51967
51968 /**
51969 *| Parameter | Description |Type | Required | Values|
51970 *| --- | --- | --- | --- | --- |
51971 *| noteMargin | margin around notes. | Integer | Required | Any Positive Value |
51972 *
51973 ***Notes:**
51974 *
51975 ***Default value 10**.
51976 */
51977 noteMargin: 10,
51978
51979 /**
51980 *| Parameter | Description |Type | Required | Values|
51981 *| --- | --- | --- | --- | --- |
51982 *| messageMargin | Space between messages. | Integer | Required | Any Positive Value |
51983 *
51984 ***Notes:**
51985 *
51986 *Space between messages.
51987 ***Default value 35**.
51988 */
51989 messageMargin: 35,
51990
51991 /**
51992 *| Parameter | Description |Type | Required | Values|
51993 *| --- | --- | --- | --- | --- |
51994 *| messageAlign | Multiline message alignment | Integer | Required | left, center, right |
51995 *
51996 ***Notes:**center **default**
51997 */
51998 messageAlign: 'center',
51999
52000 /**
52001 *| Parameter | Description |Type | Required | Values|
52002 *| --- | --- | --- | --- | --- |
52003 *| mirrorActors | mirror actors under diagram. | Boolean| Required | True, False |
52004 *
52005 ***Notes:**
52006 *
52007 ***Default value true**.
52008 */
52009 mirrorActors: true,
52010
52011 /**
52012 *| Parameter | Description |Type | Required | Values|
52013 *| --- | --- | --- | --- | --- |
52014 *| bottomMarginAdj | Prolongs the edge of the diagram downwards. | Integer | Required | Any Positive Value |
52015 *
52016 ***Notes:**Depending on css styling this might need adjustment.
52017 ***Default value 1**.
52018 */
52019 bottomMarginAdj: 1,
52020
52021 /**
52022 *| Parameter | Description |Type | Required | Values|
52023 *| --- | --- | --- | --- | --- |
52024 *| useMaxWidth | See Notes | Boolean | Required | True, False |
52025 *
52026 ***Notes:**
52027 *when this flag is set to true, the height and width is set to 100% and is then scaling with the
52028 *available space. If set to false, the absolute space required is used.
52029 ***Default value: True**.
52030 */
52031 useMaxWidth: true,
52032
52033 /**
52034 *| Parameter | Description |Type | Required | Values|
52035 *| --- | --- | --- | --- | --- |
52036 *| rightAngles | display curve arrows as right angles| Boolean | Required | True, False |
52037 *
52038 ***Notes:**
52039 *
52040 *This will display arrows that start and begin at the same node as right angles, rather than a curve
52041 ***Default value false**.
52042 */
52043 rightAngles: false,
52044
52045 /**
52046 *| Parameter | Description |Type | Required | Values|
52047 *| --- | --- | --- | --- | --- |
52048 *| showSequenceNumbers | This will show the node numbers | Boolean | Required | True, False |
52049 *
52050 ***Notes:**
52051 ***Default value false**.
52052 */
52053 showSequenceNumbers: false,
52054
52055 /**
52056 *| Parameter | Description |Type | Required | Values|
52057 *| --- | --- | --- | --- | --- |
52058 *| actorFontSize| This sets the font size of the actor's description | Integer | Require | Any Positive Value |
52059 *
52060 ***Notes:**
52061 ***Default value 14**..
52062 */
52063 actorFontSize: 14,
52064
52065 /**
52066 *| Parameter | Description |Type | Required | Values|
52067 *| --- | --- | --- | --- | --- |
52068 *| actorFontFamily |This sets the font family of the actor's description | 3 | 4 | Open-Sans, Sans-Serif |
52069 *
52070 ***Notes:**
52071 ***Default value "Open-Sans", "sans-serif"**.
52072 */
52073 actorFontFamily: '"Open-Sans", "sans-serif"',
52074
52075 /**
52076 * This sets the font weight of the actor's description
52077 * **Default value 400.
52078 */
52079 actorFontWeight: 400,
52080
52081 /**
52082 *| Parameter | Description |Type | Required | Values|
52083 *| --- | --- | --- | --- | --- |
52084 *| noteFontSize |This sets the font size of actor-attached notes. | Integer | Required | Any Positive Value |
52085 *
52086 ***Notes:**
52087 ***Default value 14**..
52088 */
52089 noteFontSize: 14,
52090
52091 /**
52092 *| Parameter | Description |Type | Required | Values|
52093 *| --- | --- | --- | --- | --- |
52094 *| noteFontFamily| This sets the font family of actor-attached notes. | String | Required | trebuchet ms, verdana, arial |
52095 *
52096 ***Notes:**
52097 ***Default value: trebuchet ms **.
52098 */
52099 noteFontFamily: '"trebuchet ms", verdana, arial',
52100
52101 /**
52102 * This sets the font weight of the note's description
52103 * **Default value 400.
52104 */
52105 noteFontWeight: 400,
52106
52107 /**
52108 *| Parameter | Description |Type | Required | Values|
52109 *| --- | --- | --- | --- | --- |
52110 *| noteAlign | This sets the text alignment of actor-attached notes. | string | required | left, center, right|
52111 *
52112 ***Notes:**
52113 ***Default value center**.
52114 */
52115 noteAlign: 'center',
52116
52117 /**
52118 *| Parameter | Description |Type | Required | Values|
52119 *| --- | --- | --- | --- | --- |
52120 *| messageFontSize | This sets the font size of actor messages. | Integer | Required | Any Positive Number |
52121 *
52122 ***Notes:**
52123 ***Default value 16**.
52124 */
52125 messageFontSize: 16,
52126
52127 /**
52128 *| Parameter | Description |Type | Required | Values|
52129 *| --- | --- | --- | --- | --- |
52130 *| messageFontFamily | This sets the font family of actor messages. | String| Required | trebuchet ms", verdana, aria |
52131 *
52132 ***Notes:**
52133 ***Default value:"trebuchet ms**.
52134 */
52135 messageFontFamily: '"trebuchet ms", verdana, arial',
52136
52137 /**
52138 * This sets the font weight of the message's description
52139 * **Default value 400.
52140 */
52141 messageFontWeight: 400,
52142
52143 /**
52144 * This sets the auto-wrap state for the diagram
52145 * **Default value false.
52146 */
52147 wrap: false,
52148
52149 /**
52150 * This sets the auto-wrap padding for the diagram (sides only)
52151 * **Default value 10.
52152 */
52153 wrapPadding: 10,
52154
52155 /**
52156 * This sets the width of the loop-box (loop, alt, opt, par)
52157 * **Default value 50.
52158 */
52159 labelBoxWidth: 50,
52160
52161 /**
52162 * This sets the height of the loop-box (loop, alt, opt, par)
52163 * **Default value 20.
52164 */
52165 labelBoxHeight: 20,
52166 messageFont: function messageFont() {
52167 return {
52168 fontFamily: this.messageFontFamily,
52169 fontSize: this.messageFontSize,
52170 fontWeight: this.messageFontWeight
52171 };
52172 },
52173 noteFont: function noteFont() {
52174 return {
52175 fontFamily: this.noteFontFamily,
52176 fontSize: this.noteFontSize,
52177 fontWeight: this.noteFontWeight
52178 };
52179 },
52180 actorFont: function actorFont() {
52181 return {
52182 fontFamily: this.actorFontFamily,
52183 fontSize: this.actorFontSize,
52184 fontWeight: this.actorFontWeight
52185 };
52186 }
52187 },
52188
52189 /**
52190 * The object containing configurations specific for gantt diagrams*
52191 */
52192 gantt: {
52193 /**
52194 *### titleTopMargin
52195 *
52196 *| Parameter | Description |Type | Required | Values|
52197 *| --- | --- | --- | --- | --- |
52198 *| titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value |
52199 *
52200 ***Notes:**
52201 ***Default value 25**.
52202 */
52203 titleTopMargin: 25,
52204
52205 /**
52206 *| Parameter | Description |Type | Required | Values|
52207 *| --- | --- | --- | --- | --- |
52208 *| barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value |
52209 *
52210 ***Notes:**
52211 ***Default value 20**.
52212 */
52213 barHeight: 20,
52214
52215 /**
52216 *| Parameter | Description |Type | Required | Values|
52217 *| --- | --- | --- | --- | --- |
52218 *| barGap | The margin between the different activities in the gantt diagram. | Integer | Optional |Any Positive Value |
52219 *
52220 ***Notes:**
52221 ***Default value 4**.
52222 */
52223 barGap: 4,
52224
52225 /**
52226 *| Parameter | Description |Type | Required | Values|
52227 *| --- | --- | --- | --- | --- |
52228 *| topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value |
52229 *
52230 ***Notes:**
52231 ***Default value 50**.
52232 */
52233 topPadding: 50,
52234
52235 /**
52236 *| Parameter | Description |Type | Required | Values|
52237 *| --- | --- | --- | --- | --- |
52238 *| leftPadding | The space allocated for the section name to the left of the activities. | Integer| Required | Any Positive Value |
52239 *
52240 ***Notes:**
52241 ***Default value 75**.
52242 */
52243 leftPadding: 75,
52244
52245 /**
52246 *| Parameter | Description |Type | Required | Values|
52247 *| --- | --- | --- | --- | --- |
52248 *| gridLineStartPadding | Vertical starting position of the grid lines. | Integer | Required | Any Positive Value |
52249 *
52250 ***Notes:**
52251 ***Default value 35**.
52252 */
52253 gridLineStartPadding: 35,
52254
52255 /**
52256 *| Parameter | Description |Type | Required | Values|
52257 *| --- | --- | --- | --- | --- |
52258 *| fontSize | Font size| Integer | Required | Any Positive Value |
52259 *
52260 ***Notes:**
52261 ***Default value 11**.
52262 */
52263 fontSize: 11,
52264
52265 /**
52266 *| Parameter | Description |Type | Required | Values|
52267 *| --- | --- | --- | --- | --- |
52268 *| fontFamily | font Family | string | required |"Open-Sans", "sans-serif" |
52269 *
52270 ***Notes:**
52271 *
52272 ***Default value '"Open-Sans", "sans-serif"'**.
52273 */
52274 fontFamily: '"Open-Sans", "sans-serif"',
52275
52276 /**
52277 *| Parameter | Description |Type | Required | Values|
52278 *| --- | --- | --- | --- | --- |
52279 *| numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value |
52280 *
52281 ***Notes:**
52282 ***Default value 4**.
52283 */
52284 numberSectionStyles: 4,
52285
52286 /**
52287 *| Parameter | Description |Type | Required | Values|
52288 *| --- | --- | --- | --- | --- |
52289 *| axisFormat | Datetime format of the axis. | 3 | Required | Date in yy-mm-dd |
52290 *
52291 ***Notes:**
52292 *
52293 * This might need adjustment to match your locale and preferences
52294 ***Default value '%Y-%m-%d'**.
52295 */
52296 axisFormat: '%Y-%m-%d'
52297 },
52298
52299 /**
52300 * The object containing configurations specific for journey diagrams
52301 */
52302 journey: {
52303 /**
52304 *| Parameter | Description |Type | Required | Values|
52305 *| --- | --- | --- | --- | --- |
52306 *| diagramMarginX | margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
52307 *
52308 ***Notes:**
52309 ***Default value 50**.
52310 */
52311 diagramMarginX: 50,
52312
52313 /**
52314 *| Parameter | Description |Type | Required | Values|
52315 *| --- | --- | --- | --- | --- |
52316 *| diagramMarginY | margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value|
52317 *
52318 ***Notes:**
52319 ***Default value 10**..
52320 */
52321 diagramMarginY: 10,
52322
52323 /**
52324 *| Parameter | Description |Type | Required | Values|
52325 *| --- | --- | --- | --- | --- |
52326 *| actorMargin | Margin between actors. | Integer | Required | Any Positive Value|
52327 *
52328 ***Notes:**
52329 ***Default value 50**.
52330 */
52331 actorMargin: 50,
52332
52333 /**
52334 *| Parameter | Description |Type | Required | Values|
52335 *| --- | --- | --- | --- | --- |
52336 *| width | Width of actor boxes | Integer | Required | Any Positive Value |
52337 *
52338 ***Notes:**
52339 ***Default value 150**.
52340 */
52341 width: 150,
52342
52343 /**
52344 *| Parameter | Description |Type | Required | Values|
52345 *| --- | --- | --- | --- | --- |
52346 *| height | Height of actor boxes | Integer | Required | Any Positive Value |
52347 *
52348 ***Notes:**
52349 ***Default value 65**.
52350 */
52351 height: 65,
52352
52353 /**
52354 *| Parameter | Description |Type | Required | Values|
52355 *| --- | --- | --- | --- | --- |
52356 *| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
52357 *
52358 ***Notes:**
52359 ***Default value 10**.
52360 */
52361 boxMargin: 10,
52362
52363 /**
52364 *| Parameter | Description |Type | Required | Values|
52365 *| --- | --- | --- | --- | --- |
52366 *| boxTextMargin | margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
52367 *
52368 ***Notes:**
52369 */
52370 boxTextMargin: 5,
52371
52372 /**
52373 *| Parameter | Description |Type | Required | Values|
52374 *| --- | --- | --- | --- | --- |
52375 *| noteMargin | margin around notes. | Integer | Required | Any Positive Value |
52376 *
52377 ***Notes:**
52378 ***Default value 10**.
52379 */
52380 noteMargin: 10,
52381
52382 /**
52383 *| Parameter | Description |Type | Required | Values|
52384 *| --- | --- | --- | --- | --- |
52385 *| messageMargin |Space between messages. | Integer | Required | Any Positive Value |
52386 *
52387 ***Notes:**
52388 *
52389 *Space between messages.
52390 ***Default value 35**.
52391 */
52392 messageMargin: 35,
52393
52394 /**
52395 *| Parameter | Description |Type | Required | Values|
52396 *| --- | --- | --- | --- | --- |
52397 *| messageAlign |Multiline message alignment | 3 | 4 | left, center, right |
52398 *
52399 ***Notes:**default:center**
52400 */
52401 messageAlign: 'center',
52402
52403 /**
52404 *| Parameter | Description |Type | Required | Values|
52405 *| --- | --- | --- | --- | --- |
52406 *| bottomMarginAdj | Prolongs the edge of the diagram downwards. | Integer | 4 | Any Positive Value |
52407 *
52408 ***Notes:**Depending on css styling this might need adjustment.
52409 ***Default value 1**.
52410 */
52411 bottomMarginAdj: 1,
52412
52413 /**
52414 *| Parameter | Description |Type | Required | Values|
52415 *| --- | --- | --- | --- | --- |
52416 *| useMaxWidth | See notes | Boolean | 4 | True, False |
52417 *
52418 ***Notes:**when this flag is set the height and width is set to 100% and is then scaling with the
52419 *available space if not the absolute space required is used.
52420 *
52421 ***Default value true**.
52422 */
52423 useMaxWidth: true,
52424
52425 /**
52426 *| Parameter | Description |Type | Required | Values|
52427 *| --- | --- | --- | --- | --- |
52428 *| rightAngles | Curved Arrows become Right Angles, | 3 | 4 | True, False |
52429 *
52430 ***Notes:**This will display arrows that start and begin at the same node as right angles, rather than a curves
52431 ***Default value false**.
52432 */
52433 rightAngles: false
52434 },
52435 class: {
52436 arrowMarkerAbsolute: false
52437 },
52438 git: {
52439 arrowMarkerAbsolute: false
52440 },
52441 state: {
52442 dividerMargin: 10,
52443 sizeUnit: 5,
52444 padding: 8,
52445 textHeight: 10,
52446 titleShift: -15,
52447 noteMargin: 10,
52448 forkWidth: 70,
52449 forkHeight: 7,
52450 // Used
52451 miniPadding: 2,
52452 // Font size factor, this is used to guess the width of the edges labels before rendering by dagre
52453 // layout. This might need updating if/when switching font
52454 fontSizeFactor: 5.02,
52455 fontSize: 24,
52456 labelHeight: 16,
52457 edgeLengthFactor: '20',
52458 compositTitleSize: 35,
52459 radius: 5
52460 },
52461
52462 /**
52463 * The object containing configurations specific for entity relationship diagrams
52464 */
52465 er: {
52466 /**
52467 *| Parameter | Description |Type | Required | Values|
52468 *| --- | --- | --- | --- | --- |
52469 *| diagramPadding | amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
52470 *
52471 ***Notes:**The amount of padding around the diagram as a whole so that embedded diagrams have margins, expressed in pixels
52472 ***Default value: 20**.
52473 */
52474 diagramPadding: 20,
52475
52476 /**
52477 *| Parameter | Description |Type | Required | Values|
52478 *| --- | --- | --- | --- | --- |
52479 *| layoutDirection | Directional bias for layout of entities. | String | Required | "TB", "BT","LR","RL" |
52480 *
52481 ***Notes:**
52482 *'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.
52483 * T = top, B = bottom, L = left, and R = right.
52484 ***Default value: TB **.
52485 */
52486 layoutDirection: 'TB',
52487
52488 /**
52489 *| Parameter | Description |Type | Required | Values|
52490 *| --- | --- | --- | --- | --- |
52491 *| minEntityWidth | The mimimum width of an entity box, | Integer | Required| Any Positive Value |
52492 *
52493 ***Notes:**expressed in pixels
52494 ***Default value: 100**.
52495 */
52496 minEntityWidth: 100,
52497
52498 /**
52499 *| Parameter | Description |Type | Required | Values|
52500 *| --- | --- | --- | --- | --- |
52501 *| minEntityHeight| The minimum height of an entity box, | Integer | 4 | Any Positive Value |
52502 *
52503 ***Notes:**expressed in pixels
52504 ***Default value: 75 **
52505 */
52506 minEntityHeight: 75,
52507
52508 /**
52509 *| Parameter | Description |Type | Required | Values|
52510 *| --- | --- | --- | --- | --- |
52511 *| entityPadding|minimum internal padding betweentext in box and box borders| Integer | 4 | Any Positive Value |
52512 *
52513 ***Notes:**The minimum internal padding betweentext in an entity box and the enclosing box borders, expressed in pixels.
52514 ***Default value: 15 **
52515 */
52516 entityPadding: 15,
52517
52518 /**
52519 *| Parameter | Description |Type | Required | Values|
52520 *| --- | --- | --- | --- | --- |
52521 *| stroke | Stroke color of box edges and lines | String | 4 | Any recognized color |
52522 ***Default value: gray **
52523 */
52524 stroke: 'gray',
52525
52526 /**
52527 *| Parameter | Description |Type | Required | Values|
52528 *| --- | --- | --- | --- | --- |
52529 *| fill | Fill color of entity boxes | String | 4 | Any recognized color |
52530 *
52531 ***Notes:**
52532 ***Default value:'honeydew'**
52533 */
52534 fill: 'honeydew',
52535
52536 /**
52537 *| Parameter | Description |Type | Required | Values|
52538 *| --- | --- | --- | --- | --- |
52539 *| fontSize| Font Size in pixels| Integer | | Any Positive Value |
52540 *
52541 ***Notes:**Font size (expressed as an integer representing a number of pixels)
52542 ***Default value: 12 **
52543 */
52544 fontSize: 12,
52545
52546 /**
52547 *| Parameter | Description |Type | Required | Values|
52548 *| --- | --- | --- | --- | --- |
52549 *| useMaxWidth | See Notes | Boolean | Required | true, false |
52550 *
52551 ***Notes:**
52552 *When this flag is set to true, the diagram width is locked to 100% and
52553 *scaled based on available space. If set to false, the diagram reserves its
52554 *absolute width.
52555 ***Default value: true**.
52556 */
52557 useMaxWidth: true
52558 }
52559};
52560config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
52561config.git.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
52562/* harmony default export */ __webpack_exports__["default"] = (config);
52563
52564/***/ }),
52565
52566/***/ "./src/diagrams/class/classDb.js":
52567/*!***************************************!*\
52568 !*** ./src/diagrams/class/classDb.js ***!
52569 \***************************************/
52570/*! exports provided: parseDirective, addClass, lookUpDomId, clear, getClass, getClasses, getRelations, addRelation, addAnnotation, addMember, addMembers, cleanupLabel, setCssClass, setLink, setClickEvent, bindFunctions, lineType, relationType, default */
52571/***/ (function(module, __webpack_exports__, __webpack_require__) {
52572
52573"use strict";
52574__webpack_require__.r(__webpack_exports__);
52575/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDirective", function() { return parseDirective; });
52576/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addClass", function() { return addClass; });
52577/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lookUpDomId", function() { return lookUpDomId; });
52578/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
52579/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClass", function() { return getClass; });
52580/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClasses", function() { return getClasses; });
52581/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRelations", function() { return getRelations; });
52582/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addRelation", function() { return addRelation; });
52583/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addAnnotation", function() { return addAnnotation; });
52584/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addMember", function() { return addMember; });
52585/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addMembers", function() { return addMembers; });
52586/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cleanupLabel", function() { return cleanupLabel; });
52587/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setCssClass", function() { return setCssClass; });
52588/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLink", function() { return setLink; });
52589/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClickEvent", function() { return setClickEvent; });
52590/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindFunctions", function() { return bindFunctions; });
52591/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lineType", function() { return lineType; });
52592/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "relationType", function() { return relationType; });
52593/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
52594/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
52595/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config */ "./src/config.js");
52596/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
52597/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
52598/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
52599
52600
52601
52602
52603
52604
52605var MERMAID_DOM_ID_PREFIX = 'classid-';
52606var config = _config__WEBPACK_IMPORTED_MODULE_2__["getConfig"]();
52607var relations = [];
52608var classes = {};
52609var classCounter = 0;
52610var funs = [];
52611var parseDirective = function parseDirective(statement, context, type) {
52612 _mermaidAPI__WEBPACK_IMPORTED_MODULE_5__["default"].parseDirective(this, statement, context, type);
52613};
52614
52615var splitClassNameAndType = function splitClassNameAndType(id) {
52616 var genericType = '';
52617 var className = id;
52618
52619 if (id.indexOf('~') > 0) {
52620 var split = id.split('~');
52621 className = split[0];
52622 genericType = split[1];
52623 }
52624
52625 return {
52626 className: className,
52627 type: genericType
52628 };
52629};
52630/**
52631 * Function called by parser when a node definition has been found.
52632 * @param id
52633 * @public
52634 */
52635
52636
52637var addClass = function addClass(id) {
52638 var classId = splitClassNameAndType(id); // Only add class if not exists
52639
52640 if (typeof classes[classId.className] !== 'undefined') return;
52641 classes[classId.className] = {
52642 id: classId.className,
52643 type: classId.type,
52644 cssClasses: [],
52645 methods: [],
52646 members: [],
52647 annotations: [],
52648 domId: MERMAID_DOM_ID_PREFIX + classId.className + '-' + classCounter
52649 };
52650 classCounter++;
52651};
52652/**
52653 * Function to lookup domId from id in the graph definition.
52654 * @param id
52655 * @public
52656 */
52657
52658var lookUpDomId = function lookUpDomId(id) {
52659 var classKeys = Object.keys(classes);
52660
52661 for (var i = 0; i < classKeys.length; i++) {
52662 if (classes[classKeys[i]].id === id) {
52663 return classes[classKeys[i]].domId;
52664 }
52665 }
52666};
52667var clear = function clear() {
52668 relations = [];
52669 classes = {};
52670 funs = [];
52671 funs.push(setupToolTips);
52672};
52673var getClass = function getClass(id) {
52674 return classes[id];
52675};
52676var getClasses = function getClasses() {
52677 return classes;
52678};
52679var getRelations = function getRelations() {
52680 return relations;
52681};
52682var addRelation = function addRelation(relation) {
52683 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('Adding relation: ' + JSON.stringify(relation));
52684 addClass(relation.id1);
52685 addClass(relation.id2);
52686 relation.id1 = splitClassNameAndType(relation.id1).className;
52687 relation.id2 = splitClassNameAndType(relation.id2).className;
52688 relations.push(relation);
52689};
52690/**
52691 * Adds an annotation to the specified class
52692 * Annotations mark special properties of the given type (like 'interface' or 'service')
52693 * @param className The class name
52694 * @param annotation The name of the annotation without any brackets
52695 * @public
52696 */
52697
52698var addAnnotation = function addAnnotation(className, annotation) {
52699 var validatedClassName = splitClassNameAndType(className).className;
52700 classes[validatedClassName].annotations.push(annotation);
52701};
52702/**
52703 * Adds a member to the specified class
52704 * @param className The class name
52705 * @param member The full name of the member.
52706 * If the member is enclosed in <<brackets>> it is treated as an annotation
52707 * If the member is ending with a closing bracket ) it is treated as a method
52708 * Otherwise the member will be treated as a normal property
52709 * @public
52710 */
52711
52712var addMember = function addMember(className, member) {
52713 var validatedClassName = splitClassNameAndType(className).className;
52714 var theClass = classes[validatedClassName];
52715
52716 if (typeof member === 'string') {
52717 // Member can contain white spaces, we trim them out
52718 var memberString = member.trim();
52719
52720 if (memberString.startsWith('<<') && memberString.endsWith('>>')) {
52721 // Remove leading and trailing brackets
52722 theClass.annotations.push(memberString.substring(2, memberString.length - 2));
52723 } else if (memberString.indexOf(')') > 0) {
52724 theClass.methods.push(memberString);
52725 } else if (memberString) {
52726 theClass.members.push(memberString);
52727 }
52728 }
52729};
52730var addMembers = function addMembers(className, members) {
52731 if (Array.isArray(members)) {
52732 members.reverse();
52733 members.forEach(function (member) {
52734 return addMember(className, member);
52735 });
52736 }
52737};
52738var cleanupLabel = function cleanupLabel(label) {
52739 if (label.substring(0, 1) === ':') {
52740 return label.substr(1).trim();
52741 } else {
52742 return label.trim();
52743 }
52744};
52745/**
52746 * Called by parser when a special node is found, e.g. a clickable element.
52747 * @param ids Comma separated list of ids
52748 * @param className Class to add
52749 */
52750
52751var setCssClass = function setCssClass(ids, className) {
52752 ids.split(',').forEach(function (_id) {
52753 var id = _id;
52754 if (_id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id;
52755
52756 if (typeof classes[id] !== 'undefined') {
52757 classes[id].cssClasses.push(className);
52758 }
52759 });
52760};
52761/**
52762 * Called by parser when a link is found. Adds the URL to the vertex data.
52763 * @param ids Comma separated list of ids
52764 * @param linkStr URL to create a link for
52765 * @param tooltip Tooltip for the clickable element
52766 */
52767
52768var setLink = function setLink(ids, linkStr, tooltip) {
52769 ids.split(',').forEach(function (_id) {
52770 var id = _id;
52771 if (_id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id;
52772
52773 if (typeof classes[id] !== 'undefined') {
52774 classes[id].link = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].formatUrl(linkStr, config);
52775
52776 if (tooltip) {
52777 classes[id].tooltip = _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].sanitizeText(tooltip, config);
52778 }
52779 }
52780 });
52781 setCssClass(ids, 'clickable');
52782};
52783/**
52784 * Called by parser when a click definition is found. Registers an event handler.
52785 * @param ids Comma separated list of ids
52786 * @param functionName Function to be called on click
52787 * @param tooltip Tooltip for the clickable element
52788 */
52789
52790var setClickEvent = function setClickEvent(ids, functionName, tooltip) {
52791 ids.split(',').forEach(function (id) {
52792 setClickFunc(id, functionName, tooltip);
52793 });
52794 setCssClass(ids, 'clickable');
52795};
52796
52797var setClickFunc = function setClickFunc(domId, functionName, tooltip) {
52798 var id = domId;
52799 var elemId = lookUpDomId(id);
52800
52801 if (config.securityLevel !== 'loose') {
52802 return;
52803 }
52804
52805 if (typeof functionName === 'undefined') {
52806 return;
52807 }
52808
52809 if (typeof classes[id] !== 'undefined') {
52810 if (tooltip) {
52811 classes[id].tooltip = _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].sanitizeText(tooltip, config);
52812 }
52813
52814 funs.push(function () {
52815 var elem = document.querySelector("[id=\"".concat(elemId, "\"]"));
52816
52817 if (elem !== null) {
52818 elem.addEventListener('click', function () {
52819 _utils__WEBPACK_IMPORTED_MODULE_4__["default"].runFunc(functionName, elemId);
52820 }, false);
52821 }
52822 });
52823 }
52824};
52825
52826var bindFunctions = function bindFunctions(element) {
52827 funs.forEach(function (fun) {
52828 fun(element);
52829 });
52830};
52831var lineType = {
52832 LINE: 0,
52833 DOTTED_LINE: 1
52834};
52835var relationType = {
52836 AGGREGATION: 0,
52837 EXTENSION: 1,
52838 COMPOSITION: 2,
52839 DEPENDENCY: 3
52840};
52841
52842var setupToolTips = function setupToolTips(element) {
52843 var tooltipElem = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('.mermaidTooltip');
52844
52845 if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
52846 tooltipElem = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('body').append('div').attr('class', 'mermaidTooltip').style('opacity', 0);
52847 }
52848
52849 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(element).select('svg');
52850 var nodes = svg.selectAll('g.node');
52851 nodes.on('mouseover', function () {
52852 var el = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(this);
52853 var title = el.attr('title'); // Dont try to draw a tooltip if no data is provided
52854
52855 if (title === null) {
52856 return;
52857 }
52858
52859 var rect = this.getBoundingClientRect();
52860 tooltipElem.transition().duration(200).style('opacity', '.9');
52861 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');
52862 el.classed('hover', true);
52863 }).on('mouseout', function () {
52864 tooltipElem.transition().duration(500).style('opacity', 0);
52865 var el = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(this);
52866 el.classed('hover', false);
52867 });
52868};
52869
52870funs.push(setupToolTips);
52871/* harmony default export */ __webpack_exports__["default"] = ({
52872 parseDirective: parseDirective,
52873 getConfig: function getConfig() {
52874 return _config__WEBPACK_IMPORTED_MODULE_2__["getConfig"]().class;
52875 },
52876 addClass: addClass,
52877 bindFunctions: bindFunctions,
52878 clear: clear,
52879 getClass: getClass,
52880 getClasses: getClasses,
52881 addAnnotation: addAnnotation,
52882 getRelations: getRelations,
52883 addRelation: addRelation,
52884 addMember: addMember,
52885 addMembers: addMembers,
52886 cleanupLabel: cleanupLabel,
52887 lineType: lineType,
52888 relationType: relationType,
52889 setClickEvent: setClickEvent,
52890 setCssClass: setCssClass,
52891 setLink: setLink,
52892 lookUpDomId: lookUpDomId
52893});
52894
52895/***/ }),
52896
52897/***/ "./src/diagrams/class/classRenderer-v2.js":
52898/*!************************************************!*\
52899 !*** ./src/diagrams/class/classRenderer-v2.js ***!
52900 \************************************************/
52901/*! exports provided: addClasses, addRelations, setConf, drawOld, draw, default */
52902/***/ (function(module, __webpack_exports__, __webpack_require__) {
52903
52904"use strict";
52905__webpack_require__.r(__webpack_exports__);
52906/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addClasses", function() { return addClasses; });
52907/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addRelations", function() { return addRelations; });
52908/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
52909/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawOld", function() { return drawOld; });
52910/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
52911/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
52912/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dagre */ "./node_modules/dagre/index.js");
52913/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dagre__WEBPACK_IMPORTED_MODULE_1__);
52914/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
52915/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_2__);
52916/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
52917/* harmony import */ var _classDb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./classDb */ "./src/diagrams/class/classDb.js");
52918/* harmony import */ var _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./parser/classDiagram */ "./src/diagrams/class/parser/classDiagram.jison");
52919/* harmony import */ var _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__);
52920/* harmony import */ var _svgDraw__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./svgDraw */ "./src/diagrams/class/svgDraw.js");
52921/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../config */ "./src/config.js");
52922/* harmony import */ var _dagre_wrapper_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../dagre-wrapper/index.js */ "./src/dagre-wrapper/index.js");
52923/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
52924/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
52925
52926
52927
52928
52929
52930
52931
52932
52933 // import addHtmlLabel from 'dagre-d3/lib/label/add-html-label.js';
52934
52935
52936
52937
52938_parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].yy = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"];
52939var idCache = {};
52940var padding = 20;
52941var conf = {
52942 dividerMargin: 10,
52943 padding: 5,
52944 textHeight: 10
52945};
52946/**
52947 * Function that adds the vertices found during parsing to the graph to be rendered.
52948 * @param vert Object containing the vertices.
52949 * @param g The graph that is to be drawn.
52950 */
52951
52952var addClasses = function addClasses(classes, g) {
52953 // const svg = select(`[id="${svgId}"]`);
52954 var keys = Object.keys(classes);
52955 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('keys:', keys);
52956 _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
52957
52958 keys.forEach(function (id) {
52959 var vertex = classes[id];
52960 /**
52961 * Variable for storing the classes for the vertex
52962 * @type {string}
52963 */
52964
52965 var classStr = 'default'; // if (vertex.classes.length > 0) {
52966 // classStr = vertex.classes.join(' ');
52967 // }
52968
52969 var styles = {
52970 labelStyle: ''
52971 }; //getStylesFromArray(vertex.styles);
52972 // Use vertex id as text in the box if no text is provided by the graph definition
52973
52974 var vertexText = vertex.text !== undefined ? vertex.text : vertex.id; // We create a SVG label, either by delegating to addHtmlLabel or manually
52975 // let vertexNode;
52976 // if (getConfig().flowchart.htmlLabels) {
52977 // const node = {
52978 // label: vertexText.replace(
52979 // /fa[lrsb]?:fa-[\w-]+/g,
52980 // s => `<i class='${s.replace(':', ' ')}'></i>`
52981 // )
52982 // };
52983 // vertexNode = addHtmlLabel(svg, node).node();
52984 // vertexNode.parentNode.removeChild(vertexNode);
52985 // } else {
52986 // const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
52987 // svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));
52988 // const rows = vertexText.split(common.lineBreakRegex);
52989 // for (let j = 0; j < rows.length; j++) {
52990 // const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
52991 // tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
52992 // tspan.setAttribute('dy', '1em');
52993 // tspan.setAttribute('x', '1');
52994 // tspan.textContent = rows[j];
52995 // svgLabel.appendChild(tspan);
52996 // }
52997 // vertexNode = svgLabel;
52998 // }
52999
53000 var radious = 0;
53001 var _shape = ''; // Set the shape based parameters
53002
53003 switch (vertex.type) {
53004 case 'class':
53005 _shape = 'class_box';
53006 break;
53007
53008 default:
53009 _shape = 'class_box';
53010 } // Add the node
53011
53012
53013 g.setNode(vertex.id, {
53014 labelStyle: styles.labelStyle,
53015 shape: _shape,
53016 labelText: vertexText,
53017 classData: vertex,
53018 rx: radious,
53019 ry: radious,
53020 class: classStr,
53021 style: styles.style,
53022 id: vertex.id,
53023 width: vertex.type === 'group' ? 500 : undefined,
53024 type: vertex.type,
53025 padding: Object(_config__WEBPACK_IMPORTED_MODULE_7__["getConfig"])().flowchart.padding
53026 });
53027 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('setNode', {
53028 labelStyle: styles.labelStyle,
53029 shape: _shape,
53030 labelText: vertexText,
53031 rx: radious,
53032 ry: radious,
53033 class: classStr,
53034 style: styles.style,
53035 id: vertex.id,
53036 width: vertex.type === 'group' ? 500 : undefined,
53037 type: vertex.type,
53038 padding: Object(_config__WEBPACK_IMPORTED_MODULE_7__["getConfig"])().flowchart.padding
53039 });
53040 });
53041};
53042/**
53043 * Add edges to graph based on parsed graph defninition
53044 * @param {Object} edges The edges to add to the graph
53045 * @param {Object} g The graph object
53046 */
53047
53048var addRelations = function addRelations(relations, g) {
53049 var cnt = 0;
53050 var defaultStyle;
53051 var defaultLabelStyle; // if (typeof relations.defaultStyle !== 'undefined') {
53052 // const defaultStyles = getStylesFromArray(relations.defaultStyle);
53053 // defaultStyle = defaultStyles.style;
53054 // defaultLabelStyle = defaultStyles.labelStyle;
53055 // }
53056
53057 relations.forEach(function (edge) {
53058 cnt++;
53059 var edgeData = {}; //Set relationship style and line type
53060
53061 edgeData.classes = 'relation';
53062 edgeData.pattern = edge.relation.lineType == 1 ? 'dashed' : 'solid';
53063 edgeData.id = 'id' + cnt; // Set link type for rendering
53064
53065 if (edge.type === 'arrow_open') {
53066 edgeData.arrowhead = 'none';
53067 } else {
53068 edgeData.arrowhead = 'normal';
53069 }
53070
53071 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info(edgeData, edge); //Set relation arrow types
53072
53073 edgeData.arrowTypeStart = getArrowMarker(edge.relation.type1);
53074 edgeData.arrowTypeEnd = getArrowMarker(edge.relation.type2);
53075 var style = '';
53076 var labelStyle = '';
53077
53078 if (typeof edge.style !== 'undefined') {
53079 var styles = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["getStylesFromArray"])(edge.style);
53080 style = styles.style;
53081 labelStyle = styles.labelStyle;
53082 } else {
53083 style = 'fill:none';
53084
53085 if (typeof defaultStyle !== 'undefined') {
53086 style = defaultStyle;
53087 }
53088
53089 if (typeof defaultLabelStyle !== 'undefined') {
53090 labelStyle = defaultLabelStyle;
53091 }
53092 }
53093
53094 edgeData.style = style;
53095 edgeData.labelStyle = labelStyle;
53096
53097 if (typeof edge.interpolate !== 'undefined') {
53098 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(edge.interpolate, d3__WEBPACK_IMPORTED_MODULE_0__["curveLinear"]);
53099 } else if (typeof relations.defaultInterpolate !== 'undefined') {
53100 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(relations.defaultInterpolate, d3__WEBPACK_IMPORTED_MODULE_0__["curveLinear"]);
53101 } else {
53102 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(conf.curve, d3__WEBPACK_IMPORTED_MODULE_0__["curveLinear"]);
53103 }
53104
53105 edge.text = edge.title;
53106
53107 if (typeof edge.text === 'undefined') {
53108 if (typeof edge.style !== 'undefined') {
53109 edgeData.arrowheadStyle = 'fill: #333';
53110 }
53111 } else {
53112 edgeData.arrowheadStyle = 'fill: #333';
53113 edgeData.labelpos = 'c';
53114
53115 if (Object(_config__WEBPACK_IMPORTED_MODULE_7__["getConfig"])().flowchart.htmlLabels && false) {
53116 // eslint-disable-line
53117 edgeData.labelType = 'html';
53118 edgeData.label = '<span class="edgeLabel">' + edge.text + '</span>';
53119 } else {
53120 edgeData.labelType = 'text';
53121 edgeData.label = edge.text.replace(_common_common__WEBPACK_IMPORTED_MODULE_10__["default"].lineBreakRegex, '\n');
53122
53123 if (typeof edge.style === 'undefined') {
53124 edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none';
53125 }
53126
53127 edgeData.labelStyle = edgeData.labelStyle.replace('color:', 'fill:');
53128 }
53129 } // Add the edge to the graph
53130
53131
53132 g.setEdge(edge.id1, edge.id2, edgeData, cnt);
53133 });
53134}; // Todo optimize
53135
53136var getGraphId = function getGraphId(label) {
53137 var keys = Object.keys(idCache);
53138
53139 for (var i = 0; i < keys.length; i++) {
53140 if (idCache[keys[i]].label === label) {
53141 return keys[i];
53142 }
53143 }
53144
53145 return undefined;
53146};
53147
53148var setConf = function setConf(cnf) {
53149 var keys = Object.keys(cnf);
53150 keys.forEach(function (key) {
53151 conf[key] = cnf[key];
53152 });
53153};
53154/**
53155 * Draws a flowchart in the tag with id: id based on the graph definition in text.
53156 * @param text
53157 * @param id
53158 */
53159
53160var drawOld = function drawOld(text, id) {
53161 idCache = {};
53162 _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].yy.clear();
53163 _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].parse(text);
53164 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Rendering diagram ' + text); // Fetch the default direction, use TD if none was found
53165
53166 var diagram = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])("[id='".concat(id, "']")); // insertMarkers(diagram);
53167 // Layout graph, Create a new directed graph
53168
53169 var g = new graphlib__WEBPACK_IMPORTED_MODULE_2___default.a.Graph({
53170 multigraph: true
53171 }); // Set an object for the graph label
53172
53173 g.setGraph({
53174 isMultiGraph: true
53175 }); // Default to assigning a new object as a label for each new edge.
53176
53177 g.setDefaultEdgeLabel(function () {
53178 return {};
53179 });
53180 var classes = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].getClasses();
53181 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('classes:');
53182 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info(classes);
53183 var keys = Object.keys(classes);
53184
53185 for (var i = 0; i < keys.length; i++) {
53186 var classDef = classes[keys[i]];
53187 var node = _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].drawClass(diagram, classDef, conf);
53188 idCache[node.id] = node; // Add nodes to the graph. The first argument is the node id. The second is
53189 // metadata about the node. In this case we're going to add labels to each of
53190 // our nodes.
53191
53192 g.setNode(node.id, node);
53193 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Org height: ' + node.height);
53194 }
53195
53196 var relations = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].getRelations();
53197 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('relations:', relations);
53198 relations.forEach(function (relation) {
53199 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation));
53200 g.setEdge(getGraphId(relation.id1), getGraphId(relation.id2), {
53201 relation: relation
53202 }, relation.title || 'DEFAULT');
53203 });
53204 dagre__WEBPACK_IMPORTED_MODULE_1___default.a.layout(g);
53205 g.nodes().forEach(function (v) {
53206 if (typeof v !== 'undefined' && typeof g.node(v) !== 'undefined') {
53207 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Node ' + v + ': ' + JSON.stringify(g.node(v)));
53208 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) + ' )');
53209 }
53210 });
53211 g.edges().forEach(function (e) {
53212 if (typeof e !== 'undefined' && typeof g.edge(e) !== 'undefined') {
53213 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e)));
53214 _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].drawEdge(diagram, g.edge(e), g.edge(e).relation, conf);
53215 }
53216 });
53217 var svgBounds = diagram.node().getBBox();
53218 var width = svgBounds.width + padding * 2;
53219 var height = svgBounds.height + padding * 2;
53220
53221 if (conf.useMaxWidth) {
53222 diagram.attr('width', '100%');
53223 diagram.attr('style', "max-width: ".concat(width, "px;"));
53224 } else {
53225 diagram.attr('height', height);
53226 diagram.attr('width', width);
53227 } // Ensure the viewBox includes the whole svgBounds area with extra space for padding
53228
53229
53230 var vBox = "".concat(svgBounds.x - padding, " ").concat(svgBounds.y - padding, " ").concat(width, " ").concat(height);
53231 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug("viewBox ".concat(vBox));
53232 diagram.attr('viewBox', vBox);
53233};
53234var draw = function draw(text, id) {
53235 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Drawing class');
53236 _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].clear(); // const parser = classDb.parser;
53237 // parser.yy = classDb;
53238 // Parse the graph definition
53239 // try {
53240
53241 _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].parse(text); // } catch (err) {
53242 // logger.debug('Parsing failed');
53243 // }
53244 // Fetch the default direction, use TD if none was found
53245
53246 var dir = 'TD';
53247 var conf = Object(_config__WEBPACK_IMPORTED_MODULE_7__["getConfig"])().flowchart;
53248 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('config:', conf);
53249 var nodeSpacing = conf.nodeSpacing || 50;
53250 var rankSpacing = conf.rankSpacing || 50; // Create the input mermaid.graph
53251
53252 var g = new graphlib__WEBPACK_IMPORTED_MODULE_2___default.a.Graph({
53253 multigraph: true,
53254 compound: true
53255 }).setGraph({
53256 rankdir: dir,
53257 nodesep: nodeSpacing,
53258 ranksep: rankSpacing,
53259 marginx: 8,
53260 marginy: 8
53261 }).setDefaultEdgeLabel(function () {
53262 return {};
53263 }); // let subG;
53264 // const subGraphs = flowDb.getSubGraphs();
53265 // logger.info('Subgraphs - ', subGraphs);
53266 // for (let i = subGraphs.length - 1; i >= 0; i--) {
53267 // subG = subGraphs[i];
53268 // logger.info('Subgraph - ', subG);
53269 // flowDb.addVertex(subG.id, subG.title, 'group', undefined, subG.classes);
53270 // }
53271 // Fetch the verices/nodes and edges/links from the parsed graph definition
53272
53273 var classes = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].getClasses();
53274 var relations = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].getRelations();
53275 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info(relations); // let i = 0;
53276 // for (i = subGraphs.length - 1; i >= 0; i--) {
53277 // subG = subGraphs[i];
53278 // selectAll('cluster').append('text');
53279 // for (let j = 0; j < subG.nodes.length; j++) {
53280 // g.setParent(subG.nodes[j], subG.id);
53281 // }
53282 // }
53283
53284 addClasses(classes, g, id);
53285 addRelations(relations, g); // Add custom shapes
53286 // flowChartShapes.addToRenderV2(addShape);
53287 // Set up an SVG group so that we can translate the final graph.
53288
53289 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])("[id=\"".concat(id, "\"]")); // Run the renderer. This is what draws the final graph.
53290
53291 var element = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + id + ' g');
53292 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() {
53293 // return flowDb.getTooltip(this.id);
53294 // });
53295
53296 var padding = 8;
53297 var svgBounds = svg.node().getBBox();
53298 var width = svgBounds.width + padding * 2;
53299 var height = svgBounds.height + padding * 2;
53300 _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, ")"));
53301
53302 if (conf.useMaxWidth) {
53303 svg.attr('width', '100%');
53304 svg.attr('style', "max-width: ".concat(width, "px;"));
53305 } else {
53306 svg.attr('height', height);
53307 svg.attr('width', width);
53308 }
53309
53310 svg.attr('viewBox', "0 0 ".concat(width, " ").concat(height));
53311 svg.select('g').attr('transform', "translate(".concat(padding - g._label.marginx, ", ").concat(padding - svgBounds.y, ")")); // Index nodes
53312 // flowDb.indexNodes('subGraph' + i);
53313 // Add label rects for non html labels
53314
53315 if (!conf.htmlLabels) {
53316 var labels = document.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
53317
53318 for (var k = 0; k < labels.length; k++) {
53319 var label = labels[k]; // Get dimensions of label
53320
53321 var dim = label.getBBox();
53322 var rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
53323 rect.setAttribute('rx', 0);
53324 rect.setAttribute('ry', 0);
53325 rect.setAttribute('width', dim.width);
53326 rect.setAttribute('height', dim.height);
53327 rect.setAttribute('style', 'fill:#e8e8e8;');
53328 label.insertBefore(rect, label.firstChild);
53329 }
53330 } // If node has a link, wrap it in an anchor SVG object.
53331 // const keys = Object.keys(classes);
53332 // keys.forEach(function(key) {
53333 // const vertex = classes[key];
53334 // if (vertex.link) {
53335 // const node = select('#' + id + ' [id="' + key + '"]');
53336 // if (node) {
53337 // const link = document.createElementNS('http://www.w3.org/2000/svg', 'a');
53338 // link.setAttributeNS('http://www.w3.org/2000/svg', 'class', vertex.classes.join(' '));
53339 // link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertex.link);
53340 // link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener');
53341 // const linkNode = node.insert(function() {
53342 // return link;
53343 // }, ':first-child');
53344 // const shape = node.select('.label-container');
53345 // if (shape) {
53346 // linkNode.append(function() {
53347 // return shape.node();
53348 // });
53349 // }
53350 // const label = node.select('.label');
53351 // if (label) {
53352 // linkNode.append(function() {
53353 // return label.node();
53354 // });
53355 // }
53356 // }
53357 // }
53358 // });
53359
53360};
53361/* harmony default export */ __webpack_exports__["default"] = ({
53362 setConf: setConf,
53363 draw: draw
53364});
53365
53366function getArrowMarker(type) {
53367 var marker;
53368
53369 switch (type) {
53370 case 0:
53371 marker = 'aggregation';
53372 break;
53373
53374 case 1:
53375 marker = 'extension';
53376 break;
53377
53378 case 2:
53379 marker = 'composition';
53380 break;
53381
53382 case 3:
53383 marker = 'dependency';
53384 break;
53385
53386 default:
53387 marker = 'none';
53388 }
53389
53390 return marker;
53391}
53392
53393/***/ }),
53394
53395/***/ "./src/diagrams/class/classRenderer.js":
53396/*!*********************************************!*\
53397 !*** ./src/diagrams/class/classRenderer.js ***!
53398 \*********************************************/
53399/*! exports provided: setConf, draw, default */
53400/***/ (function(module, __webpack_exports__, __webpack_require__) {
53401
53402"use strict";
53403__webpack_require__.r(__webpack_exports__);
53404/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
53405/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
53406/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
53407/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dagre */ "./node_modules/dagre/index.js");
53408/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dagre__WEBPACK_IMPORTED_MODULE_1__);
53409/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
53410/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_2__);
53411/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
53412/* harmony import */ var _classDb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./classDb */ "./src/diagrams/class/classDb.js");
53413/* harmony import */ var _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./parser/classDiagram */ "./src/diagrams/class/parser/classDiagram.jison");
53414/* harmony import */ var _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__);
53415/* harmony import */ var _svgDraw__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./svgDraw */ "./src/diagrams/class/svgDraw.js");
53416
53417
53418
53419
53420
53421
53422
53423_parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].yy = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"];
53424var idCache = {};
53425var padding = 20;
53426var conf = {
53427 dividerMargin: 10,
53428 padding: 5,
53429 textHeight: 10
53430}; // Todo optimize
53431
53432var getGraphId = function getGraphId(label) {
53433 var keys = Object.keys(idCache);
53434
53435 for (var i = 0; i < keys.length; i++) {
53436 if (idCache[keys[i]].label === label) {
53437 return keys[i];
53438 }
53439 }
53440
53441 return undefined;
53442};
53443/**
53444 * Setup arrow head and define the marker. The result is appended to the svg.
53445 */
53446
53447
53448var insertMarkers = function insertMarkers(elem) {
53449 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');
53450 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
53451
53452 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');
53453 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');
53454 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');
53455 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');
53456 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');
53457 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');
53458};
53459
53460var setConf = function setConf(cnf) {
53461 var keys = Object.keys(cnf);
53462 keys.forEach(function (key) {
53463 conf[key] = cnf[key];
53464 });
53465};
53466/**
53467 * Draws a flowchart in the tag with id: id based on the graph definition in text.
53468 * @param text
53469 * @param id
53470 */
53471
53472var draw = function draw(text, id) {
53473 idCache = {};
53474 _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].yy.clear();
53475 _parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__["parser"].parse(text);
53476 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Rendering diagram ' + text); // Fetch the default direction, use TD if none was found
53477
53478 var diagram = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])("[id='".concat(id, "']"));
53479 insertMarkers(diagram); // Layout graph, Create a new directed graph
53480
53481 var g = new graphlib__WEBPACK_IMPORTED_MODULE_2___default.a.Graph({
53482 multigraph: true
53483 }); // Set an object for the graph label
53484
53485 g.setGraph({
53486 isMultiGraph: true
53487 }); // Default to assigning a new object as a label for each new edge.
53488
53489 g.setDefaultEdgeLabel(function () {
53490 return {};
53491 });
53492 var classes = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].getClasses();
53493 var keys = Object.keys(classes);
53494
53495 for (var i = 0; i < keys.length; i++) {
53496 var classDef = classes[keys[i]];
53497 var node = _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].drawClass(diagram, classDef, conf);
53498 idCache[node.id] = node; // Add nodes to the graph. The first argument is the node id. The second is
53499 // metadata about the node. In this case we're going to add labels to each of
53500 // our nodes.
53501
53502 g.setNode(node.id, node);
53503 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Org height: ' + node.height);
53504 }
53505
53506 var relations = _classDb__WEBPACK_IMPORTED_MODULE_4__["default"].getRelations();
53507 relations.forEach(function (relation) {
53508 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation));
53509 g.setEdge(getGraphId(relation.id1), getGraphId(relation.id2), {
53510 relation: relation
53511 }, relation.title || 'DEFAULT');
53512 });
53513 dagre__WEBPACK_IMPORTED_MODULE_1___default.a.layout(g);
53514 g.nodes().forEach(function (v) {
53515 if (typeof v !== 'undefined' && typeof g.node(v) !== 'undefined') {
53516 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Node ' + v + ': ' + JSON.stringify(g.node(v)));
53517 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) + ' )');
53518 }
53519 });
53520 g.edges().forEach(function (e) {
53521 if (typeof e !== 'undefined' && typeof g.edge(e) !== 'undefined') {
53522 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e)));
53523 _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].drawEdge(diagram, g.edge(e), g.edge(e).relation, conf);
53524 }
53525 });
53526 var svgBounds = diagram.node().getBBox();
53527 var width = svgBounds.width + padding * 2;
53528 var height = svgBounds.height + padding * 2;
53529
53530 if (conf.useMaxWidth) {
53531 diagram.attr('width', '100%');
53532 diagram.attr('style', "max-width: ".concat(width, "px;"));
53533 } else {
53534 diagram.attr('height', height);
53535 diagram.attr('width', width);
53536 } // Ensure the viewBox includes the whole svgBounds area with extra space for padding
53537
53538
53539 var vBox = "".concat(svgBounds.x - padding, " ").concat(svgBounds.y - padding, " ").concat(width, " ").concat(height);
53540 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug("viewBox ".concat(vBox));
53541 diagram.attr('viewBox', vBox);
53542};
53543/* harmony default export */ __webpack_exports__["default"] = ({
53544 setConf: setConf,
53545 draw: draw
53546});
53547
53548/***/ }),
53549
53550/***/ "./src/diagrams/class/parser/classDiagram.jison":
53551/*!******************************************************!*\
53552 !*** ./src/diagrams/class/parser/classDiagram.jison ***!
53553 \******************************************************/
53554/*! no static exports found */
53555/***/ (function(module, exports, __webpack_require__) {
53556
53557/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
53558/*
53559 Returns a Parser object of the following structure:
53560
53561 Parser: {
53562 yy: {}
53563 }
53564
53565 Parser.prototype: {
53566 yy: {},
53567 trace: function(),
53568 symbols_: {associative list: name ==> number},
53569 terminals_: {associative list: number ==> name},
53570 productions_: [...],
53571 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
53572 table: [...],
53573 defaultActions: {...},
53574 parseError: function(str, hash),
53575 parse: function(input),
53576
53577 lexer: {
53578 EOF: 1,
53579 parseError: function(str, hash),
53580 setInput: function(input),
53581 input: function(),
53582 unput: function(str),
53583 more: function(),
53584 less: function(n),
53585 pastInput: function(),
53586 upcomingInput: function(),
53587 showPosition: function(),
53588 test_match: function(regex_match_array, rule_index),
53589 next: function(),
53590 lex: function(),
53591 begin: function(condition),
53592 popState: function(),
53593 _currentRules: function(),
53594 topState: function(),
53595 pushState: function(condition),
53596
53597 options: {
53598 ranges: boolean (optional: true ==> token location info will include a .range[] member)
53599 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
53600 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)
53601 },
53602
53603 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
53604 rules: [...],
53605 conditions: {associative list: name ==> set},
53606 }
53607 }
53608
53609
53610 token location info (@$, _$, etc.): {
53611 first_line: n,
53612 last_line: n,
53613 first_column: n,
53614 last_column: n,
53615 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
53616 }
53617
53618
53619 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
53620 text: (matched text)
53621 token: (the produced terminal token, if any)
53622 line: (yylineno)
53623 }
53624 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
53625 loc: (yylloc)
53626 expected: (string describing the set of expected tokens)
53627 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
53628 }
53629*/
53630var parser = (function(){
53631var 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];
53632var parser = {trace: function trace () { },
53633yy: {},
53634symbols_: {"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},
53635terminals_: {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"},
53636productions_: [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]],
53637performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
53638/* this == yyval */
53639
53640var $0 = $$.length - 1;
53641switch (yystate) {
53642case 6:
53643 yy.parseDirective('%%{', 'open_directive');
53644break;
53645case 7:
53646 yy.parseDirective($$[$0], 'type_directive');
53647break;
53648case 8:
53649 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
53650break;
53651case 9:
53652 yy.parseDirective('}%%', 'close_directive', 'class');
53653break;
53654case 14:
53655 this.$=$$[$0];
53656break;
53657case 15:
53658 this.$=$$[$0-1]+$$[$0];
53659break;
53660case 16:
53661 this.$=$$[$0-2]+'~'+$$[$0-1]+$$[$0];
53662break;
53663case 17:
53664 this.$=$$[$0-1]+'~'+$$[$0];
53665break;
53666case 18:
53667 yy.addRelation($$[$0]);
53668break;
53669case 19:
53670 $$[$0-1].title = yy.cleanupLabel($$[$0]); yy.addRelation($$[$0-1]);
53671break;
53672case 26:
53673yy.addClass($$[$0]);
53674break;
53675case 27:
53676yy.addClass($$[$0-2]);yy.setCssClass($$[$0-2], $$[$0]);
53677break;
53678case 28:
53679/*console.log($$[$0-3],JSON.stringify($$[$0-1]));*/yy.addClass($$[$0-3]);yy.addMembers($$[$0-3],$$[$0-1]);
53680break;
53681case 29:
53682yy.addClass($$[$0-5]);yy.setCssClass($$[$0-5], $$[$0-3]);yy.addMembers($$[$0-5],$$[$0-1]);
53683break;
53684case 30:
53685 yy.addAnnotation($$[$0],$$[$0-2]);
53686break;
53687case 31:
53688 this.$ = [$$[$0]];
53689break;
53690case 32:
53691 $$[$0].push($$[$0-1]);this.$=$$[$0];
53692break;
53693case 33:
53694/*console.log('Rel found',$$[$0]);*/
53695break;
53696case 34:
53697yy.addMember($$[$0-1],yy.cleanupLabel($$[$0]));
53698break;
53699case 35:
53700/*console.warn('Member',$$[$0]);*/
53701break;
53702case 36:
53703/*console.log('sep found',$$[$0]);*/
53704break;
53705case 37:
53706 this.$ = {'id1':$$[$0-2],'id2':$$[$0], relation:$$[$0-1], relationTitle1:'none', relationTitle2:'none'};
53707break;
53708case 38:
53709 this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-1], relationTitle1:$$[$0-2], relationTitle2:'none'}
53710break;
53711case 39:
53712 this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-2], relationTitle1:'none', relationTitle2:$$[$0-1]};
53713break;
53714case 40:
53715 this.$ = {id1:$$[$0-4], id2:$$[$0], relation:$$[$0-2], relationTitle1:$$[$0-3], relationTitle2:$$[$0-1]}
53716break;
53717case 41:
53718 this.$={type1:$$[$0-2],type2:$$[$0],lineType:$$[$0-1]};
53719break;
53720case 42:
53721 this.$={type1:'none',type2:$$[$0],lineType:$$[$0-1]};
53722break;
53723case 43:
53724 this.$={type1:$$[$0-1],type2:'none',lineType:$$[$0]};
53725break;
53726case 44:
53727 this.$={type1:'none',type2:'none',lineType:$$[$0]};
53728break;
53729case 45:
53730 this.$=yy.relationType.AGGREGATION;
53731break;
53732case 46:
53733 this.$=yy.relationType.EXTENSION;
53734break;
53735case 47:
53736 this.$=yy.relationType.COMPOSITION;
53737break;
53738case 48:
53739 this.$=yy.relationType.DEPENDENCY;
53740break;
53741case 49:
53742this.$=yy.lineType.LINE;
53743break;
53744case 50:
53745this.$=yy.lineType.DOTTED_LINE;
53746break;
53747case 51:
53748this.$ = $$[$0-2];yy.setClickEvent($$[$0-1], $$[$0], undefined);
53749break;
53750case 52:
53751this.$ = $$[$0-3];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);
53752break;
53753case 53:
53754this.$ = $$[$0-2];yy.setLink($$[$0-1], $$[$0], undefined);
53755break;
53756case 54:
53757this.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1], $$[$0]);
53758break;
53759case 55:
53760yy.setCssClass($$[$0-1], $$[$0]);
53761break;
53762}
53763},
53764table: [{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])],
53765defaultActions: {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]},
53766parseError: function parseError (str, hash) {
53767 if (hash.recoverable) {
53768 this.trace(str);
53769 } else {
53770 var error = new Error(str);
53771 error.hash = hash;
53772 throw error;
53773 }
53774},
53775parse: function parse(input) {
53776 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
53777 var args = lstack.slice.call(arguments, 1);
53778 var lexer = Object.create(this.lexer);
53779 var sharedState = { yy: {} };
53780 for (var k in this.yy) {
53781 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
53782 sharedState.yy[k] = this.yy[k];
53783 }
53784 }
53785 lexer.setInput(input, sharedState.yy);
53786 sharedState.yy.lexer = lexer;
53787 sharedState.yy.parser = this;
53788 if (typeof lexer.yylloc == 'undefined') {
53789 lexer.yylloc = {};
53790 }
53791 var yyloc = lexer.yylloc;
53792 lstack.push(yyloc);
53793 var ranges = lexer.options && lexer.options.ranges;
53794 if (typeof sharedState.yy.parseError === 'function') {
53795 this.parseError = sharedState.yy.parseError;
53796 } else {
53797 this.parseError = Object.getPrototypeOf(this).parseError;
53798 }
53799 function popStack(n) {
53800 stack.length = stack.length - 2 * n;
53801 vstack.length = vstack.length - n;
53802 lstack.length = lstack.length - n;
53803 }
53804 function lex() {
53805 var token;
53806 token = tstack.pop() || lexer.lex() || EOF;
53807 if (typeof token !== 'number') {
53808 if (token instanceof Array) {
53809 tstack = token;
53810 token = tstack.pop();
53811 }
53812 token = self.symbols_[token] || token;
53813 }
53814 return token;
53815 }
53816 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
53817 while (true) {
53818 state = stack[stack.length - 1];
53819 if (this.defaultActions[state]) {
53820 action = this.defaultActions[state];
53821 } else {
53822 if (symbol === null || typeof symbol == 'undefined') {
53823 symbol = lex();
53824 }
53825 action = table[state] && table[state][symbol];
53826 }
53827 if (typeof action === 'undefined' || !action.length || !action[0]) {
53828 var errStr = '';
53829 expected = [];
53830 for (p in table[state]) {
53831 if (this.terminals_[p] && p > TERROR) {
53832 expected.push('\'' + this.terminals_[p] + '\'');
53833 }
53834 }
53835 if (lexer.showPosition) {
53836 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
53837 } else {
53838 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
53839 }
53840 this.parseError(errStr, {
53841 text: lexer.match,
53842 token: this.terminals_[symbol] || symbol,
53843 line: lexer.yylineno,
53844 loc: yyloc,
53845 expected: expected
53846 });
53847 }
53848 if (action[0] instanceof Array && action.length > 1) {
53849 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
53850 }
53851 switch (action[0]) {
53852 case 1:
53853 stack.push(symbol);
53854 vstack.push(lexer.yytext);
53855 lstack.push(lexer.yylloc);
53856 stack.push(action[1]);
53857 symbol = null;
53858 if (!preErrorSymbol) {
53859 yyleng = lexer.yyleng;
53860 yytext = lexer.yytext;
53861 yylineno = lexer.yylineno;
53862 yyloc = lexer.yylloc;
53863 if (recovering > 0) {
53864 recovering--;
53865 }
53866 } else {
53867 symbol = preErrorSymbol;
53868 preErrorSymbol = null;
53869 }
53870 break;
53871 case 2:
53872 len = this.productions_[action[1]][1];
53873 yyval.$ = vstack[vstack.length - len];
53874 yyval._$ = {
53875 first_line: lstack[lstack.length - (len || 1)].first_line,
53876 last_line: lstack[lstack.length - 1].last_line,
53877 first_column: lstack[lstack.length - (len || 1)].first_column,
53878 last_column: lstack[lstack.length - 1].last_column
53879 };
53880 if (ranges) {
53881 yyval._$.range = [
53882 lstack[lstack.length - (len || 1)].range[0],
53883 lstack[lstack.length - 1].range[1]
53884 ];
53885 }
53886 r = this.performAction.apply(yyval, [
53887 yytext,
53888 yyleng,
53889 yylineno,
53890 sharedState.yy,
53891 action[1],
53892 vstack,
53893 lstack
53894 ].concat(args));
53895 if (typeof r !== 'undefined') {
53896 return r;
53897 }
53898 if (len) {
53899 stack = stack.slice(0, -1 * len * 2);
53900 vstack = vstack.slice(0, -1 * len);
53901 lstack = lstack.slice(0, -1 * len);
53902 }
53903 stack.push(this.productions_[action[1]][0]);
53904 vstack.push(yyval.$);
53905 lstack.push(yyval._$);
53906 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
53907 stack.push(newState);
53908 break;
53909 case 3:
53910 return true;
53911 }
53912 }
53913 return true;
53914}};
53915
53916/* generated by jison-lex 0.3.4 */
53917var lexer = (function(){
53918var lexer = ({
53919
53920EOF:1,
53921
53922parseError:function parseError(str, hash) {
53923 if (this.yy.parser) {
53924 this.yy.parser.parseError(str, hash);
53925 } else {
53926 throw new Error(str);
53927 }
53928 },
53929
53930// resets the lexer, sets new input
53931setInput:function (input, yy) {
53932 this.yy = yy || this.yy || {};
53933 this._input = input;
53934 this._more = this._backtrack = this.done = false;
53935 this.yylineno = this.yyleng = 0;
53936 this.yytext = this.matched = this.match = '';
53937 this.conditionStack = ['INITIAL'];
53938 this.yylloc = {
53939 first_line: 1,
53940 first_column: 0,
53941 last_line: 1,
53942 last_column: 0
53943 };
53944 if (this.options.ranges) {
53945 this.yylloc.range = [0,0];
53946 }
53947 this.offset = 0;
53948 return this;
53949 },
53950
53951// consumes and returns one char from the input
53952input:function () {
53953 var ch = this._input[0];
53954 this.yytext += ch;
53955 this.yyleng++;
53956 this.offset++;
53957 this.match += ch;
53958 this.matched += ch;
53959 var lines = ch.match(/(?:\r\n?|\n).*/g);
53960 if (lines) {
53961 this.yylineno++;
53962 this.yylloc.last_line++;
53963 } else {
53964 this.yylloc.last_column++;
53965 }
53966 if (this.options.ranges) {
53967 this.yylloc.range[1]++;
53968 }
53969
53970 this._input = this._input.slice(1);
53971 return ch;
53972 },
53973
53974// unshifts one char (or a string) into the input
53975unput:function (ch) {
53976 var len = ch.length;
53977 var lines = ch.split(/(?:\r\n?|\n)/g);
53978
53979 this._input = ch + this._input;
53980 this.yytext = this.yytext.substr(0, this.yytext.length - len);
53981 //this.yyleng -= len;
53982 this.offset -= len;
53983 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
53984 this.match = this.match.substr(0, this.match.length - 1);
53985 this.matched = this.matched.substr(0, this.matched.length - 1);
53986
53987 if (lines.length - 1) {
53988 this.yylineno -= lines.length - 1;
53989 }
53990 var r = this.yylloc.range;
53991
53992 this.yylloc = {
53993 first_line: this.yylloc.first_line,
53994 last_line: this.yylineno + 1,
53995 first_column: this.yylloc.first_column,
53996 last_column: lines ?
53997 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
53998 + oldLines[oldLines.length - lines.length].length - lines[0].length :
53999 this.yylloc.first_column - len
54000 };
54001
54002 if (this.options.ranges) {
54003 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
54004 }
54005 this.yyleng = this.yytext.length;
54006 return this;
54007 },
54008
54009// When called from action, caches matched text and appends it on next action
54010more:function () {
54011 this._more = true;
54012 return this;
54013 },
54014
54015// 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.
54016reject:function () {
54017 if (this.options.backtrack_lexer) {
54018 this._backtrack = true;
54019 } else {
54020 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(), {
54021 text: "",
54022 token: null,
54023 line: this.yylineno
54024 });
54025
54026 }
54027 return this;
54028 },
54029
54030// retain first n characters of the match
54031less:function (n) {
54032 this.unput(this.match.slice(n));
54033 },
54034
54035// displays already matched input, i.e. for error messages
54036pastInput:function () {
54037 var past = this.matched.substr(0, this.matched.length - this.match.length);
54038 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
54039 },
54040
54041// displays upcoming input, i.e. for error messages
54042upcomingInput:function () {
54043 var next = this.match;
54044 if (next.length < 20) {
54045 next += this._input.substr(0, 20-next.length);
54046 }
54047 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
54048 },
54049
54050// displays the character position where the lexing error occurred, i.e. for error messages
54051showPosition:function () {
54052 var pre = this.pastInput();
54053 var c = new Array(pre.length + 1).join("-");
54054 return pre + this.upcomingInput() + "\n" + c + "^";
54055 },
54056
54057// test the lexed token: return FALSE when not a match, otherwise return token
54058test_match:function(match, indexed_rule) {
54059 var token,
54060 lines,
54061 backup;
54062
54063 if (this.options.backtrack_lexer) {
54064 // save context
54065 backup = {
54066 yylineno: this.yylineno,
54067 yylloc: {
54068 first_line: this.yylloc.first_line,
54069 last_line: this.last_line,
54070 first_column: this.yylloc.first_column,
54071 last_column: this.yylloc.last_column
54072 },
54073 yytext: this.yytext,
54074 match: this.match,
54075 matches: this.matches,
54076 matched: this.matched,
54077 yyleng: this.yyleng,
54078 offset: this.offset,
54079 _more: this._more,
54080 _input: this._input,
54081 yy: this.yy,
54082 conditionStack: this.conditionStack.slice(0),
54083 done: this.done
54084 };
54085 if (this.options.ranges) {
54086 backup.yylloc.range = this.yylloc.range.slice(0);
54087 }
54088 }
54089
54090 lines = match[0].match(/(?:\r\n?|\n).*/g);
54091 if (lines) {
54092 this.yylineno += lines.length;
54093 }
54094 this.yylloc = {
54095 first_line: this.yylloc.last_line,
54096 last_line: this.yylineno + 1,
54097 first_column: this.yylloc.last_column,
54098 last_column: lines ?
54099 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
54100 this.yylloc.last_column + match[0].length
54101 };
54102 this.yytext += match[0];
54103 this.match += match[0];
54104 this.matches = match;
54105 this.yyleng = this.yytext.length;
54106 if (this.options.ranges) {
54107 this.yylloc.range = [this.offset, this.offset += this.yyleng];
54108 }
54109 this._more = false;
54110 this._backtrack = false;
54111 this._input = this._input.slice(match[0].length);
54112 this.matched += match[0];
54113 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
54114 if (this.done && this._input) {
54115 this.done = false;
54116 }
54117 if (token) {
54118 return token;
54119 } else if (this._backtrack) {
54120 // recover context
54121 for (var k in backup) {
54122 this[k] = backup[k];
54123 }
54124 return false; // rule action called reject() implying the next rule should be tested instead.
54125 }
54126 return false;
54127 },
54128
54129// return next match in input
54130next:function () {
54131 if (this.done) {
54132 return this.EOF;
54133 }
54134 if (!this._input) {
54135 this.done = true;
54136 }
54137
54138 var token,
54139 match,
54140 tempMatch,
54141 index;
54142 if (!this._more) {
54143 this.yytext = '';
54144 this.match = '';
54145 }
54146 var rules = this._currentRules();
54147 for (var i = 0; i < rules.length; i++) {
54148 tempMatch = this._input.match(this.rules[rules[i]]);
54149 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
54150 match = tempMatch;
54151 index = i;
54152 if (this.options.backtrack_lexer) {
54153 token = this.test_match(tempMatch, rules[i]);
54154 if (token !== false) {
54155 return token;
54156 } else if (this._backtrack) {
54157 match = false;
54158 continue; // rule action called reject() implying a rule MISmatch.
54159 } else {
54160 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
54161 return false;
54162 }
54163 } else if (!this.options.flex) {
54164 break;
54165 }
54166 }
54167 }
54168 if (match) {
54169 token = this.test_match(match, rules[index]);
54170 if (token !== false) {
54171 return token;
54172 }
54173 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
54174 return false;
54175 }
54176 if (this._input === "") {
54177 return this.EOF;
54178 } else {
54179 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
54180 text: "",
54181 token: null,
54182 line: this.yylineno
54183 });
54184 }
54185 },
54186
54187// return next match that has a token
54188lex:function lex () {
54189 var r = this.next();
54190 if (r) {
54191 return r;
54192 } else {
54193 return this.lex();
54194 }
54195 },
54196
54197// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
54198begin:function begin (condition) {
54199 this.conditionStack.push(condition);
54200 },
54201
54202// pop the previously active lexer condition state off the condition stack
54203popState:function popState () {
54204 var n = this.conditionStack.length - 1;
54205 if (n > 0) {
54206 return this.conditionStack.pop();
54207 } else {
54208 return this.conditionStack[0];
54209 }
54210 },
54211
54212// produce the lexer rule set which is active for the currently active lexer condition state
54213_currentRules:function _currentRules () {
54214 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
54215 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
54216 } else {
54217 return this.conditions["INITIAL"].rules;
54218 }
54219 },
54220
54221// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
54222topState:function topState (n) {
54223 n = this.conditionStack.length - 1 - Math.abs(n || 0);
54224 if (n >= 0) {
54225 return this.conditionStack[n];
54226 } else {
54227 return "INITIAL";
54228 }
54229 },
54230
54231// alias for begin(condition)
54232pushState:function pushState (condition) {
54233 this.begin(condition);
54234 },
54235
54236// return the number of states currently on the stack
54237stateStackSize:function stateStackSize() {
54238 return this.conditionStack.length;
54239 },
54240options: {},
54241performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
54242var YYSTATE=YY_START;
54243switch($avoiding_name_collisions) {
54244case 0: this.begin('open_directive'); return 13;
54245break;
54246case 1: this.begin('type_directive'); return 14;
54247break;
54248case 2: this.popState(); this.begin('arg_directive'); return 11;
54249break;
54250case 3: this.popState(); this.popState(); return 16;
54251break;
54252case 4:return 15;
54253break;
54254case 5:/* skip comments */
54255break;
54256case 6:/* skip comments */
54257break;
54258case 7:return 10;
54259break;
54260case 8:/* skip whitespace */
54261break;
54262case 9:return 17;
54263break;
54264case 10:return 17;
54265break;
54266case 11: this.begin("struct"); /*console.log('Starting struct');*/ return 33;
54267break;
54268case 12:return "EOF_IN_STRUCT";
54269break;
54270case 13:return "OPEN_IN_STRUCT";
54271break;
54272case 14: /*console.log('Ending struct');*/this.popState(); return 35;
54273break;
54274case 15:/* nothing */
54275break;
54276case 16: /*console.log('lex-member: ' + yy_.yytext);*/ return "MEMBER";
54277break;
54278case 17:return 31;
54279break;
54280case 18:return 52;
54281break;
54282case 19:return 50;
54283break;
54284case 20:return 51;
54285break;
54286case 21:return 36;
54287break;
54288case 22:return 37;
54289break;
54290case 23:this.begin("generic");
54291break;
54292case 24:this.popState();
54293break;
54294case 25:return "GENERICTYPE";
54295break;
54296case 26:this.begin("string");
54297break;
54298case 27:this.popState();
54299break;
54300case 28:return "STR";
54301break;
54302case 29:return 45;
54303break;
54304case 30:return 45;
54305break;
54306case 31:return 47;
54307break;
54308case 32:return 47;
54309break;
54310case 33:return 46;
54311break;
54312case 34:return 44;
54313break;
54314case 35:return 48;
54315break;
54316case 36:return 49;
54317break;
54318case 37:return 25;
54319break;
54320case 38:return 32;
54321break;
54322case 39:return 64;
54323break;
54324case 40:return 'DOT';
54325break;
54326case 41:return 'PLUS';
54327break;
54328case 42:return 61;
54329break;
54330case 43:return 'EQUALS';
54331break;
54332case 44:return 'EQUALS';
54333break;
54334case 45:return 68;
54335break;
54336case 46:return 'PUNCTUATION';
54337break;
54338case 47:return 67;
54339break;
54340case 48:return 66;
54341break;
54342case 49:return 63;
54343break;
54344case 50:return 19;
54345break;
54346}
54347},
54348rules: [/^(?:%%\{)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\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)/,/^(?:$)/],
54349conditions: {"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}}
54350});
54351return lexer;
54352})();
54353parser.lexer = lexer;
54354function Parser () {
54355 this.yy = {};
54356}
54357Parser.prototype = parser;parser.Parser = Parser;
54358return new Parser;
54359})();
54360
54361
54362if (true) {
54363exports.parser = parser;
54364exports.Parser = parser.Parser;
54365exports.parse = function () { return parser.parse.apply(parser, arguments); };
54366exports.main = function commonjsMain (args) {
54367 if (!args[1]) {
54368 console.log('Usage: '+args[0]+' FILE');
54369 process.exit(1);
54370 }
54371 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");
54372 return exports.parser.parse(source);
54373};
54374if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
54375 exports.main(process.argv.slice(1));
54376}
54377}
54378/* 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)))
54379
54380/***/ }),
54381
54382/***/ "./src/diagrams/class/styles.js":
54383/*!**************************************!*\
54384 !*** ./src/diagrams/class/styles.js ***!
54385 \**************************************/
54386/*! exports provided: default */
54387/***/ (function(module, __webpack_exports__, __webpack_require__) {
54388
54389"use strict";
54390__webpack_require__.r(__webpack_exports__);
54391var getStyles = function getStyles(options) {
54392 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.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");
54393};
54394
54395/* harmony default export */ __webpack_exports__["default"] = (getStyles);
54396
54397/***/ }),
54398
54399/***/ "./src/diagrams/class/svgDraw.js":
54400/*!***************************************!*\
54401 !*** ./src/diagrams/class/svgDraw.js ***!
54402 \***************************************/
54403/*! exports provided: drawEdge, drawClass, parseMember, default */
54404/***/ (function(module, __webpack_exports__, __webpack_require__) {
54405
54406"use strict";
54407__webpack_require__.r(__webpack_exports__);
54408/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawEdge", function() { return drawEdge; });
54409/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawClass", function() { return drawClass; });
54410/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseMember", function() { return parseMember; });
54411/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
54412/* harmony import */ var _classDb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./classDb */ "./src/diagrams/class/classDb.js");
54413/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
54414/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
54415
54416
54417
54418
54419var edgeCount = 0;
54420var drawEdge = function drawEdge(elem, path, relation, conf) {
54421 var getRelationType = function getRelationType(type) {
54422 switch (type) {
54423 case _classDb__WEBPACK_IMPORTED_MODULE_1__["relationType"].AGGREGATION:
54424 return 'aggregation';
54425
54426 case _classDb__WEBPACK_IMPORTED_MODULE_1__["relationType"].EXTENSION:
54427 return 'extension';
54428
54429 case _classDb__WEBPACK_IMPORTED_MODULE_1__["relationType"].COMPOSITION:
54430 return 'composition';
54431
54432 case _classDb__WEBPACK_IMPORTED_MODULE_1__["relationType"].DEPENDENCY:
54433 return 'dependency';
54434 }
54435 };
54436
54437 path.points = path.points.filter(function (p) {
54438 return !Number.isNaN(p.y);
54439 }); // The data for our line
54440
54441 var lineData = path.points; // This is the accessor function we talked about above
54442
54443 var lineFunction = Object(d3__WEBPACK_IMPORTED_MODULE_0__["line"])().x(function (d) {
54444 return d.x;
54445 }).y(function (d) {
54446 return d.y;
54447 }).curve(d3__WEBPACK_IMPORTED_MODULE_0__["curveBasis"]);
54448 var svgPath = elem.append('path').attr('d', lineFunction(lineData)).attr('id', 'edge' + edgeCount).attr('class', 'relation');
54449 var url = '';
54450
54451 if (conf.arrowMarkerAbsolute) {
54452 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
54453 url = url.replace(/\(/g, '\\(');
54454 url = url.replace(/\)/g, '\\)');
54455 }
54456
54457 if (relation.relation.lineType == 1) {
54458 svgPath.attr('class', 'relation dashed-line');
54459 }
54460
54461 if (relation.relation.type1 !== 'none') {
54462 svgPath.attr('marker-start', 'url(' + url + '#' + getRelationType(relation.relation.type1) + 'Start' + ')');
54463 }
54464
54465 if (relation.relation.type2 !== 'none') {
54466 svgPath.attr('marker-end', 'url(' + url + '#' + getRelationType(relation.relation.type2) + 'End' + ')');
54467 }
54468
54469 var x, y;
54470 var l = path.points.length; // Calculate Label position
54471
54472 var labelPosition = _utils__WEBPACK_IMPORTED_MODULE_2__["default"].calcLabelPosition(path.points);
54473 x = labelPosition.x;
54474 y = labelPosition.y;
54475 var p1_card_x, p1_card_y;
54476 var p2_card_x, p2_card_y;
54477
54478 if (l % 2 !== 0 && l > 1) {
54479 var cardinality_1_point = _utils__WEBPACK_IMPORTED_MODULE_2__["default"].calcCardinalityPosition(relation.relation.type1 !== 'none', path.points, path.points[0]);
54480 var cardinality_2_point = _utils__WEBPACK_IMPORTED_MODULE_2__["default"].calcCardinalityPosition(relation.relation.type2 !== 'none', path.points, path.points[l - 1]);
54481 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('cardinality_1_point ' + JSON.stringify(cardinality_1_point));
54482 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('cardinality_2_point ' + JSON.stringify(cardinality_2_point));
54483 p1_card_x = cardinality_1_point.x;
54484 p1_card_y = cardinality_1_point.y;
54485 p2_card_x = cardinality_2_point.x;
54486 p2_card_y = cardinality_2_point.y;
54487 }
54488
54489 if (typeof relation.title !== 'undefined') {
54490 var g = elem.append('g').attr('class', 'classLabel');
54491 var label = g.append('text').attr('class', 'label').attr('x', x).attr('y', y).attr('fill', 'red').attr('text-anchor', 'middle').text(relation.title);
54492 window.label = label;
54493 var bounds = label.node().getBBox();
54494 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);
54495 }
54496
54497 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Rendering relation ' + JSON.stringify(relation));
54498
54499 if (typeof relation.relationTitle1 !== 'undefined' && relation.relationTitle1 !== 'none') {
54500 var _g = elem.append('g').attr('class', 'cardinality');
54501
54502 _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);
54503 }
54504
54505 if (typeof relation.relationTitle2 !== 'undefined' && relation.relationTitle2 !== 'none') {
54506 var _g2 = elem.append('g').attr('class', 'cardinality');
54507
54508 _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);
54509 }
54510
54511 edgeCount++;
54512};
54513var drawClass = function drawClass(elem, classDef, conf) {
54514 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info('Rendering class ' + classDef);
54515 var id = classDef.id;
54516 var classInfo = {
54517 id: id,
54518 label: classDef.id,
54519 width: 0,
54520 height: 0
54521 }; // add class group
54522
54523 var g = elem.append('g').attr('id', Object(_classDb__WEBPACK_IMPORTED_MODULE_1__["lookUpDomId"])(id)).attr('class', 'classGroup'); // add title
54524
54525 var title;
54526
54527 if (classDef.link) {
54528 title = g.append('svg:a').attr('xlink:href', classDef.link).attr('target', '_blank').append('text').attr('y', conf.textHeight + conf.padding).attr('x', 0);
54529 } else {
54530 title = g.append('text').attr('y', conf.textHeight + conf.padding).attr('x', 0);
54531 } // add annotations
54532
54533
54534 var isFirst = true;
54535 classDef.annotations.forEach(function (member) {
54536 var titleText2 = title.append('tspan').text('«' + member + '»');
54537 if (!isFirst) titleText2.attr('dy', conf.textHeight);
54538 isFirst = false;
54539 });
54540 var classTitleString = classDef.id;
54541
54542 if (classDef.type !== undefined && classDef.type !== '') {
54543 classTitleString += '<' + classDef.type + '>';
54544 }
54545
54546 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
54547
54548 if (!isFirst) classTitle.attr('dy', conf.textHeight);
54549 var titleHeight = title.node().getBBox().height;
54550 var membersLine = g.append('line') // text label for the x axis
54551 .attr('x1', 0).attr('y1', conf.padding + titleHeight + conf.dividerMargin / 2).attr('y2', conf.padding + titleHeight + conf.dividerMargin / 2);
54552 var members = g.append('text') // text label for the x axis
54553 .attr('x', conf.padding).attr('y', titleHeight + conf.dividerMargin + conf.textHeight).attr('fill', 'white').attr('class', 'classText');
54554 isFirst = true;
54555 classDef.members.forEach(function (member) {
54556 addTspan(members, member, isFirst, conf);
54557 isFirst = false;
54558 });
54559 var membersBox = members.node().getBBox();
54560 var methodsLine = g.append('line') // text label for the x axis
54561 .attr('x1', 0).attr('y1', conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr('y2', conf.padding + titleHeight + conf.dividerMargin + membersBox.height);
54562 var methods = g.append('text') // text label for the x axis
54563 .attr('x', conf.padding).attr('y', titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr('fill', 'white').attr('class', 'classText');
54564 isFirst = true;
54565 classDef.methods.forEach(function (method) {
54566 addTspan(methods, method, isFirst, conf);
54567 isFirst = false;
54568 });
54569 var classBox = g.node().getBBox();
54570 var cssClassStr = ' ';
54571
54572 if (classDef.cssClasses.length > 0) {
54573 cssClassStr = cssClassStr + classDef.cssClasses.join(' ');
54574 }
54575
54576 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);
54577 var rectWidth = rect.node().getBBox().width; // Center title
54578 // We subtract the width of each text element from the class box width and divide it by 2
54579
54580 title.node().childNodes.forEach(function (x) {
54581 x.setAttribute('x', (rectWidth - x.getBBox().width) / 2);
54582 });
54583
54584 if (classDef.tooltip) {
54585 title.insert('title').text(classDef.tooltip);
54586 }
54587
54588 membersLine.attr('x2', rectWidth);
54589 methodsLine.attr('x2', rectWidth);
54590 classInfo.width = rectWidth;
54591 classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin;
54592 return classInfo;
54593};
54594var parseMember = function parseMember(text) {
54595 var fieldRegEx = /(\+|-|~|#)?(\w+)(~\w+~|\[\])?\s+(\w+)/;
54596 var methodRegEx = /^([+|\-|~|#])?(\w+) *\( *(.*)\) *(\*|\$)? *(\w*[~|[\]]*\s*\w*~?)$/;
54597 var fieldMatch = text.match(fieldRegEx);
54598 var methodMatch = text.match(methodRegEx);
54599
54600 if (fieldMatch && !methodMatch) {
54601 return buildFieldDisplay(fieldMatch);
54602 } else if (methodMatch) {
54603 return buildMethodDisplay(methodMatch);
54604 } else {
54605 return buildLegacyDisplay(text);
54606 }
54607};
54608
54609var buildFieldDisplay = function buildFieldDisplay(parsedText) {
54610 var displayText = '';
54611
54612 try {
54613 var visibility = parsedText[1] ? parsedText[1].trim() : '';
54614 var fieldType = parsedText[2] ? parsedText[2].trim() : '';
54615 var genericType = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : '';
54616 var fieldName = parsedText[4] ? parsedText[4].trim() : '';
54617 displayText = visibility + fieldType + genericType + ' ' + fieldName;
54618 } catch (err) {
54619 displayText = parsedText;
54620 }
54621
54622 return {
54623 displayText: displayText,
54624 cssStyle: ''
54625 };
54626};
54627
54628var buildMethodDisplay = function buildMethodDisplay(parsedText) {
54629 var cssStyle = '';
54630 var displayText = '';
54631
54632 try {
54633 var visibility = parsedText[1] ? parsedText[1].trim() : '';
54634 var methodName = parsedText[2] ? parsedText[2].trim() : '';
54635 var parameters = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : '';
54636 var classifier = parsedText[4] ? parsedText[4].trim() : '';
54637 var returnType = parsedText[5] ? ' : ' + parseGenericTypes(parsedText[5]).trim() : '';
54638 displayText = visibility + methodName + '(' + parameters + ')' + returnType;
54639 cssStyle = parseClassifier(classifier);
54640 } catch (err) {
54641 displayText = parsedText;
54642 }
54643
54644 return {
54645 displayText: displayText,
54646 cssStyle: cssStyle
54647 };
54648};
54649
54650var buildLegacyDisplay = function buildLegacyDisplay(text) {
54651 // if for some reason we dont have any match, use old format to parse text
54652 var displayText = '';
54653 var cssStyle = '';
54654 var memberText = '';
54655 var returnType = '';
54656 var methodStart = text.indexOf('(');
54657 var methodEnd = text.indexOf(')');
54658
54659 if (methodStart > 1 && methodEnd > methodStart && methodEnd <= text.length) {
54660 var visibility = '';
54661 var methodName = '';
54662 var firstChar = text.substring(0, 1);
54663
54664 if (firstChar.match(/\w/)) {
54665 methodName = text.substring(0, methodStart).trim();
54666 } else {
54667 if (firstChar.match(/\+|-|~|#/)) {
54668 visibility = firstChar;
54669 }
54670
54671 methodName = text.substring(1, methodStart).trim();
54672 }
54673
54674 var parameters = text.substring(methodStart + 1, methodEnd);
54675 var classifier = text.substring(methodEnd + 1, 1);
54676 cssStyle = parseClassifier(classifier);
54677 displayText = visibility + methodName + '(' + parseGenericTypes(parameters.trim()) + ')';
54678
54679 if (methodEnd < memberText.length) {
54680 returnType = text.substring(methodEnd + 2).trim();
54681
54682 if (returnType !== '') {
54683 returnType = ' : ' + parseGenericTypes(returnType);
54684 }
54685 }
54686 } else {
54687 // finally - if all else fails, just send the text back as written (other than parsing for generic types)
54688 displayText = parseGenericTypes(text);
54689 }
54690
54691 return {
54692 displayText: displayText,
54693 cssStyle: cssStyle
54694 };
54695};
54696
54697var addTspan = function addTspan(textEl, txt, isFirst, conf) {
54698 var member = parseMember(txt);
54699 var tSpan = textEl.append('tspan').attr('x', conf.padding).text(member.displayText);
54700
54701 if (member.cssStyle !== '') {
54702 tSpan.attr('style', member.cssStyle);
54703 }
54704
54705 if (!isFirst) {
54706 tSpan.attr('dy', conf.textHeight);
54707 }
54708};
54709
54710var parseGenericTypes = function parseGenericTypes(text) {
54711 var cleanedText = text;
54712
54713 if (text.indexOf('~') != -1) {
54714 cleanedText = cleanedText.replace('~', '<');
54715 cleanedText = cleanedText.replace('~', '>');
54716 return parseGenericTypes(cleanedText);
54717 } else {
54718 return cleanedText;
54719 }
54720};
54721
54722var parseClassifier = function parseClassifier(classifier) {
54723 switch (classifier) {
54724 case '*':
54725 return 'font-style:italic;';
54726
54727 case '$':
54728 return 'text-decoration:underline;';
54729
54730 default:
54731 return '';
54732 }
54733};
54734
54735/* harmony default export */ __webpack_exports__["default"] = ({
54736 drawClass: drawClass,
54737 drawEdge: drawEdge,
54738 parseMember: parseMember
54739});
54740
54741/***/ }),
54742
54743/***/ "./src/diagrams/common/common.js":
54744/*!***************************************!*\
54745 !*** ./src/diagrams/common/common.js ***!
54746 \***************************************/
54747/*! exports provided: getRows, removeScript, sanitizeText, lineBreakRegex, hasBreaks, splitBreaks, default */
54748/***/ (function(module, __webpack_exports__, __webpack_require__) {
54749
54750"use strict";
54751__webpack_require__.r(__webpack_exports__);
54752/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRows", function() { return getRows; });
54753/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeScript", function() { return removeScript; });
54754/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sanitizeText", function() { return sanitizeText; });
54755/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lineBreakRegex", function() { return lineBreakRegex; });
54756/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasBreaks", function() { return hasBreaks; });
54757/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "splitBreaks", function() { return splitBreaks; });
54758var getRows = function getRows(s) {
54759 if (!s) return 1;
54760 var str = breakToPlaceholder(s);
54761 str = str.replace(/\\n/g, '#br#');
54762 return str.split('#br#');
54763};
54764var removeScript = function removeScript(txt) {
54765 var rs = '';
54766 var idx = 0;
54767
54768 while (idx >= 0) {
54769 idx = txt.indexOf('<script');
54770
54771 if (idx >= 0) {
54772 rs += txt.substr(0, idx);
54773 txt = txt.substr(idx + 1);
54774 idx = txt.indexOf('</script>');
54775
54776 if (idx >= 0) {
54777 idx += 9;
54778 txt = txt.substr(idx);
54779 }
54780 } else {
54781 rs += txt;
54782 idx = -1;
54783 break;
54784 }
54785 }
54786
54787 return rs;
54788};
54789var sanitizeText = function sanitizeText(text, config) {
54790 var txt = text;
54791 var htmlLabels = true;
54792
54793 if (config.flowchart && (config.flowchart.htmlLabels === false || config.flowchart.htmlLabels === 'false')) {
54794 htmlLabels = false;
54795 }
54796
54797 if (htmlLabels) {
54798 var level = config.securityLevel;
54799
54800 if (level === 'antiscript') {
54801 txt = removeScript(txt);
54802 } else if (level !== 'loose') {
54803 // eslint-disable-line
54804 txt = breakToPlaceholder(txt);
54805 txt = txt.replace(/</g, '&lt;').replace(/>/g, '&gt;');
54806 txt = txt.replace(/=/g, '&equals;');
54807 txt = placeholderToBreak(txt);
54808 }
54809 }
54810
54811 return txt;
54812};
54813var lineBreakRegex = /<br\s*\/?>/gi;
54814var hasBreaks = function hasBreaks(text) {
54815 return /<br\s*[/]?>/gi.test(text);
54816};
54817var splitBreaks = function splitBreaks(text) {
54818 return text.split(/<br\s*[/]?>/gi);
54819};
54820
54821var breakToPlaceholder = function breakToPlaceholder(s) {
54822 return s.replace(lineBreakRegex, '#br#');
54823};
54824
54825var placeholderToBreak = function placeholderToBreak(s) {
54826 return s.replace(/#br#/g, '<br/>');
54827};
54828
54829/* harmony default export */ __webpack_exports__["default"] = ({
54830 getRows: getRows,
54831 sanitizeText: sanitizeText,
54832 hasBreaks: hasBreaks,
54833 splitBreaks: splitBreaks,
54834 lineBreakRegex: lineBreakRegex,
54835 removeScript: removeScript
54836});
54837
54838/***/ }),
54839
54840/***/ "./src/diagrams/er/erDb.js":
54841/*!*********************************!*\
54842 !*** ./src/diagrams/er/erDb.js ***!
54843 \*********************************/
54844/*! exports provided: parseDirective, default */
54845/***/ (function(module, __webpack_exports__, __webpack_require__) {
54846
54847"use strict";
54848__webpack_require__.r(__webpack_exports__);
54849/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDirective", function() { return parseDirective; });
54850/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
54851/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
54852/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config */ "./src/config.js");
54853/**
54854 *
54855 */
54856
54857
54858
54859var entities = {};
54860var relationships = [];
54861var title = '';
54862var Cardinality = {
54863 ZERO_OR_ONE: 'ZERO_OR_ONE',
54864 ZERO_OR_MORE: 'ZERO_OR_MORE',
54865 ONE_OR_MORE: 'ONE_OR_MORE',
54866 ONLY_ONE: 'ONLY_ONE'
54867};
54868var Identification = {
54869 NON_IDENTIFYING: 'NON_IDENTIFYING',
54870 IDENTIFYING: 'IDENTIFYING'
54871};
54872var parseDirective = function parseDirective(statement, context, type) {
54873 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].parseDirective(this, statement, context, type);
54874};
54875
54876var addEntity = function addEntity(name) {
54877 if (typeof entities[name] === 'undefined') {
54878 entities[name] = name;
54879 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Added new entity :', name);
54880 }
54881};
54882
54883var getEntities = function getEntities() {
54884 return entities;
54885};
54886/**
54887 * Add a relationship
54888 * @param entA The first entity in the relationship
54889 * @param rolA The role played by the first entity in relation to the second
54890 * @param entB The second entity in the relationship
54891 * @param rSpec The details of the relationship between the two entities
54892 */
54893
54894
54895var addRelationship = function addRelationship(entA, rolA, entB, rSpec) {
54896 var rel = {
54897 entityA: entA,
54898 roleA: rolA,
54899 entityB: entB,
54900 relSpec: rSpec
54901 };
54902 relationships.push(rel);
54903 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Added new relationship :', rel);
54904};
54905
54906var getRelationships = function getRelationships() {
54907 return relationships;
54908}; // Keep this - TODO: revisit...allow the diagram to have a title
54909
54910
54911var setTitle = function setTitle(txt) {
54912 title = txt;
54913};
54914
54915var getTitle = function getTitle() {
54916 return title;
54917};
54918
54919var clear = function clear() {
54920 entities = {};
54921 relationships = [];
54922 title = '';
54923};
54924
54925/* harmony default export */ __webpack_exports__["default"] = ({
54926 Cardinality: Cardinality,
54927 Identification: Identification,
54928 parseDirective: parseDirective,
54929 getConfig: function getConfig() {
54930 return _config__WEBPACK_IMPORTED_MODULE_2__["getConfig"]().er;
54931 },
54932 addEntity: addEntity,
54933 getEntities: getEntities,
54934 addRelationship: addRelationship,
54935 getRelationships: getRelationships,
54936 clear: clear,
54937 setTitle: setTitle,
54938 getTitle: getTitle
54939});
54940
54941/***/ }),
54942
54943/***/ "./src/diagrams/er/erMarkers.js":
54944/*!**************************************!*\
54945 !*** ./src/diagrams/er/erMarkers.js ***!
54946 \**************************************/
54947/*! exports provided: default */
54948/***/ (function(module, __webpack_exports__, __webpack_require__) {
54949
54950"use strict";
54951__webpack_require__.r(__webpack_exports__);
54952var ERMarkers = {
54953 ONLY_ONE_START: 'ONLY_ONE_START',
54954 ONLY_ONE_END: 'ONLY_ONE_END',
54955 ZERO_OR_ONE_START: 'ZERO_OR_ONE_START',
54956 ZERO_OR_ONE_END: 'ZERO_OR_ONE_END',
54957 ONE_OR_MORE_START: 'ONE_OR_MORE_START',
54958 ONE_OR_MORE_END: 'ONE_OR_MORE_END',
54959 ZERO_OR_MORE_START: 'ZERO_OR_MORE_START',
54960 ZERO_OR_MORE_END: 'ZERO_OR_MORE_END'
54961};
54962/**
54963 * Put the markers into the svg DOM for later use with edge paths
54964 */
54965
54966var insertMarkers = function insertMarkers(elem, conf) {
54967 var marker;
54968 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');
54969 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');
54970 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');
54971 marker.append('circle').attr('stroke', conf.stroke).attr('fill', 'white').attr('cx', 21).attr('cy', 9).attr('r', 6);
54972 marker.append('path').attr('stroke', conf.stroke).attr('fill', 'none').attr('d', 'M9,0 L9,18');
54973 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');
54974 marker.append('circle').attr('stroke', conf.stroke).attr('fill', 'white').attr('cx', 9).attr('cy', 9).attr('r', 6);
54975 marker.append('path').attr('stroke', conf.stroke).attr('fill', 'none').attr('d', 'M21,0 L21,18');
54976 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');
54977 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');
54978 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');
54979 marker.append('circle').attr('stroke', conf.stroke).attr('fill', 'white').attr('cx', 48).attr('cy', 18).attr('r', 6);
54980 marker.append('path').attr('stroke', conf.stroke).attr('fill', 'none').attr('d', 'M0,18 Q18,0 36,18 Q18,36 0,18');
54981 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');
54982 marker.append('circle').attr('stroke', conf.stroke).attr('fill', 'white').attr('cx', 9).attr('cy', 18).attr('r', 6);
54983 marker.append('path').attr('stroke', conf.stroke).attr('fill', 'none').attr('d', 'M21,18 Q39,0 57,18 Q39,36 21,18');
54984 return;
54985};
54986
54987/* harmony default export */ __webpack_exports__["default"] = ({
54988 ERMarkers: ERMarkers,
54989 insertMarkers: insertMarkers
54990});
54991
54992/***/ }),
54993
54994/***/ "./src/diagrams/er/erRenderer.js":
54995/*!***************************************!*\
54996 !*** ./src/diagrams/er/erRenderer.js ***!
54997 \***************************************/
54998/*! exports provided: setConf, draw, default */
54999/***/ (function(module, __webpack_exports__, __webpack_require__) {
55000
55001"use strict";
55002__webpack_require__.r(__webpack_exports__);
55003/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
55004/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
55005/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
55006/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_0__);
55007/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
55008/* harmony import */ var _erDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./erDb */ "./src/diagrams/er/erDb.js");
55009/* harmony import */ var _parser_erDiagram__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parser/erDiagram */ "./src/diagrams/er/parser/erDiagram.jison");
55010/* harmony import */ var _parser_erDiagram__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_parser_erDiagram__WEBPACK_IMPORTED_MODULE_3__);
55011/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! dagre */ "./node_modules/dagre/index.js");
55012/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(dagre__WEBPACK_IMPORTED_MODULE_4__);
55013/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../config */ "./src/config.js");
55014/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
55015/* harmony import */ var _erMarkers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./erMarkers */ "./src/diagrams/er/erMarkers.js");
55016
55017
55018
55019
55020
55021
55022
55023
55024var conf = {};
55025/**
55026 * Allows the top-level API module to inject config specific to this renderer,
55027 * storing it in the local conf object. Note that generic config still needs to be
55028 * retrieved using getConfig() imported from the config module
55029 */
55030
55031var setConf = function setConf(cnf) {
55032 var keys = Object.keys(cnf);
55033
55034 for (var i = 0; i < keys.length; i++) {
55035 conf[keys[i]] = cnf[keys[i]];
55036 }
55037};
55038/**
55039 * Use D3 to construct the svg elements for the entities
55040 * @param svgNode the svg node that contains the diagram
55041 * @param entities The entities to be drawn
55042 * @param graph The graph that contains the vertex and edge definitions post-layout
55043 * @return The first entity that was inserted
55044 */
55045
55046var drawEntities = function drawEntities(svgNode, entities, graph) {
55047 var keys = Object.keys(entities);
55048 var firstOne;
55049 keys.forEach(function (id) {
55050 // Create a group for each entity
55051 var groupNode = svgNode.append('g').attr('id', id);
55052 firstOne = firstOne === undefined ? id : firstOne; // Label the entity - this is done first so that we can get the bounding box
55053 // which then determines the size of the rectangle
55054
55055 var textId = 'entity-' + id;
55056 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
55057
55058 var textBBox = textNode.node().getBBox();
55059 var entityWidth = Math.max(conf.minEntityWidth, textBBox.width + conf.entityPadding * 2);
55060 var entityHeight = Math.max(conf.minEntityHeight, textBBox.height + conf.entityPadding * 2); // Make sure the text gets centred relative to the entity box
55061
55062 textNode.attr('transform', 'translate(' + entityWidth / 2 + ',' + entityHeight / 2 + ')'); // Draw the rectangle - insert it before the text so that the text is not obscured
55063
55064 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);
55065 var rectBBox = rectNode.node().getBBox(); // Add the entity to the graph
55066
55067 graph.setNode(id, {
55068 width: rectBBox.width,
55069 height: rectBBox.height,
55070 shape: 'rect',
55071 id: id
55072 });
55073 });
55074 return firstOne;
55075}; // drawEntities
55076
55077
55078var adjustEntities = function adjustEntities(svgNode, graph) {
55079 graph.nodes().forEach(function (v) {
55080 if (typeof v !== 'undefined' && typeof graph.node(v) !== 'undefined') {
55081 svgNode.select('#' + v).attr('transform', 'translate(' + (graph.node(v).x - graph.node(v).width / 2) + ',' + (graph.node(v).y - graph.node(v).height / 2) + ' )');
55082 }
55083 });
55084 return;
55085};
55086
55087var getEdgeName = function getEdgeName(rel) {
55088 return (rel.entityA + rel.roleA + rel.entityB).replace(/\s/g, '');
55089};
55090/**
55091 * Add each relationship to the graph
55092 * @param relationships the relationships to be added
55093 * @param g the graph
55094 * @return {Array} The array of relationships
55095 */
55096
55097
55098var addRelationships = function addRelationships(relationships, g) {
55099 relationships.forEach(function (r) {
55100 g.setEdge(r.entityA, r.entityB, {
55101 relationship: r
55102 }, getEdgeName(r));
55103 });
55104 return relationships;
55105}; // addRelationships
55106
55107
55108var relCnt = 0;
55109/**
55110 * Draw a relationship using edge information from the graph
55111 * @param svg the svg node
55112 * @param rel the relationship to draw in the svg
55113 * @param g the graph containing the edge information
55114 * @param insert the insertion point in the svg DOM (because relationships have markers that need to sit 'behind' opaque entity boxes)
55115 */
55116
55117var drawRelationshipFromLayout = function drawRelationshipFromLayout(svg, rel, g, insert) {
55118 relCnt++; // Find the edge relating to this relationship
55119
55120 var edge = g.edge(rel.entityA, rel.entityB, getEdgeName(rel)); // Get a function that will generate the line path
55121
55122 var lineFunction = Object(d3__WEBPACK_IMPORTED_MODULE_1__["line"])().x(function (d) {
55123 return d.x;
55124 }).y(function (d) {
55125 return d.y;
55126 }).curve(d3__WEBPACK_IMPORTED_MODULE_1__["curveBasis"]); // Insert the line at the right place
55127
55128 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
55129
55130 if (rel.relSpec.relType === _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Identification.NON_IDENTIFYING) {
55131 svgPath.attr('stroke-dasharray', '8,8');
55132 } // TODO: Understand this better
55133
55134
55135 var url = '';
55136
55137 if (conf.arrowMarkerAbsolute) {
55138 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
55139 url = url.replace(/\(/g, '\\(');
55140 url = url.replace(/\)/g, '\\)');
55141 } // Decide which start and end markers it needs. It may be possible to be more concise here
55142 // by reversing a start marker to make an end marker...but this will do for now
55143 // Note that the 'A' entity's marker is at the end of the relationship and the 'B' entity's marker is at the start
55144
55145
55146 switch (rel.relSpec.cardA) {
55147 case _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Cardinality.ZERO_OR_ONE:
55148 svgPath.attr('marker-end', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].ERMarkers.ZERO_OR_ONE_END + ')');
55149 break;
55150
55151 case _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Cardinality.ZERO_OR_MORE:
55152 svgPath.attr('marker-end', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].ERMarkers.ZERO_OR_MORE_END + ')');
55153 break;
55154
55155 case _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Cardinality.ONE_OR_MORE:
55156 svgPath.attr('marker-end', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].ERMarkers.ONE_OR_MORE_END + ')');
55157 break;
55158
55159 case _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Cardinality.ONLY_ONE:
55160 svgPath.attr('marker-end', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].ERMarkers.ONLY_ONE_END + ')');
55161 break;
55162 }
55163
55164 switch (rel.relSpec.cardB) {
55165 case _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Cardinality.ZERO_OR_ONE:
55166 svgPath.attr('marker-start', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].ERMarkers.ZERO_OR_ONE_START + ')');
55167 break;
55168
55169 case _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Cardinality.ZERO_OR_MORE:
55170 svgPath.attr('marker-start', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].ERMarkers.ZERO_OR_MORE_START + ')');
55171 break;
55172
55173 case _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Cardinality.ONE_OR_MORE:
55174 svgPath.attr('marker-start', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].ERMarkers.ONE_OR_MORE_START + ')');
55175 break;
55176
55177 case _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].Cardinality.ONLY_ONE:
55178 svgPath.attr('marker-start', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].ERMarkers.ONLY_ONE_START + ')');
55179 break;
55180 } // Now label the relationship
55181 // Find the half-way point
55182
55183
55184 var len = svgPath.node().getTotalLength();
55185 var labelPoint = svgPath.node().getPointAtLength(len * 0.5); // Append a text node containing the label
55186
55187 var labelId = 'rel' + relCnt;
55188 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
55189
55190 var labelBBox = labelNode.node().getBBox(); // Insert the opaque rectangle before the text label
55191
55192 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%');
55193 return;
55194};
55195/**
55196 * Draw en E-R diagram in the tag with id: id based on the text definition of the diagram
55197 * @param text the text of the diagram
55198 * @param id the unique id of the DOM node that contains the diagram
55199 */
55200
55201
55202var draw = function draw(text, id) {
55203 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info('Drawing ER diagram');
55204 _erDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
55205 var parser = _parser_erDiagram__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
55206 parser.yy = _erDb__WEBPACK_IMPORTED_MODULE_2__["default"]; // Parse the text to populate erDb
55207
55208 try {
55209 parser.parse(text);
55210 } catch (err) {
55211 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].debug('Parsing failed');
55212 } // Get a reference to the svg node that contains the text
55213
55214
55215 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])("[id='".concat(id, "']")); // Add cardinality marker definitions to the svg
55216
55217 _erMarkers__WEBPACK_IMPORTED_MODULE_7__["default"].insertMarkers(svg, conf); // Now we have to construct the diagram in a specific way:
55218 // ---
55219 // 1. Create all the entities in the svg node at 0,0, but with the correct dimensions (allowing for text content)
55220 // 2. Make sure they are all added to the graph
55221 // 3. Add all the edges (relationships) to the graph aswell
55222 // 4. Let dagre do its magic to layout the graph. This assigns:
55223 // - the centre co-ordinates for each node, bearing in mind the dimensions and edge relationships
55224 // - the path co-ordinates for each edge
55225 // But it has no impact on the svg child nodes - the diagram remains with every entity rooted at 0,0
55226 // 5. Now assign a transform to each entity in the svg node so that it gets drawn in the correct place, as determined by
55227 // its centre point, which is obtained from the graph, and it's width and height
55228 // 6. And finally, create all the edges in the svg node using information from the graph
55229 // ---
55230 // Create the graph
55231
55232 var g; // TODO: Explore directed vs undirected graphs, and how the layout is affected
55233 // An E-R diagram could be said to be undirected, but there is merit in setting
55234 // the direction from parent to child in a one-to-many as this influences graphlib to
55235 // put the parent above the child (does it?), which is intuitive. Most relationships
55236 // in ER diagrams are one-to-many.
55237
55238 g = new graphlib__WEBPACK_IMPORTED_MODULE_0___default.a.Graph({
55239 multigraph: true,
55240 directed: true,
55241 compound: false
55242 }).setGraph({
55243 rankdir: conf.layoutDirection,
55244 marginx: 20,
55245 marginy: 20,
55246 nodesep: 100,
55247 edgesep: 100,
55248 ranksep: 100
55249 }).setDefaultEdgeLabel(function () {
55250 return {};
55251 }); // Draw the entities (at 0,0), returning the first svg node that got
55252 // inserted - this represents the insertion point for relationship paths
55253
55254 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
55255 // Add all the relationships to the graph
55256
55257 var relationships = addRelationships(_erDb__WEBPACK_IMPORTED_MODULE_2__["default"].getRelationships(), g);
55258 dagre__WEBPACK_IMPORTED_MODULE_4___default.a.layout(g); // Node and edge positions will be updated
55259 // Adjust the positions of the entities so that they adhere to the layout
55260
55261 adjustEntities(svg, g); // Draw the relationships
55262
55263 relationships.forEach(function (rel) {
55264 drawRelationshipFromLayout(svg, rel, g, firstEntity);
55265 });
55266 var padding = conf.diagramPadding;
55267 var svgBounds = svg.node().getBBox();
55268 var width = svgBounds.width + padding * 2;
55269 var height = svgBounds.height + padding * 2;
55270
55271 if (conf.useMaxWidth) {
55272 svg.attr('width', '100%');
55273 svg.attr('style', "max-width: ".concat(width, "px;"));
55274 } else {
55275 svg.attr('height', height);
55276 svg.attr('width', width);
55277 }
55278
55279 svg.attr('viewBox', "".concat(svgBounds.x - padding, " ").concat(svgBounds.y - padding, " ").concat(width, " ").concat(height));
55280}; // draw
55281
55282/* harmony default export */ __webpack_exports__["default"] = ({
55283 setConf: setConf,
55284 draw: draw
55285});
55286
55287/***/ }),
55288
55289/***/ "./src/diagrams/er/parser/erDiagram.jison":
55290/*!************************************************!*\
55291 !*** ./src/diagrams/er/parser/erDiagram.jison ***!
55292 \************************************************/
55293/*! no static exports found */
55294/***/ (function(module, exports, __webpack_require__) {
55295
55296/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
55297/*
55298 Returns a Parser object of the following structure:
55299
55300 Parser: {
55301 yy: {}
55302 }
55303
55304 Parser.prototype: {
55305 yy: {},
55306 trace: function(),
55307 symbols_: {associative list: name ==> number},
55308 terminals_: {associative list: number ==> name},
55309 productions_: [...],
55310 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
55311 table: [...],
55312 defaultActions: {...},
55313 parseError: function(str, hash),
55314 parse: function(input),
55315
55316 lexer: {
55317 EOF: 1,
55318 parseError: function(str, hash),
55319 setInput: function(input),
55320 input: function(),
55321 unput: function(str),
55322 more: function(),
55323 less: function(n),
55324 pastInput: function(),
55325 upcomingInput: function(),
55326 showPosition: function(),
55327 test_match: function(regex_match_array, rule_index),
55328 next: function(),
55329 lex: function(),
55330 begin: function(condition),
55331 popState: function(),
55332 _currentRules: function(),
55333 topState: function(),
55334 pushState: function(condition),
55335
55336 options: {
55337 ranges: boolean (optional: true ==> token location info will include a .range[] member)
55338 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
55339 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)
55340 },
55341
55342 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
55343 rules: [...],
55344 conditions: {associative list: name ==> set},
55345 }
55346 }
55347
55348
55349 token location info (@$, _$, etc.): {
55350 first_line: n,
55351 last_line: n,
55352 first_column: n,
55353 last_column: n,
55354 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
55355 }
55356
55357
55358 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
55359 text: (matched text)
55360 token: (the produced terminal token, if any)
55361 line: (yylineno)
55362 }
55363 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
55364 loc: (yylloc)
55365 expected: (string describing the set of expected tokens)
55366 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
55367 }
55368*/
55369var parser = (function(){
55370var 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];
55371var parser = {trace: function trace () { },
55372yy: {},
55373symbols_: {"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},
55374terminals_: {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"},
55375productions_: [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],[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]],
55376performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
55377/* this == yyval */
55378
55379var $0 = $$.length - 1;
55380switch (yystate) {
55381case 1:
55382 /*console.log('finished parsing');*/
55383break;
55384case 3:
55385 this.$ = []
55386break;
55387case 4:
55388$$[$0-1].push($$[$0]);this.$ = $$[$0-1]
55389break;
55390case 5: case 6:
55391 this.$ = $$[$0]
55392break;
55393case 7: case 8:
55394 this.$=[];
55395break;
55396case 12:
55397
55398 yy.addEntity($$[$0-4]);
55399 yy.addEntity($$[$0-2]);
55400 yy.addRelationship($$[$0-4], $$[$0], $$[$0-2], $$[$0-3]);
55401 /*console.log($$[$0-4] + $$[$0-3] + $$[$0-2] + ':' + $$[$0]);*/
55402
55403break;
55404case 13:
55405 this.$ = $$[$0]; /*console.log('Entity: ' + $$[$0]);*/
55406break;
55407case 14:
55408
55409 this.$ = { cardA: $$[$0], relType: $$[$0-1], cardB: $$[$0-2] };
55410 /*console.log('relSpec: ' + $$[$0] + $$[$0-1] + $$[$0-2]);*/
55411
55412break;
55413case 15:
55414 this.$ = yy.Cardinality.ZERO_OR_ONE;
55415break;
55416case 16:
55417 this.$ = yy.Cardinality.ZERO_OR_MORE;
55418break;
55419case 17:
55420 this.$ = yy.Cardinality.ONE_OR_MORE;
55421break;
55422case 18:
55423 this.$ = yy.Cardinality.ONLY_ONE;
55424break;
55425case 19:
55426 this.$ = yy.Identification.NON_IDENTIFYING;
55427break;
55428case 20:
55429 this.$ = yy.Identification.IDENTIFYING;
55430break;
55431case 21:
55432 this.$ = $$[$0].replace(/"/g, '');
55433break;
55434case 22:
55435 this.$ = $$[$0];
55436break;
55437case 23:
55438 yy.parseDirective('%%{', 'open_directive');
55439break;
55440case 24:
55441 yy.parseDirective($$[$0], 'type_directive');
55442break;
55443case 25:
55444 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
55445break;
55446case 26:
55447 yy.parseDirective('}%%', 'close_directive', 'er');
55448break;
55449}
55450},
55451table: [{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,23]},{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,24]),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]),{18:22,21:23,23:$V5,24:$V6,25:$V7,26:$V8},o([15,23,24,25,26],[2,13]),{11:[1,28]},{16:29,32:[1,30]},{11:[2,26]},o($V2,[2,5]),{17:31,20:$V3},{22:32,27:[1,33],28:[1,34]},o($V9,[2,15]),o($V9,[2,16]),o($V9,[2,17]),o($V9,[2,18]),o($Va,[2,9]),{14:35,33:$V4},{33:[2,25]},{15:[1,36]},{21:37,23:$V5,24:$V6,25:$V7,26:$V8},o($Vb,[2,19]),o($Vb,[2,20]),{11:[1,38]},{19:39,20:[1,41],29:[1,40]},{20:[2,14]},o($Va,[2,10]),o($V2,[2,12]),o($V2,[2,21]),o($V2,[2,22])],
55452defaultActions: {5:[2,23],7:[2,2],20:[2,26],30:[2,25],37:[2,14]},
55453parseError: function parseError (str, hash) {
55454 if (hash.recoverable) {
55455 this.trace(str);
55456 } else {
55457 var error = new Error(str);
55458 error.hash = hash;
55459 throw error;
55460 }
55461},
55462parse: function parse(input) {
55463 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
55464 var args = lstack.slice.call(arguments, 1);
55465 var lexer = Object.create(this.lexer);
55466 var sharedState = { yy: {} };
55467 for (var k in this.yy) {
55468 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
55469 sharedState.yy[k] = this.yy[k];
55470 }
55471 }
55472 lexer.setInput(input, sharedState.yy);
55473 sharedState.yy.lexer = lexer;
55474 sharedState.yy.parser = this;
55475 if (typeof lexer.yylloc == 'undefined') {
55476 lexer.yylloc = {};
55477 }
55478 var yyloc = lexer.yylloc;
55479 lstack.push(yyloc);
55480 var ranges = lexer.options && lexer.options.ranges;
55481 if (typeof sharedState.yy.parseError === 'function') {
55482 this.parseError = sharedState.yy.parseError;
55483 } else {
55484 this.parseError = Object.getPrototypeOf(this).parseError;
55485 }
55486 function popStack(n) {
55487 stack.length = stack.length - 2 * n;
55488 vstack.length = vstack.length - n;
55489 lstack.length = lstack.length - n;
55490 }
55491 function lex() {
55492 var token;
55493 token = tstack.pop() || lexer.lex() || EOF;
55494 if (typeof token !== 'number') {
55495 if (token instanceof Array) {
55496 tstack = token;
55497 token = tstack.pop();
55498 }
55499 token = self.symbols_[token] || token;
55500 }
55501 return token;
55502 }
55503 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
55504 while (true) {
55505 state = stack[stack.length - 1];
55506 if (this.defaultActions[state]) {
55507 action = this.defaultActions[state];
55508 } else {
55509 if (symbol === null || typeof symbol == 'undefined') {
55510 symbol = lex();
55511 }
55512 action = table[state] && table[state][symbol];
55513 }
55514 if (typeof action === 'undefined' || !action.length || !action[0]) {
55515 var errStr = '';
55516 expected = [];
55517 for (p in table[state]) {
55518 if (this.terminals_[p] && p > TERROR) {
55519 expected.push('\'' + this.terminals_[p] + '\'');
55520 }
55521 }
55522 if (lexer.showPosition) {
55523 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
55524 } else {
55525 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
55526 }
55527 this.parseError(errStr, {
55528 text: lexer.match,
55529 token: this.terminals_[symbol] || symbol,
55530 line: lexer.yylineno,
55531 loc: yyloc,
55532 expected: expected
55533 });
55534 }
55535 if (action[0] instanceof Array && action.length > 1) {
55536 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
55537 }
55538 switch (action[0]) {
55539 case 1:
55540 stack.push(symbol);
55541 vstack.push(lexer.yytext);
55542 lstack.push(lexer.yylloc);
55543 stack.push(action[1]);
55544 symbol = null;
55545 if (!preErrorSymbol) {
55546 yyleng = lexer.yyleng;
55547 yytext = lexer.yytext;
55548 yylineno = lexer.yylineno;
55549 yyloc = lexer.yylloc;
55550 if (recovering > 0) {
55551 recovering--;
55552 }
55553 } else {
55554 symbol = preErrorSymbol;
55555 preErrorSymbol = null;
55556 }
55557 break;
55558 case 2:
55559 len = this.productions_[action[1]][1];
55560 yyval.$ = vstack[vstack.length - len];
55561 yyval._$ = {
55562 first_line: lstack[lstack.length - (len || 1)].first_line,
55563 last_line: lstack[lstack.length - 1].last_line,
55564 first_column: lstack[lstack.length - (len || 1)].first_column,
55565 last_column: lstack[lstack.length - 1].last_column
55566 };
55567 if (ranges) {
55568 yyval._$.range = [
55569 lstack[lstack.length - (len || 1)].range[0],
55570 lstack[lstack.length - 1].range[1]
55571 ];
55572 }
55573 r = this.performAction.apply(yyval, [
55574 yytext,
55575 yyleng,
55576 yylineno,
55577 sharedState.yy,
55578 action[1],
55579 vstack,
55580 lstack
55581 ].concat(args));
55582 if (typeof r !== 'undefined') {
55583 return r;
55584 }
55585 if (len) {
55586 stack = stack.slice(0, -1 * len * 2);
55587 vstack = vstack.slice(0, -1 * len);
55588 lstack = lstack.slice(0, -1 * len);
55589 }
55590 stack.push(this.productions_[action[1]][0]);
55591 vstack.push(yyval.$);
55592 lstack.push(yyval._$);
55593 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
55594 stack.push(newState);
55595 break;
55596 case 3:
55597 return true;
55598 }
55599 }
55600 return true;
55601}};
55602
55603/* generated by jison-lex 0.3.4 */
55604var lexer = (function(){
55605var lexer = ({
55606
55607EOF:1,
55608
55609parseError:function parseError(str, hash) {
55610 if (this.yy.parser) {
55611 this.yy.parser.parseError(str, hash);
55612 } else {
55613 throw new Error(str);
55614 }
55615 },
55616
55617// resets the lexer, sets new input
55618setInput:function (input, yy) {
55619 this.yy = yy || this.yy || {};
55620 this._input = input;
55621 this._more = this._backtrack = this.done = false;
55622 this.yylineno = this.yyleng = 0;
55623 this.yytext = this.matched = this.match = '';
55624 this.conditionStack = ['INITIAL'];
55625 this.yylloc = {
55626 first_line: 1,
55627 first_column: 0,
55628 last_line: 1,
55629 last_column: 0
55630 };
55631 if (this.options.ranges) {
55632 this.yylloc.range = [0,0];
55633 }
55634 this.offset = 0;
55635 return this;
55636 },
55637
55638// consumes and returns one char from the input
55639input:function () {
55640 var ch = this._input[0];
55641 this.yytext += ch;
55642 this.yyleng++;
55643 this.offset++;
55644 this.match += ch;
55645 this.matched += ch;
55646 var lines = ch.match(/(?:\r\n?|\n).*/g);
55647 if (lines) {
55648 this.yylineno++;
55649 this.yylloc.last_line++;
55650 } else {
55651 this.yylloc.last_column++;
55652 }
55653 if (this.options.ranges) {
55654 this.yylloc.range[1]++;
55655 }
55656
55657 this._input = this._input.slice(1);
55658 return ch;
55659 },
55660
55661// unshifts one char (or a string) into the input
55662unput:function (ch) {
55663 var len = ch.length;
55664 var lines = ch.split(/(?:\r\n?|\n)/g);
55665
55666 this._input = ch + this._input;
55667 this.yytext = this.yytext.substr(0, this.yytext.length - len);
55668 //this.yyleng -= len;
55669 this.offset -= len;
55670 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
55671 this.match = this.match.substr(0, this.match.length - 1);
55672 this.matched = this.matched.substr(0, this.matched.length - 1);
55673
55674 if (lines.length - 1) {
55675 this.yylineno -= lines.length - 1;
55676 }
55677 var r = this.yylloc.range;
55678
55679 this.yylloc = {
55680 first_line: this.yylloc.first_line,
55681 last_line: this.yylineno + 1,
55682 first_column: this.yylloc.first_column,
55683 last_column: lines ?
55684 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
55685 + oldLines[oldLines.length - lines.length].length - lines[0].length :
55686 this.yylloc.first_column - len
55687 };
55688
55689 if (this.options.ranges) {
55690 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
55691 }
55692 this.yyleng = this.yytext.length;
55693 return this;
55694 },
55695
55696// When called from action, caches matched text and appends it on next action
55697more:function () {
55698 this._more = true;
55699 return this;
55700 },
55701
55702// 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.
55703reject:function () {
55704 if (this.options.backtrack_lexer) {
55705 this._backtrack = true;
55706 } else {
55707 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(), {
55708 text: "",
55709 token: null,
55710 line: this.yylineno
55711 });
55712
55713 }
55714 return this;
55715 },
55716
55717// retain first n characters of the match
55718less:function (n) {
55719 this.unput(this.match.slice(n));
55720 },
55721
55722// displays already matched input, i.e. for error messages
55723pastInput:function () {
55724 var past = this.matched.substr(0, this.matched.length - this.match.length);
55725 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
55726 },
55727
55728// displays upcoming input, i.e. for error messages
55729upcomingInput:function () {
55730 var next = this.match;
55731 if (next.length < 20) {
55732 next += this._input.substr(0, 20-next.length);
55733 }
55734 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
55735 },
55736
55737// displays the character position where the lexing error occurred, i.e. for error messages
55738showPosition:function () {
55739 var pre = this.pastInput();
55740 var c = new Array(pre.length + 1).join("-");
55741 return pre + this.upcomingInput() + "\n" + c + "^";
55742 },
55743
55744// test the lexed token: return FALSE when not a match, otherwise return token
55745test_match:function(match, indexed_rule) {
55746 var token,
55747 lines,
55748 backup;
55749
55750 if (this.options.backtrack_lexer) {
55751 // save context
55752 backup = {
55753 yylineno: this.yylineno,
55754 yylloc: {
55755 first_line: this.yylloc.first_line,
55756 last_line: this.last_line,
55757 first_column: this.yylloc.first_column,
55758 last_column: this.yylloc.last_column
55759 },
55760 yytext: this.yytext,
55761 match: this.match,
55762 matches: this.matches,
55763 matched: this.matched,
55764 yyleng: this.yyleng,
55765 offset: this.offset,
55766 _more: this._more,
55767 _input: this._input,
55768 yy: this.yy,
55769 conditionStack: this.conditionStack.slice(0),
55770 done: this.done
55771 };
55772 if (this.options.ranges) {
55773 backup.yylloc.range = this.yylloc.range.slice(0);
55774 }
55775 }
55776
55777 lines = match[0].match(/(?:\r\n?|\n).*/g);
55778 if (lines) {
55779 this.yylineno += lines.length;
55780 }
55781 this.yylloc = {
55782 first_line: this.yylloc.last_line,
55783 last_line: this.yylineno + 1,
55784 first_column: this.yylloc.last_column,
55785 last_column: lines ?
55786 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
55787 this.yylloc.last_column + match[0].length
55788 };
55789 this.yytext += match[0];
55790 this.match += match[0];
55791 this.matches = match;
55792 this.yyleng = this.yytext.length;
55793 if (this.options.ranges) {
55794 this.yylloc.range = [this.offset, this.offset += this.yyleng];
55795 }
55796 this._more = false;
55797 this._backtrack = false;
55798 this._input = this._input.slice(match[0].length);
55799 this.matched += match[0];
55800 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
55801 if (this.done && this._input) {
55802 this.done = false;
55803 }
55804 if (token) {
55805 return token;
55806 } else if (this._backtrack) {
55807 // recover context
55808 for (var k in backup) {
55809 this[k] = backup[k];
55810 }
55811 return false; // rule action called reject() implying the next rule should be tested instead.
55812 }
55813 return false;
55814 },
55815
55816// return next match in input
55817next:function () {
55818 if (this.done) {
55819 return this.EOF;
55820 }
55821 if (!this._input) {
55822 this.done = true;
55823 }
55824
55825 var token,
55826 match,
55827 tempMatch,
55828 index;
55829 if (!this._more) {
55830 this.yytext = '';
55831 this.match = '';
55832 }
55833 var rules = this._currentRules();
55834 for (var i = 0; i < rules.length; i++) {
55835 tempMatch = this._input.match(this.rules[rules[i]]);
55836 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
55837 match = tempMatch;
55838 index = i;
55839 if (this.options.backtrack_lexer) {
55840 token = this.test_match(tempMatch, rules[i]);
55841 if (token !== false) {
55842 return token;
55843 } else if (this._backtrack) {
55844 match = false;
55845 continue; // rule action called reject() implying a rule MISmatch.
55846 } else {
55847 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
55848 return false;
55849 }
55850 } else if (!this.options.flex) {
55851 break;
55852 }
55853 }
55854 }
55855 if (match) {
55856 token = this.test_match(match, rules[index]);
55857 if (token !== false) {
55858 return token;
55859 }
55860 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
55861 return false;
55862 }
55863 if (this._input === "") {
55864 return this.EOF;
55865 } else {
55866 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
55867 text: "",
55868 token: null,
55869 line: this.yylineno
55870 });
55871 }
55872 },
55873
55874// return next match that has a token
55875lex:function lex () {
55876 var r = this.next();
55877 if (r) {
55878 return r;
55879 } else {
55880 return this.lex();
55881 }
55882 },
55883
55884// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
55885begin:function begin (condition) {
55886 this.conditionStack.push(condition);
55887 },
55888
55889// pop the previously active lexer condition state off the condition stack
55890popState:function popState () {
55891 var n = this.conditionStack.length - 1;
55892 if (n > 0) {
55893 return this.conditionStack.pop();
55894 } else {
55895 return this.conditionStack[0];
55896 }
55897 },
55898
55899// produce the lexer rule set which is active for the currently active lexer condition state
55900_currentRules:function _currentRules () {
55901 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
55902 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
55903 } else {
55904 return this.conditions["INITIAL"].rules;
55905 }
55906 },
55907
55908// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
55909topState:function topState (n) {
55910 n = this.conditionStack.length - 1 - Math.abs(n || 0);
55911 if (n >= 0) {
55912 return this.conditionStack[n];
55913 } else {
55914 return "INITIAL";
55915 }
55916 },
55917
55918// alias for begin(condition)
55919pushState:function pushState (condition) {
55920 this.begin(condition);
55921 },
55922
55923// return the number of states currently on the stack
55924stateStackSize:function stateStackSize() {
55925 return this.conditionStack.length;
55926 },
55927options: {"case-insensitive":true},
55928performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
55929var YYSTATE=YY_START;
55930switch($avoiding_name_collisions) {
55931case 0: this.begin('open_directive'); return 30;
55932break;
55933case 1: this.begin('type_directive'); return 31;
55934break;
55935case 2: this.popState(); this.begin('arg_directive'); return 15;
55936break;
55937case 3: this.popState(); this.popState(); return 33;
55938break;
55939case 4:return 32;
55940break;
55941case 5:/* skip comments */
55942break;
55943case 6:/* skip comments */
55944break;
55945case 7:return 11;
55946break;
55947case 8:/* skip whitespace */
55948break;
55949case 9:return 9;
55950break;
55951case 10:return 29;
55952break;
55953case 11:return 4;
55954break;
55955case 12:return 23;
55956break;
55957case 13:return 24;
55958break;
55959case 14:return 25;
55960break;
55961case 15:return 26;
55962break;
55963case 16:return 23;
55964break;
55965case 17:return 24;
55966break;
55967case 18:return 25;
55968break;
55969case 19:return 27;
55970break;
55971case 20:return 28;
55972break;
55973case 21:return 27;
55974break;
55975case 22:return 27;
55976break;
55977case 23:return 20;
55978break;
55979case 24:return yy_.yytext[0];
55980break;
55981case 25:return 6;
55982break;
55983}
55984},
55985rules: [/^(?:%%\{)/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],
55986conditions: {"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}}
55987});
55988return lexer;
55989})();
55990parser.lexer = lexer;
55991function Parser () {
55992 this.yy = {};
55993}
55994Parser.prototype = parser;parser.Parser = Parser;
55995return new Parser;
55996})();
55997
55998
55999if (true) {
56000exports.parser = parser;
56001exports.Parser = parser.Parser;
56002exports.parse = function () { return parser.parse.apply(parser, arguments); };
56003exports.main = function commonjsMain (args) {
56004 if (!args[1]) {
56005 console.log('Usage: '+args[0]+' FILE');
56006 process.exit(1);
56007 }
56008 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");
56009 return exports.parser.parse(source);
56010};
56011if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
56012 exports.main(process.argv.slice(1));
56013}
56014}
56015/* 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)))
56016
56017/***/ }),
56018
56019/***/ "./src/diagrams/er/styles.js":
56020/*!***********************************!*\
56021 !*** ./src/diagrams/er/styles.js ***!
56022 \***********************************/
56023/*! exports provided: default */
56024/***/ (function(module, __webpack_exports__, __webpack_require__) {
56025
56026"use strict";
56027__webpack_require__.r(__webpack_exports__);
56028var getStyles = function getStyles(options) {
56029 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");
56030};
56031
56032/* harmony default export */ __webpack_exports__["default"] = (getStyles);
56033
56034/***/ }),
56035
56036/***/ "./src/diagrams/flowchart/flowChartShapes.js":
56037/*!***************************************************!*\
56038 !*** ./src/diagrams/flowchart/flowChartShapes.js ***!
56039 \***************************************************/
56040/*! exports provided: addToRender, addToRenderV2, default */
56041/***/ (function(module, __webpack_exports__, __webpack_require__) {
56042
56043"use strict";
56044__webpack_require__.r(__webpack_exports__);
56045/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addToRender", function() { return addToRender; });
56046/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addToRenderV2", function() { return addToRenderV2; });
56047/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dagre-d3 */ "./node_modules/dagre-d3/index.js");
56048/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(dagre_d3__WEBPACK_IMPORTED_MODULE_0__);
56049
56050
56051function question(parent, bbox, node) {
56052 var w = bbox.width;
56053 var h = bbox.height;
56054 var s = (w + h) * 0.9;
56055 var points = [{
56056 x: s / 2,
56057 y: 0
56058 }, {
56059 x: s,
56060 y: -s / 2
56061 }, {
56062 x: s / 2,
56063 y: -s
56064 }, {
56065 x: 0,
56066 y: -s / 2
56067 }];
56068 var shapeSvg = insertPolygonShape(parent, s, s, points);
56069
56070 node.intersect = function (point) {
56071 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56072 };
56073
56074 return shapeSvg;
56075}
56076
56077function hexagon(parent, bbox, node) {
56078 var f = 4;
56079 var h = bbox.height;
56080 var m = h / f;
56081 var w = bbox.width + 2 * m;
56082 var points = [{
56083 x: m,
56084 y: 0
56085 }, {
56086 x: w - m,
56087 y: 0
56088 }, {
56089 x: w,
56090 y: -h / 2
56091 }, {
56092 x: w - m,
56093 y: -h
56094 }, {
56095 x: m,
56096 y: -h
56097 }, {
56098 x: 0,
56099 y: -h / 2
56100 }];
56101 var shapeSvg = insertPolygonShape(parent, w, h, points);
56102
56103 node.intersect = function (point) {
56104 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56105 };
56106
56107 return shapeSvg;
56108}
56109
56110function rect_left_inv_arrow(parent, bbox, node) {
56111 var w = bbox.width;
56112 var h = bbox.height;
56113 var points = [{
56114 x: -h / 2,
56115 y: 0
56116 }, {
56117 x: w,
56118 y: 0
56119 }, {
56120 x: w,
56121 y: -h
56122 }, {
56123 x: -h / 2,
56124 y: -h
56125 }, {
56126 x: 0,
56127 y: -h / 2
56128 }];
56129 var shapeSvg = insertPolygonShape(parent, w, h, points);
56130
56131 node.intersect = function (point) {
56132 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56133 };
56134
56135 return shapeSvg;
56136}
56137
56138function lean_right(parent, bbox, node) {
56139 var w = bbox.width;
56140 var h = bbox.height;
56141 var points = [{
56142 x: -2 * h / 6,
56143 y: 0
56144 }, {
56145 x: w - h / 6,
56146 y: 0
56147 }, {
56148 x: w + 2 * h / 6,
56149 y: -h
56150 }, {
56151 x: h / 6,
56152 y: -h
56153 }];
56154 var shapeSvg = insertPolygonShape(parent, w, h, points);
56155
56156 node.intersect = function (point) {
56157 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56158 };
56159
56160 return shapeSvg;
56161}
56162
56163function lean_left(parent, bbox, node) {
56164 var w = bbox.width;
56165 var h = bbox.height;
56166 var points = [{
56167 x: 2 * h / 6,
56168 y: 0
56169 }, {
56170 x: w + h / 6,
56171 y: 0
56172 }, {
56173 x: w - 2 * h / 6,
56174 y: -h
56175 }, {
56176 x: -h / 6,
56177 y: -h
56178 }];
56179 var shapeSvg = insertPolygonShape(parent, w, h, points);
56180
56181 node.intersect = function (point) {
56182 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56183 };
56184
56185 return shapeSvg;
56186}
56187
56188function trapezoid(parent, bbox, node) {
56189 var w = bbox.width;
56190 var h = bbox.height;
56191 var points = [{
56192 x: -2 * h / 6,
56193 y: 0
56194 }, {
56195 x: w + 2 * h / 6,
56196 y: 0
56197 }, {
56198 x: w - h / 6,
56199 y: -h
56200 }, {
56201 x: h / 6,
56202 y: -h
56203 }];
56204 var shapeSvg = insertPolygonShape(parent, w, h, points);
56205
56206 node.intersect = function (point) {
56207 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56208 };
56209
56210 return shapeSvg;
56211}
56212
56213function inv_trapezoid(parent, bbox, node) {
56214 var w = bbox.width;
56215 var h = bbox.height;
56216 var points = [{
56217 x: h / 6,
56218 y: 0
56219 }, {
56220 x: w - h / 6,
56221 y: 0
56222 }, {
56223 x: w + 2 * h / 6,
56224 y: -h
56225 }, {
56226 x: -2 * h / 6,
56227 y: -h
56228 }];
56229 var shapeSvg = insertPolygonShape(parent, w, h, points);
56230
56231 node.intersect = function (point) {
56232 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56233 };
56234
56235 return shapeSvg;
56236}
56237
56238function rect_right_inv_arrow(parent, bbox, node) {
56239 var w = bbox.width;
56240 var h = bbox.height;
56241 var points = [{
56242 x: 0,
56243 y: 0
56244 }, {
56245 x: w + h / 2,
56246 y: 0
56247 }, {
56248 x: w,
56249 y: -h / 2
56250 }, {
56251 x: w + h / 2,
56252 y: -h
56253 }, {
56254 x: 0,
56255 y: -h
56256 }];
56257 var shapeSvg = insertPolygonShape(parent, w, h, points);
56258
56259 node.intersect = function (point) {
56260 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56261 };
56262
56263 return shapeSvg;
56264}
56265
56266function stadium(parent, bbox, node) {
56267 var h = bbox.height;
56268 var w = bbox.width + h / 4;
56269 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);
56270
56271 node.intersect = function (point) {
56272 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.rect(node, point);
56273 };
56274
56275 return shapeSvg;
56276}
56277
56278function subroutine(parent, bbox, node) {
56279 var w = bbox.width;
56280 var h = bbox.height;
56281 var points = [{
56282 x: 0,
56283 y: 0
56284 }, {
56285 x: w,
56286 y: 0
56287 }, {
56288 x: w,
56289 y: -h
56290 }, {
56291 x: 0,
56292 y: -h
56293 }, {
56294 x: 0,
56295 y: 0
56296 }, {
56297 x: -8,
56298 y: 0
56299 }, {
56300 x: w + 8,
56301 y: 0
56302 }, {
56303 x: w + 8,
56304 y: -h
56305 }, {
56306 x: -8,
56307 y: -h
56308 }, {
56309 x: -8,
56310 y: 0
56311 }];
56312 var shapeSvg = insertPolygonShape(parent, w, h, points);
56313
56314 node.intersect = function (point) {
56315 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.polygon(node, points, point);
56316 };
56317
56318 return shapeSvg;
56319}
56320
56321function cylinder(parent, bbox, node) {
56322 var w = bbox.width;
56323 var rx = w / 2;
56324 var ry = rx / (2.5 + w / 50);
56325 var h = bbox.height + ry;
56326 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;
56327 var shapeSvg = parent.attr('label-offset-y', ry).insert('path', ':first-child').attr('d', shape).attr('transform', 'translate(' + -w / 2 + ',' + -(h / 2 + ry) + ')');
56328
56329 node.intersect = function (point) {
56330 var pos = dagre_d3__WEBPACK_IMPORTED_MODULE_0___default.a.intersect.rect(node, point);
56331 var x = pos.x - node.x;
56332
56333 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)) {
56334 // ellipsis equation: x*x / a*a + y*y / b*b = 1
56335 // solve for y to get adjustion value for pos.y
56336 var y = ry * ry * (1 - x * x / (rx * rx));
56337 if (y != 0) y = Math.sqrt(y);
56338 y = ry - y;
56339 if (point.y - node.y > 0) y = -y;
56340 pos.y += y;
56341 }
56342
56343 return pos;
56344 };
56345
56346 return shapeSvg;
56347}
56348
56349function addToRender(render) {
56350 render.shapes().question = question;
56351 render.shapes().hexagon = hexagon;
56352 render.shapes().stadium = stadium;
56353 render.shapes().subroutine = subroutine;
56354 render.shapes().cylinder = cylinder; // Add custom shape for box with inverted arrow on left side
56355
56356 render.shapes().rect_left_inv_arrow = rect_left_inv_arrow; // Add custom shape for box with inverted arrow on left side
56357
56358 render.shapes().lean_right = lean_right; // Add custom shape for box with inverted arrow on left side
56359
56360 render.shapes().lean_left = lean_left; // Add custom shape for box with inverted arrow on left side
56361
56362 render.shapes().trapezoid = trapezoid; // Add custom shape for box with inverted arrow on left side
56363
56364 render.shapes().inv_trapezoid = inv_trapezoid; // Add custom shape for box with inverted arrow on right side
56365
56366 render.shapes().rect_right_inv_arrow = rect_right_inv_arrow;
56367}
56368function addToRenderV2(addShape) {
56369 addShape({
56370 question: question
56371 });
56372 addShape({
56373 hexagon: hexagon
56374 });
56375 addShape({
56376 stadium: stadium
56377 });
56378 addShape({
56379 subroutine: subroutine
56380 });
56381 addShape({
56382 cylinder: cylinder
56383 }); // Add custom shape for box with inverted arrow on left side
56384
56385 addShape({
56386 rect_left_inv_arrow: rect_left_inv_arrow
56387 }); // Add custom shape for box with inverted arrow on left side
56388
56389 addShape({
56390 lean_right: lean_right
56391 }); // Add custom shape for box with inverted arrow on left side
56392
56393 addShape({
56394 lean_left: lean_left
56395 }); // Add custom shape for box with inverted arrow on left side
56396
56397 addShape({
56398 trapezoid: trapezoid
56399 }); // Add custom shape for box with inverted arrow on left side
56400
56401 addShape({
56402 inv_trapezoid: inv_trapezoid
56403 }); // Add custom shape for box with inverted arrow on right side
56404
56405 addShape({
56406 rect_right_inv_arrow: rect_right_inv_arrow
56407 });
56408}
56409
56410function insertPolygonShape(parent, w, h, points) {
56411 return parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
56412 return d.x + ',' + d.y;
56413 }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h / 2 + ')');
56414}
56415
56416/* harmony default export */ __webpack_exports__["default"] = ({
56417 addToRender: addToRender,
56418 addToRenderV2: addToRenderV2
56419});
56420
56421/***/ }),
56422
56423/***/ "./src/diagrams/flowchart/flowDb.js":
56424/*!******************************************!*\
56425 !*** ./src/diagrams/flowchart/flowDb.js ***!
56426 \******************************************/
56427/*! exports provided: parseDirective, addVertex, addSingleLink, addLink, updateLinkInterpolate, updateLink, addClass, setDirection, setClass, setLink, getTooltip, setClickEvent, bindFunctions, getDirection, getVertices, getEdges, getClasses, clear, defaultStyle, addSubGraph, getDepthFirstPos, indexNodes, getSubGraphs, firstGraph, default */
56428/***/ (function(module, __webpack_exports__, __webpack_require__) {
56429
56430"use strict";
56431__webpack_require__.r(__webpack_exports__);
56432/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDirective", function() { return parseDirective; });
56433/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addVertex", function() { return addVertex; });
56434/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSingleLink", function() { return addSingleLink; });
56435/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addLink", function() { return addLink; });
56436/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateLinkInterpolate", function() { return updateLinkInterpolate; });
56437/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateLink", function() { return updateLink; });
56438/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addClass", function() { return addClass; });
56439/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDirection", function() { return setDirection; });
56440/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClass", function() { return setClass; });
56441/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLink", function() { return setLink; });
56442/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTooltip", function() { return getTooltip; });
56443/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClickEvent", function() { return setClickEvent; });
56444/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindFunctions", function() { return bindFunctions; });
56445/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirection", function() { return getDirection; });
56446/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getVertices", function() { return getVertices; });
56447/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEdges", function() { return getEdges; });
56448/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClasses", function() { return getClasses; });
56449/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
56450/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultStyle", function() { return defaultStyle; });
56451/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSubGraph", function() { return addSubGraph; });
56452/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDepthFirstPos", function() { return getDepthFirstPos; });
56453/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "indexNodes", function() { return indexNodes; });
56454/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSubGraphs", function() { return getSubGraphs; });
56455/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "firstGraph", function() { return firstGraph; });
56456/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
56457/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
56458/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config */ "./src/config.js");
56459/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
56460/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
56461function _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); }
56462
56463
56464
56465
56466
56467 // const MERMAID_DOM_ID_PREFIX = 'mermaid-dom-id-';
56468
56469var MERMAID_DOM_ID_PREFIX = '';
56470var config = _config__WEBPACK_IMPORTED_MODULE_2__["defaultConfig"];
56471var vertices = {};
56472var edges = [];
56473var classes = [];
56474var subGraphs = [];
56475var subGraphLookup = {};
56476var tooltips = {};
56477var subCount = 0;
56478var firstGraphFlag = true;
56479var direction; // Functions to be run after graph rendering
56480
56481var funs = [];
56482var parseDirective = function parseDirective(statement, context, type) {
56483 _mermaidAPI__WEBPACK_IMPORTED_MODULE_4__["default"].parseDirective(this, statement, context, type);
56484};
56485/**
56486 * Function called by parser when a node definition has been found
56487 * @param id
56488 * @param text
56489 * @param type
56490 * @param style
56491 * @param classes
56492 */
56493
56494var addVertex = function addVertex(_id, text, type, style, classes) {
56495 var txt;
56496 var id = _id;
56497
56498 if (typeof id === 'undefined') {
56499 return;
56500 }
56501
56502 if (id.trim().length === 0) {
56503 return;
56504 }
56505
56506 if (id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id;
56507
56508 if (typeof vertices[id] === 'undefined') {
56509 vertices[id] = {
56510 id: id,
56511 styles: [],
56512 classes: []
56513 };
56514 }
56515
56516 if (typeof text !== 'undefined') {
56517 config = _config__WEBPACK_IMPORTED_MODULE_2__["defaultConfig"];
56518 txt = _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].sanitizeText(text.trim(), config); // strip quotes if string starts and ends with a quote
56519
56520 if (txt[0] === '"' && txt[txt.length - 1] === '"') {
56521 txt = txt.substring(1, txt.length - 1);
56522 }
56523
56524 vertices[id].text = txt;
56525 } else {
56526 if (typeof vertices[id].text === 'undefined') {
56527 vertices[id].text = _id;
56528 }
56529 }
56530
56531 if (typeof type !== 'undefined') {
56532 vertices[id].type = type;
56533 }
56534
56535 if (typeof style !== 'undefined') {
56536 if (style !== null) {
56537 style.forEach(function (s) {
56538 vertices[id].styles.push(s);
56539 });
56540 }
56541 }
56542
56543 if (typeof classes !== 'undefined') {
56544 if (classes !== null) {
56545 classes.forEach(function (s) {
56546 vertices[id].classes.push(s);
56547 });
56548 }
56549 }
56550};
56551/**
56552 * Function called by parser when a link/edge definition has been found
56553 * @param start
56554 * @param end
56555 * @param type
56556 * @param linktext
56557 */
56558
56559var addSingleLink = function addSingleLink(_start, _end, type, linktext) {
56560 var start = _start;
56561 var end = _end;
56562 if (start[0].match(/\d/)) start = MERMAID_DOM_ID_PREFIX + start;
56563 if (end[0].match(/\d/)) end = MERMAID_DOM_ID_PREFIX + end; // logger.info('Got edge...', start, end);
56564
56565 var edge = {
56566 start: start,
56567 end: end,
56568 type: undefined,
56569 text: ''
56570 };
56571 linktext = type.text;
56572
56573 if (typeof linktext !== 'undefined') {
56574 edge.text = _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].sanitizeText(linktext.trim(), config); // strip quotes if string starts and exnds with a quote
56575
56576 if (edge.text[0] === '"' && edge.text[edge.text.length - 1] === '"') {
56577 edge.text = edge.text.substring(1, edge.text.length - 1);
56578 }
56579 }
56580
56581 if (typeof type !== 'undefined') {
56582 edge.type = type.type;
56583 edge.stroke = type.stroke;
56584 }
56585
56586 edges.push(edge);
56587};
56588var addLink = function addLink(_start, _end, type, linktext) {
56589 var i, j;
56590
56591 for (i = 0; i < _start.length; i++) {
56592 for (j = 0; j < _end.length; j++) {
56593 addSingleLink(_start[i], _end[j], type, linktext);
56594 }
56595 }
56596};
56597/**
56598 * Updates a link's line interpolation algorithm
56599 * @param pos
56600 * @param interpolate
56601 */
56602
56603var updateLinkInterpolate = function updateLinkInterpolate(positions, interp) {
56604 positions.forEach(function (pos) {
56605 if (pos === 'default') {
56606 edges.defaultInterpolate = interp;
56607 } else {
56608 edges[pos].interpolate = interp;
56609 }
56610 });
56611};
56612/**
56613 * Updates a link with a style
56614 * @param pos
56615 * @param style
56616 */
56617
56618var updateLink = function updateLink(positions, style) {
56619 positions.forEach(function (pos) {
56620 if (pos === 'default') {
56621 edges.defaultStyle = style;
56622 } else {
56623 if (_utils__WEBPACK_IMPORTED_MODULE_1__["default"].isSubstringInArray('fill', style) === -1) {
56624 style.push('fill:none');
56625 }
56626
56627 edges[pos].style = style;
56628 }
56629 });
56630};
56631var addClass = function addClass(id, style) {
56632 if (typeof classes[id] === 'undefined') {
56633 classes[id] = {
56634 id: id,
56635 styles: [],
56636 textStyles: []
56637 };
56638 }
56639
56640 if (typeof style !== 'undefined') {
56641 if (style !== null) {
56642 style.forEach(function (s) {
56643 if (s.match('color')) {
56644 var newStyle1 = s.replace('fill', 'bgFill');
56645 var newStyle2 = newStyle1.replace('color', 'fill');
56646 classes[id].textStyles.push(newStyle2);
56647 }
56648
56649 classes[id].styles.push(s);
56650 });
56651 }
56652 }
56653};
56654/**
56655 * Called by parser when a graph definition is found, stores the direction of the chart.
56656 * @param dir
56657 */
56658
56659var setDirection = function setDirection(dir) {
56660 direction = dir;
56661
56662 if (direction.match(/.*</)) {
56663 direction = 'RL';
56664 }
56665
56666 if (direction.match(/.*\^/)) {
56667 direction = 'BT';
56668 }
56669
56670 if (direction.match(/.*>/)) {
56671 direction = 'LR';
56672 }
56673
56674 if (direction.match(/.*v/)) {
56675 direction = 'TB';
56676 }
56677};
56678/**
56679 * Called by parser when a special node is found, e.g. a clickable element.
56680 * @param ids Comma separated list of ids
56681 * @param className Class to add
56682 */
56683
56684var setClass = function setClass(ids, className) {
56685 ids.split(',').forEach(function (_id) {
56686 var id = _id;
56687 if (_id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id;
56688
56689 if (typeof vertices[id] !== 'undefined') {
56690 vertices[id].classes.push(className);
56691 }
56692
56693 if (typeof subGraphLookup[id] !== 'undefined') {
56694 subGraphLookup[id].classes.push(className);
56695 }
56696 });
56697};
56698
56699var setTooltip = function setTooltip(ids, tooltip) {
56700 ids.split(',').forEach(function (id) {
56701 if (typeof tooltip !== 'undefined') {
56702 tooltips[id] = _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].sanitizeText(tooltip, config);
56703 }
56704 });
56705};
56706
56707var setClickFun = function setClickFun(_id, functionName) {
56708 var id = _id;
56709 if (_id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id;
56710
56711 if (_config__WEBPACK_IMPORTED_MODULE_2__["getConfig"]().securityLevel !== 'loose') {
56712 return;
56713 }
56714
56715 if (typeof functionName === 'undefined') {
56716 return;
56717 }
56718
56719 if (typeof vertices[id] !== 'undefined') {
56720 funs.push(function () {
56721 var elem = document.querySelector("[id=\"".concat(id, "\"]"));
56722
56723 if (elem !== null) {
56724 elem.addEventListener('click', function () {
56725 _utils__WEBPACK_IMPORTED_MODULE_1__["default"].runFunc(functionName, id);
56726 }, false);
56727 }
56728 });
56729 }
56730};
56731/**
56732 * Called by parser when a link is found. Adds the URL to the vertex data.
56733 * @param ids Comma separated list of ids
56734 * @param linkStr URL to create a link for
56735 * @param tooltip Tooltip for the clickable element
56736 */
56737
56738
56739var setLink = function setLink(ids, linkStr, tooltip, target) {
56740 ids.split(',').forEach(function (_id) {
56741 var id = _id;
56742 if (_id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id;
56743
56744 if (typeof vertices[id] !== 'undefined') {
56745 vertices[id].link = _utils__WEBPACK_IMPORTED_MODULE_1__["default"].formatUrl(linkStr, config);
56746 vertices[id].linkTarget = target;
56747 }
56748 });
56749 setTooltip(ids, tooltip);
56750 setClass(ids, 'clickable');
56751};
56752var getTooltip = function getTooltip(id) {
56753 return tooltips[id];
56754};
56755/**
56756 * Called by parser when a click definition is found. Registers an event handler.
56757 * @param ids Comma separated list of ids
56758 * @param functionName Function to be called on click
56759 * @param tooltip Tooltip for the clickable element
56760 */
56761
56762var setClickEvent = function setClickEvent(ids, functionName, tooltip) {
56763 ids.split(',').forEach(function (id) {
56764 setClickFun(id, functionName);
56765 });
56766 setTooltip(ids, tooltip);
56767 setClass(ids, 'clickable');
56768};
56769var bindFunctions = function bindFunctions(element) {
56770 funs.forEach(function (fun) {
56771 fun(element);
56772 });
56773};
56774var getDirection = function getDirection() {
56775 return direction.trim();
56776};
56777/**
56778 * Retrieval function for fetching the found nodes after parsing has completed.
56779 * @returns {{}|*|vertices}
56780 */
56781
56782var getVertices = function getVertices() {
56783 return vertices;
56784};
56785/**
56786 * Retrieval function for fetching the found links after parsing has completed.
56787 * @returns {{}|*|edges}
56788 */
56789
56790var getEdges = function getEdges() {
56791 return edges;
56792};
56793/**
56794 * Retrieval function for fetching the found class definitions after parsing has completed.
56795 * @returns {{}|*|classes}
56796 */
56797
56798var getClasses = function getClasses() {
56799 return classes;
56800};
56801
56802var setupToolTips = function setupToolTips(element) {
56803 var tooltipElem = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('.mermaidTooltip');
56804
56805 if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
56806 tooltipElem = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('body').append('div').attr('class', 'mermaidTooltip').style('opacity', 0);
56807 }
56808
56809 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(element).select('svg');
56810 var nodes = svg.selectAll('g.node');
56811 nodes.on('mouseover', function () {
56812 var el = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(this);
56813 var title = el.attr('title'); // Dont try to draw a tooltip if no data is provided
56814
56815 if (title === null) {
56816 return;
56817 }
56818
56819 var rect = this.getBoundingClientRect();
56820 tooltipElem.transition().duration(200).style('opacity', '.9');
56821 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');
56822 el.classed('hover', true);
56823 }).on('mouseout', function () {
56824 tooltipElem.transition().duration(500).style('opacity', 0);
56825 var el = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(this);
56826 el.classed('hover', false);
56827 });
56828};
56829
56830funs.push(setupToolTips);
56831/**
56832 * Clears the internal graph db so that a new graph can be parsed.
56833 */
56834
56835var clear = function clear() {
56836 vertices = {};
56837 classes = {};
56838 edges = [];
56839 funs = [];
56840 funs.push(setupToolTips);
56841 subGraphs = [];
56842 subGraphLookup = {};
56843 subCount = 0;
56844 tooltips = [];
56845 firstGraphFlag = true;
56846};
56847/**
56848 *
56849 * @returns {string}
56850 */
56851
56852var defaultStyle = function defaultStyle() {
56853 return 'fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;';
56854};
56855/**
56856 * Clears the internal graph db so that a new graph can be parsed.
56857 */
56858
56859var addSubGraph = function addSubGraph(_id, list, _title) {
56860 var id = _id.trim();
56861
56862 var title = _title;
56863
56864 if (_id === _title && _title.match(/\s/)) {
56865 id = undefined;
56866 }
56867
56868 function uniq(a) {
56869 var prims = {
56870 boolean: {},
56871 number: {},
56872 string: {}
56873 };
56874 var objs = [];
56875 return a.filter(function (item) {
56876 var type = _typeof(item);
56877
56878 if (item.trim() === '') {
56879 return false;
56880 }
56881
56882 if (type in prims) {
56883 return prims[type].hasOwnProperty(item) ? false : prims[type][item] = true; // eslint-disable-line
56884 } else {
56885 return objs.indexOf(item) >= 0 ? false : objs.push(item);
56886 }
56887 });
56888 }
56889
56890 var nodeList = [];
56891 nodeList = uniq(nodeList.concat.apply(nodeList, list));
56892
56893 for (var i = 0; i < nodeList.length; i++) {
56894 if (nodeList[i][0].match(/\d/)) nodeList[i] = MERMAID_DOM_ID_PREFIX + nodeList[i];
56895 }
56896
56897 id = id || 'subGraph' + subCount;
56898 if (id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id;
56899 title = title || '';
56900 title = _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].sanitizeText(title, config);
56901 subCount = subCount + 1;
56902 var subGraph = {
56903 id: id,
56904 nodes: nodeList,
56905 title: title.trim(),
56906 classes: []
56907 };
56908 subGraphs.push(subGraph);
56909 subGraphLookup[id] = subGraph;
56910 return id;
56911};
56912
56913var getPosForId = function getPosForId(id) {
56914 for (var i = 0; i < subGraphs.length; i++) {
56915 if (subGraphs[i].id === id) {
56916 return i;
56917 }
56918 }
56919
56920 return -1;
56921};
56922
56923var secCount = -1;
56924var posCrossRef = [];
56925
56926var indexNodes2 = function indexNodes2(id, pos) {
56927 var nodes = subGraphs[pos].nodes;
56928 secCount = secCount + 1;
56929
56930 if (secCount > 2000) {
56931 return;
56932 }
56933
56934 posCrossRef[secCount] = pos; // Check if match
56935
56936 if (subGraphs[pos].id === id) {
56937 return {
56938 result: true,
56939 count: 0
56940 };
56941 }
56942
56943 var count = 0;
56944 var posCount = 1;
56945
56946 while (count < nodes.length) {
56947 var childPos = getPosForId(nodes[count]); // Ignore regular nodes (pos will be -1)
56948
56949 if (childPos >= 0) {
56950 var res = indexNodes2(id, childPos);
56951
56952 if (res.result) {
56953 return {
56954 result: true,
56955 count: posCount + res.count
56956 };
56957 } else {
56958 posCount = posCount + res.count;
56959 }
56960 }
56961
56962 count = count + 1;
56963 }
56964
56965 return {
56966 result: false,
56967 count: posCount
56968 };
56969};
56970
56971var getDepthFirstPos = function getDepthFirstPos(pos) {
56972 return posCrossRef[pos];
56973};
56974var indexNodes = function indexNodes() {
56975 secCount = -1;
56976
56977 if (subGraphs.length > 0) {
56978 indexNodes2('none', subGraphs.length - 1, 0);
56979 }
56980};
56981var getSubGraphs = function getSubGraphs() {
56982 return subGraphs;
56983};
56984var firstGraph = function firstGraph() {
56985 if (firstGraphFlag) {
56986 firstGraphFlag = false;
56987 return true;
56988 }
56989
56990 return false;
56991};
56992
56993var destructStartLink = function destructStartLink(_str) {
56994 var str = _str.trim();
56995
56996 switch (str) {
56997 case '<--':
56998 return {
56999 type: 'arrow_point',
57000 stroke: 'normal'
57001 };
57002
57003 case 'x--':
57004 return {
57005 type: 'arrow_cross',
57006 stroke: 'normal'
57007 };
57008
57009 case 'o--':
57010 return {
57011 type: 'arrow_circle',
57012 stroke: 'normal'
57013 };
57014
57015 case '<-.':
57016 return {
57017 type: 'arrow_point',
57018 stroke: 'dotted'
57019 };
57020
57021 case 'x-.':
57022 return {
57023 type: 'arrow_cross',
57024 stroke: 'dotted'
57025 };
57026
57027 case 'o-.':
57028 return {
57029 type: 'arrow_circle',
57030 stroke: 'dotted'
57031 };
57032
57033 case '<==':
57034 return {
57035 type: 'arrow_point',
57036 stroke: 'thick'
57037 };
57038
57039 case 'x==':
57040 return {
57041 type: 'arrow_cross',
57042 stroke: 'thick'
57043 };
57044
57045 case 'o==':
57046 return {
57047 type: 'arrow_circle',
57048 stroke: 'thick'
57049 };
57050
57051 case '--':
57052 return {
57053 type: 'arrow_open',
57054 stroke: 'normal'
57055 };
57056
57057 case '==':
57058 return {
57059 type: 'arrow_open',
57060 stroke: 'thick'
57061 };
57062
57063 case '-.':
57064 return {
57065 type: 'arrow_open',
57066 stroke: 'dotted'
57067 };
57068 }
57069};
57070
57071var destructEndLink = function destructEndLink(_str) {
57072 var str = _str.trim();
57073
57074 switch (str) {
57075 case '--x':
57076 return {
57077 type: 'arrow_cross',
57078 stroke: 'normal'
57079 };
57080
57081 case '-->':
57082 return {
57083 type: 'arrow_point',
57084 stroke: 'normal'
57085 };
57086
57087 case '<-->':
57088 return {
57089 type: 'double_arrow_point',
57090 stroke: 'normal'
57091 };
57092
57093 case 'x--x':
57094 return {
57095 type: 'double_arrow_cross',
57096 stroke: 'normal'
57097 };
57098
57099 case 'o--o':
57100 return {
57101 type: 'double_arrow_circle',
57102 stroke: 'normal'
57103 };
57104
57105 case 'o.-o':
57106 return {
57107 type: 'double_arrow_circle',
57108 stroke: 'dotted'
57109 };
57110
57111 case '<==>':
57112 return {
57113 type: 'double_arrow_point',
57114 stroke: 'thick'
57115 };
57116
57117 case 'o==o':
57118 return {
57119 type: 'double_arrow_circle',
57120 stroke: 'thick'
57121 };
57122
57123 case 'x==x':
57124 return {
57125 type: 'double_arrow_cross',
57126 stroke: 'thick'
57127 };
57128
57129 case 'x.-x':
57130 return {
57131 type: 'double_arrow_cross',
57132 stroke: 'dotted'
57133 };
57134
57135 case 'x-.-x':
57136 return {
57137 type: 'double_arrow_cross',
57138 stroke: 'dotted'
57139 };
57140
57141 case '<.->':
57142 return {
57143 type: 'double_arrow_point',
57144 stroke: 'dotted'
57145 };
57146
57147 case '<-.->':
57148 return {
57149 type: 'double_arrow_point',
57150 stroke: 'dotted'
57151 };
57152
57153 case 'o-.-o':
57154 return {
57155 type: 'double_arrow_circle',
57156 stroke: 'dotted'
57157 };
57158
57159 case '--o':
57160 return {
57161 type: 'arrow_circle',
57162 stroke: 'normal'
57163 };
57164
57165 case '---':
57166 return {
57167 type: 'arrow_open',
57168 stroke: 'normal'
57169 };
57170
57171 case '-.-x':
57172 return {
57173 type: 'arrow_cross',
57174 stroke: 'dotted'
57175 };
57176
57177 case '-.->':
57178 return {
57179 type: 'arrow_point',
57180 stroke: 'dotted'
57181 };
57182
57183 case '-.-o':
57184 return {
57185 type: 'arrow_circle',
57186 stroke: 'dotted'
57187 };
57188
57189 case '-.-':
57190 return {
57191 type: 'arrow_open',
57192 stroke: 'dotted'
57193 };
57194
57195 case '.-x':
57196 return {
57197 type: 'arrow_cross',
57198 stroke: 'dotted'
57199 };
57200
57201 case '.->':
57202 return {
57203 type: 'arrow_point',
57204 stroke: 'dotted'
57205 };
57206
57207 case '.-o':
57208 return {
57209 type: 'arrow_circle',
57210 stroke: 'dotted'
57211 };
57212
57213 case '.-':
57214 return {
57215 type: 'arrow_open',
57216 stroke: 'dotted'
57217 };
57218
57219 case '==x':
57220 return {
57221 type: 'arrow_cross',
57222 stroke: 'thick'
57223 };
57224
57225 case '==>':
57226 return {
57227 type: 'arrow_point',
57228 stroke: 'thick'
57229 };
57230
57231 case '==o':
57232 return {
57233 type: 'arrow_circle',
57234 stroke: 'thick'
57235 };
57236
57237 case '===':
57238 return {
57239 type: 'arrow_open',
57240 stroke: 'thick'
57241 };
57242 }
57243};
57244
57245var destructLink = function destructLink(_str, _startStr) {
57246 var info = destructEndLink(_str);
57247 var startInfo;
57248
57249 if (_startStr) {
57250 startInfo = destructStartLink(_startStr);
57251
57252 if (startInfo.stroke !== info.stroke) {
57253 return {
57254 type: 'INVALID',
57255 stroke: 'INVALID'
57256 };
57257 }
57258
57259 if (startInfo.type === 'arrow_open') {
57260 // -- xyz --> - take arrow type form ending
57261 startInfo.type = info.type;
57262 } else {
57263 // x-- xyz --> - not supported
57264 if (startInfo.type !== info.type) return {
57265 type: 'INVALID',
57266 stroke: 'INVALID'
57267 };
57268 startInfo.type = 'double_' + startInfo.type;
57269 }
57270
57271 if (startInfo.type === 'double_arrow') {
57272 startInfo.type = 'double_arrow_point';
57273 }
57274
57275 return startInfo;
57276 }
57277
57278 return info;
57279};
57280
57281/* harmony default export */ __webpack_exports__["default"] = ({
57282 parseDirective: parseDirective,
57283 defaultConfig: function defaultConfig() {
57284 return _config__WEBPACK_IMPORTED_MODULE_2__["defaultConfig"].flowchart;
57285 },
57286 addVertex: addVertex,
57287 addLink: addLink,
57288 updateLinkInterpolate: updateLinkInterpolate,
57289 updateLink: updateLink,
57290 addClass: addClass,
57291 setDirection: setDirection,
57292 setClass: setClass,
57293 getTooltip: getTooltip,
57294 setClickEvent: setClickEvent,
57295 setLink: setLink,
57296 bindFunctions: bindFunctions,
57297 getDirection: getDirection,
57298 getVertices: getVertices,
57299 getEdges: getEdges,
57300 getClasses: getClasses,
57301 clear: clear,
57302 defaultStyle: defaultStyle,
57303 addSubGraph: addSubGraph,
57304 getDepthFirstPos: getDepthFirstPos,
57305 indexNodes: indexNodes,
57306 getSubGraphs: getSubGraphs,
57307 destructLink: destructLink,
57308 lex: {
57309 firstGraph: firstGraph
57310 }
57311});
57312
57313/***/ }),
57314
57315/***/ "./src/diagrams/flowchart/flowRenderer-v2.js":
57316/*!***************************************************!*\
57317 !*** ./src/diagrams/flowchart/flowRenderer-v2.js ***!
57318 \***************************************************/
57319/*! exports provided: setConf, addVertices, addEdges, getClasses, draw, default */
57320/***/ (function(module, __webpack_exports__, __webpack_require__) {
57321
57322"use strict";
57323__webpack_require__.r(__webpack_exports__);
57324/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
57325/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addVertices", function() { return addVertices; });
57326/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addEdges", function() { return addEdges; });
57327/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClasses", function() { return getClasses; });
57328/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
57329/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
57330/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_0__);
57331/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
57332/* harmony import */ var _flowDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./flowDb */ "./src/diagrams/flowchart/flowDb.js");
57333/* harmony import */ var _parser_flow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parser/flow */ "./src/diagrams/flowchart/parser/flow.jison");
57334/* harmony import */ var _parser_flow__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_parser_flow__WEBPACK_IMPORTED_MODULE_3__);
57335/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config */ "./src/config.js");
57336/* harmony import */ var _dagre_wrapper_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../dagre-wrapper/index.js */ "./src/dagre-wrapper/index.js");
57337/* 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");
57338/* 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__);
57339/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
57340/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
57341/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
57342
57343
57344
57345
57346
57347
57348
57349
57350
57351
57352var conf = {};
57353var setConf = function setConf(cnf) {
57354 var keys = Object.keys(cnf);
57355
57356 for (var i = 0; i < keys.length; i++) {
57357 conf[keys[i]] = cnf[keys[i]];
57358 }
57359};
57360/**
57361 * Function that adds the vertices found during parsing to the graph to be rendered.
57362 * @param vert Object containing the vertices.
57363 * @param g The graph that is to be drawn.
57364 */
57365
57366var addVertices = function addVertices(vert, g, svgId) {
57367 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])("[id=\"".concat(svgId, "\"]"));
57368 var keys = Object.keys(vert); // Iterate through each item in the vertex object (containing all the vertices found) in the graph definition
57369
57370 keys.forEach(function (id) {
57371 var vertex = vert[id];
57372 /**
57373 * Variable for storing the classes for the vertex
57374 * @type {string}
57375 */
57376
57377 var classStr = 'default';
57378
57379 if (vertex.classes.length > 0) {
57380 classStr = vertex.classes.join(' ');
57381 }
57382
57383 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
57384
57385 var vertexText = vertex.text !== undefined ? vertex.text : vertex.id; // We create a SVG label, either by delegating to addHtmlLabel or manually
57386
57387 var vertexNode;
57388
57389 if (Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels) {
57390 // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?
57391 var node = {
57392 label: vertexText.replace(/fa[lrsb]?:fa-[\w-]+/g, function (s) {
57393 return "<i class='".concat(s.replace(':', ' '), "'></i>");
57394 })
57395 };
57396 vertexNode = dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_6___default()(svg, node).node();
57397 vertexNode.parentNode.removeChild(vertexNode);
57398 } else {
57399 var svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
57400 svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));
57401 var rows = vertexText.split(_common_common__WEBPACK_IMPORTED_MODULE_8__["default"].lineBreakRegex);
57402
57403 for (var j = 0; j < rows.length; j++) {
57404 var tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
57405 tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
57406 tspan.setAttribute('dy', '1em');
57407 tspan.setAttribute('x', '1');
57408 tspan.textContent = rows[j];
57409 svgLabel.appendChild(tspan);
57410 }
57411
57412 vertexNode = svgLabel;
57413 }
57414
57415 var radious = 0;
57416 var _shape = ''; // Set the shape based parameters
57417
57418 switch (vertex.type) {
57419 case 'round':
57420 radious = 5;
57421 _shape = 'rect';
57422 break;
57423
57424 case 'square':
57425 _shape = 'rect';
57426 break;
57427
57428 case 'diamond':
57429 _shape = 'question';
57430 break;
57431
57432 case 'hexagon':
57433 _shape = 'hexagon';
57434 break;
57435
57436 case 'odd':
57437 _shape = 'rect_left_inv_arrow';
57438 break;
57439
57440 case 'lean_right':
57441 _shape = 'lean_right';
57442 break;
57443
57444 case 'lean_left':
57445 _shape = 'lean_left';
57446 break;
57447
57448 case 'trapezoid':
57449 _shape = 'trapezoid';
57450 break;
57451
57452 case 'inv_trapezoid':
57453 _shape = 'inv_trapezoid';
57454 break;
57455
57456 case 'odd_right':
57457 _shape = 'rect_left_inv_arrow';
57458 break;
57459
57460 case 'circle':
57461 _shape = 'circle';
57462 break;
57463
57464 case 'ellipse':
57465 _shape = 'ellipse';
57466 break;
57467
57468 case 'stadium':
57469 _shape = 'stadium';
57470 break;
57471
57472 case 'subroutine':
57473 _shape = 'subroutine';
57474 break;
57475
57476 case 'cylinder':
57477 _shape = 'cylinder';
57478 break;
57479
57480 case 'group':
57481 _shape = 'rect';
57482 break;
57483
57484 default:
57485 _shape = 'rect';
57486 } // Add the node
57487
57488
57489 g.setNode(vertex.id, {
57490 labelStyle: styles.labelStyle,
57491 shape: _shape,
57492 labelText: vertexText,
57493 rx: radious,
57494 ry: radious,
57495 class: classStr,
57496 style: styles.style,
57497 id: vertex.id,
57498 width: vertex.type === 'group' ? 500 : undefined,
57499 type: vertex.type,
57500 padding: Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.padding
57501 });
57502 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info('setNode', {
57503 labelStyle: styles.labelStyle,
57504 shape: _shape,
57505 labelText: vertexText,
57506 rx: radious,
57507 ry: radious,
57508 class: classStr,
57509 style: styles.style,
57510 id: vertex.id,
57511 width: vertex.type === 'group' ? 500 : undefined,
57512 type: vertex.type,
57513 padding: Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.padding
57514 });
57515 });
57516};
57517/**
57518 * Add edges to graph based on parsed graph defninition
57519 * @param {Object} edges The edges to add to the graph
57520 * @param {Object} g The graph object
57521 */
57522
57523var addEdges = function addEdges(edges, g) {
57524 var cnt = 0;
57525 var defaultStyle;
57526 var defaultLabelStyle;
57527
57528 if (typeof edges.defaultStyle !== 'undefined') {
57529 var defaultStyles = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["getStylesFromArray"])(edges.defaultStyle);
57530 defaultStyle = defaultStyles.style;
57531 defaultLabelStyle = defaultStyles.labelStyle;
57532 }
57533
57534 edges.forEach(function (edge) {
57535 cnt++; // Identify Link
57536
57537 var linkId = 'L-' + edge.start + '-' + edge.end;
57538 var linkNameStart = 'LS-' + edge.start;
57539 var linkNameEnd = 'LE-' + edge.end;
57540 var edgeData = {}; //edgeData.id = 'id' + cnt;
57541 // Set link type for rendering
57542
57543 if (edge.type === 'arrow_open') {
57544 edgeData.arrowhead = 'none';
57545 } else {
57546 edgeData.arrowhead = 'normal';
57547 } // Check of arrow types, placed here in order not to break old rendering
57548
57549
57550 edgeData.arrowTypeStart = 'arrow_open';
57551 edgeData.arrowTypeEnd = 'arrow_open';
57552 /* eslint-disable no-fallthrough */
57553
57554 switch (edge.type) {
57555 case 'double_arrow_cross':
57556 edgeData.arrowTypeStart = 'arrow_cross';
57557
57558 case 'arrow_cross':
57559 edgeData.arrowTypeEnd = 'arrow_cross';
57560 break;
57561
57562 case 'double_arrow_point':
57563 edgeData.arrowTypeStart = 'arrow_point';
57564
57565 case 'arrow_point':
57566 edgeData.arrowTypeEnd = 'arrow_point';
57567 break;
57568
57569 case 'double_arrow_circle':
57570 edgeData.arrowTypeStart = 'arrow_circle';
57571
57572 case 'arrow_circle':
57573 edgeData.arrowTypeEnd = 'arrow_circle';
57574 break;
57575 } // logger.info('apa', edgeData, edge);
57576 // edgeData.arrowTypeStart = edge.arrowTypeStart;
57577 // edgeData.arrowTypeStart = edge.arrowTypeStart;
57578 // edgeData.arrowType = edgeData.arrowTypeEnd;
57579 // logger.info('apa', edgeData, edge);
57580
57581
57582 var style = '';
57583 var labelStyle = '';
57584
57585 if (typeof edge.style !== 'undefined') {
57586 var styles = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["getStylesFromArray"])(edge.style);
57587 style = styles.style;
57588 labelStyle = styles.labelStyle;
57589 } else {
57590 switch (edge.stroke) {
57591 case 'normal':
57592 style = 'fill:none';
57593
57594 if (typeof defaultStyle !== 'undefined') {
57595 style = defaultStyle;
57596 }
57597
57598 if (typeof defaultLabelStyle !== 'undefined') {
57599 labelStyle = defaultLabelStyle;
57600 }
57601
57602 edgeData.thickness = 'normal';
57603 edgeData.pattern = 'solid';
57604 break;
57605
57606 case 'dotted':
57607 edgeData.thickness = 'normal';
57608 edgeData.pattern = 'dotted';
57609 break;
57610
57611 case 'thick':
57612 edgeData.thickness = 'thick';
57613 edgeData.pattern = 'solid';
57614 break;
57615 }
57616 }
57617
57618 edgeData.style = style;
57619 edgeData.labelStyle = labelStyle;
57620
57621 if (typeof edge.interpolate !== 'undefined') {
57622 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(edge.interpolate, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
57623 } else if (typeof edges.defaultInterpolate !== 'undefined') {
57624 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(edges.defaultInterpolate, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
57625 } else {
57626 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(conf.curve, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
57627 }
57628
57629 if (typeof edge.text === 'undefined') {
57630 if (typeof edge.style !== 'undefined') {
57631 edgeData.arrowheadStyle = 'fill: #333';
57632 }
57633 } else {
57634 edgeData.arrowheadStyle = 'fill: #333';
57635 edgeData.labelpos = 'c';
57636
57637 if (Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels && false) {
57638 // eslint-disable-line
57639 edgeData.labelType = 'html';
57640 edgeData.label = "<span id=\"L-".concat(linkId, "\" class=\"edgeLabel L-").concat(linkNameStart, "' L-").concat(linkNameEnd, "\">").concat(edge.text, "</span>");
57641 } else {
57642 edgeData.labelType = 'text';
57643 edgeData.label = edge.text.replace(_common_common__WEBPACK_IMPORTED_MODULE_8__["default"].lineBreakRegex, '\n');
57644
57645 if (typeof edge.style === 'undefined') {
57646 edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none';
57647 }
57648
57649 edgeData.labelStyle = edgeData.labelStyle.replace('color:', 'fill:');
57650 }
57651 }
57652
57653 edgeData.id = linkId;
57654 edgeData.classes = 'flowchart-link ' + linkNameStart + ' ' + linkNameEnd; // Add the edge to the graph
57655
57656 g.setEdge(edge.start, edge.end, edgeData, cnt);
57657 });
57658};
57659/**
57660 * Returns the all the styles from classDef statements in the graph definition.
57661 * @returns {object} classDef styles
57662 */
57663
57664var getClasses = function getClasses(text) {
57665 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info('Extracting classes');
57666 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
57667 var parser = _parser_flow__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
57668 parser.yy = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"];
57669
57670 try {
57671 // Parse the graph definition
57672 parser.parse(text);
57673 } catch (e) {
57674 return;
57675 }
57676
57677 return _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getClasses();
57678};
57679/**
57680 * Draws a flowchart in the tag with id: id based on the graph definition in text.
57681 * @param text
57682 * @param id
57683 */
57684
57685var draw = function draw(text, id) {
57686 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info('Drawing flowchart');
57687 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
57688 var parser = _parser_flow__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
57689 parser.yy = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"]; // Parse the graph definition
57690 // try {
57691
57692 parser.parse(text); // } catch (err) {
57693 // logger.debug('Parsing failed');
57694 // }
57695 // Fetch the default direction, use TD if none was found
57696
57697 var dir = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getDirection();
57698
57699 if (typeof dir === 'undefined') {
57700 dir = 'TD';
57701 }
57702
57703 var conf = Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart;
57704 var nodeSpacing = conf.nodeSpacing || 50;
57705 var rankSpacing = conf.rankSpacing || 50; // Create the input mermaid.graph
57706
57707 var g = new graphlib__WEBPACK_IMPORTED_MODULE_0___default.a.Graph({
57708 multigraph: true,
57709 compound: true
57710 }).setGraph({
57711 rankdir: dir,
57712 nodesep: nodeSpacing,
57713 ranksep: rankSpacing,
57714 marginx: 8,
57715 marginy: 8
57716 }).setDefaultEdgeLabel(function () {
57717 return {};
57718 });
57719 var subG;
57720 var subGraphs = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getSubGraphs();
57721 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info('Subgraphs - ', subGraphs);
57722
57723 for (var _i = subGraphs.length - 1; _i >= 0; _i--) {
57724 subG = subGraphs[_i];
57725 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info('Subgraph - ', subG);
57726 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].addVertex(subG.id, subG.title, 'group', undefined, subG.classes);
57727 } // Fetch the verices/nodes and edges/links from the parsed graph definition
57728
57729
57730 var vert = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getVertices();
57731 var edges = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getEdges();
57732 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info(edges);
57733 var i = 0;
57734
57735 for (i = subGraphs.length - 1; i >= 0; i--) {
57736 subG = subGraphs[i];
57737 Object(d3__WEBPACK_IMPORTED_MODULE_1__["selectAll"])('cluster').append('text');
57738
57739 for (var j = 0; j < subG.nodes.length; j++) {
57740 g.setParent(subG.nodes[j], subG.id);
57741 }
57742 }
57743
57744 addVertices(vert, g, id);
57745 addEdges(edges, g); // Add custom shapes
57746 // flowChartShapes.addToRenderV2(addShape);
57747 // Set up an SVG group so that we can translate the final graph.
57748
57749 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])("[id=\"".concat(id, "\"]")); // Run the renderer. This is what draws the final graph.
57750
57751 var element = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#' + id + ' g');
57752 Object(_dagre_wrapper_index_js__WEBPACK_IMPORTED_MODULE_5__["render"])(element, g, ['point', 'circle', 'cross'], 'flowchart', id); // dagre.layout(g);
57753
57754 element.selectAll('g.node').attr('title', function () {
57755 return _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getTooltip(this.id);
57756 });
57757 var padding = conf.diagramPadding;
57758 var svgBounds = svg.node().getBBox();
57759 var width = svgBounds.width + padding * 2;
57760 var height = svgBounds.height + padding * 2;
57761 _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, ")"));
57762
57763 if (conf.useMaxWidth) {
57764 svg.attr('width', '100%');
57765 svg.attr('style', "max-width: ".concat(width, "px;"));
57766 } else {
57767 svg.attr('height', height);
57768 svg.attr('width', width);
57769 }
57770
57771 svg.attr('viewBox', "0 0 ".concat(width, " ").concat(height));
57772 svg.select('g').attr('transform', "translate(".concat(padding - g._label.marginx, ", ").concat(padding - svgBounds.y, ")")); // Index nodes
57773
57774 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].indexNodes('subGraph' + i); // // reposition labels
57775 // for (i = 0; i < subGraphs.length; i++) {
57776 // subG = subGraphs[i];
57777 // if (subG.title !== 'undefined') {
57778 // const clusterRects = document.querySelectorAll('#' + id + ' [id="' + subG.id + '"] rect');
57779 // const clusterEl = document.querySelectorAll('#' + id + ' [id="' + subG.id + '"]');
57780 // const xPos = clusterRects[0].x.baseVal.value;
57781 // const yPos = clusterRects[0].y.baseVal.value;
57782 // const width = clusterRects[0].width.baseVal.value;
57783 // const cluster = d3.select(clusterEl[0]);
57784 // const te = cluster.select('.label');
57785 // te.attr('transform', `translate(${xPos + width / 2}, ${yPos + 14})`);
57786 // te.attr('id', id + 'Text');
57787 // for (let j = 0; j < subG.classes.length; j++) {
57788 // clusterEl[0].classList.add(subG.classes[j]);
57789 // }
57790 // }
57791 // }
57792 // Add label rects for non html labels
57793
57794 if (!conf.htmlLabels) {
57795 var labels = document.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
57796
57797 for (var k = 0; k < labels.length; k++) {
57798 var label = labels[k]; // Get dimensions of label
57799
57800 var dim = label.getBBox();
57801 var rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
57802 rect.setAttribute('rx', 0);
57803 rect.setAttribute('ry', 0);
57804 rect.setAttribute('width', dim.width);
57805 rect.setAttribute('height', dim.height); // rect.setAttribute('style', 'fill:#e8e8e8;');
57806
57807 label.insertBefore(rect, label.firstChild);
57808 }
57809 } // If node has a link, wrap it in an anchor SVG object.
57810
57811
57812 var keys = Object.keys(vert);
57813 keys.forEach(function (key) {
57814 var vertex = vert[key];
57815
57816 if (vertex.link) {
57817 var node = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#' + id + ' [id="' + key + '"]');
57818
57819 if (node) {
57820 var link = document.createElementNS('http://www.w3.org/2000/svg', 'a');
57821 link.setAttributeNS('http://www.w3.org/2000/svg', 'class', vertex.classes.join(' '));
57822 link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertex.link);
57823 link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener');
57824
57825 if (vertex.linkTarget) {
57826 link.setAttributeNS('http://www.w3.org/2000/svg', 'target', vertex.linkTarget);
57827 }
57828
57829 var linkNode = node.insert(function () {
57830 return link;
57831 }, ':first-child');
57832 var shape = node.select('.label-container');
57833
57834 if (shape) {
57835 linkNode.append(function () {
57836 return shape.node();
57837 });
57838 }
57839
57840 var _label = node.select('.label');
57841
57842 if (_label) {
57843 linkNode.append(function () {
57844 return _label.node();
57845 });
57846 }
57847 }
57848 }
57849 });
57850};
57851/* harmony default export */ __webpack_exports__["default"] = ({
57852 setConf: setConf,
57853 addVertices: addVertices,
57854 addEdges: addEdges,
57855 getClasses: getClasses,
57856 draw: draw
57857});
57858
57859/***/ }),
57860
57861/***/ "./src/diagrams/flowchart/flowRenderer.js":
57862/*!************************************************!*\
57863 !*** ./src/diagrams/flowchart/flowRenderer.js ***!
57864 \************************************************/
57865/*! exports provided: setConf, addVertices, addEdges, getClasses, draw, default */
57866/***/ (function(module, __webpack_exports__, __webpack_require__) {
57867
57868"use strict";
57869__webpack_require__.r(__webpack_exports__);
57870/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
57871/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addVertices", function() { return addVertices; });
57872/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addEdges", function() { return addEdges; });
57873/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClasses", function() { return getClasses; });
57874/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
57875/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
57876/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_0__);
57877/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
57878/* harmony import */ var _flowDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./flowDb */ "./src/diagrams/flowchart/flowDb.js");
57879/* harmony import */ var _parser_flow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parser/flow */ "./src/diagrams/flowchart/parser/flow.jison");
57880/* harmony import */ var _parser_flow__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_parser_flow__WEBPACK_IMPORTED_MODULE_3__);
57881/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config */ "./src/config.js");
57882/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! dagre-d3 */ "./node_modules/dagre-d3/index.js");
57883/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(dagre_d3__WEBPACK_IMPORTED_MODULE_5__);
57884/* 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");
57885/* 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__);
57886/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
57887/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
57888/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
57889/* harmony import */ var _flowChartShapes__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./flowChartShapes */ "./src/diagrams/flowchart/flowChartShapes.js");
57890
57891
57892
57893
57894
57895
57896
57897
57898
57899
57900
57901var conf = {};
57902var setConf = function setConf(cnf) {
57903 var keys = Object.keys(cnf);
57904
57905 for (var i = 0; i < keys.length; i++) {
57906 conf[keys[i]] = cnf[keys[i]];
57907 }
57908};
57909/**
57910 * Function that adds the vertices found in the graph definition to the graph to be rendered.
57911 * @param vert Object containing the vertices.
57912 * @param g The graph that is to be drawn.
57913 */
57914
57915var addVertices = function addVertices(vert, g, svgId) {
57916 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])("[id=\"".concat(svgId, "\"]"));
57917 var keys = Object.keys(vert); // Iterate through each item in the vertex object (containing all the vertices found) in the graph definition
57918
57919 keys.forEach(function (id) {
57920 var vertex = vert[id];
57921 /**
57922 * Variable for storing the classes for the vertex
57923 * @type {string}
57924 */
57925
57926 var classStr = 'default';
57927
57928 if (vertex.classes.length > 0) {
57929 classStr = vertex.classes.join(' ');
57930 }
57931
57932 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
57933
57934 var vertexText = vertex.text !== undefined ? vertex.text : vertex.id; // We create a SVG label, either by delegating to addHtmlLabel or manually
57935
57936 var vertexNode;
57937
57938 if (Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels) {
57939 // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?
57940 var node = {
57941 label: vertexText.replace(/fa[lrsb]?:fa-[\w-]+/g, function (s) {
57942 return "<i class='".concat(s.replace(':', ' '), "'></i>");
57943 })
57944 };
57945 vertexNode = dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_6___default()(svg, node).node();
57946 vertexNode.parentNode.removeChild(vertexNode);
57947 } else {
57948 var svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
57949 svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));
57950 var rows = vertexText.split(_common_common__WEBPACK_IMPORTED_MODULE_8__["default"].lineBreakRegex);
57951
57952 for (var j = 0; j < rows.length; j++) {
57953 var tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
57954 tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
57955 tspan.setAttribute('dy', '1em');
57956 tspan.setAttribute('x', '1');
57957 tspan.textContent = rows[j];
57958 svgLabel.appendChild(tspan);
57959 }
57960
57961 vertexNode = svgLabel;
57962 }
57963
57964 var radious = 0;
57965 var _shape = ''; // Set the shape based parameters
57966
57967 switch (vertex.type) {
57968 case 'round':
57969 radious = 5;
57970 _shape = 'rect';
57971 break;
57972
57973 case 'square':
57974 _shape = 'rect';
57975 break;
57976
57977 case 'diamond':
57978 _shape = 'question';
57979 break;
57980
57981 case 'hexagon':
57982 _shape = 'hexagon';
57983 break;
57984
57985 case 'odd':
57986 _shape = 'rect_left_inv_arrow';
57987 break;
57988
57989 case 'lean_right':
57990 _shape = 'lean_right';
57991 break;
57992
57993 case 'lean_left':
57994 _shape = 'lean_left';
57995 break;
57996
57997 case 'trapezoid':
57998 _shape = 'trapezoid';
57999 break;
58000
58001 case 'inv_trapezoid':
58002 _shape = 'inv_trapezoid';
58003 break;
58004
58005 case 'odd_right':
58006 _shape = 'rect_left_inv_arrow';
58007 break;
58008
58009 case 'circle':
58010 _shape = 'circle';
58011 break;
58012
58013 case 'ellipse':
58014 _shape = 'ellipse';
58015 break;
58016
58017 case 'stadium':
58018 _shape = 'stadium';
58019 break;
58020
58021 case 'subroutine':
58022 _shape = 'subroutine';
58023 break;
58024
58025 case 'cylinder':
58026 _shape = 'cylinder';
58027 break;
58028
58029 case 'group':
58030 _shape = 'rect';
58031 break;
58032
58033 default:
58034 _shape = 'rect';
58035 } // Add the node
58036
58037
58038 g.setNode(vertex.id, {
58039 labelType: 'svg',
58040 labelStyle: styles.labelStyle,
58041 shape: _shape,
58042 label: vertexNode,
58043 rx: radious,
58044 ry: radious,
58045 class: classStr,
58046 style: styles.style,
58047 id: vertex.id
58048 });
58049 });
58050};
58051/**
58052 * Add edges to graph based on parsed graph defninition
58053 * @param {Object} edges The edges to add to the graph
58054 * @param {Object} g The graph object
58055 */
58056
58057var addEdges = function addEdges(edges, g) {
58058 var cnt = 0;
58059 var defaultStyle;
58060 var defaultLabelStyle;
58061
58062 if (typeof edges.defaultStyle !== 'undefined') {
58063 var defaultStyles = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["getStylesFromArray"])(edges.defaultStyle);
58064 defaultStyle = defaultStyles.style;
58065 defaultLabelStyle = defaultStyles.labelStyle;
58066 }
58067
58068 edges.forEach(function (edge) {
58069 cnt++; // Identify Link
58070
58071 var linkId = 'L-' + edge.start + '-' + edge.end;
58072 var linkNameStart = 'LS-' + edge.start;
58073 var linkNameEnd = 'LE-' + edge.end;
58074 var edgeData = {}; // Set link type for rendering
58075
58076 if (edge.type === 'arrow_open') {
58077 edgeData.arrowhead = 'none';
58078 } else {
58079 edgeData.arrowhead = 'normal';
58080 }
58081
58082 var style = '';
58083 var labelStyle = '';
58084
58085 if (typeof edge.style !== 'undefined') {
58086 var styles = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["getStylesFromArray"])(edge.style);
58087 style = styles.style;
58088 labelStyle = styles.labelStyle;
58089 } else {
58090 switch (edge.stroke) {
58091 case 'normal':
58092 style = 'fill:none';
58093
58094 if (typeof defaultStyle !== 'undefined') {
58095 style = defaultStyle;
58096 }
58097
58098 if (typeof defaultLabelStyle !== 'undefined') {
58099 labelStyle = defaultLabelStyle;
58100 }
58101
58102 break;
58103
58104 case 'dotted':
58105 style = 'fill:none;stroke-width:2px;stroke-dasharray:3;';
58106 break;
58107
58108 case 'thick':
58109 style = ' stroke-width: 3.5px;fill:none';
58110 break;
58111 }
58112 }
58113
58114 edgeData.style = style;
58115 edgeData.labelStyle = labelStyle;
58116
58117 if (typeof edge.interpolate !== 'undefined') {
58118 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(edge.interpolate, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
58119 } else if (typeof edges.defaultInterpolate !== 'undefined') {
58120 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(edges.defaultInterpolate, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
58121 } else {
58122 edgeData.curve = Object(_utils__WEBPACK_IMPORTED_MODULE_9__["interpolateToCurve"])(conf.curve, d3__WEBPACK_IMPORTED_MODULE_1__["curveLinear"]);
58123 }
58124
58125 if (typeof edge.text === 'undefined') {
58126 if (typeof edge.style !== 'undefined') {
58127 edgeData.arrowheadStyle = 'fill: #333';
58128 }
58129 } else {
58130 edgeData.arrowheadStyle = 'fill: #333';
58131 edgeData.labelpos = 'c';
58132
58133 if (Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart.htmlLabels) {
58134 edgeData.labelType = 'html';
58135 edgeData.label = "<span id=\"L-".concat(linkId, "\" class=\"edgeLabel L-").concat(linkNameStart, "' L-").concat(linkNameEnd, "\">").concat(edge.text, "</span>");
58136 } else {
58137 edgeData.labelType = 'text';
58138 edgeData.label = edge.text.replace(_common_common__WEBPACK_IMPORTED_MODULE_8__["default"].lineBreakRegex, '\n');
58139
58140 if (typeof edge.style === 'undefined') {
58141 edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none';
58142 }
58143
58144 edgeData.labelStyle = edgeData.labelStyle.replace('color:', 'fill:');
58145 }
58146 }
58147
58148 edgeData.id = linkId;
58149 edgeData.class = linkNameStart + ' ' + linkNameEnd; // Add the edge to the graph
58150
58151 g.setEdge(edge.start, edge.end, edgeData, cnt);
58152 });
58153};
58154/**
58155 * Returns the all the styles from classDef statements in the graph definition.
58156 * @returns {object} classDef styles
58157 */
58158
58159var getClasses = function getClasses(text) {
58160 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info('Extracting classes');
58161 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
58162
58163 try {
58164 var parser = _parser_flow__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
58165 parser.yy = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"]; // Parse the graph definition
58166
58167 parser.parse(text);
58168 return _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getClasses();
58169 } catch (e) {
58170 return;
58171 }
58172};
58173/**
58174 * Draws a flowchart in the tag with id: id based on the graph definition in text.
58175 * @param text
58176 * @param id
58177 */
58178
58179var draw = function draw(text, id) {
58180 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].info('Drawing flowchart');
58181 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
58182 var parser = _parser_flow__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
58183 parser.yy = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"]; // Parse the graph definition
58184 // try {
58185
58186 parser.parse(text); // } catch (err) {
58187 // logger.debug('Parsing failed');
58188 // }
58189 // Fetch the default direction, use TD if none was found
58190
58191 var dir = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getDirection();
58192
58193 if (typeof dir === 'undefined') {
58194 dir = 'TD';
58195 }
58196
58197 var conf = Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().flowchart;
58198 var nodeSpacing = conf.nodeSpacing || 50;
58199 var rankSpacing = conf.rankSpacing || 50; // Create the input mermaid.graph
58200
58201 var g = new graphlib__WEBPACK_IMPORTED_MODULE_0___default.a.Graph({
58202 multigraph: true,
58203 compound: true
58204 }).setGraph({
58205 rankdir: dir,
58206 nodesep: nodeSpacing,
58207 ranksep: rankSpacing,
58208 marginx: 8,
58209 marginy: 8
58210 }).setDefaultEdgeLabel(function () {
58211 return {};
58212 });
58213 var subG;
58214 var subGraphs = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getSubGraphs();
58215
58216 for (var _i = subGraphs.length - 1; _i >= 0; _i--) {
58217 subG = subGraphs[_i];
58218 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].addVertex(subG.id, subG.title, 'group', undefined, subG.classes);
58219 } // Fetch the verices/nodes and edges/links from the parsed graph definition
58220
58221
58222 var vert = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getVertices();
58223 var edges = _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getEdges();
58224 var i = 0;
58225
58226 for (i = subGraphs.length - 1; i >= 0; i--) {
58227 subG = subGraphs[i];
58228 Object(d3__WEBPACK_IMPORTED_MODULE_1__["selectAll"])('cluster').append('text');
58229
58230 for (var j = 0; j < subG.nodes.length; j++) {
58231 g.setParent(subG.nodes[j], subG.id);
58232 }
58233 }
58234
58235 addVertices(vert, g, id);
58236 addEdges(edges, g); // Create the renderer
58237
58238 var Render = dagre_d3__WEBPACK_IMPORTED_MODULE_5___default.a.render;
58239 var render = new Render(); // Add custom shapes
58240
58241 _flowChartShapes__WEBPACK_IMPORTED_MODULE_10__["default"].addToRender(render); // Add our custom arrow - an empty arrowhead
58242
58243 render.arrows().none = function normal(parent, id, edge, type) {
58244 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');
58245 var path = marker.append('path').attr('d', 'M 0 0 L 0 0 L 0 0 z');
58246 dagre_d3__WEBPACK_IMPORTED_MODULE_5___default.a.util.applyStyle(path, edge[type + 'Style']);
58247 }; // Override normal arrowhead defined in d3. Remove style & add class to allow css styling.
58248
58249
58250 render.arrows().normal = function normal(parent, id) {
58251 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');
58252 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');
58253 }; // Set up an SVG group so that we can translate the final graph.
58254
58255
58256 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])("[id=\"".concat(id, "\"]")); // Run the renderer. This is what draws the final graph.
58257
58258 var element = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#' + id + ' g');
58259 render(element, g);
58260 element.selectAll('g.node').attr('title', function () {
58261 return _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].getTooltip(this.id);
58262 });
58263 var padding = conf.diagramPadding;
58264 var svgBounds = svg.node().getBBox();
58265 var width = svgBounds.width + padding * 2;
58266 var height = svgBounds.height + padding * 2;
58267
58268 if (conf.useMaxWidth) {
58269 svg.attr('width', '100%');
58270 svg.attr('style', "max-width: ".concat(width, "px;"));
58271 } else {
58272 svg.attr('height', height);
58273 svg.attr('width', width);
58274 } // Ensure the viewBox includes the whole svgBounds area with extra space for padding
58275
58276
58277 var vBox = "".concat(svgBounds.x - padding, " ").concat(svgBounds.y - padding, " ").concat(width, " ").concat(height);
58278 _logger__WEBPACK_IMPORTED_MODULE_7__["logger"].debug("viewBox ".concat(vBox));
58279 svg.attr('viewBox', vBox); // Index nodes
58280
58281 _flowDb__WEBPACK_IMPORTED_MODULE_2__["default"].indexNodes('subGraph' + i); // reposition labels
58282
58283 for (i = 0; i < subGraphs.length; i++) {
58284 subG = subGraphs[i];
58285
58286 if (subG.title !== 'undefined') {
58287 var clusterRects = document.querySelectorAll('#' + id + ' [id="' + subG.id + '"] rect');
58288 var clusterEl = document.querySelectorAll('#' + id + ' [id="' + subG.id + '"]');
58289 var xPos = clusterRects[0].x.baseVal.value;
58290 var yPos = clusterRects[0].y.baseVal.value;
58291 var _width = clusterRects[0].width.baseVal.value;
58292 var cluster = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])(clusterEl[0]);
58293 var te = cluster.select('.label');
58294 te.attr('transform', "translate(".concat(xPos + _width / 2, ", ").concat(yPos + 14, ")"));
58295 te.attr('id', id + 'Text');
58296
58297 for (var _j = 0; _j < subG.classes.length; _j++) {
58298 clusterEl[0].classList.add(subG.classes[_j]);
58299 }
58300 }
58301 } // Add label rects for non html labels
58302
58303
58304 if (!conf.htmlLabels || true) {
58305 // eslint-disable-line
58306 var labels = document.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
58307
58308 for (var k = 0; k < labels.length; k++) {
58309 var label = labels[k]; // Get dimensions of label
58310
58311 var dim = label.getBBox();
58312 var rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
58313 rect.setAttribute('rx', 0);
58314 rect.setAttribute('ry', 0);
58315 rect.setAttribute('width', dim.width);
58316 rect.setAttribute('height', dim.height); // rect.setAttribute('style', 'fill:#e8e8e8;');
58317
58318 label.insertBefore(rect, label.firstChild);
58319 }
58320 } // If node has a link, wrap it in an anchor SVG object.
58321
58322
58323 var keys = Object.keys(vert);
58324 keys.forEach(function (key) {
58325 var vertex = vert[key];
58326
58327 if (vertex.link) {
58328 var node = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#' + id + ' [id="' + key + '"]');
58329
58330 if (node) {
58331 var link = document.createElementNS('http://www.w3.org/2000/svg', 'a');
58332 link.setAttributeNS('http://www.w3.org/2000/svg', 'class', vertex.classes.join(' '));
58333 link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertex.link);
58334 link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener');
58335
58336 if (vertex.linkTarget) {
58337 link.setAttributeNS('http://www.w3.org/2000/svg', 'target', vertex.linkTarget);
58338 }
58339
58340 var linkNode = node.insert(function () {
58341 return link;
58342 }, ':first-child');
58343 var shape = node.select('.label-container');
58344
58345 if (shape) {
58346 linkNode.append(function () {
58347 return shape.node();
58348 });
58349 }
58350
58351 var _label = node.select('.label');
58352
58353 if (_label) {
58354 linkNode.append(function () {
58355 return _label.node();
58356 });
58357 }
58358 }
58359 }
58360 });
58361};
58362/* harmony default export */ __webpack_exports__["default"] = ({
58363 setConf: setConf,
58364 addVertices: addVertices,
58365 addEdges: addEdges,
58366 getClasses: getClasses,
58367 draw: draw
58368});
58369
58370/***/ }),
58371
58372/***/ "./src/diagrams/flowchart/parser/flow.jison":
58373/*!**************************************************!*\
58374 !*** ./src/diagrams/flowchart/parser/flow.jison ***!
58375 \**************************************************/
58376/*! no static exports found */
58377/***/ (function(module, exports, __webpack_require__) {
58378
58379/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
58380/*
58381 Returns a Parser object of the following structure:
58382
58383 Parser: {
58384 yy: {}
58385 }
58386
58387 Parser.prototype: {
58388 yy: {},
58389 trace: function(),
58390 symbols_: {associative list: name ==> number},
58391 terminals_: {associative list: number ==> name},
58392 productions_: [...],
58393 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
58394 table: [...],
58395 defaultActions: {...},
58396 parseError: function(str, hash),
58397 parse: function(input),
58398
58399 lexer: {
58400 EOF: 1,
58401 parseError: function(str, hash),
58402 setInput: function(input),
58403 input: function(),
58404 unput: function(str),
58405 more: function(),
58406 less: function(n),
58407 pastInput: function(),
58408 upcomingInput: function(),
58409 showPosition: function(),
58410 test_match: function(regex_match_array, rule_index),
58411 next: function(),
58412 lex: function(),
58413 begin: function(condition),
58414 popState: function(),
58415 _currentRules: function(),
58416 topState: function(),
58417 pushState: function(condition),
58418
58419 options: {
58420 ranges: boolean (optional: true ==> token location info will include a .range[] member)
58421 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
58422 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)
58423 },
58424
58425 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
58426 rules: [...],
58427 conditions: {associative list: name ==> set},
58428 }
58429 }
58430
58431
58432 token location info (@$, _$, etc.): {
58433 first_line: n,
58434 last_line: n,
58435 first_column: n,
58436 last_column: n,
58437 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
58438 }
58439
58440
58441 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
58442 text: (matched text)
58443 token: (the produced terminal token, if any)
58444 line: (yylineno)
58445 }
58446 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
58447 loc: (yylloc)
58448 expected: (string describing the set of expected tokens)
58449 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
58450 }
58451*/
58452var parser = (function(){
58453var 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];
58454var parser = {trace: function trace () { },
58455yy: {},
58456symbols_: {"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},
58457terminals_: {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"},
58458productions_: [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]],
58459performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
58460/* this == yyval */
58461
58462var $0 = $$.length - 1;
58463switch (yystate) {
58464case 5:
58465 yy.parseDirective('%%{', 'open_directive');
58466break;
58467case 6:
58468 yy.parseDirective($$[$0], 'type_directive');
58469break;
58470case 7:
58471 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
58472break;
58473case 8:
58474 yy.parseDirective('}%%', 'close_directive', 'flowchart');
58475break;
58476case 10:
58477 this.$ = [];
58478break;
58479case 11:
58480
58481 if($$[$0] !== []){
58482 $$[$0-1].push($$[$0]);
58483 }
58484 this.$=$$[$0-1];
58485break;
58486case 12: case 76: case 78: case 90: case 138: case 140: case 141:
58487this.$=$$[$0];
58488break;
58489case 19:
58490 yy.setDirection('TB');this.$ = 'TB';
58491break;
58492case 20:
58493 yy.setDirection($$[$0-1]);this.$ = $$[$0-1];
58494break;
58495case 35:
58496 /* console.warn('finat vs', $$[$0-1].nodes); */ this.$=$$[$0-1].nodes
58497break;
58498case 36: case 37: case 38: case 39: case 40:
58499this.$=[];
58500break;
58501case 41:
58502this.$=yy.addSubGraph($$[$0-6],$$[$0-1],$$[$0-4]);
58503break;
58504case 42:
58505this.$=yy.addSubGraph($$[$0-3],$$[$0-1],$$[$0-3]);
58506break;
58507case 43:
58508this.$=yy.addSubGraph(undefined,$$[$0-1],undefined);
58509break;
58510case 47:
58511 /* console.warn('vs',$$[$0-2].stmt,$$[$0]); */ yy.addLink($$[$0-2].stmt,$$[$0],$$[$0-1]); this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0-2].nodes) }
58512break;
58513case 48:
58514 /* 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) }
58515break;
58516case 49:
58517/*console.warn('noda', $$[$0-1]);*/ this.$ = {stmt: $$[$0-1], nodes:$$[$0-1] }
58518break;
58519case 50:
58520 /*console.warn('noda', $$[$0]);*/ this.$ = {stmt: $$[$0], nodes:$$[$0] }
58521break;
58522case 51:
58523 /* console.warn('nod', $$[$0]); */ this.$ = [$$[$0]];
58524break;
58525case 52:
58526 this.$ = $$[$0-4].concat($$[$0]); /* console.warn('pip', $$[$0-4][0], $$[$0], this.$); */
58527break;
58528case 53:
58529this.$ = [$$[$0-2]];yy.setClass($$[$0-2],$$[$0])
58530break;
58531case 54:
58532this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'square');
58533break;
58534case 55:
58535this.$ = $$[$0-5];yy.addVertex($$[$0-5],$$[$0-2],'circle');
58536break;
58537case 56:
58538this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'ellipse');
58539break;
58540case 57:
58541this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'stadium');
58542break;
58543case 58:
58544this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'subroutine');
58545break;
58546case 59:
58547this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'cylinder');
58548break;
58549case 60:
58550this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'round');
58551break;
58552case 61:
58553this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'diamond');
58554break;
58555case 62:
58556this.$ = $$[$0-5];yy.addVertex($$[$0-5],$$[$0-2],'hexagon');
58557break;
58558case 63:
58559this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'odd');
58560break;
58561case 64:
58562this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'trapezoid');
58563break;
58564case 65:
58565this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'inv_trapezoid');
58566break;
58567case 66:
58568this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'lean_right');
58569break;
58570case 67:
58571this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'lean_left');
58572break;
58573case 68:
58574 /*console.warn('h: ', $$[$0]);*/this.$ = $$[$0];yy.addVertex($$[$0]);
58575break;
58576case 69:
58577$$[$0-1].text = $$[$0];this.$ = $$[$0-1];
58578break;
58579case 70: case 71:
58580$$[$0-2].text = $$[$0-1];this.$ = $$[$0-2];
58581break;
58582case 72:
58583this.$ = $$[$0];
58584break;
58585case 73:
58586var inf = yy.destructLink($$[$0], $$[$0-2]); this.$ = {"type":inf.type,"stroke":inf.stroke,"text":$$[$0-1]};
58587break;
58588case 74:
58589var inf = yy.destructLink($$[$0]);this.$ = {"type":inf.type,"stroke":inf.stroke};
58590break;
58591case 75:
58592this.$ = $$[$0-1];
58593break;
58594case 77: case 91: case 139:
58595this.$=$$[$0-1]+''+$$[$0];
58596break;
58597case 92: case 93:
58598this.$ = $$[$0-4];yy.addClass($$[$0-2],$$[$0]);
58599break;
58600case 94:
58601this.$ = $$[$0-4];yy.setClass($$[$0-2], $$[$0]);
58602break;
58603case 95:
58604this.$ = $$[$0-4];yy.setClickEvent($$[$0-2], $$[$0], undefined);
58605break;
58606case 96:
58607this.$ = $$[$0-6];yy.setClickEvent($$[$0-4], $$[$0-2], $$[$0]) ;
58608break;
58609case 97:
58610this.$ = $$[$0-4];yy.setLink($$[$0-2], $$[$0], undefined, undefined);
58611break;
58612case 98:
58613this.$ = $$[$0-6];yy.setLink($$[$0-4], $$[$0-2], $$[$0], undefined );
58614break;
58615case 99:
58616this.$ = $$[$0-6];yy.setLink($$[$0-4], $$[$0-2], undefined, $$[$0] );
58617break;
58618case 100:
58619this.$ = $$[$0-8];yy.setLink($$[$0-6], $$[$0-4], $$[$0-2], $$[$0] );
58620break;
58621case 101:
58622this.$ = $$[$0-4];yy.addVertex($$[$0-2],undefined,undefined,$$[$0]);
58623break;
58624case 102: case 104:
58625this.$ = $$[$0-4];yy.updateLink($$[$0-2],$$[$0]);
58626break;
58627case 103:
58628this.$ = $$[$0-4];yy.updateLink([$$[$0-2]],$$[$0]);
58629break;
58630case 105:
58631this.$ = $$[$0-8];yy.updateLinkInterpolate([$$[$0-6]],$$[$0-2]);yy.updateLink([$$[$0-6]],$$[$0]);
58632break;
58633case 106:
58634this.$ = $$[$0-8];yy.updateLinkInterpolate($$[$0-6],$$[$0-2]);yy.updateLink($$[$0-6],$$[$0]);
58635break;
58636case 107:
58637this.$ = $$[$0-6];yy.updateLinkInterpolate([$$[$0-4]],$$[$0]);
58638break;
58639case 108:
58640this.$ = $$[$0-6];yy.updateLinkInterpolate($$[$0-4],$$[$0]);
58641break;
58642case 109: case 111:
58643this.$ = [$$[$0]]
58644break;
58645case 110: case 112:
58646$$[$0-2].push($$[$0]);this.$ = $$[$0-2];
58647break;
58648case 114:
58649this.$ = $$[$0-1] + $$[$0];
58650break;
58651case 136:
58652this.$=$$[$0]
58653break;
58654case 137:
58655this.$=$$[$0-1]+''+$$[$0]
58656break;
58657case 142:
58658this.$='v';
58659break;
58660case 143:
58661this.$='-';
58662break;
58663}
58664},
58665table: [{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])],
58666defaultActions: {2:[2,1],9:[2,5],10:[2,2],98:[2,7]},
58667parseError: function parseError (str, hash) {
58668 if (hash.recoverable) {
58669 this.trace(str);
58670 } else {
58671 var error = new Error(str);
58672 error.hash = hash;
58673 throw error;
58674 }
58675},
58676parse: function parse(input) {
58677 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
58678 var args = lstack.slice.call(arguments, 1);
58679 var lexer = Object.create(this.lexer);
58680 var sharedState = { yy: {} };
58681 for (var k in this.yy) {
58682 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
58683 sharedState.yy[k] = this.yy[k];
58684 }
58685 }
58686 lexer.setInput(input, sharedState.yy);
58687 sharedState.yy.lexer = lexer;
58688 sharedState.yy.parser = this;
58689 if (typeof lexer.yylloc == 'undefined') {
58690 lexer.yylloc = {};
58691 }
58692 var yyloc = lexer.yylloc;
58693 lstack.push(yyloc);
58694 var ranges = lexer.options && lexer.options.ranges;
58695 if (typeof sharedState.yy.parseError === 'function') {
58696 this.parseError = sharedState.yy.parseError;
58697 } else {
58698 this.parseError = Object.getPrototypeOf(this).parseError;
58699 }
58700 function popStack(n) {
58701 stack.length = stack.length - 2 * n;
58702 vstack.length = vstack.length - n;
58703 lstack.length = lstack.length - n;
58704 }
58705 function lex() {
58706 var token;
58707 token = tstack.pop() || lexer.lex() || EOF;
58708 if (typeof token !== 'number') {
58709 if (token instanceof Array) {
58710 tstack = token;
58711 token = tstack.pop();
58712 }
58713 token = self.symbols_[token] || token;
58714 }
58715 return token;
58716 }
58717 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
58718 while (true) {
58719 state = stack[stack.length - 1];
58720 if (this.defaultActions[state]) {
58721 action = this.defaultActions[state];
58722 } else {
58723 if (symbol === null || typeof symbol == 'undefined') {
58724 symbol = lex();
58725 }
58726 action = table[state] && table[state][symbol];
58727 }
58728 if (typeof action === 'undefined' || !action.length || !action[0]) {
58729 var errStr = '';
58730 expected = [];
58731 for (p in table[state]) {
58732 if (this.terminals_[p] && p > TERROR) {
58733 expected.push('\'' + this.terminals_[p] + '\'');
58734 }
58735 }
58736 if (lexer.showPosition) {
58737 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
58738 } else {
58739 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
58740 }
58741 this.parseError(errStr, {
58742 text: lexer.match,
58743 token: this.terminals_[symbol] || symbol,
58744 line: lexer.yylineno,
58745 loc: yyloc,
58746 expected: expected
58747 });
58748 }
58749 if (action[0] instanceof Array && action.length > 1) {
58750 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
58751 }
58752 switch (action[0]) {
58753 case 1:
58754 stack.push(symbol);
58755 vstack.push(lexer.yytext);
58756 lstack.push(lexer.yylloc);
58757 stack.push(action[1]);
58758 symbol = null;
58759 if (!preErrorSymbol) {
58760 yyleng = lexer.yyleng;
58761 yytext = lexer.yytext;
58762 yylineno = lexer.yylineno;
58763 yyloc = lexer.yylloc;
58764 if (recovering > 0) {
58765 recovering--;
58766 }
58767 } else {
58768 symbol = preErrorSymbol;
58769 preErrorSymbol = null;
58770 }
58771 break;
58772 case 2:
58773 len = this.productions_[action[1]][1];
58774 yyval.$ = vstack[vstack.length - len];
58775 yyval._$ = {
58776 first_line: lstack[lstack.length - (len || 1)].first_line,
58777 last_line: lstack[lstack.length - 1].last_line,
58778 first_column: lstack[lstack.length - (len || 1)].first_column,
58779 last_column: lstack[lstack.length - 1].last_column
58780 };
58781 if (ranges) {
58782 yyval._$.range = [
58783 lstack[lstack.length - (len || 1)].range[0],
58784 lstack[lstack.length - 1].range[1]
58785 ];
58786 }
58787 r = this.performAction.apply(yyval, [
58788 yytext,
58789 yyleng,
58790 yylineno,
58791 sharedState.yy,
58792 action[1],
58793 vstack,
58794 lstack
58795 ].concat(args));
58796 if (typeof r !== 'undefined') {
58797 return r;
58798 }
58799 if (len) {
58800 stack = stack.slice(0, -1 * len * 2);
58801 vstack = vstack.slice(0, -1 * len);
58802 lstack = lstack.slice(0, -1 * len);
58803 }
58804 stack.push(this.productions_[action[1]][0]);
58805 vstack.push(yyval.$);
58806 lstack.push(yyval._$);
58807 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
58808 stack.push(newState);
58809 break;
58810 case 3:
58811 return true;
58812 }
58813 }
58814 return true;
58815}};
58816
58817/* generated by jison-lex 0.3.4 */
58818var lexer = (function(){
58819var lexer = ({
58820
58821EOF:1,
58822
58823parseError:function parseError(str, hash) {
58824 if (this.yy.parser) {
58825 this.yy.parser.parseError(str, hash);
58826 } else {
58827 throw new Error(str);
58828 }
58829 },
58830
58831// resets the lexer, sets new input
58832setInput:function (input, yy) {
58833 this.yy = yy || this.yy || {};
58834 this._input = input;
58835 this._more = this._backtrack = this.done = false;
58836 this.yylineno = this.yyleng = 0;
58837 this.yytext = this.matched = this.match = '';
58838 this.conditionStack = ['INITIAL'];
58839 this.yylloc = {
58840 first_line: 1,
58841 first_column: 0,
58842 last_line: 1,
58843 last_column: 0
58844 };
58845 if (this.options.ranges) {
58846 this.yylloc.range = [0,0];
58847 }
58848 this.offset = 0;
58849 return this;
58850 },
58851
58852// consumes and returns one char from the input
58853input:function () {
58854 var ch = this._input[0];
58855 this.yytext += ch;
58856 this.yyleng++;
58857 this.offset++;
58858 this.match += ch;
58859 this.matched += ch;
58860 var lines = ch.match(/(?:\r\n?|\n).*/g);
58861 if (lines) {
58862 this.yylineno++;
58863 this.yylloc.last_line++;
58864 } else {
58865 this.yylloc.last_column++;
58866 }
58867 if (this.options.ranges) {
58868 this.yylloc.range[1]++;
58869 }
58870
58871 this._input = this._input.slice(1);
58872 return ch;
58873 },
58874
58875// unshifts one char (or a string) into the input
58876unput:function (ch) {
58877 var len = ch.length;
58878 var lines = ch.split(/(?:\r\n?|\n)/g);
58879
58880 this._input = ch + this._input;
58881 this.yytext = this.yytext.substr(0, this.yytext.length - len);
58882 //this.yyleng -= len;
58883 this.offset -= len;
58884 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
58885 this.match = this.match.substr(0, this.match.length - 1);
58886 this.matched = this.matched.substr(0, this.matched.length - 1);
58887
58888 if (lines.length - 1) {
58889 this.yylineno -= lines.length - 1;
58890 }
58891 var r = this.yylloc.range;
58892
58893 this.yylloc = {
58894 first_line: this.yylloc.first_line,
58895 last_line: this.yylineno + 1,
58896 first_column: this.yylloc.first_column,
58897 last_column: lines ?
58898 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
58899 + oldLines[oldLines.length - lines.length].length - lines[0].length :
58900 this.yylloc.first_column - len
58901 };
58902
58903 if (this.options.ranges) {
58904 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
58905 }
58906 this.yyleng = this.yytext.length;
58907 return this;
58908 },
58909
58910// When called from action, caches matched text and appends it on next action
58911more:function () {
58912 this._more = true;
58913 return this;
58914 },
58915
58916// 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.
58917reject:function () {
58918 if (this.options.backtrack_lexer) {
58919 this._backtrack = true;
58920 } else {
58921 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(), {
58922 text: "",
58923 token: null,
58924 line: this.yylineno
58925 });
58926
58927 }
58928 return this;
58929 },
58930
58931// retain first n characters of the match
58932less:function (n) {
58933 this.unput(this.match.slice(n));
58934 },
58935
58936// displays already matched input, i.e. for error messages
58937pastInput:function () {
58938 var past = this.matched.substr(0, this.matched.length - this.match.length);
58939 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
58940 },
58941
58942// displays upcoming input, i.e. for error messages
58943upcomingInput:function () {
58944 var next = this.match;
58945 if (next.length < 20) {
58946 next += this._input.substr(0, 20-next.length);
58947 }
58948 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
58949 },
58950
58951// displays the character position where the lexing error occurred, i.e. for error messages
58952showPosition:function () {
58953 var pre = this.pastInput();
58954 var c = new Array(pre.length + 1).join("-");
58955 return pre + this.upcomingInput() + "\n" + c + "^";
58956 },
58957
58958// test the lexed token: return FALSE when not a match, otherwise return token
58959test_match:function(match, indexed_rule) {
58960 var token,
58961 lines,
58962 backup;
58963
58964 if (this.options.backtrack_lexer) {
58965 // save context
58966 backup = {
58967 yylineno: this.yylineno,
58968 yylloc: {
58969 first_line: this.yylloc.first_line,
58970 last_line: this.last_line,
58971 first_column: this.yylloc.first_column,
58972 last_column: this.yylloc.last_column
58973 },
58974 yytext: this.yytext,
58975 match: this.match,
58976 matches: this.matches,
58977 matched: this.matched,
58978 yyleng: this.yyleng,
58979 offset: this.offset,
58980 _more: this._more,
58981 _input: this._input,
58982 yy: this.yy,
58983 conditionStack: this.conditionStack.slice(0),
58984 done: this.done
58985 };
58986 if (this.options.ranges) {
58987 backup.yylloc.range = this.yylloc.range.slice(0);
58988 }
58989 }
58990
58991 lines = match[0].match(/(?:\r\n?|\n).*/g);
58992 if (lines) {
58993 this.yylineno += lines.length;
58994 }
58995 this.yylloc = {
58996 first_line: this.yylloc.last_line,
58997 last_line: this.yylineno + 1,
58998 first_column: this.yylloc.last_column,
58999 last_column: lines ?
59000 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
59001 this.yylloc.last_column + match[0].length
59002 };
59003 this.yytext += match[0];
59004 this.match += match[0];
59005 this.matches = match;
59006 this.yyleng = this.yytext.length;
59007 if (this.options.ranges) {
59008 this.yylloc.range = [this.offset, this.offset += this.yyleng];
59009 }
59010 this._more = false;
59011 this._backtrack = false;
59012 this._input = this._input.slice(match[0].length);
59013 this.matched += match[0];
59014 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
59015 if (this.done && this._input) {
59016 this.done = false;
59017 }
59018 if (token) {
59019 return token;
59020 } else if (this._backtrack) {
59021 // recover context
59022 for (var k in backup) {
59023 this[k] = backup[k];
59024 }
59025 return false; // rule action called reject() implying the next rule should be tested instead.
59026 }
59027 return false;
59028 },
59029
59030// return next match in input
59031next:function () {
59032 if (this.done) {
59033 return this.EOF;
59034 }
59035 if (!this._input) {
59036 this.done = true;
59037 }
59038
59039 var token,
59040 match,
59041 tempMatch,
59042 index;
59043 if (!this._more) {
59044 this.yytext = '';
59045 this.match = '';
59046 }
59047 var rules = this._currentRules();
59048 for (var i = 0; i < rules.length; i++) {
59049 tempMatch = this._input.match(this.rules[rules[i]]);
59050 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
59051 match = tempMatch;
59052 index = i;
59053 if (this.options.backtrack_lexer) {
59054 token = this.test_match(tempMatch, rules[i]);
59055 if (token !== false) {
59056 return token;
59057 } else if (this._backtrack) {
59058 match = false;
59059 continue; // rule action called reject() implying a rule MISmatch.
59060 } else {
59061 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
59062 return false;
59063 }
59064 } else if (!this.options.flex) {
59065 break;
59066 }
59067 }
59068 }
59069 if (match) {
59070 token = this.test_match(match, rules[index]);
59071 if (token !== false) {
59072 return token;
59073 }
59074 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
59075 return false;
59076 }
59077 if (this._input === "") {
59078 return this.EOF;
59079 } else {
59080 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
59081 text: "",
59082 token: null,
59083 line: this.yylineno
59084 });
59085 }
59086 },
59087
59088// return next match that has a token
59089lex:function lex () {
59090 var r = this.next();
59091 if (r) {
59092 return r;
59093 } else {
59094 return this.lex();
59095 }
59096 },
59097
59098// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
59099begin:function begin (condition) {
59100 this.conditionStack.push(condition);
59101 },
59102
59103// pop the previously active lexer condition state off the condition stack
59104popState:function popState () {
59105 var n = this.conditionStack.length - 1;
59106 if (n > 0) {
59107 return this.conditionStack.pop();
59108 } else {
59109 return this.conditionStack[0];
59110 }
59111 },
59112
59113// produce the lexer rule set which is active for the currently active lexer condition state
59114_currentRules:function _currentRules () {
59115 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
59116 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
59117 } else {
59118 return this.conditions["INITIAL"].rules;
59119 }
59120 },
59121
59122// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
59123topState:function topState (n) {
59124 n = this.conditionStack.length - 1 - Math.abs(n || 0);
59125 if (n >= 0) {
59126 return this.conditionStack[n];
59127 } else {
59128 return "INITIAL";
59129 }
59130 },
59131
59132// alias for begin(condition)
59133pushState:function pushState (condition) {
59134 this.begin(condition);
59135 },
59136
59137// return the number of states currently on the stack
59138stateStackSize:function stateStackSize() {
59139 return this.conditionStack.length;
59140 },
59141options: {},
59142performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
59143var YYSTATE=YY_START;
59144switch($avoiding_name_collisions) {
59145case 0: this.begin('open_directive'); return 12;
59146break;
59147case 1: this.begin('type_directive'); return 13;
59148break;
59149case 2: this.popState(); this.begin('arg_directive'); return 10;
59150break;
59151case 3: this.popState(); this.popState(); return 15;
59152break;
59153case 4:return 14;
59154break;
59155case 5:/* skip comments */
59156break;
59157case 6:/* skip comments */
59158break;
59159case 7:this.begin("string");
59160break;
59161case 8:this.popState();
59162break;
59163case 9:return "STR";
59164break;
59165case 10:return 75;
59166break;
59167case 11:return 84;
59168break;
59169case 12:return 76;
59170break;
59171case 13:return 90;
59172break;
59173case 14:return 77;
59174break;
59175case 15:return 78;
59176break;
59177case 16:return 79;
59178break;
59179case 17:if(yy.lex.firstGraph()){this.begin("dir");} return 24;
59180break;
59181case 18:if(yy.lex.firstGraph()){this.begin("dir");} return 24;
59182break;
59183case 19:return 38;
59184break;
59185case 20:return 42;
59186break;
59187case 21:return 87;
59188break;
59189case 22:return 87;
59190break;
59191case 23:return 87;
59192break;
59193case 24:return 87;
59194break;
59195case 25: this.popState(); return 25;
59196break;
59197case 26: this.popState(); return 26;
59198break;
59199case 27: this.popState(); return 26;
59200break;
59201case 28: this.popState(); return 26;
59202break;
59203case 29: this.popState(); return 26;
59204break;
59205case 30: this.popState(); return 26;
59206break;
59207case 31: this.popState(); return 26;
59208break;
59209case 32: this.popState(); return 26;
59210break;
59211case 33: this.popState(); return 26;
59212break;
59213case 34: this.popState(); return 26;
59214break;
59215case 35: this.popState(); return 26;
59216break;
59217case 36: return 91;
59218break;
59219case 37:return 99;
59220break;
59221case 38:return 47;
59222break;
59223case 39:return 96;
59224break;
59225case 40:return 46;
59226break;
59227case 41:return 20;
59228break;
59229case 42:return 92;
59230break;
59231case 43:return 110;
59232break;
59233case 44:return 70;
59234break;
59235case 45:return 70;
59236break;
59237case 46:return 70;
59238break;
59239case 47:return 70;
59240break;
59241case 48:return 70;
59242break;
59243case 49:return 70;
59244break;
59245case 50:return 70;
59246break;
59247case 51:return 70;
59248break;
59249case 52:return 70;
59250break;
59251case 53:return 70;
59252break;
59253case 54:return 70;
59254break;
59255case 55:return 70;
59256break;
59257case 56:return 70;
59258break;
59259case 57:return 70;
59260break;
59261case 58:return 70;
59262break;
59263case 59:return 70;
59264break;
59265case 60:return 70;
59266break;
59267case 61:return 70;
59268break;
59269case 62:return 70;
59270break;
59271case 63:return 70;
59272break;
59273case 64:return 70;
59274break;
59275case 65:return 70;
59276break;
59277case 66:return 70;
59278break;
59279case 67:return 70;
59280break;
59281case 68:return 70;
59282break;
59283case 69:return 70;
59284break;
59285case 70:return 70;
59286break;
59287case 71:return 70;
59288break;
59289case 72:return 69;
59290break;
59291case 73:return 69;
59292break;
59293case 74:return 69;
59294break;
59295case 75:return 69;
59296break;
59297case 76:return 69;
59298break;
59299case 77:return 69;
59300break;
59301case 78:return 69;
59302break;
59303case 79:return 69;
59304break;
59305case 80:return 69;
59306break;
59307case 81:return 69;
59308break;
59309case 82:return 69;
59310break;
59311case 83:return 69;
59312break;
59313case 84:return 51;
59314break;
59315case 85:return 52;
59316break;
59317case 86:return 53;
59318break;
59319case 87:return 54;
59320break;
59321case 88:return 55;
59322break;
59323case 89:return 56;
59324break;
59325case 90:return 57;
59326break;
59327case 91:return 58;
59328break;
59329case 92:return 97;
59330break;
59331case 93:return 100;
59332break;
59333case 94:return 111;
59334break;
59335case 95:return 108;
59336break;
59337case 96:return 101;
59338break;
59339case 97:return 109;
59340break;
59341case 98:return 109;
59342break;
59343case 99:return 102;
59344break;
59345case 100:return 61;
59346break;
59347case 101:return 81;
59348break;
59349case 102:return 'SEP';
59350break;
59351case 103:return 80;
59352break;
59353case 104:return 95;
59354break;
59355case 105:return 63;
59356break;
59357case 106:return 62;
59358break;
59359case 107:return 65;
59360break;
59361case 108:return 64;
59362break;
59363case 109:return 106;
59364break;
59365case 110:return 107;
59366break;
59367case 111:return 71;
59368break;
59369case 112:return 49;
59370break;
59371case 113:return 50;
59372break;
59373case 114:return 40;
59374break;
59375case 115:return 41;
59376break;
59377case 116:return 59
59378break;
59379case 117:return 60
59380break;
59381case 118:return 117;
59382break;
59383case 119:return 21;
59384break;
59385case 120:return 22;
59386break;
59387case 121:return 23;
59388break;
59389}
59390},
59391rules: [/^(?:%%\{)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\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*--[x]\s*)/,/^(?:\s*-->\s*)/,/^(?:\s*<-->\s*)/,/^(?:\s*[x]--[x]\s*)/,/^(?:\s*[o]--[o]\s*)/,/^(?:\s*[o]\.-[o]\s*)/,/^(?:\s*<==>\s*)/,/^(?:\s*[o]==[o]\s*)/,/^(?:\s*[x]==[x]\s*)/,/^(?:\s*[x].-[x]\s*)/,/^(?:\s*[x]-\.-[x]\s*)/,/^(?:\s*<\.->\s*)/,/^(?:\s*<-\.->\s*)/,/^(?:\s*[o]-\.-[o]\s*)/,/^(?:\s*--[o]\s*)/,/^(?:\s*---\s*)/,/^(?:\s*-\.-[x]\s*)/,/^(?:\s*-\.->\s*)/,/^(?:\s*-\.-[o]\s*)/,/^(?:\s*-\.-\s*)/,/^(?:\s*.-[x]\s*)/,/^(?:\s*\.->\s*)/,/^(?:\s*\.-[o]\s*)/,/^(?:\s*\.-\s*)/,/^(?:\s*==[x]\s*)/,/^(?:\s*==>\s*)/,/^(?:\s*==[o]\s*)/,/^(?:\s*==[\=]\s*)/,/^(?:\s*<--\s*)/,/^(?:\s*[x]--\s*)/,/^(?:\s*[o]--\s*)/,/^(?:\s*<-\.\s*)/,/^(?:\s*[x]-\.\s*)/,/^(?:\s*[o]-\.\s*)/,/^(?:\s*<==\s*)/,/^(?:\s*[x]==\s*)/,/^(?:\s*[o]==\s*)/,/^(?:\s*--\s*)/,/^(?:\s*-\.\s*)/,/^(?:\s*==\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\[)/,/^(?:\]\))/,/^(?:\[\[)/,/^(?:\]\])/,/^(?:\[\()/,/^(?:\)\])/,/^(?:-)/,/^(?:\.)/,/^(?:[\_])/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\])/,/^(?:\[\/)/,/^(?:\/\])/,/^(?:\[\\)/,/^(?:[!"#$%&'*+,-.`?\\_/])/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],
59392conditions: {"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,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121],"inclusive":true}}
59393});
59394return lexer;
59395})();
59396parser.lexer = lexer;
59397function Parser () {
59398 this.yy = {};
59399}
59400Parser.prototype = parser;parser.Parser = Parser;
59401return new Parser;
59402})();
59403
59404
59405if (true) {
59406exports.parser = parser;
59407exports.Parser = parser.Parser;
59408exports.parse = function () { return parser.parse.apply(parser, arguments); };
59409exports.main = function commonjsMain (args) {
59410 if (!args[1]) {
59411 console.log('Usage: '+args[0]+' FILE');
59412 process.exit(1);
59413 }
59414 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");
59415 return exports.parser.parse(source);
59416};
59417if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
59418 exports.main(process.argv.slice(1));
59419}
59420}
59421/* 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)))
59422
59423/***/ }),
59424
59425/***/ "./src/diagrams/flowchart/styles.js":
59426/*!******************************************!*\
59427 !*** ./src/diagrams/flowchart/styles.js ***!
59428 \******************************************/
59429/*! exports provided: default */
59430/***/ (function(module, __webpack_exports__, __webpack_require__) {
59431
59432"use strict";
59433__webpack_require__.r(__webpack_exports__);
59434var getStyles = function getStyles(options) {
59435 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");
59436};
59437
59438/* harmony default export */ __webpack_exports__["default"] = (getStyles);
59439
59440/***/ }),
59441
59442/***/ "./src/diagrams/gantt/ganttDb.js":
59443/*!***************************************!*\
59444 !*** ./src/diagrams/gantt/ganttDb.js ***!
59445 \***************************************/
59446/*! 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 */
59447/***/ (function(module, __webpack_exports__, __webpack_require__) {
59448
59449"use strict";
59450__webpack_require__.r(__webpack_exports__);
59451/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDirective", function() { return parseDirective; });
59452/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
59453/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAxisFormat", function() { return setAxisFormat; });
59454/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAxisFormat", function() { return getAxisFormat; });
59455/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTodayMarker", function() { return setTodayMarker; });
59456/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTodayMarker", function() { return getTodayMarker; });
59457/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDateFormat", function() { return setDateFormat; });
59458/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "enableInclusiveEndDates", function() { return enableInclusiveEndDates; });
59459/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "endDatesAreInclusive", function() { return endDatesAreInclusive; });
59460/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDateFormat", function() { return getDateFormat; });
59461/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setExcludes", function() { return setExcludes; });
59462/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getExcludes", function() { return getExcludes; });
59463/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTitle", function() { return setTitle; });
59464/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTitle", function() { return getTitle; });
59465/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSection", function() { return addSection; });
59466/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSections", function() { return getSections; });
59467/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTasks", function() { return getTasks; });
59468/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTask", function() { return addTask; });
59469/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findTaskById", function() { return findTaskById; });
59470/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTaskOrg", function() { return addTaskOrg; });
59471/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLink", function() { return setLink; });
59472/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClass", function() { return setClass; });
59473/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setClickEvent", function() { return setClickEvent; });
59474/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindFunctions", function() { return bindFunctions; });
59475/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-mini */ "./node_modules/moment-mini/moment.min.js");
59476/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_mini__WEBPACK_IMPORTED_MODULE_0__);
59477/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @braintree/sanitize-url */ "./node_modules/@braintree/sanitize-url/index.js");
59478/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__);
59479/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
59480/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../config */ "./src/config.js");
59481/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
59482/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
59483function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
59484
59485function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
59486
59487function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
59488
59489function _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; } }
59490
59491
59492
59493
59494
59495
59496
59497var dateFormat = '';
59498var axisFormat = '';
59499var todayMarker = '';
59500var excludes = [];
59501var title = '';
59502var sections = [];
59503var tasks = [];
59504var currentSection = '';
59505var tags = ['active', 'done', 'crit', 'milestone'];
59506var funs = [];
59507var inclusiveEndDates = false; // The serial order of the task in the script
59508
59509var lastOrder = 0;
59510var parseDirective = function parseDirective(statement, context, type) {
59511 _mermaidAPI__WEBPACK_IMPORTED_MODULE_5__["default"].parseDirective(this, statement, context, type);
59512};
59513var clear = function clear() {
59514 sections = [];
59515 tasks = [];
59516 currentSection = '';
59517 funs = [];
59518 title = '';
59519 taskCnt = 0;
59520 lastTask = undefined;
59521 lastTaskID = undefined;
59522 rawTasks = [];
59523 dateFormat = '';
59524 axisFormat = '';
59525 todayMarker = '';
59526 excludes = [];
59527 inclusiveEndDates = false;
59528 lastOrder = 0;
59529};
59530var setAxisFormat = function setAxisFormat(txt) {
59531 axisFormat = txt;
59532};
59533var getAxisFormat = function getAxisFormat() {
59534 return axisFormat;
59535};
59536var setTodayMarker = function setTodayMarker(txt) {
59537 todayMarker = txt;
59538};
59539var getTodayMarker = function getTodayMarker() {
59540 return todayMarker;
59541};
59542var setDateFormat = function setDateFormat(txt) {
59543 dateFormat = txt;
59544};
59545var enableInclusiveEndDates = function enableInclusiveEndDates() {
59546 inclusiveEndDates = true;
59547};
59548var endDatesAreInclusive = function endDatesAreInclusive() {
59549 return inclusiveEndDates;
59550};
59551var getDateFormat = function getDateFormat() {
59552 return dateFormat;
59553};
59554var setExcludes = function setExcludes(txt) {
59555 excludes = txt.toLowerCase().split(/[\s,]+/);
59556};
59557var getExcludes = function getExcludes() {
59558 return excludes;
59559};
59560var setTitle = function setTitle(txt) {
59561 title = txt;
59562};
59563var getTitle = function getTitle() {
59564 return title;
59565};
59566var addSection = function addSection(txt) {
59567 currentSection = txt;
59568 sections.push(txt);
59569};
59570var getSections = function getSections() {
59571 return sections;
59572};
59573var getTasks = function getTasks() {
59574 var allItemsPricessed = compileTasks();
59575 var maxDepth = 10;
59576 var iterationCount = 0;
59577
59578 while (!allItemsPricessed && iterationCount < maxDepth) {
59579 allItemsPricessed = compileTasks();
59580 iterationCount++;
59581 }
59582
59583 tasks = rawTasks;
59584 return tasks;
59585};
59586
59587var isInvalidDate = function isInvalidDate(date, dateFormat, excludes) {
59588 if (date.isoWeekday() >= 6 && excludes.indexOf('weekends') >= 0) {
59589 return true;
59590 }
59591
59592 if (excludes.indexOf(date.format('dddd').toLowerCase()) >= 0) {
59593 return true;
59594 }
59595
59596 return excludes.indexOf(date.format(dateFormat.trim())) >= 0;
59597};
59598
59599var checkTaskDates = function checkTaskDates(task, dateFormat, excludes) {
59600 if (!excludes.length || task.manualEndTime) return;
59601 var startTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(task.startTime, dateFormat, true);
59602 startTime.add(1, 'd');
59603 var endTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(task.endTime, dateFormat, true);
59604 var renderEndTime = fixTaskDates(startTime, endTime, dateFormat, excludes);
59605 task.endTime = endTime.toDate();
59606 task.renderEndTime = renderEndTime;
59607};
59608
59609var fixTaskDates = function fixTaskDates(startTime, endTime, dateFormat, excludes) {
59610 var invalid = false;
59611 var renderEndTime = null;
59612
59613 while (startTime <= endTime) {
59614 if (!invalid) {
59615 renderEndTime = endTime.toDate();
59616 }
59617
59618 invalid = isInvalidDate(startTime, dateFormat, excludes);
59619
59620 if (invalid) {
59621 endTime.add(1, 'd');
59622 }
59623
59624 startTime.add(1, 'd');
59625 }
59626
59627 return renderEndTime;
59628};
59629
59630var getStartDate = function getStartDate(prevTime, dateFormat, str) {
59631 str = str.trim(); // Test for after
59632
59633 var re = /^after\s+([\d\w- ]+)/;
59634 var afterStatement = re.exec(str.trim());
59635
59636 if (afterStatement !== null) {
59637 // check all after ids and take the latest
59638 var latestEndingTask = null;
59639 afterStatement[1].split(' ').forEach(function (id) {
59640 var task = findTaskById(id);
59641
59642 if (typeof task !== 'undefined') {
59643 if (!latestEndingTask) {
59644 latestEndingTask = task;
59645 } else {
59646 if (task.endTime > latestEndingTask.endTime) {
59647 latestEndingTask = task;
59648 }
59649 }
59650 }
59651 });
59652
59653 if (!latestEndingTask) {
59654 var dt = new Date();
59655 dt.setHours(0, 0, 0, 0);
59656 return dt;
59657 } else {
59658 return latestEndingTask.endTime;
59659 }
59660 } // Check for actual date set
59661
59662
59663 var mDate = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(str, dateFormat.trim(), true);
59664
59665 if (mDate.isValid()) {
59666 return mDate.toDate();
59667 } else {
59668 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Invalid date:' + str);
59669 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('With date format:' + dateFormat.trim());
59670 } // Default date - now
59671
59672
59673 return new Date();
59674};
59675
59676var durationToDate = function durationToDate(durationStatement, relativeTime) {
59677 if (durationStatement !== null) {
59678 switch (durationStatement[2]) {
59679 case 's':
59680 relativeTime.add(durationStatement[1], 'seconds');
59681 break;
59682
59683 case 'm':
59684 relativeTime.add(durationStatement[1], 'minutes');
59685 break;
59686
59687 case 'h':
59688 relativeTime.add(durationStatement[1], 'hours');
59689 break;
59690
59691 case 'd':
59692 relativeTime.add(durationStatement[1], 'days');
59693 break;
59694
59695 case 'w':
59696 relativeTime.add(durationStatement[1], 'weeks');
59697 break;
59698 }
59699 } // Default date - now
59700
59701
59702 return relativeTime.toDate();
59703};
59704
59705var getEndDate = function getEndDate(prevTime, dateFormat, str, inclusive) {
59706 inclusive = inclusive || false;
59707 str = str.trim(); // Check for actual date
59708
59709 var mDate = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(str, dateFormat.trim(), true);
59710
59711 if (mDate.isValid()) {
59712 if (inclusive) {
59713 mDate.add(1, 'd');
59714 }
59715
59716 return mDate.toDate();
59717 }
59718
59719 return durationToDate(/^([\d]+)([wdhms])/.exec(str.trim()), moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(prevTime));
59720};
59721
59722var taskCnt = 0;
59723
59724var parseId = function parseId(idStr) {
59725 if (typeof idStr === 'undefined') {
59726 taskCnt = taskCnt + 1;
59727 return 'task' + taskCnt;
59728 }
59729
59730 return idStr;
59731}; // id, startDate, endDate
59732// id, startDate, length
59733// id, after x, endDate
59734// id, after x, length
59735// startDate, endDate
59736// startDate, length
59737// after x, endDate
59738// after x, length
59739// endDate
59740// length
59741
59742
59743var compileData = function compileData(prevTask, dataStr) {
59744 var ds;
59745
59746 if (dataStr.substr(0, 1) === ':') {
59747 ds = dataStr.substr(1, dataStr.length);
59748 } else {
59749 ds = dataStr;
59750 }
59751
59752 var data = ds.split(',');
59753 var task = {}; // Get tags like active, done, crit and milestone
59754
59755 getTaskTags(data, task, tags);
59756
59757 for (var i = 0; i < data.length; i++) {
59758 data[i] = data[i].trim();
59759 }
59760
59761 var endTimeData = '';
59762
59763 switch (data.length) {
59764 case 1:
59765 task.id = parseId();
59766 task.startTime = prevTask.endTime;
59767 endTimeData = data[0];
59768 break;
59769
59770 case 2:
59771 task.id = parseId();
59772 task.startTime = getStartDate(undefined, dateFormat, data[0]);
59773 endTimeData = data[1];
59774 break;
59775
59776 case 3:
59777 task.id = parseId(data[0]);
59778 task.startTime = getStartDate(undefined, dateFormat, data[1]);
59779 endTimeData = data[2];
59780 break;
59781
59782 default:
59783 }
59784
59785 if (endTimeData) {
59786 task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);
59787 task.manualEndTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(endTimeData, 'YYYY-MM-DD', true).isValid();
59788 checkTaskDates(task, dateFormat, excludes);
59789 }
59790
59791 return task;
59792};
59793
59794var parseData = function parseData(prevTaskId, dataStr) {
59795 var ds;
59796
59797 if (dataStr.substr(0, 1) === ':') {
59798 ds = dataStr.substr(1, dataStr.length);
59799 } else {
59800 ds = dataStr;
59801 }
59802
59803 var data = ds.split(',');
59804 var task = {}; // Get tags like active, done, crit and milestone
59805
59806 getTaskTags(data, task, tags);
59807
59808 for (var i = 0; i < data.length; i++) {
59809 data[i] = data[i].trim();
59810 }
59811
59812 switch (data.length) {
59813 case 1:
59814 task.id = parseId();
59815 task.startTime = {
59816 type: 'prevTaskEnd',
59817 id: prevTaskId
59818 };
59819 task.endTime = {
59820 data: data[0]
59821 };
59822 break;
59823
59824 case 2:
59825 task.id = parseId();
59826 task.startTime = {
59827 type: 'getStartDate',
59828 startData: data[0]
59829 };
59830 task.endTime = {
59831 data: data[1]
59832 };
59833 break;
59834
59835 case 3:
59836 task.id = parseId(data[0]);
59837 task.startTime = {
59838 type: 'getStartDate',
59839 startData: data[1]
59840 };
59841 task.endTime = {
59842 data: data[2]
59843 };
59844 break;
59845
59846 default:
59847 }
59848
59849 return task;
59850};
59851
59852var lastTask;
59853var lastTaskID;
59854var rawTasks = [];
59855var taskDb = {};
59856var addTask = function addTask(descr, data) {
59857 var rawTask = {
59858 section: currentSection,
59859 type: currentSection,
59860 processed: false,
59861 manualEndTime: false,
59862 renderEndTime: null,
59863 raw: {
59864 data: data
59865 },
59866 task: descr,
59867 classes: []
59868 };
59869 var taskInfo = parseData(lastTaskID, data);
59870 rawTask.raw.startTime = taskInfo.startTime;
59871 rawTask.raw.endTime = taskInfo.endTime;
59872 rawTask.id = taskInfo.id;
59873 rawTask.prevTaskId = lastTaskID;
59874 rawTask.active = taskInfo.active;
59875 rawTask.done = taskInfo.done;
59876 rawTask.crit = taskInfo.crit;
59877 rawTask.milestone = taskInfo.milestone;
59878 rawTask.order = lastOrder;
59879 lastOrder++;
59880 var pos = rawTasks.push(rawTask);
59881 lastTaskID = rawTask.id; // Store cross ref
59882
59883 taskDb[rawTask.id] = pos - 1;
59884};
59885var findTaskById = function findTaskById(id) {
59886 var pos = taskDb[id];
59887 return rawTasks[pos];
59888};
59889var addTaskOrg = function addTaskOrg(descr, data) {
59890 var newTask = {
59891 section: currentSection,
59892 type: currentSection,
59893 description: descr,
59894 task: descr,
59895 classes: []
59896 };
59897 var taskInfo = compileData(lastTask, data);
59898 newTask.startTime = taskInfo.startTime;
59899 newTask.endTime = taskInfo.endTime;
59900 newTask.id = taskInfo.id;
59901 newTask.active = taskInfo.active;
59902 newTask.done = taskInfo.done;
59903 newTask.crit = taskInfo.crit;
59904 newTask.milestone = taskInfo.milestone;
59905 lastTask = newTask;
59906 tasks.push(newTask);
59907};
59908
59909var compileTasks = function compileTasks() {
59910 var compileTask = function compileTask(pos) {
59911 var task = rawTasks[pos];
59912 var startTime = '';
59913
59914 switch (rawTasks[pos].raw.startTime.type) {
59915 case 'prevTaskEnd':
59916 {
59917 var prevTask = findTaskById(task.prevTaskId);
59918 task.startTime = prevTask.endTime;
59919 break;
59920 }
59921
59922 case 'getStartDate':
59923 startTime = getStartDate(undefined, dateFormat, rawTasks[pos].raw.startTime.startData);
59924
59925 if (startTime) {
59926 rawTasks[pos].startTime = startTime;
59927 }
59928
59929 break;
59930 }
59931
59932 if (rawTasks[pos].startTime) {
59933 rawTasks[pos].endTime = getEndDate(rawTasks[pos].startTime, dateFormat, rawTasks[pos].raw.endTime.data, inclusiveEndDates);
59934
59935 if (rawTasks[pos].endTime) {
59936 rawTasks[pos].processed = true;
59937 rawTasks[pos].manualEndTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(rawTasks[pos].raw.endTime.data, 'YYYY-MM-DD', true).isValid();
59938 checkTaskDates(rawTasks[pos], dateFormat, excludes);
59939 }
59940 }
59941
59942 return rawTasks[pos].processed;
59943 };
59944
59945 var allProcessed = true;
59946
59947 for (var i = 0; i < rawTasks.length; i++) {
59948 compileTask(i);
59949 allProcessed = allProcessed && rawTasks[i].processed;
59950 }
59951
59952 return allProcessed;
59953};
59954/**
59955 * Called by parser when a link is found. Adds the URL to the vertex data.
59956 * @param ids Comma separated list of ids
59957 * @param linkStr URL to create a link for
59958 */
59959
59960
59961var setLink = function setLink(ids, _linkStr) {
59962 var linkStr = _linkStr;
59963
59964 if (_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"]().securityLevel !== 'loose') {
59965 linkStr = Object(_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__["sanitizeUrl"])(_linkStr);
59966 }
59967
59968 ids.split(',').forEach(function (id) {
59969 var rawTask = findTaskById(id);
59970
59971 if (typeof rawTask !== 'undefined') {
59972 pushFun(id, function () {
59973 window.open(linkStr, '_self');
59974 });
59975 }
59976 });
59977 setClass(ids, 'clickable');
59978};
59979/**
59980 * Called by parser when a special node is found, e.g. a clickable element.
59981 * @param ids Comma separated list of ids
59982 * @param className Class to add
59983 */
59984
59985var setClass = function setClass(ids, className) {
59986 ids.split(',').forEach(function (id) {
59987 var rawTask = findTaskById(id);
59988
59989 if (typeof rawTask !== 'undefined') {
59990 rawTask.classes.push(className);
59991 }
59992 });
59993};
59994
59995var setClickFun = function setClickFun(id, functionName, functionArgs) {
59996 if (_config__WEBPACK_IMPORTED_MODULE_3__["getConfig"]().securityLevel !== 'loose') {
59997 return;
59998 }
59999
60000 if (typeof functionName === 'undefined') {
60001 return;
60002 }
60003
60004 var argList = [];
60005
60006 if (typeof functionArgs === 'string') {
60007 /* Splits functionArgs by ',', ignoring all ',' in double quoted strings */
60008 argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
60009
60010 for (var i = 0; i < argList.length; i++) {
60011 var item = argList[i].trim();
60012 /* Removes all double quotes at the start and end of an argument */
60013
60014 /* This preserves all starting and ending whitespace inside */
60015
60016 if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
60017 item = item.substr(1, item.length - 2);
60018 }
60019
60020 argList[i] = item;
60021 }
60022 }
60023 /* if no arguments passed into callback, default to passing in id */
60024
60025
60026 if (argList.length === 0) {
60027 argList.push(id);
60028 }
60029
60030 var rawTask = findTaskById(id);
60031
60032 if (typeof rawTask !== 'undefined') {
60033 pushFun(id, function () {
60034 _utils__WEBPACK_IMPORTED_MODULE_4__["default"].runFunc.apply(_utils__WEBPACK_IMPORTED_MODULE_4__["default"], [functionName].concat(_toConsumableArray(argList)));
60035 });
60036 }
60037};
60038/**
60039 * The callbackFunction is executed in a click event bound to the task with the specified id or the task's assigned text
60040 * @param id The task's id
60041 * @param callbackFunction A function to be executed when clicked on the task or the task's text
60042 */
60043
60044
60045var pushFun = function pushFun(id, callbackFunction) {
60046 funs.push(function () {
60047 // const elem = d3.select(element).select(`[id="${id}"]`)
60048 var elem = document.querySelector("[id=\"".concat(id, "\"]"));
60049
60050 if (elem !== null) {
60051 elem.addEventListener('click', function () {
60052 callbackFunction();
60053 });
60054 }
60055 });
60056 funs.push(function () {
60057 // const elem = d3.select(element).select(`[id="${id}-text"]`)
60058 var elem = document.querySelector("[id=\"".concat(id, "-text\"]"));
60059
60060 if (elem !== null) {
60061 elem.addEventListener('click', function () {
60062 callbackFunction();
60063 });
60064 }
60065 });
60066};
60067/**
60068 * Called by parser when a click definition is found. Registers an event handler.
60069 * @param ids Comma separated list of ids
60070 * @param functionName Function to be called on click
60071 * @param functionArgs Function args the function should be called with
60072 */
60073
60074
60075var setClickEvent = function setClickEvent(ids, functionName, functionArgs) {
60076 ids.split(',').forEach(function (id) {
60077 setClickFun(id, functionName, functionArgs);
60078 });
60079 setClass(ids, 'clickable');
60080};
60081/**
60082 * Binds all functions previously added to fun (specified through click) to the element
60083 * @param element
60084 */
60085
60086var bindFunctions = function bindFunctions(element) {
60087 funs.forEach(function (fun) {
60088 fun(element);
60089 });
60090};
60091/* harmony default export */ __webpack_exports__["default"] = ({
60092 parseDirective: parseDirective,
60093 getConfig: function getConfig() {
60094 return _config__WEBPACK_IMPORTED_MODULE_3__["getConfig"]().gantt;
60095 },
60096 clear: clear,
60097 setDateFormat: setDateFormat,
60098 getDateFormat: getDateFormat,
60099 enableInclusiveEndDates: enableInclusiveEndDates,
60100 endDatesAreInclusive: endDatesAreInclusive,
60101 setAxisFormat: setAxisFormat,
60102 getAxisFormat: getAxisFormat,
60103 setTodayMarker: setTodayMarker,
60104 getTodayMarker: getTodayMarker,
60105 setTitle: setTitle,
60106 getTitle: getTitle,
60107 addSection: addSection,
60108 getSections: getSections,
60109 getTasks: getTasks,
60110 addTask: addTask,
60111 findTaskById: findTaskById,
60112 addTaskOrg: addTaskOrg,
60113 setExcludes: setExcludes,
60114 getExcludes: getExcludes,
60115 setClickEvent: setClickEvent,
60116 setLink: setLink,
60117 bindFunctions: bindFunctions,
60118 durationToDate: durationToDate
60119});
60120
60121function getTaskTags(data, task, tags) {
60122 var matchFound = true;
60123
60124 while (matchFound) {
60125 matchFound = false;
60126 tags.forEach(function (t) {
60127 var pattern = '^\\s*' + t + '\\s*$';
60128 var regex = new RegExp(pattern);
60129
60130 if (data[0].match(regex)) {
60131 task[t] = true;
60132 data.shift(1);
60133 matchFound = true;
60134 }
60135 });
60136 }
60137}
60138
60139/***/ }),
60140
60141/***/ "./src/diagrams/gantt/ganttRenderer.js":
60142/*!*********************************************!*\
60143 !*** ./src/diagrams/gantt/ganttRenderer.js ***!
60144 \*********************************************/
60145/*! exports provided: setConf, draw, default */
60146/***/ (function(module, __webpack_exports__, __webpack_require__) {
60147
60148"use strict";
60149__webpack_require__.r(__webpack_exports__);
60150/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
60151/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
60152/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
60153/* harmony import */ var _parser_gantt__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parser/gantt */ "./src/diagrams/gantt/parser/gantt.jison");
60154/* harmony import */ var _parser_gantt__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_parser_gantt__WEBPACK_IMPORTED_MODULE_1__);
60155/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
60156/* harmony import */ var _ganttDb__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ganttDb */ "./src/diagrams/gantt/ganttDb.js");
60157
60158
60159
60160
60161_parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy = _ganttDb__WEBPACK_IMPORTED_MODULE_3__["default"];
60162var conf = {
60163 titleTopMargin: 25,
60164 barHeight: 20,
60165 barGap: 4,
60166 topPadding: 50,
60167 rightPadding: 75,
60168 leftPadding: 75,
60169 gridLineStartPadding: 35,
60170 fontSize: 11,
60171 fontFamily: '"Open-Sans", "sans-serif"'
60172};
60173var setConf = function setConf(cnf) {
60174 var keys = Object.keys(cnf);
60175 keys.forEach(function (key) {
60176 conf[key] = cnf[key];
60177 });
60178};
60179var w;
60180var draw = function draw(text, id) {
60181 _parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.clear();
60182 _parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].parse(text);
60183 var elem = document.getElementById(id);
60184 w = elem.parentElement.offsetWidth;
60185
60186 if (typeof w === 'undefined') {
60187 w = 1200;
60188 }
60189
60190 if (typeof conf.useWidth !== 'undefined') {
60191 w = conf.useWidth;
60192 }
60193
60194 var taskArray = _parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.getTasks(); // Set height based on number of tasks
60195
60196 var h = taskArray.length * (conf.barHeight + conf.barGap) + 2 * conf.topPadding;
60197 elem.setAttribute('height', '100%'); // Set viewBox
60198
60199 elem.setAttribute('viewBox', '0 0 ' + w + ' ' + h);
60200 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])("[id=\"".concat(id, "\"]")); // Set timescale
60201
60202 var timeScale = Object(d3__WEBPACK_IMPORTED_MODULE_0__["scaleTime"])().domain([Object(d3__WEBPACK_IMPORTED_MODULE_0__["min"])(taskArray, function (d) {
60203 return d.startTime;
60204 }), Object(d3__WEBPACK_IMPORTED_MODULE_0__["max"])(taskArray, function (d) {
60205 return d.endTime;
60206 })]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]);
60207 var categories = [];
60208
60209 for (var i = 0; i < taskArray.length; i++) {
60210 categories.push(taskArray[i].type);
60211 }
60212
60213 var catsUnfiltered = categories; // for vert labels
60214
60215 categories = checkUnique(categories);
60216
60217 function taskCompare(a, b) {
60218 var taskA = a.startTime;
60219 var taskB = b.startTime;
60220 var result = 0;
60221
60222 if (taskA > taskB) {
60223 result = 1;
60224 } else if (taskA < taskB) {
60225 result = -1;
60226 }
60227
60228 return result;
60229 } // Sort the task array using the above taskCompare() so that
60230 // tasks are created based on their order of startTime
60231
60232
60233 taskArray.sort(taskCompare);
60234 makeGant(taskArray, w, h);
60235
60236 if (typeof conf.useWidth !== 'undefined') {
60237 elem.setAttribute('width', w);
60238 }
60239
60240 svg.append('text').text(_parser_gantt__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.getTitle()).attr('x', w / 2).attr('y', conf.titleTopMargin).attr('class', 'titleText');
60241
60242 function makeGant(tasks, pageWidth, pageHeight) {
60243 var barHeight = conf.barHeight;
60244 var gap = barHeight + conf.barGap;
60245 var topPadding = conf.topPadding;
60246 var leftPadding = conf.leftPadding;
60247 var colorScale = Object(d3__WEBPACK_IMPORTED_MODULE_0__["scaleLinear"])().domain([0, categories.length]).range(['#00B9FA', '#F95002']).interpolate(d3__WEBPACK_IMPORTED_MODULE_0__["interpolateHcl"]);
60248 makeGrid(leftPadding, topPadding, pageWidth, pageHeight);
60249 drawRects(tasks, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth, pageHeight);
60250 vertLabels(gap, topPadding, leftPadding, barHeight, colorScale);
60251 drawToday(leftPadding, topPadding, pageWidth, pageHeight);
60252 }
60253
60254 function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w) {
60255 // Draw background rects covering the entire width of the graph, these form the section rows.
60256 svg.append('g').selectAll('rect').data(theArray).enter().append('rect').attr('x', 0).attr('y', function (d, i) {
60257 // Ignore the incoming i value and use our order instead
60258 i = d.order;
60259 return i * theGap + theTopPad - 2;
60260 }).attr('width', function () {
60261 return w - conf.rightPadding / 2;
60262 }).attr('height', theGap).attr('class', function (d) {
60263 for (var _i = 0; _i < categories.length; _i++) {
60264 if (d.type === categories[_i]) {
60265 return 'section section' + _i % conf.numberSectionStyles;
60266 }
60267 }
60268
60269 return 'section section0';
60270 }); // Draw the rects representing the tasks
60271
60272 var rectangles = svg.append('g').selectAll('rect').data(theArray).enter();
60273 rectangles.append('rect').attr('id', function (d) {
60274 return d.id;
60275 }).attr('rx', 3).attr('ry', 3).attr('x', function (d) {
60276 if (d.milestone) {
60277 return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
60278 }
60279
60280 return timeScale(d.startTime) + theSidePad;
60281 }).attr('y', function (d, i) {
60282 // Ignore the incoming i value and use our order instead
60283 i = d.order;
60284 return i * theGap + theTopPad;
60285 }).attr('width', function (d) {
60286 if (d.milestone) {
60287 return theBarHeight;
60288 }
60289
60290 return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime);
60291 }).attr('height', theBarHeight).attr('transform-origin', function (d, i) {
60292 return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + 'px ' + (i * theGap + theTopPad + 0.5 * theBarHeight).toString() + 'px';
60293 }).attr('class', function (d) {
60294 var res = 'task';
60295 var classStr = '';
60296
60297 if (d.classes.length > 0) {
60298 classStr = d.classes.join(' ');
60299 }
60300
60301 var secNum = 0;
60302
60303 for (var _i2 = 0; _i2 < categories.length; _i2++) {
60304 if (d.type === categories[_i2]) {
60305 secNum = _i2 % conf.numberSectionStyles;
60306 }
60307 }
60308
60309 var taskClass = '';
60310
60311 if (d.active) {
60312 if (d.crit) {
60313 taskClass += ' activeCrit';
60314 } else {
60315 taskClass = ' active';
60316 }
60317 } else if (d.done) {
60318 if (d.crit) {
60319 taskClass = ' doneCrit';
60320 } else {
60321 taskClass = ' done';
60322 }
60323 } else {
60324 if (d.crit) {
60325 taskClass += ' crit';
60326 }
60327 }
60328
60329 if (taskClass.length === 0) {
60330 taskClass = ' task';
60331 }
60332
60333 if (d.milestone) {
60334 taskClass = ' milestone ' + taskClass;
60335 }
60336
60337 taskClass += secNum;
60338 taskClass += ' ' + classStr;
60339 return res + taskClass;
60340 }); // Append task labels
60341
60342 rectangles.append('text').attr('id', function (d) {
60343 return d.id + '-text';
60344 }).text(function (d) {
60345 return d.task;
60346 }).attr('font-size', conf.fontSize).attr('x', function (d) {
60347 var startX = timeScale(d.startTime);
60348 var endX = timeScale(d.renderEndTime || d.endTime);
60349
60350 if (d.milestone) {
60351 startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
60352 }
60353
60354 if (d.milestone) {
60355 endX = startX + theBarHeight;
60356 }
60357
60358 var textWidth = this.getBBox().width; // Check id text width > width of rectangle
60359
60360 if (textWidth > endX - startX) {
60361 if (endX + textWidth + 1.5 * conf.leftPadding > w) {
60362 return startX + theSidePad - 5;
60363 } else {
60364 return endX + theSidePad + 5;
60365 }
60366 } else {
60367 return (endX - startX) / 2 + startX + theSidePad;
60368 }
60369 }).attr('y', function (d, i) {
60370 // Ignore the incoming i value and use our order instead
60371 i = d.order;
60372 return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad;
60373 }).attr('text-height', theBarHeight).attr('class', function (d) {
60374 var startX = timeScale(d.startTime);
60375 var endX = timeScale(d.endTime);
60376
60377 if (d.milestone) {
60378 endX = startX + theBarHeight;
60379 }
60380
60381 var textWidth = this.getBBox().width;
60382 var classStr = '';
60383
60384 if (d.classes.length > 0) {
60385 classStr = d.classes.join(' ');
60386 }
60387
60388 var secNum = 0;
60389 console.log(conf);
60390
60391 for (var _i3 = 0; _i3 < categories.length; _i3++) {
60392 if (d.type === categories[_i3]) {
60393 secNum = _i3 % conf.numberSectionStyles;
60394 }
60395 }
60396
60397 var taskType = '';
60398
60399 if (d.active) {
60400 if (d.crit) {
60401 taskType = 'activeCritText' + secNum;
60402 } else {
60403 taskType = 'activeText' + secNum;
60404 }
60405 }
60406
60407 if (d.done) {
60408 if (d.crit) {
60409 taskType = taskType + ' doneCritText' + secNum;
60410 } else {
60411 taskType = taskType + ' doneText' + secNum;
60412 }
60413 } else {
60414 if (d.crit) {
60415 taskType = taskType + ' critText' + secNum;
60416 }
60417 }
60418
60419 if (d.milestone) {
60420 taskType += ' milestoneText';
60421 } // Check id text width > width of rectangle
60422
60423
60424 if (textWidth > endX - startX) {
60425 if (endX + textWidth + 1.5 * conf.leftPadding > w) {
60426 return classStr + ' taskTextOutsideLeft taskTextOutside' + secNum + ' ' + taskType;
60427 } else {
60428 return classStr + ' taskTextOutsideRight taskTextOutside' + secNum + ' ' + taskType + ' width-' + textWidth;
60429 }
60430 } else {
60431 return classStr + ' taskText taskText' + secNum + ' ' + taskType + ' width-' + textWidth;
60432 }
60433 });
60434 }
60435
60436 function makeGrid(theSidePad, theTopPad, w, h) {
60437 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'));
60438 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');
60439 }
60440
60441 function vertLabels(theGap, theTopPad) {
60442 var numOccurances = [];
60443 var prevGap = 0;
60444
60445 for (var _i4 = 0; _i4 < categories.length; _i4++) {
60446 numOccurances[_i4] = [categories[_i4], getCount(categories[_i4], catsUnfiltered)];
60447 }
60448
60449 svg.append('g') // without doing this, impossible to put grid lines behind text
60450 .selectAll('text').data(numOccurances).enter().append(function (d) {
60451 var rows = d[0].split(_common_common__WEBPACK_IMPORTED_MODULE_2__["default"].lineBreakRegex);
60452 var dy = -(rows.length - 1) / 2;
60453 var svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
60454 svgLabel.setAttribute('dy', dy + 'em');
60455
60456 for (var j = 0; j < rows.length; j++) {
60457 var tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
60458 tspan.setAttribute('alignment-baseline', 'central');
60459 tspan.setAttribute('x', '10');
60460 if (j > 0) tspan.setAttribute('dy', '1em');
60461 tspan.textContent = rows[j];
60462 svgLabel.appendChild(tspan);
60463 }
60464
60465 return svgLabel;
60466 }).attr('x', 10).attr('y', function (d, i) {
60467 if (i > 0) {
60468 for (var j = 0; j < i; j++) {
60469 prevGap += numOccurances[i - 1][1];
60470 return d[1] * theGap / 2 + prevGap * theGap + theTopPad;
60471 }
60472 } else {
60473 return d[1] * theGap / 2 + theTopPad;
60474 }
60475 }).attr('class', function (d) {
60476 for (var _i5 = 0; _i5 < categories.length; _i5++) {
60477 if (d[0] === categories[_i5]) {
60478 return 'sectionTitle sectionTitle' + _i5 % conf.numberSectionStyles;
60479 }
60480 }
60481
60482 return 'sectionTitle';
60483 });
60484 }
60485
60486 function drawToday(theSidePad, theTopPad, w, h) {
60487 var todayMarker = _ganttDb__WEBPACK_IMPORTED_MODULE_3__["default"].getTodayMarker();
60488
60489 if (todayMarker === 'off') {
60490 return;
60491 }
60492
60493 var todayG = svg.append('g').attr('class', 'today');
60494 var today = new Date();
60495 var todayLine = todayG.append('line');
60496 todayLine.attr('x1', timeScale(today) + theSidePad).attr('x2', timeScale(today) + theSidePad).attr('y1', conf.titleTopMargin).attr('y2', h - conf.titleTopMargin).attr('class', 'today');
60497
60498 if (todayMarker !== '') {
60499 todayLine.attr('style', todayMarker.replace(/,/g, ';'));
60500 }
60501 } // from this stackexchange question: http://stackoverflow.com/questions/1890203/unique-for-arrays-in-javascript
60502
60503
60504 function checkUnique(arr) {
60505 var hash = {};
60506 var result = [];
60507
60508 for (var _i6 = 0, l = arr.length; _i6 < l; ++_i6) {
60509 if (!hash.hasOwnProperty(arr[_i6])) {
60510 // eslint-disable-line
60511 // it works with objects! in FF, at least
60512 hash[arr[_i6]] = true;
60513 result.push(arr[_i6]);
60514 }
60515 }
60516
60517 return result;
60518 } // from this stackexchange question: http://stackoverflow.com/questions/14227981/count-how-many-strings-in-an-array-have-duplicates-in-the-same-array
60519
60520
60521 function getCounts(arr) {
60522 var i = arr.length; // const to loop over
60523
60524 var obj = {}; // obj to store results
60525
60526 while (i) {
60527 obj[arr[--i]] = (obj[arr[i]] || 0) + 1; // count occurrences
60528 }
60529
60530 return obj;
60531 } // get specific from everything
60532
60533
60534 function getCount(word, arr) {
60535 return getCounts(arr)[word] || 0;
60536 }
60537};
60538/* harmony default export */ __webpack_exports__["default"] = ({
60539 setConf: setConf,
60540 draw: draw
60541});
60542
60543/***/ }),
60544
60545/***/ "./src/diagrams/gantt/parser/gantt.jison":
60546/*!***********************************************!*\
60547 !*** ./src/diagrams/gantt/parser/gantt.jison ***!
60548 \***********************************************/
60549/*! no static exports found */
60550/***/ (function(module, exports, __webpack_require__) {
60551
60552/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
60553/*
60554 Returns a Parser object of the following structure:
60555
60556 Parser: {
60557 yy: {}
60558 }
60559
60560 Parser.prototype: {
60561 yy: {},
60562 trace: function(),
60563 symbols_: {associative list: name ==> number},
60564 terminals_: {associative list: number ==> name},
60565 productions_: [...],
60566 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
60567 table: [...],
60568 defaultActions: {...},
60569 parseError: function(str, hash),
60570 parse: function(input),
60571
60572 lexer: {
60573 EOF: 1,
60574 parseError: function(str, hash),
60575 setInput: function(input),
60576 input: function(),
60577 unput: function(str),
60578 more: function(),
60579 less: function(n),
60580 pastInput: function(),
60581 upcomingInput: function(),
60582 showPosition: function(),
60583 test_match: function(regex_match_array, rule_index),
60584 next: function(),
60585 lex: function(),
60586 begin: function(condition),
60587 popState: function(),
60588 _currentRules: function(),
60589 topState: function(),
60590 pushState: function(condition),
60591
60592 options: {
60593 ranges: boolean (optional: true ==> token location info will include a .range[] member)
60594 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
60595 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)
60596 },
60597
60598 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
60599 rules: [...],
60600 conditions: {associative list: name ==> set},
60601 }
60602 }
60603
60604
60605 token location info (@$, _$, etc.): {
60606 first_line: n,
60607 last_line: n,
60608 first_column: n,
60609 last_column: n,
60610 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
60611 }
60612
60613
60614 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
60615 text: (matched text)
60616 token: (the produced terminal token, if any)
60617 line: (yylineno)
60618 }
60619 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
60620 loc: (yylloc)
60621 expected: (string describing the set of expected tokens)
60622 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
60623 }
60624*/
60625var parser = (function(){
60626var 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];
60627var parser = {trace: function trace () { },
60628yy: {},
60629symbols_: {"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},
60630terminals_: {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"},
60631productions_: [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]],
60632performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
60633/* this == yyval */
60634
60635var $0 = $$.length - 1;
60636switch (yystate) {
60637case 2:
60638 return $$[$0-1];
60639break;
60640case 3:
60641 this.$ = []
60642break;
60643case 4:
60644$$[$0-1].push($$[$0]);this.$ = $$[$0-1]
60645break;
60646case 5: case 6:
60647 this.$ = $$[$0]
60648break;
60649case 7: case 8:
60650 this.$=[];
60651break;
60652case 9:
60653yy.setDateFormat($$[$0].substr(11));this.$=$$[$0].substr(11);
60654break;
60655case 10:
60656yy.enableInclusiveEndDates();this.$=$$[$0].substr(18);
60657break;
60658case 11:
60659yy.setAxisFormat($$[$0].substr(11));this.$=$$[$0].substr(11);
60660break;
60661case 12:
60662yy.setExcludes($$[$0].substr(9));this.$=$$[$0].substr(9);
60663break;
60664case 13:
60665yy.setTodayMarker($$[$0].substr(12));this.$=$$[$0].substr(12);
60666break;
60667case 14:
60668yy.setTitle($$[$0].substr(6));this.$=$$[$0].substr(6);
60669break;
60670case 15:
60671yy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);
60672break;
60673case 17:
60674yy.addTask($$[$0-1],$$[$0]);this.$='task';
60675break;
60676case 21:
60677this.$ = $$[$0-1];yy.setClickEvent($$[$0-1], $$[$0], null);
60678break;
60679case 22:
60680this.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);
60681break;
60682case 23:
60683this.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], null);yy.setLink($$[$0-2],$$[$0]);
60684break;
60685case 24:
60686this.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-2], $$[$0-1]);yy.setLink($$[$0-3],$$[$0]);
60687break;
60688case 25:
60689this.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0], null);yy.setLink($$[$0-2],$$[$0-1]);
60690break;
60691case 26:
60692this.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-1], $$[$0]);yy.setLink($$[$0-3],$$[$0-2]);
60693break;
60694case 27:
60695this.$ = $$[$0-1];yy.setLink($$[$0-1], $$[$0]);
60696break;
60697case 28: case 34:
60698this.$=$$[$0-1] + ' ' + $$[$0];
60699break;
60700case 29: case 30: case 32:
60701this.$=$$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0];
60702break;
60703case 31: case 33:
60704this.$=$$[$0-3] + ' ' + $$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0];
60705break;
60706case 35:
60707 yy.parseDirective('%%{', 'open_directive');
60708break;
60709case 36:
60710 yy.parseDirective($$[$0], 'type_directive');
60711break;
60712case 37:
60713 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
60714break;
60715case 38:
60716 yy.parseDirective('}%%', 'close_directive', 'gantt');
60717break;
60718}
60719},
60720table: [{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])],
60721defaultActions: {5:[2,35],6:[2,1],28:[2,38],35:[2,37]},
60722parseError: function parseError (str, hash) {
60723 if (hash.recoverable) {
60724 this.trace(str);
60725 } else {
60726 var error = new Error(str);
60727 error.hash = hash;
60728 throw error;
60729 }
60730},
60731parse: function parse(input) {
60732 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
60733 var args = lstack.slice.call(arguments, 1);
60734 var lexer = Object.create(this.lexer);
60735 var sharedState = { yy: {} };
60736 for (var k in this.yy) {
60737 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
60738 sharedState.yy[k] = this.yy[k];
60739 }
60740 }
60741 lexer.setInput(input, sharedState.yy);
60742 sharedState.yy.lexer = lexer;
60743 sharedState.yy.parser = this;
60744 if (typeof lexer.yylloc == 'undefined') {
60745 lexer.yylloc = {};
60746 }
60747 var yyloc = lexer.yylloc;
60748 lstack.push(yyloc);
60749 var ranges = lexer.options && lexer.options.ranges;
60750 if (typeof sharedState.yy.parseError === 'function') {
60751 this.parseError = sharedState.yy.parseError;
60752 } else {
60753 this.parseError = Object.getPrototypeOf(this).parseError;
60754 }
60755 function popStack(n) {
60756 stack.length = stack.length - 2 * n;
60757 vstack.length = vstack.length - n;
60758 lstack.length = lstack.length - n;
60759 }
60760 function lex() {
60761 var token;
60762 token = tstack.pop() || lexer.lex() || EOF;
60763 if (typeof token !== 'number') {
60764 if (token instanceof Array) {
60765 tstack = token;
60766 token = tstack.pop();
60767 }
60768 token = self.symbols_[token] || token;
60769 }
60770 return token;
60771 }
60772 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
60773 while (true) {
60774 state = stack[stack.length - 1];
60775 if (this.defaultActions[state]) {
60776 action = this.defaultActions[state];
60777 } else {
60778 if (symbol === null || typeof symbol == 'undefined') {
60779 symbol = lex();
60780 }
60781 action = table[state] && table[state][symbol];
60782 }
60783 if (typeof action === 'undefined' || !action.length || !action[0]) {
60784 var errStr = '';
60785 expected = [];
60786 for (p in table[state]) {
60787 if (this.terminals_[p] && p > TERROR) {
60788 expected.push('\'' + this.terminals_[p] + '\'');
60789 }
60790 }
60791 if (lexer.showPosition) {
60792 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
60793 } else {
60794 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
60795 }
60796 this.parseError(errStr, {
60797 text: lexer.match,
60798 token: this.terminals_[symbol] || symbol,
60799 line: lexer.yylineno,
60800 loc: yyloc,
60801 expected: expected
60802 });
60803 }
60804 if (action[0] instanceof Array && action.length > 1) {
60805 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
60806 }
60807 switch (action[0]) {
60808 case 1:
60809 stack.push(symbol);
60810 vstack.push(lexer.yytext);
60811 lstack.push(lexer.yylloc);
60812 stack.push(action[1]);
60813 symbol = null;
60814 if (!preErrorSymbol) {
60815 yyleng = lexer.yyleng;
60816 yytext = lexer.yytext;
60817 yylineno = lexer.yylineno;
60818 yyloc = lexer.yylloc;
60819 if (recovering > 0) {
60820 recovering--;
60821 }
60822 } else {
60823 symbol = preErrorSymbol;
60824 preErrorSymbol = null;
60825 }
60826 break;
60827 case 2:
60828 len = this.productions_[action[1]][1];
60829 yyval.$ = vstack[vstack.length - len];
60830 yyval._$ = {
60831 first_line: lstack[lstack.length - (len || 1)].first_line,
60832 last_line: lstack[lstack.length - 1].last_line,
60833 first_column: lstack[lstack.length - (len || 1)].first_column,
60834 last_column: lstack[lstack.length - 1].last_column
60835 };
60836 if (ranges) {
60837 yyval._$.range = [
60838 lstack[lstack.length - (len || 1)].range[0],
60839 lstack[lstack.length - 1].range[1]
60840 ];
60841 }
60842 r = this.performAction.apply(yyval, [
60843 yytext,
60844 yyleng,
60845 yylineno,
60846 sharedState.yy,
60847 action[1],
60848 vstack,
60849 lstack
60850 ].concat(args));
60851 if (typeof r !== 'undefined') {
60852 return r;
60853 }
60854 if (len) {
60855 stack = stack.slice(0, -1 * len * 2);
60856 vstack = vstack.slice(0, -1 * len);
60857 lstack = lstack.slice(0, -1 * len);
60858 }
60859 stack.push(this.productions_[action[1]][0]);
60860 vstack.push(yyval.$);
60861 lstack.push(yyval._$);
60862 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
60863 stack.push(newState);
60864 break;
60865 case 3:
60866 return true;
60867 }
60868 }
60869 return true;
60870}};
60871
60872/* generated by jison-lex 0.3.4 */
60873var lexer = (function(){
60874var lexer = ({
60875
60876EOF:1,
60877
60878parseError:function parseError(str, hash) {
60879 if (this.yy.parser) {
60880 this.yy.parser.parseError(str, hash);
60881 } else {
60882 throw new Error(str);
60883 }
60884 },
60885
60886// resets the lexer, sets new input
60887setInput:function (input, yy) {
60888 this.yy = yy || this.yy || {};
60889 this._input = input;
60890 this._more = this._backtrack = this.done = false;
60891 this.yylineno = this.yyleng = 0;
60892 this.yytext = this.matched = this.match = '';
60893 this.conditionStack = ['INITIAL'];
60894 this.yylloc = {
60895 first_line: 1,
60896 first_column: 0,
60897 last_line: 1,
60898 last_column: 0
60899 };
60900 if (this.options.ranges) {
60901 this.yylloc.range = [0,0];
60902 }
60903 this.offset = 0;
60904 return this;
60905 },
60906
60907// consumes and returns one char from the input
60908input:function () {
60909 var ch = this._input[0];
60910 this.yytext += ch;
60911 this.yyleng++;
60912 this.offset++;
60913 this.match += ch;
60914 this.matched += ch;
60915 var lines = ch.match(/(?:\r\n?|\n).*/g);
60916 if (lines) {
60917 this.yylineno++;
60918 this.yylloc.last_line++;
60919 } else {
60920 this.yylloc.last_column++;
60921 }
60922 if (this.options.ranges) {
60923 this.yylloc.range[1]++;
60924 }
60925
60926 this._input = this._input.slice(1);
60927 return ch;
60928 },
60929
60930// unshifts one char (or a string) into the input
60931unput:function (ch) {
60932 var len = ch.length;
60933 var lines = ch.split(/(?:\r\n?|\n)/g);
60934
60935 this._input = ch + this._input;
60936 this.yytext = this.yytext.substr(0, this.yytext.length - len);
60937 //this.yyleng -= len;
60938 this.offset -= len;
60939 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
60940 this.match = this.match.substr(0, this.match.length - 1);
60941 this.matched = this.matched.substr(0, this.matched.length - 1);
60942
60943 if (lines.length - 1) {
60944 this.yylineno -= lines.length - 1;
60945 }
60946 var r = this.yylloc.range;
60947
60948 this.yylloc = {
60949 first_line: this.yylloc.first_line,
60950 last_line: this.yylineno + 1,
60951 first_column: this.yylloc.first_column,
60952 last_column: lines ?
60953 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
60954 + oldLines[oldLines.length - lines.length].length - lines[0].length :
60955 this.yylloc.first_column - len
60956 };
60957
60958 if (this.options.ranges) {
60959 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
60960 }
60961 this.yyleng = this.yytext.length;
60962 return this;
60963 },
60964
60965// When called from action, caches matched text and appends it on next action
60966more:function () {
60967 this._more = true;
60968 return this;
60969 },
60970
60971// 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.
60972reject:function () {
60973 if (this.options.backtrack_lexer) {
60974 this._backtrack = true;
60975 } else {
60976 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(), {
60977 text: "",
60978 token: null,
60979 line: this.yylineno
60980 });
60981
60982 }
60983 return this;
60984 },
60985
60986// retain first n characters of the match
60987less:function (n) {
60988 this.unput(this.match.slice(n));
60989 },
60990
60991// displays already matched input, i.e. for error messages
60992pastInput:function () {
60993 var past = this.matched.substr(0, this.matched.length - this.match.length);
60994 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
60995 },
60996
60997// displays upcoming input, i.e. for error messages
60998upcomingInput:function () {
60999 var next = this.match;
61000 if (next.length < 20) {
61001 next += this._input.substr(0, 20-next.length);
61002 }
61003 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
61004 },
61005
61006// displays the character position where the lexing error occurred, i.e. for error messages
61007showPosition:function () {
61008 var pre = this.pastInput();
61009 var c = new Array(pre.length + 1).join("-");
61010 return pre + this.upcomingInput() + "\n" + c + "^";
61011 },
61012
61013// test the lexed token: return FALSE when not a match, otherwise return token
61014test_match:function(match, indexed_rule) {
61015 var token,
61016 lines,
61017 backup;
61018
61019 if (this.options.backtrack_lexer) {
61020 // save context
61021 backup = {
61022 yylineno: this.yylineno,
61023 yylloc: {
61024 first_line: this.yylloc.first_line,
61025 last_line: this.last_line,
61026 first_column: this.yylloc.first_column,
61027 last_column: this.yylloc.last_column
61028 },
61029 yytext: this.yytext,
61030 match: this.match,
61031 matches: this.matches,
61032 matched: this.matched,
61033 yyleng: this.yyleng,
61034 offset: this.offset,
61035 _more: this._more,
61036 _input: this._input,
61037 yy: this.yy,
61038 conditionStack: this.conditionStack.slice(0),
61039 done: this.done
61040 };
61041 if (this.options.ranges) {
61042 backup.yylloc.range = this.yylloc.range.slice(0);
61043 }
61044 }
61045
61046 lines = match[0].match(/(?:\r\n?|\n).*/g);
61047 if (lines) {
61048 this.yylineno += lines.length;
61049 }
61050 this.yylloc = {
61051 first_line: this.yylloc.last_line,
61052 last_line: this.yylineno + 1,
61053 first_column: this.yylloc.last_column,
61054 last_column: lines ?
61055 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
61056 this.yylloc.last_column + match[0].length
61057 };
61058 this.yytext += match[0];
61059 this.match += match[0];
61060 this.matches = match;
61061 this.yyleng = this.yytext.length;
61062 if (this.options.ranges) {
61063 this.yylloc.range = [this.offset, this.offset += this.yyleng];
61064 }
61065 this._more = false;
61066 this._backtrack = false;
61067 this._input = this._input.slice(match[0].length);
61068 this.matched += match[0];
61069 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
61070 if (this.done && this._input) {
61071 this.done = false;
61072 }
61073 if (token) {
61074 return token;
61075 } else if (this._backtrack) {
61076 // recover context
61077 for (var k in backup) {
61078 this[k] = backup[k];
61079 }
61080 return false; // rule action called reject() implying the next rule should be tested instead.
61081 }
61082 return false;
61083 },
61084
61085// return next match in input
61086next:function () {
61087 if (this.done) {
61088 return this.EOF;
61089 }
61090 if (!this._input) {
61091 this.done = true;
61092 }
61093
61094 var token,
61095 match,
61096 tempMatch,
61097 index;
61098 if (!this._more) {
61099 this.yytext = '';
61100 this.match = '';
61101 }
61102 var rules = this._currentRules();
61103 for (var i = 0; i < rules.length; i++) {
61104 tempMatch = this._input.match(this.rules[rules[i]]);
61105 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
61106 match = tempMatch;
61107 index = i;
61108 if (this.options.backtrack_lexer) {
61109 token = this.test_match(tempMatch, rules[i]);
61110 if (token !== false) {
61111 return token;
61112 } else if (this._backtrack) {
61113 match = false;
61114 continue; // rule action called reject() implying a rule MISmatch.
61115 } else {
61116 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
61117 return false;
61118 }
61119 } else if (!this.options.flex) {
61120 break;
61121 }
61122 }
61123 }
61124 if (match) {
61125 token = this.test_match(match, rules[index]);
61126 if (token !== false) {
61127 return token;
61128 }
61129 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
61130 return false;
61131 }
61132 if (this._input === "") {
61133 return this.EOF;
61134 } else {
61135 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
61136 text: "",
61137 token: null,
61138 line: this.yylineno
61139 });
61140 }
61141 },
61142
61143// return next match that has a token
61144lex:function lex () {
61145 var r = this.next();
61146 if (r) {
61147 return r;
61148 } else {
61149 return this.lex();
61150 }
61151 },
61152
61153// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
61154begin:function begin (condition) {
61155 this.conditionStack.push(condition);
61156 },
61157
61158// pop the previously active lexer condition state off the condition stack
61159popState:function popState () {
61160 var n = this.conditionStack.length - 1;
61161 if (n > 0) {
61162 return this.conditionStack.pop();
61163 } else {
61164 return this.conditionStack[0];
61165 }
61166 },
61167
61168// produce the lexer rule set which is active for the currently active lexer condition state
61169_currentRules:function _currentRules () {
61170 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
61171 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
61172 } else {
61173 return this.conditions["INITIAL"].rules;
61174 }
61175 },
61176
61177// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
61178topState:function topState (n) {
61179 n = this.conditionStack.length - 1 - Math.abs(n || 0);
61180 if (n >= 0) {
61181 return this.conditionStack[n];
61182 } else {
61183 return "INITIAL";
61184 }
61185 },
61186
61187// alias for begin(condition)
61188pushState:function pushState (condition) {
61189 this.begin(condition);
61190 },
61191
61192// return the number of states currently on the stack
61193stateStackSize:function stateStackSize() {
61194 return this.conditionStack.length;
61195 },
61196options: {"case-insensitive":true},
61197performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
61198var YYSTATE=YY_START;
61199switch($avoiding_name_collisions) {
61200case 0: this.begin('open_directive'); return 32;
61201break;
61202case 1: this.begin('type_directive'); return 33;
61203break;
61204case 2: this.popState(); this.begin('arg_directive'); return 25;
61205break;
61206case 3: this.popState(); this.popState(); return 35;
61207break;
61208case 4:return 34;
61209break;
61210case 5:/* skip comments */
61211break;
61212case 6:/* skip comments */
61213break;
61214case 7:/* do nothing */
61215break;
61216case 8:return 11;
61217break;
61218case 9:/* skip whitespace */
61219break;
61220case 10:/* skip comments */
61221break;
61222case 11:/* skip comments */
61223break;
61224case 12:this.begin("href");
61225break;
61226case 13:this.popState();
61227break;
61228case 14:return 30;
61229break;
61230case 15:this.begin("callbackname");
61231break;
61232case 16:this.popState();
61233break;
61234case 17:this.popState(); this.begin("callbackargs");
61235break;
61236case 18:return 28;
61237break;
61238case 19:this.popState();
61239break;
61240case 20:return 29;
61241break;
61242case 21:this.begin("click");
61243break;
61244case 22:this.popState();
61245break;
61246case 23:return 27;
61247break;
61248case 24:return 5;
61249break;
61250case 25:return 12;
61251break;
61252case 26:return 13;
61253break;
61254case 27:return 14;
61255break;
61256case 28:return 15;
61257break;
61258case 29:return 16;
61259break;
61260case 30:return 'date';
61261break;
61262case 31:return 17;
61263break;
61264case 32:return 18;
61265break;
61266case 33:return 20;
61267break;
61268case 34:return 21;
61269break;
61270case 35:return 25;
61271break;
61272case 36:return 7;
61273break;
61274case 37:return 'INVALID';
61275break;
61276}
61277},
61278rules: [/^(?:%%\{)/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],
61279conditions: {"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}}
61280});
61281return lexer;
61282})();
61283parser.lexer = lexer;
61284function Parser () {
61285 this.yy = {};
61286}
61287Parser.prototype = parser;parser.Parser = Parser;
61288return new Parser;
61289})();
61290
61291
61292if (true) {
61293exports.parser = parser;
61294exports.Parser = parser.Parser;
61295exports.parse = function () { return parser.parse.apply(parser, arguments); };
61296exports.main = function commonjsMain (args) {
61297 if (!args[1]) {
61298 console.log('Usage: '+args[0]+' FILE');
61299 process.exit(1);
61300 }
61301 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");
61302 return exports.parser.parse(source);
61303};
61304if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
61305 exports.main(process.argv.slice(1));
61306}
61307}
61308/* 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)))
61309
61310/***/ }),
61311
61312/***/ "./src/diagrams/gantt/styles.js":
61313/*!**************************************!*\
61314 !*** ./src/diagrams/gantt/styles.js ***!
61315 \**************************************/
61316/*! exports provided: default */
61317/***/ (function(module, __webpack_exports__, __webpack_require__) {
61318
61319"use strict";
61320__webpack_require__.r(__webpack_exports__);
61321var getStyles = function getStyles(options) {
61322 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");
61323};
61324
61325/* harmony default export */ __webpack_exports__["default"] = (getStyles);
61326
61327/***/ }),
61328
61329/***/ "./src/diagrams/git/gitGraphAst.js":
61330/*!*****************************************!*\
61331 !*** ./src/diagrams/git/gitGraphAst.js ***!
61332 \*****************************************/
61333/*! exports provided: setDirection, setOptions, getOptions, commit, branch, merge, checkout, reset, prettyPrint, clear, getBranchesAsObjArray, getBranches, getCommits, getCommitsArray, getCurrentBranch, getDirection, getHead, default */
61334/***/ (function(module, __webpack_exports__, __webpack_require__) {
61335
61336"use strict";
61337__webpack_require__.r(__webpack_exports__);
61338/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDirection", function() { return setDirection; });
61339/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setOptions", function() { return setOptions; });
61340/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOptions", function() { return getOptions; });
61341/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "commit", function() { return commit; });
61342/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "branch", function() { return branch; });
61343/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return merge; });
61344/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkout", function() { return checkout; });
61345/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reset", function() { return reset; });
61346/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prettyPrint", function() { return prettyPrint; });
61347/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
61348/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBranchesAsObjArray", function() { return getBranchesAsObjArray; });
61349/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBranches", function() { return getBranches; });
61350/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCommits", function() { return getCommits; });
61351/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCommitsArray", function() { return getCommitsArray; });
61352/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCurrentBranch", function() { return getCurrentBranch; });
61353/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirection", function() { return getDirection; });
61354/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getHead", function() { return getHead; });
61355/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
61356/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
61357
61358
61359var commits = {};
61360var head = null;
61361var branches = {
61362 master: head
61363};
61364var curBranch = 'master';
61365var direction = 'LR';
61366var seq = 0;
61367
61368function getId() {
61369 return Object(_utils__WEBPACK_IMPORTED_MODULE_1__["random"])({
61370 length: 7
61371 });
61372}
61373
61374function isfastforwardable(currentCommit, otherCommit) {
61375 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Entering isfastforwardable:', currentCommit.id, otherCommit.id);
61376
61377 while (currentCommit.seq <= otherCommit.seq && currentCommit !== otherCommit) {
61378 // only if other branch has more commits
61379 if (otherCommit.parent == null) break;
61380
61381 if (Array.isArray(otherCommit.parent)) {
61382 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('In merge commit:', otherCommit.parent);
61383 return isfastforwardable(currentCommit, commits[otherCommit.parent[0]]) || isfastforwardable(currentCommit, commits[otherCommit.parent[1]]);
61384 } else {
61385 otherCommit = commits[otherCommit.parent];
61386 }
61387 }
61388
61389 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug(currentCommit.id, otherCommit.id);
61390 return currentCommit.id === otherCommit.id;
61391}
61392
61393function isReachableFrom(currentCommit, otherCommit) {
61394 var currentSeq = currentCommit.seq;
61395 var otherSeq = otherCommit.seq;
61396 if (currentSeq > otherSeq) return isfastforwardable(otherCommit, currentCommit);
61397 return false;
61398}
61399
61400function uniqBy(list, fn) {
61401 var recordMap = Object.create(null);
61402 return list.reduce(function (out, item) {
61403 var key = fn(item);
61404
61405 if (!recordMap[key]) {
61406 recordMap[key] = true;
61407 out.push(item);
61408 }
61409
61410 return out;
61411 }, []);
61412}
61413
61414var setDirection = function setDirection(dir) {
61415 direction = dir;
61416};
61417var options = {};
61418var setOptions = function setOptions(rawOptString) {
61419 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('options str', rawOptString);
61420 rawOptString = rawOptString && rawOptString.trim();
61421 rawOptString = rawOptString || '{}';
61422
61423 try {
61424 options = JSON.parse(rawOptString);
61425 } catch (e) {
61426 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].error('error while parsing gitGraph options', e.message);
61427 }
61428};
61429var getOptions = function getOptions() {
61430 return options;
61431};
61432var commit = function commit(msg) {
61433 var commit = {
61434 id: getId(),
61435 message: msg,
61436 seq: seq++,
61437 parent: head == null ? null : head.id
61438 };
61439 head = commit;
61440 commits[commit.id] = commit;
61441 branches[curBranch] = commit.id;
61442 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('in pushCommit ' + commit.id);
61443};
61444var branch = function branch(name) {
61445 branches[name] = head != null ? head.id : null;
61446 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('in createBranch');
61447};
61448var merge = function merge(otherBranch) {
61449 var currentCommit = commits[branches[curBranch]];
61450 var otherCommit = commits[branches[otherBranch]];
61451
61452 if (isReachableFrom(currentCommit, otherCommit)) {
61453 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Already merged');
61454 return;
61455 }
61456
61457 if (isfastforwardable(currentCommit, otherCommit)) {
61458 branches[curBranch] = branches[otherBranch];
61459 head = commits[branches[curBranch]];
61460 } else {
61461 // create merge commit
61462 var _commit = {
61463 id: getId(),
61464 message: 'merged branch ' + otherBranch + ' into ' + curBranch,
61465 seq: seq++,
61466 parent: [head == null ? null : head.id, branches[otherBranch]]
61467 };
61468 head = _commit;
61469 commits[_commit.id] = _commit;
61470 branches[curBranch] = _commit.id;
61471 }
61472
61473 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug(branches);
61474 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('in mergeBranch');
61475};
61476var checkout = function checkout(branch) {
61477 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('in checkout');
61478 curBranch = branch;
61479 var id = branches[curBranch];
61480 head = commits[id];
61481};
61482var reset = function reset(commitRef) {
61483 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('in reset', commitRef);
61484 var ref = commitRef.split(':')[0];
61485 var parentCount = parseInt(commitRef.split(':')[1]);
61486 var commit = ref === 'HEAD' ? head : commits[branches[ref]];
61487 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug(commit, parentCount);
61488
61489 while (parentCount > 0) {
61490 commit = commits[commit.parent];
61491 parentCount--;
61492
61493 if (!commit) {
61494 var err = 'Critical error - unique parent commit not found during reset';
61495 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].error(err);
61496 throw err;
61497 }
61498 }
61499
61500 head = commit;
61501 branches[curBranch] = commit.id;
61502};
61503
61504function upsert(arr, key, newval) {
61505 var index = arr.indexOf(key);
61506
61507 if (index === -1) {
61508 arr.push(newval);
61509 } else {
61510 arr.splice(index, 1, newval);
61511 }
61512}
61513
61514function prettyPrintCommitHistory(commitArr) {
61515 var commit = commitArr.reduce(function (out, commit) {
61516 if (out.seq > commit.seq) return out;
61517 return commit;
61518 }, commitArr[0]);
61519 var line = '';
61520 commitArr.forEach(function (c) {
61521 if (c === commit) {
61522 line += '\t*';
61523 } else {
61524 line += '\t|';
61525 }
61526 });
61527 var label = [line, commit.id, commit.seq];
61528
61529 for (var _branch in branches) {
61530 if (branches[_branch] === commit.id) label.push(_branch);
61531 }
61532
61533 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug(label.join(' '));
61534
61535 if (Array.isArray(commit.parent)) {
61536 var newCommit = commits[commit.parent[0]];
61537 upsert(commitArr, commit, newCommit);
61538 commitArr.push(commits[commit.parent[1]]);
61539 } else if (commit.parent == null) {
61540 return;
61541 } else {
61542 var nextCommit = commits[commit.parent];
61543 upsert(commitArr, commit, nextCommit);
61544 }
61545
61546 commitArr = uniqBy(commitArr, function (c) {
61547 return c.id;
61548 });
61549 prettyPrintCommitHistory(commitArr);
61550}
61551
61552var prettyPrint = function prettyPrint() {
61553 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug(commits);
61554 var node = getCommitsArray()[0];
61555 prettyPrintCommitHistory([node]);
61556};
61557var clear = function clear() {
61558 commits = {};
61559 head = null;
61560 branches = {
61561 master: head
61562 };
61563 curBranch = 'master';
61564 seq = 0;
61565};
61566var getBranchesAsObjArray = function getBranchesAsObjArray() {
61567 var branchArr = [];
61568
61569 for (var _branch2 in branches) {
61570 branchArr.push({
61571 name: _branch2,
61572 commit: commits[branches[_branch2]]
61573 });
61574 }
61575
61576 return branchArr;
61577};
61578var getBranches = function getBranches() {
61579 return branches;
61580};
61581var getCommits = function getCommits() {
61582 return commits;
61583};
61584var getCommitsArray = function getCommitsArray() {
61585 var commitArr = Object.keys(commits).map(function (key) {
61586 return commits[key];
61587 });
61588 commitArr.forEach(function (o) {
61589 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug(o.id);
61590 });
61591 commitArr.sort(function (a, b) {
61592 return b.seq - a.seq;
61593 });
61594 return commitArr;
61595};
61596var getCurrentBranch = function getCurrentBranch() {
61597 return curBranch;
61598};
61599var getDirection = function getDirection() {
61600 return direction;
61601};
61602var getHead = function getHead() {
61603 return head;
61604};
61605/* harmony default export */ __webpack_exports__["default"] = ({
61606 setDirection: setDirection,
61607 setOptions: setOptions,
61608 getOptions: getOptions,
61609 commit: commit,
61610 branch: branch,
61611 merge: merge,
61612 checkout: checkout,
61613 reset: reset,
61614 prettyPrint: prettyPrint,
61615 clear: clear,
61616 getBranchesAsObjArray: getBranchesAsObjArray,
61617 getBranches: getBranches,
61618 getCommits: getCommits,
61619 getCommitsArray: getCommitsArray,
61620 getCurrentBranch: getCurrentBranch,
61621 getDirection: getDirection,
61622 getHead: getHead
61623});
61624
61625/***/ }),
61626
61627/***/ "./src/diagrams/git/gitGraphRenderer.js":
61628/*!**********************************************!*\
61629 !*** ./src/diagrams/git/gitGraphRenderer.js ***!
61630 \**********************************************/
61631/*! exports provided: setConf, draw, default */
61632/***/ (function(module, __webpack_exports__, __webpack_require__) {
61633
61634"use strict";
61635__webpack_require__.r(__webpack_exports__);
61636/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
61637/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
61638/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
61639/* harmony import */ var _gitGraphAst__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./gitGraphAst */ "./src/diagrams/git/gitGraphAst.js");
61640/* harmony import */ var _parser_gitGraph__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./parser/gitGraph */ "./src/diagrams/git/parser/gitGraph.jison");
61641/* harmony import */ var _parser_gitGraph__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_parser_gitGraph__WEBPACK_IMPORTED_MODULE_2__);
61642/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
61643/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
61644
61645
61646
61647
61648
61649var allCommitsDict = {};
61650var branchNum;
61651var config = {
61652 nodeSpacing: 150,
61653 nodeFillColor: 'yellow',
61654 nodeStrokeWidth: 2,
61655 nodeStrokeColor: 'grey',
61656 lineStrokeWidth: 4,
61657 branchOffset: 50,
61658 lineColor: 'grey',
61659 leftMargin: 50,
61660 branchColors: ['#442f74', '#983351', '#609732', '#AA9A39'],
61661 nodeRadius: 10,
61662 nodeLabel: {
61663 width: 75,
61664 height: 100,
61665 x: -25,
61666 y: 0
61667 }
61668};
61669var apiConfig = {};
61670var setConf = function setConf(c) {
61671 apiConfig = c;
61672};
61673
61674function svgCreateDefs(svg) {
61675 svg.append('defs').append('g').attr('id', 'def-commit').append('circle').attr('r', config.nodeRadius).attr('cx', 0).attr('cy', 0);
61676 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('');
61677}
61678
61679function svgDrawLine(svg, points, colorIdx, interpolate) {
61680 var curve = Object(_utils__WEBPACK_IMPORTED_MODULE_4__["interpolateToCurve"])(interpolate, d3__WEBPACK_IMPORTED_MODULE_0__["curveBasis"]);
61681 var color = config.branchColors[colorIdx % config.branchColors.length];
61682 var lineGen = Object(d3__WEBPACK_IMPORTED_MODULE_0__["line"])().x(function (d) {
61683 return Math.round(d.x);
61684 }).y(function (d) {
61685 return Math.round(d.y);
61686 }).curve(curve);
61687 svg.append('svg:path').attr('d', lineGen(points)).style('stroke', color).style('stroke-width', config.lineStrokeWidth).style('fill', 'none');
61688} // Pass in the element and its pre-transform coords
61689
61690
61691function getElementCoords(element, coords) {
61692 coords = coords || element.node().getBBox();
61693 var ctm = element.node().getCTM();
61694 var xn = ctm.e + coords.x * ctm.a;
61695 var yn = ctm.f + coords.y * ctm.d;
61696 return {
61697 left: xn,
61698 top: yn,
61699 width: coords.width,
61700 height: coords.height
61701 };
61702}
61703
61704function svgDrawLineForCommits(svg, fromId, toId, direction, color) {
61705 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('svgDrawLineForCommits: ', fromId, toId);
61706 var fromBbox = getElementCoords(svg.select('#node-' + fromId + ' circle'));
61707 var toBbox = getElementCoords(svg.select('#node-' + toId + ' circle'));
61708
61709 switch (direction) {
61710 case 'LR':
61711 // (toBbox)
61712 // +--------
61713 // + (fromBbox)
61714 if (fromBbox.left - toBbox.left > config.nodeSpacing) {
61715 var lineStart = {
61716 x: fromBbox.left - config.nodeSpacing,
61717 y: toBbox.top + toBbox.height / 2
61718 };
61719 var lineEnd = {
61720 x: toBbox.left + toBbox.width,
61721 y: toBbox.top + toBbox.height / 2
61722 };
61723 svgDrawLine(svg, [lineStart, lineEnd], color, 'linear');
61724 svgDrawLine(svg, [{
61725 x: fromBbox.left,
61726 y: fromBbox.top + fromBbox.height / 2
61727 }, {
61728 x: fromBbox.left - config.nodeSpacing / 2,
61729 y: fromBbox.top + fromBbox.height / 2
61730 }, {
61731 x: fromBbox.left - config.nodeSpacing / 2,
61732 y: lineStart.y
61733 }, lineStart], color);
61734 } else {
61735 svgDrawLine(svg, [{
61736 x: fromBbox.left,
61737 y: fromBbox.top + fromBbox.height / 2
61738 }, {
61739 x: fromBbox.left - config.nodeSpacing / 2,
61740 y: fromBbox.top + fromBbox.height / 2
61741 }, {
61742 x: fromBbox.left - config.nodeSpacing / 2,
61743 y: toBbox.top + toBbox.height / 2
61744 }, {
61745 x: toBbox.left + toBbox.width,
61746 y: toBbox.top + toBbox.height / 2
61747 }], color);
61748 }
61749
61750 break;
61751
61752 case 'BT':
61753 // + (fromBbox)
61754 // |
61755 // |
61756 // + (toBbox)
61757 if (toBbox.top - fromBbox.top > config.nodeSpacing) {
61758 var _lineStart = {
61759 x: toBbox.left + toBbox.width / 2,
61760 y: fromBbox.top + fromBbox.height + config.nodeSpacing
61761 };
61762 var _lineEnd = {
61763 x: toBbox.left + toBbox.width / 2,
61764 y: toBbox.top
61765 };
61766 svgDrawLine(svg, [_lineStart, _lineEnd], color, 'linear');
61767 svgDrawLine(svg, [{
61768 x: fromBbox.left + fromBbox.width / 2,
61769 y: fromBbox.top + fromBbox.height
61770 }, {
61771 x: fromBbox.left + fromBbox.width / 2,
61772 y: fromBbox.top + fromBbox.height + config.nodeSpacing / 2
61773 }, {
61774 x: toBbox.left + toBbox.width / 2,
61775 y: _lineStart.y - config.nodeSpacing / 2
61776 }, _lineStart], color);
61777 } else {
61778 svgDrawLine(svg, [{
61779 x: fromBbox.left + fromBbox.width / 2,
61780 y: fromBbox.top + fromBbox.height
61781 }, {
61782 x: fromBbox.left + fromBbox.width / 2,
61783 y: fromBbox.top + config.nodeSpacing / 2
61784 }, {
61785 x: toBbox.left + toBbox.width / 2,
61786 y: toBbox.top - config.nodeSpacing / 2
61787 }, {
61788 x: toBbox.left + toBbox.width / 2,
61789 y: toBbox.top
61790 }], color);
61791 }
61792
61793 break;
61794 }
61795}
61796
61797function cloneNode(svg, selector) {
61798 return svg.select(selector).node().cloneNode(true);
61799}
61800
61801function renderCommitHistory(svg, commitid, branches, direction) {
61802 var commit;
61803 var numCommits = Object.keys(allCommitsDict).length;
61804
61805 if (typeof commitid === 'string') {
61806 do {
61807 commit = allCommitsDict[commitid];
61808 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('in renderCommitHistory', commit.id, commit.seq);
61809
61810 if (svg.select('#node-' + commitid).size() > 0) {
61811 return;
61812 }
61813
61814 svg.append(function () {
61815 return cloneNode(svg, '#def-commit');
61816 }).attr('class', 'commit').attr('id', function () {
61817 return 'node-' + commit.id;
61818 }).attr('transform', function () {
61819 switch (direction) {
61820 case 'LR':
61821 return 'translate(' + (commit.seq * config.nodeSpacing + config.leftMargin) + ', ' + branchNum * config.branchOffset + ')';
61822
61823 case 'BT':
61824 return 'translate(' + (branchNum * config.branchOffset + config.leftMargin) + ', ' + (numCommits - commit.seq) * config.nodeSpacing + ')';
61825 }
61826 }).attr('fill', config.nodeFillColor).attr('stroke', config.nodeStrokeColor).attr('stroke-width', config.nodeStrokeWidth);
61827 var branch = void 0;
61828
61829 for (var branchName in branches) {
61830 if (branches[branchName].commit === commit) {
61831 branch = branches[branchName];
61832 break;
61833 }
61834 }
61835
61836 if (branch) {
61837 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('found branch ', branch.name);
61838 svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'branch-label').text(branch.name + ', ');
61839 }
61840
61841 svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'commit-id').text(commit.id);
61842
61843 if (commit.message !== '' && direction === 'BT') {
61844 svg.select('#node-' + commit.id + ' p').append('xhtml:span').attr('class', 'commit-msg').text(', ' + commit.message);
61845 }
61846
61847 commitid = commit.parent;
61848 } while (commitid && allCommitsDict[commitid]);
61849 }
61850
61851 if (Array.isArray(commitid)) {
61852 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('found merge commmit', commitid);
61853 renderCommitHistory(svg, commitid[0], branches, direction);
61854 branchNum++;
61855 renderCommitHistory(svg, commitid[1], branches, direction);
61856 branchNum--;
61857 }
61858}
61859
61860function renderLines(svg, commit, direction, branchColor) {
61861 branchColor = branchColor || 0;
61862
61863 while (commit.seq > 0 && !commit.lineDrawn) {
61864 if (typeof commit.parent === 'string') {
61865 svgDrawLineForCommits(svg, commit.id, commit.parent, direction, branchColor);
61866 commit.lineDrawn = true;
61867 commit = allCommitsDict[commit.parent];
61868 } else if (Array.isArray(commit.parent)) {
61869 svgDrawLineForCommits(svg, commit.id, commit.parent[0], direction, branchColor);
61870 svgDrawLineForCommits(svg, commit.id, commit.parent[1], direction, branchColor + 1);
61871 renderLines(svg, allCommitsDict[commit.parent[1]], direction, branchColor + 1);
61872 commit.lineDrawn = true;
61873 commit = allCommitsDict[commit.parent[0]];
61874 }
61875 }
61876}
61877
61878var draw = function draw(txt, id, ver) {
61879 try {
61880 var parser = _parser_gitGraph__WEBPACK_IMPORTED_MODULE_2___default.a.parser;
61881 parser.yy = _gitGraphAst__WEBPACK_IMPORTED_MODULE_1__["default"];
61882 parser.yy.clear();
61883 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('in gitgraph renderer', txt + '\n', 'id:', id, ver); // Parse the graph definition
61884
61885 parser.parse(txt + '\n');
61886 config = Object.assign(config, apiConfig, _gitGraphAst__WEBPACK_IMPORTED_MODULE_1__["default"].getOptions());
61887 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('effective options', config);
61888 var direction = _gitGraphAst__WEBPACK_IMPORTED_MODULE_1__["default"].getDirection();
61889 allCommitsDict = _gitGraphAst__WEBPACK_IMPORTED_MODULE_1__["default"].getCommits();
61890 var branches = _gitGraphAst__WEBPACK_IMPORTED_MODULE_1__["default"].getBranchesAsObjArray();
61891
61892 if (direction === 'BT') {
61893 config.nodeLabel.x = branches.length * config.branchOffset;
61894 config.nodeLabel.width = '100%';
61895 config.nodeLabel.y = -1 * 2 * config.nodeRadius;
61896 }
61897
61898 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])("[id=\"".concat(id, "\"]"));
61899 svgCreateDefs(svg);
61900 branchNum = 1;
61901
61902 for (var branch in branches) {
61903 var v = branches[branch];
61904 renderCommitHistory(svg, v.commit.id, branches, direction);
61905 renderLines(svg, v.commit, direction);
61906 branchNum++;
61907 }
61908
61909 svg.attr('height', function () {
61910 if (direction === 'BT') return Object.keys(allCommitsDict).length * config.nodeSpacing;
61911 return (branches.length + 1) * config.branchOffset;
61912 });
61913 } catch (e) {
61914 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error('Error while rendering gitgraph');
61915 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error(e.message);
61916 }
61917};
61918/* harmony default export */ __webpack_exports__["default"] = ({
61919 setConf: setConf,
61920 draw: draw
61921});
61922
61923/***/ }),
61924
61925/***/ "./src/diagrams/git/parser/gitGraph.jison":
61926/*!************************************************!*\
61927 !*** ./src/diagrams/git/parser/gitGraph.jison ***!
61928 \************************************************/
61929/*! no static exports found */
61930/***/ (function(module, exports, __webpack_require__) {
61931
61932/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
61933/*
61934 Returns a Parser object of the following structure:
61935
61936 Parser: {
61937 yy: {}
61938 }
61939
61940 Parser.prototype: {
61941 yy: {},
61942 trace: function(),
61943 symbols_: {associative list: name ==> number},
61944 terminals_: {associative list: number ==> name},
61945 productions_: [...],
61946 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
61947 table: [...],
61948 defaultActions: {...},
61949 parseError: function(str, hash),
61950 parse: function(input),
61951
61952 lexer: {
61953 EOF: 1,
61954 parseError: function(str, hash),
61955 setInput: function(input),
61956 input: function(),
61957 unput: function(str),
61958 more: function(),
61959 less: function(n),
61960 pastInput: function(),
61961 upcomingInput: function(),
61962 showPosition: function(),
61963 test_match: function(regex_match_array, rule_index),
61964 next: function(),
61965 lex: function(),
61966 begin: function(condition),
61967 popState: function(),
61968 _currentRules: function(),
61969 topState: function(),
61970 pushState: function(condition),
61971
61972 options: {
61973 ranges: boolean (optional: true ==> token location info will include a .range[] member)
61974 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
61975 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)
61976 },
61977
61978 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
61979 rules: [...],
61980 conditions: {associative list: name ==> set},
61981 }
61982 }
61983
61984
61985 token location info (@$, _$, etc.): {
61986 first_line: n,
61987 last_line: n,
61988 first_column: n,
61989 last_column: n,
61990 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
61991 }
61992
61993
61994 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
61995 text: (matched text)
61996 token: (the produced terminal token, if any)
61997 line: (yylineno)
61998 }
61999 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
62000 loc: (yylloc)
62001 expected: (string describing the set of expected tokens)
62002 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
62003 }
62004*/
62005var parser = (function(){
62006var 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];
62007var parser = {trace: function trace () { },
62008yy: {},
62009symbols_: {"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},
62010terminals_: {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"},
62011productions_: [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]],
62012performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
62013/* this == yyval */
62014
62015var $0 = $$.length - 1;
62016switch (yystate) {
62017case 1:
62018 return $$[$0-1];
62019break;
62020case 2:
62021yy.setDirection($$[$0-3]); return $$[$0-1];
62022break;
62023case 4:
62024 yy.setOptions($$[$0-1]); this.$ = $$[$0]
62025break;
62026case 5:
62027$$[$0-1] +=$$[$0]; this.$=$$[$0-1]
62028break;
62029case 7:
62030this.$ = []
62031break;
62032case 8:
62033$$[$0-1].push($$[$0]); this.$=$$[$0-1];
62034break;
62035case 9:
62036this.$ =$$[$0-1]
62037break;
62038case 11:
62039yy.commit($$[$0])
62040break;
62041case 12:
62042yy.branch($$[$0])
62043break;
62044case 13:
62045yy.checkout($$[$0])
62046break;
62047case 14:
62048yy.merge($$[$0])
62049break;
62050case 15:
62051yy.reset($$[$0])
62052break;
62053case 16:
62054this.$ = ""
62055break;
62056case 17:
62057this.$=$$[$0]
62058break;
62059case 18:
62060this.$ = $$[$0-1]+ ":" + $$[$0]
62061break;
62062case 19:
62063this.$ = $$[$0-1]+ ":" + yy.count; yy.count = 0
62064break;
62065case 20:
62066yy.count = 0
62067break;
62068case 21:
62069 yy.count += 1
62070break;
62071}
62072},
62073table: [{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]}],
62074defaultActions: {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]},
62075parseError: function parseError (str, hash) {
62076 if (hash.recoverable) {
62077 this.trace(str);
62078 } else {
62079 var error = new Error(str);
62080 error.hash = hash;
62081 throw error;
62082 }
62083},
62084parse: function parse(input) {
62085 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
62086 var args = lstack.slice.call(arguments, 1);
62087 var lexer = Object.create(this.lexer);
62088 var sharedState = { yy: {} };
62089 for (var k in this.yy) {
62090 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
62091 sharedState.yy[k] = this.yy[k];
62092 }
62093 }
62094 lexer.setInput(input, sharedState.yy);
62095 sharedState.yy.lexer = lexer;
62096 sharedState.yy.parser = this;
62097 if (typeof lexer.yylloc == 'undefined') {
62098 lexer.yylloc = {};
62099 }
62100 var yyloc = lexer.yylloc;
62101 lstack.push(yyloc);
62102 var ranges = lexer.options && lexer.options.ranges;
62103 if (typeof sharedState.yy.parseError === 'function') {
62104 this.parseError = sharedState.yy.parseError;
62105 } else {
62106 this.parseError = Object.getPrototypeOf(this).parseError;
62107 }
62108 function popStack(n) {
62109 stack.length = stack.length - 2 * n;
62110 vstack.length = vstack.length - n;
62111 lstack.length = lstack.length - n;
62112 }
62113 function lex() {
62114 var token;
62115 token = tstack.pop() || lexer.lex() || EOF;
62116 if (typeof token !== 'number') {
62117 if (token instanceof Array) {
62118 tstack = token;
62119 token = tstack.pop();
62120 }
62121 token = self.symbols_[token] || token;
62122 }
62123 return token;
62124 }
62125 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
62126 while (true) {
62127 state = stack[stack.length - 1];
62128 if (this.defaultActions[state]) {
62129 action = this.defaultActions[state];
62130 } else {
62131 if (symbol === null || typeof symbol == 'undefined') {
62132 symbol = lex();
62133 }
62134 action = table[state] && table[state][symbol];
62135 }
62136 if (typeof action === 'undefined' || !action.length || !action[0]) {
62137 var errStr = '';
62138 expected = [];
62139 for (p in table[state]) {
62140 if (this.terminals_[p] && p > TERROR) {
62141 expected.push('\'' + this.terminals_[p] + '\'');
62142 }
62143 }
62144 if (lexer.showPosition) {
62145 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
62146 } else {
62147 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
62148 }
62149 this.parseError(errStr, {
62150 text: lexer.match,
62151 token: this.terminals_[symbol] || symbol,
62152 line: lexer.yylineno,
62153 loc: yyloc,
62154 expected: expected
62155 });
62156 }
62157 if (action[0] instanceof Array && action.length > 1) {
62158 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
62159 }
62160 switch (action[0]) {
62161 case 1:
62162 stack.push(symbol);
62163 vstack.push(lexer.yytext);
62164 lstack.push(lexer.yylloc);
62165 stack.push(action[1]);
62166 symbol = null;
62167 if (!preErrorSymbol) {
62168 yyleng = lexer.yyleng;
62169 yytext = lexer.yytext;
62170 yylineno = lexer.yylineno;
62171 yyloc = lexer.yylloc;
62172 if (recovering > 0) {
62173 recovering--;
62174 }
62175 } else {
62176 symbol = preErrorSymbol;
62177 preErrorSymbol = null;
62178 }
62179 break;
62180 case 2:
62181 len = this.productions_[action[1]][1];
62182 yyval.$ = vstack[vstack.length - len];
62183 yyval._$ = {
62184 first_line: lstack[lstack.length - (len || 1)].first_line,
62185 last_line: lstack[lstack.length - 1].last_line,
62186 first_column: lstack[lstack.length - (len || 1)].first_column,
62187 last_column: lstack[lstack.length - 1].last_column
62188 };
62189 if (ranges) {
62190 yyval._$.range = [
62191 lstack[lstack.length - (len || 1)].range[0],
62192 lstack[lstack.length - 1].range[1]
62193 ];
62194 }
62195 r = this.performAction.apply(yyval, [
62196 yytext,
62197 yyleng,
62198 yylineno,
62199 sharedState.yy,
62200 action[1],
62201 vstack,
62202 lstack
62203 ].concat(args));
62204 if (typeof r !== 'undefined') {
62205 return r;
62206 }
62207 if (len) {
62208 stack = stack.slice(0, -1 * len * 2);
62209 vstack = vstack.slice(0, -1 * len);
62210 lstack = lstack.slice(0, -1 * len);
62211 }
62212 stack.push(this.productions_[action[1]][0]);
62213 vstack.push(yyval.$);
62214 lstack.push(yyval._$);
62215 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
62216 stack.push(newState);
62217 break;
62218 case 3:
62219 return true;
62220 }
62221 }
62222 return true;
62223}};
62224/* generated by jison-lex 0.3.4 */
62225var lexer = (function(){
62226var lexer = ({
62227
62228EOF:1,
62229
62230parseError:function parseError(str, hash) {
62231 if (this.yy.parser) {
62232 this.yy.parser.parseError(str, hash);
62233 } else {
62234 throw new Error(str);
62235 }
62236 },
62237
62238// resets the lexer, sets new input
62239setInput:function (input, yy) {
62240 this.yy = yy || this.yy || {};
62241 this._input = input;
62242 this._more = this._backtrack = this.done = false;
62243 this.yylineno = this.yyleng = 0;
62244 this.yytext = this.matched = this.match = '';
62245 this.conditionStack = ['INITIAL'];
62246 this.yylloc = {
62247 first_line: 1,
62248 first_column: 0,
62249 last_line: 1,
62250 last_column: 0
62251 };
62252 if (this.options.ranges) {
62253 this.yylloc.range = [0,0];
62254 }
62255 this.offset = 0;
62256 return this;
62257 },
62258
62259// consumes and returns one char from the input
62260input:function () {
62261 var ch = this._input[0];
62262 this.yytext += ch;
62263 this.yyleng++;
62264 this.offset++;
62265 this.match += ch;
62266 this.matched += ch;
62267 var lines = ch.match(/(?:\r\n?|\n).*/g);
62268 if (lines) {
62269 this.yylineno++;
62270 this.yylloc.last_line++;
62271 } else {
62272 this.yylloc.last_column++;
62273 }
62274 if (this.options.ranges) {
62275 this.yylloc.range[1]++;
62276 }
62277
62278 this._input = this._input.slice(1);
62279 return ch;
62280 },
62281
62282// unshifts one char (or a string) into the input
62283unput:function (ch) {
62284 var len = ch.length;
62285 var lines = ch.split(/(?:\r\n?|\n)/g);
62286
62287 this._input = ch + this._input;
62288 this.yytext = this.yytext.substr(0, this.yytext.length - len);
62289 //this.yyleng -= len;
62290 this.offset -= len;
62291 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
62292 this.match = this.match.substr(0, this.match.length - 1);
62293 this.matched = this.matched.substr(0, this.matched.length - 1);
62294
62295 if (lines.length - 1) {
62296 this.yylineno -= lines.length - 1;
62297 }
62298 var r = this.yylloc.range;
62299
62300 this.yylloc = {
62301 first_line: this.yylloc.first_line,
62302 last_line: this.yylineno + 1,
62303 first_column: this.yylloc.first_column,
62304 last_column: lines ?
62305 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
62306 + oldLines[oldLines.length - lines.length].length - lines[0].length :
62307 this.yylloc.first_column - len
62308 };
62309
62310 if (this.options.ranges) {
62311 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
62312 }
62313 this.yyleng = this.yytext.length;
62314 return this;
62315 },
62316
62317// When called from action, caches matched text and appends it on next action
62318more:function () {
62319 this._more = true;
62320 return this;
62321 },
62322
62323// 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.
62324reject:function () {
62325 if (this.options.backtrack_lexer) {
62326 this._backtrack = true;
62327 } else {
62328 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(), {
62329 text: "",
62330 token: null,
62331 line: this.yylineno
62332 });
62333
62334 }
62335 return this;
62336 },
62337
62338// retain first n characters of the match
62339less:function (n) {
62340 this.unput(this.match.slice(n));
62341 },
62342
62343// displays already matched input, i.e. for error messages
62344pastInput:function () {
62345 var past = this.matched.substr(0, this.matched.length - this.match.length);
62346 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
62347 },
62348
62349// displays upcoming input, i.e. for error messages
62350upcomingInput:function () {
62351 var next = this.match;
62352 if (next.length < 20) {
62353 next += this._input.substr(0, 20-next.length);
62354 }
62355 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
62356 },
62357
62358// displays the character position where the lexing error occurred, i.e. for error messages
62359showPosition:function () {
62360 var pre = this.pastInput();
62361 var c = new Array(pre.length + 1).join("-");
62362 return pre + this.upcomingInput() + "\n" + c + "^";
62363 },
62364
62365// test the lexed token: return FALSE when not a match, otherwise return token
62366test_match:function(match, indexed_rule) {
62367 var token,
62368 lines,
62369 backup;
62370
62371 if (this.options.backtrack_lexer) {
62372 // save context
62373 backup = {
62374 yylineno: this.yylineno,
62375 yylloc: {
62376 first_line: this.yylloc.first_line,
62377 last_line: this.last_line,
62378 first_column: this.yylloc.first_column,
62379 last_column: this.yylloc.last_column
62380 },
62381 yytext: this.yytext,
62382 match: this.match,
62383 matches: this.matches,
62384 matched: this.matched,
62385 yyleng: this.yyleng,
62386 offset: this.offset,
62387 _more: this._more,
62388 _input: this._input,
62389 yy: this.yy,
62390 conditionStack: this.conditionStack.slice(0),
62391 done: this.done
62392 };
62393 if (this.options.ranges) {
62394 backup.yylloc.range = this.yylloc.range.slice(0);
62395 }
62396 }
62397
62398 lines = match[0].match(/(?:\r\n?|\n).*/g);
62399 if (lines) {
62400 this.yylineno += lines.length;
62401 }
62402 this.yylloc = {
62403 first_line: this.yylloc.last_line,
62404 last_line: this.yylineno + 1,
62405 first_column: this.yylloc.last_column,
62406 last_column: lines ?
62407 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
62408 this.yylloc.last_column + match[0].length
62409 };
62410 this.yytext += match[0];
62411 this.match += match[0];
62412 this.matches = match;
62413 this.yyleng = this.yytext.length;
62414 if (this.options.ranges) {
62415 this.yylloc.range = [this.offset, this.offset += this.yyleng];
62416 }
62417 this._more = false;
62418 this._backtrack = false;
62419 this._input = this._input.slice(match[0].length);
62420 this.matched += match[0];
62421 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
62422 if (this.done && this._input) {
62423 this.done = false;
62424 }
62425 if (token) {
62426 return token;
62427 } else if (this._backtrack) {
62428 // recover context
62429 for (var k in backup) {
62430 this[k] = backup[k];
62431 }
62432 return false; // rule action called reject() implying the next rule should be tested instead.
62433 }
62434 return false;
62435 },
62436
62437// return next match in input
62438next:function () {
62439 if (this.done) {
62440 return this.EOF;
62441 }
62442 if (!this._input) {
62443 this.done = true;
62444 }
62445
62446 var token,
62447 match,
62448 tempMatch,
62449 index;
62450 if (!this._more) {
62451 this.yytext = '';
62452 this.match = '';
62453 }
62454 var rules = this._currentRules();
62455 for (var i = 0; i < rules.length; i++) {
62456 tempMatch = this._input.match(this.rules[rules[i]]);
62457 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
62458 match = tempMatch;
62459 index = i;
62460 if (this.options.backtrack_lexer) {
62461 token = this.test_match(tempMatch, rules[i]);
62462 if (token !== false) {
62463 return token;
62464 } else if (this._backtrack) {
62465 match = false;
62466 continue; // rule action called reject() implying a rule MISmatch.
62467 } else {
62468 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
62469 return false;
62470 }
62471 } else if (!this.options.flex) {
62472 break;
62473 }
62474 }
62475 }
62476 if (match) {
62477 token = this.test_match(match, rules[index]);
62478 if (token !== false) {
62479 return token;
62480 }
62481 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
62482 return false;
62483 }
62484 if (this._input === "") {
62485 return this.EOF;
62486 } else {
62487 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
62488 text: "",
62489 token: null,
62490 line: this.yylineno
62491 });
62492 }
62493 },
62494
62495// return next match that has a token
62496lex:function lex () {
62497 var r = this.next();
62498 if (r) {
62499 return r;
62500 } else {
62501 return this.lex();
62502 }
62503 },
62504
62505// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
62506begin:function begin (condition) {
62507 this.conditionStack.push(condition);
62508 },
62509
62510// pop the previously active lexer condition state off the condition stack
62511popState:function popState () {
62512 var n = this.conditionStack.length - 1;
62513 if (n > 0) {
62514 return this.conditionStack.pop();
62515 } else {
62516 return this.conditionStack[0];
62517 }
62518 },
62519
62520// produce the lexer rule set which is active for the currently active lexer condition state
62521_currentRules:function _currentRules () {
62522 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
62523 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
62524 } else {
62525 return this.conditions["INITIAL"].rules;
62526 }
62527 },
62528
62529// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
62530topState:function topState (n) {
62531 n = this.conditionStack.length - 1 - Math.abs(n || 0);
62532 if (n >= 0) {
62533 return this.conditionStack[n];
62534 } else {
62535 return "INITIAL";
62536 }
62537 },
62538
62539// alias for begin(condition)
62540pushState:function pushState (condition) {
62541 this.begin(condition);
62542 },
62543
62544// return the number of states currently on the stack
62545stateStackSize:function stateStackSize() {
62546 return this.conditionStack.length;
62547 },
62548options: {"case-insensitive":true},
62549performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
62550var YYSTATE=YY_START;
62551switch($avoiding_name_collisions) {
62552case 0:return 12;
62553break;
62554case 1:/* skip all whitespace */
62555break;
62556case 2:/* skip comments */
62557break;
62558case 3:/* skip comments */
62559break;
62560case 4:return 4;
62561break;
62562case 5:return 15;
62563break;
62564case 6:return 17;
62565break;
62566case 7:return 20;
62567break;
62568case 8:return 21;
62569break;
62570case 9:return 19;
62571break;
62572case 10:return 8;
62573break;
62574case 11:return 8;
62575break;
62576case 12:return 5;
62577break;
62578case 13:return 26
62579break;
62580case 14:this.begin("options");
62581break;
62582case 15:this.popState();
62583break;
62584case 16:return 11;
62585break;
62586case 17:this.begin("string");
62587break;
62588case 18:this.popState();
62589break;
62590case 19:return 23;
62591break;
62592case 20:return 18;
62593break;
62594case 21:return 7;
62595break;
62596}
62597},
62598rules: [/^(?:(\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],
62599conditions: {"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}}
62600});
62601return lexer;
62602})();
62603parser.lexer = lexer;
62604function Parser () {
62605 this.yy = {};
62606}
62607Parser.prototype = parser;parser.Parser = Parser;
62608return new Parser;
62609})();
62610
62611
62612if (true) {
62613exports.parser = parser;
62614exports.Parser = parser.Parser;
62615exports.parse = function () { return parser.parse.apply(parser, arguments); };
62616exports.main = function commonjsMain (args) {
62617 if (!args[1]) {
62618 console.log('Usage: '+args[0]+' FILE');
62619 process.exit(1);
62620 }
62621 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");
62622 return exports.parser.parse(source);
62623};
62624if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
62625 exports.main(process.argv.slice(1));
62626}
62627}
62628/* 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)))
62629
62630/***/ }),
62631
62632/***/ "./src/diagrams/git/styles.js":
62633/*!************************************!*\
62634 !*** ./src/diagrams/git/styles.js ***!
62635 \************************************/
62636/*! exports provided: default */
62637/***/ (function(module, __webpack_exports__, __webpack_require__) {
62638
62639"use strict";
62640__webpack_require__.r(__webpack_exports__);
62641var getStyles = function getStyles() {
62642 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";
62643};
62644
62645/* harmony default export */ __webpack_exports__["default"] = (getStyles);
62646
62647/***/ }),
62648
62649/***/ "./src/diagrams/info/infoDb.js":
62650/*!*************************************!*\
62651 !*** ./src/diagrams/info/infoDb.js ***!
62652 \*************************************/
62653/*! exports provided: setMessage, getMessage, setInfo, getInfo, default */
62654/***/ (function(module, __webpack_exports__, __webpack_require__) {
62655
62656"use strict";
62657__webpack_require__.r(__webpack_exports__);
62658/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setMessage", function() { return setMessage; });
62659/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMessage", function() { return getMessage; });
62660/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setInfo", function() { return setInfo; });
62661/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInfo", function() { return getInfo; });
62662/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
62663/**
62664 * Created by knut on 15-01-14.
62665 */
62666
62667var message = '';
62668var info = false;
62669var setMessage = function setMessage(txt) {
62670 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Setting message to: ' + txt);
62671 message = txt;
62672};
62673var getMessage = function getMessage() {
62674 return message;
62675};
62676var setInfo = function setInfo(inf) {
62677 info = inf;
62678};
62679var getInfo = function getInfo() {
62680 return info;
62681}; // export const parseError = (err, hash) => {
62682// global.mermaidAPI.parseError(err, hash)
62683// }
62684
62685/* harmony default export */ __webpack_exports__["default"] = ({
62686 setMessage: setMessage,
62687 getMessage: getMessage,
62688 setInfo: setInfo,
62689 getInfo: getInfo // parseError
62690
62691});
62692
62693/***/ }),
62694
62695/***/ "./src/diagrams/info/infoRenderer.js":
62696/*!*******************************************!*\
62697 !*** ./src/diagrams/info/infoRenderer.js ***!
62698 \*******************************************/
62699/*! exports provided: setConf, draw, default */
62700/***/ (function(module, __webpack_exports__, __webpack_require__) {
62701
62702"use strict";
62703__webpack_require__.r(__webpack_exports__);
62704/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
62705/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
62706/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
62707/* harmony import */ var _infoDb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./infoDb */ "./src/diagrams/info/infoDb.js");
62708/* harmony import */ var _parser_info__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./parser/info */ "./src/diagrams/info/parser/info.jison");
62709/* harmony import */ var _parser_info__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_parser_info__WEBPACK_IMPORTED_MODULE_2__);
62710/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
62711/**
62712 * Created by knut on 14-12-11.
62713 */
62714
62715
62716
62717
62718var conf = {};
62719var setConf = function setConf(cnf) {
62720 var keys = Object.keys(cnf);
62721 keys.forEach(function (key) {
62722 conf[key] = cnf[key];
62723 });
62724};
62725/**
62726 * Draws a an info picture in the tag with id: id based on the graph definition in text.
62727 * @param text
62728 * @param id
62729 */
62730
62731var draw = function draw(txt, id, ver) {
62732 try {
62733 var parser = _parser_info__WEBPACK_IMPORTED_MODULE_2___default.a.parser;
62734 parser.yy = _infoDb__WEBPACK_IMPORTED_MODULE_1__["default"];
62735 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Renering info diagram\n' + txt); // Parse the graph definition
62736
62737 parser.parse(txt);
62738 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Parsed info diagram'); // Fetch the default direction, use TD if none was found
62739
62740 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + id);
62741 var g = svg.append('g');
62742 g.append('text') // text label for the x axis
62743 .attr('x', 100).attr('y', 40).attr('class', 'version').attr('font-size', '32px').style('text-anchor', 'middle').text('v ' + ver);
62744 svg.attr('height', 100);
62745 svg.attr('width', 400); // svg.attr('viewBox', '0 0 300 150');
62746 } catch (e) {
62747 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error('Error while rendering info diagram');
62748 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error(e.message);
62749 }
62750};
62751/* harmony default export */ __webpack_exports__["default"] = ({
62752 setConf: setConf,
62753 draw: draw
62754});
62755
62756/***/ }),
62757
62758/***/ "./src/diagrams/info/parser/info.jison":
62759/*!*********************************************!*\
62760 !*** ./src/diagrams/info/parser/info.jison ***!
62761 \*********************************************/
62762/*! no static exports found */
62763/***/ (function(module, exports, __webpack_require__) {
62764
62765/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
62766/*
62767 Returns a Parser object of the following structure:
62768
62769 Parser: {
62770 yy: {}
62771 }
62772
62773 Parser.prototype: {
62774 yy: {},
62775 trace: function(),
62776 symbols_: {associative list: name ==> number},
62777 terminals_: {associative list: number ==> name},
62778 productions_: [...],
62779 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
62780 table: [...],
62781 defaultActions: {...},
62782 parseError: function(str, hash),
62783 parse: function(input),
62784
62785 lexer: {
62786 EOF: 1,
62787 parseError: function(str, hash),
62788 setInput: function(input),
62789 input: function(),
62790 unput: function(str),
62791 more: function(),
62792 less: function(n),
62793 pastInput: function(),
62794 upcomingInput: function(),
62795 showPosition: function(),
62796 test_match: function(regex_match_array, rule_index),
62797 next: function(),
62798 lex: function(),
62799 begin: function(condition),
62800 popState: function(),
62801 _currentRules: function(),
62802 topState: function(),
62803 pushState: function(condition),
62804
62805 options: {
62806 ranges: boolean (optional: true ==> token location info will include a .range[] member)
62807 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
62808 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)
62809 },
62810
62811 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
62812 rules: [...],
62813 conditions: {associative list: name ==> set},
62814 }
62815 }
62816
62817
62818 token location info (@$, _$, etc.): {
62819 first_line: n,
62820 last_line: n,
62821 first_column: n,
62822 last_column: n,
62823 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
62824 }
62825
62826
62827 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
62828 text: (matched text)
62829 token: (the produced terminal token, if any)
62830 line: (yylineno)
62831 }
62832 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
62833 loc: (yylloc)
62834 expected: (string describing the set of expected tokens)
62835 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
62836 }
62837*/
62838var parser = (function(){
62839var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,9,10];
62840var parser = {trace: function trace () { },
62841yy: {},
62842symbols_: {"error":2,"start":3,"info":4,"document":5,"EOF":6,"line":7,"statement":8,"NL":9,"showInfo":10,"$accept":0,"$end":1},
62843terminals_: {2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},
62844productions_: [0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],
62845performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
62846/* this == yyval */
62847
62848var $0 = $$.length - 1;
62849switch (yystate) {
62850case 1:
62851 return yy;
62852break;
62853case 4:
62854
62855break;
62856case 6:
62857 yy.setInfo(true);
62858break;
62859}
62860},
62861table: [{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])],
62862defaultActions: {4:[2,1]},
62863parseError: function parseError (str, hash) {
62864 if (hash.recoverable) {
62865 this.trace(str);
62866 } else {
62867 var error = new Error(str);
62868 error.hash = hash;
62869 throw error;
62870 }
62871},
62872parse: function parse(input) {
62873 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
62874 var args = lstack.slice.call(arguments, 1);
62875 var lexer = Object.create(this.lexer);
62876 var sharedState = { yy: {} };
62877 for (var k in this.yy) {
62878 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
62879 sharedState.yy[k] = this.yy[k];
62880 }
62881 }
62882 lexer.setInput(input, sharedState.yy);
62883 sharedState.yy.lexer = lexer;
62884 sharedState.yy.parser = this;
62885 if (typeof lexer.yylloc == 'undefined') {
62886 lexer.yylloc = {};
62887 }
62888 var yyloc = lexer.yylloc;
62889 lstack.push(yyloc);
62890 var ranges = lexer.options && lexer.options.ranges;
62891 if (typeof sharedState.yy.parseError === 'function') {
62892 this.parseError = sharedState.yy.parseError;
62893 } else {
62894 this.parseError = Object.getPrototypeOf(this).parseError;
62895 }
62896 function popStack(n) {
62897 stack.length = stack.length - 2 * n;
62898 vstack.length = vstack.length - n;
62899 lstack.length = lstack.length - n;
62900 }
62901 function lex() {
62902 var token;
62903 token = tstack.pop() || lexer.lex() || EOF;
62904 if (typeof token !== 'number') {
62905 if (token instanceof Array) {
62906 tstack = token;
62907 token = tstack.pop();
62908 }
62909 token = self.symbols_[token] || token;
62910 }
62911 return token;
62912 }
62913 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
62914 while (true) {
62915 state = stack[stack.length - 1];
62916 if (this.defaultActions[state]) {
62917 action = this.defaultActions[state];
62918 } else {
62919 if (symbol === null || typeof symbol == 'undefined') {
62920 symbol = lex();
62921 }
62922 action = table[state] && table[state][symbol];
62923 }
62924 if (typeof action === 'undefined' || !action.length || !action[0]) {
62925 var errStr = '';
62926 expected = [];
62927 for (p in table[state]) {
62928 if (this.terminals_[p] && p > TERROR) {
62929 expected.push('\'' + this.terminals_[p] + '\'');
62930 }
62931 }
62932 if (lexer.showPosition) {
62933 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
62934 } else {
62935 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
62936 }
62937 this.parseError(errStr, {
62938 text: lexer.match,
62939 token: this.terminals_[symbol] || symbol,
62940 line: lexer.yylineno,
62941 loc: yyloc,
62942 expected: expected
62943 });
62944 }
62945 if (action[0] instanceof Array && action.length > 1) {
62946 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
62947 }
62948 switch (action[0]) {
62949 case 1:
62950 stack.push(symbol);
62951 vstack.push(lexer.yytext);
62952 lstack.push(lexer.yylloc);
62953 stack.push(action[1]);
62954 symbol = null;
62955 if (!preErrorSymbol) {
62956 yyleng = lexer.yyleng;
62957 yytext = lexer.yytext;
62958 yylineno = lexer.yylineno;
62959 yyloc = lexer.yylloc;
62960 if (recovering > 0) {
62961 recovering--;
62962 }
62963 } else {
62964 symbol = preErrorSymbol;
62965 preErrorSymbol = null;
62966 }
62967 break;
62968 case 2:
62969 len = this.productions_[action[1]][1];
62970 yyval.$ = vstack[vstack.length - len];
62971 yyval._$ = {
62972 first_line: lstack[lstack.length - (len || 1)].first_line,
62973 last_line: lstack[lstack.length - 1].last_line,
62974 first_column: lstack[lstack.length - (len || 1)].first_column,
62975 last_column: lstack[lstack.length - 1].last_column
62976 };
62977 if (ranges) {
62978 yyval._$.range = [
62979 lstack[lstack.length - (len || 1)].range[0],
62980 lstack[lstack.length - 1].range[1]
62981 ];
62982 }
62983 r = this.performAction.apply(yyval, [
62984 yytext,
62985 yyleng,
62986 yylineno,
62987 sharedState.yy,
62988 action[1],
62989 vstack,
62990 lstack
62991 ].concat(args));
62992 if (typeof r !== 'undefined') {
62993 return r;
62994 }
62995 if (len) {
62996 stack = stack.slice(0, -1 * len * 2);
62997 vstack = vstack.slice(0, -1 * len);
62998 lstack = lstack.slice(0, -1 * len);
62999 }
63000 stack.push(this.productions_[action[1]][0]);
63001 vstack.push(yyval.$);
63002 lstack.push(yyval._$);
63003 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
63004 stack.push(newState);
63005 break;
63006 case 3:
63007 return true;
63008 }
63009 }
63010 return true;
63011}};
63012
63013/* generated by jison-lex 0.3.4 */
63014var lexer = (function(){
63015var lexer = ({
63016
63017EOF:1,
63018
63019parseError:function parseError(str, hash) {
63020 if (this.yy.parser) {
63021 this.yy.parser.parseError(str, hash);
63022 } else {
63023 throw new Error(str);
63024 }
63025 },
63026
63027// resets the lexer, sets new input
63028setInput:function (input, yy) {
63029 this.yy = yy || this.yy || {};
63030 this._input = input;
63031 this._more = this._backtrack = this.done = false;
63032 this.yylineno = this.yyleng = 0;
63033 this.yytext = this.matched = this.match = '';
63034 this.conditionStack = ['INITIAL'];
63035 this.yylloc = {
63036 first_line: 1,
63037 first_column: 0,
63038 last_line: 1,
63039 last_column: 0
63040 };
63041 if (this.options.ranges) {
63042 this.yylloc.range = [0,0];
63043 }
63044 this.offset = 0;
63045 return this;
63046 },
63047
63048// consumes and returns one char from the input
63049input:function () {
63050 var ch = this._input[0];
63051 this.yytext += ch;
63052 this.yyleng++;
63053 this.offset++;
63054 this.match += ch;
63055 this.matched += ch;
63056 var lines = ch.match(/(?:\r\n?|\n).*/g);
63057 if (lines) {
63058 this.yylineno++;
63059 this.yylloc.last_line++;
63060 } else {
63061 this.yylloc.last_column++;
63062 }
63063 if (this.options.ranges) {
63064 this.yylloc.range[1]++;
63065 }
63066
63067 this._input = this._input.slice(1);
63068 return ch;
63069 },
63070
63071// unshifts one char (or a string) into the input
63072unput:function (ch) {
63073 var len = ch.length;
63074 var lines = ch.split(/(?:\r\n?|\n)/g);
63075
63076 this._input = ch + this._input;
63077 this.yytext = this.yytext.substr(0, this.yytext.length - len);
63078 //this.yyleng -= len;
63079 this.offset -= len;
63080 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
63081 this.match = this.match.substr(0, this.match.length - 1);
63082 this.matched = this.matched.substr(0, this.matched.length - 1);
63083
63084 if (lines.length - 1) {
63085 this.yylineno -= lines.length - 1;
63086 }
63087 var r = this.yylloc.range;
63088
63089 this.yylloc = {
63090 first_line: this.yylloc.first_line,
63091 last_line: this.yylineno + 1,
63092 first_column: this.yylloc.first_column,
63093 last_column: lines ?
63094 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
63095 + oldLines[oldLines.length - lines.length].length - lines[0].length :
63096 this.yylloc.first_column - len
63097 };
63098
63099 if (this.options.ranges) {
63100 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
63101 }
63102 this.yyleng = this.yytext.length;
63103 return this;
63104 },
63105
63106// When called from action, caches matched text and appends it on next action
63107more:function () {
63108 this._more = true;
63109 return this;
63110 },
63111
63112// 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.
63113reject:function () {
63114 if (this.options.backtrack_lexer) {
63115 this._backtrack = true;
63116 } else {
63117 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(), {
63118 text: "",
63119 token: null,
63120 line: this.yylineno
63121 });
63122
63123 }
63124 return this;
63125 },
63126
63127// retain first n characters of the match
63128less:function (n) {
63129 this.unput(this.match.slice(n));
63130 },
63131
63132// displays already matched input, i.e. for error messages
63133pastInput:function () {
63134 var past = this.matched.substr(0, this.matched.length - this.match.length);
63135 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
63136 },
63137
63138// displays upcoming input, i.e. for error messages
63139upcomingInput:function () {
63140 var next = this.match;
63141 if (next.length < 20) {
63142 next += this._input.substr(0, 20-next.length);
63143 }
63144 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
63145 },
63146
63147// displays the character position where the lexing error occurred, i.e. for error messages
63148showPosition:function () {
63149 var pre = this.pastInput();
63150 var c = new Array(pre.length + 1).join("-");
63151 return pre + this.upcomingInput() + "\n" + c + "^";
63152 },
63153
63154// test the lexed token: return FALSE when not a match, otherwise return token
63155test_match:function(match, indexed_rule) {
63156 var token,
63157 lines,
63158 backup;
63159
63160 if (this.options.backtrack_lexer) {
63161 // save context
63162 backup = {
63163 yylineno: this.yylineno,
63164 yylloc: {
63165 first_line: this.yylloc.first_line,
63166 last_line: this.last_line,
63167 first_column: this.yylloc.first_column,
63168 last_column: this.yylloc.last_column
63169 },
63170 yytext: this.yytext,
63171 match: this.match,
63172 matches: this.matches,
63173 matched: this.matched,
63174 yyleng: this.yyleng,
63175 offset: this.offset,
63176 _more: this._more,
63177 _input: this._input,
63178 yy: this.yy,
63179 conditionStack: this.conditionStack.slice(0),
63180 done: this.done
63181 };
63182 if (this.options.ranges) {
63183 backup.yylloc.range = this.yylloc.range.slice(0);
63184 }
63185 }
63186
63187 lines = match[0].match(/(?:\r\n?|\n).*/g);
63188 if (lines) {
63189 this.yylineno += lines.length;
63190 }
63191 this.yylloc = {
63192 first_line: this.yylloc.last_line,
63193 last_line: this.yylineno + 1,
63194 first_column: this.yylloc.last_column,
63195 last_column: lines ?
63196 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
63197 this.yylloc.last_column + match[0].length
63198 };
63199 this.yytext += match[0];
63200 this.match += match[0];
63201 this.matches = match;
63202 this.yyleng = this.yytext.length;
63203 if (this.options.ranges) {
63204 this.yylloc.range = [this.offset, this.offset += this.yyleng];
63205 }
63206 this._more = false;
63207 this._backtrack = false;
63208 this._input = this._input.slice(match[0].length);
63209 this.matched += match[0];
63210 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
63211 if (this.done && this._input) {
63212 this.done = false;
63213 }
63214 if (token) {
63215 return token;
63216 } else if (this._backtrack) {
63217 // recover context
63218 for (var k in backup) {
63219 this[k] = backup[k];
63220 }
63221 return false; // rule action called reject() implying the next rule should be tested instead.
63222 }
63223 return false;
63224 },
63225
63226// return next match in input
63227next:function () {
63228 if (this.done) {
63229 return this.EOF;
63230 }
63231 if (!this._input) {
63232 this.done = true;
63233 }
63234
63235 var token,
63236 match,
63237 tempMatch,
63238 index;
63239 if (!this._more) {
63240 this.yytext = '';
63241 this.match = '';
63242 }
63243 var rules = this._currentRules();
63244 for (var i = 0; i < rules.length; i++) {
63245 tempMatch = this._input.match(this.rules[rules[i]]);
63246 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
63247 match = tempMatch;
63248 index = i;
63249 if (this.options.backtrack_lexer) {
63250 token = this.test_match(tempMatch, rules[i]);
63251 if (token !== false) {
63252 return token;
63253 } else if (this._backtrack) {
63254 match = false;
63255 continue; // rule action called reject() implying a rule MISmatch.
63256 } else {
63257 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
63258 return false;
63259 }
63260 } else if (!this.options.flex) {
63261 break;
63262 }
63263 }
63264 }
63265 if (match) {
63266 token = this.test_match(match, rules[index]);
63267 if (token !== false) {
63268 return token;
63269 }
63270 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
63271 return false;
63272 }
63273 if (this._input === "") {
63274 return this.EOF;
63275 } else {
63276 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
63277 text: "",
63278 token: null,
63279 line: this.yylineno
63280 });
63281 }
63282 },
63283
63284// return next match that has a token
63285lex:function lex () {
63286 var r = this.next();
63287 if (r) {
63288 return r;
63289 } else {
63290 return this.lex();
63291 }
63292 },
63293
63294// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
63295begin:function begin (condition) {
63296 this.conditionStack.push(condition);
63297 },
63298
63299// pop the previously active lexer condition state off the condition stack
63300popState:function popState () {
63301 var n = this.conditionStack.length - 1;
63302 if (n > 0) {
63303 return this.conditionStack.pop();
63304 } else {
63305 return this.conditionStack[0];
63306 }
63307 },
63308
63309// produce the lexer rule set which is active for the currently active lexer condition state
63310_currentRules:function _currentRules () {
63311 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
63312 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
63313 } else {
63314 return this.conditions["INITIAL"].rules;
63315 }
63316 },
63317
63318// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
63319topState:function topState (n) {
63320 n = this.conditionStack.length - 1 - Math.abs(n || 0);
63321 if (n >= 0) {
63322 return this.conditionStack[n];
63323 } else {
63324 return "INITIAL";
63325 }
63326 },
63327
63328// alias for begin(condition)
63329pushState:function pushState (condition) {
63330 this.begin(condition);
63331 },
63332
63333// return the number of states currently on the stack
63334stateStackSize:function stateStackSize() {
63335 return this.conditionStack.length;
63336 },
63337options: {"case-insensitive":true},
63338performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
63339 // Pre-lexer code can go here
63340
63341var YYSTATE=YY_START;
63342switch($avoiding_name_collisions) {
63343case 0:return 4 ;
63344break;
63345case 1:return 9 ;
63346break;
63347case 2:return 'space';
63348break;
63349case 3:return 10;
63350break;
63351case 4:return 6 ;
63352break;
63353case 5:return 'TXT' ;
63354break;
63355}
63356},
63357rules: [/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],
63358conditions: {"INITIAL":{"rules":[0,1,2,3,4,5],"inclusive":true}}
63359});
63360return lexer;
63361})();
63362parser.lexer = lexer;
63363function Parser () {
63364 this.yy = {};
63365}
63366Parser.prototype = parser;parser.Parser = Parser;
63367return new Parser;
63368})();
63369
63370
63371if (true) {
63372exports.parser = parser;
63373exports.Parser = parser.Parser;
63374exports.parse = function () { return parser.parse.apply(parser, arguments); };
63375exports.main = function commonjsMain (args) {
63376 if (!args[1]) {
63377 console.log('Usage: '+args[0]+' FILE');
63378 process.exit(1);
63379 }
63380 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");
63381 return exports.parser.parse(source);
63382};
63383if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
63384 exports.main(process.argv.slice(1));
63385}
63386}
63387/* 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)))
63388
63389/***/ }),
63390
63391/***/ "./src/diagrams/info/styles.js":
63392/*!*************************************!*\
63393 !*** ./src/diagrams/info/styles.js ***!
63394 \*************************************/
63395/*! exports provided: default */
63396/***/ (function(module, __webpack_exports__, __webpack_require__) {
63397
63398"use strict";
63399__webpack_require__.r(__webpack_exports__);
63400var getStyles = function getStyles() {
63401 return "";
63402};
63403
63404/* harmony default export */ __webpack_exports__["default"] = (getStyles);
63405
63406/***/ }),
63407
63408/***/ "./src/diagrams/pie/parser/pie.jison":
63409/*!*******************************************!*\
63410 !*** ./src/diagrams/pie/parser/pie.jison ***!
63411 \*******************************************/
63412/*! no static exports found */
63413/***/ (function(module, exports, __webpack_require__) {
63414
63415/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
63416/*
63417 Returns a Parser object of the following structure:
63418
63419 Parser: {
63420 yy: {}
63421 }
63422
63423 Parser.prototype: {
63424 yy: {},
63425 trace: function(),
63426 symbols_: {associative list: name ==> number},
63427 terminals_: {associative list: number ==> name},
63428 productions_: [...],
63429 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
63430 table: [...],
63431 defaultActions: {...},
63432 parseError: function(str, hash),
63433 parse: function(input),
63434
63435 lexer: {
63436 EOF: 1,
63437 parseError: function(str, hash),
63438 setInput: function(input),
63439 input: function(),
63440 unput: function(str),
63441 more: function(),
63442 less: function(n),
63443 pastInput: function(),
63444 upcomingInput: function(),
63445 showPosition: function(),
63446 test_match: function(regex_match_array, rule_index),
63447 next: function(),
63448 lex: function(),
63449 begin: function(condition),
63450 popState: function(),
63451 _currentRules: function(),
63452 topState: function(),
63453 pushState: function(condition),
63454
63455 options: {
63456 ranges: boolean (optional: true ==> token location info will include a .range[] member)
63457 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
63458 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)
63459 },
63460
63461 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
63462 rules: [...],
63463 conditions: {associative list: name ==> set},
63464 }
63465 }
63466
63467
63468 token location info (@$, _$, etc.): {
63469 first_line: n,
63470 last_line: n,
63471 first_column: n,
63472 last_column: n,
63473 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
63474 }
63475
63476
63477 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
63478 text: (matched text)
63479 token: (the produced terminal token, if any)
63480 line: (yylineno)
63481 }
63482 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
63483 loc: (yylloc)
63484 expected: (string describing the set of expected tokens)
63485 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
63486 }
63487*/
63488var parser = (function(){
63489var 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];
63490var parser = {trace: function trace () { },
63491yy: {},
63492symbols_: {"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},
63493terminals_: {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"},
63494productions_: [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]],
63495performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
63496/* this == yyval */
63497
63498var $0 = $$.length - 1;
63499switch (yystate) {
63500case 6:
63501 this.$ = $$[$0-1]
63502break;
63503case 8:
63504 yy.addSection($$[$0-1],yy.cleanupValue($$[$0]));
63505break;
63506case 9:
63507 this.$=$$[$0].trim();yy.setTitle(this.$);
63508break;
63509case 16:
63510 yy.parseDirective('%%{', 'open_directive');
63511break;
63512case 17:
63513 yy.parseDirective($$[$0], 'type_directive');
63514break;
63515case 18:
63516 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
63517break;
63518case 19:
63519 yy.parseDirective('}%%', 'close_directive', 'pie');
63520break;
63521}
63522},
63523table: [{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])],
63524defaultActions: {9:[2,16],10:[2,1],11:[2,2],27:[2,18]},
63525parseError: function parseError (str, hash) {
63526 if (hash.recoverable) {
63527 this.trace(str);
63528 } else {
63529 var error = new Error(str);
63530 error.hash = hash;
63531 throw error;
63532 }
63533},
63534parse: function parse(input) {
63535 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
63536 var args = lstack.slice.call(arguments, 1);
63537 var lexer = Object.create(this.lexer);
63538 var sharedState = { yy: {} };
63539 for (var k in this.yy) {
63540 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
63541 sharedState.yy[k] = this.yy[k];
63542 }
63543 }
63544 lexer.setInput(input, sharedState.yy);
63545 sharedState.yy.lexer = lexer;
63546 sharedState.yy.parser = this;
63547 if (typeof lexer.yylloc == 'undefined') {
63548 lexer.yylloc = {};
63549 }
63550 var yyloc = lexer.yylloc;
63551 lstack.push(yyloc);
63552 var ranges = lexer.options && lexer.options.ranges;
63553 if (typeof sharedState.yy.parseError === 'function') {
63554 this.parseError = sharedState.yy.parseError;
63555 } else {
63556 this.parseError = Object.getPrototypeOf(this).parseError;
63557 }
63558 function popStack(n) {
63559 stack.length = stack.length - 2 * n;
63560 vstack.length = vstack.length - n;
63561 lstack.length = lstack.length - n;
63562 }
63563 function lex() {
63564 var token;
63565 token = tstack.pop() || lexer.lex() || EOF;
63566 if (typeof token !== 'number') {
63567 if (token instanceof Array) {
63568 tstack = token;
63569 token = tstack.pop();
63570 }
63571 token = self.symbols_[token] || token;
63572 }
63573 return token;
63574 }
63575 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
63576 while (true) {
63577 state = stack[stack.length - 1];
63578 if (this.defaultActions[state]) {
63579 action = this.defaultActions[state];
63580 } else {
63581 if (symbol === null || typeof symbol == 'undefined') {
63582 symbol = lex();
63583 }
63584 action = table[state] && table[state][symbol];
63585 }
63586 if (typeof action === 'undefined' || !action.length || !action[0]) {
63587 var errStr = '';
63588 expected = [];
63589 for (p in table[state]) {
63590 if (this.terminals_[p] && p > TERROR) {
63591 expected.push('\'' + this.terminals_[p] + '\'');
63592 }
63593 }
63594 if (lexer.showPosition) {
63595 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
63596 } else {
63597 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
63598 }
63599 this.parseError(errStr, {
63600 text: lexer.match,
63601 token: this.terminals_[symbol] || symbol,
63602 line: lexer.yylineno,
63603 loc: yyloc,
63604 expected: expected
63605 });
63606 }
63607 if (action[0] instanceof Array && action.length > 1) {
63608 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
63609 }
63610 switch (action[0]) {
63611 case 1:
63612 stack.push(symbol);
63613 vstack.push(lexer.yytext);
63614 lstack.push(lexer.yylloc);
63615 stack.push(action[1]);
63616 symbol = null;
63617 if (!preErrorSymbol) {
63618 yyleng = lexer.yyleng;
63619 yytext = lexer.yytext;
63620 yylineno = lexer.yylineno;
63621 yyloc = lexer.yylloc;
63622 if (recovering > 0) {
63623 recovering--;
63624 }
63625 } else {
63626 symbol = preErrorSymbol;
63627 preErrorSymbol = null;
63628 }
63629 break;
63630 case 2:
63631 len = this.productions_[action[1]][1];
63632 yyval.$ = vstack[vstack.length - len];
63633 yyval._$ = {
63634 first_line: lstack[lstack.length - (len || 1)].first_line,
63635 last_line: lstack[lstack.length - 1].last_line,
63636 first_column: lstack[lstack.length - (len || 1)].first_column,
63637 last_column: lstack[lstack.length - 1].last_column
63638 };
63639 if (ranges) {
63640 yyval._$.range = [
63641 lstack[lstack.length - (len || 1)].range[0],
63642 lstack[lstack.length - 1].range[1]
63643 ];
63644 }
63645 r = this.performAction.apply(yyval, [
63646 yytext,
63647 yyleng,
63648 yylineno,
63649 sharedState.yy,
63650 action[1],
63651 vstack,
63652 lstack
63653 ].concat(args));
63654 if (typeof r !== 'undefined') {
63655 return r;
63656 }
63657 if (len) {
63658 stack = stack.slice(0, -1 * len * 2);
63659 vstack = vstack.slice(0, -1 * len);
63660 lstack = lstack.slice(0, -1 * len);
63661 }
63662 stack.push(this.productions_[action[1]][0]);
63663 vstack.push(yyval.$);
63664 lstack.push(yyval._$);
63665 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
63666 stack.push(newState);
63667 break;
63668 case 3:
63669 return true;
63670 }
63671 }
63672 return true;
63673}};
63674
63675/* generated by jison-lex 0.3.4 */
63676var lexer = (function(){
63677var lexer = ({
63678
63679EOF:1,
63680
63681parseError:function parseError(str, hash) {
63682 if (this.yy.parser) {
63683 this.yy.parser.parseError(str, hash);
63684 } else {
63685 throw new Error(str);
63686 }
63687 },
63688
63689// resets the lexer, sets new input
63690setInput:function (input, yy) {
63691 this.yy = yy || this.yy || {};
63692 this._input = input;
63693 this._more = this._backtrack = this.done = false;
63694 this.yylineno = this.yyleng = 0;
63695 this.yytext = this.matched = this.match = '';
63696 this.conditionStack = ['INITIAL'];
63697 this.yylloc = {
63698 first_line: 1,
63699 first_column: 0,
63700 last_line: 1,
63701 last_column: 0
63702 };
63703 if (this.options.ranges) {
63704 this.yylloc.range = [0,0];
63705 }
63706 this.offset = 0;
63707 return this;
63708 },
63709
63710// consumes and returns one char from the input
63711input:function () {
63712 var ch = this._input[0];
63713 this.yytext += ch;
63714 this.yyleng++;
63715 this.offset++;
63716 this.match += ch;
63717 this.matched += ch;
63718 var lines = ch.match(/(?:\r\n?|\n).*/g);
63719 if (lines) {
63720 this.yylineno++;
63721 this.yylloc.last_line++;
63722 } else {
63723 this.yylloc.last_column++;
63724 }
63725 if (this.options.ranges) {
63726 this.yylloc.range[1]++;
63727 }
63728
63729 this._input = this._input.slice(1);
63730 return ch;
63731 },
63732
63733// unshifts one char (or a string) into the input
63734unput:function (ch) {
63735 var len = ch.length;
63736 var lines = ch.split(/(?:\r\n?|\n)/g);
63737
63738 this._input = ch + this._input;
63739 this.yytext = this.yytext.substr(0, this.yytext.length - len);
63740 //this.yyleng -= len;
63741 this.offset -= len;
63742 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
63743 this.match = this.match.substr(0, this.match.length - 1);
63744 this.matched = this.matched.substr(0, this.matched.length - 1);
63745
63746 if (lines.length - 1) {
63747 this.yylineno -= lines.length - 1;
63748 }
63749 var r = this.yylloc.range;
63750
63751 this.yylloc = {
63752 first_line: this.yylloc.first_line,
63753 last_line: this.yylineno + 1,
63754 first_column: this.yylloc.first_column,
63755 last_column: lines ?
63756 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
63757 + oldLines[oldLines.length - lines.length].length - lines[0].length :
63758 this.yylloc.first_column - len
63759 };
63760
63761 if (this.options.ranges) {
63762 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
63763 }
63764 this.yyleng = this.yytext.length;
63765 return this;
63766 },
63767
63768// When called from action, caches matched text and appends it on next action
63769more:function () {
63770 this._more = true;
63771 return this;
63772 },
63773
63774// 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.
63775reject:function () {
63776 if (this.options.backtrack_lexer) {
63777 this._backtrack = true;
63778 } else {
63779 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(), {
63780 text: "",
63781 token: null,
63782 line: this.yylineno
63783 });
63784
63785 }
63786 return this;
63787 },
63788
63789// retain first n characters of the match
63790less:function (n) {
63791 this.unput(this.match.slice(n));
63792 },
63793
63794// displays already matched input, i.e. for error messages
63795pastInput:function () {
63796 var past = this.matched.substr(0, this.matched.length - this.match.length);
63797 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
63798 },
63799
63800// displays upcoming input, i.e. for error messages
63801upcomingInput:function () {
63802 var next = this.match;
63803 if (next.length < 20) {
63804 next += this._input.substr(0, 20-next.length);
63805 }
63806 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
63807 },
63808
63809// displays the character position where the lexing error occurred, i.e. for error messages
63810showPosition:function () {
63811 var pre = this.pastInput();
63812 var c = new Array(pre.length + 1).join("-");
63813 return pre + this.upcomingInput() + "\n" + c + "^";
63814 },
63815
63816// test the lexed token: return FALSE when not a match, otherwise return token
63817test_match:function(match, indexed_rule) {
63818 var token,
63819 lines,
63820 backup;
63821
63822 if (this.options.backtrack_lexer) {
63823 // save context
63824 backup = {
63825 yylineno: this.yylineno,
63826 yylloc: {
63827 first_line: this.yylloc.first_line,
63828 last_line: this.last_line,
63829 first_column: this.yylloc.first_column,
63830 last_column: this.yylloc.last_column
63831 },
63832 yytext: this.yytext,
63833 match: this.match,
63834 matches: this.matches,
63835 matched: this.matched,
63836 yyleng: this.yyleng,
63837 offset: this.offset,
63838 _more: this._more,
63839 _input: this._input,
63840 yy: this.yy,
63841 conditionStack: this.conditionStack.slice(0),
63842 done: this.done
63843 };
63844 if (this.options.ranges) {
63845 backup.yylloc.range = this.yylloc.range.slice(0);
63846 }
63847 }
63848
63849 lines = match[0].match(/(?:\r\n?|\n).*/g);
63850 if (lines) {
63851 this.yylineno += lines.length;
63852 }
63853 this.yylloc = {
63854 first_line: this.yylloc.last_line,
63855 last_line: this.yylineno + 1,
63856 first_column: this.yylloc.last_column,
63857 last_column: lines ?
63858 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
63859 this.yylloc.last_column + match[0].length
63860 };
63861 this.yytext += match[0];
63862 this.match += match[0];
63863 this.matches = match;
63864 this.yyleng = this.yytext.length;
63865 if (this.options.ranges) {
63866 this.yylloc.range = [this.offset, this.offset += this.yyleng];
63867 }
63868 this._more = false;
63869 this._backtrack = false;
63870 this._input = this._input.slice(match[0].length);
63871 this.matched += match[0];
63872 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
63873 if (this.done && this._input) {
63874 this.done = false;
63875 }
63876 if (token) {
63877 return token;
63878 } else if (this._backtrack) {
63879 // recover context
63880 for (var k in backup) {
63881 this[k] = backup[k];
63882 }
63883 return false; // rule action called reject() implying the next rule should be tested instead.
63884 }
63885 return false;
63886 },
63887
63888// return next match in input
63889next:function () {
63890 if (this.done) {
63891 return this.EOF;
63892 }
63893 if (!this._input) {
63894 this.done = true;
63895 }
63896
63897 var token,
63898 match,
63899 tempMatch,
63900 index;
63901 if (!this._more) {
63902 this.yytext = '';
63903 this.match = '';
63904 }
63905 var rules = this._currentRules();
63906 for (var i = 0; i < rules.length; i++) {
63907 tempMatch = this._input.match(this.rules[rules[i]]);
63908 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
63909 match = tempMatch;
63910 index = i;
63911 if (this.options.backtrack_lexer) {
63912 token = this.test_match(tempMatch, rules[i]);
63913 if (token !== false) {
63914 return token;
63915 } else if (this._backtrack) {
63916 match = false;
63917 continue; // rule action called reject() implying a rule MISmatch.
63918 } else {
63919 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
63920 return false;
63921 }
63922 } else if (!this.options.flex) {
63923 break;
63924 }
63925 }
63926 }
63927 if (match) {
63928 token = this.test_match(match, rules[index]);
63929 if (token !== false) {
63930 return token;
63931 }
63932 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
63933 return false;
63934 }
63935 if (this._input === "") {
63936 return this.EOF;
63937 } else {
63938 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
63939 text: "",
63940 token: null,
63941 line: this.yylineno
63942 });
63943 }
63944 },
63945
63946// return next match that has a token
63947lex:function lex () {
63948 var r = this.next();
63949 if (r) {
63950 return r;
63951 } else {
63952 return this.lex();
63953 }
63954 },
63955
63956// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
63957begin:function begin (condition) {
63958 this.conditionStack.push(condition);
63959 },
63960
63961// pop the previously active lexer condition state off the condition stack
63962popState:function popState () {
63963 var n = this.conditionStack.length - 1;
63964 if (n > 0) {
63965 return this.conditionStack.pop();
63966 } else {
63967 return this.conditionStack[0];
63968 }
63969 },
63970
63971// produce the lexer rule set which is active for the currently active lexer condition state
63972_currentRules:function _currentRules () {
63973 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
63974 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
63975 } else {
63976 return this.conditions["INITIAL"].rules;
63977 }
63978 },
63979
63980// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
63981topState:function topState (n) {
63982 n = this.conditionStack.length - 1 - Math.abs(n || 0);
63983 if (n >= 0) {
63984 return this.conditionStack[n];
63985 } else {
63986 return "INITIAL";
63987 }
63988 },
63989
63990// alias for begin(condition)
63991pushState:function pushState (condition) {
63992 this.begin(condition);
63993 },
63994
63995// return the number of states currently on the stack
63996stateStackSize:function stateStackSize() {
63997 return this.conditionStack.length;
63998 },
63999options: {"case-insensitive":true},
64000performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
64001var YYSTATE=YY_START;
64002switch($avoiding_name_collisions) {
64003case 0: this.begin('open_directive'); return 22;
64004break;
64005case 1: this.begin('type_directive'); return 23;
64006break;
64007case 2: this.popState(); this.begin('arg_directive'); return 17;
64008break;
64009case 3: this.popState(); this.popState(); return 25;
64010break;
64011case 4:return 24;
64012break;
64013case 5:/* skip comments */
64014break;
64015case 6:/* skip comments */{ console.log('Crap after close'); }
64016break;
64017case 7:return 19;
64018break;
64019case 8:/* do nothing */
64020break;
64021case 9:/* ignore */
64022break;
64023case 10: this.begin("title");return 12;
64024break;
64025case 11: this.popState(); return "title_value";
64026break;
64027case 12: this.begin("string");
64028break;
64029case 13: this.popState();
64030break;
64031case 14: return "txt";
64032break;
64033case 15:return 6;
64034break;
64035case 16:return "value";
64036break;
64037case 17:return 21;
64038break;
64039}
64040},
64041rules: [/^(?:%%\{)/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],
64042conditions: {"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}}
64043});
64044return lexer;
64045})();
64046parser.lexer = lexer;
64047function Parser () {
64048 this.yy = {};
64049}
64050Parser.prototype = parser;parser.Parser = Parser;
64051return new Parser;
64052})();
64053
64054
64055if (true) {
64056exports.parser = parser;
64057exports.Parser = parser.Parser;
64058exports.parse = function () { return parser.parse.apply(parser, arguments); };
64059exports.main = function commonjsMain (args) {
64060 if (!args[1]) {
64061 console.log('Usage: '+args[0]+' FILE');
64062 process.exit(1);
64063 }
64064 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");
64065 return exports.parser.parse(source);
64066};
64067if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
64068 exports.main(process.argv.slice(1));
64069}
64070}
64071/* 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)))
64072
64073/***/ }),
64074
64075/***/ "./src/diagrams/pie/pieDb.js":
64076/*!***********************************!*\
64077 !*** ./src/diagrams/pie/pieDb.js ***!
64078 \***********************************/
64079/*! exports provided: parseDirective, default */
64080/***/ (function(module, __webpack_exports__, __webpack_require__) {
64081
64082"use strict";
64083__webpack_require__.r(__webpack_exports__);
64084/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDirective", function() { return parseDirective; });
64085/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
64086/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
64087/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config */ "./src/config.js");
64088/**
64089 *
64090 */
64091
64092
64093
64094var sections = {};
64095var title = '';
64096var parseDirective = function parseDirective(statement, context, type) {
64097 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].parseDirective(this, statement, context, type);
64098};
64099
64100var addSection = function addSection(id, value) {
64101 if (typeof sections[id] === 'undefined') {
64102 sections[id] = value;
64103 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].debug('Added new section :', id);
64104 }
64105};
64106
64107var getSections = function getSections() {
64108 return sections;
64109};
64110
64111var setTitle = function setTitle(txt) {
64112 title = txt;
64113};
64114
64115var getTitle = function getTitle() {
64116 return title;
64117};
64118
64119var cleanupValue = function cleanupValue(value) {
64120 if (value.substring(0, 1) === ':') {
64121 value = value.substring(1).trim();
64122 return Number(value.trim());
64123 } else {
64124 return Number(value.trim());
64125 }
64126};
64127
64128var clear = function clear() {
64129 sections = {};
64130 title = '';
64131}; // export const parseError = (err, hash) => {
64132// global.mermaidAPI.parseError(err, hash)
64133// }
64134
64135
64136/* harmony default export */ __webpack_exports__["default"] = ({
64137 parseDirective: parseDirective,
64138 getConfig: function getConfig() {
64139 return _config__WEBPACK_IMPORTED_MODULE_2__["getConfig"]().pie;
64140 },
64141 addSection: addSection,
64142 getSections: getSections,
64143 cleanupValue: cleanupValue,
64144 clear: clear,
64145 setTitle: setTitle,
64146 getTitle: getTitle // parseError
64147
64148});
64149
64150/***/ }),
64151
64152/***/ "./src/diagrams/pie/pieRenderer.js":
64153/*!*****************************************!*\
64154 !*** ./src/diagrams/pie/pieRenderer.js ***!
64155 \*****************************************/
64156/*! exports provided: setConf, draw, default */
64157/***/ (function(module, __webpack_exports__, __webpack_require__) {
64158
64159"use strict";
64160__webpack_require__.r(__webpack_exports__);
64161/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
64162/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
64163/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
64164/* harmony import */ var _pieDb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pieDb */ "./src/diagrams/pie/pieDb.js");
64165/* harmony import */ var _parser_pie__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./parser/pie */ "./src/diagrams/pie/parser/pie.jison");
64166/* harmony import */ var _parser_pie__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_parser_pie__WEBPACK_IMPORTED_MODULE_2__);
64167/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
64168/**
64169 * Created by AshishJ on 11-09-2019.
64170 */
64171
64172
64173
64174
64175var conf = {};
64176var setConf = function setConf(cnf) {
64177 var keys = Object.keys(cnf);
64178 keys.forEach(function (key) {
64179 conf[key] = cnf[key];
64180 });
64181};
64182/**
64183 * Draws a Pie Chart with the data given in text.
64184 * @param text
64185 * @param id
64186 */
64187
64188var w;
64189var draw = function draw(txt, id) {
64190 try {
64191 var parser = _parser_pie__WEBPACK_IMPORTED_MODULE_2___default.a.parser;
64192 parser.yy = _pieDb__WEBPACK_IMPORTED_MODULE_1__["default"];
64193 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Rendering info diagram\n' + txt); // Parse the Pie Chart definition
64194
64195 parser.yy.clear();
64196 parser.parse(txt);
64197 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Parsed info diagram');
64198 var elem = document.getElementById(id);
64199 w = elem.parentElement.offsetWidth;
64200
64201 if (typeof w === 'undefined') {
64202 w = 1200;
64203 }
64204
64205 if (typeof conf.useWidth !== 'undefined') {
64206 w = conf.useWidth;
64207 }
64208
64209 var h = 450;
64210 elem.setAttribute('height', '100%'); // Set viewBox
64211
64212 elem.setAttribute('viewBox', '0 0 ' + w + ' ' + h); // Fetch the default direction, use TD if none was found
64213
64214 var width = w; // 450
64215
64216 var height = 450;
64217 var margin = 40;
64218 var legendRectSize = 18;
64219 var legendSpacing = 4;
64220 var radius = Math.min(width, height) / 2 - margin;
64221 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + id).append('svg').attr('width', width).attr('height', height).append('g').attr('transform', 'translate(' + width / 2 + ',' + height / 2 + ')');
64222 var data = _pieDb__WEBPACK_IMPORTED_MODULE_1__["default"].getSections();
64223 var sum = 0;
64224 Object.keys(data).forEach(function (key) {
64225 sum += data[key];
64226 });
64227 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].info(data); // set the color scale
64228
64229 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:
64230
64231 var pie = Object(d3__WEBPACK_IMPORTED_MODULE_0__["pie"])().value(function (d) {
64232 return d.value;
64233 });
64234 var dataReady = pie(Object(d3__WEBPACK_IMPORTED_MODULE_0__["entries"])(data)); // shape helper to build arcs:
64235
64236 var arcGenerator = Object(d3__WEBPACK_IMPORTED_MODULE_0__["arc"])().innerRadius(0).outerRadius(radius); // Build the pie chart: Basically, each part of the pie is a path that we build using the arc function.
64237
64238 svg.selectAll('mySlices').data(dataReady).enter().append('path').attr('d', arcGenerator).attr('fill', function (d) {
64239 return color(d.data.key);
64240 }).attr('stroke', 'black').style('stroke-width', '2px').style('opacity', 0.7); // Now add the Percentage. Use the centroid method to get the best coordinates
64241
64242 svg.selectAll('mySlices').data(dataReady).enter().append('text').text(function (d) {
64243 return (d.data.value / sum * 100).toFixed(0) + '%';
64244 }).attr('transform', function (d) {
64245 return 'translate(' + arcGenerator.centroid(d) + ')';
64246 }).style('text-anchor', 'middle').attr('class', 'slice').style('font-size', 17);
64247 svg.append('text').text(parser.yy.getTitle()).attr('x', 0).attr('y', -(h - 50) / 2).attr('class', 'pieTitleText'); //Add the slegend/annotations for each section
64248
64249 var legend = svg.selectAll('.legend').data(color.domain()).enter().append('g').attr('class', 'legend').attr('transform', function (d, i) {
64250 var height = legendRectSize + legendSpacing;
64251 var offset = height * color.domain().length / 2;
64252 var horz = 12 * legendRectSize;
64253 var vert = i * height - offset;
64254 return 'translate(' + horz + ',' + vert + ')';
64255 });
64256 legend.append('rect').attr('width', legendRectSize).attr('height', legendRectSize).style('fill', color).style('stroke', color);
64257 legend.append('text').attr('x', legendRectSize + legendSpacing).attr('y', legendRectSize - legendSpacing).text(function (d) {
64258 return d;
64259 });
64260 } catch (e) {
64261 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error('Error while rendering info diagram');
64262 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error(e);
64263 }
64264};
64265/* harmony default export */ __webpack_exports__["default"] = ({
64266 setConf: setConf,
64267 draw: draw
64268});
64269
64270/***/ }),
64271
64272/***/ "./src/diagrams/pie/styles.js":
64273/*!************************************!*\
64274 !*** ./src/diagrams/pie/styles.js ***!
64275 \************************************/
64276/*! exports provided: default */
64277/***/ (function(module, __webpack_exports__, __webpack_require__) {
64278
64279"use strict";
64280__webpack_require__.r(__webpack_exports__);
64281var getStyles = function getStyles(options) {
64282 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");
64283};
64284
64285/* harmony default export */ __webpack_exports__["default"] = (getStyles);
64286
64287/***/ }),
64288
64289/***/ "./src/diagrams/sequence/parser/sequenceDiagram.jison":
64290/*!************************************************************!*\
64291 !*** ./src/diagrams/sequence/parser/sequenceDiagram.jison ***!
64292 \************************************************************/
64293/*! no static exports found */
64294/***/ (function(module, exports, __webpack_require__) {
64295
64296/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
64297/*
64298 Returns a Parser object of the following structure:
64299
64300 Parser: {
64301 yy: {}
64302 }
64303
64304 Parser.prototype: {
64305 yy: {},
64306 trace: function(),
64307 symbols_: {associative list: name ==> number},
64308 terminals_: {associative list: number ==> name},
64309 productions_: [...],
64310 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
64311 table: [...],
64312 defaultActions: {...},
64313 parseError: function(str, hash),
64314 parse: function(input),
64315
64316 lexer: {
64317 EOF: 1,
64318 parseError: function(str, hash),
64319 setInput: function(input),
64320 input: function(),
64321 unput: function(str),
64322 more: function(),
64323 less: function(n),
64324 pastInput: function(),
64325 upcomingInput: function(),
64326 showPosition: function(),
64327 test_match: function(regex_match_array, rule_index),
64328 next: function(),
64329 lex: function(),
64330 begin: function(condition),
64331 popState: function(),
64332 _currentRules: function(),
64333 topState: function(),
64334 pushState: function(condition),
64335
64336 options: {
64337 ranges: boolean (optional: true ==> token location info will include a .range[] member)
64338 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
64339 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)
64340 },
64341
64342 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
64343 rules: [...],
64344 conditions: {associative list: name ==> set},
64345 }
64346 }
64347
64348
64349 token location info (@$, _$, etc.): {
64350 first_line: n,
64351 last_line: n,
64352 first_column: n,
64353 last_column: n,
64354 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
64355 }
64356
64357
64358 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
64359 text: (matched text)
64360 token: (the produced terminal token, if any)
64361 line: (yylineno)
64362 }
64363 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
64364 loc: (yylloc)
64365 expected: (string describing the set of expected tokens)
64366 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
64367 }
64368*/
64369var parser = (function(){
64370var 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];
64371var parser = {trace: function trace () { },
64372yy: {},
64373symbols_: {"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},
64374terminals_: {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"},
64375productions_: [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]],
64376performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
64377/* this == yyval */
64378
64379var $0 = $$.length - 1;
64380switch (yystate) {
64381case 4:
64382 yy.apply($$[$0]);return $$[$0];
64383break;
64384case 5:
64385 this.$ = []
64386break;
64387case 6:
64388$$[$0-1].push($$[$0]);this.$ = $$[$0-1]
64389break;
64390case 7: case 8:
64391 this.$ = $$[$0]
64392break;
64393case 9:
64394 this.$=[];
64395break;
64396case 12:
64397$$[$0-3].description=yy.parseMessage($$[$0-1]); this.$=$$[$0-3];
64398break;
64399case 13:
64400this.$=$$[$0-1];
64401break;
64402case 15:
64403yy.enableSequenceNumbers()
64404break;
64405case 16:
64406this.$={type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0-1]};
64407break;
64408case 17:
64409this.$={type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0-1]};
64410break;
64411case 19:
64412this.$=[{type:'setTitle', text:$$[$0-1]}]
64413break;
64414case 20:
64415
64416 $$[$0-1].unshift({type: 'loopStart', loopText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.LOOP_START});
64417 $$[$0-1].push({type: 'loopEnd', loopText:$$[$0-2], signalType: yy.LINETYPE.LOOP_END});
64418 this.$=$$[$0-1];
64419break;
64420case 21:
64421
64422 $$[$0-1].unshift({type: 'rectStart', color:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.RECT_START });
64423 $$[$0-1].push({type: 'rectEnd', color:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.RECT_END });
64424 this.$=$$[$0-1];
64425break;
64426case 22:
64427
64428 $$[$0-1].unshift({type: 'optStart', optText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.OPT_START});
64429 $$[$0-1].push({type: 'optEnd', optText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.OPT_END});
64430 this.$=$$[$0-1];
64431break;
64432case 23:
64433
64434 // Alt start
64435 $$[$0-1].unshift({type: 'altStart', altText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.ALT_START});
64436 // Content in alt is already in $$[$0-1]
64437 // End
64438 $$[$0-1].push({type: 'altEnd', signalType: yy.LINETYPE.ALT_END});
64439 this.$=$$[$0-1];
64440break;
64441case 24:
64442
64443 // Parallel start
64444 $$[$0-1].unshift({type: 'parStart', parText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.PAR_START});
64445 // Content in par is already in $$[$0-1]
64446 // End
64447 $$[$0-1].push({type: 'parEnd', signalType: yy.LINETYPE.PAR_END});
64448 this.$=$$[$0-1];
64449break;
64450case 27:
64451 this.$ = $$[$0-3].concat([{type: 'and', parText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.PAR_AND}, $$[$0]]);
64452break;
64453case 29:
64454 this.$ = $$[$0-3].concat([{type: 'else', altText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.ALT_ELSE}, $$[$0]]);
64455break;
64456case 30:
64457
64458 this.$ = [$$[$0-1], {type:'addNote', placement:$$[$0-2], actor:$$[$0-1].actor, text:$$[$0]}];
64459break;
64460case 31:
64461
64462 // Coerce actor_pair into a [to, from, ...] array
64463 $$[$0-2] = [].concat($$[$0-1], $$[$0-1]).slice(0, 2);
64464 $$[$0-2][0] = $$[$0-2][0].actor;
64465 $$[$0-2][1] = $$[$0-2][1].actor;
64466 this.$ = [$$[$0-1], {type:'addNote', placement:yy.PLACEMENT.OVER, actor:$$[$0-2].slice(0, 2), text:$$[$0]}];
64467break;
64468case 34:
64469 this.$ = [$$[$0-2], $$[$0]];
64470break;
64471case 35:
64472 this.$ = $$[$0];
64473break;
64474case 36:
64475 this.$ = yy.PLACEMENT.LEFTOF;
64476break;
64477case 37:
64478 this.$ = yy.PLACEMENT.RIGHTOF;
64479break;
64480case 38:
64481 this.$ = [$$[$0-4],$$[$0-1],{type: 'addMessage', from:$$[$0-4].actor, to:$$[$0-1].actor, signalType:$$[$0-3], msg:$$[$0]},
64482 {type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0-1]}
64483 ]
64484break;
64485case 39:
64486 this.$ = [$$[$0-4],$$[$0-1],{type: 'addMessage', from:$$[$0-4].actor, to:$$[$0-1].actor, signalType:$$[$0-3], msg:$$[$0]},
64487 {type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0-4]}
64488 ]
64489break;
64490case 40:
64491 this.$ = [$$[$0-3],$$[$0-1],{type: 'addMessage', from:$$[$0-3].actor, to:$$[$0-1].actor, signalType:$$[$0-2], msg:$$[$0]}]
64492break;
64493case 41:
64494this.$={type: 'addActor', actor:$$[$0]}
64495break;
64496case 42:
64497 this.$ = yy.LINETYPE.SOLID_OPEN;
64498break;
64499case 43:
64500 this.$ = yy.LINETYPE.DOTTED_OPEN;
64501break;
64502case 44:
64503 this.$ = yy.LINETYPE.SOLID;
64504break;
64505case 45:
64506 this.$ = yy.LINETYPE.DOTTED;
64507break;
64508case 46:
64509 this.$ = yy.LINETYPE.SOLID_CROSS;
64510break;
64511case 47:
64512 this.$ = yy.LINETYPE.DOTTED_CROSS;
64513break;
64514case 48:
64515this.$ = yy.parseMessage($$[$0].trim().substring(1))
64516break;
64517case 49:
64518 yy.parseDirective('%%{', 'open_directive');
64519break;
64520case 50:
64521 yy.parseDirective($$[$0], 'type_directive');
64522break;
64523case 51:
64524 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
64525break;
64526case 52:
64527 yy.parseDirective('}%%', 'close_directive', 'sequence');
64528break;
64529}
64530},
64531table: [{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]}],
64532defaultActions: {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]},
64533parseError: function parseError (str, hash) {
64534 if (hash.recoverable) {
64535 this.trace(str);
64536 } else {
64537 var error = new Error(str);
64538 error.hash = hash;
64539 throw error;
64540 }
64541},
64542parse: function parse(input) {
64543 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
64544 var args = lstack.slice.call(arguments, 1);
64545 var lexer = Object.create(this.lexer);
64546 var sharedState = { yy: {} };
64547 for (var k in this.yy) {
64548 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
64549 sharedState.yy[k] = this.yy[k];
64550 }
64551 }
64552 lexer.setInput(input, sharedState.yy);
64553 sharedState.yy.lexer = lexer;
64554 sharedState.yy.parser = this;
64555 if (typeof lexer.yylloc == 'undefined') {
64556 lexer.yylloc = {};
64557 }
64558 var yyloc = lexer.yylloc;
64559 lstack.push(yyloc);
64560 var ranges = lexer.options && lexer.options.ranges;
64561 if (typeof sharedState.yy.parseError === 'function') {
64562 this.parseError = sharedState.yy.parseError;
64563 } else {
64564 this.parseError = Object.getPrototypeOf(this).parseError;
64565 }
64566 function popStack(n) {
64567 stack.length = stack.length - 2 * n;
64568 vstack.length = vstack.length - n;
64569 lstack.length = lstack.length - n;
64570 }
64571 function lex() {
64572 var token;
64573 token = tstack.pop() || lexer.lex() || EOF;
64574 if (typeof token !== 'number') {
64575 if (token instanceof Array) {
64576 tstack = token;
64577 token = tstack.pop();
64578 }
64579 token = self.symbols_[token] || token;
64580 }
64581 return token;
64582 }
64583 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
64584 while (true) {
64585 state = stack[stack.length - 1];
64586 if (this.defaultActions[state]) {
64587 action = this.defaultActions[state];
64588 } else {
64589 if (symbol === null || typeof symbol == 'undefined') {
64590 symbol = lex();
64591 }
64592 action = table[state] && table[state][symbol];
64593 }
64594 if (typeof action === 'undefined' || !action.length || !action[0]) {
64595 var errStr = '';
64596 expected = [];
64597 for (p in table[state]) {
64598 if (this.terminals_[p] && p > TERROR) {
64599 expected.push('\'' + this.terminals_[p] + '\'');
64600 }
64601 }
64602 if (lexer.showPosition) {
64603 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
64604 } else {
64605 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
64606 }
64607 this.parseError(errStr, {
64608 text: lexer.match,
64609 token: this.terminals_[symbol] || symbol,
64610 line: lexer.yylineno,
64611 loc: yyloc,
64612 expected: expected
64613 });
64614 }
64615 if (action[0] instanceof Array && action.length > 1) {
64616 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
64617 }
64618 switch (action[0]) {
64619 case 1:
64620 stack.push(symbol);
64621 vstack.push(lexer.yytext);
64622 lstack.push(lexer.yylloc);
64623 stack.push(action[1]);
64624 symbol = null;
64625 if (!preErrorSymbol) {
64626 yyleng = lexer.yyleng;
64627 yytext = lexer.yytext;
64628 yylineno = lexer.yylineno;
64629 yyloc = lexer.yylloc;
64630 if (recovering > 0) {
64631 recovering--;
64632 }
64633 } else {
64634 symbol = preErrorSymbol;
64635 preErrorSymbol = null;
64636 }
64637 break;
64638 case 2:
64639 len = this.productions_[action[1]][1];
64640 yyval.$ = vstack[vstack.length - len];
64641 yyval._$ = {
64642 first_line: lstack[lstack.length - (len || 1)].first_line,
64643 last_line: lstack[lstack.length - 1].last_line,
64644 first_column: lstack[lstack.length - (len || 1)].first_column,
64645 last_column: lstack[lstack.length - 1].last_column
64646 };
64647 if (ranges) {
64648 yyval._$.range = [
64649 lstack[lstack.length - (len || 1)].range[0],
64650 lstack[lstack.length - 1].range[1]
64651 ];
64652 }
64653 r = this.performAction.apply(yyval, [
64654 yytext,
64655 yyleng,
64656 yylineno,
64657 sharedState.yy,
64658 action[1],
64659 vstack,
64660 lstack
64661 ].concat(args));
64662 if (typeof r !== 'undefined') {
64663 return r;
64664 }
64665 if (len) {
64666 stack = stack.slice(0, -1 * len * 2);
64667 vstack = vstack.slice(0, -1 * len);
64668 lstack = lstack.slice(0, -1 * len);
64669 }
64670 stack.push(this.productions_[action[1]][0]);
64671 vstack.push(yyval.$);
64672 lstack.push(yyval._$);
64673 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
64674 stack.push(newState);
64675 break;
64676 case 3:
64677 return true;
64678 }
64679 }
64680 return true;
64681}};
64682
64683/* generated by jison-lex 0.3.4 */
64684var lexer = (function(){
64685var lexer = ({
64686
64687EOF:1,
64688
64689parseError:function parseError(str, hash) {
64690 if (this.yy.parser) {
64691 this.yy.parser.parseError(str, hash);
64692 } else {
64693 throw new Error(str);
64694 }
64695 },
64696
64697// resets the lexer, sets new input
64698setInput:function (input, yy) {
64699 this.yy = yy || this.yy || {};
64700 this._input = input;
64701 this._more = this._backtrack = this.done = false;
64702 this.yylineno = this.yyleng = 0;
64703 this.yytext = this.matched = this.match = '';
64704 this.conditionStack = ['INITIAL'];
64705 this.yylloc = {
64706 first_line: 1,
64707 first_column: 0,
64708 last_line: 1,
64709 last_column: 0
64710 };
64711 if (this.options.ranges) {
64712 this.yylloc.range = [0,0];
64713 }
64714 this.offset = 0;
64715 return this;
64716 },
64717
64718// consumes and returns one char from the input
64719input:function () {
64720 var ch = this._input[0];
64721 this.yytext += ch;
64722 this.yyleng++;
64723 this.offset++;
64724 this.match += ch;
64725 this.matched += ch;
64726 var lines = ch.match(/(?:\r\n?|\n).*/g);
64727 if (lines) {
64728 this.yylineno++;
64729 this.yylloc.last_line++;
64730 } else {
64731 this.yylloc.last_column++;
64732 }
64733 if (this.options.ranges) {
64734 this.yylloc.range[1]++;
64735 }
64736
64737 this._input = this._input.slice(1);
64738 return ch;
64739 },
64740
64741// unshifts one char (or a string) into the input
64742unput:function (ch) {
64743 var len = ch.length;
64744 var lines = ch.split(/(?:\r\n?|\n)/g);
64745
64746 this._input = ch + this._input;
64747 this.yytext = this.yytext.substr(0, this.yytext.length - len);
64748 //this.yyleng -= len;
64749 this.offset -= len;
64750 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
64751 this.match = this.match.substr(0, this.match.length - 1);
64752 this.matched = this.matched.substr(0, this.matched.length - 1);
64753
64754 if (lines.length - 1) {
64755 this.yylineno -= lines.length - 1;
64756 }
64757 var r = this.yylloc.range;
64758
64759 this.yylloc = {
64760 first_line: this.yylloc.first_line,
64761 last_line: this.yylineno + 1,
64762 first_column: this.yylloc.first_column,
64763 last_column: lines ?
64764 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
64765 + oldLines[oldLines.length - lines.length].length - lines[0].length :
64766 this.yylloc.first_column - len
64767 };
64768
64769 if (this.options.ranges) {
64770 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
64771 }
64772 this.yyleng = this.yytext.length;
64773 return this;
64774 },
64775
64776// When called from action, caches matched text and appends it on next action
64777more:function () {
64778 this._more = true;
64779 return this;
64780 },
64781
64782// 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.
64783reject:function () {
64784 if (this.options.backtrack_lexer) {
64785 this._backtrack = true;
64786 } else {
64787 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(), {
64788 text: "",
64789 token: null,
64790 line: this.yylineno
64791 });
64792
64793 }
64794 return this;
64795 },
64796
64797// retain first n characters of the match
64798less:function (n) {
64799 this.unput(this.match.slice(n));
64800 },
64801
64802// displays already matched input, i.e. for error messages
64803pastInput:function () {
64804 var past = this.matched.substr(0, this.matched.length - this.match.length);
64805 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
64806 },
64807
64808// displays upcoming input, i.e. for error messages
64809upcomingInput:function () {
64810 var next = this.match;
64811 if (next.length < 20) {
64812 next += this._input.substr(0, 20-next.length);
64813 }
64814 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
64815 },
64816
64817// displays the character position where the lexing error occurred, i.e. for error messages
64818showPosition:function () {
64819 var pre = this.pastInput();
64820 var c = new Array(pre.length + 1).join("-");
64821 return pre + this.upcomingInput() + "\n" + c + "^";
64822 },
64823
64824// test the lexed token: return FALSE when not a match, otherwise return token
64825test_match:function(match, indexed_rule) {
64826 var token,
64827 lines,
64828 backup;
64829
64830 if (this.options.backtrack_lexer) {
64831 // save context
64832 backup = {
64833 yylineno: this.yylineno,
64834 yylloc: {
64835 first_line: this.yylloc.first_line,
64836 last_line: this.last_line,
64837 first_column: this.yylloc.first_column,
64838 last_column: this.yylloc.last_column
64839 },
64840 yytext: this.yytext,
64841 match: this.match,
64842 matches: this.matches,
64843 matched: this.matched,
64844 yyleng: this.yyleng,
64845 offset: this.offset,
64846 _more: this._more,
64847 _input: this._input,
64848 yy: this.yy,
64849 conditionStack: this.conditionStack.slice(0),
64850 done: this.done
64851 };
64852 if (this.options.ranges) {
64853 backup.yylloc.range = this.yylloc.range.slice(0);
64854 }
64855 }
64856
64857 lines = match[0].match(/(?:\r\n?|\n).*/g);
64858 if (lines) {
64859 this.yylineno += lines.length;
64860 }
64861 this.yylloc = {
64862 first_line: this.yylloc.last_line,
64863 last_line: this.yylineno + 1,
64864 first_column: this.yylloc.last_column,
64865 last_column: lines ?
64866 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
64867 this.yylloc.last_column + match[0].length
64868 };
64869 this.yytext += match[0];
64870 this.match += match[0];
64871 this.matches = match;
64872 this.yyleng = this.yytext.length;
64873 if (this.options.ranges) {
64874 this.yylloc.range = [this.offset, this.offset += this.yyleng];
64875 }
64876 this._more = false;
64877 this._backtrack = false;
64878 this._input = this._input.slice(match[0].length);
64879 this.matched += match[0];
64880 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
64881 if (this.done && this._input) {
64882 this.done = false;
64883 }
64884 if (token) {
64885 return token;
64886 } else if (this._backtrack) {
64887 // recover context
64888 for (var k in backup) {
64889 this[k] = backup[k];
64890 }
64891 return false; // rule action called reject() implying the next rule should be tested instead.
64892 }
64893 return false;
64894 },
64895
64896// return next match in input
64897next:function () {
64898 if (this.done) {
64899 return this.EOF;
64900 }
64901 if (!this._input) {
64902 this.done = true;
64903 }
64904
64905 var token,
64906 match,
64907 tempMatch,
64908 index;
64909 if (!this._more) {
64910 this.yytext = '';
64911 this.match = '';
64912 }
64913 var rules = this._currentRules();
64914 for (var i = 0; i < rules.length; i++) {
64915 tempMatch = this._input.match(this.rules[rules[i]]);
64916 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
64917 match = tempMatch;
64918 index = i;
64919 if (this.options.backtrack_lexer) {
64920 token = this.test_match(tempMatch, rules[i]);
64921 if (token !== false) {
64922 return token;
64923 } else if (this._backtrack) {
64924 match = false;
64925 continue; // rule action called reject() implying a rule MISmatch.
64926 } else {
64927 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
64928 return false;
64929 }
64930 } else if (!this.options.flex) {
64931 break;
64932 }
64933 }
64934 }
64935 if (match) {
64936 token = this.test_match(match, rules[index]);
64937 if (token !== false) {
64938 return token;
64939 }
64940 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
64941 return false;
64942 }
64943 if (this._input === "") {
64944 return this.EOF;
64945 } else {
64946 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
64947 text: "",
64948 token: null,
64949 line: this.yylineno
64950 });
64951 }
64952 },
64953
64954// return next match that has a token
64955lex:function lex () {
64956 var r = this.next();
64957 if (r) {
64958 return r;
64959 } else {
64960 return this.lex();
64961 }
64962 },
64963
64964// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
64965begin:function begin (condition) {
64966 this.conditionStack.push(condition);
64967 },
64968
64969// pop the previously active lexer condition state off the condition stack
64970popState:function popState () {
64971 var n = this.conditionStack.length - 1;
64972 if (n > 0) {
64973 return this.conditionStack.pop();
64974 } else {
64975 return this.conditionStack[0];
64976 }
64977 },
64978
64979// produce the lexer rule set which is active for the currently active lexer condition state
64980_currentRules:function _currentRules () {
64981 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
64982 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
64983 } else {
64984 return this.conditions["INITIAL"].rules;
64985 }
64986 },
64987
64988// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
64989topState:function topState (n) {
64990 n = this.conditionStack.length - 1 - Math.abs(n || 0);
64991 if (n >= 0) {
64992 return this.conditionStack[n];
64993 } else {
64994 return "INITIAL";
64995 }
64996 },
64997
64998// alias for begin(condition)
64999pushState:function pushState (condition) {
65000 this.begin(condition);
65001 },
65002
65003// return the number of states currently on the stack
65004stateStackSize:function stateStackSize() {
65005 return this.conditionStack.length;
65006 },
65007options: {"case-insensitive":true},
65008performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
65009var YYSTATE=YY_START;
65010switch($avoiding_name_collisions) {
65011case 0: this.begin('open_directive'); return 56;
65012break;
65013case 1: this.begin('type_directive'); return 57;
65014break;
65015case 2: this.popState(); this.begin('arg_directive'); return 14;
65016break;
65017case 3: this.popState(); this.popState(); return 59;
65018break;
65019case 4:return 58;
65020break;
65021case 5:return 5;
65022break;
65023case 6:/* skip all whitespace */
65024break;
65025case 7:/* skip same-line whitespace */
65026break;
65027case 8:/* skip comments */
65028break;
65029case 9:/* skip comments */
65030break;
65031case 10:/* skip comments */
65032break;
65033case 11: this.begin('ID'); return 16;
65034break;
65035case 12: yy_.yytext = yy_.yytext.trim(); this.begin('ALIAS'); return 48;
65036break;
65037case 13: this.popState(); this.popState(); this.begin('LINE'); return 18;
65038break;
65039case 14: this.popState(); this.popState(); return 5;
65040break;
65041case 15: this.begin('LINE'); return 27;
65042break;
65043case 16: this.begin('LINE'); return 29;
65044break;
65045case 17: this.begin('LINE'); return 30;
65046break;
65047case 18: this.begin('LINE'); return 31;
65048break;
65049case 19: this.begin('LINE'); return 36;
65050break;
65051case 20: this.begin('LINE'); return 33;
65052break;
65053case 21: this.begin('LINE'); return 35;
65054break;
65055case 22: this.popState(); return 19;
65056break;
65057case 23:return 28;
65058break;
65059case 24:return 43;
65060break;
65061case 25:return 44;
65062break;
65063case 26:return 39;
65064break;
65065case 27:return 37;
65066break;
65067case 28: this.begin('ID'); return 22;
65068break;
65069case 29: this.begin('ID'); return 23;
65070break;
65071case 30:return 25;
65072break;
65073case 31:return 7;
65074break;
65075case 32:return 21;
65076break;
65077case 33:return 42;
65078break;
65079case 34:return 5;
65080break;
65081case 35: yy_.yytext = yy_.yytext.trim(); return 48;
65082break;
65083case 36:return 51;
65084break;
65085case 37:return 52;
65086break;
65087case 38:return 49;
65088break;
65089case 39:return 50;
65090break;
65091case 40:return 53;
65092break;
65093case 41:return 54;
65094break;
65095case 42:return 55;
65096break;
65097case 43:return 46;
65098break;
65099case 44:return 47;
65100break;
65101case 45:return 5;
65102break;
65103case 46:return 'INVALID';
65104break;
65105}
65106},
65107rules: [/^(?:%%\{)/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],
65108conditions: {"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}}
65109});
65110return lexer;
65111})();
65112parser.lexer = lexer;
65113function Parser () {
65114 this.yy = {};
65115}
65116Parser.prototype = parser;parser.Parser = Parser;
65117return new Parser;
65118})();
65119
65120
65121if (true) {
65122exports.parser = parser;
65123exports.Parser = parser.Parser;
65124exports.parse = function () { return parser.parse.apply(parser, arguments); };
65125exports.main = function commonjsMain (args) {
65126 if (!args[1]) {
65127 console.log('Usage: '+args[0]+' FILE');
65128 process.exit(1);
65129 }
65130 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");
65131 return exports.parser.parse(source);
65132};
65133if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
65134 exports.main(process.argv.slice(1));
65135}
65136}
65137/* 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)))
65138
65139/***/ }),
65140
65141/***/ "./src/diagrams/sequence/sequenceDb.js":
65142/*!*********************************************!*\
65143 !*** ./src/diagrams/sequence/sequenceDb.js ***!
65144 \*********************************************/
65145/*! 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 */
65146/***/ (function(module, __webpack_exports__, __webpack_require__) {
65147
65148"use strict";
65149__webpack_require__.r(__webpack_exports__);
65150/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDirective", function() { return parseDirective; });
65151/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addActor", function() { return addActor; });
65152/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addMessage", function() { return addMessage; });
65153/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSignal", function() { return addSignal; });
65154/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMessages", function() { return getMessages; });
65155/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getActors", function() { return getActors; });
65156/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getActor", function() { return getActor; });
65157/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getActorKeys", function() { return getActorKeys; });
65158/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTitle", function() { return getTitle; });
65159/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTitleWrapped", function() { return getTitleWrapped; });
65160/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "enableSequenceNumbers", function() { return enableSequenceNumbers; });
65161/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showSequenceNumbers", function() { return showSequenceNumbers; });
65162/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setWrap", function() { return setWrap; });
65163/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "autoWrap", function() { return autoWrap; });
65164/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
65165/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseMessage", function() { return parseMessage; });
65166/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LINETYPE", function() { return LINETYPE; });
65167/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ARROWTYPE", function() { return ARROWTYPE; });
65168/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PLACEMENT", function() { return PLACEMENT; });
65169/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addNote", function() { return addNote; });
65170/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTitle", function() { return setTitle; });
65171/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "apply", function() { return apply; });
65172/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
65173/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ "./src/config.js");
65174/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
65175/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
65176
65177
65178
65179
65180var prevActor = undefined;
65181var actors = {};
65182var messages = [];
65183var notes = [];
65184var title = '';
65185var titleWrapped = false;
65186var sequenceNumbersEnabled = false;
65187var wrapEnabled = false;
65188var parseDirective = function parseDirective(statement, context, type) {
65189 _mermaidAPI__WEBPACK_IMPORTED_MODULE_0__["default"].parseDirective(this, statement, context, type);
65190};
65191var addActor = function addActor(id, name, description) {
65192 // Don't allow description nulling
65193 var old = actors[id];
65194 if (old && name === old.name && description == null) return; // Don't allow null descriptions, either
65195
65196 if (description == null || description.text == null) {
65197 description = {
65198 text: name,
65199 wrap: null
65200 };
65201 }
65202
65203 actors[id] = {
65204 name: name,
65205 description: description.text,
65206 wrap: description.wrap === undefined && autoWrap() || !!description.wrap,
65207 prevActor: prevActor
65208 };
65209
65210 if (prevActor && actors[prevActor]) {
65211 actors[prevActor].nextActor = id;
65212 }
65213
65214 prevActor = id;
65215};
65216
65217var activationCount = function activationCount(part) {
65218 var i;
65219 var count = 0;
65220
65221 for (i = 0; i < messages.length; i++) {
65222 // console.warn(i, messages[i]);
65223 if (messages[i].type === LINETYPE.ACTIVE_START) {
65224 if (messages[i].from.actor === part) {
65225 count++;
65226 }
65227 }
65228
65229 if (messages[i].type === LINETYPE.ACTIVE_END) {
65230 if (messages[i].from.actor === part) {
65231 count--;
65232 }
65233 }
65234 }
65235
65236 return count;
65237};
65238
65239var addMessage = function addMessage(idFrom, idTo, message, answer) {
65240 messages.push({
65241 from: idFrom,
65242 to: idTo,
65243 message: message.text,
65244 wrap: message.wrap === undefined && autoWrap() || !!message.wrap,
65245 answer: answer
65246 });
65247};
65248var addSignal = function addSignal(idFrom, idTo) {
65249 var message = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
65250 text: undefined,
65251 wrap: undefined
65252 };
65253 var messageType = arguments.length > 3 ? arguments[3] : undefined;
65254
65255 if (messageType === LINETYPE.ACTIVE_END) {
65256 var cnt = activationCount(idFrom.actor);
65257
65258 if (cnt < 1) {
65259 // Bail out as there is an activation signal from an inactive participant
65260 var error = new Error('Trying to inactivate an inactive participant (' + idFrom.actor + ')');
65261 error.hash = {
65262 text: '->>-',
65263 token: '->>-',
65264 line: '1',
65265 loc: {
65266 first_line: 1,
65267 last_line: 1,
65268 first_column: 1,
65269 last_column: 1
65270 },
65271 expected: ["'ACTIVE_PARTICIPANT'"]
65272 };
65273 throw error;
65274 }
65275 }
65276
65277 messages.push({
65278 from: idFrom,
65279 to: idTo,
65280 message: message.text,
65281 wrap: message.wrap === undefined && autoWrap() || !!message.wrap,
65282 type: messageType
65283 });
65284 return true;
65285};
65286var getMessages = function getMessages() {
65287 return messages;
65288};
65289var getActors = function getActors() {
65290 return actors;
65291};
65292var getActor = function getActor(id) {
65293 return actors[id];
65294};
65295var getActorKeys = function getActorKeys() {
65296 return Object.keys(actors);
65297};
65298var getTitle = function getTitle() {
65299 return title;
65300};
65301var getTitleWrapped = function getTitleWrapped() {
65302 return titleWrapped;
65303};
65304var enableSequenceNumbers = function enableSequenceNumbers() {
65305 sequenceNumbersEnabled = true;
65306};
65307var showSequenceNumbers = function showSequenceNumbers() {
65308 return sequenceNumbersEnabled;
65309};
65310var setWrap = function setWrap(wrapSetting) {
65311 wrapEnabled = wrapSetting;
65312};
65313var autoWrap = function autoWrap() {
65314 return wrapEnabled;
65315};
65316var clear = function clear() {
65317 actors = {};
65318 messages = [];
65319};
65320var parseMessage = function parseMessage(str) {
65321 var _str = str.trim();
65322
65323 var message = {
65324 text: _str.replace(/^[:]?(?:no)?wrap:/, '').trim(),
65325 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
65326 };
65327 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('parseMessage:', message);
65328 return message;
65329};
65330var LINETYPE = {
65331 SOLID: 0,
65332 DOTTED: 1,
65333 NOTE: 2,
65334 SOLID_CROSS: 3,
65335 DOTTED_CROSS: 4,
65336 SOLID_OPEN: 5,
65337 DOTTED_OPEN: 6,
65338 LOOP_START: 10,
65339 LOOP_END: 11,
65340 ALT_START: 12,
65341 ALT_ELSE: 13,
65342 ALT_END: 14,
65343 OPT_START: 15,
65344 OPT_END: 16,
65345 ACTIVE_START: 17,
65346 ACTIVE_END: 18,
65347 PAR_START: 19,
65348 PAR_AND: 20,
65349 PAR_END: 21,
65350 RECT_START: 22,
65351 RECT_END: 23
65352};
65353var ARROWTYPE = {
65354 FILLED: 0,
65355 OPEN: 1
65356};
65357var PLACEMENT = {
65358 LEFTOF: 0,
65359 RIGHTOF: 1,
65360 OVER: 2
65361};
65362var addNote = function addNote(actor, placement, message) {
65363 var note = {
65364 actor: actor,
65365 placement: placement,
65366 message: message.text,
65367 wrap: message.wrap === undefined && autoWrap() || !!message.wrap
65368 }; // Coerce actor into a [to, from, ...] array
65369
65370 var actors = [].concat(actor, actor);
65371 notes.push(note);
65372 messages.push({
65373 from: actors[0],
65374 to: actors[1],
65375 message: message.text,
65376 wrap: message.wrap === undefined && autoWrap() || !!message.wrap,
65377 type: LINETYPE.NOTE,
65378 placement: placement
65379 });
65380};
65381var setTitle = function setTitle(titleWrap) {
65382 title = titleWrap.text;
65383 titleWrapped = titleWrap.wrap === undefined && autoWrap() || !!titleWrap.wrap;
65384};
65385var apply = function apply(param) {
65386 if (param instanceof Array) {
65387 param.forEach(function (item) {
65388 apply(item);
65389 });
65390 } else {
65391 switch (param.type) {
65392 case 'addActor':
65393 addActor(param.actor, param.actor, param.description);
65394 break;
65395
65396 case 'activeStart':
65397 addSignal(param.actor, undefined, undefined, param.signalType);
65398 break;
65399
65400 case 'activeEnd':
65401 addSignal(param.actor, undefined, undefined, param.signalType);
65402 break;
65403
65404 case 'addNote':
65405 addNote(param.actor, param.placement, param.text);
65406 break;
65407
65408 case 'addMessage':
65409 addSignal(param.from, param.to, param.msg, param.signalType);
65410 break;
65411
65412 case 'loopStart':
65413 addSignal(undefined, undefined, param.loopText, param.signalType);
65414 break;
65415
65416 case 'loopEnd':
65417 addSignal(undefined, undefined, undefined, param.signalType);
65418 break;
65419
65420 case 'rectStart':
65421 addSignal(undefined, undefined, param.color, param.signalType);
65422 break;
65423
65424 case 'rectEnd':
65425 addSignal(undefined, undefined, undefined, param.signalType);
65426 break;
65427
65428 case 'optStart':
65429 addSignal(undefined, undefined, param.optText, param.signalType);
65430 break;
65431
65432 case 'optEnd':
65433 addSignal(undefined, undefined, undefined, param.signalType);
65434 break;
65435
65436 case 'altStart':
65437 addSignal(undefined, undefined, param.altText, param.signalType);
65438 break;
65439
65440 case 'else':
65441 addSignal(undefined, undefined, param.altText, param.signalType);
65442 break;
65443
65444 case 'altEnd':
65445 addSignal(undefined, undefined, undefined, param.signalType);
65446 break;
65447
65448 case 'setTitle':
65449 setTitle(param.text);
65450 break;
65451
65452 case 'parStart':
65453 addSignal(undefined, undefined, param.parText, param.signalType);
65454 break;
65455
65456 case 'and':
65457 addSignal(undefined, undefined, param.parText, param.signalType);
65458 break;
65459
65460 case 'parEnd':
65461 addSignal(undefined, undefined, undefined, param.signalType);
65462 break;
65463 }
65464 }
65465};
65466/* harmony default export */ __webpack_exports__["default"] = ({
65467 addActor: addActor,
65468 addMessage: addMessage,
65469 addSignal: addSignal,
65470 autoWrap: autoWrap,
65471 setWrap: setWrap,
65472 enableSequenceNumbers: enableSequenceNumbers,
65473 showSequenceNumbers: showSequenceNumbers,
65474 getMessages: getMessages,
65475 getActors: getActors,
65476 getActor: getActor,
65477 getActorKeys: getActorKeys,
65478 getTitle: getTitle,
65479 parseDirective: parseDirective,
65480 getConfig: function getConfig() {
65481 return _config__WEBPACK_IMPORTED_MODULE_1__["getConfig"]().sequence;
65482 },
65483 getTitleWrapped: getTitleWrapped,
65484 clear: clear,
65485 parseMessage: parseMessage,
65486 LINETYPE: LINETYPE,
65487 ARROWTYPE: ARROWTYPE,
65488 PLACEMENT: PLACEMENT,
65489 addNote: addNote,
65490 setTitle: setTitle,
65491 apply: apply
65492});
65493
65494/***/ }),
65495
65496/***/ "./src/diagrams/sequence/sequenceRenderer.js":
65497/*!***************************************************!*\
65498 !*** ./src/diagrams/sequence/sequenceRenderer.js ***!
65499 \***************************************************/
65500/*! exports provided: bounds, drawActors, setConf, draw, default */
65501/***/ (function(module, __webpack_exports__, __webpack_require__) {
65502
65503"use strict";
65504__webpack_require__.r(__webpack_exports__);
65505/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bounds", function() { return bounds; });
65506/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawActors", function() { return drawActors; });
65507/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
65508/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
65509/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
65510/* harmony import */ var _svgDraw__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./svgDraw */ "./src/diagrams/sequence/svgDraw.js");
65511/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
65512/* harmony import */ var _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parser/sequenceDiagram */ "./src/diagrams/sequence/parser/sequenceDiagram.jison");
65513/* harmony import */ var _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__);
65514/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
65515/* harmony import */ var _sequenceDb__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./sequenceDb */ "./src/diagrams/sequence/sequenceDb.js");
65516/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../config */ "./src/config.js");
65517/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
65518
65519
65520
65521
65522
65523
65524
65525
65526_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy = _sequenceDb__WEBPACK_IMPORTED_MODULE_5__["default"];
65527var conf = {};
65528var bounds = {
65529 data: {
65530 startx: undefined,
65531 stopx: undefined,
65532 starty: undefined,
65533 stopy: undefined
65534 },
65535 verticalPos: 0,
65536 sequenceItems: [],
65537 activations: [],
65538 models: {
65539 getHeight: function getHeight() {
65540 return Math.max.apply(null, this.actors.length === 0 ? [0] : this.actors.map(function (actor) {
65541 return actor.height || 0;
65542 })) + (this.loops.length === 0 ? 0 : this.loops.map(function (it) {
65543 return it.height || 0;
65544 }).reduce(function (acc, h) {
65545 return acc + h;
65546 })) + (this.messages.length === 0 ? 0 : this.messages.map(function (it) {
65547 return it.height || 0;
65548 }).reduce(function (acc, h) {
65549 return acc + h;
65550 })) + (this.notes.length === 0 ? 0 : this.notes.map(function (it) {
65551 return it.height || 0;
65552 }).reduce(function (acc, h) {
65553 return acc + h;
65554 }));
65555 },
65556 clear: function clear() {
65557 this.actors = [];
65558 this.loops = [];
65559 this.messages = [];
65560 this.notes = [];
65561 },
65562 addActor: function addActor(actorModel) {
65563 this.actors.push(actorModel);
65564 },
65565 addLoop: function addLoop(loopModel) {
65566 this.loops.push(loopModel);
65567 },
65568 addMessage: function addMessage(msgModel) {
65569 this.messages.push(msgModel);
65570 },
65571 addNote: function addNote(noteModel) {
65572 this.notes.push(noteModel);
65573 },
65574 lastActor: function lastActor() {
65575 return this.actors[this.actors.length - 1];
65576 },
65577 lastLoop: function lastLoop() {
65578 return this.loops[this.loops.length - 1];
65579 },
65580 lastMessage: function lastMessage() {
65581 return this.messages[this.messages.length - 1];
65582 },
65583 lastNote: function lastNote() {
65584 return this.notes[this.notes.length - 1];
65585 },
65586 actors: [],
65587 loops: [],
65588 messages: [],
65589 notes: []
65590 },
65591 init: function init() {
65592 this.sequenceItems = [];
65593 this.activations = [];
65594 this.models.clear();
65595 this.data = {
65596 startx: undefined,
65597 stopx: undefined,
65598 starty: undefined,
65599 stopy: undefined
65600 };
65601 this.verticalPos = 0;
65602 setConf(_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getConfig());
65603 },
65604 updateVal: function updateVal(obj, key, val, fun) {
65605 if (typeof obj[key] === 'undefined') {
65606 obj[key] = val;
65607 } else {
65608 obj[key] = fun(val, obj[key]);
65609 }
65610 },
65611 updateBounds: function updateBounds(startx, starty, stopx, stopy) {
65612 var _self = this;
65613
65614 var cnt = 0;
65615
65616 function updateFn(type) {
65617 return function updateItemBounds(item) {
65618 cnt++; // The loop sequenceItems is a stack so the biggest margins in the beginning of the sequenceItems
65619
65620 var n = _self.sequenceItems.length - cnt + 1;
65621
65622 _self.updateVal(item, 'starty', starty - n * conf.boxMargin, Math.min);
65623
65624 _self.updateVal(item, 'stopy', stopy + n * conf.boxMargin, Math.max);
65625
65626 _self.updateVal(bounds.data, 'startx', startx - n * conf.boxMargin, Math.min);
65627
65628 _self.updateVal(bounds.data, 'stopx', stopx + n * conf.boxMargin, Math.max);
65629
65630 if (!(type === 'activation')) {
65631 _self.updateVal(item, 'startx', startx - n * conf.boxMargin, Math.min);
65632
65633 _self.updateVal(item, 'stopx', stopx + n * conf.boxMargin, Math.max);
65634
65635 _self.updateVal(bounds.data, 'starty', starty - n * conf.boxMargin, Math.min);
65636
65637 _self.updateVal(bounds.data, 'stopy', stopy + n * conf.boxMargin, Math.max);
65638 }
65639 };
65640 }
65641
65642 this.sequenceItems.forEach(updateFn());
65643 this.activations.forEach(updateFn('activation'));
65644 },
65645 insert: function insert(startx, starty, stopx, stopy) {
65646 var _startx = Math.min(startx, stopx);
65647
65648 var _stopx = Math.max(startx, stopx);
65649
65650 var _starty = Math.min(starty, stopy);
65651
65652 var _stopy = Math.max(starty, stopy);
65653
65654 this.updateVal(bounds.data, 'startx', _startx, Math.min);
65655 this.updateVal(bounds.data, 'starty', _starty, Math.min);
65656 this.updateVal(bounds.data, 'stopx', _stopx, Math.max);
65657 this.updateVal(bounds.data, 'stopy', _stopy, Math.max);
65658 this.updateBounds(_startx, _starty, _stopx, _stopy);
65659 },
65660 newActivation: function newActivation(message, diagram, actors) {
65661 var actorRect = actors[message.from.actor];
65662 var stackedSize = actorActivations(message.from.actor).length || 0;
65663 var x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;
65664 this.activations.push({
65665 startx: x,
65666 starty: this.verticalPos + 2,
65667 stopx: x + conf.activationWidth,
65668 stopy: undefined,
65669 actor: message.from.actor,
65670 anchored: _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].anchorElement(diagram)
65671 });
65672 },
65673 endActivation: function endActivation(message) {
65674 // find most recent activation for given actor
65675 var lastActorActivationIdx = this.activations.map(function (activation) {
65676 return activation.actor;
65677 }).lastIndexOf(message.from.actor);
65678 return this.activations.splice(lastActorActivationIdx, 1)[0];
65679 },
65680 createLoop: function createLoop() {
65681 var title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
65682 message: undefined,
65683 wrap: false,
65684 width: undefined
65685 };
65686 var fill = arguments.length > 1 ? arguments[1] : undefined;
65687 return {
65688 startx: undefined,
65689 starty: this.verticalPos,
65690 stopx: undefined,
65691 stopy: undefined,
65692 title: title.message,
65693 wrap: title.wrap,
65694 width: title.width,
65695 height: 0,
65696 fill: fill
65697 };
65698 },
65699 newLoop: function newLoop() {
65700 var title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
65701 message: undefined,
65702 wrap: false,
65703 width: undefined
65704 };
65705 var fill = arguments.length > 1 ? arguments[1] : undefined;
65706 this.sequenceItems.push(this.createLoop(title, fill));
65707 },
65708 endLoop: function endLoop() {
65709 return this.sequenceItems.pop();
65710 },
65711 addSectionToLoop: function addSectionToLoop(message) {
65712 var loop = this.sequenceItems.pop();
65713 loop.sections = loop.sections || [];
65714 loop.sectionTitles = loop.sectionTitles || [];
65715 loop.sections.push({
65716 y: bounds.getVerticalPos(),
65717 height: 0
65718 });
65719 loop.sectionTitles.push(message);
65720 this.sequenceItems.push(loop);
65721 },
65722 bumpVerticalPos: function bumpVerticalPos(bump) {
65723 this.verticalPos = this.verticalPos + bump;
65724 this.data.stopy = this.verticalPos;
65725 },
65726 getVerticalPos: function getVerticalPos() {
65727 return this.verticalPos;
65728 },
65729 getBounds: function getBounds() {
65730 console.log('here', this.data);
65731 return {
65732 bounds: this.data,
65733 models: this.models
65734 };
65735 }
65736};
65737/**
65738 * Draws an note in the diagram with the attached line
65739 * @param elem - The diagram to draw to.
65740 * @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.
65741 */
65742
65743var drawNote = function drawNote(elem, noteModel) {
65744 bounds.bumpVerticalPos(conf.boxMargin);
65745 noteModel.height = conf.boxMargin;
65746 noteModel.starty = bounds.getVerticalPos();
65747 var rect = _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].getNoteRect();
65748 rect.x = noteModel.startx;
65749 rect.y = noteModel.starty;
65750 rect.width = noteModel.width || conf.width;
65751 rect.class = 'note';
65752 var g = elem.append('g');
65753 var rectElem = _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawRect(g, rect);
65754 var textObj = _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].getTextObj();
65755 textObj.x = noteModel.startx;
65756 textObj.y = noteModel.starty;
65757 textObj.width = rect.width;
65758 textObj.dy = '1em';
65759 textObj.text = noteModel.message;
65760 textObj.class = 'noteText';
65761 textObj.fontFamily = conf.noteFontFamily;
65762 textObj.fontSize = conf.noteFontSize;
65763 textObj.fontWeight = conf.noteFontWeight;
65764 textObj.anchor = conf.noteAlign;
65765 textObj.textMargin = conf.noteMargin;
65766 textObj.valign = conf.noteAlign;
65767 textObj.wrap = true;
65768 var textElem = Object(_svgDraw__WEBPACK_IMPORTED_MODULE_1__["drawText"])(g, textObj);
65769 var textHeight = Math.round(textElem.map(function (te) {
65770 return (te._groups || te)[0][0].getBBox().height;
65771 }).reduce(function (acc, curr) {
65772 return acc + curr;
65773 }));
65774 rectElem.attr('height', textHeight + 2 * conf.noteMargin);
65775 noteModel.height += textHeight + 2 * conf.noteMargin;
65776 bounds.bumpVerticalPos(textHeight + 2 * conf.noteMargin);
65777 noteModel.stopy = noteModel.starty + textHeight + 2 * conf.noteMargin;
65778 noteModel.stopx = noteModel.startx + rect.width;
65779 bounds.insert(noteModel.startx, noteModel.starty, noteModel.stopx, noteModel.stopy);
65780 bounds.models.addNote(noteModel);
65781};
65782
65783var messageFont = function messageFont(cnf) {
65784 return {
65785 fontFamily: cnf.messageFontFamily,
65786 fontSize: cnf.messageFontSize,
65787 fontWeight: cnf.messageFontWeight
65788 };
65789};
65790
65791var noteFont = function noteFont(cnf) {
65792 return {
65793 fontFamily: cnf.noteFontFamily,
65794 fontSize: cnf.noteFontSize,
65795 fontWeight: cnf.noteFontWeight
65796 };
65797};
65798
65799var actorFont = function actorFont(cnf) {
65800 return {
65801 fontFamily: cnf.actorFontFamily,
65802 fontSize: cnf.actorFontSize,
65803 fontWeight: cnf.actorFontWeight
65804 };
65805};
65806/**
65807 * Draws a message
65808 * @param g - the parent of the message element
65809 * @param msgModel - the model containing fields describing a message
65810 */
65811
65812
65813var drawMessage = function drawMessage(g, msgModel) {
65814 bounds.bumpVerticalPos(10);
65815 var startx = msgModel.startx,
65816 stopx = msgModel.stopx,
65817 starty = msgModel.starty,
65818 message = msgModel.message,
65819 type = msgModel.type,
65820 sequenceIndex = msgModel.sequenceIndex,
65821 wrap = msgModel.wrap;
65822 var lines = _common_common__WEBPACK_IMPORTED_MODULE_4__["default"].splitBreaks(message).length;
65823 var textDims = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].calculateTextDimensions(message, messageFont(conf));
65824 var lineHeight = textDims.height / lines;
65825 msgModel.height += lineHeight;
65826 bounds.bumpVerticalPos(lineHeight);
65827 var textObj = _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].getTextObj();
65828 textObj.x = startx;
65829 textObj.y = starty + 10;
65830 textObj.width = stopx - startx;
65831 textObj.class = 'messageText';
65832 textObj.dy = '1em';
65833 textObj.text = message;
65834 textObj.fontFamily = conf.messageFontFamily;
65835 textObj.fontSize = conf.messageFontSize;
65836 textObj.fontWeight = conf.messageFontWeight;
65837 textObj.anchor = conf.messageAlign;
65838 textObj.valign = conf.messageAlign;
65839 textObj.textMargin = conf.wrapPadding;
65840 textObj.tspan = false;
65841 textObj.wrap = wrap;
65842 Object(_svgDraw__WEBPACK_IMPORTED_MODULE_1__["drawText"])(g, textObj);
65843 var totalOffset = textDims.height - 10;
65844 var textWidth = textDims.width;
65845 var line, lineStarty;
65846
65847 if (startx === stopx) {
65848 lineStarty = bounds.getVerticalPos() + totalOffset;
65849
65850 if (conf.rightAngles) {
65851 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));
65852 } else {
65853 totalOffset += conf.boxMargin;
65854 lineStarty = bounds.getVerticalPos() + totalOffset;
65855 line = g.append('path').attr('d', 'M ' + startx + ',' + lineStarty + ' C ' + (startx + 60) + ',' + (lineStarty - 10) + ' ' + (startx + 60) + ',' + (lineStarty + 30) + ' ' + startx + ',' + (lineStarty + 20));
65856 }
65857
65858 totalOffset += 30;
65859 var dx = Math.max(textWidth / 2, conf.width / 2);
65860 bounds.insert(startx - dx, bounds.getVerticalPos() - 10 + totalOffset, stopx + dx, bounds.getVerticalPos() + 30 + totalOffset);
65861 } else {
65862 totalOffset += conf.boxMargin;
65863 lineStarty = bounds.getVerticalPos() + totalOffset;
65864 line = g.append('line');
65865 line.attr('x1', startx);
65866 line.attr('y1', lineStarty);
65867 line.attr('x2', stopx);
65868 line.attr('y2', lineStarty);
65869 bounds.insert(startx, lineStarty - 10, stopx, lineStarty);
65870 } // Make an SVG Container
65871 // Draw the line
65872
65873
65874 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) {
65875 line.style('stroke-dasharray', '3, 3');
65876 line.attr('class', 'messageLine1');
65877 } else {
65878 line.attr('class', 'messageLine0');
65879 }
65880
65881 var url = '';
65882
65883 if (conf.arrowMarkerAbsolute) {
65884 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
65885 url = url.replace(/\(/g, '\\(');
65886 url = url.replace(/\)/g, '\\)');
65887 }
65888
65889 line.attr('stroke-width', 2);
65890 line.attr('stroke', 'none'); // handled by theme/css anyway
65891
65892 line.style('fill', 'none'); // remove any fill colour
65893
65894 if (type === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.SOLID || type === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.DOTTED) {
65895 line.attr('marker-end', 'url(' + url + '#arrowhead)');
65896 }
65897
65898 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) {
65899 line.attr('marker-end', 'url(' + url + '#crosshead)');
65900 } // add node number
65901
65902
65903 if (_sequenceDb__WEBPACK_IMPORTED_MODULE_5__["default"].showSequenceNumbers() || conf.showSequenceNumbers) {
65904 line.attr('marker-start', 'url(' + url + '#sequencenumber)');
65905 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);
65906 }
65907
65908 bounds.bumpVerticalPos(totalOffset);
65909 msgModel.height += totalOffset;
65910 msgModel.stopy = msgModel.starty + msgModel.height;
65911 bounds.insert(msgModel.fromBounds, msgModel.starty, msgModel.toBounds, msgModel.stopy);
65912};
65913
65914var drawActors = function drawActors(diagram, actors, actorKeys, verticalPos) {
65915 // Draw the actors
65916 var prevWidth = 0;
65917 var prevMargin = 0;
65918
65919 for (var i = 0; i < actorKeys.length; i++) {
65920 var actor = actors[actorKeys[i]]; // Add some rendering data to the object
65921
65922 actor.width = actor.width || conf.width;
65923 actor.height = Math.max(actor.height || conf.height, conf.height);
65924 actor.margin = actor.margin || conf.actorMargin;
65925 actor.x = prevWidth + prevMargin;
65926 actor.y = verticalPos; // Draw the box with the attached line
65927
65928 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawActor(diagram, actor, conf);
65929 bounds.insert(actor.x, verticalPos, actor.x + actor.width, actor.height);
65930 prevWidth += actor.width;
65931 prevMargin += actor.margin;
65932 bounds.models.addActor(actor);
65933 } // Add a margin between the actor boxes and the first arrow
65934
65935
65936 bounds.bumpVerticalPos(conf.height);
65937};
65938var setConf = function setConf(cnf) {
65939 Object(_utils__WEBPACK_IMPORTED_MODULE_7__["assignWithDepth"])(conf, cnf);
65940
65941 if (cnf.fontFamily) {
65942 conf.actorFontFamily = conf.noteFontFamily = conf.messageFontFamily = cnf.fontFamily;
65943 }
65944
65945 if (cnf.fontSize) {
65946 conf.actorFontSize = conf.noteFontSize = conf.messageFontSize = cnf.fontSize;
65947 }
65948
65949 if (cnf.fontWeight) {
65950 conf.actorFontWeight = conf.noteFontWeight = conf.messageFontWeight = cnf.fontWeight;
65951 }
65952};
65953
65954var actorActivations = function actorActivations(actor) {
65955 return bounds.activations.filter(function (activation) {
65956 return activation.actor === actor;
65957 });
65958};
65959
65960var activationBounds = function activationBounds(actor, actors) {
65961 // handle multiple stacked activations for same actor
65962 var actorObj = actors[actor];
65963 var activations = actorActivations(actor);
65964 var left = activations.reduce(function (acc, activation) {
65965 return Math.min(acc, activation.startx);
65966 }, actorObj.x + actorObj.width / 2);
65967 var right = activations.reduce(function (acc, activation) {
65968 return Math.max(acc, activation.stopx);
65969 }, actorObj.x + actorObj.width / 2);
65970 return [left, right];
65971};
65972
65973function adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoopFn) {
65974 bounds.bumpVerticalPos(preMargin);
65975 var heightAdjust = postMargin;
65976
65977 if (msg.id && msg.message && loopWidths[msg.id]) {
65978 var loopWidth = loopWidths[msg.id].width;
65979 var textConf = messageFont(conf);
65980 msg.message = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].wrapLabel("[".concat(msg.message, "]"), loopWidth - 2 * conf.wrapPadding, textConf);
65981 msg.width = loopWidth;
65982 msg.wrap = true; // const lines = common.splitBreaks(msg.message).length;
65983
65984 var textDims = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].calculateTextDimensions(msg.message, textConf);
65985 var totalOffset = Math.max(textDims.height, conf.labelBoxHeight);
65986 heightAdjust = postMargin + totalOffset;
65987 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug("".concat(totalOffset, " - ").concat(msg.message));
65988 }
65989
65990 addLoopFn(msg);
65991 bounds.bumpVerticalPos(heightAdjust);
65992}
65993/**
65994 * Draws a sequenceDiagram in the tag with id: id based on the graph definition in text.
65995 * @param text
65996 * @param id
65997 */
65998
65999
66000var draw = function draw(text, id) {
66001 conf = _config__WEBPACK_IMPORTED_MODULE_6__["getConfig"]().sequence;
66002 console.log('there ', conf);
66003 _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.clear();
66004 _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.setWrap(conf.wrap);
66005 _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].parse(text + '\n');
66006 bounds.init();
66007 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug("C:".concat(JSON.stringify(conf, null, 2)));
66008 var diagram = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])("[id=\"".concat(id, "\"]")); // Fetch data from the parsing
66009
66010 var actors = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getActors();
66011 var actorKeys = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getActorKeys();
66012 var messages = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getMessages();
66013 var title = _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.getTitle();
66014 var maxMessageWidthPerActor = getMaxMessageWidthPerActor(actors, messages);
66015 conf.height = calculateActorMargins(actors, maxMessageWidthPerActor);
66016 drawActors(diagram, actors, actorKeys, 0);
66017 var loopWidths = calculateLoopBounds(messages, actors, maxMessageWidthPerActor); // The arrow head definition is attached to the svg once
66018
66019 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].insertArrowHead(diagram);
66020 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].insertArrowCrossHead(diagram);
66021 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].insertSequenceNumber(diagram);
66022
66023 function activeEnd(msg, verticalPos) {
66024 var activationData = bounds.endActivation(msg);
66025
66026 if (activationData.starty + 18 > verticalPos) {
66027 activationData.starty = verticalPos - 6;
66028 verticalPos += 12;
66029 }
66030
66031 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawActivation(diagram, activationData, verticalPos, conf, actorActivations(msg.from.actor).length);
66032 bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos);
66033 } // Draw the messages/signals
66034
66035
66036 var sequenceIndex = 1;
66037 messages.forEach(function (msg) {
66038 var loopModel, noteModel, msgModel;
66039
66040 switch (msg.type) {
66041 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.NOTE:
66042 noteModel = msg.noteModel;
66043 drawNote(diagram, noteModel);
66044 break;
66045
66046 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ACTIVE_START:
66047 bounds.newActivation(msg, diagram, actors);
66048 break;
66049
66050 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ACTIVE_END:
66051 activeEnd(msg, bounds.getVerticalPos());
66052 break;
66053
66054 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.LOOP_START:
66055 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin, conf.boxMargin + conf.boxTextMargin, function (message) {
66056 return bounds.newLoop(message);
66057 });
66058 break;
66059
66060 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.LOOP_END:
66061 loopModel = bounds.endLoop();
66062 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawLoop(diagram, loopModel, 'loop', conf);
66063 bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
66064 bounds.models.addLoop(loopModel);
66065 break;
66066
66067 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.RECT_START:
66068 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin, conf.boxMargin, function (message) {
66069 return bounds.newLoop(undefined, message.message);
66070 });
66071 break;
66072
66073 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.RECT_END:
66074 loopModel = bounds.endLoop();
66075 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawBackgroundRect(diagram, loopModel);
66076 bounds.models.addLoop(loopModel);
66077 bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
66078 break;
66079
66080 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.OPT_START:
66081 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin, conf.boxMargin + conf.boxTextMargin, function (message) {
66082 return bounds.newLoop(message);
66083 });
66084 break;
66085
66086 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.OPT_END:
66087 loopModel = bounds.endLoop();
66088 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawLoop(diagram, loopModel, 'opt', conf);
66089 bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
66090 bounds.models.addLoop(loopModel);
66091 break;
66092
66093 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_START:
66094 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin, conf.boxMargin + conf.boxTextMargin, function (message) {
66095 return bounds.newLoop(message);
66096 });
66097 break;
66098
66099 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_ELSE:
66100 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin + conf.boxTextMargin, conf.boxMargin, function (message) {
66101 return bounds.addSectionToLoop(message);
66102 });
66103 break;
66104
66105 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_END:
66106 loopModel = bounds.endLoop();
66107 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawLoop(diagram, loopModel, 'alt', conf);
66108 bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
66109 bounds.models.addLoop(loopModel);
66110 break;
66111
66112 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_START:
66113 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin, conf.boxMargin + conf.boxTextMargin, function (message) {
66114 return bounds.newLoop(message);
66115 });
66116 break;
66117
66118 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_AND:
66119 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin + conf.boxTextMargin, conf.boxMargin, function (message) {
66120 return bounds.addSectionToLoop(message);
66121 });
66122 break;
66123
66124 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_END:
66125 loopModel = bounds.endLoop();
66126 _svgDraw__WEBPACK_IMPORTED_MODULE_1__["default"].drawLoop(diagram, loopModel, 'par', conf);
66127 bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
66128 bounds.models.addLoop(loopModel);
66129 break;
66130
66131 default:
66132 try {
66133 // lastMsg = msg
66134 msgModel = msg.msgModel;
66135 msgModel.starty = bounds.getVerticalPos();
66136 msgModel.sequenceIndex = sequenceIndex;
66137 drawMessage(diagram, msgModel);
66138 bounds.models.addMessage(msgModel);
66139 } catch (e) {
66140 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].error('error while drawing message', e);
66141 }
66142
66143 } // Increment sequence counter if msg.type is a line (and not another event like activation or note, etc)
66144
66145
66146 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)) {
66147 sequenceIndex++;
66148 }
66149 });
66150
66151 if (conf.mirrorActors) {
66152 // Draw actors below diagram
66153 bounds.bumpVerticalPos(conf.boxMargin * 2);
66154 drawActors(diagram, actors, actorKeys, bounds.getVerticalPos());
66155 }
66156
66157 var _bounds$getBounds = bounds.getBounds(),
66158 box = _bounds$getBounds.bounds; // Adjust line height of actor lines now that the height of the diagram is known
66159
66160
66161 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('For line height fix Querying: #' + id + ' .actor-line');
66162 var actorLines = Object(d3__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('#' + id + ' .actor-line');
66163 actorLines.attr('y2', box.stopy);
66164 var height = box.stopy - box.starty + 2 * conf.diagramMarginY;
66165
66166 if (conf.mirrorActors) {
66167 height = height - conf.boxMargin + conf.bottomMarginAdj;
66168 }
66169
66170 var width = box.stopx - box.startx + 2 * conf.diagramMarginX;
66171
66172 if (title) {
66173 diagram.append('text').text(title).attr('x', (box.stopx - box.startx) / 2 - 2 * conf.diagramMarginX).attr('y', -25);
66174 }
66175
66176 if (conf.useMaxWidth) {
66177 diagram.attr('height', '100%');
66178 diagram.attr('width', '100%');
66179 diagram.attr('style', 'max-width:' + width + 'px;'); // diagram.attr('style', 'max-width:100%;');
66180 } else {
66181 diagram.attr('height', height);
66182 diagram.attr('width', width);
66183 }
66184
66185 var extraVertForTitle = title ? 40 : 0;
66186 diagram.attr('viewBox', box.startx - conf.diagramMarginX + ' -' + (conf.diagramMarginY + extraVertForTitle) + ' ' + width + ' ' + (height + extraVertForTitle));
66187 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug("models:", bounds.models);
66188};
66189/**
66190 * Retrieves the max message width of each actor, supports signals (messages, loops)
66191 * and notes.
66192 *
66193 * It will enumerate each given message, and will determine its text width, in relation
66194 * to the actor it originates from, and destined to.
66195 *
66196 * @param actors - The actors map
66197 * @param messages - A list of message objects to iterate
66198 */
66199
66200var getMaxMessageWidthPerActor = function getMaxMessageWidthPerActor(actors, messages) {
66201 var maxMessageWidthPerActor = {};
66202 messages.forEach(function (msg) {
66203 if (actors[msg.to] && actors[msg.from]) {
66204 var actor = actors[msg.to]; // If this is the first actor, and the message is left of it, no need to calculate the margin
66205
66206 if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.LEFTOF && !actor.prevActor) {
66207 return;
66208 } // If this is the last actor, and the message is right of it, no need to calculate the margin
66209
66210
66211 if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.RIGHTOF && !actor.nextActor) {
66212 return;
66213 }
66214
66215 var isNote = msg.placement !== undefined;
66216 var isMessage = !isNote;
66217 var textFont = isNote ? noteFont(conf) : messageFont(conf);
66218 var wrappedMessage = msg.wrap ? _utils__WEBPACK_IMPORTED_MODULE_7__["default"].wrapLabel(msg.message, conf.width - 2 * conf.wrapPadding, textFont) : msg.message;
66219 var messageDimensions = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].calculateTextDimensions(wrappedMessage, textFont);
66220 var messageWidth = messageDimensions.width + 2 * conf.wrapPadding;
66221 /*
66222 * The following scenarios should be supported:
66223 *
66224 * - There's a message (non-note) between fromActor and toActor
66225 * - If fromActor is on the right and toActor is on the left, we should
66226 * define the toActor's margin
66227 * - If fromActor is on the left and toActor is on the right, we should
66228 * define the fromActor's margin
66229 * - There's a note, in which case fromActor == toActor
66230 * - If the note is to the left of the actor, we should define the previous actor
66231 * margin
66232 * - If the note is on the actor, we should define both the previous and next actor
66233 * margins, each being the half of the note size
66234 * - If the note is on the right of the actor, we should define the current actor
66235 * margin
66236 */
66237
66238 if (isMessage && msg.from === actor.nextActor) {
66239 maxMessageWidthPerActor[msg.to] = Math.max(maxMessageWidthPerActor[msg.to] || 0, messageWidth);
66240 } else if (isMessage && msg.from === actor.prevActor) {
66241 maxMessageWidthPerActor[msg.from] = Math.max(maxMessageWidthPerActor[msg.from] || 0, messageWidth);
66242 } else if (isMessage && msg.from === msg.to) {
66243 maxMessageWidthPerActor[msg.from] = Math.max(maxMessageWidthPerActor[msg.from] || 0, messageWidth / 2);
66244 maxMessageWidthPerActor[msg.to] = Math.max(maxMessageWidthPerActor[msg.to] || 0, messageWidth / 2);
66245 } else if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.RIGHTOF) {
66246 maxMessageWidthPerActor[msg.from] = Math.max(maxMessageWidthPerActor[msg.from] || 0, messageWidth);
66247 } else if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.LEFTOF) {
66248 maxMessageWidthPerActor[actor.prevActor] = Math.max(maxMessageWidthPerActor[actor.prevActor] || 0, messageWidth);
66249 } else if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.OVER) {
66250 if (actor.prevActor) {
66251 maxMessageWidthPerActor[actor.prevActor] = Math.max(maxMessageWidthPerActor[actor.prevActor] || 0, messageWidth / 2);
66252 }
66253
66254 if (actor.nextActor) {
66255 maxMessageWidthPerActor[msg.from] = Math.max(maxMessageWidthPerActor[msg.from] || 0, messageWidth / 2);
66256 }
66257 }
66258 }
66259 });
66260 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('maxMessageWidthPerActor:', maxMessageWidthPerActor);
66261 return maxMessageWidthPerActor;
66262};
66263/**
66264 * This will calculate the optimal margin for each given actor, for a given
66265 * actor->messageWidth map.
66266 *
66267 * An actor's margin is determined by the width of the actor, the width of the
66268 * largest message that originates from it, and the configured conf.actorMargin.
66269 *
66270 * @param actors - The actors map to calculate margins for
66271 * @param actorToMessageWidth - A map of actor key -> max message width it holds
66272 */
66273
66274
66275var calculateActorMargins = function calculateActorMargins(actors, actorToMessageWidth) {
66276 var maxHeight = 0;
66277 Object.keys(actors).forEach(function (prop) {
66278 var actor = actors[prop];
66279
66280 if (actor.wrap) {
66281 actor.description = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].wrapLabel(actor.description, conf.width - 2 * conf.wrapPadding, actorFont(conf));
66282 }
66283
66284 var actDims = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].calculateTextDimensions(actor.description, actorFont(conf));
66285 actor.width = actor.wrap ? conf.width : Math.max(conf.width, actDims.width + 2 * conf.wrapPadding);
66286 actor.height = actor.wrap ? Math.max(actDims.height, conf.height) : conf.height;
66287 maxHeight = Math.max(maxHeight, actor.height);
66288 });
66289
66290 for (var actorKey in actorToMessageWidth) {
66291 var actor = actors[actorKey];
66292
66293 if (!actor) {
66294 continue;
66295 }
66296
66297 var nextActor = actors[actor.nextActor]; // No need to space out an actor that doesn't have a next link
66298
66299 if (!nextActor) {
66300 continue;
66301 }
66302
66303 var messageWidth = actorToMessageWidth[actorKey];
66304 var actorWidth = messageWidth + conf.actorMargin - actor.width / 2 - nextActor.width / 2;
66305 actor.margin = Math.max(actorWidth, conf.actorMargin);
66306 }
66307
66308 return Math.max(maxHeight, conf.height);
66309};
66310
66311var buildNoteModel = function buildNoteModel(msg, actors) {
66312 var startx = actors[msg.from].x;
66313 var stopx = actors[msg.to].x;
66314 var shouldWrap = msg.wrap && msg.message;
66315 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));
66316 var noteModel = {
66317 width: shouldWrap ? conf.width : Math.max(conf.width, textDimensions.width + 2 * conf.noteMargin),
66318 height: 0,
66319 startx: actors[msg.from].x,
66320 stopx: 0,
66321 starty: 0,
66322 stopy: 0,
66323 message: msg.message
66324 };
66325
66326 if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.RIGHTOF) {
66327 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);
66328 noteModel.startx = startx + (actors[msg.from].width + conf.actorMargin) / 2;
66329 } else if (msg.placement === _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.PLACEMENT.LEFTOF) {
66330 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);
66331 noteModel.startx = startx - noteModel.width + (actors[msg.from].width - conf.actorMargin) / 2;
66332 } else if (msg.to === msg.from) {
66333 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));
66334 noteModel.width = shouldWrap ? Math.max(conf.width, actors[msg.from].width) : Math.max(actors[msg.from].width, conf.width, textDimensions.width + 2 * conf.noteMargin);
66335 noteModel.startx = startx + (actors[msg.from].width - noteModel.width) / 2;
66336 } else {
66337 noteModel.width = Math.abs(startx + actors[msg.from].width / 2 - (stopx + actors[msg.to].width / 2)) + conf.actorMargin;
66338 noteModel.startx = startx < stopx ? startx + actors[msg.from].width / 2 - conf.actorMargin / 2 : stopx + actors[msg.to].width / 2 - conf.actorMargin / 2;
66339 }
66340
66341 if (shouldWrap) {
66342 noteModel.message = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].wrapLabel(msg.message, noteModel.width - 2 * conf.wrapPadding, noteFont(conf));
66343 }
66344
66345 _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, "]"));
66346 return noteModel;
66347};
66348
66349var buildMessageModel = function buildMessageModel(msg, actors) {
66350 var process = false;
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 process = true;
66354 }
66355
66356 if (!process) {
66357 return {};
66358 }
66359
66360 var fromBounds = activationBounds(msg.from, actors);
66361 var toBounds = activationBounds(msg.to, actors);
66362 var fromIdx = fromBounds[0] <= toBounds[0] ? 1 : 0;
66363 var toIdx = fromBounds[0] < toBounds[0] ? 0 : 1;
66364 var allBounds = fromBounds.concat(toBounds);
66365 var boundedWidth = Math.abs(toBounds[toIdx] - fromBounds[fromIdx]);
66366 var msgDims = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].calculateTextDimensions(msg.message, messageFont(conf));
66367
66368 if (msg.wrap && msg.message) {
66369 msg.message = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].wrapLabel(msg.message, Math.max(boundedWidth + 2 * conf.wrapPadding, conf.width), messageFont(conf));
66370 }
66371
66372 return {
66373 width: Math.max(msg.wrap ? 0 : msgDims.width + 2 * conf.wrapPadding, boundedWidth + 2 * conf.wrapPadding, conf.width),
66374 height: 0,
66375 startx: fromBounds[fromIdx],
66376 stopx: toBounds[toIdx],
66377 starty: 0,
66378 stopy: 0,
66379 message: msg.message,
66380 type: msg.type,
66381 wrap: msg.wrap,
66382 fromBounds: Math.min.apply(null, allBounds),
66383 toBounds: Math.max.apply(null, allBounds)
66384 };
66385};
66386
66387var calculateLoopBounds = function calculateLoopBounds(messages, actors) {
66388 var loops = {};
66389 var stack = [];
66390 var current, noteModel, msgModel;
66391 messages.forEach(function (msg) {
66392 msg.id = _utils__WEBPACK_IMPORTED_MODULE_7__["default"].random({
66393 length: 10
66394 });
66395
66396 switch (msg.type) {
66397 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.LOOP_START:
66398 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_START:
66399 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.OPT_START:
66400 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_START:
66401 stack.push({
66402 id: msg.id,
66403 msg: msg.message,
66404 from: Number.MAX_SAFE_INTEGER,
66405 to: Number.MIN_SAFE_INTEGER,
66406 width: 0
66407 });
66408 break;
66409
66410 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_ELSE:
66411 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_AND:
66412 if (msg.message) {
66413 current = stack.pop();
66414 loops[current.id] = current;
66415 loops[msg.id] = current;
66416 stack.push(current);
66417 }
66418
66419 break;
66420
66421 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.LOOP_END:
66422 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ALT_END:
66423 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.OPT_END:
66424 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.PAR_END:
66425 current = stack.pop();
66426 loops[current.id] = current;
66427 break;
66428
66429 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ACTIVE_START:
66430 {
66431 var actorRect = actors[msg.from ? msg.from.actor : msg.to.actor];
66432 var stackedSize = actorActivations(msg.from ? msg.from.actor : msg.to.actor).length;
66433 var x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;
66434 var toAdd = {
66435 startx: x,
66436 stopx: x + conf.activationWidth,
66437 actor: msg.from.actor,
66438 enabled: true
66439 };
66440 bounds.activations.push(toAdd);
66441 }
66442 break;
66443
66444 case _parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_3__["parser"].yy.LINETYPE.ACTIVE_END:
66445 {
66446 var lastActorActivationIdx = bounds.activations.map(function (a) {
66447 return a.actor;
66448 }).lastIndexOf(msg.from.actor);
66449 delete bounds.activations.splice(lastActorActivationIdx, 1)[0];
66450 }
66451 break;
66452 }
66453
66454 var isNote = msg.placement !== undefined;
66455
66456 if (isNote) {
66457 noteModel = buildNoteModel(msg, actors);
66458 msg.noteModel = noteModel;
66459 stack.forEach(function (stk) {
66460 current = stk;
66461 current.from = Math.min(current.from, noteModel.startx);
66462 current.to = Math.max(current.to, noteModel.startx + noteModel.width);
66463 current.width = Math.max(current.width, Math.abs(current.from - current.to)) - conf.labelBoxWidth;
66464 });
66465 } else {
66466 msgModel = buildMessageModel(msg, actors);
66467 msg.msgModel = msgModel;
66468
66469 if (msgModel.startx && msgModel.stopx && stack.length > 0) {
66470 stack.forEach(function (stk) {
66471 current = stk;
66472
66473 if (msgModel.startx === msgModel.stopx) {
66474 var from = actors[msg.from];
66475 var to = actors[msg.to];
66476 current.from = Math.min(from.x - msgModel.width / 2, from.x - from.width / 2, current.from);
66477 current.to = Math.max(to.x + msgModel.width / 2, to.x + from.width / 2, current.to);
66478 current.width = Math.max(current.width, Math.abs(current.to - current.from)) - conf.labelBoxWidth;
66479 } else {
66480 current.from = Math.min(msgModel.startx, current.from);
66481 current.to = Math.max(msgModel.stopx, current.to);
66482 current.width = Math.max(current.width, msgModel.width) - conf.labelBoxWidth;
66483 }
66484 });
66485 }
66486 }
66487 });
66488 bounds.activations = [];
66489 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Loop type widths:', loops);
66490 return loops;
66491};
66492
66493/* harmony default export */ __webpack_exports__["default"] = ({
66494 bounds: bounds,
66495 drawActors: drawActors,
66496 setConf: setConf,
66497 draw: draw
66498});
66499
66500/***/ }),
66501
66502/***/ "./src/diagrams/sequence/styles.js":
66503/*!*****************************************!*\
66504 !*** ./src/diagrams/sequence/styles.js ***!
66505 \*****************************************/
66506/*! exports provided: default */
66507/***/ (function(module, __webpack_exports__, __webpack_require__) {
66508
66509"use strict";
66510__webpack_require__.r(__webpack_exports__);
66511var getStyles = function getStyles(options) {
66512 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");
66513};
66514
66515/* harmony default export */ __webpack_exports__["default"] = (getStyles);
66516
66517/***/ }),
66518
66519/***/ "./src/diagrams/sequence/svgDraw.js":
66520/*!******************************************!*\
66521 !*** ./src/diagrams/sequence/svgDraw.js ***!
66522 \******************************************/
66523/*! exports provided: drawRect, drawText, drawLabel, drawActor, anchorElement, drawActivation, drawLoop, drawBackgroundRect, insertArrowHead, insertSequenceNumber, insertArrowCrossHead, getTextObj, getNoteRect, default */
66524/***/ (function(module, __webpack_exports__, __webpack_require__) {
66525
66526"use strict";
66527__webpack_require__.r(__webpack_exports__);
66528/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawRect", function() { return drawRect; });
66529/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawText", function() { return drawText; });
66530/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawLabel", function() { return drawLabel; });
66531/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawActor", function() { return drawActor; });
66532/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "anchorElement", function() { return anchorElement; });
66533/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawActivation", function() { return drawActivation; });
66534/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawLoop", function() { return drawLoop; });
66535/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawBackgroundRect", function() { return drawBackgroundRect; });
66536/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertArrowHead", function() { return insertArrowHead; });
66537/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertSequenceNumber", function() { return insertSequenceNumber; });
66538/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertArrowCrossHead", function() { return insertArrowCrossHead; });
66539/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTextObj", function() { return getTextObj; });
66540/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNoteRect", function() { return getNoteRect; });
66541/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
66542
66543var drawRect = function drawRect(elem, rectData) {
66544 var rectElem = elem.append('rect');
66545 rectElem.attr('x', rectData.x);
66546 rectElem.attr('y', rectData.y);
66547 rectElem.attr('fill', rectData.fill);
66548 rectElem.attr('stroke', rectData.stroke);
66549 rectElem.attr('width', rectData.width);
66550 rectElem.attr('height', rectData.height);
66551 rectElem.attr('rx', rectData.rx);
66552 rectElem.attr('ry', rectData.ry);
66553
66554 if (typeof rectData.class !== 'undefined') {
66555 rectElem.attr('class', rectData.class);
66556 }
66557
66558 return rectElem;
66559};
66560var drawText = function drawText(elem, textData) {
66561 var prevTextHeight = 0,
66562 textHeight = 0;
66563 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, ' ')];
66564 var textElems = [];
66565 var dy = 0;
66566
66567 var yfunc = function yfunc() {
66568 return textData.y;
66569 };
66570
66571 if (typeof textData.valign !== 'undefined' && typeof textData.textMargin !== 'undefined' && textData.textMargin > 0) {
66572 switch (textData.valign) {
66573 case 'top':
66574 case 'start':
66575 yfunc = function yfunc() {
66576 return Math.round(textData.y + textData.textMargin);
66577 };
66578
66579 break;
66580
66581 case 'middle':
66582 case 'center':
66583 yfunc = function yfunc() {
66584 return Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2);
66585 };
66586
66587 break;
66588
66589 case 'bottom':
66590 case 'end':
66591 yfunc = function yfunc() {
66592 return Math.round(textData.y + (prevTextHeight + textHeight + 2 * textData.textMargin) - textData.textMargin);
66593 };
66594
66595 break;
66596 }
66597 }
66598
66599 if (typeof textData.anchor !== 'undefined' && typeof textData.textMargin !== 'undefined' && typeof textData.width !== 'undefined') {
66600 switch (textData.anchor) {
66601 case 'left':
66602 case 'start':
66603 textData.x = Math.round(textData.x + textData.textMargin);
66604 textData.anchor = 'start';
66605 textData.dominantBaseline = 'text-after-edge';
66606 textData.alignmentBaseline = 'middle';
66607 break;
66608
66609 case 'middle':
66610 case 'center':
66611 textData.x = Math.round(textData.x + textData.width / 2);
66612 textData.anchor = 'middle';
66613 textData.dominantBaseline = 'middle';
66614 textData.alignmentBaseline = 'middle';
66615 break;
66616
66617 case 'right':
66618 case 'end':
66619 textData.x = Math.round(textData.x + textData.width - textData.textMargin);
66620 textData.anchor = 'end';
66621 textData.dominantBaseline = 'text-before-edge';
66622 textData.alignmentBaseline = 'middle';
66623 break;
66624 }
66625 }
66626
66627 for (var i = 0; i < lines.length; i++) {
66628 var line = lines[i];
66629
66630 if (typeof textData.textMargin !== 'undefined' && textData.textMargin === 0 && typeof textData.fontSize !== 'undefined') {
66631 dy = i * textData.fontSize;
66632 }
66633
66634 var textElem = elem.append('text');
66635 textElem.attr('x', textData.x);
66636 textElem.attr('y', yfunc());
66637
66638 if (typeof textData.anchor !== 'undefined') {
66639 textElem.attr('text-anchor', textData.anchor).attr('dominant-baseline', textData.dominantBaseline).attr('alignment-baseline', textData.alignmentBaseline);
66640 }
66641
66642 if (typeof textData.fontFamily !== 'undefined') {
66643 textElem.style('font-family', textData.fontFamily);
66644 }
66645
66646 if (typeof textData.fontSize !== 'undefined') {
66647 textElem.style('font-size', textData.fontSize);
66648 }
66649
66650 if (typeof textData.fontWeight !== 'undefined') {
66651 textElem.style('font-weight', textData.fontWeight);
66652 }
66653
66654 if (typeof textData.fill !== 'undefined') {
66655 textElem.attr('fill', textData.fill);
66656 }
66657
66658 if (typeof textData.class !== 'undefined') {
66659 textElem.attr('class', textData.class);
66660 }
66661
66662 if (typeof textData.dy !== 'undefined') {
66663 textElem.attr('dy', textData.dy);
66664 } else if (dy !== 0) {
66665 textElem.attr('dy', dy);
66666 }
66667
66668 if (textData.tspan) {
66669 var span = textElem.append('tspan');
66670 span.attr('x', textData.x);
66671
66672 if (typeof textData.fill !== 'undefined') {
66673 span.attr('fill', textData.fill);
66674 }
66675
66676 span.text(line);
66677 } else {
66678 textElem.text(line);
66679 }
66680
66681 if (typeof textData.valign !== 'undefined' && typeof textData.textMargin !== 'undefined' && textData.textMargin > 0) {
66682 textHeight += (textElem._groups || textElem)[0][0].getBBox().height;
66683 prevTextHeight = textHeight;
66684 }
66685
66686 textElems.push(textElem);
66687 }
66688
66689 return textElems;
66690};
66691var drawLabel = function drawLabel(elem, txtObject) {
66692 function genPoints(x, y, width, height, cut) {
66693 return x + ',' + y + ' ' + (x + width) + ',' + y + ' ' + (x + width) + ',' + (y + height - cut) + ' ' + (x + width - cut * 1.2) + ',' + (y + height) + ' ' + x + ',' + (y + height);
66694 }
66695
66696 var polygon = elem.append('polygon');
66697 polygon.attr('points', genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7));
66698 polygon.attr('class', 'labelBox');
66699 txtObject.y = txtObject.y + txtObject.height / 2;
66700 drawText(elem, txtObject);
66701 return polygon;
66702};
66703var actorCnt = -1;
66704/**
66705 * Draws an actor in the diagram with the attached line
66706 * @param elem - The diagram we'll draw to.
66707 * @param actor - The actor to draw.
66708 * @param conf - drawText implementation discriminator object
66709 */
66710
66711var drawActor = function drawActor(elem, actor, conf) {
66712 var center = actor.x + actor.width / 2;
66713 var g = elem.append('g');
66714
66715 if (actor.y === 0) {
66716 actorCnt++;
66717 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');
66718 }
66719
66720 var rect = getNoteRect();
66721 rect.x = actor.x;
66722 rect.y = actor.y;
66723 rect.fill = '#eaeaea';
66724 rect.width = actor.width;
66725 rect.height = actor.height;
66726 rect.class = 'actor';
66727 rect.rx = 3;
66728 rect.ry = 3;
66729 drawRect(g, rect);
66730
66731 _drawTextCandidateFunc(conf)(actor.description, g, rect.x, rect.y, rect.width, rect.height, {
66732 class: 'actor'
66733 }, conf);
66734};
66735var anchorElement = function anchorElement(elem) {
66736 return elem.append('g');
66737};
66738/**
66739 * Draws an activation in the diagram
66740 * @param elem - element to append activation rect.
66741 * @param bounds - activation box bounds.
66742 * @param verticalPos - precise y cooridnate of bottom activation box edge.
66743 * @param conf - sequence diagram config object.
66744 * @param actorActivations - number of activations on the actor.
66745 */
66746
66747var drawActivation = function drawActivation(elem, bounds, verticalPos, conf, actorActivations) {
66748 var rect = getNoteRect();
66749 var g = bounds.anchored;
66750 rect.x = bounds.startx;
66751 rect.y = bounds.starty;
66752 rect.class = 'activation' + actorActivations % 3; // Will evaluate to 0, 1 or 2
66753
66754 rect.width = bounds.stopx - bounds.startx;
66755 rect.height = verticalPos - bounds.starty;
66756 drawRect(g, rect);
66757};
66758/**
66759 * Draws a loop in the diagram
66760 * @param elem - elemenet to append the loop to.
66761 * @param loopModel - loopModel of the given loop.
66762 * @param labelText - Text within the loop.
66763 * @param conf - diagrom configuration
66764 */
66765
66766var drawLoop = function drawLoop(elem, loopModel, labelText, conf) {
66767 var boxMargin = conf.boxMargin,
66768 boxTextMargin = conf.boxTextMargin,
66769 labelBoxHeight = conf.labelBoxHeight,
66770 labelBoxWidth = conf.labelBoxWidth,
66771 fontFamily = conf.messageFontFamily,
66772 fontSize = conf.messageFontSize,
66773 fontWeight = conf.messageFontWeight;
66774 var g = elem.append('g');
66775
66776 var drawLoopLine = function drawLoopLine(startx, starty, stopx, stopy) {
66777 return g.append('line').attr('x1', startx).attr('y1', starty).attr('x2', stopx).attr('y2', stopy).attr('class', 'loopLine');
66778 };
66779
66780 drawLoopLine(loopModel.startx, loopModel.starty, loopModel.stopx, loopModel.starty);
66781 drawLoopLine(loopModel.stopx, loopModel.starty, loopModel.stopx, loopModel.stopy);
66782 drawLoopLine(loopModel.startx, loopModel.stopy, loopModel.stopx, loopModel.stopy);
66783 drawLoopLine(loopModel.startx, loopModel.starty, loopModel.startx, loopModel.stopy);
66784
66785 if (typeof loopModel.sections !== 'undefined') {
66786 loopModel.sections.forEach(function (item) {
66787 drawLoopLine(loopModel.startx, item.y, loopModel.stopx, item.y).style('stroke-dasharray', '3, 3');
66788 });
66789 }
66790
66791 var txt = getTextObj();
66792 txt.text = labelText;
66793 txt.x = loopModel.startx;
66794 txt.y = loopModel.starty;
66795 txt.fontFamily = fontFamily;
66796 txt.fontSize = fontSize;
66797 txt.fontWeight = fontWeight;
66798 txt.anchor = 'middle';
66799 txt.valign = 'middle';
66800 txt.tspan = false;
66801 txt.width = labelBoxWidth || 50;
66802 txt.height = labelBoxHeight || 20;
66803 txt.textMargin = boxTextMargin;
66804 txt.class = 'labelText';
66805 drawLabel(g, txt);
66806 txt = getTextObj();
66807 txt.text = loopModel.title;
66808 txt.x = loopModel.startx + labelBoxWidth / 2 + (loopModel.stopx - loopModel.startx) / 2;
66809 txt.y = loopModel.starty + boxMargin + boxTextMargin;
66810 txt.anchor = 'middle';
66811 txt.valign = 'middle';
66812 txt.textMargin = boxTextMargin;
66813 txt.class = 'loopText';
66814 txt.fontFamily = fontFamily;
66815 txt.fontSize = fontSize;
66816 txt.fontWeight = fontWeight;
66817 txt.wrap = true;
66818 var textElem = drawText(g, txt);
66819
66820 if (typeof loopModel.sectionTitles !== 'undefined') {
66821 loopModel.sectionTitles.forEach(function (item, idx) {
66822 if (item.message) {
66823 txt.text = item.message;
66824 txt.x = loopModel.startx + (loopModel.stopx - loopModel.startx) / 2;
66825 txt.y = loopModel.sections[idx].y + boxMargin + boxTextMargin;
66826 txt.class = 'loopText';
66827 txt.anchor = 'middle';
66828 txt.valign = 'middle';
66829 txt.tspan = false;
66830 txt.fontFamily = fontFamily;
66831 txt.fontSize = fontSize;
66832 txt.fontWeight = fontWeight;
66833 txt.wrap = loopModel.wrap;
66834 textElem = drawText(g, txt);
66835 var sectionHeight = Math.round(textElem.map(function (te) {
66836 return (te._groups || te)[0][0].getBBox().height;
66837 }).reduce(function (acc, curr) {
66838 return acc + curr;
66839 }));
66840 loopModel.sections[idx].height += sectionHeight - (boxMargin + boxTextMargin);
66841 }
66842 });
66843 }
66844
66845 loopModel.height = Math.round(loopModel.stopy - loopModel.starty);
66846 return g;
66847};
66848/**
66849 * Draws a background rectangle
66850 * @param elem diagram (reference for bounds)
66851 * @param bounds shape of the rectangle
66852 */
66853
66854var drawBackgroundRect = function drawBackgroundRect(elem, bounds) {
66855 var rectElem = drawRect(elem, {
66856 x: bounds.startx,
66857 y: bounds.starty,
66858 width: bounds.stopx - bounds.startx,
66859 height: bounds.stopy - bounds.starty,
66860 fill: bounds.fill,
66861 class: 'rect'
66862 });
66863 rectElem.lower();
66864};
66865/**
66866 * Setup arrow head and define the marker. The result is appended to the svg.
66867 */
66868
66869var insertArrowHead = function insertArrowHead(elem) {
66870 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
66871};
66872/**
66873 * Setup node number. The result is appended to the svg.
66874 */
66875
66876var insertSequenceNumber = function insertSequenceNumber(elem) {
66877 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');
66878};
66879/**
66880 * Setup arrow head and define the marker. The result is appended to the svg.
66881 */
66882
66883var insertArrowCrossHead = function insertArrowCrossHead(elem) {
66884 var defs = elem.append('defs');
66885 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
66886
66887 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
66888
66889 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
66890};
66891var getTextObj = function getTextObj() {
66892 return {
66893 x: 0,
66894 y: 0,
66895 fill: undefined,
66896 anchor: undefined,
66897 style: '#666',
66898 width: undefined,
66899 height: undefined,
66900 textMargin: 0,
66901 rx: 0,
66902 ry: 0,
66903 tspan: true,
66904 valign: undefined
66905 };
66906};
66907var getNoteRect = function getNoteRect() {
66908 return {
66909 x: 0,
66910 y: 0,
66911 fill: '#EDF2AE',
66912 stroke: '#666',
66913 width: 100,
66914 anchor: 'start',
66915 height: 100,
66916 rx: 0,
66917 ry: 0
66918 };
66919};
66920
66921var _drawTextCandidateFunc = function () {
66922 function byText(content, g, x, y, width, height, textAttrs) {
66923 var text = g.append('text').attr('x', x + width / 2).attr('y', y + height / 2 + 5).style('text-anchor', 'middle').text(content);
66924
66925 _setTextAttrs(text, textAttrs);
66926 }
66927
66928 function byTspan(content, g, x, y, width, height, textAttrs, conf) {
66929 var actorFontSize = conf.actorFontSize,
66930 actorFontFamily = conf.actorFontFamily,
66931 actorFontWeight = conf.actorFontWeight;
66932 var lines = content.split(_common_common__WEBPACK_IMPORTED_MODULE_0__["default"].lineBreakRegex);
66933
66934 for (var i = 0; i < lines.length; i++) {
66935 var dy = i * actorFontSize - actorFontSize * (lines.length - 1) / 2;
66936 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);
66937 text.append('tspan').attr('x', x + width / 2).attr('dy', dy).text(lines[i]);
66938 text.attr('y', y + height / 2.0).attr('dominant-baseline', 'central').attr('alignment-baseline', 'central');
66939
66940 _setTextAttrs(text, textAttrs);
66941 }
66942 }
66943
66944 function byFo(content, g, x, y, width, height, textAttrs, conf) {
66945 var s = g.append('switch');
66946 var f = s.append('foreignObject').attr('x', x).attr('y', y).attr('width', width).attr('height', height);
66947 var text = f.append('div').style('display', 'table').style('height', '100%').style('width', '100%');
66948 text.append('div').style('display', 'table-cell').style('text-align', 'center').style('vertical-align', 'middle').text(content);
66949 byTspan(content, s, x, y, width, height, textAttrs, conf);
66950
66951 _setTextAttrs(text, textAttrs);
66952 }
66953
66954 function _setTextAttrs(toText, fromTextAttrsDict) {
66955 for (var key in fromTextAttrsDict) {
66956 if (fromTextAttrsDict.hasOwnProperty(key)) {
66957 // eslint-disable-line
66958 toText.attr(key, fromTextAttrsDict[key]);
66959 }
66960 }
66961 }
66962
66963 return function (conf) {
66964 return conf.textPlacement === 'fo' ? byFo : conf.textPlacement === 'old' ? byText : byTspan;
66965 };
66966}();
66967
66968/* harmony default export */ __webpack_exports__["default"] = ({
66969 drawRect: drawRect,
66970 drawText: drawText,
66971 drawLabel: drawLabel,
66972 drawActor: drawActor,
66973 anchorElement: anchorElement,
66974 drawActivation: drawActivation,
66975 drawLoop: drawLoop,
66976 drawBackgroundRect: drawBackgroundRect,
66977 insertArrowHead: insertArrowHead,
66978 insertSequenceNumber: insertSequenceNumber,
66979 insertArrowCrossHead: insertArrowCrossHead,
66980 getTextObj: getTextObj,
66981 getNoteRect: getNoteRect
66982});
66983
66984/***/ }),
66985
66986/***/ "./src/diagrams/state/id-cache.js":
66987/*!****************************************!*\
66988 !*** ./src/diagrams/state/id-cache.js ***!
66989 \****************************************/
66990/*! exports provided: set, get, keys, size, default */
66991/***/ (function(module, __webpack_exports__, __webpack_require__) {
66992
66993"use strict";
66994__webpack_require__.r(__webpack_exports__);
66995/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "set", function() { return set; });
66996/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "get", function() { return get; });
66997/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keys", function() { return keys; });
66998/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "size", function() { return size; });
66999var idCache = {};
67000var set = function set(key, val) {
67001 idCache[key] = val;
67002};
67003var get = function get(k) {
67004 return idCache[k];
67005};
67006var keys = function keys() {
67007 return Object.keys(idCache);
67008};
67009var size = function size() {
67010 return keys().length;
67011};
67012/* harmony default export */ __webpack_exports__["default"] = ({
67013 get: get,
67014 set: set,
67015 keys: keys,
67016 size: size
67017});
67018
67019/***/ }),
67020
67021/***/ "./src/diagrams/state/parser/stateDiagram.jison":
67022/*!******************************************************!*\
67023 !*** ./src/diagrams/state/parser/stateDiagram.jison ***!
67024 \******************************************************/
67025/*! no static exports found */
67026/***/ (function(module, exports, __webpack_require__) {
67027
67028/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
67029/*
67030 Returns a Parser object of the following structure:
67031
67032 Parser: {
67033 yy: {}
67034 }
67035
67036 Parser.prototype: {
67037 yy: {},
67038 trace: function(),
67039 symbols_: {associative list: name ==> number},
67040 terminals_: {associative list: number ==> name},
67041 productions_: [...],
67042 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
67043 table: [...],
67044 defaultActions: {...},
67045 parseError: function(str, hash),
67046 parse: function(input),
67047
67048 lexer: {
67049 EOF: 1,
67050 parseError: function(str, hash),
67051 setInput: function(input),
67052 input: function(),
67053 unput: function(str),
67054 more: function(),
67055 less: function(n),
67056 pastInput: function(),
67057 upcomingInput: function(),
67058 showPosition: function(),
67059 test_match: function(regex_match_array, rule_index),
67060 next: function(),
67061 lex: function(),
67062 begin: function(condition),
67063 popState: function(),
67064 _currentRules: function(),
67065 topState: function(),
67066 pushState: function(condition),
67067
67068 options: {
67069 ranges: boolean (optional: true ==> token location info will include a .range[] member)
67070 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
67071 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)
67072 },
67073
67074 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
67075 rules: [...],
67076 conditions: {associative list: name ==> set},
67077 }
67078 }
67079
67080
67081 token location info (@$, _$, etc.): {
67082 first_line: n,
67083 last_line: n,
67084 first_column: n,
67085 last_column: n,
67086 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
67087 }
67088
67089
67090 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
67091 text: (matched text)
67092 token: (the produced terminal token, if any)
67093 line: (yylineno)
67094 }
67095 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
67096 loc: (yylloc)
67097 expected: (string describing the set of expected tokens)
67098 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
67099 }
67100*/
67101var parser = (function(){
67102var 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];
67103var parser = {trace: function trace () { },
67104yy: {},
67105symbols_: {"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},
67106terminals_: {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"},
67107productions_: [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]],
67108performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
67109/* this == yyval */
67110
67111var $0 = $$.length - 1;
67112switch (yystate) {
67113case 4:
67114 /*console.warn('Root document', $$[$0]);*/ yy.setRootDoc($$[$0]);return $$[$0];
67115break;
67116case 5:
67117 this.$ = []
67118break;
67119case 6:
67120
67121 if($$[$0]!='nl'){
67122 $$[$0-1].push($$[$0]);this.$ = $$[$0-1]
67123 }
67124 // console.warn('Got document',$$[$0-1], $$[$0]);
67125
67126break;
67127case 7: case 8:
67128 this.$ = $$[$0]
67129break;
67130case 9:
67131 this.$='nl';
67132break;
67133case 10:
67134 /*console.warn('got id and descr', $$[$0]);*/this.$={ stmt: 'state', id: $$[$0], type: 'default', description: ''};
67135break;
67136case 11:
67137 /*console.warn('got id and descr', $$[$0-1], $$[$0].trim());*/this.$={ stmt: 'state', id: $$[$0-1], type: 'default', description: yy.trimColon($$[$0])};
67138break;
67139case 12:
67140
67141 /*console.warn('got id', $$[$0-2]);yy.addRelation($$[$0-2], $$[$0]);*/
67142 this.$={ stmt: 'relation', state1: { stmt: 'state', id: $$[$0-2], type: 'default', description: '' }, state2:{ stmt: 'state', id: $$[$0] ,type: 'default', description: ''}};
67143
67144break;
67145case 13:
67146
67147 /*yy.addRelation($$[$0-3], $$[$0-1], $$[$0].substr(1).trim());*/
67148 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()};
67149
67150break;
67151case 17:
67152
67153
67154 /* console.warn('Adding document for state without id ', $$[$0-3]);*/
67155 this.$={ stmt: 'state', id: $$[$0-3], type: 'default', description: '', doc: $$[$0-1] }
67156
67157break;
67158case 18:
67159
67160 var id=$$[$0];
67161 var description = $$[$0-2].trim();
67162 if($$[$0].match(':')){
67163 var parts = $$[$0].split(':');
67164 id=parts[0];
67165 description = [description, parts[1]];
67166 }
67167 this.$={stmt: 'state', id: id, type: 'default', description: description};
67168
67169
67170break;
67171case 19:
67172
67173 //console.warn('Adding document for state with id ', $$[$0-3], $$[$0-2]); yy.addDocument($$[$0-3]);
67174 this.$={ stmt: 'state', id: $$[$0-3], type: 'default', description: $$[$0-5], doc: $$[$0-1] }
67175
67176break;
67177case 20:
67178
67179 this.$={ stmt: 'state', id: $$[$0], type: 'fork' }
67180
67181break;
67182case 21:
67183
67184 this.$={ stmt: 'state', id: $$[$0], type: 'join' }
67185
67186break;
67187case 22:
67188
67189 this.$={ stmt: 'state', id: yy.getDividerId(), type: 'divider' }
67190
67191break;
67192case 23:
67193
67194 /*console.warn('got NOTE, position: ', $$[$0-2].trim(), 'id = ', $$[$0-1].trim(), 'note: ', $$[$0]);*/
67195 this.$={ stmt: 'state', id: $$[$0-1].trim(), note:{position: $$[$0-2].trim(), text: $$[$0].trim()}};
67196
67197break;
67198case 30: case 31:
67199this.$=$$[$0];
67200break;
67201case 34:
67202 yy.parseDirective('%%{', 'open_directive');
67203break;
67204case 35:
67205 yy.parseDirective($$[$0], 'type_directive');
67206break;
67207case 36:
67208 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
67209break;
67210case 37:
67211 yy.parseDirective('}%%', 'close_directive', 'state');
67212break;
67213}
67214},
67215table: [{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])],
67216defaultActions: {7:[2,34],8:[2,1],9:[2,2],10:[2,3],41:[2,32],42:[2,33],44:[2,36]},
67217parseError: function parseError (str, hash) {
67218 if (hash.recoverable) {
67219 this.trace(str);
67220 } else {
67221 var error = new Error(str);
67222 error.hash = hash;
67223 throw error;
67224 }
67225},
67226parse: function parse(input) {
67227 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
67228 var args = lstack.slice.call(arguments, 1);
67229 var lexer = Object.create(this.lexer);
67230 var sharedState = { yy: {} };
67231 for (var k in this.yy) {
67232 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
67233 sharedState.yy[k] = this.yy[k];
67234 }
67235 }
67236 lexer.setInput(input, sharedState.yy);
67237 sharedState.yy.lexer = lexer;
67238 sharedState.yy.parser = this;
67239 if (typeof lexer.yylloc == 'undefined') {
67240 lexer.yylloc = {};
67241 }
67242 var yyloc = lexer.yylloc;
67243 lstack.push(yyloc);
67244 var ranges = lexer.options && lexer.options.ranges;
67245 if (typeof sharedState.yy.parseError === 'function') {
67246 this.parseError = sharedState.yy.parseError;
67247 } else {
67248 this.parseError = Object.getPrototypeOf(this).parseError;
67249 }
67250 function popStack(n) {
67251 stack.length = stack.length - 2 * n;
67252 vstack.length = vstack.length - n;
67253 lstack.length = lstack.length - n;
67254 }
67255 function lex() {
67256 var token;
67257 token = tstack.pop() || lexer.lex() || EOF;
67258 if (typeof token !== 'number') {
67259 if (token instanceof Array) {
67260 tstack = token;
67261 token = tstack.pop();
67262 }
67263 token = self.symbols_[token] || token;
67264 }
67265 return token;
67266 }
67267 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
67268 while (true) {
67269 state = stack[stack.length - 1];
67270 if (this.defaultActions[state]) {
67271 action = this.defaultActions[state];
67272 } else {
67273 if (symbol === null || typeof symbol == 'undefined') {
67274 symbol = lex();
67275 }
67276 action = table[state] && table[state][symbol];
67277 }
67278 if (typeof action === 'undefined' || !action.length || !action[0]) {
67279 var errStr = '';
67280 expected = [];
67281 for (p in table[state]) {
67282 if (this.terminals_[p] && p > TERROR) {
67283 expected.push('\'' + this.terminals_[p] + '\'');
67284 }
67285 }
67286 if (lexer.showPosition) {
67287 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
67288 } else {
67289 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
67290 }
67291 this.parseError(errStr, {
67292 text: lexer.match,
67293 token: this.terminals_[symbol] || symbol,
67294 line: lexer.yylineno,
67295 loc: yyloc,
67296 expected: expected
67297 });
67298 }
67299 if (action[0] instanceof Array && action.length > 1) {
67300 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
67301 }
67302 switch (action[0]) {
67303 case 1:
67304 stack.push(symbol);
67305 vstack.push(lexer.yytext);
67306 lstack.push(lexer.yylloc);
67307 stack.push(action[1]);
67308 symbol = null;
67309 if (!preErrorSymbol) {
67310 yyleng = lexer.yyleng;
67311 yytext = lexer.yytext;
67312 yylineno = lexer.yylineno;
67313 yyloc = lexer.yylloc;
67314 if (recovering > 0) {
67315 recovering--;
67316 }
67317 } else {
67318 symbol = preErrorSymbol;
67319 preErrorSymbol = null;
67320 }
67321 break;
67322 case 2:
67323 len = this.productions_[action[1]][1];
67324 yyval.$ = vstack[vstack.length - len];
67325 yyval._$ = {
67326 first_line: lstack[lstack.length - (len || 1)].first_line,
67327 last_line: lstack[lstack.length - 1].last_line,
67328 first_column: lstack[lstack.length - (len || 1)].first_column,
67329 last_column: lstack[lstack.length - 1].last_column
67330 };
67331 if (ranges) {
67332 yyval._$.range = [
67333 lstack[lstack.length - (len || 1)].range[0],
67334 lstack[lstack.length - 1].range[1]
67335 ];
67336 }
67337 r = this.performAction.apply(yyval, [
67338 yytext,
67339 yyleng,
67340 yylineno,
67341 sharedState.yy,
67342 action[1],
67343 vstack,
67344 lstack
67345 ].concat(args));
67346 if (typeof r !== 'undefined') {
67347 return r;
67348 }
67349 if (len) {
67350 stack = stack.slice(0, -1 * len * 2);
67351 vstack = vstack.slice(0, -1 * len);
67352 lstack = lstack.slice(0, -1 * len);
67353 }
67354 stack.push(this.productions_[action[1]][0]);
67355 vstack.push(yyval.$);
67356 lstack.push(yyval._$);
67357 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
67358 stack.push(newState);
67359 break;
67360 case 3:
67361 return true;
67362 }
67363 }
67364 return true;
67365}};
67366
67367/* generated by jison-lex 0.3.4 */
67368var lexer = (function(){
67369var lexer = ({
67370
67371EOF:1,
67372
67373parseError:function parseError(str, hash) {
67374 if (this.yy.parser) {
67375 this.yy.parser.parseError(str, hash);
67376 } else {
67377 throw new Error(str);
67378 }
67379 },
67380
67381// resets the lexer, sets new input
67382setInput:function (input, yy) {
67383 this.yy = yy || this.yy || {};
67384 this._input = input;
67385 this._more = this._backtrack = this.done = false;
67386 this.yylineno = this.yyleng = 0;
67387 this.yytext = this.matched = this.match = '';
67388 this.conditionStack = ['INITIAL'];
67389 this.yylloc = {
67390 first_line: 1,
67391 first_column: 0,
67392 last_line: 1,
67393 last_column: 0
67394 };
67395 if (this.options.ranges) {
67396 this.yylloc.range = [0,0];
67397 }
67398 this.offset = 0;
67399 return this;
67400 },
67401
67402// consumes and returns one char from the input
67403input:function () {
67404 var ch = this._input[0];
67405 this.yytext += ch;
67406 this.yyleng++;
67407 this.offset++;
67408 this.match += ch;
67409 this.matched += ch;
67410 var lines = ch.match(/(?:\r\n?|\n).*/g);
67411 if (lines) {
67412 this.yylineno++;
67413 this.yylloc.last_line++;
67414 } else {
67415 this.yylloc.last_column++;
67416 }
67417 if (this.options.ranges) {
67418 this.yylloc.range[1]++;
67419 }
67420
67421 this._input = this._input.slice(1);
67422 return ch;
67423 },
67424
67425// unshifts one char (or a string) into the input
67426unput:function (ch) {
67427 var len = ch.length;
67428 var lines = ch.split(/(?:\r\n?|\n)/g);
67429
67430 this._input = ch + this._input;
67431 this.yytext = this.yytext.substr(0, this.yytext.length - len);
67432 //this.yyleng -= len;
67433 this.offset -= len;
67434 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
67435 this.match = this.match.substr(0, this.match.length - 1);
67436 this.matched = this.matched.substr(0, this.matched.length - 1);
67437
67438 if (lines.length - 1) {
67439 this.yylineno -= lines.length - 1;
67440 }
67441 var r = this.yylloc.range;
67442
67443 this.yylloc = {
67444 first_line: this.yylloc.first_line,
67445 last_line: this.yylineno + 1,
67446 first_column: this.yylloc.first_column,
67447 last_column: lines ?
67448 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
67449 + oldLines[oldLines.length - lines.length].length - lines[0].length :
67450 this.yylloc.first_column - len
67451 };
67452
67453 if (this.options.ranges) {
67454 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
67455 }
67456 this.yyleng = this.yytext.length;
67457 return this;
67458 },
67459
67460// When called from action, caches matched text and appends it on next action
67461more:function () {
67462 this._more = true;
67463 return this;
67464 },
67465
67466// 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.
67467reject:function () {
67468 if (this.options.backtrack_lexer) {
67469 this._backtrack = true;
67470 } else {
67471 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(), {
67472 text: "",
67473 token: null,
67474 line: this.yylineno
67475 });
67476
67477 }
67478 return this;
67479 },
67480
67481// retain first n characters of the match
67482less:function (n) {
67483 this.unput(this.match.slice(n));
67484 },
67485
67486// displays already matched input, i.e. for error messages
67487pastInput:function () {
67488 var past = this.matched.substr(0, this.matched.length - this.match.length);
67489 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
67490 },
67491
67492// displays upcoming input, i.e. for error messages
67493upcomingInput:function () {
67494 var next = this.match;
67495 if (next.length < 20) {
67496 next += this._input.substr(0, 20-next.length);
67497 }
67498 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
67499 },
67500
67501// displays the character position where the lexing error occurred, i.e. for error messages
67502showPosition:function () {
67503 var pre = this.pastInput();
67504 var c = new Array(pre.length + 1).join("-");
67505 return pre + this.upcomingInput() + "\n" + c + "^";
67506 },
67507
67508// test the lexed token: return FALSE when not a match, otherwise return token
67509test_match:function(match, indexed_rule) {
67510 var token,
67511 lines,
67512 backup;
67513
67514 if (this.options.backtrack_lexer) {
67515 // save context
67516 backup = {
67517 yylineno: this.yylineno,
67518 yylloc: {
67519 first_line: this.yylloc.first_line,
67520 last_line: this.last_line,
67521 first_column: this.yylloc.first_column,
67522 last_column: this.yylloc.last_column
67523 },
67524 yytext: this.yytext,
67525 match: this.match,
67526 matches: this.matches,
67527 matched: this.matched,
67528 yyleng: this.yyleng,
67529 offset: this.offset,
67530 _more: this._more,
67531 _input: this._input,
67532 yy: this.yy,
67533 conditionStack: this.conditionStack.slice(0),
67534 done: this.done
67535 };
67536 if (this.options.ranges) {
67537 backup.yylloc.range = this.yylloc.range.slice(0);
67538 }
67539 }
67540
67541 lines = match[0].match(/(?:\r\n?|\n).*/g);
67542 if (lines) {
67543 this.yylineno += lines.length;
67544 }
67545 this.yylloc = {
67546 first_line: this.yylloc.last_line,
67547 last_line: this.yylineno + 1,
67548 first_column: this.yylloc.last_column,
67549 last_column: lines ?
67550 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
67551 this.yylloc.last_column + match[0].length
67552 };
67553 this.yytext += match[0];
67554 this.match += match[0];
67555 this.matches = match;
67556 this.yyleng = this.yytext.length;
67557 if (this.options.ranges) {
67558 this.yylloc.range = [this.offset, this.offset += this.yyleng];
67559 }
67560 this._more = false;
67561 this._backtrack = false;
67562 this._input = this._input.slice(match[0].length);
67563 this.matched += match[0];
67564 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
67565 if (this.done && this._input) {
67566 this.done = false;
67567 }
67568 if (token) {
67569 return token;
67570 } else if (this._backtrack) {
67571 // recover context
67572 for (var k in backup) {
67573 this[k] = backup[k];
67574 }
67575 return false; // rule action called reject() implying the next rule should be tested instead.
67576 }
67577 return false;
67578 },
67579
67580// return next match in input
67581next:function () {
67582 if (this.done) {
67583 return this.EOF;
67584 }
67585 if (!this._input) {
67586 this.done = true;
67587 }
67588
67589 var token,
67590 match,
67591 tempMatch,
67592 index;
67593 if (!this._more) {
67594 this.yytext = '';
67595 this.match = '';
67596 }
67597 var rules = this._currentRules();
67598 for (var i = 0; i < rules.length; i++) {
67599 tempMatch = this._input.match(this.rules[rules[i]]);
67600 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
67601 match = tempMatch;
67602 index = i;
67603 if (this.options.backtrack_lexer) {
67604 token = this.test_match(tempMatch, rules[i]);
67605 if (token !== false) {
67606 return token;
67607 } else if (this._backtrack) {
67608 match = false;
67609 continue; // rule action called reject() implying a rule MISmatch.
67610 } else {
67611 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
67612 return false;
67613 }
67614 } else if (!this.options.flex) {
67615 break;
67616 }
67617 }
67618 }
67619 if (match) {
67620 token = this.test_match(match, rules[index]);
67621 if (token !== false) {
67622 return token;
67623 }
67624 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
67625 return false;
67626 }
67627 if (this._input === "") {
67628 return this.EOF;
67629 } else {
67630 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
67631 text: "",
67632 token: null,
67633 line: this.yylineno
67634 });
67635 }
67636 },
67637
67638// return next match that has a token
67639lex:function lex () {
67640 var r = this.next();
67641 if (r) {
67642 return r;
67643 } else {
67644 return this.lex();
67645 }
67646 },
67647
67648// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
67649begin:function begin (condition) {
67650 this.conditionStack.push(condition);
67651 },
67652
67653// pop the previously active lexer condition state off the condition stack
67654popState:function popState () {
67655 var n = this.conditionStack.length - 1;
67656 if (n > 0) {
67657 return this.conditionStack.pop();
67658 } else {
67659 return this.conditionStack[0];
67660 }
67661 },
67662
67663// produce the lexer rule set which is active for the currently active lexer condition state
67664_currentRules:function _currentRules () {
67665 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
67666 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
67667 } else {
67668 return this.conditions["INITIAL"].rules;
67669 }
67670 },
67671
67672// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
67673topState:function topState (n) {
67674 n = this.conditionStack.length - 1 - Math.abs(n || 0);
67675 if (n >= 0) {
67676 return this.conditionStack[n];
67677 } else {
67678 return "INITIAL";
67679 }
67680 },
67681
67682// alias for begin(condition)
67683pushState:function pushState (condition) {
67684 this.begin(condition);
67685 },
67686
67687// return the number of states currently on the stack
67688stateStackSize:function stateStackSize() {
67689 return this.conditionStack.length;
67690 },
67691options: {"case-insensitive":true},
67692performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
67693var YYSTATE=YY_START;
67694switch($avoiding_name_collisions) {
67695case 0: this.begin('open_directive'); return 39;
67696break;
67697case 1: this.begin('type_directive'); return 40;
67698break;
67699case 2: this.popState(); this.begin('arg_directive'); return 32;
67700break;
67701case 3: this.popState(); this.popState(); return 42;
67702break;
67703case 4:return 41;
67704break;
67705case 5:/* skip comments */
67706break;
67707case 6:/* skip comments */{ console.log('Crap after close'); }
67708break;
67709case 7:return 5;
67710break;
67711case 8:/* skip all whitespace */
67712break;
67713case 9:/* skip same-line whitespace */
67714break;
67715case 10:/* skip comments */
67716break;
67717case 11:/* skip comments */
67718break;
67719case 12: this.pushState('SCALE'); /* console.log('Got scale', yy_.yytext);*/ return 15;
67720break;
67721case 13:return 16;
67722break;
67723case 14:this.popState();
67724break;
67725case 15: this.pushState('STATE');
67726break;
67727case 16:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim(); /*console.warn('Fork Fork: ',yy_.yytext);*/return 23;
67728break;
67729case 17:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 24;
67730break;
67731case 18:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Fork: ',yy_.yytext);*/return 23;
67732break;
67733case 19:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 24;
67734break;
67735case 20:this.begin("STATE_STRING");
67736break;
67737case 21:this.popState();this.pushState('STATE_ID');return "AS";
67738break;
67739case 22:this.popState();/* console.log('STATE_ID', yy_.yytext);*/return "ID";
67740break;
67741case 23:this.popState();
67742break;
67743case 24: /*console.log('Long description:', yy_.yytext);*/return "STATE_DESCR";
67744break;
67745case 25:/*console.log('COMPOSIT_STATE', yy_.yytext);*/return 17;
67746break;
67747case 26:this.popState();
67748break;
67749case 27:this.popState();this.pushState('struct'); /*console.log('begin struct', yy_.yytext);*/return 18;
67750break;
67751case 28: /*console.log('Ending struct');*/ this.popState(); return 19;
67752break;
67753case 29:/* nothing */
67754break;
67755case 30: this.begin('NOTE'); return 26;
67756break;
67757case 31: this.popState();this.pushState('NOTE_ID');return 37;
67758break;
67759case 32: this.popState();this.pushState('NOTE_ID');return 38;
67760break;
67761case 33: this.popState();this.pushState('FLOATING_NOTE');
67762break;
67763case 34:this.popState();this.pushState('FLOATING_NOTE_ID');return "AS";
67764break;
67765case 35:/**/
67766break;
67767case 36: /*console.log('Floating note text: ', yy_.yytext);*/return "NOTE_TEXT";
67768break;
67769case 37:this.popState();/*console.log('Floating note ID', yy_.yytext);*/return "ID";
67770break;
67771case 38: this.popState();this.pushState('NOTE_TEXT');/*console.log('Got ID for note', yy_.yytext);*/return 22;
67772break;
67773case 39: this.popState();/*console.log('Got NOTE_TEXT for note',yy_.yytext);*/yy_.yytext = yy_.yytext.substr(2).trim();return 28;
67774break;
67775case 40: this.popState();/*console.log('Got NOTE_TEXT for note',yy_.yytext);*/yy_.yytext = yy_.yytext.slice(0,-8).trim();return 28;
67776break;
67777case 41: /*console.log('Got state diagram', yy_.yytext,'#');*/return 7;
67778break;
67779case 42: /*console.log('Got state diagram', yy_.yytext,'#');*/return 7;
67780break;
67781case 43: /*console.log('HIDE_EMPTY', yy_.yytext,'#');*/return 14;
67782break;
67783case 44: /*console.log('EDGE_STATE=',yy_.yytext);*/ return 36;
67784break;
67785case 45: /*console.log('=>ID=',yy_.yytext);*/ return 22;
67786break;
67787case 46: yy_.yytext = yy_.yytext.trim(); /*console.log('Descr = ', yy_.yytext);*/ return 12;
67788break;
67789case 47:return 13;
67790break;
67791case 48:return 25;
67792break;
67793case 49:return 5;
67794break;
67795case 50:return 'INVALID';
67796break;
67797}
67798},
67799rules: [/^(?:%%\{)/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],
67800conditions: {"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}}
67801});
67802return lexer;
67803})();
67804parser.lexer = lexer;
67805function Parser () {
67806 this.yy = {};
67807}
67808Parser.prototype = parser;parser.Parser = Parser;
67809return new Parser;
67810})();
67811
67812
67813if (true) {
67814exports.parser = parser;
67815exports.Parser = parser.Parser;
67816exports.parse = function () { return parser.parse.apply(parser, arguments); };
67817exports.main = function commonjsMain (args) {
67818 if (!args[1]) {
67819 console.log('Usage: '+args[0]+' FILE');
67820 process.exit(1);
67821 }
67822 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");
67823 return exports.parser.parse(source);
67824};
67825if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
67826 exports.main(process.argv.slice(1));
67827}
67828}
67829/* 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)))
67830
67831/***/ }),
67832
67833/***/ "./src/diagrams/state/shapes.js":
67834/*!**************************************!*\
67835 !*** ./src/diagrams/state/shapes.js ***!
67836 \**************************************/
67837/*! exports provided: drawStartState, drawDivider, drawSimpleState, drawDescrState, addTitleAndBox, drawText, drawNote, drawState, drawEdge */
67838/***/ (function(module, __webpack_exports__, __webpack_require__) {
67839
67840"use strict";
67841__webpack_require__.r(__webpack_exports__);
67842/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawStartState", function() { return drawStartState; });
67843/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawDivider", function() { return drawDivider; });
67844/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawSimpleState", function() { return drawSimpleState; });
67845/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawDescrState", function() { return drawDescrState; });
67846/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTitleAndBox", function() { return addTitleAndBox; });
67847/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawText", function() { return drawText; });
67848/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawNote", function() { return drawNote; });
67849/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawState", function() { return drawState; });
67850/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawEdge", function() { return drawEdge; });
67851/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
67852/* harmony import */ var _id_cache_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./id-cache.js */ "./src/diagrams/state/id-cache.js");
67853/* harmony import */ var _stateDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stateDb */ "./src/diagrams/state/stateDb.js");
67854/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
67855/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
67856/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../config */ "./src/config.js");
67857/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
67858
67859
67860
67861
67862
67863
67864 // let conf;
67865
67866/**
67867 * Draws a start state as a black circle
67868 */
67869
67870var drawStartState = function drawStartState(g) {
67871 return g.append('circle') // .style('stroke', 'black')
67872 // .style('fill', 'black')
67873 .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);
67874};
67875/**
67876 * Draws a start state as a black circle
67877 */
67878
67879var drawDivider = function drawDivider(g) {
67880 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);
67881};
67882/**
67883 * Draws a an end state as a black circle
67884 */
67885
67886var drawSimpleState = function drawSimpleState(g, stateDef) {
67887 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);
67888 var classBox = state.node().getBBox();
67889 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);
67890 return state;
67891};
67892/**
67893 * Draws a state with descriptions
67894 * @param {*} g
67895 * @param {*} stateDef
67896 */
67897
67898var drawDescrState = function drawDescrState(g, stateDef) {
67899 var addTspan = function addTspan(textEl, txt, isFirst) {
67900 var tSpan = textEl.append('tspan').attr('x', 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding).text(txt);
67901
67902 if (!isFirst) {
67903 tSpan.attr('dy', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.textHeight);
67904 }
67905 };
67906
67907 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]);
67908 var titleBox = title.node().getBBox();
67909 var titleHeight = titleBox.height;
67910 var description = g.append('text') // text label for the x axis
67911 .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');
67912 var isFirst = true;
67913 var isSecond = true;
67914 stateDef.descriptions.forEach(function (descr) {
67915 if (!isFirst) {
67916 addTspan(description, descr, isSecond);
67917 isSecond = false;
67918 }
67919
67920 isFirst = false;
67921 });
67922 var descrLine = g.append('line') // text label for the x axis
67923 .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');
67924 var descrBox = description.node().getBBox();
67925 var width = Math.max(descrBox.width, titleBox.width);
67926 descrLine.attr('x2', width + 3 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding); // const classBox = title.node().getBBox();
67927
67928 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);
67929 return g;
67930};
67931/**
67932 * Adds the creates a box around the existing content and adds a
67933 * panel for the id on top of the content.
67934 */
67935
67936/**
67937 * Function that creates an title row and a frame around a substate for a composit state diagram.
67938 * The function returns a new d3 svg object with updated width and height properties;
67939 * @param {*} g The d3 svg object for the substate to framed
67940 * @param {*} stateDef The info about the
67941 */
67942
67943var addTitleAndBox = function addTitleAndBox(g, stateDef, altBkg) {
67944 var pad = Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding;
67945 var dblPad = 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding;
67946 var orgBox = g.node().getBBox();
67947 var orgWidth = orgBox.width;
67948 var orgX = orgBox.x;
67949 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);
67950 var titleBox = title.node().getBBox();
67951 var titleWidth = titleBox.width + dblPad;
67952 var width = Math.max(titleWidth, orgWidth); // + dblPad;
67953
67954 if (width === orgWidth) {
67955 width = width + dblPad;
67956 }
67957
67958 var startX; // const lineY = 1 - getConfig().state.textHeight;
67959 // const descrLine = g
67960 // .append('line') // text label for the x axis
67961 // .attr('x1', 0)
67962 // .attr('y1', lineY)
67963 // .attr('y2', lineY)
67964 // .attr('class', 'descr-divider');
67965
67966 var graphBox = g.node().getBBox(); // console.warn(width / 2, titleWidth / 2, getConfig().state.padding, orgBox);
67967 // descrLine.attr('x2', graphBox.width + getConfig().state.padding);
67968
67969 if (stateDef.doc) {// cnsole.warn(
67970 // stateDef.id,
67971 // 'orgX: ',
67972 // orgX,
67973 // 'width: ',
67974 // width,
67975 // 'titleWidth: ',
67976 // titleWidth,
67977 // 'orgWidth: ',
67978 // orgWidth,
67979 // 'width',
67980 // width
67981 // );
67982 }
67983
67984 startX = orgX - pad;
67985
67986 if (titleWidth > orgWidth) {
67987 startX = (orgWidth - width) / 2 + pad;
67988 }
67989
67990 if (Math.abs(orgX - graphBox.x) < pad) {
67991 if (titleWidth > orgWidth) {
67992 startX = orgX - (titleWidth - orgWidth) / 2;
67993 }
67994 }
67995
67996 var lineY = 1 - Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.textHeight; // White color
67997
67998 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');
67999 title.attr('x', startX + pad);
68000 if (titleWidth <= orgWidth) title.attr('x', orgX + (width - dblPad) / 2 - titleWidth / 2 + pad); // Title background
68001
68002 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
68003 .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
68004
68005 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);
68006 return g;
68007};
68008
68009var drawEndState = function drawEndState(g) {
68010 g.append('circle') // .style('stroke', 'black')
68011 // .style('fill', 'white')
68012 .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);
68013 return g.append('circle') // .style('stroke', 'black')
68014 // .style('fill', 'black')
68015 .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);
68016};
68017
68018var drawForkJoinState = function drawForkJoinState(g, stateDef) {
68019 var width = Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.forkWidth;
68020 var height = Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.forkHeight;
68021
68022 if (stateDef.parentId) {
68023 var tmp = width;
68024 width = height;
68025 height = tmp;
68026 }
68027
68028 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);
68029};
68030
68031var drawText = function drawText(elem, textData) {
68032 // Remove and ignore br:s
68033 var nText = textData.text.replace(_common_common__WEBPACK_IMPORTED_MODULE_4__["default"].lineBreakRegex, ' ');
68034 var textElem = elem.append('text');
68035 textElem.attr('x', textData.x);
68036 textElem.attr('y', textData.y);
68037 textElem.style('text-anchor', textData.anchor);
68038 textElem.attr('fill', textData.fill);
68039
68040 if (typeof textData.class !== 'undefined') {
68041 textElem.attr('class', textData.class);
68042 }
68043
68044 var span = textElem.append('tspan');
68045 span.attr('x', textData.x + textData.textMargin * 2);
68046 span.attr('fill', textData.fill);
68047 span.text(nText);
68048 return textElem;
68049};
68050
68051var _drawLongText = function _drawLongText(_text, x, y, g) {
68052 var textHeight = 0;
68053 var textElem = g.append('text');
68054 textElem.style('text-anchor', 'start');
68055 textElem.attr('class', 'noteText');
68056
68057 var text = _text.replace(/\r\n/g, '<br/>');
68058
68059 text = text.replace(/\n/g, '<br/>');
68060 var lines = text.split(_common_common__WEBPACK_IMPORTED_MODULE_4__["default"].lineBreakRegex);
68061 var tHeight = 1.25 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.noteMargin;
68062 var _iteratorNormalCompletion = true;
68063 var _didIteratorError = false;
68064 var _iteratorError = undefined;
68065
68066 try {
68067 for (var _iterator = lines[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
68068 var _line = _step.value;
68069
68070 var txt = _line.trim();
68071
68072 if (txt.length > 0) {
68073 var span = textElem.append('tspan');
68074 span.text(txt);
68075
68076 if (tHeight === 0) {
68077 var textBounds = span.node().getBBox();
68078 tHeight += textBounds.height;
68079 } // console.warn('textBounds', textBounds);
68080
68081
68082 textHeight += tHeight;
68083 span.attr('x', x + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.noteMargin);
68084 span.attr('y', y + textHeight + 1.25 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.noteMargin);
68085 }
68086 }
68087 } catch (err) {
68088 _didIteratorError = true;
68089 _iteratorError = err;
68090 } finally {
68091 try {
68092 if (!_iteratorNormalCompletion && _iterator.return != null) {
68093 _iterator.return();
68094 }
68095 } finally {
68096 if (_didIteratorError) {
68097 throw _iteratorError;
68098 }
68099 }
68100 }
68101
68102 return {
68103 textWidth: textElem.node().getBBox().width,
68104 textHeight: textHeight
68105 };
68106};
68107/**
68108 * Draws a note to the diagram
68109 * @param text - The text of the given note.
68110 * @param g - The element the note is attached to.
68111 */
68112
68113
68114var drawNote = function drawNote(text, g) {
68115 g.attr('class', 'state-note');
68116 var note = g.append('rect').attr('x', 0).attr('y', Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding);
68117 var rectElem = g.append('g');
68118
68119 var _drawLongText2 = _drawLongText(text, 0, 0, rectElem),
68120 textWidth = _drawLongText2.textWidth,
68121 textHeight = _drawLongText2.textHeight;
68122
68123 note.attr('height', textHeight + 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.noteMargin);
68124 note.attr('width', textWidth + Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.noteMargin * 2);
68125 return note;
68126};
68127/**
68128 * Starting point for drawing a state. The function finds out the specifics
68129 * about the state and renders with approprtiate function.
68130 * @param {*} elem
68131 * @param {*} stateDef
68132 */
68133
68134var drawState = function drawState(elem, stateDef) {
68135 var id = stateDef.id;
68136 var stateInfo = {
68137 id: id,
68138 label: stateDef.id,
68139 width: 0,
68140 height: 0
68141 };
68142 var g = elem.append('g').attr('id', id).attr('class', 'stateGroup');
68143 if (stateDef.type === 'start') drawStartState(g);
68144 if (stateDef.type === 'end') drawEndState(g);
68145 if (stateDef.type === 'fork' || stateDef.type === 'join') drawForkJoinState(g, stateDef);
68146 if (stateDef.type === 'note') drawNote(stateDef.note.text, g);
68147 if (stateDef.type === 'divider') drawDivider(g);
68148 if (stateDef.type === 'default' && stateDef.descriptions.length === 0) drawSimpleState(g, stateDef);
68149 if (stateDef.type === 'default' && stateDef.descriptions.length > 0) drawDescrState(g, stateDef);
68150 var stateBox = g.node().getBBox();
68151 stateInfo.width = stateBox.width + 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding;
68152 stateInfo.height = stateBox.height + 2 * Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.padding;
68153 _id_cache_js__WEBPACK_IMPORTED_MODULE_1__["default"].set(id, stateInfo); // stateCnt++;
68154
68155 return stateInfo;
68156};
68157var edgeCount = 0;
68158var drawEdge = function drawEdge(elem, path, relation) {
68159 var getRelationType = function getRelationType(type) {
68160 switch (type) {
68161 case _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].relationType.AGGREGATION:
68162 return 'aggregation';
68163
68164 case _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].relationType.EXTENSION:
68165 return 'extension';
68166
68167 case _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].relationType.COMPOSITION:
68168 return 'composition';
68169
68170 case _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].relationType.DEPENDENCY:
68171 return 'dependency';
68172 }
68173 };
68174
68175 path.points = path.points.filter(function (p) {
68176 return !Number.isNaN(p.y);
68177 }); // The data for our line
68178
68179 var lineData = path.points; // This is the accessor function we talked about above
68180
68181 var lineFunction = Object(d3__WEBPACK_IMPORTED_MODULE_0__["line"])().x(function (d) {
68182 return d.x;
68183 }).y(function (d) {
68184 return d.y;
68185 }).curve(d3__WEBPACK_IMPORTED_MODULE_0__["curveBasis"]);
68186 var svgPath = elem.append('path').attr('d', lineFunction(lineData)).attr('id', 'edge' + edgeCount).attr('class', 'transition');
68187 var url = '';
68188
68189 if (Object(_config__WEBPACK_IMPORTED_MODULE_5__["getConfig"])().state.arrowMarkerAbsolute) {
68190 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
68191 url = url.replace(/\(/g, '\\(');
68192 url = url.replace(/\)/g, '\\)');
68193 }
68194
68195 svgPath.attr('marker-end', 'url(' + url + '#' + getRelationType(_stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].relationType.DEPENDENCY) + 'End' + ')');
68196
68197 if (typeof relation.title !== 'undefined') {
68198 var label = elem.append('g').attr('class', 'stateLabel');
68199
68200 var _utils$calcLabelPosit = _utils__WEBPACK_IMPORTED_MODULE_3__["default"].calcLabelPosition(path.points),
68201 x = _utils$calcLabelPosit.x,
68202 y = _utils$calcLabelPosit.y;
68203
68204 var rows = _common_common__WEBPACK_IMPORTED_MODULE_4__["default"].getRows(relation.title); // console.warn(rows);
68205
68206 var titleHeight = 0;
68207 var titleRows = [];
68208 var maxWidth = 0;
68209 var minX = 0;
68210
68211 for (var i = 0; i <= rows.length; i++) {
68212 var title = label.append('text').attr('text-anchor', 'middle').text(rows[i]).attr('x', x).attr('y', y + titleHeight);
68213 var boundstmp = title.node().getBBox();
68214 maxWidth = Math.max(maxWidth, boundstmp.width);
68215 minX = Math.min(minX, boundstmp.x);
68216 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info(boundstmp.x, x, y + titleHeight);
68217
68218 if (titleHeight === 0) {
68219 var titleBox = title.node().getBBox();
68220 titleHeight = titleBox.height;
68221 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info('Title height', titleHeight, y);
68222 }
68223
68224 titleRows.push(title);
68225 }
68226
68227 var boxHeight = titleHeight * rows.length;
68228
68229 if (rows.length > 1) {
68230 var heightAdj = (rows.length - 1) * titleHeight * 0.5;
68231 titleRows.forEach(function (title, i) {
68232 return title.attr('y', y + i * titleHeight - heightAdj);
68233 });
68234 boxHeight = titleHeight * rows.length;
68235 }
68236
68237 var bounds = label.node().getBBox();
68238 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);
68239 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info(bounds); //label.attr('transform', '0 -' + (bounds.y / 2));
68240 // Debug points
68241 // path.points.forEach(point => {
68242 // g.append('circle')
68243 // .style('stroke', 'red')
68244 // .style('fill', 'red')
68245 // .attr('r', 1)
68246 // .attr('cx', point.x)
68247 // .attr('cy', point.y);
68248 // });
68249 // g.append('circle')
68250 // .style('stroke', 'blue')
68251 // .style('fill', 'blue')
68252 // .attr('r', 1)
68253 // .attr('cx', x)
68254 // .attr('cy', y);
68255 }
68256
68257 edgeCount++;
68258};
68259
68260/***/ }),
68261
68262/***/ "./src/diagrams/state/stateDb.js":
68263/*!***************************************!*\
68264 !*** ./src/diagrams/state/stateDb.js ***!
68265 \***************************************/
68266/*! exports provided: parseDirective, addState, clear, getState, getStates, logDocuments, getRelations, addRelation, cleanupLabel, lineType, relationType, default */
68267/***/ (function(module, __webpack_exports__, __webpack_require__) {
68268
68269"use strict";
68270__webpack_require__.r(__webpack_exports__);
68271/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDirective", function() { return parseDirective; });
68272/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addState", function() { return addState; });
68273/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
68274/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getState", function() { return getState; });
68275/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStates", function() { return getStates; });
68276/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "logDocuments", function() { return logDocuments; });
68277/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRelations", function() { return getRelations; });
68278/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addRelation", function() { return addRelation; });
68279/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cleanupLabel", function() { return cleanupLabel; });
68280/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lineType", function() { return lineType; });
68281/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "relationType", function() { return relationType; });
68282/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
68283/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
68284/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
68285/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../config */ "./src/config.js");
68286function _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); }
68287
68288
68289
68290
68291
68292
68293var clone = function clone(o) {
68294 return JSON.parse(JSON.stringify(o));
68295};
68296
68297var rootDoc = [];
68298var parseDirective = function parseDirective(statement, context, type) {
68299 _mermaidAPI__WEBPACK_IMPORTED_MODULE_2__["default"].parseDirective(this, statement, context, type);
68300};
68301
68302var setRootDoc = function setRootDoc(o) {
68303 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Setting root doc', o); // rootDoc = { id: 'root', doc: o };
68304
68305 rootDoc = o;
68306};
68307
68308var getRootDoc = function getRootDoc() {
68309 return rootDoc;
68310};
68311
68312var docTranslator = function docTranslator(parent, node, first) {
68313 if (node.stmt === 'relation') {
68314 docTranslator(parent, node.state1, true);
68315 docTranslator(parent, node.state2, false);
68316 } else {
68317 if (node.stmt === 'state') {
68318 if (node.id === '[*]') {
68319 node.id = first ? parent.id + '_start' : parent.id + '_end';
68320 node.start = first;
68321 }
68322 }
68323
68324 if (node.doc) {
68325 var doc = []; // Check for concurrency
68326
68327 var i = 0;
68328 var currentDoc = [];
68329
68330 for (i = 0; i < node.doc.length; i++) {
68331 if (node.doc[i].type === 'divider') {
68332 // debugger;
68333 var newNode = clone(node.doc[i]);
68334 newNode.doc = clone(currentDoc);
68335 doc.push(newNode);
68336 currentDoc = [];
68337 } else {
68338 currentDoc.push(node.doc[i]);
68339 }
68340 } // If any divider was encountered
68341
68342
68343 if (doc.length > 0 && currentDoc.length > 0) {
68344 var _newNode = {
68345 stmt: 'state',
68346 id: Object(_utils__WEBPACK_IMPORTED_MODULE_1__["generateId"])(),
68347 type: 'divider',
68348 doc: clone(currentDoc)
68349 };
68350 doc.push(clone(_newNode));
68351 node.doc = doc;
68352 }
68353
68354 node.doc.forEach(function (docNode) {
68355 return docTranslator(node, docNode, true);
68356 });
68357 }
68358 }
68359};
68360
68361var getRootDocV2 = function getRootDocV2() {
68362 docTranslator({
68363 id: 'root'
68364 }, {
68365 id: 'root',
68366 doc: rootDoc
68367 }, true);
68368 return {
68369 id: 'root',
68370 doc: rootDoc
68371 };
68372};
68373
68374var extract = function extract(_doc) {
68375 // const res = { states: [], relations: [] };
68376 var doc;
68377
68378 if (_doc.doc) {
68379 doc = _doc.doc;
68380 } else {
68381 doc = _doc;
68382 } // let doc = root.doc;
68383 // if (!doc) {
68384 // doc = root;
68385 // }
68386
68387
68388 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info(doc);
68389 clear();
68390 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Extract', doc);
68391 doc.forEach(function (item) {
68392 if (item.stmt === 'state') {
68393 addState(item.id, item.type, item.doc, item.description, item.note);
68394 }
68395
68396 if (item.stmt === 'relation') {
68397 addRelation(item.state1.id, item.state2.id, item.description);
68398 }
68399 });
68400};
68401
68402var newDoc = function newDoc() {
68403 return {
68404 relations: [],
68405 states: {},
68406 documents: {}
68407 };
68408};
68409
68410var documents = {
68411 root: newDoc()
68412};
68413var currentDocument = documents.root;
68414var startCnt = 0;
68415var endCnt = 0; // eslint-disable-line
68416// let stateCnt = 0;
68417
68418/**
68419 * Function called by parser when a node definition has been found.
68420 * @param id
68421 * @param text
68422 * @param type
68423 * @param style
68424 */
68425
68426var addState = function addState(id, type, doc, descr, note) {
68427 if (typeof currentDocument.states[id] === 'undefined') {
68428 currentDocument.states[id] = {
68429 id: id,
68430 descriptions: [],
68431 type: type,
68432 doc: doc,
68433 note: note
68434 };
68435 } else {
68436 if (!currentDocument.states[id].doc) {
68437 currentDocument.states[id].doc = doc;
68438 }
68439
68440 if (!currentDocument.states[id].type) {
68441 currentDocument.states[id].type = type;
68442 }
68443 }
68444
68445 if (descr) {
68446 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Adding state ', id, descr);
68447 if (typeof descr === 'string') addDescription(id, descr.trim());
68448
68449 if (_typeof(descr) === 'object') {
68450 descr.forEach(function (des) {
68451 return addDescription(id, des.trim());
68452 });
68453 }
68454 }
68455
68456 if (note) currentDocument.states[id].note = note;
68457};
68458var clear = function clear() {
68459 documents = {
68460 root: newDoc()
68461 };
68462 currentDocument = documents.root;
68463 currentDocument = documents.root;
68464 startCnt = 0;
68465 endCnt = 0; // eslint-disable-line
68466
68467 classes = [];
68468};
68469var getState = function getState(id) {
68470 return currentDocument.states[id];
68471};
68472var getStates = function getStates() {
68473 return currentDocument.states;
68474};
68475var logDocuments = function logDocuments() {
68476 _logger__WEBPACK_IMPORTED_MODULE_0__["logger"].info('Documents = ', documents);
68477};
68478var getRelations = function getRelations() {
68479 return currentDocument.relations;
68480};
68481var addRelation = function addRelation(_id1, _id2, title) {
68482 var id1 = _id1;
68483 var id2 = _id2;
68484 var type1 = 'default';
68485 var type2 = 'default';
68486
68487 if (_id1 === '[*]') {
68488 startCnt++;
68489 id1 = 'start' + startCnt;
68490 type1 = 'start';
68491 }
68492
68493 if (_id2 === '[*]') {
68494 endCnt++;
68495 id2 = 'end' + startCnt;
68496 type2 = 'end';
68497 }
68498
68499 addState(id1, type1);
68500 addState(id2, type2);
68501 currentDocument.relations.push({
68502 id1: id1,
68503 id2: id2,
68504 title: title
68505 });
68506};
68507
68508var addDescription = function addDescription(id, _descr) {
68509 var theState = currentDocument.states[id];
68510 var descr = _descr;
68511
68512 if (descr[0] === ':') {
68513 descr = descr.substr(1).trim();
68514 }
68515
68516 theState.descriptions.push(descr);
68517};
68518
68519var cleanupLabel = function cleanupLabel(label) {
68520 if (label.substring(0, 1) === ':') {
68521 return label.substr(2).trim();
68522 } else {
68523 return label.trim();
68524 }
68525};
68526var lineType = {
68527 LINE: 0,
68528 DOTTED_LINE: 1
68529};
68530var dividerCnt = 0;
68531
68532var getDividerId = function getDividerId() {
68533 dividerCnt++;
68534 return 'divider-id-' + dividerCnt;
68535};
68536
68537var classes = [];
68538
68539var getClasses = function getClasses() {
68540 return classes;
68541};
68542
68543var getDirection = function getDirection() {
68544 return 'TB';
68545};
68546
68547var relationType = {
68548 AGGREGATION: 0,
68549 EXTENSION: 1,
68550 COMPOSITION: 2,
68551 DEPENDENCY: 3
68552};
68553
68554var trimColon = function trimColon(str) {
68555 return str && str[0] === ':' ? str.substr(1).trim() : str.trim();
68556};
68557
68558/* harmony default export */ __webpack_exports__["default"] = ({
68559 parseDirective: parseDirective,
68560 getConfig: function getConfig() {
68561 return _config__WEBPACK_IMPORTED_MODULE_3__["getConfig"]().state;
68562 },
68563 addState: addState,
68564 clear: clear,
68565 getState: getState,
68566 getStates: getStates,
68567 getRelations: getRelations,
68568 getClasses: getClasses,
68569 getDirection: getDirection,
68570 addRelation: addRelation,
68571 getDividerId: getDividerId,
68572 // addDescription,
68573 cleanupLabel: cleanupLabel,
68574 lineType: lineType,
68575 relationType: relationType,
68576 logDocuments: logDocuments,
68577 getRootDoc: getRootDoc,
68578 setRootDoc: setRootDoc,
68579 getRootDocV2: getRootDocV2,
68580 extract: extract,
68581 trimColon: trimColon
68582});
68583
68584/***/ }),
68585
68586/***/ "./src/diagrams/state/stateRenderer-v2.js":
68587/*!************************************************!*\
68588 !*** ./src/diagrams/state/stateRenderer-v2.js ***!
68589 \************************************************/
68590/*! exports provided: setConf, getClasses, draw, default */
68591/***/ (function(module, __webpack_exports__, __webpack_require__) {
68592
68593"use strict";
68594__webpack_require__.r(__webpack_exports__);
68595/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
68596/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClasses", function() { return getClasses; });
68597/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
68598/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
68599/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_0__);
68600/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
68601/* harmony import */ var _stateDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stateDb */ "./src/diagrams/state/stateDb.js");
68602/* harmony import */ var _parser_stateDiagram__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parser/stateDiagram */ "./src/diagrams/state/parser/stateDiagram.jison");
68603/* harmony import */ var _parser_stateDiagram__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_3__);
68604/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config */ "./src/config.js");
68605/* harmony import */ var _dagre_wrapper_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../dagre-wrapper/index.js */ "./src/dagre-wrapper/index.js");
68606/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
68607
68608
68609
68610
68611
68612
68613
68614var conf = {};
68615var setConf = function setConf(cnf) {
68616 var keys = Object.keys(cnf);
68617
68618 for (var i = 0; i < keys.length; i++) {
68619 conf[keys[i]] = cnf[keys[i]];
68620 }
68621};
68622var nodeDb = {};
68623/**
68624 * Returns the all the styles from classDef statements in the graph definition.
68625 * @returns {object} classDef styles
68626 */
68627
68628var getClasses = function getClasses(text) {
68629 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].trace('Extracting classes');
68630 _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
68631 var parser = _parser_stateDiagram__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
68632 parser.yy = _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"]; // Parse the graph definition
68633
68634 parser.parse(text);
68635 return _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].getClasses();
68636};
68637
68638var setupNode = function setupNode(g, parent, node, altFlag) {
68639 // Add the node
68640 if (node.id !== 'root') {
68641 var shape = 'rect';
68642
68643 if (node.start === true) {
68644 shape = 'start';
68645 }
68646
68647 if (node.start === false) {
68648 shape = 'end';
68649 }
68650
68651 if (node.type !== 'default') {
68652 shape = node.type;
68653 }
68654
68655 if (!nodeDb[node.id]) {
68656 nodeDb[node.id] = {
68657 id: node.id,
68658 shape: shape,
68659 description: node.id,
68660 classes: 'statediagram-state'
68661 };
68662 } // Build of the array of description strings accordinging
68663
68664
68665 if (node.description) {
68666 if (Array.isArray(nodeDb[node.id].description)) {
68667 // There already is an array of strings,add to it
68668 nodeDb[node.id].shape = 'rectWithTitle';
68669 nodeDb[node.id].description.push(node.description);
68670 } else {
68671 if (nodeDb[node.id].description.length > 0) {
68672 // if there is a description already transformit to an array
68673 nodeDb[node.id].shape = 'rectWithTitle';
68674
68675 if (nodeDb[node.id].description === node.id) {
68676 // If the previous description was the is, remove it
68677 nodeDb[node.id].description = [node.description];
68678 } else {
68679 nodeDb[node.id].description = [nodeDb[node.id].description, node.description];
68680 }
68681 } else {
68682 nodeDb[node.id].shape = 'rect';
68683 nodeDb[node.id].description = node.description;
68684 }
68685 }
68686 } // Save data for description and group so that for instance a statement without description overwrites
68687 // one with description
68688 // group
68689
68690
68691 if (!nodeDb[node.id].type && node.doc) {
68692 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info('Setting cluser for ', node.id);
68693 nodeDb[node.id].type = 'group';
68694 nodeDb[node.id].shape = node.type === 'divider' ? 'divider' : 'roundedWithTitle';
68695 nodeDb[node.id].classes = nodeDb[node.id].classes + ' ' + (altFlag ? 'statediagram-cluster statediagram-cluster-alt' : 'statediagram-cluster');
68696 }
68697
68698 var nodeData = {
68699 labelStyle: '',
68700 shape: nodeDb[node.id].shape,
68701 labelText: nodeDb[node.id].description,
68702 classes: nodeDb[node.id].classes,
68703 //classStr,
68704 style: '',
68705 //styles.style,
68706 id: node.id,
68707 type: nodeDb[node.id].type,
68708 padding: 15 //getConfig().flowchart.padding
68709
68710 };
68711
68712 if (node.note) {
68713 // Todo: set random id
68714 var noteData = {
68715 labelStyle: '',
68716 shape: 'note',
68717 labelText: node.note.text,
68718 classes: 'statediagram-note',
68719 //classStr,
68720 style: '',
68721 //styles.style,
68722 id: node.id + '----note',
68723 type: nodeDb[node.id].type,
68724 padding: 15 //getConfig().flowchart.padding
68725
68726 };
68727 var groupData = {
68728 labelStyle: '',
68729 shape: 'noteGroup',
68730 labelText: node.note.text,
68731 classes: nodeDb[node.id].classes,
68732 //classStr,
68733 style: '',
68734 //styles.style,
68735 id: node.id + '----parent',
68736 type: 'group',
68737 padding: 0 //getConfig().flowchart.padding
68738
68739 };
68740 g.setNode(node.id + '----parent', groupData);
68741 g.setNode(noteData.id, noteData);
68742 g.setNode(node.id, nodeData);
68743 g.setParent(node.id, node.id + '----parent');
68744 g.setParent(noteData.id, node.id + '----parent');
68745 var from = node.id;
68746 var to = noteData.id;
68747
68748 if (node.note.position === 'left of') {
68749 from = noteData.id;
68750 to = node.id;
68751 }
68752
68753 g.setEdge(from, to, {
68754 arrowhead: 'none',
68755 arrowType: '',
68756 style: 'fill:none',
68757 labelStyle: '',
68758 classes: 'transition note-edge',
68759 arrowheadStyle: 'fill: #333',
68760 labelpos: 'c',
68761 labelType: 'text',
68762 thickness: 'normal'
68763 });
68764 } else {
68765 g.setNode(node.id, nodeData);
68766 }
68767 }
68768
68769 if (parent) {
68770 if (parent.id !== 'root') {
68771 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info('Setting node ', node.id, ' to be child of its parent ', parent.id);
68772 g.setParent(node.id, parent.id);
68773 }
68774 }
68775
68776 if (node.doc) {
68777 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info('Adding nodes children ');
68778 setupDoc(g, node, node.doc, !altFlag);
68779 }
68780};
68781
68782var cnt = 0;
68783
68784var setupDoc = function setupDoc(g, parent, doc, altFlag) {
68785 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].trace('items', doc);
68786 doc.forEach(function (item) {
68787 if (item.stmt === 'state' || item.stmt === 'default') {
68788 setupNode(g, parent, item, altFlag);
68789 } else if (item.stmt === 'relation') {
68790 setupNode(g, parent, item.state1, altFlag);
68791 setupNode(g, parent, item.state2, altFlag);
68792 var edgeData = {
68793 id: 'edge' + cnt,
68794 arrowhead: 'normal',
68795 arrowTypeEnd: 'arrow_barb',
68796 style: 'fill:none',
68797 labelStyle: '',
68798 label: item.description,
68799 arrowheadStyle: 'fill: #333',
68800 labelpos: 'c',
68801 labelType: 'text',
68802 thickness: 'normal',
68803 classes: 'transition'
68804 };
68805 var startId = item.state1.id;
68806 var endId = item.state2.id;
68807 g.setEdge(startId, endId, edgeData, cnt);
68808 cnt++;
68809 }
68810 });
68811};
68812/**
68813 * Draws a flowchart in the tag with id: id based on the graph definition in text.
68814 * @param text
68815 * @param id
68816 */
68817
68818
68819var draw = function draw(text, id) {
68820 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info('Drawing state diagram (v2)', id);
68821 _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].clear();
68822 nodeDb = {};
68823 var parser = _parser_stateDiagram__WEBPACK_IMPORTED_MODULE_3___default.a.parser;
68824 parser.yy = _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"]; // Parse the graph definition
68825 // try {
68826
68827 parser.parse(text); // } catch (err) {
68828 // logger.error('Parsing failed', err);
68829 // }
68830 // Fetch the default direction, use TD if none was found
68831
68832 var dir = _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].getDirection();
68833
68834 if (typeof dir === 'undefined') {
68835 dir = 'LR';
68836 }
68837
68838 var conf = Object(_config__WEBPACK_IMPORTED_MODULE_4__["getConfig"])().state;
68839 var nodeSpacing = conf.nodeSpacing || 50;
68840 var rankSpacing = conf.rankSpacing || 50; // Create the input mermaid.graph
68841
68842 var g = new graphlib__WEBPACK_IMPORTED_MODULE_0___default.a.Graph({
68843 multigraph: true,
68844 compound: true
68845 }).setGraph({
68846 rankdir: 'TB',
68847 nodesep: nodeSpacing,
68848 ranksep: rankSpacing,
68849 marginx: 8,
68850 marginy: 8
68851 }).setDefaultEdgeLabel(function () {
68852 return {};
68853 });
68854 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info(_stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].getRootDocV2());
68855 _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].extract(_stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].getRootDocV2());
68856 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].info(_stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].getRootDocV2());
68857 setupNode(g, undefined, _stateDb__WEBPACK_IMPORTED_MODULE_2__["default"].getRootDocV2(), true); // Set up an SVG group so that we can translate the final graph.
68858
68859 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])("[id=\"".concat(id, "\"]")); // Run the renderer. This is what draws the final graph.
68860
68861 var element = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#' + id + ' g');
68862 Object(_dagre_wrapper_index_js__WEBPACK_IMPORTED_MODULE_5__["render"])(element, g, ['barb'], 'statediagram', id);
68863 var padding = 8; // const svgBounds = svg.node().getBBox();
68864 // const width = svgBounds.width + padding * 2;
68865 // const height = svgBounds.height + padding * 2;
68866 // logger.debug(
68867 // `new ViewBox 0 0 ${width} ${height}`,
68868 // `translate(${padding + g._label.marginx}, ${padding + g._label.marginy})`
68869 // );
68870 // if (conf.useMaxWidth) {
68871 // svg.attr('width', '100%');
68872 // svg.attr('style', `max-width: ${width}px;`);
68873 // } else {
68874 // svg.attr('height', height);
68875 // svg.attr('width', width);
68876 // }
68877 // svg.attr('viewBox', `0 0 ${width} ${height}`);
68878 // svg
68879 // .select('g')
68880 // .attr('transform', `translate(${padding - g._label.marginx}, ${padding - svgBounds.y})`);
68881
68882 var bounds = svg.node().getBBox();
68883 var width = bounds.width + padding * 2;
68884 var height = bounds.height + padding * 2; // diagram.attr('height', '100%');
68885 // diagram.attr('style', `width: ${bounds.width * 3 + conf.padding * 2};`);
68886 // diagram.attr('height', height);
68887 // Zoom in a bit
68888
68889 svg.attr('width', width * 1.75);
68890 svg.attr('class', 'statediagram'); // diagram.attr('height', bounds.height * 3 + conf.padding * 2);
68891 // svg.attr(
68892 // 'viewBox',
68893 // `${bounds.x - conf.padding} ${bounds.y - conf.padding} ` + width + ' ' + height
68894 // );
68895
68896 var svgBounds = svg.node().getBBox();
68897
68898 if (conf.useMaxWidth) {
68899 svg.attr('width', '100%');
68900 svg.attr('style', "max-width: ".concat(width, "px;"));
68901 } else {
68902 svg.attr('height', height);
68903 svg.attr('width', width);
68904 } // Ensure the viewBox includes the whole svgBounds area with extra space for padding
68905
68906
68907 var vBox = "".concat(svgBounds.x - padding, " ").concat(svgBounds.y - padding, " ").concat(width, " ").concat(height);
68908 _logger__WEBPACK_IMPORTED_MODULE_6__["logger"].debug("viewBox ".concat(vBox));
68909 svg.attr('viewBox', vBox); // Add label rects for non html labels
68910
68911 if (!conf.htmlLabels) {
68912 var labels = document.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
68913
68914 for (var k = 0; k < labels.length; k++) {
68915 var label = labels[k]; // Get dimensions of label
68916
68917 var dim = label.getBBox();
68918 var rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
68919 rect.setAttribute('rx', 0);
68920 rect.setAttribute('ry', 0);
68921 rect.setAttribute('width', dim.width);
68922 rect.setAttribute('height', dim.height);
68923 label.insertBefore(rect, label.firstChild);
68924 }
68925 }
68926};
68927/* harmony default export */ __webpack_exports__["default"] = ({
68928 setConf: setConf,
68929 getClasses: getClasses,
68930 draw: draw
68931});
68932
68933/***/ }),
68934
68935/***/ "./src/diagrams/state/stateRenderer.js":
68936/*!*********************************************!*\
68937 !*** ./src/diagrams/state/stateRenderer.js ***!
68938 \*********************************************/
68939/*! exports provided: setConf, draw, default */
68940/***/ (function(module, __webpack_exports__, __webpack_require__) {
68941
68942"use strict";
68943__webpack_require__.r(__webpack_exports__);
68944/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
68945/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
68946/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
68947/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dagre */ "./node_modules/dagre/index.js");
68948/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dagre__WEBPACK_IMPORTED_MODULE_1__);
68949/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
68950/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_2__);
68951/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
68952/* harmony import */ var _stateDb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./stateDb */ "./src/diagrams/state/stateDb.js");
68953/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
68954/* harmony import */ var _parser_stateDiagram__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./parser/stateDiagram */ "./src/diagrams/state/parser/stateDiagram.jison");
68955/* harmony import */ var _parser_stateDiagram__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_6__);
68956/* harmony import */ var _shapes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./shapes */ "./src/diagrams/state/shapes.js");
68957/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../config */ "./src/config.js");
68958
68959
68960
68961
68962
68963
68964 // import idCache from './id-cache';
68965
68966
68967
68968_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_6__["parser"].yy = _stateDb__WEBPACK_IMPORTED_MODULE_4__["default"]; // TODO Move conf object to main conf in mermaidAPI
68969
68970var conf;
68971var transformationLog = {};
68972var setConf = function setConf() {}; // Todo optimize
68973
68974/**
68975 * Setup arrow head and define the marker. The result is appended to the svg.
68976 */
68977
68978var insertMarkers = function insertMarkers(elem) {
68979 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');
68980};
68981/**
68982 * Draws a flowchart in the tag with id: id based on the graph definition in text.
68983 * @param text
68984 * @param id
68985 */
68986
68987
68988var draw = function draw(text, id) {
68989 conf = Object(_config__WEBPACK_IMPORTED_MODULE_8__["getConfig"])().state;
68990 _parser_stateDiagram__WEBPACK_IMPORTED_MODULE_6__["parser"].yy.clear();
68991 _parser_stateDiagram__WEBPACK_IMPORTED_MODULE_6__["parser"].parse(text);
68992 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Rendering diagram ' + text); // Fetch the default direction, use TD if none was found
68993
68994 var diagram = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])("[id='".concat(id, "']"));
68995 insertMarkers(diagram); // Layout graph, Create a new directed graph
68996
68997 var graph = new graphlib__WEBPACK_IMPORTED_MODULE_2___default.a.Graph({
68998 multigraph: true,
68999 compound: true,
69000 // acyclicer: 'greedy',
69001 rankdir: 'RL' // ranksep: '20'
69002
69003 }); // Default to assigning a new object as a label for each new edge.
69004
69005 graph.setDefaultEdgeLabel(function () {
69006 return {};
69007 });
69008 var rootDoc = _stateDb__WEBPACK_IMPORTED_MODULE_4__["default"].getRootDoc();
69009 renderDoc(rootDoc, diagram, undefined, false);
69010 var padding = conf.padding;
69011 var bounds = diagram.node().getBBox();
69012 var width = bounds.width + padding * 2;
69013 var height = bounds.height + padding * 2;
69014
69015 if (conf.useMaxWidth) {
69016 diagram.attr('width', '100%');
69017 diagram.attr('style', "max-width: ".concat(width * 1.75, "px;"));
69018 } else {
69019 // Zoom in a bit
69020 diagram.attr('width', width * 1.75);
69021 } // diagram.attr('height', bounds.height * 3 + conf.padding * 2);
69022
69023
69024 diagram.attr('viewBox', "".concat(bounds.x - conf.padding, " ").concat(bounds.y - conf.padding, " ") + width + ' ' + height);
69025};
69026
69027var getLabelWidth = function getLabelWidth(text) {
69028 return text ? text.length * conf.fontSizeFactor : 1;
69029};
69030
69031var renderDoc = function renderDoc(doc, diagram, parentId, altBkg) {
69032 // // Layout graph, Create a new directed graph
69033 var graph = new graphlib__WEBPACK_IMPORTED_MODULE_2___default.a.Graph({
69034 compound: true,
69035 multigraph: true
69036 });
69037 var i;
69038 var edgeFreeDoc = true;
69039
69040 for (i = 0; i < doc.length; i++) {
69041 if (doc[i].stmt === 'relation') {
69042 edgeFreeDoc = false;
69043 break;
69044 }
69045 } // Set an object for the graph label
69046
69047
69048 if (parentId) graph.setGraph({
69049 rankdir: 'LR',
69050 multigraph: true,
69051 compound: true,
69052 // acyclicer: 'greedy',
69053 ranker: 'tight-tree',
69054 ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,
69055 nodeSep: edgeFreeDoc ? 1 : 50,
69056 isMultiGraph: true // ranksep: 5,
69057 // nodesep: 1
69058
69059 });else {
69060 graph.setGraph({
69061 rankdir: 'TB',
69062 multigraph: true,
69063 compound: true,
69064 // isCompound: true,
69065 // acyclicer: 'greedy',
69066 // ranker: 'longest-path'
69067 ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,
69068 nodeSep: edgeFreeDoc ? 1 : 50,
69069 ranker: 'tight-tree',
69070 // ranker: 'network-simplex'
69071 isMultiGraph: true
69072 });
69073 } // Default to assigning a new object as a label for each new edge.
69074
69075 graph.setDefaultEdgeLabel(function () {
69076 return {};
69077 });
69078 _stateDb__WEBPACK_IMPORTED_MODULE_4__["default"].extract(doc);
69079 var states = _stateDb__WEBPACK_IMPORTED_MODULE_4__["default"].getStates();
69080 var relations = _stateDb__WEBPACK_IMPORTED_MODULE_4__["default"].getRelations();
69081 var keys = Object.keys(states);
69082 var first = true;
69083
69084 for (var _i = 0; _i < keys.length; _i++) {
69085 var stateDef = states[keys[_i]];
69086
69087 if (parentId) {
69088 stateDef.parentId = parentId;
69089 }
69090
69091 var node = void 0;
69092
69093 if (stateDef.doc) {
69094 var sub = diagram.append('g').attr('id', stateDef.id).attr('class', 'stateGroup');
69095 node = renderDoc(stateDef.doc, sub, stateDef.id, !altBkg);
69096
69097 if (first) {
69098 // first = false;
69099 sub = Object(_shapes__WEBPACK_IMPORTED_MODULE_7__["addTitleAndBox"])(sub, stateDef, altBkg);
69100 var boxBounds = sub.node().getBBox();
69101 node.width = boxBounds.width;
69102 node.height = boxBounds.height + conf.padding / 2;
69103 transformationLog[stateDef.id] = {
69104 y: conf.compositTitleSize
69105 };
69106 } else {
69107 // sub = addIdAndBox(sub, stateDef);
69108 var _boxBounds = sub.node().getBBox();
69109
69110 node.width = _boxBounds.width;
69111 node.height = _boxBounds.height; // transformationLog[stateDef.id] = { y: conf.compositTitleSize };
69112 }
69113 } else {
69114 node = Object(_shapes__WEBPACK_IMPORTED_MODULE_7__["drawState"])(diagram, stateDef, graph);
69115 }
69116
69117 if (stateDef.note) {
69118 // Draw note note
69119 var noteDef = {
69120 descriptions: [],
69121 id: stateDef.id + '-note',
69122 note: stateDef.note,
69123 type: 'note'
69124 };
69125 var note = Object(_shapes__WEBPACK_IMPORTED_MODULE_7__["drawState"])(diagram, noteDef, graph); // graph.setNode(node.id, node);
69126
69127 if (stateDef.note.position === 'left of') {
69128 graph.setNode(node.id + '-note', note);
69129 graph.setNode(node.id, node);
69130 } else {
69131 graph.setNode(node.id, node);
69132 graph.setNode(node.id + '-note', note);
69133 } // graph.setNode(node.id);
69134
69135
69136 graph.setParent(node.id, node.id + '-group');
69137 graph.setParent(node.id + '-note', node.id + '-group');
69138 } else {
69139 // Add nodes to the graph. The first argument is the node id. The second is
69140 // metadata about the node. In this case we're going to add labels to each of
69141 // our nodes.
69142 graph.setNode(node.id, node);
69143 }
69144 }
69145
69146 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Count=', graph.nodeCount(), graph);
69147 var cnt = 0;
69148 relations.forEach(function (relation) {
69149 cnt++;
69150 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Setting edge', relation);
69151 graph.setEdge(relation.id1, relation.id2, {
69152 relation: relation,
69153 width: getLabelWidth(relation.title),
69154 height: conf.labelHeight * _common_common__WEBPACK_IMPORTED_MODULE_5__["default"].getRows(relation.title).length,
69155 labelpos: 'c'
69156 }, 'id' + cnt);
69157 });
69158 dagre__WEBPACK_IMPORTED_MODULE_1___default.a.layout(graph);
69159 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Graph after layout', graph.nodes());
69160 var svgElem = diagram.node();
69161 graph.nodes().forEach(function (v) {
69162 if (typeof v !== 'undefined' && typeof graph.node(v) !== 'undefined') {
69163 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].warn('Node ' + v + ': ' + JSON.stringify(graph.node(v)));
69164 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) + ' )');
69165 Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + svgElem.id + ' #' + v).attr('data-x-shift', graph.node(v).x - graph.node(v).width / 2);
69166 var dividers = document.querySelectorAll('#' + svgElem.id + ' #' + v + ' .divider');
69167 dividers.forEach(function (divider) {
69168 var parent = divider.parentElement;
69169 var pWidth = 0;
69170 var pShift = 0;
69171
69172 if (parent) {
69173 if (parent.parentElement) pWidth = parent.parentElement.getBBox().width;
69174 pShift = parseInt(parent.getAttribute('data-x-shift'), 10);
69175
69176 if (Number.isNaN(pShift)) {
69177 pShift = 0;
69178 }
69179 }
69180
69181 divider.setAttribute('x1', 0 - pShift + 8);
69182 divider.setAttribute('x2', pWidth - pShift - 8);
69183 });
69184 } else {
69185 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('No Node ' + v + ': ' + JSON.stringify(graph.node(v)));
69186 }
69187 });
69188 var stateBox = svgElem.getBBox();
69189 graph.edges().forEach(function (e) {
69190 if (typeof e !== 'undefined' && typeof graph.edge(e) !== 'undefined') {
69191 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(graph.edge(e)));
69192 Object(_shapes__WEBPACK_IMPORTED_MODULE_7__["drawEdge"])(diagram, graph.edge(e), graph.edge(e).relation);
69193 }
69194 });
69195 stateBox = svgElem.getBBox();
69196 var stateInfo = {
69197 id: parentId ? parentId : 'root',
69198 label: parentId ? parentId : 'root',
69199 width: 0,
69200 height: 0
69201 };
69202 stateInfo.width = stateBox.width + 2 * conf.padding;
69203 stateInfo.height = stateBox.height + 2 * conf.padding;
69204 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Doc rendered', stateInfo, graph);
69205 return stateInfo;
69206};
69207
69208/* harmony default export */ __webpack_exports__["default"] = ({
69209 setConf: setConf,
69210 draw: draw
69211});
69212
69213/***/ }),
69214
69215/***/ "./src/diagrams/state/styles.js":
69216/*!**************************************!*\
69217 !*** ./src/diagrams/state/styles.js ***!
69218 \**************************************/
69219/*! exports provided: default */
69220/***/ (function(module, __webpack_exports__, __webpack_require__) {
69221
69222"use strict";
69223__webpack_require__.r(__webpack_exports__);
69224var getStyles = function getStyles(options) {
69225 return "g.stateGroup text {\n fill: ".concat(options.nodeBorder, ";\n stroke: none;\n font-size: 10px;\n font-family: 'trebuchet ms', verdana, arial;\n font-family: var(--mermaid-font-family);\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 font-family: 'trebuchet ms', verdana, arial;\n font-family: var(--mermaid-font-family);\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");
69226};
69227
69228/* harmony default export */ __webpack_exports__["default"] = (getStyles);
69229
69230/***/ }),
69231
69232/***/ "./src/diagrams/user-journey/journeyDb.js":
69233/*!************************************************!*\
69234 !*** ./src/diagrams/user-journey/journeyDb.js ***!
69235 \************************************************/
69236/*! exports provided: parseDirective, clear, setTitle, getTitle, addSection, getSections, getTasks, addTask, addTaskOrg, default */
69237/***/ (function(module, __webpack_exports__, __webpack_require__) {
69238
69239"use strict";
69240__webpack_require__.r(__webpack_exports__);
69241/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDirective", function() { return parseDirective; });
69242/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clear", function() { return clear; });
69243/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTitle", function() { return setTitle; });
69244/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTitle", function() { return getTitle; });
69245/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSection", function() { return addSection; });
69246/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSections", function() { return getSections; });
69247/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTasks", function() { return getTasks; });
69248/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTask", function() { return addTask; });
69249/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTaskOrg", function() { return addTaskOrg; });
69250/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
69251/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ "./src/config.js");
69252function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
69253
69254function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
69255
69256function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
69257
69258function _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; } }
69259
69260
69261
69262var title = '';
69263var currentSection = '';
69264var sections = [];
69265var tasks = [];
69266var rawTasks = [];
69267var parseDirective = function parseDirective(statement, context, type) {
69268 _mermaidAPI__WEBPACK_IMPORTED_MODULE_0__["default"].parseDirective(this, statement, context, type);
69269};
69270var clear = function clear() {
69271 sections.length = 0;
69272 tasks.length = 0;
69273 currentSection = '';
69274 title = '';
69275 rawTasks.length = 0;
69276};
69277var setTitle = function setTitle(txt) {
69278 title = txt;
69279};
69280var getTitle = function getTitle() {
69281 return title;
69282};
69283var addSection = function addSection(txt) {
69284 currentSection = txt;
69285 sections.push(txt);
69286};
69287var getSections = function getSections() {
69288 return sections;
69289};
69290var getTasks = function getTasks() {
69291 var allItemsProcessed = compileTasks();
69292 var maxDepth = 100;
69293 var iterationCount = 0;
69294
69295 while (!allItemsProcessed && iterationCount < maxDepth) {
69296 allItemsProcessed = compileTasks();
69297 iterationCount++;
69298 }
69299
69300 tasks.push.apply(tasks, rawTasks);
69301 return tasks;
69302};
69303
69304var updateActors = function updateActors() {
69305 var tempActors = [];
69306 tasks.forEach(function (task) {
69307 if (task.people) {
69308 tempActors.push.apply(tempActors, _toConsumableArray(task.people));
69309 }
69310 });
69311 var unique = new Set(tempActors);
69312 return _toConsumableArray(unique).sort();
69313};
69314
69315var addTask = function addTask(descr, taskData) {
69316 var pieces = taskData.substr(1).split(':');
69317 var score = 0;
69318 var peeps = [];
69319
69320 if (pieces.length === 1) {
69321 score = Number(pieces[0]);
69322 peeps = [];
69323 } else {
69324 score = Number(pieces[0]);
69325 peeps = pieces[1].split(',');
69326 }
69327
69328 var peopleList = peeps.map(function (s) {
69329 return s.trim();
69330 });
69331 var rawTask = {
69332 section: currentSection,
69333 type: currentSection,
69334 people: peopleList,
69335 task: descr,
69336 score: score
69337 };
69338 rawTasks.push(rawTask);
69339};
69340var addTaskOrg = function addTaskOrg(descr) {
69341 var newTask = {
69342 section: currentSection,
69343 type: currentSection,
69344 description: descr,
69345 task: descr,
69346 classes: []
69347 };
69348 tasks.push(newTask);
69349};
69350
69351var compileTasks = function compileTasks() {
69352 var compileTask = function compileTask(pos) {
69353 return rawTasks[pos].processed;
69354 };
69355
69356 var allProcessed = true;
69357
69358 for (var i = 0; i < rawTasks.length; i++) {
69359 compileTask(i);
69360 allProcessed = allProcessed && rawTasks[i].processed;
69361 }
69362
69363 return allProcessed;
69364};
69365
69366var getActors = function getActors() {
69367 return updateActors();
69368};
69369
69370/* harmony default export */ __webpack_exports__["default"] = ({
69371 parseDirective: parseDirective,
69372 getConfig: function getConfig() {
69373 return _config__WEBPACK_IMPORTED_MODULE_1__["getConfig"]().journey;
69374 },
69375 clear: clear,
69376 setTitle: setTitle,
69377 getTitle: getTitle,
69378 addSection: addSection,
69379 getSections: getSections,
69380 getTasks: getTasks,
69381 addTask: addTask,
69382 addTaskOrg: addTaskOrg,
69383 getActors: getActors
69384});
69385
69386/***/ }),
69387
69388/***/ "./src/diagrams/user-journey/journeyRenderer.js":
69389/*!******************************************************!*\
69390 !*** ./src/diagrams/user-journey/journeyRenderer.js ***!
69391 \******************************************************/
69392/*! exports provided: setConf, draw, bounds, drawTasks, default */
69393/***/ (function(module, __webpack_exports__, __webpack_require__) {
69394
69395"use strict";
69396__webpack_require__.r(__webpack_exports__);
69397/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
69398/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
69399/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bounds", function() { return bounds; });
69400/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawTasks", function() { return drawTasks; });
69401/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
69402/* harmony import */ var _parser_journey__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parser/journey */ "./src/diagrams/user-journey/parser/journey.jison");
69403/* harmony import */ var _parser_journey__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_parser_journey__WEBPACK_IMPORTED_MODULE_1__);
69404/* harmony import */ var _journeyDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./journeyDb */ "./src/diagrams/user-journey/journeyDb.js");
69405/* harmony import */ var _svgDraw__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./svgDraw */ "./src/diagrams/user-journey/svgDraw.js");
69406
69407
69408
69409
69410_parser_journey__WEBPACK_IMPORTED_MODULE_1__["parser"].yy = _journeyDb__WEBPACK_IMPORTED_MODULE_2__["default"];
69411var conf = {
69412 leftMargin: 150,
69413 diagramMarginX: 50,
69414 diagramMarginY: 20,
69415 // Margin between tasks
69416 taskMargin: 50,
69417 // Width of task boxes
69418 width: 150,
69419 // Height of task boxes
69420 height: 50,
69421 taskFontSize: 14,
69422 taskFontFamily: '"Open-Sans", "sans-serif"',
69423 // Margin around loop boxes
69424 boxMargin: 10,
69425 boxTextMargin: 5,
69426 noteMargin: 10,
69427 // Space between messages
69428 messageMargin: 35,
69429 // Multiline message alignment
69430 messageAlign: 'center',
69431 // Depending on css styling this might need adjustment
69432 // Projects the edge of the diagram downwards
69433 bottomMarginAdj: 1,
69434 // width of activation box
69435 activationWidth: 10,
69436 // text placement as: tspan | fo | old only text as before
69437 textPlacement: 'fo',
69438 actorColours: ['#8FBC8F', '#7CFC00', '#00FFFF', '#20B2AA', '#B0E0E6', '#FFFFE0'],
69439 sectionFills: ['#191970', '#8B008B', '#4B0082', '#2F4F4F', '#800000', '#8B4513', '#00008B'],
69440 sectionColours: ['#fff']
69441};
69442var setConf = function setConf(cnf) {
69443 var keys = Object.keys(cnf);
69444 keys.forEach(function (key) {
69445 conf[key] = cnf[key];
69446 });
69447};
69448var actors = {};
69449
69450function drawActorLegend(diagram) {
69451 // Draw the actors
69452 var yPos = 60;
69453 Object.keys(actors).forEach(function (person) {
69454 var colour = actors[person];
69455 var circleData = {
69456 cx: 20,
69457 cy: yPos,
69458 r: 7,
69459 fill: colour,
69460 stroke: '#000'
69461 };
69462 _svgDraw__WEBPACK_IMPORTED_MODULE_3__["default"].drawCircle(diagram, circleData);
69463 var labelData = {
69464 x: 40,
69465 y: yPos + 7,
69466 fill: '#666',
69467 text: person,
69468 textMargin: conf.boxTextMargin | 5
69469 };
69470 _svgDraw__WEBPACK_IMPORTED_MODULE_3__["default"].drawText(diagram, labelData);
69471 yPos += 20;
69472 });
69473}
69474
69475var LEFT_MARGIN = conf.leftMargin;
69476var draw = function draw(text, id) {
69477 _parser_journey__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.clear();
69478 _parser_journey__WEBPACK_IMPORTED_MODULE_1__["parser"].parse(text + '\n');
69479 bounds.init();
69480 var diagram = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + id);
69481 diagram.attr('xmlns:xlink', 'http://www.w3.org/1999/xlink');
69482 _svgDraw__WEBPACK_IMPORTED_MODULE_3__["default"].initGraphics(diagram);
69483 var tasks = _parser_journey__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.getTasks();
69484 var title = _parser_journey__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.getTitle();
69485 var actorNames = _parser_journey__WEBPACK_IMPORTED_MODULE_1__["parser"].yy.getActors();
69486
69487 for (var member in actors) {
69488 delete actors[member];
69489 }
69490
69491 var actorPos = 0;
69492 actorNames.forEach(function (actorName) {
69493 actors[actorName] = conf.actorColours[actorPos % conf.actorColours.length];
69494 actorPos++;
69495 });
69496 drawActorLegend(diagram);
69497 bounds.insert(0, 0, LEFT_MARGIN, Object.keys(actors).length * 50);
69498 drawTasks(diagram, tasks, 0);
69499 var box = bounds.getBounds();
69500
69501 if (title) {
69502 diagram.append('text').text(title).attr('x', LEFT_MARGIN).attr('font-size', '4ex').attr('font-weight', 'bold').attr('y', 25);
69503 }
69504
69505 var height = box.stopy - box.starty + 2 * conf.diagramMarginY;
69506 var width = LEFT_MARGIN + box.stopx + 2 * conf.diagramMarginX;
69507
69508 if (conf.useMaxWidth) {
69509 diagram.attr('height', '100%');
69510 diagram.attr('width', '100%');
69511 diagram.attr('style', 'max-width:' + width + 'px;');
69512 } else {
69513 diagram.attr('height', height);
69514 diagram.attr('width', width);
69515 } // Draw activity line
69516
69517
69518 diagram.append('line').attr('x1', LEFT_MARGIN).attr('y1', conf.height * 4) // One section head + one task + margins
69519 .attr('x2', width - LEFT_MARGIN - 4) // Subtract stroke width so arrow point is retained
69520 .attr('y2', conf.height * 4).attr('stroke-width', 4).attr('stroke', 'black').attr('marker-end', 'url(#arrowhead)');
69521 var extraVertForTitle = title ? 70 : 0;
69522 diagram.attr('viewBox', "".concat(box.startx, " -25 ").concat(width, " ").concat(height + extraVertForTitle));
69523 diagram.attr('preserveAspectRatio', 'xMinYMin meet');
69524};
69525var bounds = {
69526 data: {
69527 startx: undefined,
69528 stopx: undefined,
69529 starty: undefined,
69530 stopy: undefined
69531 },
69532 verticalPos: 0,
69533 sequenceItems: [],
69534 init: function init() {
69535 this.sequenceItems = [];
69536 this.data = {
69537 startx: undefined,
69538 stopx: undefined,
69539 starty: undefined,
69540 stopy: undefined
69541 };
69542 this.verticalPos = 0;
69543 },
69544 updateVal: function updateVal(obj, key, val, fun) {
69545 if (typeof obj[key] === 'undefined') {
69546 obj[key] = val;
69547 } else {
69548 obj[key] = fun(val, obj[key]);
69549 }
69550 },
69551 updateBounds: function updateBounds(startx, starty, stopx, stopy) {
69552 var _self = this;
69553
69554 var cnt = 0;
69555
69556 function updateFn(type) {
69557 return function updateItemBounds(item) {
69558 cnt++; // The loop sequenceItems is a stack so the biggest margins in the beginning of the sequenceItems
69559
69560 var n = _self.sequenceItems.length - cnt + 1;
69561
69562 _self.updateVal(item, 'starty', starty - n * conf.boxMargin, Math.min);
69563
69564 _self.updateVal(item, 'stopy', stopy + n * conf.boxMargin, Math.max);
69565
69566 _self.updateVal(bounds.data, 'startx', startx - n * conf.boxMargin, Math.min);
69567
69568 _self.updateVal(bounds.data, 'stopx', stopx + n * conf.boxMargin, Math.max);
69569
69570 if (!(type === 'activation')) {
69571 _self.updateVal(item, 'startx', startx - n * conf.boxMargin, Math.min);
69572
69573 _self.updateVal(item, 'stopx', stopx + n * conf.boxMargin, Math.max);
69574
69575 _self.updateVal(bounds.data, 'starty', starty - n * conf.boxMargin, Math.min);
69576
69577 _self.updateVal(bounds.data, 'stopy', stopy + n * conf.boxMargin, Math.max);
69578 }
69579 };
69580 }
69581
69582 this.sequenceItems.forEach(updateFn());
69583 },
69584 insert: function insert(startx, starty, stopx, stopy) {
69585 var _startx = Math.min(startx, stopx);
69586
69587 var _stopx = Math.max(startx, stopx);
69588
69589 var _starty = Math.min(starty, stopy);
69590
69591 var _stopy = Math.max(starty, stopy);
69592
69593 this.updateVal(bounds.data, 'startx', _startx, Math.min);
69594 this.updateVal(bounds.data, 'starty', _starty, Math.min);
69595 this.updateVal(bounds.data, 'stopx', _stopx, Math.max);
69596 this.updateVal(bounds.data, 'stopy', _stopy, Math.max);
69597 this.updateBounds(_startx, _starty, _stopx, _stopy);
69598 },
69599 bumpVerticalPos: function bumpVerticalPos(bump) {
69600 this.verticalPos = this.verticalPos + bump;
69601 this.data.stopy = this.verticalPos;
69602 },
69603 getVerticalPos: function getVerticalPos() {
69604 return this.verticalPos;
69605 },
69606 getBounds: function getBounds() {
69607 return this.data;
69608 }
69609};
69610var fills = conf.sectionFills;
69611var textColours = conf.sectionColours;
69612var drawTasks = function drawTasks(diagram, tasks, verticalPos) {
69613 var lastSection = '';
69614 var sectionVHeight = conf.height * 2 + conf.diagramMarginY;
69615 var taskPos = verticalPos + sectionVHeight;
69616 var sectionNumber = 0;
69617 var fill = '#CCC';
69618 var colour = 'black';
69619 var num = 0; // Draw the tasks
69620
69621 for (var i = 0; i < tasks.length; i++) {
69622 var task = tasks[i];
69623
69624 if (lastSection !== task.section) {
69625 fill = fills[sectionNumber % fills.length];
69626 num = sectionNumber % fills.length;
69627 colour = textColours[sectionNumber % textColours.length];
69628 var section = {
69629 x: i * conf.taskMargin + i * conf.width + LEFT_MARGIN,
69630 y: 50,
69631 text: task.section,
69632 fill: fill,
69633 num: num,
69634 colour: colour
69635 };
69636 _svgDraw__WEBPACK_IMPORTED_MODULE_3__["default"].drawSection(diagram, section, conf);
69637 lastSection = task.section;
69638 sectionNumber++;
69639 } // Collect the actors involved in the task
69640
69641
69642 var taskActors = task.people.reduce(function (acc, actorName) {
69643 if (actors[actorName]) {
69644 acc[actorName] = actors[actorName];
69645 }
69646
69647 return acc;
69648 }, {}); // Add some rendering data to the object
69649
69650 task.x = i * conf.taskMargin + i * conf.width + LEFT_MARGIN;
69651 task.y = taskPos;
69652 task.width = conf.diagramMarginX;
69653 task.height = conf.diagramMarginY;
69654 task.colour = colour;
69655 task.fill = fill;
69656 task.num = num;
69657 task.actors = taskActors; // Draw the box with the attached line
69658
69659 _svgDraw__WEBPACK_IMPORTED_MODULE_3__["default"].drawTask(diagram, task, conf);
69660 bounds.insert(task.x, task.y, task.x + task.width + conf.taskMargin, 300 + 5 * 30); // stopy is the length of the descenders.
69661 }
69662};
69663/* harmony default export */ __webpack_exports__["default"] = ({
69664 setConf: setConf,
69665 draw: draw
69666});
69667
69668/***/ }),
69669
69670/***/ "./src/diagrams/user-journey/parser/journey.jison":
69671/*!********************************************************!*\
69672 !*** ./src/diagrams/user-journey/parser/journey.jison ***!
69673 \********************************************************/
69674/*! no static exports found */
69675/***/ (function(module, exports, __webpack_require__) {
69676
69677/* WEBPACK VAR INJECTION */(function(process, module) {/* parser generated by jison 0.4.18 */
69678/*
69679 Returns a Parser object of the following structure:
69680
69681 Parser: {
69682 yy: {}
69683 }
69684
69685 Parser.prototype: {
69686 yy: {},
69687 trace: function(),
69688 symbols_: {associative list: name ==> number},
69689 terminals_: {associative list: number ==> name},
69690 productions_: [...],
69691 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
69692 table: [...],
69693 defaultActions: {...},
69694 parseError: function(str, hash),
69695 parse: function(input),
69696
69697 lexer: {
69698 EOF: 1,
69699 parseError: function(str, hash),
69700 setInput: function(input),
69701 input: function(),
69702 unput: function(str),
69703 more: function(),
69704 less: function(n),
69705 pastInput: function(),
69706 upcomingInput: function(),
69707 showPosition: function(),
69708 test_match: function(regex_match_array, rule_index),
69709 next: function(),
69710 lex: function(),
69711 begin: function(condition),
69712 popState: function(),
69713 _currentRules: function(),
69714 topState: function(),
69715 pushState: function(condition),
69716
69717 options: {
69718 ranges: boolean (optional: true ==> token location info will include a .range[] member)
69719 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
69720 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)
69721 },
69722
69723 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
69724 rules: [...],
69725 conditions: {associative list: name ==> set},
69726 }
69727 }
69728
69729
69730 token location info (@$, _$, etc.): {
69731 first_line: n,
69732 last_line: n,
69733 first_column: n,
69734 last_column: n,
69735 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
69736 }
69737
69738
69739 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
69740 text: (matched text)
69741 token: (the produced terminal token, if any)
69742 line: (yylineno)
69743 }
69744 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
69745 loc: (yylloc)
69746 expected: (string describing the set of expected tokens)
69747 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
69748 }
69749*/
69750var parser = (function(){
69751var 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];
69752var parser = {trace: function trace () { },
69753yy: {},
69754symbols_: {"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},
69755terminals_: {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"},
69756productions_: [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]],
69757performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
69758/* this == yyval */
69759
69760var $0 = $$.length - 1;
69761switch (yystate) {
69762case 1:
69763 return $$[$0-1];
69764break;
69765case 3:
69766 this.$ = []
69767break;
69768case 4:
69769$$[$0-1].push($$[$0]);this.$ = $$[$0-1]
69770break;
69771case 5: case 6:
69772 this.$ = $$[$0]
69773break;
69774case 7: case 8:
69775 this.$=[];
69776break;
69777case 11:
69778yy.setTitle($$[$0].substr(6));this.$=$$[$0].substr(6);
69779break;
69780case 12:
69781yy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);
69782break;
69783case 13:
69784yy.addTask($$[$0-1], $$[$0]);this.$='task';
69785break;
69786case 15:
69787 yy.parseDirective('%%{', 'open_directive');
69788break;
69789case 16:
69790 yy.parseDirective($$[$0], 'type_directive');
69791break;
69792case 17:
69793 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
69794break;
69795case 18:
69796 yy.parseDirective('}%%', 'close_directive', 'journey');
69797break;
69798}
69799},
69800table: [{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])],
69801defaultActions: {5:[2,15],7:[2,2],21:[2,18],26:[2,17]},
69802parseError: function parseError (str, hash) {
69803 if (hash.recoverable) {
69804 this.trace(str);
69805 } else {
69806 var error = new Error(str);
69807 error.hash = hash;
69808 throw error;
69809 }
69810},
69811parse: function parse(input) {
69812 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
69813 var args = lstack.slice.call(arguments, 1);
69814 var lexer = Object.create(this.lexer);
69815 var sharedState = { yy: {} };
69816 for (var k in this.yy) {
69817 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
69818 sharedState.yy[k] = this.yy[k];
69819 }
69820 }
69821 lexer.setInput(input, sharedState.yy);
69822 sharedState.yy.lexer = lexer;
69823 sharedState.yy.parser = this;
69824 if (typeof lexer.yylloc == 'undefined') {
69825 lexer.yylloc = {};
69826 }
69827 var yyloc = lexer.yylloc;
69828 lstack.push(yyloc);
69829 var ranges = lexer.options && lexer.options.ranges;
69830 if (typeof sharedState.yy.parseError === 'function') {
69831 this.parseError = sharedState.yy.parseError;
69832 } else {
69833 this.parseError = Object.getPrototypeOf(this).parseError;
69834 }
69835 function popStack(n) {
69836 stack.length = stack.length - 2 * n;
69837 vstack.length = vstack.length - n;
69838 lstack.length = lstack.length - n;
69839 }
69840 function lex() {
69841 var token;
69842 token = tstack.pop() || lexer.lex() || EOF;
69843 if (typeof token !== 'number') {
69844 if (token instanceof Array) {
69845 tstack = token;
69846 token = tstack.pop();
69847 }
69848 token = self.symbols_[token] || token;
69849 }
69850 return token;
69851 }
69852 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
69853 while (true) {
69854 state = stack[stack.length - 1];
69855 if (this.defaultActions[state]) {
69856 action = this.defaultActions[state];
69857 } else {
69858 if (symbol === null || typeof symbol == 'undefined') {
69859 symbol = lex();
69860 }
69861 action = table[state] && table[state][symbol];
69862 }
69863 if (typeof action === 'undefined' || !action.length || !action[0]) {
69864 var errStr = '';
69865 expected = [];
69866 for (p in table[state]) {
69867 if (this.terminals_[p] && p > TERROR) {
69868 expected.push('\'' + this.terminals_[p] + '\'');
69869 }
69870 }
69871 if (lexer.showPosition) {
69872 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
69873 } else {
69874 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
69875 }
69876 this.parseError(errStr, {
69877 text: lexer.match,
69878 token: this.terminals_[symbol] || symbol,
69879 line: lexer.yylineno,
69880 loc: yyloc,
69881 expected: expected
69882 });
69883 }
69884 if (action[0] instanceof Array && action.length > 1) {
69885 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
69886 }
69887 switch (action[0]) {
69888 case 1:
69889 stack.push(symbol);
69890 vstack.push(lexer.yytext);
69891 lstack.push(lexer.yylloc);
69892 stack.push(action[1]);
69893 symbol = null;
69894 if (!preErrorSymbol) {
69895 yyleng = lexer.yyleng;
69896 yytext = lexer.yytext;
69897 yylineno = lexer.yylineno;
69898 yyloc = lexer.yylloc;
69899 if (recovering > 0) {
69900 recovering--;
69901 }
69902 } else {
69903 symbol = preErrorSymbol;
69904 preErrorSymbol = null;
69905 }
69906 break;
69907 case 2:
69908 len = this.productions_[action[1]][1];
69909 yyval.$ = vstack[vstack.length - len];
69910 yyval._$ = {
69911 first_line: lstack[lstack.length - (len || 1)].first_line,
69912 last_line: lstack[lstack.length - 1].last_line,
69913 first_column: lstack[lstack.length - (len || 1)].first_column,
69914 last_column: lstack[lstack.length - 1].last_column
69915 };
69916 if (ranges) {
69917 yyval._$.range = [
69918 lstack[lstack.length - (len || 1)].range[0],
69919 lstack[lstack.length - 1].range[1]
69920 ];
69921 }
69922 r = this.performAction.apply(yyval, [
69923 yytext,
69924 yyleng,
69925 yylineno,
69926 sharedState.yy,
69927 action[1],
69928 vstack,
69929 lstack
69930 ].concat(args));
69931 if (typeof r !== 'undefined') {
69932 return r;
69933 }
69934 if (len) {
69935 stack = stack.slice(0, -1 * len * 2);
69936 vstack = vstack.slice(0, -1 * len);
69937 lstack = lstack.slice(0, -1 * len);
69938 }
69939 stack.push(this.productions_[action[1]][0]);
69940 vstack.push(yyval.$);
69941 lstack.push(yyval._$);
69942 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
69943 stack.push(newState);
69944 break;
69945 case 3:
69946 return true;
69947 }
69948 }
69949 return true;
69950}};
69951
69952/* generated by jison-lex 0.3.4 */
69953var lexer = (function(){
69954var lexer = ({
69955
69956EOF:1,
69957
69958parseError:function parseError(str, hash) {
69959 if (this.yy.parser) {
69960 this.yy.parser.parseError(str, hash);
69961 } else {
69962 throw new Error(str);
69963 }
69964 },
69965
69966// resets the lexer, sets new input
69967setInput:function (input, yy) {
69968 this.yy = yy || this.yy || {};
69969 this._input = input;
69970 this._more = this._backtrack = this.done = false;
69971 this.yylineno = this.yyleng = 0;
69972 this.yytext = this.matched = this.match = '';
69973 this.conditionStack = ['INITIAL'];
69974 this.yylloc = {
69975 first_line: 1,
69976 first_column: 0,
69977 last_line: 1,
69978 last_column: 0
69979 };
69980 if (this.options.ranges) {
69981 this.yylloc.range = [0,0];
69982 }
69983 this.offset = 0;
69984 return this;
69985 },
69986
69987// consumes and returns one char from the input
69988input:function () {
69989 var ch = this._input[0];
69990 this.yytext += ch;
69991 this.yyleng++;
69992 this.offset++;
69993 this.match += ch;
69994 this.matched += ch;
69995 var lines = ch.match(/(?:\r\n?|\n).*/g);
69996 if (lines) {
69997 this.yylineno++;
69998 this.yylloc.last_line++;
69999 } else {
70000 this.yylloc.last_column++;
70001 }
70002 if (this.options.ranges) {
70003 this.yylloc.range[1]++;
70004 }
70005
70006 this._input = this._input.slice(1);
70007 return ch;
70008 },
70009
70010// unshifts one char (or a string) into the input
70011unput:function (ch) {
70012 var len = ch.length;
70013 var lines = ch.split(/(?:\r\n?|\n)/g);
70014
70015 this._input = ch + this._input;
70016 this.yytext = this.yytext.substr(0, this.yytext.length - len);
70017 //this.yyleng -= len;
70018 this.offset -= len;
70019 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
70020 this.match = this.match.substr(0, this.match.length - 1);
70021 this.matched = this.matched.substr(0, this.matched.length - 1);
70022
70023 if (lines.length - 1) {
70024 this.yylineno -= lines.length - 1;
70025 }
70026 var r = this.yylloc.range;
70027
70028 this.yylloc = {
70029 first_line: this.yylloc.first_line,
70030 last_line: this.yylineno + 1,
70031 first_column: this.yylloc.first_column,
70032 last_column: lines ?
70033 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
70034 + oldLines[oldLines.length - lines.length].length - lines[0].length :
70035 this.yylloc.first_column - len
70036 };
70037
70038 if (this.options.ranges) {
70039 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
70040 }
70041 this.yyleng = this.yytext.length;
70042 return this;
70043 },
70044
70045// When called from action, caches matched text and appends it on next action
70046more:function () {
70047 this._more = true;
70048 return this;
70049 },
70050
70051// 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.
70052reject:function () {
70053 if (this.options.backtrack_lexer) {
70054 this._backtrack = true;
70055 } else {
70056 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(), {
70057 text: "",
70058 token: null,
70059 line: this.yylineno
70060 });
70061
70062 }
70063 return this;
70064 },
70065
70066// retain first n characters of the match
70067less:function (n) {
70068 this.unput(this.match.slice(n));
70069 },
70070
70071// displays already matched input, i.e. for error messages
70072pastInput:function () {
70073 var past = this.matched.substr(0, this.matched.length - this.match.length);
70074 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
70075 },
70076
70077// displays upcoming input, i.e. for error messages
70078upcomingInput:function () {
70079 var next = this.match;
70080 if (next.length < 20) {
70081 next += this._input.substr(0, 20-next.length);
70082 }
70083 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
70084 },
70085
70086// displays the character position where the lexing error occurred, i.e. for error messages
70087showPosition:function () {
70088 var pre = this.pastInput();
70089 var c = new Array(pre.length + 1).join("-");
70090 return pre + this.upcomingInput() + "\n" + c + "^";
70091 },
70092
70093// test the lexed token: return FALSE when not a match, otherwise return token
70094test_match:function(match, indexed_rule) {
70095 var token,
70096 lines,
70097 backup;
70098
70099 if (this.options.backtrack_lexer) {
70100 // save context
70101 backup = {
70102 yylineno: this.yylineno,
70103 yylloc: {
70104 first_line: this.yylloc.first_line,
70105 last_line: this.last_line,
70106 first_column: this.yylloc.first_column,
70107 last_column: this.yylloc.last_column
70108 },
70109 yytext: this.yytext,
70110 match: this.match,
70111 matches: this.matches,
70112 matched: this.matched,
70113 yyleng: this.yyleng,
70114 offset: this.offset,
70115 _more: this._more,
70116 _input: this._input,
70117 yy: this.yy,
70118 conditionStack: this.conditionStack.slice(0),
70119 done: this.done
70120 };
70121 if (this.options.ranges) {
70122 backup.yylloc.range = this.yylloc.range.slice(0);
70123 }
70124 }
70125
70126 lines = match[0].match(/(?:\r\n?|\n).*/g);
70127 if (lines) {
70128 this.yylineno += lines.length;
70129 }
70130 this.yylloc = {
70131 first_line: this.yylloc.last_line,
70132 last_line: this.yylineno + 1,
70133 first_column: this.yylloc.last_column,
70134 last_column: lines ?
70135 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
70136 this.yylloc.last_column + match[0].length
70137 };
70138 this.yytext += match[0];
70139 this.match += match[0];
70140 this.matches = match;
70141 this.yyleng = this.yytext.length;
70142 if (this.options.ranges) {
70143 this.yylloc.range = [this.offset, this.offset += this.yyleng];
70144 }
70145 this._more = false;
70146 this._backtrack = false;
70147 this._input = this._input.slice(match[0].length);
70148 this.matched += match[0];
70149 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
70150 if (this.done && this._input) {
70151 this.done = false;
70152 }
70153 if (token) {
70154 return token;
70155 } else if (this._backtrack) {
70156 // recover context
70157 for (var k in backup) {
70158 this[k] = backup[k];
70159 }
70160 return false; // rule action called reject() implying the next rule should be tested instead.
70161 }
70162 return false;
70163 },
70164
70165// return next match in input
70166next:function () {
70167 if (this.done) {
70168 return this.EOF;
70169 }
70170 if (!this._input) {
70171 this.done = true;
70172 }
70173
70174 var token,
70175 match,
70176 tempMatch,
70177 index;
70178 if (!this._more) {
70179 this.yytext = '';
70180 this.match = '';
70181 }
70182 var rules = this._currentRules();
70183 for (var i = 0; i < rules.length; i++) {
70184 tempMatch = this._input.match(this.rules[rules[i]]);
70185 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
70186 match = tempMatch;
70187 index = i;
70188 if (this.options.backtrack_lexer) {
70189 token = this.test_match(tempMatch, rules[i]);
70190 if (token !== false) {
70191 return token;
70192 } else if (this._backtrack) {
70193 match = false;
70194 continue; // rule action called reject() implying a rule MISmatch.
70195 } else {
70196 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
70197 return false;
70198 }
70199 } else if (!this.options.flex) {
70200 break;
70201 }
70202 }
70203 }
70204 if (match) {
70205 token = this.test_match(match, rules[index]);
70206 if (token !== false) {
70207 return token;
70208 }
70209 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
70210 return false;
70211 }
70212 if (this._input === "") {
70213 return this.EOF;
70214 } else {
70215 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
70216 text: "",
70217 token: null,
70218 line: this.yylineno
70219 });
70220 }
70221 },
70222
70223// return next match that has a token
70224lex:function lex () {
70225 var r = this.next();
70226 if (r) {
70227 return r;
70228 } else {
70229 return this.lex();
70230 }
70231 },
70232
70233// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
70234begin:function begin (condition) {
70235 this.conditionStack.push(condition);
70236 },
70237
70238// pop the previously active lexer condition state off the condition stack
70239popState:function popState () {
70240 var n = this.conditionStack.length - 1;
70241 if (n > 0) {
70242 return this.conditionStack.pop();
70243 } else {
70244 return this.conditionStack[0];
70245 }
70246 },
70247
70248// produce the lexer rule set which is active for the currently active lexer condition state
70249_currentRules:function _currentRules () {
70250 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
70251 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
70252 } else {
70253 return this.conditions["INITIAL"].rules;
70254 }
70255 },
70256
70257// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
70258topState:function topState (n) {
70259 n = this.conditionStack.length - 1 - Math.abs(n || 0);
70260 if (n >= 0) {
70261 return this.conditionStack[n];
70262 } else {
70263 return "INITIAL";
70264 }
70265 },
70266
70267// alias for begin(condition)
70268pushState:function pushState (condition) {
70269 this.begin(condition);
70270 },
70271
70272// return the number of states currently on the stack
70273stateStackSize:function stateStackSize() {
70274 return this.conditionStack.length;
70275 },
70276options: {"case-insensitive":true},
70277performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
70278var YYSTATE=YY_START;
70279switch($avoiding_name_collisions) {
70280case 0: this.begin('open_directive'); return 21;
70281break;
70282case 1: this.begin('type_directive'); return 22;
70283break;
70284case 2: this.popState(); this.begin('arg_directive'); return 15;
70285break;
70286case 3: this.popState(); this.popState(); return 24;
70287break;
70288case 4:return 23;
70289break;
70290case 5:/* skip comments */
70291break;
70292case 6:/* skip comments */
70293break;
70294case 7:return 11;
70295break;
70296case 8:/* skip whitespace */
70297break;
70298case 9:/* skip comments */
70299break;
70300case 10:return 4;
70301break;
70302case 11:return 17;
70303break;
70304case 12:return 18;
70305break;
70306case 13:return 19;
70307break;
70308case 14:return 20;
70309break;
70310case 15:return 15;
70311break;
70312case 16:return 6;
70313break;
70314case 17:return 'INVALID';
70315break;
70316}
70317},
70318rules: [/^(?:%%\{)/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],
70319conditions: {"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}}
70320});
70321return lexer;
70322})();
70323parser.lexer = lexer;
70324function Parser () {
70325 this.yy = {};
70326}
70327Parser.prototype = parser;parser.Parser = Parser;
70328return new Parser;
70329})();
70330
70331
70332if (true) {
70333exports.parser = parser;
70334exports.Parser = parser.Parser;
70335exports.parse = function () { return parser.parse.apply(parser, arguments); };
70336exports.main = function commonjsMain (args) {
70337 if (!args[1]) {
70338 console.log('Usage: '+args[0]+' FILE');
70339 process.exit(1);
70340 }
70341 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");
70342 return exports.parser.parse(source);
70343};
70344if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
70345 exports.main(process.argv.slice(1));
70346}
70347}
70348/* 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)))
70349
70350/***/ }),
70351
70352/***/ "./src/diagrams/user-journey/styles.js":
70353/*!*********************************************!*\
70354 !*** ./src/diagrams/user-journey/styles.js ***!
70355 \*********************************************/
70356/*! exports provided: default */
70357/***/ (function(module, __webpack_exports__, __webpack_require__) {
70358
70359"use strict";
70360__webpack_require__.r(__webpack_exports__);
70361var getStyles = function getStyles(options) {
70362 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");
70363};
70364
70365/* harmony default export */ __webpack_exports__["default"] = (getStyles);
70366
70367/***/ }),
70368
70369/***/ "./src/diagrams/user-journey/svgDraw.js":
70370/*!**********************************************!*\
70371 !*** ./src/diagrams/user-journey/svgDraw.js ***!
70372 \**********************************************/
70373/*! exports provided: drawRect, drawFace, drawCircle, drawText, drawLabel, drawSection, drawTask, drawBackgroundRect, getTextObj, getNoteRect, default */
70374/***/ (function(module, __webpack_exports__, __webpack_require__) {
70375
70376"use strict";
70377__webpack_require__.r(__webpack_exports__);
70378/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawRect", function() { return drawRect; });
70379/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawFace", function() { return drawFace; });
70380/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawCircle", function() { return drawCircle; });
70381/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawText", function() { return drawText; });
70382/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawLabel", function() { return drawLabel; });
70383/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawSection", function() { return drawSection; });
70384/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawTask", function() { return drawTask; });
70385/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawBackgroundRect", function() { return drawBackgroundRect; });
70386/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTextObj", function() { return getTextObj; });
70387/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNoteRect", function() { return getNoteRect; });
70388/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
70389
70390var drawRect = function drawRect(elem, rectData) {
70391 var rectElem = elem.append('rect');
70392 rectElem.attr('x', rectData.x);
70393 rectElem.attr('y', rectData.y);
70394 rectElem.attr('fill', rectData.fill);
70395 rectElem.attr('stroke', rectData.stroke);
70396 rectElem.attr('width', rectData.width);
70397 rectElem.attr('height', rectData.height);
70398 rectElem.attr('rx', rectData.rx);
70399 rectElem.attr('ry', rectData.ry);
70400
70401 if (typeof rectData.class !== 'undefined') {
70402 rectElem.attr('class', rectData.class);
70403 }
70404
70405 return rectElem;
70406};
70407var drawFace = function drawFace(element, faceData) {
70408 var radius = 15;
70409 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');
70410 var face = element.append('g'); //left eye
70411
70412 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
70413
70414 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');
70415
70416 function smile(face) {
70417 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
70418
70419 face.append('path').attr('class', 'mouth').attr('d', arc).attr('transform', 'translate(' + faceData.cx + ',' + (faceData.cy + 2) + ')');
70420 }
70421
70422 function sad(face) {
70423 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
70424
70425 face.append('path').attr('class', 'mouth').attr('d', arc).attr('transform', 'translate(' + faceData.cx + ',' + (faceData.cy + 7) + ')');
70426 }
70427
70428 function ambivalent(face) {
70429 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');
70430 }
70431
70432 if (faceData.score > 3) {
70433 smile(face);
70434 } else if (faceData.score < 3) {
70435 sad(face);
70436 } else {
70437 ambivalent(face);
70438 }
70439
70440 return circleElement;
70441};
70442var drawCircle = function drawCircle(element, circleData) {
70443 var circleElement = element.append('circle');
70444 circleElement.attr('cx', circleData.cx);
70445 circleElement.attr('cy', circleData.cy);
70446 circleElement.attr('fill', circleData.fill);
70447 circleElement.attr('stroke', circleData.stroke);
70448 circleElement.attr('r', circleData.r);
70449
70450 if (typeof circleElement.class !== 'undefined') {
70451 circleElement.attr('class', circleElement.class);
70452 }
70453
70454 if (typeof circleData.title !== 'undefined') {
70455 circleElement.append('title').text(circleData.title);
70456 }
70457
70458 return circleElement;
70459};
70460var drawText = function drawText(elem, textData) {
70461 // Remove and ignore br:s
70462 var nText = textData.text.replace(/<br\s*\/?>/gi, ' ');
70463 var textElem = elem.append('text');
70464 textElem.attr('x', textData.x);
70465 textElem.attr('y', textData.y);
70466 textElem.attr('class', 'legend');
70467 textElem.style('text-anchor', textData.anchor);
70468
70469 if (typeof textData.class !== 'undefined') {
70470 textElem.attr('class', textData.class);
70471 }
70472
70473 var span = textElem.append('tspan');
70474 span.attr('x', textData.x + textData.textMargin * 2);
70475 span.text(nText);
70476 return textElem;
70477};
70478var drawLabel = function drawLabel(elem, txtObject) {
70479 function genPoints(x, y, width, height, cut) {
70480 return x + ',' + y + ' ' + (x + width) + ',' + y + ' ' + (x + width) + ',' + (y + height - cut) + ' ' + (x + width - cut * 1.2) + ',' + (y + height) + ' ' + x + ',' + (y + height);
70481 }
70482
70483 var polygon = elem.append('polygon');
70484 polygon.attr('points', genPoints(txtObject.x, txtObject.y, 50, 20, 7));
70485 polygon.attr('class', 'labelBox');
70486 txtObject.y = txtObject.y + txtObject.labelMargin;
70487 txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
70488 drawText(elem, txtObject);
70489};
70490var drawSection = function drawSection(elem, section, conf) {
70491 var g = elem.append('g');
70492 var rect = getNoteRect();
70493 rect.x = section.x;
70494 rect.y = section.y;
70495 rect.fill = section.fill;
70496 rect.width = conf.width;
70497 rect.height = conf.height;
70498 rect.class = 'journey-section section-type-' + section.num;
70499 rect.rx = 3;
70500 rect.ry = 3;
70501 drawRect(g, rect);
70502
70503 _drawTextCandidateFunc(conf)(section.text, g, rect.x, rect.y, rect.width, rect.height, {
70504 class: 'journey-section section-type-' + section.num
70505 }, conf, section.colour);
70506};
70507var taskCount = -1;
70508/**
70509 * Draws an actor in the diagram with the attaced line
70510 * @param elem The HTML element
70511 * @param task The task to render
70512 * @param conf The global configuration
70513 */
70514
70515var drawTask = function drawTask(elem, task, conf) {
70516 var center = task.x + conf.width / 2;
70517 var g = elem.append('g');
70518 taskCount++;
70519 var maxHeight = 300 + 5 * 30;
70520 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');
70521 drawFace(g, {
70522 cx: center,
70523 cy: 300 + (5 - task.score) * 30,
70524 score: task.score
70525 });
70526 var rect = getNoteRect();
70527 rect.x = task.x;
70528 rect.y = task.y;
70529 rect.fill = task.fill;
70530 rect.width = conf.width;
70531 rect.height = conf.height;
70532 rect.class = 'task task-type-' + task.num;
70533 rect.rx = 3;
70534 rect.ry = 3;
70535 drawRect(g, rect);
70536 var xPos = task.x + 14;
70537 task.people.forEach(function (person) {
70538 var colour = task.actors[person];
70539 var circle = {
70540 cx: xPos,
70541 cy: task.y,
70542 r: 7,
70543 fill: colour,
70544 stroke: '#000',
70545 title: person
70546 };
70547 drawCircle(g, circle);
70548 xPos += 10;
70549 });
70550
70551 _drawTextCandidateFunc(conf)(task.task, g, rect.x, rect.y, rect.width, rect.height, {
70552 class: 'task'
70553 }, conf, task.colour);
70554};
70555/**
70556 * Draws a background rectangle
70557 * @param elem The html element
70558 * @param bounds The bounds of the drawing
70559 */
70560
70561var drawBackgroundRect = function drawBackgroundRect(elem, bounds) {
70562 var rectElem = drawRect(elem, {
70563 x: bounds.startx,
70564 y: bounds.starty,
70565 width: bounds.stopx - bounds.startx,
70566 height: bounds.stopy - bounds.starty,
70567 fill: bounds.fill,
70568 class: 'rect'
70569 });
70570 rectElem.lower();
70571};
70572var getTextObj = function getTextObj() {
70573 return {
70574 x: 0,
70575 y: 0,
70576 fill: undefined,
70577 'text-anchor': 'start',
70578 width: 100,
70579 height: 100,
70580 textMargin: 0,
70581 rx: 0,
70582 ry: 0
70583 };
70584};
70585var getNoteRect = function getNoteRect() {
70586 return {
70587 x: 0,
70588 y: 0,
70589 width: 100,
70590 anchor: 'start',
70591 height: 100,
70592 rx: 0,
70593 ry: 0
70594 };
70595};
70596
70597var _drawTextCandidateFunc = function () {
70598 function byText(content, g, x, y, width, height, textAttrs, colour) {
70599 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);
70600
70601 _setTextAttrs(text, textAttrs);
70602 }
70603
70604 function byTspan(content, g, x, y, width, height, textAttrs, conf, colour) {
70605 var taskFontSize = conf.taskFontSize,
70606 taskFontFamily = conf.taskFontFamily;
70607 var lines = content.split(/<br\s*\/?>/gi);
70608
70609 for (var i = 0; i < lines.length; i++) {
70610 var dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;
70611 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);
70612 text.append('tspan').attr('x', x + width / 2).attr('dy', dy).text(lines[i]);
70613 text.attr('y', y + height / 2.0).attr('dominant-baseline', 'central').attr('alignment-baseline', 'central');
70614
70615 _setTextAttrs(text, textAttrs);
70616 }
70617 }
70618
70619 function byFo(content, g, x, y, width, height, textAttrs, conf) {
70620 var body = g.append('switch');
70621 var f = body.append('foreignObject').attr('x', x).attr('y', y).attr('width', width).attr('height', height).attr('position', 'fixed');
70622 var text = f.append('div').style('display', 'table').style('height', '100%').style('width', '100%');
70623 text.append('div').attr('class', 'label').style('display', 'table-cell').style('text-align', 'center').style('vertical-align', 'middle') // .style('color', colour)
70624 .text(content);
70625 byTspan(content, body, x, y, width, height, textAttrs, conf);
70626
70627 _setTextAttrs(text, textAttrs);
70628 }
70629
70630 function _setTextAttrs(toText, fromTextAttrsDict) {
70631 for (var key in fromTextAttrsDict) {
70632 if (key in fromTextAttrsDict) {
70633 // eslint-disable-line
70634 // noinspection JSUnfilteredForInLoop
70635 toText.attr(key, fromTextAttrsDict[key]);
70636 }
70637 }
70638 }
70639
70640 return function (conf) {
70641 return conf.textPlacement === 'fo' ? byFo : conf.textPlacement === 'old' ? byText : byTspan;
70642 };
70643}();
70644
70645var initGraphics = function initGraphics(graphics) {
70646 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
70647};
70648
70649/* harmony default export */ __webpack_exports__["default"] = ({
70650 drawRect: drawRect,
70651 drawCircle: drawCircle,
70652 drawSection: drawSection,
70653 drawText: drawText,
70654 drawLabel: drawLabel,
70655 drawTask: drawTask,
70656 drawBackgroundRect: drawBackgroundRect,
70657 getTextObj: getTextObj,
70658 getNoteRect: getNoteRect,
70659 initGraphics: initGraphics
70660});
70661
70662/***/ }),
70663
70664/***/ "./src/errorRenderer.js":
70665/*!******************************!*\
70666 !*** ./src/errorRenderer.js ***!
70667 \******************************/
70668/*! exports provided: setConf, draw, default */
70669/***/ (function(module, __webpack_exports__, __webpack_require__) {
70670
70671"use strict";
70672__webpack_require__.r(__webpack_exports__);
70673/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConf", function() { return setConf; });
70674/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draw", function() { return draw; });
70675/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
70676/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
70677/**
70678 * Created by knut on 14-12-11.
70679 */
70680
70681
70682var conf = {};
70683var setConf = function setConf(cnf) {
70684 var keys = Object.keys(cnf);
70685 keys.forEach(function (key) {
70686 conf[key] = cnf[key];
70687 });
70688};
70689/**
70690 * Draws a an info picture in the tag with id: id based on the graph definition in text.
70691 * @param text
70692 * @param id
70693 */
70694
70695var draw = function draw(id, ver) {
70696 try {
70697 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('Renering svg for syntax error\n');
70698 var svg = Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + id);
70699 var g = svg.append('g');
70700 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');
70701 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');
70702 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');
70703 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');
70704 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');
70705 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');
70706 g.append('text') // text label for the x axis
70707 .attr('class', 'error-text').attr('x', 1240).attr('y', 250).attr('font-size', '150px').style('text-anchor', 'middle').text('Syntax error in graph');
70708 g.append('text') // text label for the x axis
70709 .attr('class', 'error-text').attr('x', 1050).attr('y', 400).attr('font-size', '100px').style('text-anchor', 'middle').text('mermaid version ' + ver);
70710 svg.attr('height', 100);
70711 svg.attr('width', 400);
70712 svg.attr('viewBox', '768 0 512 512');
70713 } catch (e) {
70714 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].error('Error while rendering info diagram');
70715 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].error(e.message);
70716 }
70717};
70718/* harmony default export */ __webpack_exports__["default"] = ({
70719 setConf: setConf,
70720 draw: draw
70721});
70722
70723/***/ }),
70724
70725/***/ "./src/logger.js":
70726/*!***********************!*\
70727 !*** ./src/logger.js ***!
70728 \***********************/
70729/*! exports provided: LEVELS, logger, setLogLevel */
70730/***/ (function(module, __webpack_exports__, __webpack_require__) {
70731
70732"use strict";
70733__webpack_require__.r(__webpack_exports__);
70734/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LEVELS", function() { return LEVELS; });
70735/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "logger", function() { return logger; });
70736/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLogLevel", function() { return setLogLevel; });
70737/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-mini */ "./node_modules/moment-mini/moment.min.js");
70738/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_mini__WEBPACK_IMPORTED_MODULE_0__);
70739 //
70740
70741var LEVELS = {
70742 debug: 1,
70743 info: 2,
70744 warn: 3,
70745 error: 4,
70746 fatal: 5
70747};
70748var logger = {
70749 debug: function debug() {},
70750 info: function info() {},
70751 warn: function warn() {},
70752 error: function error() {},
70753 fatal: function fatal() {}
70754};
70755var setLogLevel = function setLogLevel() {
70756 var level = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'fatal';
70757
70758 if (isNaN(level)) {
70759 level = level.toLowerCase();
70760
70761 if (LEVELS[level] !== undefined) {
70762 level = LEVELS[level];
70763 }
70764 }
70765
70766 logger.trace = function () {};
70767
70768 logger.debug = function () {};
70769
70770 logger.info = function () {};
70771
70772 logger.warn = function () {};
70773
70774 logger.error = function () {};
70775
70776 logger.fatal = function () {};
70777
70778 if (level <= LEVELS.fatal) {
70779 logger.fatal = console.error ? console.error.bind(console, format('FATAL'), 'color: orange') : console.log.bind(console, '\x1b[35m', format('FATAL'));
70780 }
70781
70782 if (level <= LEVELS.error) {
70783 logger.error = console.error ? console.error.bind(console, format('ERROR'), 'color: orange') : console.log.bind(console, '\x1b[31m', format('ERROR'));
70784 }
70785
70786 if (level <= LEVELS.warn) {
70787 logger.warn = console.warn ? console.warn.bind(console, format('WARN'), 'color: orange') : console.log.bind(console, "\x1B[33m", format('WARN'));
70788 }
70789
70790 if (level <= LEVELS.info) {
70791 logger.info = console.info ? // ? console.info.bind(console, '\x1b[34m', format('INFO'), 'color: blue')
70792 console.info.bind(console, format('INFO'), 'color: lightblue') : console.log.bind(console, '\x1b[34m', format('INFO'));
70793 }
70794
70795 if (level <= LEVELS.debug) {
70796 logger.debug = console.debug ? console.debug.bind(console, format('DEBUG'), 'color: lightgreen') : console.log.bind(console, '\x1b[32m', format('DEBUG'));
70797 }
70798};
70799
70800var format = function format(level) {
70801 var time = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()().format('ss.SSS');
70802 return "%c".concat(time, " : ").concat(level, " : ");
70803};
70804
70805/***/ }),
70806
70807/***/ "./src/mermaid.js":
70808/*!************************!*\
70809 !*** ./src/mermaid.js ***!
70810 \************************/
70811/*! exports provided: default */
70812/***/ (function(module, __webpack_exports__, __webpack_require__) {
70813
70814"use strict";
70815__webpack_require__.r(__webpack_exports__);
70816/* harmony import */ var entity_decode_browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! entity-decode/browser */ "./node_modules/entity-decode/browser.js");
70817/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mermaidAPI */ "./src/mermaidAPI.js");
70818/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
70819/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ "./src/utils.js");
70820/**
70821 * Web page integration module for the mermaid framework. It uses the mermaidAPI for mermaid functionality and to render
70822 * the diagrams to svg code.
70823 */
70824// import { decode } from 'he';
70825
70826
70827
70828
70829/**
70830 * ## init
70831 * Function that goes through the document to find the chart definitions in there and render them.
70832 *
70833 * The function tags the processed attributes with the attribute data-processed and ignores found elements with the
70834 * attribute already set. This way the init function can be triggered several times.
70835 *
70836 * Optionally, `init` can accept in the second argument one of the following:
70837 * - a DOM Node
70838 * - an array of DOM nodes (as would come from a jQuery selector)
70839 * - a W3C selector, a la `.mermaid`
70840 *
70841 * ```mermaid
70842 * graph LR;
70843 * a(Find elements)-->b{Processed}
70844 * b-->|Yes|c(Leave element)
70845 * b-->|No |d(Transform)
70846 * ```
70847 * Renders the mermaid diagrams
70848 * @param nodes a css selector or an array of nodes
70849 */
70850
70851var init = function init() {
70852 var _this = this;
70853
70854 var conf = _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].getConfig(); // console.log('Starting rendering diagrams (init) - mermaid.init', conf);
70855
70856 var nodes;
70857
70858 if (arguments.length >= 2) {
70859 /*! sequence config was passed as #1 */
70860 if (typeof arguments[0] !== 'undefined') {
70861 mermaid.sequenceConfig = arguments[0];
70862 }
70863
70864 nodes = arguments[1];
70865 } else {
70866 nodes = arguments[0];
70867 } // if last argument is a function this is the callback function
70868
70869
70870 var callback;
70871
70872 if (typeof arguments[arguments.length - 1] === 'function') {
70873 callback = arguments[arguments.length - 1];
70874 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Callback function found');
70875 } else {
70876 if (typeof conf.mermaid !== 'undefined') {
70877 if (typeof conf.mermaid.callback === 'function') {
70878 callback = conf.mermaid.callback;
70879 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Callback function found');
70880 } else {
70881 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('No Callback function found');
70882 }
70883 }
70884 }
70885
70886 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
70887
70888 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Start On Load before: ' + mermaid.startOnLoad);
70889
70890 if (typeof mermaid.startOnLoad !== 'undefined') {
70891 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Start On Load inner: ' + mermaid.startOnLoad);
70892 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].updateSiteConfig({
70893 startOnLoad: mermaid.startOnLoad
70894 });
70895 }
70896
70897 if (typeof mermaid.ganttConfig !== 'undefined') {
70898 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].updateSiteConfig({
70899 gantt: mermaid.ganttConfig
70900 });
70901 }
70902
70903 var txt;
70904
70905 var _loop = function _loop(i) {
70906 var element = nodes[i];
70907 /*! Check if previously processed */
70908
70909 if (!element.getAttribute('data-processed')) {
70910 element.setAttribute('data-processed', true);
70911 } else {
70912 return "continue";
70913 }
70914
70915 var id = "mermaid-".concat(Date.now()); // Fetch the graph definition including tags
70916
70917 txt = element.innerHTML; // transforms the html to pure text
70918
70919 txt = Object(entity_decode_browser__WEBPACK_IMPORTED_MODULE_0__["default"])(txt).trim().replace(/<br\s*\/?>/gi, '<br/>');
70920 var init = _utils__WEBPACK_IMPORTED_MODULE_3__["default"].detectInit(txt);
70921
70922 if (init) {
70923 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('Detected early reinit: ', init);
70924 }
70925
70926 try {
70927 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].render(id, txt, function (svgCode, bindFunctions) {
70928 element.innerHTML = svgCode;
70929
70930 if (typeof callback !== 'undefined') {
70931 callback(id);
70932 }
70933
70934 if (bindFunctions) bindFunctions(element);
70935 }, element);
70936 } catch (e) {
70937 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].warn('Syntax Error rendering');
70938 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].warn(e);
70939
70940 if (_this.parseError) {
70941 _this.parseError(e);
70942 }
70943 }
70944 };
70945
70946 for (var i = 0; i < nodes.length; i++) {
70947 var _ret = _loop(i);
70948
70949 if (_ret === "continue") continue;
70950 }
70951};
70952
70953var initialize = function initialize(config) {
70954 // mermaidAPI.reset();
70955 if (typeof config.mermaid !== 'undefined') {
70956 if (typeof config.mermaid.startOnLoad !== 'undefined') {
70957 mermaid.startOnLoad = config.mermaid.startOnLoad;
70958 }
70959
70960 if (typeof config.mermaid.htmlLabels !== 'undefined') {
70961 mermaid.htmlLabels = config.mermaid.htmlLabels;
70962 }
70963 }
70964
70965 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].initialize(config); // mermaidAPI.reset();
70966};
70967/**
70968 * ##contentLoaded
70969 * Callback function that is called when page is loaded. This functions fetches configuration for mermaid rendering and
70970 * calls init for rendering the mermaid diagrams on the page.
70971 */
70972
70973
70974var contentLoaded = function contentLoaded() {
70975 var config;
70976
70977 if (mermaid.startOnLoad) {
70978 // No config found, do check API config
70979 config = _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].getConfig();
70980
70981 if (config.startOnLoad) {
70982 mermaid.init();
70983 }
70984 } else {
70985 if (typeof mermaid.startOnLoad === 'undefined') {
70986 _logger__WEBPACK_IMPORTED_MODULE_2__["logger"].debug('In start, no config');
70987 config = _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].getConfig();
70988
70989 if (config.startOnLoad) {
70990 mermaid.init();
70991 }
70992 }
70993 }
70994};
70995
70996if (typeof document !== 'undefined') {
70997 /*!
70998 * Wait for document loaded before starting the execution
70999 */
71000 window.addEventListener('load', function () {
71001 contentLoaded();
71002 }, false);
71003}
71004
71005var mermaid = {
71006 startOnLoad: true,
71007 htmlLabels: true,
71008 mermaidAPI: _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"],
71009 parse: _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].parse,
71010 render: _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].render,
71011 init: init,
71012 initialize: initialize,
71013 contentLoaded: contentLoaded
71014};
71015/* harmony default export */ __webpack_exports__["default"] = (mermaid);
71016
71017/***/ }),
71018
71019/***/ "./src/mermaidAPI.js":
71020/*!***************************!*\
71021 !*** ./src/mermaidAPI.js ***!
71022 \***************************/
71023/*! exports provided: encodeEntities, decodeEntities, default */
71024/***/ (function(module, __webpack_exports__, __webpack_require__) {
71025
71026"use strict";
71027__webpack_require__.r(__webpack_exports__);
71028/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "encodeEntities", function() { return encodeEntities; });
71029/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "decodeEntities", function() { return decodeEntities; });
71030/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/stylis.js");
71031/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(stylis__WEBPACK_IMPORTED_MODULE_0__);
71032/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
71033/* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../package.json */ "./package.json");
71034var _package_json__WEBPACK_IMPORTED_MODULE_2___namespace = /*#__PURE__*/__webpack_require__.t(/*! ../package.json */ "./package.json", 1);
71035/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
71036/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils */ "./src/utils.js");
71037/* harmony import */ var _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./diagrams/flowchart/flowRenderer */ "./src/diagrams/flowchart/flowRenderer.js");
71038/* harmony import */ var _diagrams_flowchart_flowRenderer_v2__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./diagrams/flowchart/flowRenderer-v2 */ "./src/diagrams/flowchart/flowRenderer-v2.js");
71039/* harmony import */ var _diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./diagrams/flowchart/parser/flow */ "./src/diagrams/flowchart/parser/flow.jison");
71040/* harmony import */ var _diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7__);
71041/* harmony import */ var _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./diagrams/flowchart/flowDb */ "./src/diagrams/flowchart/flowDb.js");
71042/* harmony import */ var _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./diagrams/sequence/sequenceRenderer */ "./src/diagrams/sequence/sequenceRenderer.js");
71043/* harmony import */ var _diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./diagrams/sequence/parser/sequenceDiagram */ "./src/diagrams/sequence/parser/sequenceDiagram.jison");
71044/* harmony import */ var _diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_10__);
71045/* harmony import */ var _diagrams_sequence_sequenceDb__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./diagrams/sequence/sequenceDb */ "./src/diagrams/sequence/sequenceDb.js");
71046/* harmony import */ var _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./diagrams/gantt/ganttRenderer */ "./src/diagrams/gantt/ganttRenderer.js");
71047/* harmony import */ var _diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./diagrams/gantt/parser/gantt */ "./src/diagrams/gantt/parser/gantt.jison");
71048/* harmony import */ var _diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_13__);
71049/* harmony import */ var _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./diagrams/gantt/ganttDb */ "./src/diagrams/gantt/ganttDb.js");
71050/* harmony import */ var _diagrams_class_classRenderer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./diagrams/class/classRenderer */ "./src/diagrams/class/classRenderer.js");
71051/* harmony import */ var _diagrams_class_classRenderer_v2__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./diagrams/class/classRenderer-v2 */ "./src/diagrams/class/classRenderer-v2.js");
71052/* harmony import */ var _diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./diagrams/class/parser/classDiagram */ "./src/diagrams/class/parser/classDiagram.jison");
71053/* harmony import */ var _diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_17__);
71054/* harmony import */ var _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./diagrams/class/classDb */ "./src/diagrams/class/classDb.js");
71055/* harmony import */ var _diagrams_state_stateRenderer__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./diagrams/state/stateRenderer */ "./src/diagrams/state/stateRenderer.js");
71056/* harmony import */ var _diagrams_state_stateRenderer_v2__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./diagrams/state/stateRenderer-v2 */ "./src/diagrams/state/stateRenderer-v2.js");
71057/* harmony import */ var _diagrams_state_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./diagrams/state/parser/stateDiagram */ "./src/diagrams/state/parser/stateDiagram.jison");
71058/* harmony import */ var _diagrams_state_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_diagrams_state_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_21__);
71059/* harmony import */ var _diagrams_state_stateDb__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./diagrams/state/stateDb */ "./src/diagrams/state/stateDb.js");
71060/* harmony import */ var _diagrams_git_gitGraphRenderer__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./diagrams/git/gitGraphRenderer */ "./src/diagrams/git/gitGraphRenderer.js");
71061/* harmony import */ var _diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./diagrams/git/parser/gitGraph */ "./src/diagrams/git/parser/gitGraph.jison");
71062/* harmony import */ var _diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_24__);
71063/* harmony import */ var _diagrams_git_gitGraphAst__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./diagrams/git/gitGraphAst */ "./src/diagrams/git/gitGraphAst.js");
71064/* harmony import */ var _diagrams_info_infoRenderer__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./diagrams/info/infoRenderer */ "./src/diagrams/info/infoRenderer.js");
71065/* harmony import */ var _errorRenderer__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./errorRenderer */ "./src/errorRenderer.js");
71066/* harmony import */ var _diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./diagrams/info/parser/info */ "./src/diagrams/info/parser/info.jison");
71067/* harmony import */ var _diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(_diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_28__);
71068/* harmony import */ var _diagrams_info_infoDb__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./diagrams/info/infoDb */ "./src/diagrams/info/infoDb.js");
71069/* harmony import */ var _diagrams_pie_pieRenderer__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./diagrams/pie/pieRenderer */ "./src/diagrams/pie/pieRenderer.js");
71070/* harmony import */ var _diagrams_pie_parser_pie__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./diagrams/pie/parser/pie */ "./src/diagrams/pie/parser/pie.jison");
71071/* harmony import */ var _diagrams_pie_parser_pie__WEBPACK_IMPORTED_MODULE_31___default = /*#__PURE__*/__webpack_require__.n(_diagrams_pie_parser_pie__WEBPACK_IMPORTED_MODULE_31__);
71072/* harmony import */ var _diagrams_pie_pieDb__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./diagrams/pie/pieDb */ "./src/diagrams/pie/pieDb.js");
71073/* harmony import */ var _diagrams_er_erDb__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./diagrams/er/erDb */ "./src/diagrams/er/erDb.js");
71074/* harmony import */ var _diagrams_er_parser_erDiagram__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./diagrams/er/parser/erDiagram */ "./src/diagrams/er/parser/erDiagram.jison");
71075/* harmony import */ var _diagrams_er_parser_erDiagram__WEBPACK_IMPORTED_MODULE_34___default = /*#__PURE__*/__webpack_require__.n(_diagrams_er_parser_erDiagram__WEBPACK_IMPORTED_MODULE_34__);
71076/* harmony import */ var _diagrams_er_erRenderer__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./diagrams/er/erRenderer */ "./src/diagrams/er/erRenderer.js");
71077/* 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");
71078/* 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__);
71079/* harmony import */ var _diagrams_user_journey_journeyDb__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./diagrams/user-journey/journeyDb */ "./src/diagrams/user-journey/journeyDb.js");
71080/* harmony import */ var _diagrams_user_journey_journeyRenderer__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./diagrams/user-journey/journeyRenderer */ "./src/diagrams/user-journey/journeyRenderer.js");
71081/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./config */ "./src/config.js");
71082/* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./styles */ "./src/styles.js");
71083/* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./themes */ "./src/themes/index.js");
71084function _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); }
71085
71086/**
71087 * 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.
71088 *
71089 * The core of this api is the [**render**](Setup.md?id=render) function which, given a graph
71090 * definition as text, renders the graph/diagram and returns an svg element for the graph.
71091 *
71092 * 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.
71093 *
71094 * In addition to the render function, a number of behavioral configuration options are available.
71095 *
71096 * @name mermaidAPI
71097 */
71098
71099
71100 // import * as configApi from './config';
71101// // , {
71102// // setConfig,
71103// // configApi.getConfig,
71104// // configApi.updateSiteConfig,
71105// // configApi.setSiteConfig,
71106// // configApi.getSiteConfig,
71107// // configApi.defaultConfig
71108// // }
71109
71110
71111
71112
71113
71114
71115
71116
71117
71118
71119
71120
71121
71122
71123
71124
71125
71126
71127
71128
71129
71130
71131
71132
71133
71134
71135
71136
71137
71138
71139
71140
71141
71142
71143
71144
71145
71146
71147
71148
71149
71150function parse(text) {
71151 var graphInit = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].detectInit(text);
71152
71153 if (graphInit) {
71154 reinitialize(graphInit);
71155 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('reinit ', graphInit);
71156 }
71157
71158 var graphType = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].detectType(text);
71159 var parser;
71160 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Type ' + graphType);
71161
71162 switch (graphType) {
71163 case 'git':
71164 parser = _diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_24___default.a;
71165 parser.parser.yy = _diagrams_git_gitGraphAst__WEBPACK_IMPORTED_MODULE_25__["default"];
71166 break;
71167
71168 case 'flowchart':
71169 _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__["default"].clear();
71170 parser = _diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7___default.a;
71171 parser.parser.yy = _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__["default"];
71172 break;
71173
71174 case 'flowchart-v2':
71175 _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__["default"].clear();
71176 parser = _diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_7___default.a;
71177 parser.parser.yy = _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__["default"];
71178 break;
71179
71180 case 'sequence':
71181 parser = _diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_10___default.a;
71182 parser.parser.yy = _diagrams_sequence_sequenceDb__WEBPACK_IMPORTED_MODULE_11__["default"];
71183 break;
71184
71185 case 'gantt':
71186 parser = _diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_13___default.a;
71187 parser.parser.yy = _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__["default"];
71188 break;
71189
71190 case 'class':
71191 parser = _diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_17___default.a;
71192 parser.parser.yy = _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_18__["default"];
71193 break;
71194
71195 case 'classDiagram':
71196 parser = _diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_17___default.a;
71197 parser.parser.yy = _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_18__["default"];
71198 break;
71199
71200 case 'state':
71201 parser = _diagrams_state_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_21___default.a;
71202 parser.parser.yy = _diagrams_state_stateDb__WEBPACK_IMPORTED_MODULE_22__["default"];
71203 break;
71204
71205 case 'stateDiagram':
71206 parser = _diagrams_state_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_21___default.a;
71207 parser.parser.yy = _diagrams_state_stateDb__WEBPACK_IMPORTED_MODULE_22__["default"];
71208 break;
71209
71210 case 'info':
71211 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('info info info');
71212 parser = _diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_28___default.a;
71213 parser.parser.yy = _diagrams_info_infoDb__WEBPACK_IMPORTED_MODULE_29__["default"];
71214 break;
71215
71216 case 'pie':
71217 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('pie');
71218 parser = _diagrams_pie_parser_pie__WEBPACK_IMPORTED_MODULE_31___default.a;
71219 parser.parser.yy = _diagrams_pie_pieDb__WEBPACK_IMPORTED_MODULE_32__["default"];
71220 break;
71221
71222 case 'er':
71223 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('er');
71224 parser = _diagrams_er_parser_erDiagram__WEBPACK_IMPORTED_MODULE_34___default.a;
71225 parser.parser.yy = _diagrams_er_erDb__WEBPACK_IMPORTED_MODULE_33__["default"];
71226 break;
71227
71228 case 'journey':
71229 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('Journey');
71230 parser = _diagrams_user_journey_parser_journey__WEBPACK_IMPORTED_MODULE_36___default.a;
71231 parser.parser.yy = _diagrams_user_journey_journeyDb__WEBPACK_IMPORTED_MODULE_37__["default"];
71232 break;
71233 }
71234
71235 parser.parser.yy.graphType = graphType;
71236
71237 parser.parser.yy.parseError = function (str, hash) {
71238 var error = {
71239 str: str,
71240 hash: hash
71241 };
71242 throw error;
71243 };
71244
71245 parser.parse(text);
71246 return parser;
71247}
71248
71249var encodeEntities = function encodeEntities(text) {
71250 var txt = text;
71251 txt = txt.replace(/style.*:\S*#.*;/g, function (s) {
71252 var innerTxt = s.substring(0, s.length - 1);
71253 return innerTxt;
71254 });
71255 txt = txt.replace(/classDef.*:\S*#.*;/g, function (s) {
71256 var innerTxt = s.substring(0, s.length - 1);
71257 return innerTxt;
71258 });
71259 txt = txt.replace(/#\w+;/g, function (s) {
71260 var innerTxt = s.substring(1, s.length - 1);
71261 var isInt = /^\+?\d+$/.test(innerTxt);
71262
71263 if (isInt) {
71264 return 'fl°°' + innerTxt + '¶ß';
71265 } else {
71266 return 'fl°' + innerTxt + '¶ß';
71267 }
71268 });
71269 return txt;
71270};
71271var decodeEntities = function decodeEntities(text) {
71272 var txt = text;
71273 txt = txt.replace(/fl°°/g, function () {
71274 return '&#';
71275 });
71276 txt = txt.replace(/fl°/g, function () {
71277 return '&';
71278 });
71279 txt = txt.replace(/¶ß/g, function () {
71280 return ';';
71281 });
71282 return txt;
71283};
71284/**
71285 * Function that renders an svg with a graph from a chart definition. Usage example below.
71286 *
71287 * ```js
71288 * mermaidAPI.initialize({
71289 * startOnLoad:true
71290 * });
71291 * $(function(){
71292 * const graphDefinition = 'graph TB\na-->b';
71293 * const cb = function(svgGraph){
71294 * console.log(svgGraph);
71295 * };
71296 * mermaidAPI.render('id1',graphDefinition,cb);
71297 * });
71298 *```
71299 * @param id the id of the element to be rendered
71300 * @param _txt the graph definition
71301 * @param cb callback which is called after rendering is finished with the svg code as inparam.
71302 * @param container selector to element in which a div with the graph temporarily will be inserted. In one is
71303 * provided a hidden div will be inserted in the body of the page instead. The element will be removed when rendering is
71304 * completed.
71305 */
71306
71307var render = function render(id, _txt, cb, container) {
71308 _config__WEBPACK_IMPORTED_MODULE_39__["reset"]();
71309 var txt = _txt;
71310 var graphInit = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].detectInit(txt);
71311
71312 if (graphInit) {
71313 _config__WEBPACK_IMPORTED_MODULE_39__["addDirective"](graphInit);
71314 } // else {
71315 // configApi.reset();
71316 // const siteConfig = configApi.getSiteConfig();
71317 // configApi.addDirective(siteConfig);
71318 // }
71319 // console.warn('Render fetching config');
71320
71321
71322 var cnf = _config__WEBPACK_IMPORTED_MODULE_39__["getConfig"]();
71323 console.warn('Render with config after adding new directives', cnf.themeVariables.primaryColor); // Check the maximum allowed text size
71324
71325 if (_txt.length > cnf.maxTextSize) {
71326 txt = 'graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa';
71327 }
71328
71329 if (typeof container !== 'undefined') {
71330 container.innerHTML = '';
71331 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');
71332 } else {
71333 var existingSvg = document.getElementById(id);
71334
71335 if (existingSvg) {
71336 existingSvg.remove();
71337 }
71338
71339 var _element = document.querySelector('#' + 'd' + id);
71340
71341 if (_element) {
71342 _element.remove();
71343 }
71344
71345 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');
71346 }
71347
71348 window.txt = txt;
71349 txt = encodeEntities(txt);
71350 var element = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#d' + id).node();
71351 var graphType = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].detectType(txt); // insert inline style into svg
71352
71353 var svg = element.firstChild;
71354 var firstChild = svg.firstChild;
71355 var userStyles = ''; // user provided theme CSS
71356
71357 if (cnf.themeCSS !== undefined) {
71358 userStyles += "\n".concat(cnf.themeCSS);
71359 } // user provided theme CSS
71360
71361
71362 if (cnf.fontFamily !== undefined) {
71363 userStyles += "\n:root { --mermaid-font-family: ".concat(cnf.fontFamily, "}");
71364 } // user provided theme CSS
71365
71366
71367 if (cnf.altFontFamily !== undefined) {
71368 userStyles += "\n:root { --mermaid-alt-font-family: ".concat(cnf.altFontFamily, "}");
71369 } // classDef
71370
71371
71372 if (graphType === 'flowchart' || graphType === 'flowchart-v2' || graphType === 'graph') {
71373 var classes = _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_5__["default"].getClasses(txt);
71374
71375 for (var className in classes) {
71376 userStyles += "\n.".concat(className, " > * { ").concat(classes[className].styles.join(' !important; '), " !important; }");
71377
71378 if (classes[className].textStyles) {
71379 userStyles += "\n.".concat(className, " tspan { ").concat(classes[className].textStyles.join(' !important; '), " !important; }");
71380 }
71381 }
71382 } // logger.warn(cnf.themeVariables);
71383
71384
71385 var stylis = new stylis__WEBPACK_IMPORTED_MODULE_0___default.a();
71386 var rules = stylis("#".concat(id), Object(_styles__WEBPACK_IMPORTED_MODULE_40__["default"])(graphType, userStyles, cnf.themeVariables));
71387 var style1 = document.createElement('style');
71388 style1.innerHTML = rules;
71389 svg.insertBefore(style1, firstChild); // Verify that the generated svgs are ok before removing this
71390 // const style2 = document.createElement('style');
71391 // const cs = window.getComputedStyle(svg);
71392 // style2.innerHTML = `#d${id} * {
71393 // color: ${cs.color};
71394 // // font: ${cs.font};
71395 // // font-family: Arial;
71396 // // font-size: 24px;
71397 // }`;
71398 // svg.insertBefore(style2, firstChild);
71399
71400 try {
71401 switch (graphType) {
71402 case 'git':
71403 cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71404 _diagrams_git_gitGraphRenderer__WEBPACK_IMPORTED_MODULE_23__["default"].setConf(cnf.git);
71405 _diagrams_git_gitGraphRenderer__WEBPACK_IMPORTED_MODULE_23__["default"].draw(txt, id, false);
71406 break;
71407
71408 case 'flowchart':
71409 cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71410 _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_5__["default"].setConf(cnf.flowchart);
71411 _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_5__["default"].draw(txt, id, false);
71412 break;
71413
71414 case 'flowchart-v2':
71415 cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71416 _diagrams_flowchart_flowRenderer_v2__WEBPACK_IMPORTED_MODULE_6__["default"].setConf(cnf.flowchart);
71417 _diagrams_flowchart_flowRenderer_v2__WEBPACK_IMPORTED_MODULE_6__["default"].draw(txt, id, false);
71418 break;
71419
71420 case 'sequence':
71421 cnf.sequence.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71422
71423 if (cnf.sequenceDiagram) {
71424 // backwards compatibility
71425 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__["default"].setConf(Object.assign(cnf.sequence, cnf.sequenceDiagram));
71426 console.error('`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.');
71427 } else {
71428 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__["default"].setConf(cnf.sequence);
71429 }
71430
71431 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__["default"].draw(txt, id);
71432 break;
71433
71434 case 'gantt':
71435 cnf.gantt.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71436 _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_12__["default"].setConf(cnf.gantt);
71437 _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_12__["default"].draw(txt, id);
71438 break;
71439
71440 case 'class':
71441 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71442 _diagrams_class_classRenderer__WEBPACK_IMPORTED_MODULE_15__["default"].setConf(cnf.class);
71443 _diagrams_class_classRenderer__WEBPACK_IMPORTED_MODULE_15__["default"].draw(txt, id);
71444 break;
71445
71446 case 'classDiagram':
71447 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71448 _diagrams_class_classRenderer_v2__WEBPACK_IMPORTED_MODULE_16__["default"].setConf(cnf.class);
71449 _diagrams_class_classRenderer_v2__WEBPACK_IMPORTED_MODULE_16__["default"].draw(txt, id);
71450 break;
71451
71452 case 'state':
71453 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71454 _diagrams_state_stateRenderer__WEBPACK_IMPORTED_MODULE_19__["default"].setConf(cnf.state);
71455 _diagrams_state_stateRenderer__WEBPACK_IMPORTED_MODULE_19__["default"].draw(txt, id);
71456 break;
71457
71458 case 'stateDiagram':
71459 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71460 _diagrams_state_stateRenderer_v2__WEBPACK_IMPORTED_MODULE_20__["default"].setConf(cnf.state);
71461 _diagrams_state_stateRenderer_v2__WEBPACK_IMPORTED_MODULE_20__["default"].draw(txt, id);
71462 break;
71463
71464 case 'info':
71465 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71466 _diagrams_info_infoRenderer__WEBPACK_IMPORTED_MODULE_26__["default"].setConf(cnf.class);
71467 _diagrams_info_infoRenderer__WEBPACK_IMPORTED_MODULE_26__["default"].draw(txt, id, _package_json__WEBPACK_IMPORTED_MODULE_2__.version);
71468 break;
71469
71470 case 'pie':
71471 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
71472 _diagrams_pie_pieRenderer__WEBPACK_IMPORTED_MODULE_30__["default"].setConf(cnf.class);
71473 _diagrams_pie_pieRenderer__WEBPACK_IMPORTED_MODULE_30__["default"].draw(txt, id, _package_json__WEBPACK_IMPORTED_MODULE_2__.version);
71474 break;
71475
71476 case 'er':
71477 _diagrams_er_erRenderer__WEBPACK_IMPORTED_MODULE_35__["default"].setConf(cnf.er);
71478 _diagrams_er_erRenderer__WEBPACK_IMPORTED_MODULE_35__["default"].draw(txt, id, _package_json__WEBPACK_IMPORTED_MODULE_2__.version);
71479 break;
71480
71481 case 'journey':
71482 _diagrams_user_journey_journeyRenderer__WEBPACK_IMPORTED_MODULE_38__["default"].setConf(cnf.journey);
71483 _diagrams_user_journey_journeyRenderer__WEBPACK_IMPORTED_MODULE_38__["default"].draw(txt, id, _package_json__WEBPACK_IMPORTED_MODULE_2__.version);
71484 break;
71485 }
71486 } catch (e) {
71487 // errorRenderer.setConf(cnf.class);
71488 _errorRenderer__WEBPACK_IMPORTED_MODULE_27__["default"].draw(id, _package_json__WEBPACK_IMPORTED_MODULE_2__.version);
71489 throw e;
71490 }
71491
71492 Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])("[id=\"".concat(id, "\"]")).selectAll('foreignobject > *').attr('xmlns', 'http://www.w3.org/1999/xhtml'); // if (cnf.arrowMarkerAbsolute) {
71493 // url =
71494 // window.location.protocol +
71495 // '//' +
71496 // window.location.host +
71497 // window.location.pathname +
71498 // window.location.search;
71499 // url = url.replace(/\(/g, '\\(');
71500 // url = url.replace(/\)/g, '\\)');
71501 // }
71502 // Fix for when the base tag is used
71503
71504 var svgCode = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#d' + id).node().innerHTML;
71505 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('cnf.arrowMarkerAbsolute', cnf.arrowMarkerAbsolute);
71506
71507 if (!cnf.arrowMarkerAbsolute || cnf.arrowMarkerAbsolute === 'false') {
71508 svgCode = svgCode.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#', 'g');
71509 }
71510
71511 svgCode = decodeEntities(svgCode);
71512
71513 if (typeof cb !== 'undefined') {
71514 switch (graphType) {
71515 case 'flowchart':
71516 case 'flowchart-v2':
71517 cb(svgCode, _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_8__["default"].bindFunctions);
71518 break;
71519
71520 case 'gantt':
71521 cb(svgCode, _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__["default"].bindFunctions);
71522 break;
71523
71524 case 'class':
71525 cb(svgCode, _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_18__["default"].bindFunctions);
71526 break;
71527
71528 default:
71529 cb(svgCode);
71530 }
71531 } else {
71532 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug('CB = undefined!');
71533 }
71534
71535 var node = Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#d' + id).node();
71536
71537 if (node !== null && typeof node.remove === 'function') {
71538 Object(d3__WEBPACK_IMPORTED_MODULE_1__["select"])('#d' + id).node().remove();
71539 }
71540
71541 return svgCode;
71542};
71543
71544var currentDirective = {};
71545
71546var parseDirective = function parseDirective(p, statement, context, type) {
71547 try {
71548 if (statement !== undefined) {
71549 statement = statement.trim();
71550
71551 switch (context) {
71552 case 'open_directive':
71553 currentDirective = {};
71554 break;
71555
71556 case 'type_directive':
71557 currentDirective.type = statement.toLowerCase();
71558 break;
71559
71560 case 'arg_directive':
71561 currentDirective.args = JSON.parse(statement);
71562 break;
71563
71564 case 'close_directive':
71565 handleDirective(p, currentDirective, type);
71566 currentDirective = null;
71567 break;
71568 }
71569 }
71570 } catch (error) {
71571 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error("Error while rendering sequenceDiagram directive: ".concat(statement, " jison context: ").concat(context));
71572 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].error(error.message);
71573 }
71574};
71575
71576var handleDirective = function handleDirective(p, directive, type) {
71577 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].debug("Directive type=".concat(directive.type, " with args:"), directive.args);
71578
71579 switch (directive.type) {
71580 case 'init':
71581 case 'initialize':
71582 {
71583 ['config'].forEach(function (prop) {
71584 if (typeof directive.args[prop] !== 'undefined') {
71585 if (type === 'flowchart-v2') {
71586 type = 'flowchart';
71587 }
71588
71589 directive.args[type] = directive.args[prop];
71590 delete directive.args[prop];
71591 }
71592 });
71593 reinitialize(directive.args);
71594 _config__WEBPACK_IMPORTED_MODULE_39__["addDirective"](directive.args);
71595 break;
71596 }
71597
71598 case 'wrap':
71599 case 'nowrap':
71600 if (p && p['setWrap']) {
71601 p.setWrap(directive.type === 'wrap');
71602 }
71603
71604 break;
71605
71606 default:
71607 _logger__WEBPACK_IMPORTED_MODULE_3__["logger"].warn("Unhandled directive: source: '%%{".concat(directive.type, ": ").concat(JSON.stringify(directive.args ? directive.args : {}), "}%%"), directive);
71608 break;
71609 }
71610};
71611
71612function updateRendererConfigs(conf) {
71613 _diagrams_git_gitGraphRenderer__WEBPACK_IMPORTED_MODULE_23__["default"].setConf(conf.git);
71614 _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_5__["default"].setConf(conf.flowchart);
71615 _diagrams_flowchart_flowRenderer_v2__WEBPACK_IMPORTED_MODULE_6__["default"].setConf(conf.flowchart);
71616
71617 if (typeof conf['sequenceDiagram'] !== 'undefined') {
71618 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__["default"].setConf(Object(_utils__WEBPACK_IMPORTED_MODULE_4__["assignWithDepth"])(conf.sequence, conf['sequenceDiagram']));
71619 }
71620
71621 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_9__["default"].setConf(conf.sequence);
71622 _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_12__["default"].setConf(conf.gantt);
71623 _diagrams_class_classRenderer__WEBPACK_IMPORTED_MODULE_15__["default"].setConf(conf.class);
71624 _diagrams_state_stateRenderer__WEBPACK_IMPORTED_MODULE_19__["default"].setConf(conf.state);
71625 _diagrams_state_stateRenderer_v2__WEBPACK_IMPORTED_MODULE_20__["default"].setConf(conf.state);
71626 _diagrams_info_infoRenderer__WEBPACK_IMPORTED_MODULE_26__["default"].setConf(conf.class);
71627 _diagrams_pie_pieRenderer__WEBPACK_IMPORTED_MODULE_30__["default"].setConf(conf.class);
71628 _diagrams_er_erRenderer__WEBPACK_IMPORTED_MODULE_35__["default"].setConf(conf.er);
71629 _diagrams_user_journey_journeyRenderer__WEBPACK_IMPORTED_MODULE_38__["default"].setConf(conf.journey);
71630 _errorRenderer__WEBPACK_IMPORTED_MODULE_27__["default"].setConf(conf.class);
71631}
71632
71633function reinitialize() {// `mermaidAPI.reinitialize: v${pkg.version}`,
71634 // JSON.stringify(options),
71635 // options.themeVariables.primaryColor;
71636 // // if (options.theme && theme[options.theme]) {
71637 // // options.themeVariables = theme[options.theme].getThemeVariables(options.themeVariables);
71638 // // }
71639 // // Set default options
71640 // const config =
71641 // typeof options === 'object' ? configApi.setConfig(options) : configApi.getSiteConfig();
71642 // updateRendererConfigs(config);
71643 // setLogLevel(config.logLevel);
71644 // logger.debug('mermaidAPI.reinitialize: ', config);
71645}
71646
71647function initialize(options) {
71648 console.warn("mermaidAPI.initialize: v".concat(_package_json__WEBPACK_IMPORTED_MODULE_2__.version, " "), options); // Set default options
71649
71650 if (options && options.theme && _themes__WEBPACK_IMPORTED_MODULE_41__["default"][options.theme]) {
71651 // Todo merge with user options
71652 options.themeVariables = _themes__WEBPACK_IMPORTED_MODULE_41__["default"][options.theme].getThemeVariables(options.themeVariables);
71653 } else {
71654 if (options) options.themeVariables = _themes__WEBPACK_IMPORTED_MODULE_41__["default"].default.getThemeVariables();
71655 }
71656
71657 var config = _typeof(options) === 'object' ? _config__WEBPACK_IMPORTED_MODULE_39__["setSiteConfig"](options) : _config__WEBPACK_IMPORTED_MODULE_39__["getSiteConfig"]();
71658 updateRendererConfigs(config);
71659 Object(_logger__WEBPACK_IMPORTED_MODULE_3__["setLogLevel"])(config.logLevel); // logger.debug('mermaidAPI.initialize: ', config);
71660}
71661
71662var mermaidAPI = Object.freeze({
71663 render: render,
71664 parse: parse,
71665 parseDirective: parseDirective,
71666 initialize: initialize,
71667 reinitialize: reinitialize,
71668 getConfig: _config__WEBPACK_IMPORTED_MODULE_39__["getConfig"],
71669 setConfig: _config__WEBPACK_IMPORTED_MODULE_39__["setConfig"],
71670 getSiteConfig: _config__WEBPACK_IMPORTED_MODULE_39__["getSiteConfig"],
71671 updateSiteConfig: _config__WEBPACK_IMPORTED_MODULE_39__["updateSiteConfig"],
71672 reset: function reset() {
71673 // console.warn('reset');
71674 _config__WEBPACK_IMPORTED_MODULE_39__["reset"](); // const siteConfig = configApi.getSiteConfig();
71675 // updateRendererConfigs(siteConfig);
71676 },
71677 globalReset: function globalReset() {
71678 _config__WEBPACK_IMPORTED_MODULE_39__["reset"](_config__WEBPACK_IMPORTED_MODULE_39__["defaultConfig"]);
71679 updateRendererConfigs(_config__WEBPACK_IMPORTED_MODULE_39__["getConfig"]());
71680 },
71681 defaultConfig: _config__WEBPACK_IMPORTED_MODULE_39__["defaultConfig"]
71682});
71683Object(_logger__WEBPACK_IMPORTED_MODULE_3__["setLogLevel"])(_config__WEBPACK_IMPORTED_MODULE_39__["getConfig"]().logLevel);
71684_config__WEBPACK_IMPORTED_MODULE_39__["reset"](_config__WEBPACK_IMPORTED_MODULE_39__["getConfig"]());
71685/* harmony default export */ __webpack_exports__["default"] = (mermaidAPI);
71686/**
71687 * ## mermaidAPI configuration defaults
71688 * <pre>
71689 *
71690 * &lt;script>
71691 * var config = {
71692 * theme:'default',
71693 * logLevel:'fatal',
71694 * securityLevel:'strict',
71695 * startOnLoad:true,
71696 * arrowMarkerAbsolute:false,
71697 *
71698 * er:{
71699 * diagramPadding:20,
71700 * layoutDirection:'TB',
71701 * minEntityWidth:100,
71702 * minEntityHeight:75,
71703 * entityPadding:15,
71704 * stroke:'gray',
71705 * fill:'honeydew',
71706 * fontSize:12,
71707 * useMaxWidth:true,
71708 * },
71709 * flowchart:{
71710 * diagramPadding:8,
71711 * htmlLabels:true,
71712 * curve:'linear',
71713 * },
71714 * sequence:{
71715 * diagramMarginX:50,
71716 * diagramMarginY:10,
71717 * actorMargin:50,
71718 * width:150,
71719 * height:65,
71720 * boxMargin:10,
71721 * boxTextMargin:5,
71722 * noteMargin:10,
71723 * messageMargin:35,
71724 * messageAlign:'center',
71725 * mirrorActors:true,
71726 * bottomMarginAdj:1,
71727 * useMaxWidth:true,
71728 * rightAngles:false,
71729 * showSequenceNumbers:false,
71730 * },
71731 * gantt:{
71732 * titleTopMargin:25,
71733 * barHeight:20,
71734 * barGap:4,
71735 * topPadding:50,
71736 * leftPadding:75,
71737 * gridLineStartPadding:35,
71738 * fontSize:11,
71739 * fontFamily:'"Open-Sans", "sans-serif"',
71740 * numberSectionStyles:4,
71741 * axisFormat:'%Y-%m-%d',
71742 * }
71743 * };
71744 * mermaid.initialize(config);
71745 * &lt;/script>
71746 *</pre>
71747 */
71748
71749/***/ }),
71750
71751/***/ "./src/styles.js":
71752/*!***********************!*\
71753 !*** ./src/styles.js ***!
71754 \***********************/
71755/*! exports provided: calcThemeVariables, default */
71756/***/ (function(module, __webpack_exports__, __webpack_require__) {
71757
71758"use strict";
71759__webpack_require__.r(__webpack_exports__);
71760/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calcThemeVariables", function() { return calcThemeVariables; });
71761/* harmony import */ var _diagrams_class_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./diagrams/class/styles */ "./src/diagrams/class/styles.js");
71762/* harmony import */ var _diagrams_er_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./diagrams/er/styles */ "./src/diagrams/er/styles.js");
71763/* harmony import */ var _diagrams_flowchart_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./diagrams/flowchart/styles */ "./src/diagrams/flowchart/styles.js");
71764/* harmony import */ var _diagrams_gantt_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./diagrams/gantt/styles */ "./src/diagrams/gantt/styles.js");
71765/* harmony import */ var _diagrams_git_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./diagrams/git/styles */ "./src/diagrams/git/styles.js");
71766/* harmony import */ var _diagrams_info_styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./diagrams/info/styles */ "./src/diagrams/info/styles.js");
71767/* harmony import */ var _diagrams_pie_styles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./diagrams/pie/styles */ "./src/diagrams/pie/styles.js");
71768/* harmony import */ var _diagrams_sequence_styles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./diagrams/sequence/styles */ "./src/diagrams/sequence/styles.js");
71769/* harmony import */ var _diagrams_state_styles__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./diagrams/state/styles */ "./src/diagrams/state/styles.js");
71770/* harmony import */ var _diagrams_user_journey_styles__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./diagrams/user-journey/styles */ "./src/diagrams/user-journey/styles.js");
71771
71772
71773
71774
71775
71776
71777
71778
71779
71780
71781var themes = {
71782 flowchart: _diagrams_flowchart_styles__WEBPACK_IMPORTED_MODULE_2__["default"],
71783 'flowchart-v2': _diagrams_flowchart_styles__WEBPACK_IMPORTED_MODULE_2__["default"],
71784 sequence: _diagrams_sequence_styles__WEBPACK_IMPORTED_MODULE_7__["default"],
71785 gantt: _diagrams_gantt_styles__WEBPACK_IMPORTED_MODULE_3__["default"],
71786 classDiagram: _diagrams_class_styles__WEBPACK_IMPORTED_MODULE_0__["default"],
71787 'classDiagram-v2': _diagrams_class_styles__WEBPACK_IMPORTED_MODULE_0__["default"],
71788 class: _diagrams_class_styles__WEBPACK_IMPORTED_MODULE_0__["default"],
71789 stateDiagram: _diagrams_state_styles__WEBPACK_IMPORTED_MODULE_8__["default"],
71790 state: _diagrams_state_styles__WEBPACK_IMPORTED_MODULE_8__["default"],
71791 git: _diagrams_git_styles__WEBPACK_IMPORTED_MODULE_4__["default"],
71792 info: _diagrams_info_styles__WEBPACK_IMPORTED_MODULE_5__["default"],
71793 pie: _diagrams_pie_styles__WEBPACK_IMPORTED_MODULE_6__["default"],
71794 er: _diagrams_er_styles__WEBPACK_IMPORTED_MODULE_1__["default"],
71795 journey: _diagrams_user_journey_styles__WEBPACK_IMPORTED_MODULE_9__["default"]
71796};
71797var calcThemeVariables = function calcThemeVariables(theme, userOverRides) {
71798 return theme.calcColors(userOverRides);
71799};
71800
71801var getStyles = function getStyles(type, userStyles, options) {
71802 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");
71803};
71804
71805/* harmony default export */ __webpack_exports__["default"] = (getStyles);
71806
71807/***/ }),
71808
71809/***/ "./src/themes/index.js":
71810/*!*****************************!*\
71811 !*** ./src/themes/index.js ***!
71812 \*****************************/
71813/*! exports provided: default */
71814/***/ (function(module, __webpack_exports__, __webpack_require__) {
71815
71816"use strict";
71817__webpack_require__.r(__webpack_exports__);
71818/* harmony import */ var _theme_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./theme-base */ "./src/themes/theme-base.js");
71819/* harmony import */ var _theme_dark__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-dark */ "./src/themes/theme-dark.js");
71820/* harmony import */ var _theme_default__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./theme-default */ "./src/themes/theme-default.js");
71821/* harmony import */ var _theme_forest__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./theme-forest */ "./src/themes/theme-forest.js");
71822/* harmony import */ var _theme_neutral__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./theme-neutral */ "./src/themes/theme-neutral.js");
71823
71824
71825
71826
71827
71828/* harmony default export */ __webpack_exports__["default"] = ({
71829 base: {
71830 getThemeVariables: _theme_base__WEBPACK_IMPORTED_MODULE_0__["getThemeVariables"]
71831 },
71832 dark: {
71833 getThemeVariables: _theme_dark__WEBPACK_IMPORTED_MODULE_1__["getThemeVariables"]
71834 },
71835 default: {
71836 getThemeVariables: _theme_default__WEBPACK_IMPORTED_MODULE_2__["getThemeVariables"]
71837 },
71838 forest: {
71839 getThemeVariables: _theme_forest__WEBPACK_IMPORTED_MODULE_3__["getThemeVariables"]
71840 },
71841 neutral: {
71842 getThemeVariables: _theme_neutral__WEBPACK_IMPORTED_MODULE_4__["getThemeVariables"]
71843 }
71844});
71845
71846/***/ }),
71847
71848/***/ "./src/themes/theme-base.js":
71849/*!**********************************!*\
71850 !*** ./src/themes/theme-base.js ***!
71851 \**********************************/
71852/*! exports provided: getThemeVariables */
71853/***/ (function(module, __webpack_exports__, __webpack_require__) {
71854
71855"use strict";
71856__webpack_require__.r(__webpack_exports__);
71857/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getThemeVariables", function() { return getThemeVariables; });
71858/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/index.js");
71859/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(khroma__WEBPACK_IMPORTED_MODULE_0__);
71860/* harmony import */ var _theme_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-helpers */ "./src/themes/theme-helpers.js");
71861function _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); }
71862
71863function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
71864
71865function _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); } }
71866
71867function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
71868
71869
71870
71871
71872var Theme =
71873/*#__PURE__*/
71874function () {
71875 function Theme() {
71876 _classCallCheck(this, Theme);
71877
71878 /** # Base variables */
71879
71880 /** * 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. */
71881 this.background = '#f4f4f4';
71882 this.darkMode = false; // this.background = '#0c0c0c';
71883 // this.darkMode = true;
71884
71885 this.primaryColor = '#fff4dd'; // this.background = '#0c0c0c';
71886 // this.primaryColor = '#1f1f00';
71887
71888 this.noteBkgColor = '#fff5ad';
71889 this.noteTextColor = '#333'; // dark
71890 // this.primaryColor = '#034694';
71891 // this.primaryColor = '#f2ee7e';
71892 // this.primaryColor = '#9f33be';
71893 // this.primaryColor = '#f0fff0';
71894 // this.primaryColor = '#fa255e';
71895 // this.primaryColor = '#ECECFF';
71896 // this.secondaryColor = '#c39ea0';
71897 // this.tertiaryColor = '#f8e5e5';
71898 // this.secondaryColor = '#dfdfde';
71899 // this.tertiaryColor = '#CCCCFF';
71900
71901 this.fontFamily = '"trebuchet ms", verdana, arial';
71902 this.fontSize = '16px'; // this.updateColors();
71903 }
71904
71905 _createClass(Theme, [{
71906 key: "updateColors",
71907 value: function updateColors() {
71908 // The || is to make sure that if the variable has been defiend by a user override that value is to be used
71909
71910 /* Main */
71911 this.primaryTextColor = this.primaryTextColor || (this.darkMode ? '#ddd' : '#333'); // invert(this.primaryColor);
71912
71913 this.secondaryColor = this.secondaryColor || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
71914 h: -120
71915 });
71916 this.tertiaryColor = this.tertiaryColor || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
71917 h: 180,
71918 l: 5
71919 });
71920 this.primaryBorderColor = this.primaryBorderColor || Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.primaryColor, this.darkMode);
71921 this.secondaryBorderColor = this.secondaryBorderColor || Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.secondaryColor, this.darkMode);
71922 this.tertiaryBorderColor = this.tertiaryBorderColor || Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.tertiaryColor, this.darkMode);
71923 this.noteBorderColor = this.noteBorderColor || Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.noteBkgColor, this.darkMode);
71924 this.secondaryTextColor = this.secondaryTextColor || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.secondaryColor);
71925 this.tertiaryTextColor = this.tertiaryTextColor || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.tertiaryColor);
71926 this.lineColor = this.lineColor || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
71927 this.textColor = this.textColor || this.primaryTextColor;
71928 /* Flowchart variables */
71929
71930 this.nodeBkg = this.nodeBkg || this.primaryColor;
71931 this.mainBkg = this.mainBkg || this.primaryColor;
71932 this.nodeBorder = this.nodeBorder || this.primaryBorderColor;
71933 this.clusterBkg = this.clusterBkg || this.tertiaryColor;
71934 this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;
71935 this.defaultLinkColor = this.defaultLinkColor || this.lineColor;
71936 this.titleColor = this.titleColor || this.tertiaryTextColor;
71937 this.edgeLabelBackground = this.edgeLabelBackground || this.darkMode ? Object(khroma__WEBPACK_IMPORTED_MODULE_0__["darken"])(this.secondaryColor, 30) : this.secondaryColor;
71938 this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;
71939 /* Sequence Diagram variables */
71940 // this.actorBorder = lighten(this.border1, 0.5);
71941
71942 this.actorBorder = this.actorBorder || this.primaryBorderColor;
71943 this.actorBkg = this.actorBkg || this.mainBkg;
71944 this.actorTextColor = this.actorTextColor || this.primaryTextColor;
71945 this.actorLineColor = this.actorLineColor || 'grey';
71946 this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;
71947 this.signalColor = this.signalColor || this.textColor;
71948 this.signalTextColor = this.signalTextColor || this.textColor;
71949 this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;
71950 this.labelTextColor = this.labelTextColor || this.actorTextColor;
71951 this.loopTextColor = this.loopTextColor || this.actorTextColor;
71952 this.activationBorderColor = this.activationBorderColor || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["darken"])(this.secondaryColor, 10);
71953 this.activationBkgColor = this.activationBkgColor || this.secondaryColor;
71954 this.sequenceNumberColor = this.sequenceNumberColor || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.lineColor);
71955 /* Gantt chart variables */
71956
71957 this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;
71958 this.altSectionBkgColor = this.altSectionBkgColor || 'white';
71959 this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;
71960 this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;
71961 this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;
71962 this.taskBkgColor = this.taskBkgColor || this.primaryColor;
71963 this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;
71964 this.activeTaskBkgColor = this.activeTaskBkgColor || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.primaryColor, 23);
71965 this.gridColor = this.gridColor || 'lightgrey';
71966 this.doneTaskBkgColor = this.doneTaskBkgColor || 'lightgrey';
71967 this.doneTaskBorderColor = this.doneTaskBorderColor || 'grey';
71968 this.critBorderColor = this.critBorderColor || '#ff8888';
71969 this.critBkgColor = this.critBkgColor || 'red';
71970 this.todayLineColor = this.todayLineColor || 'red';
71971 this.taskTextColor = this.taskTextColor || this.textColor;
71972 this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;
71973 this.taskTextLightColor = this.taskTextLightColor || this.textColor;
71974 this.taskTextColor = this.taskTextColor || this.primaryTextColor;
71975 this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;
71976 this.taskTextClickableColor = this.taskTextClickableColor || '#003163';
71977 /* state colors */
71978
71979 this.labelColor = this.labelColor || this.primaryTextColor;
71980 this.altBackground = this.altBackground || this.tertiaryColor;
71981 this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
71982 this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
71983 /* class */
71984
71985 this.classText = this.classText || this.textColor;
71986 /* user-journey */
71987
71988 this.fillType0 = this.fillType0 || this.primaryColor;
71989 this.fillType1 = this.fillType1 || this.secondaryColor;
71990 this.fillType2 = this.fillType2 || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
71991 h: 64
71992 });
71993 this.fillType3 = this.fillType3 || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
71994 h: 64
71995 });
71996 this.fillType4 = this.fillType4 || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
71997 h: -64
71998 });
71999 this.fillType5 = this.fillType5 || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72000 h: -64
72001 });
72002 this.fillType6 = this.fillType6 || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72003 h: 128
72004 });
72005 this.fillType7 = this.fillType7 || Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72006 h: 128
72007 });
72008 }
72009 }, {
72010 key: "calculate",
72011 value: function calculate(overrides) {
72012 var _this = this;
72013
72014 if (_typeof(overrides) !== 'object') {
72015 // Calculate colors form base colors
72016 this.updateColors();
72017 return;
72018 }
72019
72020 var keys = Object.keys(overrides); // Copy values from overrides, this is mainly for base colors
72021
72022 keys.forEach(function (k) {
72023 _this[k] = overrides[k];
72024 }); // Calculate colors form base colors
72025
72026 this.updateColors(); // Copy values from overrides again in case of an override of derived value
72027
72028 keys.forEach(function (k) {
72029 _this[k] = overrides[k];
72030 });
72031 }
72032 }]);
72033
72034 return Theme;
72035}();
72036
72037var getThemeVariables = function getThemeVariables(userOverrides) {
72038 var theme = new Theme();
72039 theme.calculate(userOverrides);
72040 return theme;
72041};
72042
72043/***/ }),
72044
72045/***/ "./src/themes/theme-dark.js":
72046/*!**********************************!*\
72047 !*** ./src/themes/theme-dark.js ***!
72048 \**********************************/
72049/*! exports provided: getThemeVariables */
72050/***/ (function(module, __webpack_exports__, __webpack_require__) {
72051
72052"use strict";
72053__webpack_require__.r(__webpack_exports__);
72054/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getThemeVariables", function() { return getThemeVariables; });
72055/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/index.js");
72056/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(khroma__WEBPACK_IMPORTED_MODULE_0__);
72057/* harmony import */ var _theme_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-helpers */ "./src/themes/theme-helpers.js");
72058function _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); }
72059
72060function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
72061
72062function _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); } }
72063
72064function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
72065
72066
72067
72068
72069var Theme =
72070/*#__PURE__*/
72071function () {
72072 function Theme() {
72073 _classCallCheck(this, Theme);
72074
72075 this.background = '#333';
72076 this.primaryColor = '#1f2020';
72077 this.secondaryColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.primaryColor, 16);
72078 this.tertiaryColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72079 h: -160
72080 });
72081 this.primaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.primaryColor, this.darkMode);
72082 this.secondaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.secondaryColor, this.darkMode);
72083 this.tertiaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.tertiaryColor, this.darkMode);
72084 this.primaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.primaryColor);
72085 this.secondaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.secondaryColor);
72086 this.tertiaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.tertiaryColor);
72087 this.lineColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
72088 this.textColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
72089 this.mainBkg = '#1f2020';
72090 this.secondBkg = 'calculated';
72091 this.mainContrastColor = 'lightgrey';
72092 this.darkTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])('#323D47'), 10);
72093 this.lineColor = 'calculated';
72094 this.border1 = '#81B1DB';
72095 this.border2 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["rgba"])(255, 255, 255, 0.25);
72096 this.arrowheadColor = 'calculated';
72097 this.fontFamily = '"trebuchet ms", verdana, arial';
72098 this.fontSize = '16px';
72099 this.labelBackground = '#181818';
72100 this.textColor = '#ccc';
72101 /* Flowchart variables */
72102
72103 this.nodeBkg = 'calculated';
72104 this.nodeBorder = 'calculated';
72105 this.clusterBkg = 'calculated';
72106 this.clusterBorder = 'calculated';
72107 this.defaultLinkColor = 'calculated';
72108 this.titleColor = '#F9FFFE';
72109 this.edgeLabelBackground = 'calculated';
72110 /* Sequence Diagram variables */
72111
72112 this.actorBorder = 'calculated';
72113 this.actorBkg = 'calculated';
72114 this.actorTextColor = 'calculated';
72115 this.actorLineColor = 'calculated';
72116 this.signalColor = 'calculated';
72117 this.signalTextColor = 'calculated';
72118 this.labelBoxBkgColor = 'calculated';
72119 this.labelBoxBorderColor = 'calculated';
72120 this.labelTextColor = 'calculated';
72121 this.loopTextColor = 'calculated';
72122 this.noteBorderColor = 'calculated';
72123 this.noteBkgColor = '#fff5ad';
72124 this.noteTextColor = 'calculated';
72125 this.activationBorderColor = 'calculated';
72126 this.activationBkgColor = 'calculated';
72127 this.sequenceNumberColor = 'black';
72128 /* Gantt chart variables */
72129
72130 this.sectionBkgColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["darken"])('#EAE8D9', 30);
72131 this.altSectionBkgColor = 'calculated';
72132 this.sectionBkgColor2 = '#EAE8D9';
72133 this.taskBorderColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["rgba"])(255, 255, 255, 70);
72134 this.taskBkgColor = 'calculated';
72135 this.taskTextColor = 'calculated';
72136 this.taskTextLightColor = 'calculated';
72137 this.taskTextOutsideColor = 'calculated';
72138 this.taskTextClickableColor = '#003163';
72139 this.activeTaskBorderColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["rgba"])(255, 255, 255, 50);
72140 this.activeTaskBkgColor = '#81B1DB';
72141 this.gridColor = 'calculated';
72142 this.doneTaskBkgColor = 'calculated';
72143 this.doneTaskBorderColor = 'grey';
72144 this.critBorderColor = '#E83737';
72145 this.critBkgColor = '#E83737';
72146 this.taskTextDarkColor = 'calculated';
72147 this.todayLineColor = '#DB5757';
72148 /* state colors */
72149
72150 this.labelColor = 'calculated';
72151 this.errorBkgColor = '#a44141';
72152 this.errorTextColor = '#ddd';
72153 }
72154
72155 _createClass(Theme, [{
72156 key: "updateColors",
72157 value: function updateColors() {
72158 this.secondBkg = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.mainBkg, 16);
72159 this.lineColor = this.mainContrastColor;
72160 this.arrowheadColor = this.mainContrastColor;
72161 /* Flowchart variables */
72162
72163 this.nodeBkg = this.mainBkg;
72164 this.nodeBorder = this.border1;
72165 this.clusterBkg = this.secondBkg;
72166 this.clusterBorder = this.border2;
72167 this.defaultLinkColor = this.lineColor;
72168 this.edgeLabelBackground = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.labelBackground, 25);
72169 /* Sequence Diagram variables */
72170
72171 this.actorBorder = this.border1;
72172 this.actorBkg = this.mainBkg;
72173 this.actorTextColor = this.mainContrastColor;
72174 this.actorLineColor = this.mainContrastColor;
72175 this.signalColor = this.mainContrastColor;
72176 this.signalTextColor = this.mainContrastColor;
72177 this.labelBoxBkgColor = this.actorBkg;
72178 this.labelBoxBorderColor = this.actorBorder;
72179 this.labelTextColor = this.mainContrastColor;
72180 this.loopTextColor = this.mainContrastColor;
72181 this.noteBorderColor = this.border2;
72182 this.noteTextColor = this.mainBkg;
72183 this.activationBorderColor = this.border1;
72184 this.activationBkgColor = this.secondBkg;
72185 /* Gantt chart variables */
72186
72187 this.altSectionBkgColor = this.background;
72188 this.taskBkgColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.mainBkg, 23);
72189 this.taskTextColor = this.darkTextColor;
72190 this.taskTextLightColor = this.mainContrastColor;
72191 this.taskTextOutsideColor = this.taskTextLightColor;
72192 this.gridColor = this.mainContrastColor;
72193 this.doneTaskBkgColor = this.mainContrastColor;
72194 this.taskTextDarkColor = this.darkTextColor;
72195 /* state colors */
72196
72197 this.labelColor = this.textColor;
72198 this.altBackground = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.background, 20);
72199 this.fillType0 = this.primaryColor;
72200 this.fillType1 = this.secondaryColor;
72201 this.fillType2 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72202 h: 64
72203 });
72204 this.fillType3 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72205 h: 64
72206 });
72207 this.fillType4 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72208 h: -64
72209 });
72210 this.fillType5 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72211 h: -64
72212 });
72213 this.fillType6 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72214 h: 128
72215 });
72216 this.fillType7 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72217 h: 128
72218 });
72219 /* class */
72220
72221 this.classText = this.primaryTextColor;
72222 }
72223 }, {
72224 key: "calculate",
72225 value: function calculate(overrides) {
72226 var _this = this;
72227
72228 if (_typeof(overrides) !== 'object') {
72229 // Calculate colors form base colors
72230 this.updateColors();
72231 return;
72232 }
72233
72234 var keys = Object.keys(overrides); // Copy values from overrides, this is mainly for base colors
72235
72236 keys.forEach(function (k) {
72237 _this[k] = overrides[k];
72238 }); // Calculate colors form base colors
72239
72240 this.updateColors(); // Copy values from overrides again in case of an override of derived value
72241
72242 keys.forEach(function (k) {
72243 _this[k] = overrides[k];
72244 });
72245 }
72246 }]);
72247
72248 return Theme;
72249}();
72250
72251var getThemeVariables = function getThemeVariables(userOverrides) {
72252 var theme = new Theme();
72253 theme.calculate(userOverrides);
72254 console.info('Theme(dark)', {
72255 userOverrides: userOverrides,
72256 theme: theme
72257 });
72258 return theme;
72259};
72260
72261/***/ }),
72262
72263/***/ "./src/themes/theme-default.js":
72264/*!*************************************!*\
72265 !*** ./src/themes/theme-default.js ***!
72266 \*************************************/
72267/*! exports provided: getThemeVariables */
72268/***/ (function(module, __webpack_exports__, __webpack_require__) {
72269
72270"use strict";
72271__webpack_require__.r(__webpack_exports__);
72272/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getThemeVariables", function() { return getThemeVariables; });
72273/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/index.js");
72274/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(khroma__WEBPACK_IMPORTED_MODULE_0__);
72275/* harmony import */ var _theme_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-helpers */ "./src/themes/theme-helpers.js");
72276function _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); }
72277
72278function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
72279
72280function _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); } }
72281
72282function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
72283
72284
72285
72286
72287var Theme =
72288/*#__PURE__*/
72289function () {
72290 function Theme() {
72291 _classCallCheck(this, Theme);
72292
72293 /* Base variables */
72294 this.background = '#f4f4f4';
72295 this.primaryColor = '#ECECFF';
72296 this.secondaryColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72297 h: 120
72298 });
72299 this.secondaryColor = '#ffffde';
72300 this.tertiaryColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72301 h: -160
72302 });
72303 this.primaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.primaryColor, this.darkMode);
72304 this.secondaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.secondaryColor, this.darkMode);
72305 this.tertiaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.tertiaryColor, this.darkMode); // this.noteBorderColor = mkBorder(this.noteBkgColor, this.darkMode);
72306
72307 this.primaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.primaryColor);
72308 this.secondaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.secondaryColor);
72309 this.tertiaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.tertiaryColor);
72310 this.lineColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
72311 this.textColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
72312 this.background = 'white';
72313 this.mainBkg = '#ECECFF';
72314 this.secondBkg = '#ffffde';
72315 this.lineColor = '#333333';
72316 this.border1 = '#9370DB';
72317 this.border2 = '#aaaa33';
72318 this.arrowheadColor = '#333333';
72319 this.fontFamily = '"trebuchet ms", verdana, arial';
72320 this.fontSize = '16px';
72321 this.labelBackground = '#e8e8e8';
72322 this.textColor = '#333';
72323 /* Flowchart variables */
72324
72325 this.nodeBkg = 'calculated';
72326 this.nodeBorder = 'calculated';
72327 this.clusterBkg = 'calculated';
72328 this.clusterBorder = 'calculated';
72329 this.defaultLinkColor = 'calculated';
72330 this.titleColor = 'calculated';
72331 this.edgeLabelBackground = 'calculated';
72332 /* Sequence Diagram variables */
72333
72334 this.actorBorder = 'calculated';
72335 this.actorBkg = 'calculated';
72336 this.actorTextColor = 'black';
72337 this.actorLineColor = 'grey';
72338 this.signalColor = 'calculated';
72339 this.signalTextColor = 'calculated';
72340 this.labelBoxBkgColor = 'calculated';
72341 this.labelBoxBorderColor = 'calculated';
72342 this.labelTextColor = 'calculated';
72343 this.loopTextColor = 'calculated';
72344 this.noteBorderColor = 'calculated';
72345 this.noteBkgColor = '#fff5ad';
72346 this.noteTextColor = 'calculated';
72347 this.activationBorderColor = '#666';
72348 this.activationBkgColor = '#f4f4f4';
72349 this.sequenceNumberColor = 'white';
72350 /* Gantt chart variables */
72351
72352 this.sectionBkgColor = 'calculated';
72353 this.altSectionBkgColor = 'calculated';
72354 this.sectionBkgColor2 = 'calculated';
72355 this.taskBorderColor = 'calculated';
72356 this.taskBkgColor = 'calculated';
72357 this.taskTextLightColor = 'calculated';
72358 this.taskTextColor = this.taskTextLightColor;
72359 this.taskTextDarkColor = 'calculated';
72360 this.taskTextOutsideColor = this.taskTextDarkColor;
72361 this.taskTextClickableColor = 'calculated';
72362 this.activeTaskBorderColor = 'calculated';
72363 this.activeTaskBkgColor = 'calculated';
72364 this.gridColor = 'calculated';
72365 this.doneTaskBkgColor = 'calculated';
72366 this.doneTaskBorderColor = 'calculated';
72367 this.critBorderColor = 'calculated';
72368 this.critBkgColor = 'calculated';
72369 this.todayLineColor = 'calculated';
72370 this.sectionBkgColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["rgba"])(102, 102, 255, 0.49);
72371 this.altSectionBkgColor = 'white';
72372 this.sectionBkgColor2 = '#fff400';
72373 this.taskBorderColor = '#534fbc';
72374 this.taskBkgColor = '#8a90dd';
72375 this.taskTextLightColor = 'white';
72376 this.taskTextColor = 'calculated';
72377 this.taskTextDarkColor = 'black';
72378 this.taskTextOutsideColor = 'calculated';
72379 this.taskTextClickableColor = '#003163';
72380 this.activeTaskBorderColor = '#534fbc';
72381 this.activeTaskBkgColor = '#bfc7ff';
72382 this.gridColor = 'lightgrey';
72383 this.doneTaskBkgColor = 'lightgrey';
72384 this.doneTaskBorderColor = 'grey';
72385 this.critBorderColor = '#ff8888';
72386 this.critBkgColor = 'red';
72387 this.todayLineColor = 'red';
72388 /* state colors */
72389
72390 this.labelColor = 'black';
72391 this.errorBkgColor = '#552222';
72392 this.errorTextColor = '#552222';
72393 this.updateColors();
72394 }
72395
72396 _createClass(Theme, [{
72397 key: "updateColors",
72398 value: function updateColors() {
72399 /* Flowchart variables */
72400 this.nodeBkg = this.mainBkg;
72401 this.nodeBorder = this.border1; // border 1
72402
72403 this.clusterBkg = this.secondBkg;
72404 this.clusterBorder = this.border2;
72405 this.defaultLinkColor = this.lineColor;
72406 this.titleColor = this.textColor;
72407 this.edgeLabelBackground = this.labelBackground;
72408 /* Sequence Diagram variables */
72409 // this.actorBorder = lighten(this.border1, 0.5);
72410
72411 this.actorBorder = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.border1, 23);
72412 this.actorBkg = this.mainBkg;
72413 this.labelBoxBkgColor = this.actorBkg;
72414 this.signalColor = this.textColor;
72415 this.signalTextColor = this.textColor;
72416 this.labelBoxBorderColor = this.actorBorder;
72417 this.labelTextColor = this.actorTextColor;
72418 this.loopTextColor = this.actorTextColor;
72419 this.noteBorderColor = this.border2;
72420 this.noteTextColor = this.actorTextColor;
72421 /* Gantt chart variables */
72422
72423 this.taskTextColor = this.taskTextLightColor;
72424 this.taskTextOutsideColor = this.taskTextDarkColor;
72425 /* state colors */
72426
72427 /* class */
72428
72429 this.classText = this.primaryTextColor;
72430 /* journey */
72431
72432 this.fillType0 = this.primaryColor;
72433 this.fillType1 = this.secondaryColor;
72434 this.fillType2 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72435 h: 64
72436 });
72437 this.fillType3 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72438 h: 64
72439 });
72440 this.fillType4 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72441 h: -64
72442 });
72443 this.fillType5 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72444 h: -64
72445 });
72446 this.fillType6 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72447 h: 128
72448 });
72449 this.fillType7 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72450 h: 128
72451 });
72452 }
72453 }, {
72454 key: "calculate",
72455 value: function calculate(overrides) {
72456 var _this = this;
72457
72458 if (_typeof(overrides) !== 'object') {
72459 // Calculate colors form base colors
72460 this.updateColors();
72461 return;
72462 }
72463
72464 var keys = Object.keys(overrides); // Copy values from overrides, this is mainly for base colors
72465
72466 keys.forEach(function (k) {
72467 _this[k] = overrides[k];
72468 }); // Calculate colors form base colors
72469
72470 this.updateColors(); // Copy values from overrides again in case of an override of derived value
72471
72472 keys.forEach(function (k) {
72473 _this[k] = overrides[k];
72474 });
72475 }
72476 }]);
72477
72478 return Theme;
72479}();
72480
72481var getThemeVariables = function getThemeVariables(userOverrides) {
72482 var theme = new Theme();
72483 theme.calculate(userOverrides); // console.info('Theme(default)', { userOverrides, theme });
72484
72485 return theme;
72486};
72487
72488/***/ }),
72489
72490/***/ "./src/themes/theme-forest.js":
72491/*!************************************!*\
72492 !*** ./src/themes/theme-forest.js ***!
72493 \************************************/
72494/*! exports provided: getThemeVariables */
72495/***/ (function(module, __webpack_exports__, __webpack_require__) {
72496
72497"use strict";
72498__webpack_require__.r(__webpack_exports__);
72499/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getThemeVariables", function() { return getThemeVariables; });
72500/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/index.js");
72501/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(khroma__WEBPACK_IMPORTED_MODULE_0__);
72502/* harmony import */ var _theme_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-helpers */ "./src/themes/theme-helpers.js");
72503function _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); }
72504
72505function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
72506
72507function _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); } }
72508
72509function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
72510
72511
72512
72513
72514var Theme =
72515/*#__PURE__*/
72516function () {
72517 function Theme() {
72518 _classCallCheck(this, Theme);
72519
72520 /* Base vales */
72521 this.background = '#f4f4f4';
72522 this.primaryColor = '#cde498';
72523 this.secondaryColor = '#cdffb2';
72524 this.background = 'white';
72525 this.mainBkg = '#cde498';
72526 this.secondBkg = '#cdffb2';
72527 this.lineColor = 'green';
72528 this.border1 = '#13540c';
72529 this.border2 = '#6eaa49';
72530 this.arrowheadColor = 'green';
72531 this.fontFamily = '"trebuchet ms", verdana, arial';
72532 this.fontSize = '16px';
72533 this.tertiaryColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])('#cde498', 10);
72534 this.primaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.primaryColor, this.darkMode);
72535 this.secondaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.secondaryColor, this.darkMode);
72536 this.tertiaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.tertiaryColor, this.darkMode);
72537 this.primaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.primaryColor);
72538 this.secondaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.secondaryColor);
72539 this.tertiaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.primaryColor);
72540 this.lineColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
72541 this.textColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
72542 /* Flowchart variables */
72543
72544 this.nodeBkg = 'calculated';
72545 this.nodeBorder = 'calculated';
72546 this.clusterBkg = 'calculated';
72547 this.clusterBorder = 'calculated';
72548 this.defaultLinkColor = 'calculated';
72549 this.titleColor = '#333';
72550 this.edgeLabelBackground = '#e8e8e8';
72551 /* Sequence Diagram variables */
72552
72553 this.actorBorder = 'calculated';
72554 this.actorBkg = 'calculated';
72555 this.actorTextColor = 'black';
72556 this.actorLineColor = 'grey';
72557 this.signalColor = '#333';
72558 this.signalTextColor = '#333';
72559 this.labelBoxBkgColor = 'calculated';
72560 this.labelBoxBorderColor = '#326932';
72561 this.labelTextColor = 'calculated';
72562 this.loopTextColor = 'calculated';
72563 this.noteBorderColor = 'calculated';
72564 this.noteBkgColor = '#fff5ad';
72565 this.noteTextColor = 'calculated';
72566 this.activationBorderColor = '#666';
72567 this.activationBkgColor = '#f4f4f4';
72568 this.sequenceNumberColor = 'white';
72569 /* Gantt chart variables */
72570
72571 this.sectionBkgColor = '#6eaa49';
72572 this.altSectionBkgColor = 'white';
72573 this.sectionBkgColor2 = '#6eaa49';
72574 this.taskBorderColor = 'calculated';
72575 this.taskBkgColor = '#487e3a';
72576 this.taskTextLightColor = 'white';
72577 this.taskTextColor = 'calculated';
72578 this.taskTextDarkColor = 'black';
72579 this.taskTextOutsideColor = 'calculated';
72580 this.taskTextClickableColor = '#003163';
72581 this.activeTaskBorderColor = 'calculated';
72582 this.activeTaskBkgColor = 'calculated';
72583 this.gridColor = 'lightgrey';
72584 this.doneTaskBkgColor = 'lightgrey';
72585 this.doneTaskBorderColor = 'grey';
72586 this.critBorderColor = '#ff8888';
72587 this.critBkgColor = 'red';
72588 this.todayLineColor = 'red';
72589 /* state colors */
72590
72591 this.labelColor = 'black';
72592 this.errorBkgColor = '#552222';
72593 this.errorTextColor = '#552222';
72594 }
72595
72596 _createClass(Theme, [{
72597 key: "updateColors",
72598 value: function updateColors() {
72599 /* Flowchart variables */
72600 this.nodeBkg = this.mainBkg;
72601 this.nodeBorder = this.border1;
72602 this.clusterBkg = this.secondBkg;
72603 this.clusterBorder = this.border2;
72604 this.defaultLinkColor = this.lineColor;
72605 /* Sequence Diagram variables */
72606
72607 this.actorBorder = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["darken"])(this.mainBkg, 20);
72608 this.actorBkg = this.mainBkg;
72609 this.labelBoxBkgColor = this.actorBkg;
72610 this.labelTextColor = this.actorTextColor;
72611 this.loopTextColor = this.actorTextColor;
72612 this.noteBorderColor = this.border2;
72613 this.noteTextColor = this.actorTextColor;
72614 /* Gantt chart variables */
72615
72616 this.taskBorderColor = this.border1;
72617 this.taskTextColor = this.taskTextLightColor;
72618 this.taskTextOutsideColor = this.taskTextDarkColor;
72619 this.activeTaskBorderColor = this.taskBorderColor;
72620 this.activeTaskBkgColor = this.mainBkg;
72621 /* state colors */
72622
72623 /* class */
72624
72625 this.classText = this.primaryTextColor;
72626 /* journey */
72627
72628 this.fillType0 = this.primaryColor;
72629 this.fillType1 = this.secondaryColor;
72630 this.fillType2 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72631 h: 64
72632 });
72633 this.fillType3 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72634 h: 64
72635 });
72636 this.fillType4 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72637 h: -64
72638 });
72639 this.fillType5 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72640 h: -64
72641 });
72642 this.fillType6 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72643 h: 128
72644 });
72645 this.fillType7 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72646 h: 128
72647 });
72648 }
72649 }, {
72650 key: "calculate",
72651 value: function calculate(overrides) {
72652 var _this = this;
72653
72654 if (_typeof(overrides) !== 'object') {
72655 // Calculate colors form base colors
72656 this.updateColors();
72657 return;
72658 }
72659
72660 var keys = Object.keys(overrides); // Copy values from overrides, this is mainly for base colors
72661
72662 keys.forEach(function (k) {
72663 _this[k] = overrides[k];
72664 }); // Calculate colors form base colors
72665
72666 this.updateColors(); // Copy values from overrides again in case of an override of derived value
72667
72668 keys.forEach(function (k) {
72669 _this[k] = overrides[k];
72670 });
72671 }
72672 }]);
72673
72674 return Theme;
72675}();
72676
72677var getThemeVariables = function getThemeVariables(userOverrides) {
72678 var theme = new Theme();
72679 theme.calculate(userOverrides);
72680 console.info('Theme(forest)', {
72681 userOverrides: userOverrides,
72682 theme: theme
72683 });
72684 return theme;
72685};
72686
72687/***/ }),
72688
72689/***/ "./src/themes/theme-helpers.js":
72690/*!*************************************!*\
72691 !*** ./src/themes/theme-helpers.js ***!
72692 \*************************************/
72693/*! exports provided: mkBorder */
72694/***/ (function(module, __webpack_exports__, __webpack_require__) {
72695
72696"use strict";
72697__webpack_require__.r(__webpack_exports__);
72698/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mkBorder", function() { return mkBorder; });
72699/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/index.js");
72700/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(khroma__WEBPACK_IMPORTED_MODULE_0__);
72701
72702var mkBorder = function mkBorder(col, darkMode) {
72703 return darkMode ? Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(col, {
72704 s: -40,
72705 l: 10
72706 }) : Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(col, {
72707 s: -40,
72708 l: -10
72709 });
72710};
72711
72712/***/ }),
72713
72714/***/ "./src/themes/theme-neutral.js":
72715/*!*************************************!*\
72716 !*** ./src/themes/theme-neutral.js ***!
72717 \*************************************/
72718/*! exports provided: getThemeVariables */
72719/***/ (function(module, __webpack_exports__, __webpack_require__) {
72720
72721"use strict";
72722__webpack_require__.r(__webpack_exports__);
72723/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getThemeVariables", function() { return getThemeVariables; });
72724/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/index.js");
72725/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(khroma__WEBPACK_IMPORTED_MODULE_0__);
72726/* harmony import */ var _theme_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-helpers */ "./src/themes/theme-helpers.js");
72727function _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); }
72728
72729function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
72730
72731function _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); } }
72732
72733function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
72734
72735
72736 // const Color = require ( 'khroma/dist/color' ).default
72737// Color.format.hex.stringify(Color.parse('hsl(210, 66.6666666667%, 95%)')); // => "#EAF2FB"
72738
72739var Theme =
72740/*#__PURE__*/
72741function () {
72742 function Theme() {
72743 _classCallCheck(this, Theme);
72744
72745 this.primaryColor = '#eee';
72746 this.contrast = '#26a';
72747 this.secondaryColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.contrast, 55);
72748 this.background = '#ffffff'; // this.secondaryColor = adjust(this.primaryColor, { h: 120 });
72749
72750 this.tertiaryColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72751 h: -160
72752 });
72753 console.warn('primary color', this.primaryColor, 'tertiary - color', this.tertiaryColor);
72754 this.primaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.primaryColor, this.darkMode);
72755 this.secondaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.secondaryColor, this.darkMode);
72756 this.tertiaryBorderColor = Object(_theme_helpers__WEBPACK_IMPORTED_MODULE_1__["mkBorder"])(this.tertiaryColor, this.darkMode); // this.noteBorderColor = mkBorder(this.noteBkgColor, this.darkMode);
72757
72758 this.primaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.primaryColor);
72759 this.secondaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.secondaryColor);
72760 this.tertiaryTextColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.tertiaryColor);
72761 this.lineColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
72762 this.textColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["invert"])(this.background);
72763 this.altBackground = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.contrast, 55);
72764 this.mainBkg = '#eee';
72765 this.secondBkg = 'calculated';
72766 this.lineColor = '#666';
72767 this.border1 = '#999';
72768 this.border2 = 'calculated';
72769 this.note = '#ffa';
72770 this.text = '#333';
72771 this.critical = '#d42';
72772 this.done = '#bbb';
72773 this.arrowheadColor = '#333333';
72774 this.fontFamily = '"trebuchet ms", verdana, arial';
72775 this.fontSize = '16px';
72776 /* Flowchart variables */
72777
72778 this.nodeBkg = 'calculated';
72779 this.nodeBorder = 'calculated';
72780 this.clusterBkg = 'calculated';
72781 this.clusterBorder = 'calculated';
72782 this.defaultLinkColor = 'calculated';
72783 this.titleColor = 'calculated';
72784 this.edgeLabelBackground = 'white';
72785 /* Sequence Diagram variables */
72786
72787 this.actorBorder = 'calculated';
72788 this.actorBkg = 'calculated';
72789 this.actorTextColor = 'calculated';
72790 this.actorLineColor = 'calculated';
72791 this.signalColor = 'calculated';
72792 this.signalTextColor = 'calculated';
72793 this.labelBoxBkgColor = 'calculated';
72794 this.labelBoxBorderColor = 'calculated';
72795 this.labelTextColor = 'calculated';
72796 this.loopTextColor = 'calculated';
72797 this.noteBorderColor = 'calculated';
72798 this.noteBkgColor = 'calculated';
72799 this.noteTextColor = 'calculated';
72800 this.activationBorderColor = '#666';
72801 this.activationBkgColor = '#f4f4f4';
72802 this.sequenceNumberColor = 'white';
72803 /* Gantt chart variables */
72804
72805 this.sectionBkgColor = 'calculated';
72806 this.altSectionBkgColor = 'white';
72807 this.sectionBkgColor2 = 'calculated';
72808 this.taskBorderColor = 'calculated';
72809 this.taskBkgColor = 'calculated';
72810 this.taskTextLightColor = 'white';
72811 this.taskTextColor = 'calculated';
72812 this.taskTextDarkColor = 'calculated';
72813 this.taskTextOutsideColor = 'calculated';
72814 this.taskTextClickableColor = '#003163';
72815 this.activeTaskBorderColor = 'calculated';
72816 this.activeTaskBkgColor = 'calculated';
72817 this.gridColor = 'calculated';
72818 this.doneTaskBkgColor = 'calculated';
72819 this.doneTaskBorderColor = 'calculated';
72820 this.critBkgColor = 'calculated';
72821 this.critBorderColor = 'calculated';
72822 this.todayLineColor = 'calculated';
72823 /* state colors */
72824
72825 this.labelColor = 'black';
72826 this.errorBkgColor = '#552222';
72827 this.errorTextColor = '#552222';
72828 }
72829
72830 _createClass(Theme, [{
72831 key: "updateColors",
72832 value: function updateColors() {
72833 this.secondBkg = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.contrast, 55);
72834 this.border2 = this.contrast;
72835 /* Flowchart variables */
72836
72837 this.nodeBkg = this.mainBkg;
72838 this.nodeBorder = this.border1;
72839 this.clusterBkg = this.secondBkg;
72840 this.clusterBorder = this.border2;
72841 this.defaultLinkColor = this.lineColor;
72842 this.titleColor = this.text;
72843 /* Sequence Diagram variables */
72844
72845 this.actorBorder = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.border1, 23);
72846 this.actorBkg = this.mainBkg;
72847 this.actorTextColor = this.text;
72848 this.actorLineColor = this.lineColor;
72849 this.signalColor = this.text;
72850 this.signalTextColor = this.text;
72851 this.labelBoxBkgColor = this.actorBkg;
72852 this.labelBoxBorderColor = this.actorBorder;
72853 this.labelTextColor = this.text;
72854 this.loopTextColor = this.text;
72855 this.noteBorderColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["darken"])(this.note, 60);
72856 this.noteBkgColor = this.note;
72857 this.noteTextColor = this.actorTextColor;
72858 /* Gantt chart variables */
72859
72860 this.sectionBkgColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.contrast, 30);
72861 this.sectionBkgColor2 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.contrast, 30);
72862 this.taskBorderColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["darken"])(this.contrast, 10);
72863 this.taskBkgColor = this.contrast;
72864 this.taskTextColor = this.taskTextLightColor;
72865 this.taskTextDarkColor = this.text;
72866 this.taskTextOutsideColor = this.taskTextDarkColor;
72867 this.activeTaskBorderColor = this.taskBorderColor;
72868 this.activeTaskBkgColor = this.mainBkg;
72869 this.gridColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["lighten"])(this.border1, 30);
72870 this.doneTaskBkgColor = this.done;
72871 this.doneTaskBorderColor = this.lineColor;
72872 this.critBkgColor = this.critical;
72873 this.critBorderColor = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["darken"])(this.critBkgColor, 10);
72874 this.todayLineColor = this.critBkgColor;
72875 /* state colors */
72876
72877 /* class */
72878
72879 this.classText = this.primaryTextColor;
72880 /* journey */
72881
72882 this.fillType0 = this.primaryColor;
72883 this.fillType1 = this.secondaryColor;
72884 this.fillType2 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72885 h: 64
72886 });
72887 this.fillType3 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72888 h: 64
72889 });
72890 this.fillType4 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72891 h: -64
72892 });
72893 this.fillType5 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72894 h: -64
72895 });
72896 this.fillType6 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.primaryColor, {
72897 h: 128
72898 });
72899 this.fillType7 = Object(khroma__WEBPACK_IMPORTED_MODULE_0__["adjust"])(this.secondaryColor, {
72900 h: 128
72901 });
72902 }
72903 }, {
72904 key: "calculate",
72905 value: function calculate(overrides) {
72906 var _this = this;
72907
72908 if (_typeof(overrides) !== 'object') {
72909 // Calculate colors form base colors
72910 this.updateColors();
72911 return;
72912 }
72913
72914 var keys = Object.keys(overrides); // Copy values from overrides, this is mainly for base colors
72915
72916 keys.forEach(function (k) {
72917 _this[k] = overrides[k];
72918 }); // Calculate colors form base colors
72919
72920 this.updateColors(); // Copy values from overrides again in case of an override of derived value
72921
72922 keys.forEach(function (k) {
72923 _this[k] = overrides[k];
72924 });
72925 }
72926 }]);
72927
72928 return Theme;
72929}();
72930
72931var getThemeVariables = function getThemeVariables(userOverrides) {
72932 var theme = new Theme();
72933 theme.calculate(userOverrides);
72934 console.info('Theme(neutral)', {
72935 userOverrides: userOverrides,
72936 theme: theme
72937 });
72938 return theme;
72939};
72940
72941/***/ }),
72942
72943/***/ "./src/utils.js":
72944/*!**********************!*\
72945 !*** ./src/utils.js ***!
72946 \**********************/
72947/*! exports provided: detectInit, detectDirective, detectType, isSubstringInArray, interpolateToCurve, formatUrl, runFunc, getStylesFromArray, generateId, random, assignWithDepth, getTextObj, drawSimpleText, wrapLabel, calculateTextHeight, calculateTextWidth, calculateTextDimensions, default */
72948/***/ (function(module, __webpack_exports__, __webpack_require__) {
72949
72950"use strict";
72951__webpack_require__.r(__webpack_exports__);
72952/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detectInit", function() { return detectInit; });
72953/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detectDirective", function() { return detectDirective; });
72954/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detectType", function() { return detectType; });
72955/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isSubstringInArray", function() { return isSubstringInArray; });
72956/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "interpolateToCurve", function() { return interpolateToCurve; });
72957/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatUrl", function() { return formatUrl; });
72958/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "runFunc", function() { return runFunc; });
72959/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStylesFromArray", function() { return getStylesFromArray; });
72960/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "generateId", function() { return generateId; });
72961/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "random", function() { return random; });
72962/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assignWithDepth", function() { return assignWithDepth; });
72963/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTextObj", function() { return getTextObj; });
72964/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawSimpleText", function() { return drawSimpleText; });
72965/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wrapLabel", function() { return wrapLabel; });
72966/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calculateTextHeight", function() { return calculateTextHeight; });
72967/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calculateTextWidth", function() { return calculateTextWidth; });
72968/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calculateTextDimensions", function() { return calculateTextDimensions; });
72969/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/index.js");
72970/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
72971/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @braintree/sanitize-url */ "./node_modules/@braintree/sanitize-url/index.js");
72972/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_2__);
72973/* harmony import */ var _diagrams_common_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./diagrams/common/common */ "./src/diagrams/common/common.js");
72974var _this = undefined;
72975
72976function _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); }
72977
72978function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
72979
72980function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
72981
72982function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
72983
72984function _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; } }
72985
72986
72987
72988
72989 // import cryptoRandomString from 'crypto-random-string';
72990// Effectively an enum of the supported curve types, accessible by name
72991
72992var d3CurveTypes = {
72993 curveBasis: d3__WEBPACK_IMPORTED_MODULE_0__["curveBasis"],
72994 curveBasisClosed: d3__WEBPACK_IMPORTED_MODULE_0__["curveBasisClosed"],
72995 curveBasisOpen: d3__WEBPACK_IMPORTED_MODULE_0__["curveBasisOpen"],
72996 curveLinear: d3__WEBPACK_IMPORTED_MODULE_0__["curveLinear"],
72997 curveLinearClosed: d3__WEBPACK_IMPORTED_MODULE_0__["curveLinearClosed"],
72998 curveMonotoneX: d3__WEBPACK_IMPORTED_MODULE_0__["curveMonotoneX"],
72999 curveMonotoneY: d3__WEBPACK_IMPORTED_MODULE_0__["curveMonotoneY"],
73000 curveNatural: d3__WEBPACK_IMPORTED_MODULE_0__["curveNatural"],
73001 curveStep: d3__WEBPACK_IMPORTED_MODULE_0__["curveStep"],
73002 curveStepAfter: d3__WEBPACK_IMPORTED_MODULE_0__["curveStepAfter"],
73003 curveStepBefore: d3__WEBPACK_IMPORTED_MODULE_0__["curveStepBefore"]
73004};
73005var directive = /[%]{2}[{]\s*(?:(?:(\w+)\s*:|(\w+))\s*(?:(?:(\w+))|((?:(?![}][%]{2}).|\r?\n)*))?\s*)(?:[}][%]{2})?/gi;
73006var directiveWithoutOpen = /\s*(?:(?:(\w+)(?=:):|(\w+))\s*(?:(?:(\w+))|((?:(?![}][%]{2}).|\r?\n)*))?\s*)(?:[}][%]{2})?/gi;
73007var anyComment = /\s*%%.*\n/gm;
73008/**
73009 * @function detectInit
73010 * Detects the init config object from the text
73011 * ```mermaid
73012 * %%{init: {"theme": "debug", "logLevel": 1 }}%%
73013 * graph LR
73014 * a-->b
73015 * b-->c
73016 * c-->d
73017 * d-->e
73018 * e-->f
73019 * f-->g
73020 * g-->h
73021 * ```
73022 * or
73023 * ```mermaid
73024 * %%{initialize: {"theme": "dark", logLevel: "debug" }}%%
73025 * graph LR
73026 * a-->b
73027 * b-->c
73028 * c-->d
73029 * d-->e
73030 * e-->f
73031 * f-->g
73032 * g-->h
73033 * ```
73034 *
73035 * @param {string} text The text defining the graph
73036 * @returns {object} the json object representing the init passed to mermaid.initialize()
73037 */
73038
73039var detectInit = function detectInit(text) {
73040 var inits = detectDirective(text, /(?:init\b)|(?:initialize\b)/);
73041 var results = {};
73042
73043 if (Array.isArray(inits)) {
73044 var args = inits.map(function (init) {
73045 return init.args;
73046 });
73047 results = assignWithDepth(results, _toConsumableArray(args));
73048 } else {
73049 results = inits.args;
73050 }
73051
73052 if (results) {
73053 var type = detectType(text);
73054 ['config'].forEach(function (prop) {
73055 if (typeof results[prop] !== 'undefined') {
73056 if (type === 'flowchart-v2') {
73057 type = 'flowchart';
73058 }
73059
73060 results[type] = results[prop];
73061 delete results[prop];
73062 }
73063 });
73064 }
73065
73066 return results;
73067};
73068/**
73069 * @function detectDirective
73070 * Detects the directive from the text. Text can be single line or multiline. If type is null or omitted
73071 * the first directive encountered in text will be returned
73072 * ```mermaid
73073 * graph LR
73074 * %%{somedirective}%%
73075 * a-->b
73076 * b-->c
73077 * c-->d
73078 * d-->e
73079 * e-->f
73080 * f-->g
73081 * g-->h
73082 * ```
73083 *
73084 * @param {string} text The text defining the graph
73085 * @param {string|RegExp} type The directive to return (default: null)
73086 * @returns {object | Array} An object or Array representing the directive(s): { type: string, args: object|null } matched by the input type
73087 * if a single directive was found, that directive object will be returned.
73088 */
73089
73090var detectDirective = function detectDirective(text) {
73091 var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
73092
73093 try {
73094 var commentWithoutDirectives = new RegExp("[%]{2}(?![{]".concat(directiveWithoutOpen.source, ")(?=[}][%]{2}).*\n"), 'ig');
73095 text = text.trim().replace(commentWithoutDirectives, '').replace(/'/gm, '"');
73096 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug("Detecting diagram directive".concat(type !== null ? ' type:' + type : '', " based on the text:").concat(text));
73097 var match,
73098 result = [];
73099
73100 while ((match = directive.exec(text)) !== null) {
73101 // This is necessary to avoid infinite loops with zero-width matches
73102 if (match.index === directive.lastIndex) {
73103 directive.lastIndex++;
73104 }
73105
73106 if (match && !type || type && match[1] && match[1].match(type) || type && match[2] && match[2].match(type)) {
73107 var _type = match[1] ? match[1] : match[2];
73108
73109 var args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;
73110 result.push({
73111 type: _type,
73112 args: args
73113 });
73114 }
73115 }
73116
73117 if (result.length === 0) {
73118 result.push({
73119 type: text,
73120 args: null
73121 });
73122 }
73123
73124 return result.length === 1 ? result[0] : result;
73125 } catch (error) {
73126 _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));
73127 return {
73128 type: null,
73129 args: null
73130 };
73131 }
73132};
73133/**
73134 * @function detectType
73135 * Detects the type of the graph text. Takes into consideration the possible existence of an %%init
73136 * directive
73137 * ```mermaid
73138 * %%{initialize: {"startOnLoad": true, logLevel: "fatal" }}%%
73139 * graph LR
73140 * a-->b
73141 * b-->c
73142 * c-->d
73143 * d-->e
73144 * e-->f
73145 * f-->g
73146 * g-->h
73147 * ```
73148 *
73149 * @param {string} text The text defining the graph
73150 * @returns {string} A graph definition key
73151 */
73152
73153var detectType = function detectType(text) {
73154 text = text.replace(directive, '').replace(anyComment, '\n');
73155 _logger__WEBPACK_IMPORTED_MODULE_1__["logger"].debug('Detecting diagram type based on the text ' + text);
73156
73157 if (text.match(/^\s*sequenceDiagram/)) {
73158 return 'sequence';
73159 }
73160
73161 if (text.match(/^\s*gantt/)) {
73162 return 'gantt';
73163 }
73164
73165 if (text.match(/^\s*classDiagram-v2/)) {
73166 return 'classDiagram';
73167 }
73168
73169 if (text.match(/^\s*classDiagram/)) {
73170 return 'class';
73171 }
73172
73173 if (text.match(/^\s*stateDiagram-v2/)) {
73174 return 'stateDiagram';
73175 }
73176
73177 if (text.match(/^\s*stateDiagram/)) {
73178 return 'state';
73179 }
73180
73181 if (text.match(/^\s*gitGraph/)) {
73182 return 'git';
73183 }
73184
73185 if (text.match(/^\s*flowchart/)) {
73186 return 'flowchart-v2';
73187 }
73188
73189 if (text.match(/^\s*info/)) {
73190 return 'info';
73191 }
73192
73193 if (text.match(/^\s*pie/)) {
73194 return 'pie';
73195 }
73196
73197 if (text.match(/^\s*erDiagram/)) {
73198 return 'er';
73199 }
73200
73201 if (text.match(/^\s*journey/)) {
73202 return 'journey';
73203 }
73204
73205 return 'flowchart';
73206};
73207
73208var memoize = function memoize(fn, resolver) {
73209 var cache = {};
73210 return function () {
73211 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
73212 args[_key] = arguments[_key];
73213 }
73214
73215 var n = resolver ? resolver.apply(_this, args) : args[0];
73216
73217 if (n in cache) {
73218 return cache[n];
73219 } else {
73220 var result = fn.apply(void 0, args);
73221 cache[n] = result;
73222 return result;
73223 }
73224 };
73225};
73226/**
73227 * @function isSubstringInArray
73228 * Detects whether a substring in present in a given array
73229 * @param {string} str The substring to detect
73230 * @param {array} arr The array to search
73231 * @returns {number} the array index containing the substring or -1 if not present
73232 **/
73233
73234
73235var isSubstringInArray = function isSubstringInArray(str, arr) {
73236 for (var i = 0; i < arr.length; i++) {
73237 if (arr[i].match(str)) return i;
73238 }
73239
73240 return -1;
73241};
73242var interpolateToCurve = function interpolateToCurve(interpolate, defaultCurve) {
73243 if (!interpolate) {
73244 return defaultCurve;
73245 }
73246
73247 var curveName = "curve".concat(interpolate.charAt(0).toUpperCase() + interpolate.slice(1));
73248 return d3CurveTypes[curveName] || defaultCurve;
73249};
73250var formatUrl = function formatUrl(linkStr, config) {
73251 var url = linkStr.trim();
73252
73253 if (url) {
73254 if (config.securityLevel !== 'loose') {
73255 return Object(_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_2__["sanitizeUrl"])(url);
73256 }
73257
73258 return url;
73259 }
73260};
73261var runFunc = function runFunc(functionName) {
73262 var _obj;
73263
73264 var arrPaths = functionName.split('.');
73265 var len = arrPaths.length - 1;
73266 var fnName = arrPaths[len];
73267 var obj = window;
73268
73269 for (var i = 0; i < len; i++) {
73270 obj = obj[arrPaths[i]];
73271 if (!obj) return;
73272 }
73273
73274 for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
73275 params[_key2 - 1] = arguments[_key2];
73276 }
73277
73278 (_obj = obj)[fnName].apply(_obj, params);
73279};
73280
73281var distance = function distance(p1, p2) {
73282 return p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0;
73283};
73284
73285var traverseEdge = function traverseEdge(points) {
73286 var prevPoint;
73287 var totalDistance = 0;
73288 points.forEach(function (point) {
73289 totalDistance += distance(point, prevPoint);
73290 prevPoint = point;
73291 }); // Traverse half of total distance along points
73292
73293 var remainingDistance = totalDistance / 2;
73294 var center = undefined;
73295 prevPoint = undefined;
73296 points.forEach(function (point) {
73297 if (prevPoint && !center) {
73298 var vectorDistance = distance(point, prevPoint);
73299
73300 if (vectorDistance < remainingDistance) {
73301 remainingDistance -= vectorDistance;
73302 } else {
73303 // The point is remainingDistance from prevPoint in the vector between prevPoint and point
73304 // Calculate the coordinates
73305 var distanceRatio = remainingDistance / vectorDistance;
73306 if (distanceRatio <= 0) center = prevPoint;
73307 if (distanceRatio >= 1) center = {
73308 x: point.x,
73309 y: point.y
73310 };
73311
73312 if (distanceRatio > 0 && distanceRatio < 1) {
73313 center = {
73314 x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,
73315 y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y
73316 };
73317 }
73318 }
73319 }
73320
73321 prevPoint = point;
73322 });
73323 return center;
73324};
73325
73326var calcLabelPosition = function calcLabelPosition(points) {
73327 return traverseEdge(points);
73328};
73329
73330var calcCardinalityPosition = function calcCardinalityPosition(isRelationTypePresent, points, initialPosition) {
73331 var prevPoint;
73332 var totalDistance = 0; // eslint-disable-line
73333
73334 if (points[0] !== initialPosition) {
73335 points = points.reverse();
73336 }
73337
73338 points.forEach(function (point) {
73339 totalDistance += distance(point, prevPoint);
73340 prevPoint = point;
73341 }); // Traverse only 25 total distance along points to find cardinality point
73342
73343 var distanceToCardinalityPoint = 25;
73344 var remainingDistance = distanceToCardinalityPoint;
73345 var center;
73346 prevPoint = undefined;
73347 points.forEach(function (point) {
73348 if (prevPoint && !center) {
73349 var vectorDistance = distance(point, prevPoint);
73350
73351 if (vectorDistance < remainingDistance) {
73352 remainingDistance -= vectorDistance;
73353 } else {
73354 // The point is remainingDistance from prevPoint in the vector between prevPoint and point
73355 // Calculate the coordinates
73356 var distanceRatio = remainingDistance / vectorDistance;
73357 if (distanceRatio <= 0) center = prevPoint;
73358 if (distanceRatio >= 1) center = {
73359 x: point.x,
73360 y: point.y
73361 };
73362
73363 if (distanceRatio > 0 && distanceRatio < 1) {
73364 center = {
73365 x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,
73366 y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y
73367 };
73368 }
73369 }
73370 }
73371
73372 prevPoint = point;
73373 }); // if relation is present (Arrows will be added), change cardinality point off-set distance (d)
73374
73375 var d = isRelationTypePresent ? 10 : 5; //Calculate Angle for x and y axis
73376
73377 var angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);
73378 var cardinalityPosition = {
73379 x: 0,
73380 y: 0
73381 }; //Calculation cardinality position using angle, center point on the line/curve but pendicular and with offset-distance
73382
73383 cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;
73384 cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;
73385 return cardinalityPosition;
73386};
73387
73388var getStylesFromArray = function getStylesFromArray(arr) {
73389 var style = '';
73390 var labelStyle = '';
73391
73392 for (var i = 0; i < arr.length; i++) {
73393 if (typeof arr[i] !== 'undefined') {
73394 // add text properties to label style definition
73395 if (arr[i].startsWith('color:') || arr[i].startsWith('text-align:')) {
73396 labelStyle = labelStyle + arr[i] + ';';
73397 } else {
73398 style = style + arr[i] + ';';
73399 }
73400 }
73401 }
73402
73403 return {
73404 style: style,
73405 labelStyle: labelStyle
73406 };
73407};
73408var cnt = 0;
73409var generateId = function generateId() {
73410 cnt++;
73411 return 'id-' + Math.random().toString(36).substr(2, 12) + '-' + cnt;
73412};
73413
73414function makeid(length) {
73415 var result = '';
73416 var characters = '0123456789abcdef';
73417 var charactersLength = characters.length;
73418
73419 for (var i = 0; i < length; i++) {
73420 result += characters.charAt(Math.floor(Math.random() * charactersLength));
73421 }
73422
73423 return result;
73424}
73425
73426var random = function random(options) {
73427 return makeid(options.length);
73428};
73429/**
73430 * @function assignWithDepth
73431 * Extends the functionality of {@link ObjectConstructor.assign} with the ability to merge arbitrary-depth objects
73432 * For each key in src with path `k` (recursively) performs an Object.assign(dst[`k`], src[`k`]) with
73433 * a slight change from the typical handling of undefined for dst[`k`]: instead of raising an error,
73434 * dst[`k`] is auto-initialized to {} and effectively merged with src[`k`]
73435 * <p>
73436 * Additionally, dissimilar types will not clobber unless the config.clobber parameter === true. Example:
73437 * ```
73438 * let config_0 = { foo: { bar: 'bar' }, bar: 'foo' };
73439 * let config_1 = { foo: 'foo', bar: 'bar' };
73440 * let result = assignWithDepth(config_0, config_1);
73441 * console.log(result);
73442 * //-> result: { foo: { bar: 'bar' }, bar: 'bar' }
73443 * ```
73444 * <p>
73445 * Traditional Object.assign would have clobbered foo in config_0 with foo in config_1.
73446 * <p>
73447 * If src is a destructured array of objects and dst is not an array, assignWithDepth will apply each element of src to dst
73448 * in order.
73449 * @param dst:any - the destination of the merge
73450 * @param src:any - the source object(s) to merge into destination
73451 * @param config:{ depth: number, clobber: boolean } - depth: depth to traverse within src and dst for merging -
73452 * clobber: should dissimilar types clobber (default: { depth: 2, clobber: false })
73453 * @returns {*}
73454 */
73455
73456var assignWithDepth = function assignWithDepth(dst, src, config) {
73457 var _Object$assign = Object.assign({
73458 depth: 2,
73459 clobber: false
73460 }, config),
73461 depth = _Object$assign.depth,
73462 clobber = _Object$assign.clobber;
73463
73464 if (Array.isArray(src) && !Array.isArray(dst)) {
73465 src.forEach(function (s) {
73466 return assignWithDepth(dst, s, config);
73467 });
73468 return dst;
73469 } else if (Array.isArray(src) && Array.isArray(dst)) {
73470 src.forEach(function (s) {
73471 if (dst.indexOf(s) === -1) {
73472 dst.push(s);
73473 }
73474 });
73475 return dst;
73476 }
73477
73478 if (typeof dst === 'undefined' || depth <= 0) {
73479 if (dst !== undefined && dst !== null && _typeof(dst) === 'object' && _typeof(src) === 'object') {
73480 return Object.assign(dst, src);
73481 } else {
73482 return src;
73483 }
73484 }
73485
73486 if (typeof src !== 'undefined' && _typeof(dst) === 'object' && _typeof(src) === 'object') {
73487 Object.keys(src).forEach(function (key) {
73488 if (_typeof(src[key]) === 'object' && (dst[key] === undefined || _typeof(dst[key]) === 'object')) {
73489 if (dst[key] === undefined) {
73490 dst[key] = Array.isArray(src[key]) ? [] : {};
73491 }
73492
73493 dst[key] = assignWithDepth(dst[key], src[key], {
73494 depth: depth - 1,
73495 clobber: clobber
73496 });
73497 } else if (clobber || _typeof(dst[key]) !== 'object' && _typeof(src[key]) !== 'object') {
73498 dst[key] = src[key];
73499 }
73500 });
73501 }
73502
73503 return dst;
73504};
73505var getTextObj = function getTextObj() {
73506 return {
73507 x: 0,
73508 y: 0,
73509 fill: undefined,
73510 anchor: 'start',
73511 style: '#666',
73512 width: 100,
73513 height: 100,
73514 textMargin: 0,
73515 rx: 0,
73516 ry: 0,
73517 valign: undefined
73518 };
73519};
73520var drawSimpleText = function drawSimpleText(elem, textData) {
73521 // Remove and ignore br:s
73522 var nText = textData.text.replace(_diagrams_common_common__WEBPACK_IMPORTED_MODULE_3__["default"].lineBreakRegex, ' ');
73523 var textElem = elem.append('text');
73524 textElem.attr('x', textData.x);
73525 textElem.attr('y', textData.y);
73526 textElem.style('text-anchor', textData.anchor);
73527 textElem.style('font-family', textData.fontFamily);
73528 textElem.style('font-size', textData.fontSize);
73529 textElem.style('font-weight', textData.fontWeight);
73530 textElem.attr('fill', textData.fill);
73531
73532 if (typeof textData.class !== 'undefined') {
73533 textElem.attr('class', textData.class);
73534 }
73535
73536 var span = textElem.append('tspan');
73537 span.attr('x', textData.x + textData.textMargin * 2);
73538 span.attr('fill', textData.fill);
73539 span.text(nText);
73540 return textElem;
73541};
73542var wrapLabel = memoize(function (label, maxWidth, config) {
73543 if (!label) {
73544 return label;
73545 }
73546
73547 config = Object.assign({
73548 fontSize: 12,
73549 fontWeight: 400,
73550 fontFamily: 'Arial',
73551 joinWith: '<br/>'
73552 }, config);
73553
73554 if (_diagrams_common_common__WEBPACK_IMPORTED_MODULE_3__["default"].lineBreakRegex.test(label)) {
73555 return label;
73556 }
73557
73558 var words = label.split(' ');
73559 var completedLines = [];
73560 var nextLine = '';
73561 words.forEach(function (word, index) {
73562 var wordLength = calculateTextWidth("".concat(word, " "), config);
73563 var nextLineLength = calculateTextWidth(nextLine, config);
73564
73565 if (wordLength > maxWidth) {
73566 var _breakString = breakString(word, maxWidth, '-', config),
73567 hyphenatedStrings = _breakString.hyphenatedStrings,
73568 remainingWord = _breakString.remainingWord;
73569
73570 completedLines.push.apply(completedLines, [nextLine].concat(_toConsumableArray(hyphenatedStrings)));
73571 nextLine = remainingWord;
73572 } else if (nextLineLength + wordLength >= maxWidth) {
73573 completedLines.push(nextLine);
73574 nextLine = word;
73575 } else {
73576 nextLine = [nextLine, word].filter(Boolean).join(' ');
73577 }
73578
73579 var currentWord = index + 1;
73580 var isLastWord = currentWord === words.length;
73581
73582 if (isLastWord) {
73583 completedLines.push(nextLine);
73584 }
73585 });
73586 return completedLines.filter(function (line) {
73587 return line !== '';
73588 }).join(config.joinWith);
73589}, function (label, maxWidth, config) {
73590 return "".concat(label, "-").concat(maxWidth, "-").concat(config.fontSize, "-").concat(config.fontWeight, "-").concat(config.fontFamily, "-").concat(config.joinWith);
73591});
73592var breakString = memoize(function (word, maxWidth) {
73593 var hyphenCharacter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '-';
73594 var config = arguments.length > 3 ? arguments[3] : undefined;
73595 config = Object.assign({
73596 fontSize: 12,
73597 fontWeight: 400,
73598 fontFamily: 'Arial',
73599 margin: 0
73600 }, config);
73601 var characters = word.split('');
73602 var lines = [];
73603 var currentLine = '';
73604 characters.forEach(function (character, index) {
73605 var nextLine = "".concat(currentLine).concat(character);
73606 var lineWidth = calculateTextWidth(nextLine, config);
73607
73608 if (lineWidth >= maxWidth) {
73609 var currentCharacter = index + 1;
73610 var isLastLine = characters.length === currentCharacter;
73611 var hyphenatedNextLine = "".concat(nextLine).concat(hyphenCharacter);
73612 lines.push(isLastLine ? nextLine : hyphenatedNextLine);
73613 currentLine = '';
73614 } else {
73615 currentLine = nextLine;
73616 }
73617 });
73618 return {
73619 hyphenatedStrings: lines,
73620 remainingWord: currentLine
73621 };
73622}, function (word, maxWidth) {
73623 var hyphenCharacter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '-';
73624 var config = arguments.length > 3 ? arguments[3] : undefined;
73625 return "".concat(word, "-").concat(maxWidth, "-").concat(hyphenCharacter, "-").concat(config.fontSize, "-").concat(config.fontWeight, "-").concat(config.fontFamily);
73626});
73627/**
73628 * This calculates the text's height, taking into account the wrap breaks and
73629 * both the statically configured height, width, and the length of the text (in pixels).
73630 *
73631 * If the wrapped text text has greater height, we extend the height, so it's
73632 * value won't overflow.
73633 *
73634 * @return - The height for the given text
73635 * @param text the text to measure
73636 * @param config - the config for fontSize, fontFamily, and fontWeight all impacting the resulting size
73637 */
73638
73639var calculateTextHeight = function calculateTextHeight(text, config) {
73640 config = Object.assign({
73641 fontSize: 12,
73642 fontWeight: 400,
73643 fontFamily: 'Arial',
73644 margin: 15
73645 }, config);
73646 return calculateTextDimensions(text, config).height;
73647};
73648/**
73649 * This calculates the width of the given text, font size and family.
73650 *
73651 * @return - The width for the given text
73652 * @param text - The text to calculate the width of
73653 * @param config - the config for fontSize, fontFamily, and fontWeight all impacting the resulting size
73654 */
73655
73656var calculateTextWidth = function calculateTextWidth(text, config) {
73657 config = Object.assign({
73658 fontSize: 12,
73659 fontWeight: 400,
73660 fontFamily: 'Arial'
73661 }, config);
73662 return calculateTextDimensions(text, config).width;
73663};
73664/**
73665 * This calculates the dimensions of the given text, font size, font family, font weight, and margins.
73666 *
73667 * @return - The width for the given text
73668 * @param text - The text to calculate the width of
73669 * @param config - the config for fontSize, fontFamily, fontWeight, and margin all impacting the resulting size
73670 */
73671
73672var calculateTextDimensions = memoize(function (text, config) {
73673 config = Object.assign({
73674 fontSize: 12,
73675 fontWeight: 400,
73676 fontFamily: 'Arial'
73677 }, config);
73678 var _config = config,
73679 fontSize = _config.fontSize,
73680 fontFamily = _config.fontFamily,
73681 fontWeight = _config.fontWeight;
73682
73683 if (!text) {
73684 return {
73685 width: 0,
73686 height: 0
73687 };
73688 } // We can't really know if the user supplied font family will render on the user agent;
73689 // thus, we'll take the max width between the user supplied font family, and a default
73690 // of sans-serif.
73691
73692
73693 var fontFamilies = ['sans-serif', fontFamily];
73694 var lines = text.split(_diagrams_common_common__WEBPACK_IMPORTED_MODULE_3__["default"].lineBreakRegex);
73695 var dims = [];
73696 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
73697 // for any reason, do not continue.
73698
73699 if (!body.remove) {
73700 return {
73701 width: 0,
73702 height: 0,
73703 lineHeight: 0
73704 };
73705 }
73706
73707 var g = body.append('svg');
73708
73709 for (var _i = 0, _fontFamilies = fontFamilies; _i < _fontFamilies.length; _i++) {
73710 var _fontFamily = _fontFamilies[_i];
73711 var cheight = 0;
73712 var dim = {
73713 width: 0,
73714 height: 0,
73715 lineHeight: 0
73716 };
73717 var _iteratorNormalCompletion = true;
73718 var _didIteratorError = false;
73719 var _iteratorError = undefined;
73720
73721 try {
73722 for (var _iterator = lines[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
73723 var line = _step.value;
73724 var textObj = getTextObj();
73725 textObj.text = line;
73726 var textElem = drawSimpleText(g, textObj).style('font-size', fontSize).style('font-weight', fontWeight).style('font-family', _fontFamily);
73727 var bBox = (textElem._groups || textElem)[0][0].getBBox();
73728 dim.width = Math.round(Math.max(dim.width, bBox.width));
73729 cheight = Math.round(bBox.height);
73730 dim.height += cheight;
73731 dim.lineHeight = Math.round(Math.max(dim.lineHeight, cheight));
73732 }
73733 } catch (err) {
73734 _didIteratorError = true;
73735 _iteratorError = err;
73736 } finally {
73737 try {
73738 if (!_iteratorNormalCompletion && _iterator.return != null) {
73739 _iterator.return();
73740 }
73741 } finally {
73742 if (_didIteratorError) {
73743 throw _iteratorError;
73744 }
73745 }
73746 }
73747
73748 dims.push(dim);
73749 }
73750
73751 g.remove();
73752 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;
73753 return dims[index];
73754}, function (text, config) {
73755 return "".concat(text, "-").concat(config.fontSize, "-").concat(config.fontWeight, "-").concat(config.fontFamily);
73756});
73757/* harmony default export */ __webpack_exports__["default"] = ({
73758 assignWithDepth: assignWithDepth,
73759 wrapLabel: wrapLabel,
73760 calculateTextHeight: calculateTextHeight,
73761 calculateTextWidth: calculateTextWidth,
73762 calculateTextDimensions: calculateTextDimensions,
73763 detectInit: detectInit,
73764 detectDirective: detectDirective,
73765 detectType: detectType,
73766 isSubstringInArray: isSubstringInArray,
73767 interpolateToCurve: interpolateToCurve,
73768 calcLabelPosition: calcLabelPosition,
73769 calcCardinalityPosition: calcCardinalityPosition,
73770 formatUrl: formatUrl,
73771 getStylesFromArray: getStylesFromArray,
73772 generateId: generateId,
73773 random: random,
73774 memoize: memoize,
73775 runFunc: runFunc
73776});
73777
73778/***/ })
73779
73780/******/ })["default"];
73781});
73782//# sourceMappingURL=mermaid.js.map
\No newline at end of file