UNPKG

3.52 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, () => {
11return /******/ (() => { // webpackBootstrap
12/******/ var __webpack_modules__ = ({
13
14/***/ "./src/diagrams/c4/parser/c4Diagram.jison":
15/*!************************************************!*\
16 !*** ./src/diagrams/c4/parser/c4Diagram.jison ***!
17 \************************************************/
18/***/ ((module, exports, __webpack_require__) => {
19
20/* module decorator */ module = __webpack_require__.nmd(module);
21/* parser generated by jison 0.4.18 */
22/*
23 Returns a Parser object of the following structure:
24
25 Parser: {
26 yy: {}
27 }
28
29 Parser.prototype: {
30 yy: {},
31 trace: function(),
32 symbols_: {associative list: name ==> number},
33 terminals_: {associative list: number ==> name},
34 productions_: [...],
35 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
36 table: [...],
37 defaultActions: {...},
38 parseError: function(str, hash),
39 parse: function(input),
40
41 lexer: {
42 EOF: 1,
43 parseError: function(str, hash),
44 setInput: function(input),
45 input: function(),
46 unput: function(str),
47 more: function(),
48 less: function(n),
49 pastInput: function(),
50 upcomingInput: function(),
51 showPosition: function(),
52 test_match: function(regex_match_array, rule_index),
53 next: function(),
54 lex: function(),
55 begin: function(condition),
56 popState: function(),
57 _currentRules: function(),
58 topState: function(),
59 pushState: function(condition),
60
61 options: {
62 ranges: boolean (optional: true ==> token location info will include a .range[] member)
63 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
64 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)
65 },
66
67 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
68 rules: [...],
69 conditions: {associative list: name ==> set},
70 }
71 }
72
73
74 token location info (@$, _$, etc.): {
75 first_line: n,
76 last_line: n,
77 first_column: n,
78 last_column: n,
79 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
80 }
81
82
83 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
84 text: (matched text)
85 token: (the produced terminal token, if any)
86 line: (yylineno)
87 }
88 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
89 loc: (yylloc)
90 expected: (string describing the set of expected tokens)
91 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
92 }
93*/
94var parser = (function(){
95var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,6],$V1=[1,7],$V2=[1,8],$V3=[1,9],$V4=[1,16],$V5=[1,11],$V6=[1,12],$V7=[1,13],$V8=[1,14],$V9=[1,15],$Va=[1,27],$Vb=[1,33],$Vc=[1,34],$Vd=[1,35],$Ve=[1,36],$Vf=[1,37],$Vg=[1,72],$Vh=[1,73],$Vi=[1,74],$Vj=[1,75],$Vk=[1,76],$Vl=[1,77],$Vm=[1,78],$Vn=[1,38],$Vo=[1,39],$Vp=[1,40],$Vq=[1,41],$Vr=[1,42],$Vs=[1,43],$Vt=[1,44],$Vu=[1,45],$Vv=[1,46],$Vw=[1,47],$Vx=[1,48],$Vy=[1,49],$Vz=[1,50],$VA=[1,51],$VB=[1,52],$VC=[1,53],$VD=[1,54],$VE=[1,55],$VF=[1,56],$VG=[1,57],$VH=[1,59],$VI=[1,60],$VJ=[1,61],$VK=[1,62],$VL=[1,63],$VM=[1,64],$VN=[1,65],$VO=[1,66],$VP=[1,67],$VQ=[1,68],$VR=[1,69],$VS=[24,52],$VT=[24,44,46,47,48,49,50,51,52,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],$VU=[15,24,44,46,47,48,49,50,51,52,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],$VV=[1,94],$VW=[1,95],$VX=[1,96],$VY=[1,97],$VZ=[15,24,52],$V_=[7,8,9,10,18,22,25,26,27,28],$V$=[15,24,43,52],$V01=[15,24,43,52,86,87,89,90],$V11=[15,43],$V21=[44,46,47,48,49,50,51,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];
96var parser = {trace: function trace () { },
97yy: {},
98symbols_: {"error":2,"start":3,"mermaidDoc":4,"direction":5,"directive":6,"direction_tb":7,"direction_bt":8,"direction_rl":9,"direction_lr":10,"graphConfig":11,"openDirective":12,"typeDirective":13,"closeDirective":14,"NEWLINE":15,":":16,"argDirective":17,"open_directive":18,"type_directive":19,"arg_directive":20,"close_directive":21,"C4_CONTEXT":22,"statements":23,"EOF":24,"C4_CONTAINER":25,"C4_COMPONENT":26,"C4_DYNAMIC":27,"C4_DEPLOYMENT":28,"otherStatements":29,"diagramStatements":30,"otherStatement":31,"title":32,"accDescription":33,"acc_title":34,"acc_title_value":35,"acc_descr":36,"acc_descr_value":37,"acc_descr_multiline_value":38,"boundaryStatement":39,"boundaryStartStatement":40,"boundaryStopStatement":41,"boundaryStart":42,"LBRACE":43,"ENTERPRISE_BOUNDARY":44,"attributes":45,"SYSTEM_BOUNDARY":46,"BOUNDARY":47,"CONTAINER_BOUNDARY":48,"NODE":49,"NODE_L":50,"NODE_R":51,"RBRACE":52,"diagramStatement":53,"PERSON":54,"PERSON_EXT":55,"SYSTEM":56,"SYSTEM_DB":57,"SYSTEM_QUEUE":58,"SYSTEM_EXT":59,"SYSTEM_EXT_DB":60,"SYSTEM_EXT_QUEUE":61,"CONTAINER":62,"CONTAINER_DB":63,"CONTAINER_QUEUE":64,"CONTAINER_EXT":65,"CONTAINER_EXT_DB":66,"CONTAINER_EXT_QUEUE":67,"COMPONENT":68,"COMPONENT_DB":69,"COMPONENT_QUEUE":70,"COMPONENT_EXT":71,"COMPONENT_EXT_DB":72,"COMPONENT_EXT_QUEUE":73,"REL":74,"BIREL":75,"REL_U":76,"REL_D":77,"REL_L":78,"REL_R":79,"REL_B":80,"REL_INDEX":81,"UPDATE_EL_STYLE":82,"UPDATE_REL_STYLE":83,"UPDATE_LAYOUT_CONFIG":84,"attribute":85,"STR":86,"STR_KEY":87,"STR_VALUE":88,"ATTRIBUTE":89,"ATTRIBUTE_EMPTY":90,"$accept":0,"$end":1},
99terminals_: {2:"error",7:"direction_tb",8:"direction_bt",9:"direction_rl",10:"direction_lr",15:"NEWLINE",16:":",18:"open_directive",19:"type_directive",20:"arg_directive",21:"close_directive",22:"C4_CONTEXT",24:"EOF",25:"C4_CONTAINER",26:"C4_COMPONENT",27:"C4_DYNAMIC",28:"C4_DEPLOYMENT",32:"title",33:"accDescription",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",43:"LBRACE",44:"ENTERPRISE_BOUNDARY",46:"SYSTEM_BOUNDARY",47:"BOUNDARY",48:"CONTAINER_BOUNDARY",49:"NODE",50:"NODE_L",51:"NODE_R",52:"RBRACE",54:"PERSON",55:"PERSON_EXT",56:"SYSTEM",57:"SYSTEM_DB",58:"SYSTEM_QUEUE",59:"SYSTEM_EXT",60:"SYSTEM_EXT_DB",61:"SYSTEM_EXT_QUEUE",62:"CONTAINER",63:"CONTAINER_DB",64:"CONTAINER_QUEUE",65:"CONTAINER_EXT",66:"CONTAINER_EXT_DB",67:"CONTAINER_EXT_QUEUE",68:"COMPONENT",69:"COMPONENT_DB",70:"COMPONENT_QUEUE",71:"COMPONENT_EXT",72:"COMPONENT_EXT_DB",73:"COMPONENT_EXT_QUEUE",74:"REL",75:"BIREL",76:"REL_U",77:"REL_D",78:"REL_L",79:"REL_R",80:"REL_B",81:"REL_INDEX",82:"UPDATE_EL_STYLE",83:"UPDATE_REL_STYLE",84:"UPDATE_LAYOUT_CONFIG",86:"STR",87:"STR_KEY",88:"STR_VALUE",89:"ATTRIBUTE",90:"ATTRIBUTE_EMPTY"},
100productions_: [0,[3,1],[3,1],[3,2],[5,1],[5,1],[5,1],[5,1],[4,1],[6,4],[6,6],[12,1],[13,1],[17,1],[14,1],[11,4],[11,4],[11,4],[11,4],[11,4],[23,1],[23,1],[23,2],[29,1],[29,2],[29,3],[31,1],[31,1],[31,2],[31,2],[31,1],[39,3],[40,3],[40,3],[40,4],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[41,1],[30,1],[30,2],[30,3],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,1],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[45,1],[45,2],[85,1],[85,2],[85,1],[85,1]],
101performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
102/* this == yyval */
103
104var $0 = $$.length - 1;
105switch (yystate) {
106case 4:
107 yy.setDirection('TB');
108break;
109case 5:
110 yy.setDirection('BT');
111break;
112case 6:
113 yy.setDirection('RL');
114break;
115case 7:
116 yy.setDirection('LR');
117break;
118case 11:
119 console.log("open_directive: ", $$[$0]); yy.parseDirective('%%{', 'open_directive');
120break;
121case 12:
122
123break;
124case 13:
125 $$[$0] = $$[$0].trim().replace(/'/g, '"'); console.log("arg_directive: ", $$[$0]); yy.parseDirective($$[$0], 'arg_directive');
126break;
127case 14:
128 console.log("close_directive: ", $$[$0]); yy.parseDirective('}%%', 'close_directive', 'c4Context');
129break;
130case 15: case 16: case 17: case 18: case 19:
131yy.setC4Type($$[$0-3])
132break;
133case 26:
134yy.setTitle($$[$0].substring(6));this.$=$$[$0].substring(6);
135break;
136case 27:
137yy.setAccDescription($$[$0].substring(15));this.$=$$[$0].substring(15);
138break;
139case 28:
140 this.$=$$[$0].trim();yy.setTitle(this.$);
141break;
142case 29: case 30:
143 this.$=$$[$0].trim();yy.setAccDescription(this.$);
144break;
145case 35: case 36:
146console.log($$[$0-1],JSON.stringify($$[$0])); $$[$0].splice(2, 0, 'ENTERPRISE'); yy.addPersonOrSystemBoundary(...$$[$0]); this.$=$$[$0];
147break;
148case 37:
149console.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystemBoundary(...$$[$0]); this.$=$$[$0];
150break;
151case 38:
152console.log($$[$0-1],JSON.stringify($$[$0])); $$[$0].splice(2, 0, 'CONTAINER'); yy.addContainerBoundary(...$$[$0]); this.$=$$[$0];
153break;
154case 39:
155console.log($$[$0-1],JSON.stringify($$[$0])); yy.addDeploymentNode('node', ...$$[$0]); this.$=$$[$0];
156break;
157case 40:
158console.log($$[$0-1],JSON.stringify($$[$0])); yy.addDeploymentNode('nodeL', ...$$[$0]); this.$=$$[$0];
159break;
160case 41:
161console.log($$[$0-1],JSON.stringify($$[$0])); yy.addDeploymentNode('nodeR', ...$$[$0]); this.$=$$[$0];
162break;
163case 42:
164 yy.popBoundaryParseStack()
165break;
166case 46:
167console.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('person', ...$$[$0]); this.$=$$[$0];
168break;
169case 47:
170console.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('external_person', ...$$[$0]); this.$=$$[$0];
171break;
172case 48:
173console.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('system', ...$$[$0]); this.$=$$[$0];
174break;
175case 49:
176console.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('system_db', ...$$[$0]); this.$=$$[$0];
177break;
178case 50:
179console.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('system_queue', ...$$[$0]); this.$=$$[$0];
180break;
181case 51:
182console.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('external_system', ...$$[$0]); this.$=$$[$0];
183break;
184case 52:
185console.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('external_system_db', ...$$[$0]); this.$=$$[$0];
186break;
187case 53:
188console.log($$[$0-1],JSON.stringify($$[$0])); yy.addPersonOrSystem('external_system_queue', ...$$[$0]); this.$=$$[$0];
189break;
190case 54:
191console.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('container', ...$$[$0]); this.$=$$[$0];
192break;
193case 55:
194console.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('container_db', ...$$[$0]); this.$=$$[$0];
195break;
196case 56:
197console.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('container_queue', ...$$[$0]); this.$=$$[$0];
198break;
199case 57:
200console.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('external_container', ...$$[$0]); this.$=$$[$0];
201break;
202case 58:
203console.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('external_container_db', ...$$[$0]); this.$=$$[$0];
204break;
205case 59:
206console.log($$[$0-1],JSON.stringify($$[$0])); yy.addContainer('external_container_queue', ...$$[$0]); this.$=$$[$0];
207break;
208case 60:
209console.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('component', ...$$[$0]); this.$=$$[$0];
210break;
211case 61:
212console.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('component_db', ...$$[$0]); this.$=$$[$0];
213break;
214case 62:
215console.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('component_queue', ...$$[$0]); this.$=$$[$0];
216break;
217case 63:
218console.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('external_component', ...$$[$0]); this.$=$$[$0];
219break;
220case 64:
221console.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('external_component_db', ...$$[$0]); this.$=$$[$0];
222break;
223case 65:
224console.log($$[$0-1],JSON.stringify($$[$0])); yy.addComponent('external_component_queue', ...$$[$0]); this.$=$$[$0];
225break;
226case 67:
227console.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel', ...$$[$0]); this.$=$$[$0];
228break;
229case 68:
230console.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('birel', ...$$[$0]); this.$=$$[$0];
231break;
232case 69:
233console.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel_u', ...$$[$0]); this.$=$$[$0];
234break;
235case 70:
236console.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel_d', ...$$[$0]); this.$=$$[$0];
237break;
238case 71:
239console.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel_l', ...$$[$0]); this.$=$$[$0];
240break;
241case 72:
242console.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel_r', ...$$[$0]); this.$=$$[$0];
243break;
244case 73:
245console.log($$[$0-1],JSON.stringify($$[$0])); yy.addRel('rel_b', ...$$[$0]); this.$=$$[$0];
246break;
247case 74:
248console.log($$[$0-1],JSON.stringify($$[$0])); $$[$0].splice(0, 1); yy.addRel('rel', ...$$[$0]); this.$=$$[$0];
249break;
250case 75:
251console.log($$[$0-1],JSON.stringify($$[$0])); yy.updateElStyle('update_el_style', ...$$[$0]); this.$=$$[$0];
252break;
253case 76:
254console.log($$[$0-1],JSON.stringify($$[$0])); yy.updateRelStyle('update_rel_style', ...$$[$0]); this.$=$$[$0];
255break;
256case 77:
257console.log($$[$0-1],JSON.stringify($$[$0])); yy.updateLayoutConfig('update_layout_config', ...$$[$0]); this.$=$$[$0];
258break;
259case 78:
260 console.log('PUSH ATTRIBUTE: ', $$[$0]); this.$ = [$$[$0]];
261break;
262case 79:
263 console.log('PUSH ATTRIBUTE: ', $$[$0-1]); $$[$0].unshift($$[$0-1]); this.$=$$[$0];
264break;
265case 80: case 82:
266 this.$ = $$[$0].trim();
267break;
268case 81:
269 console.log('kv: ', $$[$0-1], $$[$0]); let kv={}; kv[$$[$0-1].trim()]=$$[$0].trim(); this.$=kv;
270break;
271case 83:
272 this.$ = "";
273break;
274}
275},
276table: [{3:1,4:2,5:3,6:4,7:$V0,8:$V1,9:$V2,10:$V3,11:5,12:10,18:$V4,22:$V5,25:$V6,26:$V7,27:$V8,28:$V9},{1:[3]},{1:[2,1]},{1:[2,2]},{3:17,4:2,5:3,6:4,7:$V0,8:$V1,9:$V2,10:$V3,11:5,12:10,18:$V4,22:$V5,25:$V6,26:$V7,27:$V8,28:$V9},{1:[2,8]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{1:[2,7]},{13:18,19:[1,19]},{15:[1,20]},{15:[1,21]},{15:[1,22]},{15:[1,23]},{15:[1,24]},{19:[2,11]},{1:[2,3]},{14:25,16:[1,26],21:$Va},o([16,21],[2,12]),{23:28,29:29,30:30,31:31,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{23:79,29:29,30:30,31:31,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{23:80,29:29,30:30,31:31,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{23:81,29:29,30:30,31:31,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{23:82,29:29,30:30,31:31,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{15:[1,83]},{17:84,20:[1,85]},{15:[2,14]},{24:[1,86]},o($VS,[2,20],{53:32,39:58,40:70,42:71,30:87,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR}),o($VS,[2,21]),o($VT,[2,23],{15:[1,88]}),o($VS,[2,43],{15:[1,89]}),o($VU,[2,26]),o($VU,[2,27]),{35:[1,90]},{37:[1,91]},o($VU,[2,30]),{45:92,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:98,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:99,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:100,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:101,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:102,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:103,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:104,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:105,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:106,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:107,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:108,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:109,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:110,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:111,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:112,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:113,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:114,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:115,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:116,85:93,86:$VV,87:$VW,89:$VX,90:$VY},o($VZ,[2,66]),{45:117,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:118,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:119,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:120,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:121,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:122,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:123,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:124,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:125,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:126,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:127,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{30:128,39:58,40:70,42:71,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,53:32,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR},{15:[1,130],43:[1,129]},{45:131,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:132,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:133,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:134,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:135,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:136,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{45:137,85:93,86:$VV,87:$VW,89:$VX,90:$VY},{24:[1,138]},{24:[1,139]},{24:[1,140]},{24:[1,141]},o($V_,[2,9]),{14:142,21:$Va},{21:[2,13]},{1:[2,15]},o($VS,[2,22]),o($VT,[2,24],{31:31,29:143,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf}),o($VS,[2,44],{29:29,30:30,31:31,53:32,39:58,40:70,42:71,23:144,32:$Vb,33:$Vc,34:$Vd,36:$Ve,38:$Vf,44:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl,51:$Vm,54:$Vn,55:$Vo,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu,62:$Vv,63:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,83:$VQ,84:$VR}),o($VU,[2,28]),o($VU,[2,29]),o($VZ,[2,46]),o($V$,[2,78],{85:93,45:145,86:$VV,87:$VW,89:$VX,90:$VY}),o($V01,[2,80]),{88:[1,146]},o($V01,[2,82]),o($V01,[2,83]),o($VZ,[2,47]),o($VZ,[2,48]),o($VZ,[2,49]),o($VZ,[2,50]),o($VZ,[2,51]),o($VZ,[2,52]),o($VZ,[2,53]),o($VZ,[2,54]),o($VZ,[2,55]),o($VZ,[2,56]),o($VZ,[2,57]),o($VZ,[2,58]),o($VZ,[2,59]),o($VZ,[2,60]),o($VZ,[2,61]),o($VZ,[2,62]),o($VZ,[2,63]),o($VZ,[2,64]),o($VZ,[2,65]),o($VZ,[2,67]),o($VZ,[2,68]),o($VZ,[2,69]),o($VZ,[2,70]),o($VZ,[2,71]),o($VZ,[2,72]),o($VZ,[2,73]),o($VZ,[2,74]),o($VZ,[2,75]),o($VZ,[2,76]),o($VZ,[2,77]),{41:147,52:[1,148]},{15:[1,149]},{43:[1,150]},o($V11,[2,35]),o($V11,[2,36]),o($V11,[2,37]),o($V11,[2,38]),o($V11,[2,39]),o($V11,[2,40]),o($V11,[2,41]),{1:[2,16]},{1:[2,17]},{1:[2,18]},{1:[2,19]},{15:[1,151]},o($VT,[2,25]),o($VS,[2,45]),o($V$,[2,79]),o($V01,[2,81]),o($VZ,[2,31]),o($VZ,[2,42]),o($V21,[2,32]),o($V21,[2,33],{15:[1,152]}),o($V_,[2,10]),o($V21,[2,34])],
277defaultActions: {2:[2,1],3:[2,2],5:[2,8],6:[2,4],7:[2,5],8:[2,6],9:[2,7],16:[2,11],17:[2,3],27:[2,14],85:[2,13],86:[2,15],138:[2,16],139:[2,17],140:[2,18],141:[2,19]},
278parseError: function parseError (str, hash) {
279 if (hash.recoverable) {
280 this.trace(str);
281 } else {
282 var error = new Error(str);
283 error.hash = hash;
284 throw error;
285 }
286},
287parse: function parse(input) {
288 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
289 var args = lstack.slice.call(arguments, 1);
290 var lexer = Object.create(this.lexer);
291 var sharedState = { yy: {} };
292 for (var k in this.yy) {
293 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
294 sharedState.yy[k] = this.yy[k];
295 }
296 }
297 lexer.setInput(input, sharedState.yy);
298 sharedState.yy.lexer = lexer;
299 sharedState.yy.parser = this;
300 if (typeof lexer.yylloc == 'undefined') {
301 lexer.yylloc = {};
302 }
303 var yyloc = lexer.yylloc;
304 lstack.push(yyloc);
305 var ranges = lexer.options && lexer.options.ranges;
306 if (typeof sharedState.yy.parseError === 'function') {
307 this.parseError = sharedState.yy.parseError;
308 } else {
309 this.parseError = Object.getPrototypeOf(this).parseError;
310 }
311 function popStack(n) {
312 stack.length = stack.length - 2 * n;
313 vstack.length = vstack.length - n;
314 lstack.length = lstack.length - n;
315 }
316 function lex() {
317 var token;
318 token = tstack.pop() || lexer.lex() || EOF;
319 if (typeof token !== 'number') {
320 if (token instanceof Array) {
321 tstack = token;
322 token = tstack.pop();
323 }
324 token = self.symbols_[token] || token;
325 }
326 return token;
327 }
328 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
329 while (true) {
330 state = stack[stack.length - 1];
331 if (this.defaultActions[state]) {
332 action = this.defaultActions[state];
333 } else {
334 if (symbol === null || typeof symbol == 'undefined') {
335 symbol = lex();
336 }
337 action = table[state] && table[state][symbol];
338 }
339 if (typeof action === 'undefined' || !action.length || !action[0]) {
340 var errStr = '';
341 expected = [];
342 for (p in table[state]) {
343 if (this.terminals_[p] && p > TERROR) {
344 expected.push('\'' + this.terminals_[p] + '\'');
345 }
346 }
347 if (lexer.showPosition) {
348 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
349 } else {
350 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
351 }
352 this.parseError(errStr, {
353 text: lexer.match,
354 token: this.terminals_[symbol] || symbol,
355 line: lexer.yylineno,
356 loc: yyloc,
357 expected: expected
358 });
359 }
360 if (action[0] instanceof Array && action.length > 1) {
361 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
362 }
363 switch (action[0]) {
364 case 1:
365 stack.push(symbol);
366 vstack.push(lexer.yytext);
367 lstack.push(lexer.yylloc);
368 stack.push(action[1]);
369 symbol = null;
370 if (!preErrorSymbol) {
371 yyleng = lexer.yyleng;
372 yytext = lexer.yytext;
373 yylineno = lexer.yylineno;
374 yyloc = lexer.yylloc;
375 if (recovering > 0) {
376 recovering--;
377 }
378 } else {
379 symbol = preErrorSymbol;
380 preErrorSymbol = null;
381 }
382 break;
383 case 2:
384 len = this.productions_[action[1]][1];
385 yyval.$ = vstack[vstack.length - len];
386 yyval._$ = {
387 first_line: lstack[lstack.length - (len || 1)].first_line,
388 last_line: lstack[lstack.length - 1].last_line,
389 first_column: lstack[lstack.length - (len || 1)].first_column,
390 last_column: lstack[lstack.length - 1].last_column
391 };
392 if (ranges) {
393 yyval._$.range = [
394 lstack[lstack.length - (len || 1)].range[0],
395 lstack[lstack.length - 1].range[1]
396 ];
397 }
398 r = this.performAction.apply(yyval, [
399 yytext,
400 yyleng,
401 yylineno,
402 sharedState.yy,
403 action[1],
404 vstack,
405 lstack
406 ].concat(args));
407 if (typeof r !== 'undefined') {
408 return r;
409 }
410 if (len) {
411 stack = stack.slice(0, -1 * len * 2);
412 vstack = vstack.slice(0, -1 * len);
413 lstack = lstack.slice(0, -1 * len);
414 }
415 stack.push(this.productions_[action[1]][0]);
416 vstack.push(yyval.$);
417 lstack.push(yyval._$);
418 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
419 stack.push(newState);
420 break;
421 case 3:
422 return true;
423 }
424 }
425 return true;
426}};
427/* generated by jison-lex 0.3.4 */
428var lexer = (function(){
429var lexer = ({
430
431EOF:1,
432
433parseError:function parseError(str, hash) {
434 if (this.yy.parser) {
435 this.yy.parser.parseError(str, hash);
436 } else {
437 throw new Error(str);
438 }
439 },
440
441// resets the lexer, sets new input
442setInput:function (input, yy) {
443 this.yy = yy || this.yy || {};
444 this._input = input;
445 this._more = this._backtrack = this.done = false;
446 this.yylineno = this.yyleng = 0;
447 this.yytext = this.matched = this.match = '';
448 this.conditionStack = ['INITIAL'];
449 this.yylloc = {
450 first_line: 1,
451 first_column: 0,
452 last_line: 1,
453 last_column: 0
454 };
455 if (this.options.ranges) {
456 this.yylloc.range = [0,0];
457 }
458 this.offset = 0;
459 return this;
460 },
461
462// consumes and returns one char from the input
463input:function () {
464 var ch = this._input[0];
465 this.yytext += ch;
466 this.yyleng++;
467 this.offset++;
468 this.match += ch;
469 this.matched += ch;
470 var lines = ch.match(/(?:\r\n?|\n).*/g);
471 if (lines) {
472 this.yylineno++;
473 this.yylloc.last_line++;
474 } else {
475 this.yylloc.last_column++;
476 }
477 if (this.options.ranges) {
478 this.yylloc.range[1]++;
479 }
480
481 this._input = this._input.slice(1);
482 return ch;
483 },
484
485// unshifts one char (or a string) into the input
486unput:function (ch) {
487 var len = ch.length;
488 var lines = ch.split(/(?:\r\n?|\n)/g);
489
490 this._input = ch + this._input;
491 this.yytext = this.yytext.substr(0, this.yytext.length - len);
492 //this.yyleng -= len;
493 this.offset -= len;
494 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
495 this.match = this.match.substr(0, this.match.length - 1);
496 this.matched = this.matched.substr(0, this.matched.length - 1);
497
498 if (lines.length - 1) {
499 this.yylineno -= lines.length - 1;
500 }
501 var r = this.yylloc.range;
502
503 this.yylloc = {
504 first_line: this.yylloc.first_line,
505 last_line: this.yylineno + 1,
506 first_column: this.yylloc.first_column,
507 last_column: lines ?
508 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
509 + oldLines[oldLines.length - lines.length].length - lines[0].length :
510 this.yylloc.first_column - len
511 };
512
513 if (this.options.ranges) {
514 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
515 }
516 this.yyleng = this.yytext.length;
517 return this;
518 },
519
520// When called from action, caches matched text and appends it on next action
521more:function () {
522 this._more = true;
523 return this;
524 },
525
526// 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.
527reject:function () {
528 if (this.options.backtrack_lexer) {
529 this._backtrack = true;
530 } else {
531 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(), {
532 text: "",
533 token: null,
534 line: this.yylineno
535 });
536
537 }
538 return this;
539 },
540
541// retain first n characters of the match
542less:function (n) {
543 this.unput(this.match.slice(n));
544 },
545
546// displays already matched input, i.e. for error messages
547pastInput:function () {
548 var past = this.matched.substr(0, this.matched.length - this.match.length);
549 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
550 },
551
552// displays upcoming input, i.e. for error messages
553upcomingInput:function () {
554 var next = this.match;
555 if (next.length < 20) {
556 next += this._input.substr(0, 20-next.length);
557 }
558 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
559 },
560
561// displays the character position where the lexing error occurred, i.e. for error messages
562showPosition:function () {
563 var pre = this.pastInput();
564 var c = new Array(pre.length + 1).join("-");
565 return pre + this.upcomingInput() + "\n" + c + "^";
566 },
567
568// test the lexed token: return FALSE when not a match, otherwise return token
569test_match:function(match, indexed_rule) {
570 var token,
571 lines,
572 backup;
573
574 if (this.options.backtrack_lexer) {
575 // save context
576 backup = {
577 yylineno: this.yylineno,
578 yylloc: {
579 first_line: this.yylloc.first_line,
580 last_line: this.last_line,
581 first_column: this.yylloc.first_column,
582 last_column: this.yylloc.last_column
583 },
584 yytext: this.yytext,
585 match: this.match,
586 matches: this.matches,
587 matched: this.matched,
588 yyleng: this.yyleng,
589 offset: this.offset,
590 _more: this._more,
591 _input: this._input,
592 yy: this.yy,
593 conditionStack: this.conditionStack.slice(0),
594 done: this.done
595 };
596 if (this.options.ranges) {
597 backup.yylloc.range = this.yylloc.range.slice(0);
598 }
599 }
600
601 lines = match[0].match(/(?:\r\n?|\n).*/g);
602 if (lines) {
603 this.yylineno += lines.length;
604 }
605 this.yylloc = {
606 first_line: this.yylloc.last_line,
607 last_line: this.yylineno + 1,
608 first_column: this.yylloc.last_column,
609 last_column: lines ?
610 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
611 this.yylloc.last_column + match[0].length
612 };
613 this.yytext += match[0];
614 this.match += match[0];
615 this.matches = match;
616 this.yyleng = this.yytext.length;
617 if (this.options.ranges) {
618 this.yylloc.range = [this.offset, this.offset += this.yyleng];
619 }
620 this._more = false;
621 this._backtrack = false;
622 this._input = this._input.slice(match[0].length);
623 this.matched += match[0];
624 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
625 if (this.done && this._input) {
626 this.done = false;
627 }
628 if (token) {
629 return token;
630 } else if (this._backtrack) {
631 // recover context
632 for (var k in backup) {
633 this[k] = backup[k];
634 }
635 return false; // rule action called reject() implying the next rule should be tested instead.
636 }
637 return false;
638 },
639
640// return next match in input
641next:function () {
642 if (this.done) {
643 return this.EOF;
644 }
645 if (!this._input) {
646 this.done = true;
647 }
648
649 var token,
650 match,
651 tempMatch,
652 index;
653 if (!this._more) {
654 this.yytext = '';
655 this.match = '';
656 }
657 var rules = this._currentRules();
658 for (var i = 0; i < rules.length; i++) {
659 tempMatch = this._input.match(this.rules[rules[i]]);
660 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
661 match = tempMatch;
662 index = i;
663 if (this.options.backtrack_lexer) {
664 token = this.test_match(tempMatch, rules[i]);
665 if (token !== false) {
666 return token;
667 } else if (this._backtrack) {
668 match = false;
669 continue; // rule action called reject() implying a rule MISmatch.
670 } else {
671 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
672 return false;
673 }
674 } else if (!this.options.flex) {
675 break;
676 }
677 }
678 }
679 if (match) {
680 token = this.test_match(match, rules[index]);
681 if (token !== false) {
682 return token;
683 }
684 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
685 return false;
686 }
687 if (this._input === "") {
688 return this.EOF;
689 } else {
690 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
691 text: "",
692 token: null,
693 line: this.yylineno
694 });
695 }
696 },
697
698// return next match that has a token
699lex:function lex () {
700 var r = this.next();
701 if (r) {
702 return r;
703 } else {
704 return this.lex();
705 }
706 },
707
708// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
709begin:function begin (condition) {
710 this.conditionStack.push(condition);
711 },
712
713// pop the previously active lexer condition state off the condition stack
714popState:function popState () {
715 var n = this.conditionStack.length - 1;
716 if (n > 0) {
717 return this.conditionStack.pop();
718 } else {
719 return this.conditionStack[0];
720 }
721 },
722
723// produce the lexer rule set which is active for the currently active lexer condition state
724_currentRules:function _currentRules () {
725 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
726 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
727 } else {
728 return this.conditions["INITIAL"].rules;
729 }
730 },
731
732// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
733topState:function topState (n) {
734 n = this.conditionStack.length - 1 - Math.abs(n || 0);
735 if (n >= 0) {
736 return this.conditionStack[n];
737 } else {
738 return "INITIAL";
739 }
740 },
741
742// alias for begin(condition)
743pushState:function pushState (condition) {
744 this.begin(condition);
745 },
746
747// return the number of states currently on the stack
748stateStackSize:function stateStackSize() {
749 return this.conditionStack.length;
750 },
751options: {},
752performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
753var YYSTATE=YY_START;
754switch($avoiding_name_collisions) {
755case 0: this.begin('open_directive'); return 18;
756break;
757case 1:return 7;
758break;
759case 2:return 8;
760break;
761case 3:return 9;
762break;
763case 4:return 10;
764break;
765case 5: this.begin('type_directive'); return 19;
766break;
767case 6: this.popState(); this.begin('arg_directive'); return 16;
768break;
769case 7: this.popState(); this.popState(); return 21;
770break;
771case 8:return 20;
772break;
773case 9:return 32;
774break;
775case 10:return 33;
776break;
777case 11: this.begin("acc_title");return 34;
778break;
779case 12: this.popState(); return "acc_title_value";
780break;
781case 13: this.begin("acc_descr");return 36;
782break;
783case 14: this.popState(); return "acc_descr_value";
784break;
785case 15: this.begin("acc_descr_multiline");
786break;
787case 16: this.popState();
788break;
789case 17:return "acc_descr_multiline_value";
790break;
791case 18:/* skip comments */
792break;
793case 19:c /* skip comments */
794break;
795case 20:return 15;
796break;
797case 21:/* skip whitespace */
798break;
799case 22:return 22;
800break;
801case 23:return 25;
802break;
803case 24:return 26;
804break;
805case 25:return 27;
806break;
807case 26:return 28;
808break;
809case 27: this.begin("person_ext"); console.log('begin person_ext'); return 55;
810break;
811case 28: this.begin("person"); console.log('begin person'); return 54;
812break;
813case 29: this.begin("system_ext_queue"); console.log('begin system_ext_queue'); return 61;
814break;
815case 30: this.begin("system_ext_db"); console.log('begin system_ext_db'); return 60;
816break;
817case 31: this.begin("system_ext"); console.log('begin system_ext'); return 59;
818break;
819case 32: this.begin("system_queue"); console.log('begin system_queue'); return 58;
820break;
821case 33: this.begin("system_db"); console.log('begin system_db'); return 57;
822break;
823case 34: this.begin("system"); console.log('begin system'); return 56;
824break;
825case 35: this.begin("boundary"); console.log('begin boundary'); return 47;
826break;
827case 36: this.begin("enterprise_boundary"); console.log('begin enterprise_boundary'); return 44;
828break;
829case 37: this.begin("system_boundary"); console.log('begin system_boundary'); return 46;
830break;
831case 38: this.begin("container_ext_queue"); console.log('begin container_ext_queue'); return 67;
832break;
833case 39: this.begin("container_ext_db"); console.log('begin container_ext_db'); return 66;
834break;
835case 40: this.begin("container_ext"); console.log('begin container_ext'); return 65;
836break;
837case 41: this.begin("container_queue"); console.log('begin container_queue'); return 64;
838break;
839case 42: this.begin("container_db"); console.log('begin container_db'); return 63;
840break;
841case 43: this.begin("container"); console.log('begin container'); return 62;
842break;
843case 44: this.begin("container_boundary"); console.log('begin container_boundary'); return 48;
844break;
845case 45: this.begin("component_ext_queue"); console.log('begin component_ext_queue'); return 73;
846break;
847case 46: this.begin("component_ext_db"); console.log('begin component_ext_db'); return 72;
848break;
849case 47: this.begin("component_ext"); console.log('begin component_ext'); return 71;
850break;
851case 48: this.begin("component_queue"); console.log('begin component_queue'); return 70;
852break;
853case 49: this.begin("component_db"); console.log('begin component_db'); return 69;
854break;
855case 50: this.begin("component"); console.log('begin component'); return 68;
856break;
857case 51: this.begin("node"); console.log('begin node'); return 49;
858break;
859case 52: this.begin("node"); console.log('begin node'); return 49;
860break;
861case 53: this.begin("node_l"); console.log('begin node_l'); return 50;
862break;
863case 54: this.begin("node_r"); console.log('begin node_r'); return 51;
864break;
865case 55: this.begin("rel"); console.log('begin rel'); return 74;
866break;
867case 56: this.begin("birel"); console.log('begin birel'); return 75;
868break;
869case 57: this.begin("rel_u"); console.log('begin rel_u'); return 76;
870break;
871case 58: this.begin("rel_u"); console.log('begin rel_u'); return 76;
872break;
873case 59: this.begin("rel_d"); console.log('begin rel_d'); return 77;
874break;
875case 60: this.begin("rel_d"); console.log('begin rel_d'); return 77;
876break;
877case 61: this.begin("rel_l"); console.log('begin rel_l'); return 78;
878break;
879case 62: this.begin("rel_l"); console.log('begin rel_l'); return 78;
880break;
881case 63: this.begin("rel_r"); console.log('begin rel_r'); return 79;
882break;
883case 64: this.begin("rel_r"); console.log('begin rel_r'); return 79;
884break;
885case 65: this.begin("rel_b"); console.log('begin rel_b'); return 80;
886break;
887case 66: this.begin("rel_index"); console.log('begin rel_index'); return 81;
888break;
889case 67: this.begin("update_el_style"); console.log('begin update_el_style'); return 82;
890break;
891case 68: this.begin("update_rel_style"); console.log('begin update_rel_style'); return 83;
892break;
893case 69: this.begin("update_layout_config"); console.log('begin update_layout_config'); return 84;
894break;
895case 70:return "EOF_IN_STRUCT";
896break;
897case 71: console.log('begin attribute with ATTRIBUTE_EMPTY'); this.begin("attribute"); return "ATTRIBUTE_EMPTY";
898break;
899case 72: console.log('begin attribute'); this.begin("attribute");
900break;
901case 73: console.log('STOP attribute'); this.popState();console.log('STOP diagram'); this.popState();
902break;
903case 74: console.log(',,'); return 90;
904break;
905case 75: console.log(',');
906break;
907case 76: console.log('ATTRIBUTE_EMPTY'); return 90;
908break;
909case 77: console.log('begin string'); this.begin("string");
910break;
911case 78: console.log('STOP string'); this.popState();
912break;
913case 79: console.log('STR'); return "STR";
914break;
915case 80: console.log('begin string_kv'); this.begin("string_kv");
916break;
917case 81: console.log('STR_KEY'); this.begin("string_kv_key"); return "STR_KEY";
918break;
919case 82: console.log('begin string_kv_value'); this.popState(); this.begin("string_kv_value");
920break;
921case 83: console.log('STR_VALUE'); return "STR_VALUE";
922break;
923case 84: console.log('STOP string_kv_value'); this.popState(); this.popState();
924break;
925case 85: console.log('not STR'); return "STR";
926break;
927case 86: /* this.begin("lbrace"); */ console.log('begin boundary block'); return "LBRACE";
928break;
929case 87: /* this.popState(); */ console.log('STOP boundary block'); return "RBRACE";
930break;
931case 88:return 'SPACE';
932break;
933case 89:return 'EOL';
934break;
935case 90:return 24;
936break;
937}
938},
939rules: [/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],
940conditions: {"acc_descr_multiline":{"rules":[16,17],"inclusive":false},"acc_descr":{"rules":[14],"inclusive":false},"acc_title":{"rules":[12],"inclusive":false},"close_directive":{"rules":[],"inclusive":false},"arg_directive":{"rules":[7,8],"inclusive":false},"type_directive":{"rules":[6,7],"inclusive":false},"open_directive":{"rules":[5],"inclusive":false},"string_kv_value":{"rules":[83,84],"inclusive":false},"string_kv_key":{"rules":[82],"inclusive":false},"string_kv":{"rules":[81],"inclusive":false},"string":{"rules":[78,79],"inclusive":false},"attribute":{"rules":[73,74,75,76,77,80,85],"inclusive":false},"update_layout_config":{"rules":[70,71,72,73],"inclusive":false},"update_rel_style":{"rules":[70,71,72,73],"inclusive":false},"update_el_style":{"rules":[70,71,72,73],"inclusive":false},"rel_b":{"rules":[70,71,72,73],"inclusive":false},"rel_r":{"rules":[70,71,72,73],"inclusive":false},"rel_l":{"rules":[70,71,72,73],"inclusive":false},"rel_d":{"rules":[70,71,72,73],"inclusive":false},"rel_u":{"rules":[70,71,72,73],"inclusive":false},"rel_bi":{"rules":[],"inclusive":false},"rel":{"rules":[70,71,72,73],"inclusive":false},"node_r":{"rules":[70,71,72,73],"inclusive":false},"node_l":{"rules":[70,71,72,73],"inclusive":false},"node":{"rules":[70,71,72,73],"inclusive":false},"index":{"rules":[],"inclusive":false},"rel_index":{"rules":[70,71,72,73],"inclusive":false},"component_ext_queue":{"rules":[],"inclusive":false},"component_ext_db":{"rules":[70,71,72,73],"inclusive":false},"component_ext":{"rules":[70,71,72,73],"inclusive":false},"component_queue":{"rules":[70,71,72,73],"inclusive":false},"component_db":{"rules":[70,71,72,73],"inclusive":false},"component":{"rules":[70,71,72,73],"inclusive":false},"container_boundary":{"rules":[70,71,72,73],"inclusive":false},"container_ext_queue":{"rules":[],"inclusive":false},"container_ext_db":{"rules":[70,71,72,73],"inclusive":false},"container_ext":{"rules":[70,71,72,73],"inclusive":false},"container_queue":{"rules":[70,71,72,73],"inclusive":false},"container_db":{"rules":[70,71,72,73],"inclusive":false},"container":{"rules":[70,71,72,73],"inclusive":false},"birel":{"rules":[70,71,72,73],"inclusive":false},"system_boundary":{"rules":[70,71,72,73],"inclusive":false},"enterprise_boundary":{"rules":[70,71,72,73],"inclusive":false},"boundary":{"rules":[70,71,72,73],"inclusive":false},"system_ext_queue":{"rules":[70,71,72,73],"inclusive":false},"system_ext_db":{"rules":[70,71,72,73],"inclusive":false},"system_ext":{"rules":[70,71,72,73],"inclusive":false},"system_queue":{"rules":[70,71,72,73],"inclusive":false},"system_db":{"rules":[70,71,72,73],"inclusive":false},"system":{"rules":[70,71,72,73],"inclusive":false},"person_ext":{"rules":[70,71,72,73],"inclusive":false},"person":{"rules":[70,71,72,73],"inclusive":false},"INITIAL":{"rules":[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,86,87,88,89,90],"inclusive":true}}
941});
942return lexer;
943})();
944parser.lexer = lexer;
945function Parser () {
946 this.yy = {};
947}
948Parser.prototype = parser;parser.Parser = Parser;
949return new Parser;
950})();
951
952
953if (true) {
954exports.parser = parser;
955exports.Parser = parser.Parser;
956exports.parse = function () { return parser.parse.apply(parser, arguments); };
957exports.main = function commonjsMain (args) {
958 if (!args[1]) {
959 console.log('Usage: '+args[0]+' FILE');
960 process.exit(1);
961 }
962 var source = (__webpack_require__(/*! fs */ "?1da1").readFileSync)((__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize)(args[1]), "utf8");
963 return exports.parser.parse(source);
964};
965if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
966 exports.main(process.argv.slice(1));
967}
968}
969
970/***/ }),
971
972/***/ "./src/diagrams/class/parser/classDiagram.jison":
973/*!******************************************************!*\
974 !*** ./src/diagrams/class/parser/classDiagram.jison ***!
975 \******************************************************/
976/***/ ((module, exports, __webpack_require__) => {
977
978/* module decorator */ module = __webpack_require__.nmd(module);
979/* parser generated by jison 0.4.18 */
980/*
981 Returns a Parser object of the following structure:
982
983 Parser: {
984 yy: {}
985 }
986
987 Parser.prototype: {
988 yy: {},
989 trace: function(),
990 symbols_: {associative list: name ==> number},
991 terminals_: {associative list: number ==> name},
992 productions_: [...],
993 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
994 table: [...],
995 defaultActions: {...},
996 parseError: function(str, hash),
997 parse: function(input),
998
999 lexer: {
1000 EOF: 1,
1001 parseError: function(str, hash),
1002 setInput: function(input),
1003 input: function(),
1004 unput: function(str),
1005 more: function(),
1006 less: function(n),
1007 pastInput: function(),
1008 upcomingInput: function(),
1009 showPosition: function(),
1010 test_match: function(regex_match_array, rule_index),
1011 next: function(),
1012 lex: function(),
1013 begin: function(condition),
1014 popState: function(),
1015 _currentRules: function(),
1016 topState: function(),
1017 pushState: function(condition),
1018
1019 options: {
1020 ranges: boolean (optional: true ==> token location info will include a .range[] member)
1021 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
1022 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)
1023 },
1024
1025 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
1026 rules: [...],
1027 conditions: {associative list: name ==> set},
1028 }
1029 }
1030
1031
1032 token location info (@$, _$, etc.): {
1033 first_line: n,
1034 last_line: n,
1035 first_column: n,
1036 last_column: n,
1037 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
1038 }
1039
1040
1041 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
1042 text: (matched text)
1043 token: (the produced terminal token, if any)
1044 line: (yylineno)
1045 }
1046 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
1047 loc: (yylloc)
1048 expected: (string describing the set of expected tokens)
1049 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
1050 }
1051*/
1052var parser = (function(){
1053var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,3],$V1=[1,7],$V2=[1,8],$V3=[1,9],$V4=[1,10],$V5=[1,13],$V6=[1,12],$V7=[1,16,25],$V8=[1,20],$V9=[1,31],$Va=[1,32],$Vb=[1,33],$Vc=[1,35],$Vd=[1,38],$Ve=[1,36],$Vf=[1,37],$Vg=[1,39],$Vh=[1,40],$Vi=[1,41],$Vj=[1,42],$Vk=[1,45],$Vl=[1,46],$Vm=[1,47],$Vn=[1,48],$Vo=[16,25],$Vp=[1,62],$Vq=[1,63],$Vr=[1,64],$Vs=[1,65],$Vt=[1,66],$Vu=[1,67],$Vv=[16,25,32,44,45,53,56,57,58,59,60,61,66,68],$Vw=[16,25,30,32,44,45,49,53,56,57,58,59,60,61,66,68,83,84,85,86],$Vx=[5,8,9,10,11,16,19,23,25],$Vy=[53,83,84,85,86],$Vz=[53,60,61,83,84,85,86],$VA=[53,56,57,58,59,83,84,85,86],$VB=[16,25,32],$VC=[1,99];
1054var parser = {trace: function trace () { },
1055yy: {},
1056symbols_: {"error":2,"start":3,"mermaidDoc":4,"statments":5,"direction":6,"directive":7,"direction_tb":8,"direction_bt":9,"direction_rl":10,"direction_lr":11,"graphConfig":12,"openDirective":13,"typeDirective":14,"closeDirective":15,"NEWLINE":16,":":17,"argDirective":18,"open_directive":19,"type_directive":20,"arg_directive":21,"close_directive":22,"CLASS_DIAGRAM":23,"statements":24,"EOF":25,"statement":26,"className":27,"alphaNumToken":28,"classLiteralName":29,"GENERICTYPE":30,"relationStatement":31,"LABEL":32,"classStatement":33,"methodStatement":34,"annotationStatement":35,"clickStatement":36,"cssClassStatement":37,"acc_title":38,"acc_title_value":39,"acc_descr":40,"acc_descr_value":41,"acc_descr_multiline_value":42,"CLASS":43,"STYLE_SEPARATOR":44,"STRUCT_START":45,"members":46,"STRUCT_STOP":47,"ANNOTATION_START":48,"ANNOTATION_END":49,"MEMBER":50,"SEPARATOR":51,"relation":52,"STR":53,"relationType":54,"lineType":55,"AGGREGATION":56,"EXTENSION":57,"COMPOSITION":58,"DEPENDENCY":59,"LINE":60,"DOTTED_LINE":61,"CALLBACK":62,"LINK":63,"LINK_TARGET":64,"CLICK":65,"CALLBACK_NAME":66,"CALLBACK_ARGS":67,"HREF":68,"CSSCLASS":69,"commentToken":70,"textToken":71,"graphCodeTokens":72,"textNoTagsToken":73,"TAGSTART":74,"TAGEND":75,"==":76,"--":77,"PCT":78,"DEFAULT":79,"SPACE":80,"MINUS":81,"keywords":82,"UNICODE_TEXT":83,"NUM":84,"ALPHA":85,"BQUOTE_STR":86,"$accept":0,"$end":1},
1057terminals_: {2:"error",5:"statments",8:"direction_tb",9:"direction_bt",10:"direction_rl",11:"direction_lr",16:"NEWLINE",17:":",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",23:"CLASS_DIAGRAM",25:"EOF",30:"GENERICTYPE",32:"LABEL",38:"acc_title",39:"acc_title_value",40:"acc_descr",41:"acc_descr_value",42:"acc_descr_multiline_value",43:"CLASS",44:"STYLE_SEPARATOR",45:"STRUCT_START",47:"STRUCT_STOP",48:"ANNOTATION_START",49:"ANNOTATION_END",50:"MEMBER",51:"SEPARATOR",53:"STR",56:"AGGREGATION",57:"EXTENSION",58:"COMPOSITION",59:"DEPENDENCY",60:"LINE",61:"DOTTED_LINE",62:"CALLBACK",63:"LINK",64:"LINK_TARGET",65:"CLICK",66:"CALLBACK_NAME",67:"CALLBACK_ARGS",68:"HREF",69:"CSSCLASS",72:"graphCodeTokens",74:"TAGSTART",75:"TAGEND",76:"==",77:"--",78:"PCT",79:"DEFAULT",80:"SPACE",81:"MINUS",82:"keywords",83:"UNICODE_TEXT",84:"NUM",85:"ALPHA",86:"BQUOTE_STR"},
1058productions_: [0,[3,1],[3,1],[3,1],[3,2],[6,1],[6,1],[6,1],[6,1],[4,1],[7,4],[7,6],[13,1],[14,1],[18,1],[15,1],[12,4],[24,1],[24,2],[24,3],[27,1],[27,1],[27,2],[27,2],[27,2],[26,1],[26,2],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,2],[26,2],[26,1],[33,2],[33,4],[33,5],[33,7],[35,4],[46,1],[46,2],[34,1],[34,2],[34,1],[34,1],[31,3],[31,4],[31,4],[31,5],[52,3],[52,2],[52,2],[52,1],[54,1],[54,1],[54,1],[54,1],[55,1],[55,1],[36,3],[36,4],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[37,3],[70,1],[70,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[71,1],[73,1],[73,1],[73,1],[73,1],[28,1],[28,1],[28,1],[29,1]],
1059performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
1060/* this == yyval */
1061
1062var $0 = $$.length - 1;
1063switch (yystate) {
1064case 5:
1065 yy.setDirection('TB');
1066break;
1067case 6:
1068 yy.setDirection('BT');
1069break;
1070case 7:
1071 yy.setDirection('RL');
1072break;
1073case 8:
1074 yy.setDirection('LR');
1075break;
1076case 12:
1077 yy.parseDirective('%%{', 'open_directive');
1078break;
1079case 13:
1080 yy.parseDirective($$[$0], 'type_directive');
1081break;
1082case 14:
1083 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
1084break;
1085case 15:
1086 yy.parseDirective('}%%', 'close_directive', 'class');
1087break;
1088case 20: case 21:
1089 this.$=$$[$0];
1090break;
1091case 22:
1092 this.$=$$[$0-1]+$$[$0];
1093break;
1094case 23: case 24:
1095 this.$=$$[$0-1]+'~'+$$[$0];
1096break;
1097case 25:
1098 yy.addRelation($$[$0]);
1099break;
1100case 26:
1101 $$[$0-1].title = yy.cleanupLabel($$[$0]); yy.addRelation($$[$0-1]);
1102break;
1103case 34:
1104 this.$=$$[$0].trim();yy.setAccTitle(this.$);
1105break;
1106case 35: case 36:
1107 this.$=$$[$0].trim();yy.setAccDescription(this.$);
1108break;
1109case 37:
1110yy.addClass($$[$0]);
1111break;
1112case 38:
1113yy.addClass($$[$0-2]);yy.setCssClass($$[$0-2], $$[$0]);
1114break;
1115case 39:
1116/*console.log($$[$0-3],JSON.stringify($$[$0-1]));*/yy.addClass($$[$0-3]);yy.addMembers($$[$0-3],$$[$0-1]);
1117break;
1118case 40:
1119yy.addClass($$[$0-5]);yy.setCssClass($$[$0-5], $$[$0-3]);yy.addMembers($$[$0-5],$$[$0-1]);
1120break;
1121case 41:
1122 yy.addAnnotation($$[$0],$$[$0-2]);
1123break;
1124case 42:
1125 this.$ = [$$[$0]];
1126break;
1127case 43:
1128 $$[$0].push($$[$0-1]);this.$=$$[$0];
1129break;
1130case 44:
1131/*console.log('Rel found',$$[$0]);*/
1132break;
1133case 45:
1134yy.addMember($$[$0-1],yy.cleanupLabel($$[$0]));
1135break;
1136case 46:
1137/*console.warn('Member',$$[$0]);*/
1138break;
1139case 47:
1140/*console.log('sep found',$$[$0]);*/
1141break;
1142case 48:
1143 this.$ = {'id1':$$[$0-2],'id2':$$[$0], relation:$$[$0-1], relationTitle1:'none', relationTitle2:'none'};
1144break;
1145case 49:
1146 this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-1], relationTitle1:$$[$0-2], relationTitle2:'none'}
1147break;
1148case 50:
1149 this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-2], relationTitle1:'none', relationTitle2:$$[$0-1]};
1150break;
1151case 51:
1152 this.$ = {id1:$$[$0-4], id2:$$[$0], relation:$$[$0-2], relationTitle1:$$[$0-3], relationTitle2:$$[$0-1]}
1153break;
1154case 52:
1155 this.$={type1:$$[$0-2],type2:$$[$0],lineType:$$[$0-1]};
1156break;
1157case 53:
1158 this.$={type1:'none',type2:$$[$0],lineType:$$[$0-1]};
1159break;
1160case 54:
1161 this.$={type1:$$[$0-1],type2:'none',lineType:$$[$0]};
1162break;
1163case 55:
1164 this.$={type1:'none',type2:'none',lineType:$$[$0]};
1165break;
1166case 56:
1167 this.$=yy.relationType.AGGREGATION;
1168break;
1169case 57:
1170 this.$=yy.relationType.EXTENSION;
1171break;
1172case 58:
1173 this.$=yy.relationType.COMPOSITION;
1174break;
1175case 59:
1176 this.$=yy.relationType.DEPENDENCY;
1177break;
1178case 60:
1179this.$=yy.lineType.LINE;
1180break;
1181case 61:
1182this.$=yy.lineType.DOTTED_LINE;
1183break;
1184case 62: case 68:
1185this.$ = $$[$0-2];yy.setClickEvent($$[$0-1], $$[$0]);
1186break;
1187case 63: case 69:
1188this.$ = $$[$0-3];yy.setClickEvent($$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-2], $$[$0]);
1189break;
1190case 64: case 72:
1191this.$ = $$[$0-2];yy.setLink($$[$0-1], $$[$0]);
1192break;
1193case 65:
1194this.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1],$$[$0]);
1195break;
1196case 66: case 74:
1197this.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-2], $$[$0]);
1198break;
1199case 67: case 75:
1200this.$ = $$[$0-4];yy.setLink($$[$0-3], $$[$0-2], $$[$0]);yy.setTooltip($$[$0-3], $$[$0-1]);
1201break;
1202case 70:
1203this.$ = $$[$0-3];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);
1204break;
1205case 71:
1206this.$ = $$[$0-4];yy.setClickEvent($$[$0-3], $$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-3], $$[$0]);
1207break;
1208case 73:
1209this.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1], $$[$0]);
1210break;
1211case 76:
1212yy.setCssClass($$[$0-1], $$[$0]);
1213break;
1214}
1215},
1216table: [{3:1,4:2,5:$V0,6:4,7:5,8:$V1,9:$V2,10:$V3,11:$V4,12:6,13:11,19:$V5,23:$V6},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{3:14,4:2,5:$V0,6:4,7:5,8:$V1,9:$V2,10:$V3,11:$V4,12:6,13:11,19:$V5,23:$V6},{1:[2,9]},o($V7,[2,5]),o($V7,[2,6]),o($V7,[2,7]),o($V7,[2,8]),{14:15,20:[1,16]},{16:[1,17]},{20:[2,12]},{1:[2,4]},{15:18,17:[1,19],22:$V8},o([17,22],[2,13]),{6:30,7:29,8:$V1,9:$V2,10:$V3,11:$V4,13:11,19:$V5,24:21,26:22,27:34,28:43,29:44,31:23,33:24,34:25,35:26,36:27,37:28,38:$V9,40:$Va,42:$Vb,43:$Vc,48:$Vd,50:$Ve,51:$Vf,62:$Vg,63:$Vh,65:$Vi,69:$Vj,83:$Vk,84:$Vl,85:$Vm,86:$Vn},{16:[1,49]},{18:50,21:[1,51]},{16:[2,15]},{25:[1,52]},{16:[1,53],25:[2,17]},o($Vo,[2,25],{32:[1,54]}),o($Vo,[2,27]),o($Vo,[2,28]),o($Vo,[2,29]),o($Vo,[2,30]),o($Vo,[2,31]),o($Vo,[2,32]),o($Vo,[2,33]),{39:[1,55]},{41:[1,56]},o($Vo,[2,36]),o($Vo,[2,44],{52:57,54:60,55:61,32:[1,59],53:[1,58],56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu}),{27:68,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},o($Vo,[2,46]),o($Vo,[2,47]),{28:69,83:$Vk,84:$Vl,85:$Vm},{27:70,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},{27:71,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},{27:72,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},{53:[1,73]},o($Vv,[2,20],{28:43,29:44,27:74,30:[1,75],83:$Vk,84:$Vl,85:$Vm,86:$Vn}),o($Vv,[2,21],{30:[1,76]}),o($Vw,[2,90]),o($Vw,[2,91]),o($Vw,[2,92]),o([16,25,30,32,44,45,53,56,57,58,59,60,61,66,68],[2,93]),o($Vx,[2,10]),{15:77,22:$V8},{22:[2,14]},{1:[2,16]},{6:30,7:29,8:$V1,9:$V2,10:$V3,11:$V4,13:11,19:$V5,24:78,25:[2,18],26:22,27:34,28:43,29:44,31:23,33:24,34:25,35:26,36:27,37:28,38:$V9,40:$Va,42:$Vb,43:$Vc,48:$Vd,50:$Ve,51:$Vf,62:$Vg,63:$Vh,65:$Vi,69:$Vj,83:$Vk,84:$Vl,85:$Vm,86:$Vn},o($Vo,[2,26]),o($Vo,[2,34]),o($Vo,[2,35]),{27:79,28:43,29:44,53:[1,80],83:$Vk,84:$Vl,85:$Vm,86:$Vn},{52:81,54:60,55:61,56:$Vp,57:$Vq,58:$Vr,59:$Vs,60:$Vt,61:$Vu},o($Vo,[2,45]),{55:82,60:$Vt,61:$Vu},o($Vy,[2,55],{54:83,56:$Vp,57:$Vq,58:$Vr,59:$Vs}),o($Vz,[2,56]),o($Vz,[2,57]),o($Vz,[2,58]),o($Vz,[2,59]),o($VA,[2,60]),o($VA,[2,61]),o($Vo,[2,37],{44:[1,84],45:[1,85]}),{49:[1,86]},{53:[1,87]},{53:[1,88]},{66:[1,89],68:[1,90]},{28:91,83:$Vk,84:$Vl,85:$Vm},o($Vv,[2,22]),o($Vv,[2,23]),o($Vv,[2,24]),{16:[1,92]},{25:[2,19]},o($VB,[2,48]),{27:93,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},{27:94,28:43,29:44,53:[1,95],83:$Vk,84:$Vl,85:$Vm,86:$Vn},o($Vy,[2,54],{54:96,56:$Vp,57:$Vq,58:$Vr,59:$Vs}),o($Vy,[2,53]),{28:97,83:$Vk,84:$Vl,85:$Vm},{46:98,50:$VC},{27:100,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},o($Vo,[2,62],{53:[1,101]}),o($Vo,[2,64],{53:[1,103],64:[1,102]}),o($Vo,[2,68],{53:[1,104],67:[1,105]}),o($Vo,[2,72],{53:[1,107],64:[1,106]}),o($Vo,[2,76]),o($Vx,[2,11]),o($VB,[2,50]),o($VB,[2,49]),{27:108,28:43,29:44,83:$Vk,84:$Vl,85:$Vm,86:$Vn},o($Vy,[2,52]),o($Vo,[2,38],{45:[1,109]}),{47:[1,110]},{46:111,47:[2,42],50:$VC},o($Vo,[2,41]),o($Vo,[2,63]),o($Vo,[2,65]),o($Vo,[2,66],{64:[1,112]}),o($Vo,[2,69]),o($Vo,[2,70],{53:[1,113]}),o($Vo,[2,73]),o($Vo,[2,74],{64:[1,114]}),o($VB,[2,51]),{46:115,50:$VC},o($Vo,[2,39]),{47:[2,43]},o($Vo,[2,67]),o($Vo,[2,71]),o($Vo,[2,75]),{47:[1,116]},o($Vo,[2,40])],
1217defaultActions: {2:[2,1],3:[2,2],4:[2,3],6:[2,9],13:[2,12],14:[2,4],20:[2,15],51:[2,14],52:[2,16],78:[2,19],111:[2,43]},
1218parseError: function parseError (str, hash) {
1219 if (hash.recoverable) {
1220 this.trace(str);
1221 } else {
1222 var error = new Error(str);
1223 error.hash = hash;
1224 throw error;
1225 }
1226},
1227parse: function parse(input) {
1228 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
1229 var args = lstack.slice.call(arguments, 1);
1230 var lexer = Object.create(this.lexer);
1231 var sharedState = { yy: {} };
1232 for (var k in this.yy) {
1233 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
1234 sharedState.yy[k] = this.yy[k];
1235 }
1236 }
1237 lexer.setInput(input, sharedState.yy);
1238 sharedState.yy.lexer = lexer;
1239 sharedState.yy.parser = this;
1240 if (typeof lexer.yylloc == 'undefined') {
1241 lexer.yylloc = {};
1242 }
1243 var yyloc = lexer.yylloc;
1244 lstack.push(yyloc);
1245 var ranges = lexer.options && lexer.options.ranges;
1246 if (typeof sharedState.yy.parseError === 'function') {
1247 this.parseError = sharedState.yy.parseError;
1248 } else {
1249 this.parseError = Object.getPrototypeOf(this).parseError;
1250 }
1251 function popStack(n) {
1252 stack.length = stack.length - 2 * n;
1253 vstack.length = vstack.length - n;
1254 lstack.length = lstack.length - n;
1255 }
1256 function lex() {
1257 var token;
1258 token = tstack.pop() || lexer.lex() || EOF;
1259 if (typeof token !== 'number') {
1260 if (token instanceof Array) {
1261 tstack = token;
1262 token = tstack.pop();
1263 }
1264 token = self.symbols_[token] || token;
1265 }
1266 return token;
1267 }
1268 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
1269 while (true) {
1270 state = stack[stack.length - 1];
1271 if (this.defaultActions[state]) {
1272 action = this.defaultActions[state];
1273 } else {
1274 if (symbol === null || typeof symbol == 'undefined') {
1275 symbol = lex();
1276 }
1277 action = table[state] && table[state][symbol];
1278 }
1279 if (typeof action === 'undefined' || !action.length || !action[0]) {
1280 var errStr = '';
1281 expected = [];
1282 for (p in table[state]) {
1283 if (this.terminals_[p] && p > TERROR) {
1284 expected.push('\'' + this.terminals_[p] + '\'');
1285 }
1286 }
1287 if (lexer.showPosition) {
1288 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
1289 } else {
1290 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
1291 }
1292 this.parseError(errStr, {
1293 text: lexer.match,
1294 token: this.terminals_[symbol] || symbol,
1295 line: lexer.yylineno,
1296 loc: yyloc,
1297 expected: expected
1298 });
1299 }
1300 if (action[0] instanceof Array && action.length > 1) {
1301 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
1302 }
1303 switch (action[0]) {
1304 case 1:
1305 stack.push(symbol);
1306 vstack.push(lexer.yytext);
1307 lstack.push(lexer.yylloc);
1308 stack.push(action[1]);
1309 symbol = null;
1310 if (!preErrorSymbol) {
1311 yyleng = lexer.yyleng;
1312 yytext = lexer.yytext;
1313 yylineno = lexer.yylineno;
1314 yyloc = lexer.yylloc;
1315 if (recovering > 0) {
1316 recovering--;
1317 }
1318 } else {
1319 symbol = preErrorSymbol;
1320 preErrorSymbol = null;
1321 }
1322 break;
1323 case 2:
1324 len = this.productions_[action[1]][1];
1325 yyval.$ = vstack[vstack.length - len];
1326 yyval._$ = {
1327 first_line: lstack[lstack.length - (len || 1)].first_line,
1328 last_line: lstack[lstack.length - 1].last_line,
1329 first_column: lstack[lstack.length - (len || 1)].first_column,
1330 last_column: lstack[lstack.length - 1].last_column
1331 };
1332 if (ranges) {
1333 yyval._$.range = [
1334 lstack[lstack.length - (len || 1)].range[0],
1335 lstack[lstack.length - 1].range[1]
1336 ];
1337 }
1338 r = this.performAction.apply(yyval, [
1339 yytext,
1340 yyleng,
1341 yylineno,
1342 sharedState.yy,
1343 action[1],
1344 vstack,
1345 lstack
1346 ].concat(args));
1347 if (typeof r !== 'undefined') {
1348 return r;
1349 }
1350 if (len) {
1351 stack = stack.slice(0, -1 * len * 2);
1352 vstack = vstack.slice(0, -1 * len);
1353 lstack = lstack.slice(0, -1 * len);
1354 }
1355 stack.push(this.productions_[action[1]][0]);
1356 vstack.push(yyval.$);
1357 lstack.push(yyval._$);
1358 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
1359 stack.push(newState);
1360 break;
1361 case 3:
1362 return true;
1363 }
1364 }
1365 return true;
1366}};
1367
1368/* generated by jison-lex 0.3.4 */
1369var lexer = (function(){
1370var lexer = ({
1371
1372EOF:1,
1373
1374parseError:function parseError(str, hash) {
1375 if (this.yy.parser) {
1376 this.yy.parser.parseError(str, hash);
1377 } else {
1378 throw new Error(str);
1379 }
1380 },
1381
1382// resets the lexer, sets new input
1383setInput:function (input, yy) {
1384 this.yy = yy || this.yy || {};
1385 this._input = input;
1386 this._more = this._backtrack = this.done = false;
1387 this.yylineno = this.yyleng = 0;
1388 this.yytext = this.matched = this.match = '';
1389 this.conditionStack = ['INITIAL'];
1390 this.yylloc = {
1391 first_line: 1,
1392 first_column: 0,
1393 last_line: 1,
1394 last_column: 0
1395 };
1396 if (this.options.ranges) {
1397 this.yylloc.range = [0,0];
1398 }
1399 this.offset = 0;
1400 return this;
1401 },
1402
1403// consumes and returns one char from the input
1404input:function () {
1405 var ch = this._input[0];
1406 this.yytext += ch;
1407 this.yyleng++;
1408 this.offset++;
1409 this.match += ch;
1410 this.matched += ch;
1411 var lines = ch.match(/(?:\r\n?|\n).*/g);
1412 if (lines) {
1413 this.yylineno++;
1414 this.yylloc.last_line++;
1415 } else {
1416 this.yylloc.last_column++;
1417 }
1418 if (this.options.ranges) {
1419 this.yylloc.range[1]++;
1420 }
1421
1422 this._input = this._input.slice(1);
1423 return ch;
1424 },
1425
1426// unshifts one char (or a string) into the input
1427unput:function (ch) {
1428 var len = ch.length;
1429 var lines = ch.split(/(?:\r\n?|\n)/g);
1430
1431 this._input = ch + this._input;
1432 this.yytext = this.yytext.substr(0, this.yytext.length - len);
1433 //this.yyleng -= len;
1434 this.offset -= len;
1435 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
1436 this.match = this.match.substr(0, this.match.length - 1);
1437 this.matched = this.matched.substr(0, this.matched.length - 1);
1438
1439 if (lines.length - 1) {
1440 this.yylineno -= lines.length - 1;
1441 }
1442 var r = this.yylloc.range;
1443
1444 this.yylloc = {
1445 first_line: this.yylloc.first_line,
1446 last_line: this.yylineno + 1,
1447 first_column: this.yylloc.first_column,
1448 last_column: lines ?
1449 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
1450 + oldLines[oldLines.length - lines.length].length - lines[0].length :
1451 this.yylloc.first_column - len
1452 };
1453
1454 if (this.options.ranges) {
1455 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
1456 }
1457 this.yyleng = this.yytext.length;
1458 return this;
1459 },
1460
1461// When called from action, caches matched text and appends it on next action
1462more:function () {
1463 this._more = true;
1464 return this;
1465 },
1466
1467// 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.
1468reject:function () {
1469 if (this.options.backtrack_lexer) {
1470 this._backtrack = true;
1471 } else {
1472 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(), {
1473 text: "",
1474 token: null,
1475 line: this.yylineno
1476 });
1477
1478 }
1479 return this;
1480 },
1481
1482// retain first n characters of the match
1483less:function (n) {
1484 this.unput(this.match.slice(n));
1485 },
1486
1487// displays already matched input, i.e. for error messages
1488pastInput:function () {
1489 var past = this.matched.substr(0, this.matched.length - this.match.length);
1490 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
1491 },
1492
1493// displays upcoming input, i.e. for error messages
1494upcomingInput:function () {
1495 var next = this.match;
1496 if (next.length < 20) {
1497 next += this._input.substr(0, 20-next.length);
1498 }
1499 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
1500 },
1501
1502// displays the character position where the lexing error occurred, i.e. for error messages
1503showPosition:function () {
1504 var pre = this.pastInput();
1505 var c = new Array(pre.length + 1).join("-");
1506 return pre + this.upcomingInput() + "\n" + c + "^";
1507 },
1508
1509// test the lexed token: return FALSE when not a match, otherwise return token
1510test_match:function(match, indexed_rule) {
1511 var token,
1512 lines,
1513 backup;
1514
1515 if (this.options.backtrack_lexer) {
1516 // save context
1517 backup = {
1518 yylineno: this.yylineno,
1519 yylloc: {
1520 first_line: this.yylloc.first_line,
1521 last_line: this.last_line,
1522 first_column: this.yylloc.first_column,
1523 last_column: this.yylloc.last_column
1524 },
1525 yytext: this.yytext,
1526 match: this.match,
1527 matches: this.matches,
1528 matched: this.matched,
1529 yyleng: this.yyleng,
1530 offset: this.offset,
1531 _more: this._more,
1532 _input: this._input,
1533 yy: this.yy,
1534 conditionStack: this.conditionStack.slice(0),
1535 done: this.done
1536 };
1537 if (this.options.ranges) {
1538 backup.yylloc.range = this.yylloc.range.slice(0);
1539 }
1540 }
1541
1542 lines = match[0].match(/(?:\r\n?|\n).*/g);
1543 if (lines) {
1544 this.yylineno += lines.length;
1545 }
1546 this.yylloc = {
1547 first_line: this.yylloc.last_line,
1548 last_line: this.yylineno + 1,
1549 first_column: this.yylloc.last_column,
1550 last_column: lines ?
1551 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
1552 this.yylloc.last_column + match[0].length
1553 };
1554 this.yytext += match[0];
1555 this.match += match[0];
1556 this.matches = match;
1557 this.yyleng = this.yytext.length;
1558 if (this.options.ranges) {
1559 this.yylloc.range = [this.offset, this.offset += this.yyleng];
1560 }
1561 this._more = false;
1562 this._backtrack = false;
1563 this._input = this._input.slice(match[0].length);
1564 this.matched += match[0];
1565 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
1566 if (this.done && this._input) {
1567 this.done = false;
1568 }
1569 if (token) {
1570 return token;
1571 } else if (this._backtrack) {
1572 // recover context
1573 for (var k in backup) {
1574 this[k] = backup[k];
1575 }
1576 return false; // rule action called reject() implying the next rule should be tested instead.
1577 }
1578 return false;
1579 },
1580
1581// return next match in input
1582next:function () {
1583 if (this.done) {
1584 return this.EOF;
1585 }
1586 if (!this._input) {
1587 this.done = true;
1588 }
1589
1590 var token,
1591 match,
1592 tempMatch,
1593 index;
1594 if (!this._more) {
1595 this.yytext = '';
1596 this.match = '';
1597 }
1598 var rules = this._currentRules();
1599 for (var i = 0; i < rules.length; i++) {
1600 tempMatch = this._input.match(this.rules[rules[i]]);
1601 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
1602 match = tempMatch;
1603 index = i;
1604 if (this.options.backtrack_lexer) {
1605 token = this.test_match(tempMatch, rules[i]);
1606 if (token !== false) {
1607 return token;
1608 } else if (this._backtrack) {
1609 match = false;
1610 continue; // rule action called reject() implying a rule MISmatch.
1611 } else {
1612 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
1613 return false;
1614 }
1615 } else if (!this.options.flex) {
1616 break;
1617 }
1618 }
1619 }
1620 if (match) {
1621 token = this.test_match(match, rules[index]);
1622 if (token !== false) {
1623 return token;
1624 }
1625 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
1626 return false;
1627 }
1628 if (this._input === "") {
1629 return this.EOF;
1630 } else {
1631 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
1632 text: "",
1633 token: null,
1634 line: this.yylineno
1635 });
1636 }
1637 },
1638
1639// return next match that has a token
1640lex:function lex () {
1641 var r = this.next();
1642 if (r) {
1643 return r;
1644 } else {
1645 return this.lex();
1646 }
1647 },
1648
1649// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
1650begin:function begin (condition) {
1651 this.conditionStack.push(condition);
1652 },
1653
1654// pop the previously active lexer condition state off the condition stack
1655popState:function popState () {
1656 var n = this.conditionStack.length - 1;
1657 if (n > 0) {
1658 return this.conditionStack.pop();
1659 } else {
1660 return this.conditionStack[0];
1661 }
1662 },
1663
1664// produce the lexer rule set which is active for the currently active lexer condition state
1665_currentRules:function _currentRules () {
1666 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
1667 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
1668 } else {
1669 return this.conditions["INITIAL"].rules;
1670 }
1671 },
1672
1673// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
1674topState:function topState (n) {
1675 n = this.conditionStack.length - 1 - Math.abs(n || 0);
1676 if (n >= 0) {
1677 return this.conditionStack[n];
1678 } else {
1679 return "INITIAL";
1680 }
1681 },
1682
1683// alias for begin(condition)
1684pushState:function pushState (condition) {
1685 this.begin(condition);
1686 },
1687
1688// return the number of states currently on the stack
1689stateStackSize:function stateStackSize() {
1690 return this.conditionStack.length;
1691 },
1692options: {},
1693performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
1694var YYSTATE=YY_START;
1695switch($avoiding_name_collisions) {
1696case 0: this.begin('open_directive'); return 19;
1697break;
1698case 1:return 8;
1699break;
1700case 2:return 9;
1701break;
1702case 3:return 10;
1703break;
1704case 4:return 11;
1705break;
1706case 5: this.begin('type_directive'); return 20;
1707break;
1708case 6: this.popState(); this.begin('arg_directive'); return 17;
1709break;
1710case 7: this.popState(); this.popState(); return 22;
1711break;
1712case 8:return 21;
1713break;
1714case 9:/* skip comments */
1715break;
1716case 10:/* skip comments */
1717break;
1718case 11: this.begin("acc_title");return 38;
1719break;
1720case 12: this.popState(); return "acc_title_value";
1721break;
1722case 13: this.begin("acc_descr");return 40;
1723break;
1724case 14: this.popState(); return "acc_descr_value";
1725break;
1726case 15: this.begin("acc_descr_multiline");
1727break;
1728case 16: this.popState();
1729break;
1730case 17:return "acc_descr_multiline_value";
1731break;
1732case 18:return 16;
1733break;
1734case 19:/* skip whitespace */
1735break;
1736case 20:return 23;
1737break;
1738case 21:return 23;
1739break;
1740case 22: this.begin("struct"); /*console.log('Starting struct');*/ return 45;
1741break;
1742case 23:return "EOF_IN_STRUCT";
1743break;
1744case 24:return "OPEN_IN_STRUCT";
1745break;
1746case 25: /*console.log('Ending struct');*/this.popState(); return 47;
1747break;
1748case 26:/* nothing */
1749break;
1750case 27: /*console.log('lex-member: ' + yy_.yytext);*/ return "MEMBER";
1751break;
1752case 28:return 43;
1753break;
1754case 29:return 69;
1755break;
1756case 30:return 62;
1757break;
1758case 31:return 63;
1759break;
1760case 32:return 65;
1761break;
1762case 33:return 48;
1763break;
1764case 34:return 49;
1765break;
1766case 35:this.begin("generic");
1767break;
1768case 36:this.popState();
1769break;
1770case 37:return "GENERICTYPE";
1771break;
1772case 38:this.begin("string");
1773break;
1774case 39:this.popState();
1775break;
1776case 40:return "STR";
1777break;
1778case 41:this.begin("bqstring");
1779break;
1780case 42:this.popState();
1781break;
1782case 43:return "BQUOTE_STR";
1783break;
1784case 44:this.begin("href");
1785break;
1786case 45:this.popState();
1787break;
1788case 46:return 68;
1789break;
1790case 47:this.begin("callback_name");
1791break;
1792case 48:this.popState();
1793break;
1794case 49:this.popState(); this.begin("callback_args");
1795break;
1796case 50:return 66;
1797break;
1798case 51:this.popState();
1799break;
1800case 52:return 67;
1801break;
1802case 53:return 64;
1803break;
1804case 54:return 64;
1805break;
1806case 55:return 64;
1807break;
1808case 56:return 64;
1809break;
1810case 57:return 57;
1811break;
1812case 58:return 57;
1813break;
1814case 59:return 59;
1815break;
1816case 60:return 59;
1817break;
1818case 61:return 58;
1819break;
1820case 62:return 56;
1821break;
1822case 63:return 60;
1823break;
1824case 64:return 61;
1825break;
1826case 65:return 32;
1827break;
1828case 66:return 44;
1829break;
1830case 67:return 81;
1831break;
1832case 68:return 'DOT';
1833break;
1834case 69:return 'PLUS';
1835break;
1836case 70:return 78;
1837break;
1838case 71:return 'EQUALS';
1839break;
1840case 72:return 'EQUALS';
1841break;
1842case 73:return 85;
1843break;
1844case 74:return 'PUNCTUATION';
1845break;
1846case 75:return 84;
1847break;
1848case 76:return 83;
1849break;
1850case 77:return 80;
1851break;
1852case 78:return 25;
1853break;
1854}
1855},
1856rules: [/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:[{])/,/^(?:$)/,/^(?:[{])/,/^(?:[}])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:class\b)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:[~])/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[`])/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\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)/,/^(?:$)/],
1857conditions: {"acc_descr_multiline":{"rules":[16,17],"inclusive":false},"acc_descr":{"rules":[14],"inclusive":false},"acc_title":{"rules":[12],"inclusive":false},"arg_directive":{"rules":[7,8],"inclusive":false},"type_directive":{"rules":[6,7],"inclusive":false},"open_directive":{"rules":[5],"inclusive":false},"callback_args":{"rules":[51,52],"inclusive":false},"callback_name":{"rules":[48,49,50],"inclusive":false},"href":{"rules":[45,46],"inclusive":false},"struct":{"rules":[23,24,25,26,27],"inclusive":false},"generic":{"rules":[36,37],"inclusive":false},"bqstring":{"rules":[42,43],"inclusive":false},"string":{"rules":[39,40],"inclusive":false},"INITIAL":{"rules":[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,28,29,30,31,32,33,34,35,38,41,44,47,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],"inclusive":true}}
1858});
1859return lexer;
1860})();
1861parser.lexer = lexer;
1862function Parser () {
1863 this.yy = {};
1864}
1865Parser.prototype = parser;parser.Parser = Parser;
1866return new Parser;
1867})();
1868
1869
1870if (true) {
1871exports.parser = parser;
1872exports.Parser = parser.Parser;
1873exports.parse = function () { return parser.parse.apply(parser, arguments); };
1874exports.main = function commonjsMain (args) {
1875 if (!args[1]) {
1876 console.log('Usage: '+args[0]+' FILE');
1877 process.exit(1);
1878 }
1879 var source = (__webpack_require__(/*! fs */ "?35ed").readFileSync)((__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize)(args[1]), "utf8");
1880 return exports.parser.parse(source);
1881};
1882if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
1883 exports.main(process.argv.slice(1));
1884}
1885}
1886
1887/***/ }),
1888
1889/***/ "./src/diagrams/er/parser/erDiagram.jison":
1890/*!************************************************!*\
1891 !*** ./src/diagrams/er/parser/erDiagram.jison ***!
1892 \************************************************/
1893/***/ ((module, exports, __webpack_require__) => {
1894
1895/* module decorator */ module = __webpack_require__.nmd(module);
1896/* parser generated by jison 0.4.18 */
1897/*
1898 Returns a Parser object of the following structure:
1899
1900 Parser: {
1901 yy: {}
1902 }
1903
1904 Parser.prototype: {
1905 yy: {},
1906 trace: function(),
1907 symbols_: {associative list: name ==> number},
1908 terminals_: {associative list: number ==> name},
1909 productions_: [...],
1910 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
1911 table: [...],
1912 defaultActions: {...},
1913 parseError: function(str, hash),
1914 parse: function(input),
1915
1916 lexer: {
1917 EOF: 1,
1918 parseError: function(str, hash),
1919 setInput: function(input),
1920 input: function(),
1921 unput: function(str),
1922 more: function(),
1923 less: function(n),
1924 pastInput: function(),
1925 upcomingInput: function(),
1926 showPosition: function(),
1927 test_match: function(regex_match_array, rule_index),
1928 next: function(),
1929 lex: function(),
1930 begin: function(condition),
1931 popState: function(),
1932 _currentRules: function(),
1933 topState: function(),
1934 pushState: function(condition),
1935
1936 options: {
1937 ranges: boolean (optional: true ==> token location info will include a .range[] member)
1938 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
1939 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)
1940 },
1941
1942 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
1943 rules: [...],
1944 conditions: {associative list: name ==> set},
1945 }
1946 }
1947
1948
1949 token location info (@$, _$, etc.): {
1950 first_line: n,
1951 last_line: n,
1952 first_column: n,
1953 last_column: n,
1954 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
1955 }
1956
1957
1958 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
1959 text: (matched text)
1960 token: (the produced terminal token, if any)
1961 line: (yylineno)
1962 }
1963 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
1964 loc: (yylloc)
1965 expected: (string describing the set of expected tokens)
1966 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
1967 }
1968*/
1969var parser = (function(){
1970var 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,23,25,27,29,30,49],$V3=[1,17],$V4=[1,18],$V5=[1,19],$V6=[1,20],$V7=[1,21],$V8=[1,24],$V9=[1,29],$Va=[1,30],$Vb=[1,31],$Vc=[1,32],$Vd=[6,9,11,15,20,23,25,27,29,30,42,43,44,45,49],$Ve=[1,45],$Vf=[30,46,47],$Vg=[4,6,9,11,23,25,27,29,30,49],$Vh=[42,43,44,45],$Vi=[22,37],$Vj=[1,64];
1971var parser = {trace: function trace () { },
1972yy: {},
1973symbols_: {"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,"BLOCK_START":20,"attributes":21,"BLOCK_STOP":22,"title":23,"title_value":24,"acc_title":25,"acc_title_value":26,"acc_descr":27,"acc_descr_value":28,"acc_descr_multiline_value":29,"ALPHANUM":30,".":31,"attribute":32,"attributeType":33,"attributeName":34,"attributeKeyType":35,"attributeComment":36,"ATTRIBUTE_WORD":37,"ATTRIBUTE_KEY":38,"COMMENT":39,"cardinality":40,"relType":41,"ZERO_OR_ONE":42,"ZERO_OR_MORE":43,"ONE_OR_MORE":44,"ONLY_ONE":45,"NON_IDENTIFYING":46,"IDENTIFYING":47,"WORD":48,"open_directive":49,"type_directive":50,"arg_directive":51,"close_directive":52,"$accept":0,"$end":1},
1974terminals_: {2:"error",4:"ER_DIAGRAM",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",20:"BLOCK_START",22:"BLOCK_STOP",23:"title",24:"title_value",25:"acc_title",26:"acc_title_value",27:"acc_descr",28:"acc_descr_value",29:"acc_descr_multiline_value",30:"ALPHANUM",31:".",37:"ATTRIBUTE_WORD",38:"ATTRIBUTE_KEY",39:"COMMENT",42:"ZERO_OR_ONE",43:"ZERO_OR_MORE",44:"ONE_OR_MORE",45:"ONLY_ONE",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD",49:"open_directive",50:"type_directive",51:"arg_directive",52:"close_directive"},
1975productions_: [0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[10,2],[10,2],[10,2],[10,1],[17,1],[17,3],[21,1],[21,2],[32,2],[32,3],[32,3],[32,4],[33,1],[34,1],[35,1],[36,1],[18,3],[40,1],[40,1],[40,1],[40,1],[41,1],[41,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],
1976performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
1977/* this == yyval */
1978
1979var $0 = $$.length - 1;
1980switch (yystate) {
1981case 1:
1982 /*console.log('finished parsing');*/
1983break;
1984case 3:
1985 this.$ = []
1986break;
1987case 4:
1988$$[$0-1].push($$[$0]);this.$ = $$[$0-1]
1989break;
1990case 5: case 6:
1991 this.$ = $$[$0]
1992break;
1993case 7: case 8:
1994 this.$=[];
1995break;
1996case 12:
1997
1998 yy.addEntity($$[$0-4]);
1999 yy.addEntity($$[$0-2]);
2000 yy.addRelationship($$[$0-4], $$[$0], $$[$0-2], $$[$0-3]);
2001 /*console.log($$[$0-4] + $$[$0-3] + $$[$0-2] + ':' + $$[$0]);*/
2002
2003break;
2004case 13:
2005
2006 /* console.log('detected block'); */
2007 yy.addEntity($$[$0-3]);
2008 yy.addAttributes($$[$0-3], $$[$0-1]);
2009 /* console.log('handled block'); */
2010
2011break;
2012case 14:
2013 yy.addEntity($$[$0-2]);
2014break;
2015case 15:
2016 yy.addEntity($$[$0]);
2017break;
2018case 16: case 17:
2019 this.$=$$[$0].trim();yy.setAccTitle(this.$);
2020break;
2021case 18: case 19:
2022 this.$=$$[$0].trim();yy.setAccDescription(this.$);
2023break;
2024case 20:
2025 this.$ = $$[$0]; /*console.log('Entity: ' + $$[$0]);*/
2026break;
2027case 21:
2028 this.$ = $$[$0-2] + $$[$0-1] + $$[$0];
2029break;
2030case 22:
2031 this.$ = [$$[$0]];
2032break;
2033case 23:
2034 $$[$0].push($$[$0-1]); this.$=$$[$0];
2035break;
2036case 24:
2037 this.$ = { attributeType: $$[$0-1], attributeName: $$[$0] };
2038break;
2039case 25:
2040 this.$ = { attributeType: $$[$0-2], attributeName: $$[$0-1], attributeKeyType: $$[$0] };
2041break;
2042case 26:
2043 this.$ = { attributeType: $$[$0-2], attributeName: $$[$0-1], attributeComment: $$[$0] };
2044break;
2045case 27:
2046 this.$ = { attributeType: $$[$0-3], attributeName: $$[$0-2], attributeKeyType: $$[$0-1], attributeComment: $$[$0] };
2047break;
2048case 28: case 29: case 30:
2049 this.$=$$[$0];
2050break;
2051case 31:
2052 this.$=$$[$0].replace(/"/g, '');
2053break;
2054case 32:
2055
2056 this.$ = { cardA: $$[$0], relType: $$[$0-1], cardB: $$[$0-2] };
2057 /*console.log('relSpec: ' + $$[$0] + $$[$0-1] + $$[$0-2]);*/
2058
2059break;
2060case 33:
2061 this.$ = yy.Cardinality.ZERO_OR_ONE;
2062break;
2063case 34:
2064 this.$ = yy.Cardinality.ZERO_OR_MORE;
2065break;
2066case 35:
2067 this.$ = yy.Cardinality.ONE_OR_MORE;
2068break;
2069case 36:
2070 this.$ = yy.Cardinality.ONLY_ONE;
2071break;
2072case 37:
2073 this.$ = yy.Identification.NON_IDENTIFYING;
2074break;
2075case 38:
2076 this.$ = yy.Identification.IDENTIFYING;
2077break;
2078case 39:
2079 this.$ = $$[$0].replace(/"/g, '');
2080break;
2081case 40:
2082 this.$ = $$[$0];
2083break;
2084case 41:
2085 yy.parseDirective('%%{', 'open_directive');
2086break;
2087case 42:
2088 yy.parseDirective($$[$0], 'type_directive');
2089break;
2090case 43:
2091 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
2092break;
2093case 44:
2094 yy.parseDirective('}%%', 'close_directive', 'er');
2095break;
2096}
2097},
2098table: [{3:1,4:$V0,7:3,12:4,49:$V1},{1:[3]},o($V2,[2,3],{5:6}),{3:7,4:$V0,7:3,12:4,49:$V1},{13:8,50:[1,9]},{50:[2,41]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,23:$V3,25:$V4,27:$V5,29:$V6,30:$V7,49:$V1},{1:[2,2]},{14:22,15:[1,23],52:$V8},o([15,52],[2,42]),o($V2,[2,8],{1:[2,1]}),o($V2,[2,4]),{7:15,10:25,12:4,17:16,23:$V3,25:$V4,27:$V5,29:$V6,30:$V7,49:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,11]),o($V2,[2,15],{18:26,40:28,20:[1,27],42:$V9,43:$Va,44:$Vb,45:$Vc}),{24:[1,33]},{26:[1,34]},{28:[1,35]},o($V2,[2,19]),o($Vd,[2,20],{31:[1,36]}),{11:[1,37]},{16:38,51:[1,39]},{11:[2,44]},o($V2,[2,5]),{17:40,30:$V7},{21:41,22:[1,42],32:43,33:44,37:$Ve},{41:46,46:[1,47],47:[1,48]},o($Vf,[2,33]),o($Vf,[2,34]),o($Vf,[2,35]),o($Vf,[2,36]),o($V2,[2,16]),o($V2,[2,17]),o($V2,[2,18]),{17:49,30:$V7},o($Vg,[2,9]),{14:50,52:$V8},{52:[2,43]},{15:[1,51]},{22:[1,52]},o($V2,[2,14]),{21:53,22:[2,22],32:43,33:44,37:$Ve},{34:54,37:[1,55]},{37:[2,28]},{40:56,42:$V9,43:$Va,44:$Vb,45:$Vc},o($Vh,[2,37]),o($Vh,[2,38]),o($Vd,[2,21]),{11:[1,57]},{19:58,30:[1,60],48:[1,59]},o($V2,[2,13]),{22:[2,23]},o($Vi,[2,24],{35:61,36:62,38:[1,63],39:$Vj}),o([22,37,38,39],[2,29]),{30:[2,32]},o($Vg,[2,10]),o($V2,[2,12]),o($V2,[2,39]),o($V2,[2,40]),o($Vi,[2,25],{36:65,39:$Vj}),o($Vi,[2,26]),o([22,37,39],[2,30]),o($Vi,[2,31]),o($Vi,[2,27])],
2099defaultActions: {5:[2,41],7:[2,2],24:[2,44],39:[2,43],45:[2,28],53:[2,23],56:[2,32]},
2100parseError: function parseError (str, hash) {
2101 if (hash.recoverable) {
2102 this.trace(str);
2103 } else {
2104 var error = new Error(str);
2105 error.hash = hash;
2106 throw error;
2107 }
2108},
2109parse: function parse(input) {
2110 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
2111 var args = lstack.slice.call(arguments, 1);
2112 var lexer = Object.create(this.lexer);
2113 var sharedState = { yy: {} };
2114 for (var k in this.yy) {
2115 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
2116 sharedState.yy[k] = this.yy[k];
2117 }
2118 }
2119 lexer.setInput(input, sharedState.yy);
2120 sharedState.yy.lexer = lexer;
2121 sharedState.yy.parser = this;
2122 if (typeof lexer.yylloc == 'undefined') {
2123 lexer.yylloc = {};
2124 }
2125 var yyloc = lexer.yylloc;
2126 lstack.push(yyloc);
2127 var ranges = lexer.options && lexer.options.ranges;
2128 if (typeof sharedState.yy.parseError === 'function') {
2129 this.parseError = sharedState.yy.parseError;
2130 } else {
2131 this.parseError = Object.getPrototypeOf(this).parseError;
2132 }
2133 function popStack(n) {
2134 stack.length = stack.length - 2 * n;
2135 vstack.length = vstack.length - n;
2136 lstack.length = lstack.length - n;
2137 }
2138 function lex() {
2139 var token;
2140 token = tstack.pop() || lexer.lex() || EOF;
2141 if (typeof token !== 'number') {
2142 if (token instanceof Array) {
2143 tstack = token;
2144 token = tstack.pop();
2145 }
2146 token = self.symbols_[token] || token;
2147 }
2148 return token;
2149 }
2150 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
2151 while (true) {
2152 state = stack[stack.length - 1];
2153 if (this.defaultActions[state]) {
2154 action = this.defaultActions[state];
2155 } else {
2156 if (symbol === null || typeof symbol == 'undefined') {
2157 symbol = lex();
2158 }
2159 action = table[state] && table[state][symbol];
2160 }
2161 if (typeof action === 'undefined' || !action.length || !action[0]) {
2162 var errStr = '';
2163 expected = [];
2164 for (p in table[state]) {
2165 if (this.terminals_[p] && p > TERROR) {
2166 expected.push('\'' + this.terminals_[p] + '\'');
2167 }
2168 }
2169 if (lexer.showPosition) {
2170 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
2171 } else {
2172 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
2173 }
2174 this.parseError(errStr, {
2175 text: lexer.match,
2176 token: this.terminals_[symbol] || symbol,
2177 line: lexer.yylineno,
2178 loc: yyloc,
2179 expected: expected
2180 });
2181 }
2182 if (action[0] instanceof Array && action.length > 1) {
2183 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
2184 }
2185 switch (action[0]) {
2186 case 1:
2187 stack.push(symbol);
2188 vstack.push(lexer.yytext);
2189 lstack.push(lexer.yylloc);
2190 stack.push(action[1]);
2191 symbol = null;
2192 if (!preErrorSymbol) {
2193 yyleng = lexer.yyleng;
2194 yytext = lexer.yytext;
2195 yylineno = lexer.yylineno;
2196 yyloc = lexer.yylloc;
2197 if (recovering > 0) {
2198 recovering--;
2199 }
2200 } else {
2201 symbol = preErrorSymbol;
2202 preErrorSymbol = null;
2203 }
2204 break;
2205 case 2:
2206 len = this.productions_[action[1]][1];
2207 yyval.$ = vstack[vstack.length - len];
2208 yyval._$ = {
2209 first_line: lstack[lstack.length - (len || 1)].first_line,
2210 last_line: lstack[lstack.length - 1].last_line,
2211 first_column: lstack[lstack.length - (len || 1)].first_column,
2212 last_column: lstack[lstack.length - 1].last_column
2213 };
2214 if (ranges) {
2215 yyval._$.range = [
2216 lstack[lstack.length - (len || 1)].range[0],
2217 lstack[lstack.length - 1].range[1]
2218 ];
2219 }
2220 r = this.performAction.apply(yyval, [
2221 yytext,
2222 yyleng,
2223 yylineno,
2224 sharedState.yy,
2225 action[1],
2226 vstack,
2227 lstack
2228 ].concat(args));
2229 if (typeof r !== 'undefined') {
2230 return r;
2231 }
2232 if (len) {
2233 stack = stack.slice(0, -1 * len * 2);
2234 vstack = vstack.slice(0, -1 * len);
2235 lstack = lstack.slice(0, -1 * len);
2236 }
2237 stack.push(this.productions_[action[1]][0]);
2238 vstack.push(yyval.$);
2239 lstack.push(yyval._$);
2240 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
2241 stack.push(newState);
2242 break;
2243 case 3:
2244 return true;
2245 }
2246 }
2247 return true;
2248}};
2249
2250/* generated by jison-lex 0.3.4 */
2251var lexer = (function(){
2252var lexer = ({
2253
2254EOF:1,
2255
2256parseError:function parseError(str, hash) {
2257 if (this.yy.parser) {
2258 this.yy.parser.parseError(str, hash);
2259 } else {
2260 throw new Error(str);
2261 }
2262 },
2263
2264// resets the lexer, sets new input
2265setInput:function (input, yy) {
2266 this.yy = yy || this.yy || {};
2267 this._input = input;
2268 this._more = this._backtrack = this.done = false;
2269 this.yylineno = this.yyleng = 0;
2270 this.yytext = this.matched = this.match = '';
2271 this.conditionStack = ['INITIAL'];
2272 this.yylloc = {
2273 first_line: 1,
2274 first_column: 0,
2275 last_line: 1,
2276 last_column: 0
2277 };
2278 if (this.options.ranges) {
2279 this.yylloc.range = [0,0];
2280 }
2281 this.offset = 0;
2282 return this;
2283 },
2284
2285// consumes and returns one char from the input
2286input:function () {
2287 var ch = this._input[0];
2288 this.yytext += ch;
2289 this.yyleng++;
2290 this.offset++;
2291 this.match += ch;
2292 this.matched += ch;
2293 var lines = ch.match(/(?:\r\n?|\n).*/g);
2294 if (lines) {
2295 this.yylineno++;
2296 this.yylloc.last_line++;
2297 } else {
2298 this.yylloc.last_column++;
2299 }
2300 if (this.options.ranges) {
2301 this.yylloc.range[1]++;
2302 }
2303
2304 this._input = this._input.slice(1);
2305 return ch;
2306 },
2307
2308// unshifts one char (or a string) into the input
2309unput:function (ch) {
2310 var len = ch.length;
2311 var lines = ch.split(/(?:\r\n?|\n)/g);
2312
2313 this._input = ch + this._input;
2314 this.yytext = this.yytext.substr(0, this.yytext.length - len);
2315 //this.yyleng -= len;
2316 this.offset -= len;
2317 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
2318 this.match = this.match.substr(0, this.match.length - 1);
2319 this.matched = this.matched.substr(0, this.matched.length - 1);
2320
2321 if (lines.length - 1) {
2322 this.yylineno -= lines.length - 1;
2323 }
2324 var r = this.yylloc.range;
2325
2326 this.yylloc = {
2327 first_line: this.yylloc.first_line,
2328 last_line: this.yylineno + 1,
2329 first_column: this.yylloc.first_column,
2330 last_column: lines ?
2331 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
2332 + oldLines[oldLines.length - lines.length].length - lines[0].length :
2333 this.yylloc.first_column - len
2334 };
2335
2336 if (this.options.ranges) {
2337 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
2338 }
2339 this.yyleng = this.yytext.length;
2340 return this;
2341 },
2342
2343// When called from action, caches matched text and appends it on next action
2344more:function () {
2345 this._more = true;
2346 return this;
2347 },
2348
2349// 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.
2350reject:function () {
2351 if (this.options.backtrack_lexer) {
2352 this._backtrack = true;
2353 } else {
2354 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(), {
2355 text: "",
2356 token: null,
2357 line: this.yylineno
2358 });
2359
2360 }
2361 return this;
2362 },
2363
2364// retain first n characters of the match
2365less:function (n) {
2366 this.unput(this.match.slice(n));
2367 },
2368
2369// displays already matched input, i.e. for error messages
2370pastInput:function () {
2371 var past = this.matched.substr(0, this.matched.length - this.match.length);
2372 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
2373 },
2374
2375// displays upcoming input, i.e. for error messages
2376upcomingInput:function () {
2377 var next = this.match;
2378 if (next.length < 20) {
2379 next += this._input.substr(0, 20-next.length);
2380 }
2381 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
2382 },
2383
2384// displays the character position where the lexing error occurred, i.e. for error messages
2385showPosition:function () {
2386 var pre = this.pastInput();
2387 var c = new Array(pre.length + 1).join("-");
2388 return pre + this.upcomingInput() + "\n" + c + "^";
2389 },
2390
2391// test the lexed token: return FALSE when not a match, otherwise return token
2392test_match:function(match, indexed_rule) {
2393 var token,
2394 lines,
2395 backup;
2396
2397 if (this.options.backtrack_lexer) {
2398 // save context
2399 backup = {
2400 yylineno: this.yylineno,
2401 yylloc: {
2402 first_line: this.yylloc.first_line,
2403 last_line: this.last_line,
2404 first_column: this.yylloc.first_column,
2405 last_column: this.yylloc.last_column
2406 },
2407 yytext: this.yytext,
2408 match: this.match,
2409 matches: this.matches,
2410 matched: this.matched,
2411 yyleng: this.yyleng,
2412 offset: this.offset,
2413 _more: this._more,
2414 _input: this._input,
2415 yy: this.yy,
2416 conditionStack: this.conditionStack.slice(0),
2417 done: this.done
2418 };
2419 if (this.options.ranges) {
2420 backup.yylloc.range = this.yylloc.range.slice(0);
2421 }
2422 }
2423
2424 lines = match[0].match(/(?:\r\n?|\n).*/g);
2425 if (lines) {
2426 this.yylineno += lines.length;
2427 }
2428 this.yylloc = {
2429 first_line: this.yylloc.last_line,
2430 last_line: this.yylineno + 1,
2431 first_column: this.yylloc.last_column,
2432 last_column: lines ?
2433 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
2434 this.yylloc.last_column + match[0].length
2435 };
2436 this.yytext += match[0];
2437 this.match += match[0];
2438 this.matches = match;
2439 this.yyleng = this.yytext.length;
2440 if (this.options.ranges) {
2441 this.yylloc.range = [this.offset, this.offset += this.yyleng];
2442 }
2443 this._more = false;
2444 this._backtrack = false;
2445 this._input = this._input.slice(match[0].length);
2446 this.matched += match[0];
2447 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
2448 if (this.done && this._input) {
2449 this.done = false;
2450 }
2451 if (token) {
2452 return token;
2453 } else if (this._backtrack) {
2454 // recover context
2455 for (var k in backup) {
2456 this[k] = backup[k];
2457 }
2458 return false; // rule action called reject() implying the next rule should be tested instead.
2459 }
2460 return false;
2461 },
2462
2463// return next match in input
2464next:function () {
2465 if (this.done) {
2466 return this.EOF;
2467 }
2468 if (!this._input) {
2469 this.done = true;
2470 }
2471
2472 var token,
2473 match,
2474 tempMatch,
2475 index;
2476 if (!this._more) {
2477 this.yytext = '';
2478 this.match = '';
2479 }
2480 var rules = this._currentRules();
2481 for (var i = 0; i < rules.length; i++) {
2482 tempMatch = this._input.match(this.rules[rules[i]]);
2483 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
2484 match = tempMatch;
2485 index = i;
2486 if (this.options.backtrack_lexer) {
2487 token = this.test_match(tempMatch, rules[i]);
2488 if (token !== false) {
2489 return token;
2490 } else if (this._backtrack) {
2491 match = false;
2492 continue; // rule action called reject() implying a rule MISmatch.
2493 } else {
2494 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
2495 return false;
2496 }
2497 } else if (!this.options.flex) {
2498 break;
2499 }
2500 }
2501 }
2502 if (match) {
2503 token = this.test_match(match, rules[index]);
2504 if (token !== false) {
2505 return token;
2506 }
2507 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
2508 return false;
2509 }
2510 if (this._input === "") {
2511 return this.EOF;
2512 } else {
2513 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
2514 text: "",
2515 token: null,
2516 line: this.yylineno
2517 });
2518 }
2519 },
2520
2521// return next match that has a token
2522lex:function lex () {
2523 var r = this.next();
2524 if (r) {
2525 return r;
2526 } else {
2527 return this.lex();
2528 }
2529 },
2530
2531// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
2532begin:function begin (condition) {
2533 this.conditionStack.push(condition);
2534 },
2535
2536// pop the previously active lexer condition state off the condition stack
2537popState:function popState () {
2538 var n = this.conditionStack.length - 1;
2539 if (n > 0) {
2540 return this.conditionStack.pop();
2541 } else {
2542 return this.conditionStack[0];
2543 }
2544 },
2545
2546// produce the lexer rule set which is active for the currently active lexer condition state
2547_currentRules:function _currentRules () {
2548 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
2549 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
2550 } else {
2551 return this.conditions["INITIAL"].rules;
2552 }
2553 },
2554
2555// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
2556topState:function topState (n) {
2557 n = this.conditionStack.length - 1 - Math.abs(n || 0);
2558 if (n >= 0) {
2559 return this.conditionStack[n];
2560 } else {
2561 return "INITIAL";
2562 }
2563 },
2564
2565// alias for begin(condition)
2566pushState:function pushState (condition) {
2567 this.begin(condition);
2568 },
2569
2570// return the number of states currently on the stack
2571stateStackSize:function stateStackSize() {
2572 return this.conditionStack.length;
2573 },
2574options: {"case-insensitive":true},
2575performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
2576var YYSTATE=YY_START;
2577switch($avoiding_name_collisions) {
2578case 0: this.begin("acc_title");return 25;
2579break;
2580case 1: this.popState(); return "acc_title_value";
2581break;
2582case 2: this.begin("acc_descr");return 27;
2583break;
2584case 3: this.popState(); return "acc_descr_value";
2585break;
2586case 4: this.begin("acc_descr_multiline");
2587break;
2588case 5: this.popState();
2589break;
2590case 6:return "acc_descr_multiline_value";
2591break;
2592case 7: this.begin('open_directive'); return 49;
2593break;
2594case 8: this.begin('type_directive'); return 50;
2595break;
2596case 9: this.popState(); this.begin('arg_directive'); return 15;
2597break;
2598case 10: this.popState(); this.popState(); return 52;
2599break;
2600case 11:return 51;
2601break;
2602case 12:/* skip comments */
2603break;
2604case 13:/* skip comments */
2605break;
2606case 14:return 11;
2607break;
2608case 15:/* skip whitespace */
2609break;
2610case 16:return 9;
2611break;
2612case 17:return 48;
2613break;
2614case 18:return 4;
2615break;
2616case 19: this.begin("block"); return 20;
2617break;
2618case 20:/* skip whitespace in block */
2619break;
2620case 21:return 38
2621break;
2622case 22:return 37
2623break;
2624case 23:return 39;
2625break;
2626case 24:/* nothing */
2627break;
2628case 25: this.popState(); return 22;
2629break;
2630case 26:return yy_.yytext[0];
2631break;
2632case 27:return 42;
2633break;
2634case 28:return 43;
2635break;
2636case 29:return 44;
2637break;
2638case 30:return 45;
2639break;
2640case 31:return 42;
2641break;
2642case 32:return 43;
2643break;
2644case 33:return 44;
2645break;
2646case 34:return 46;
2647break;
2648case 35:return 47;
2649break;
2650case 36:return 46;
2651break;
2652case 37:return 46;
2653break;
2654case 38:return 30;
2655break;
2656case 39:return yy_.yytext[0];
2657break;
2658case 40:return 6;
2659break;
2660}
2661},
2662rules: [/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK))\b)/i,/^(?:[A-Za-z][A-Za-z0-9\-_]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/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],
2663conditions: {"acc_descr_multiline":{"rules":[5,6],"inclusive":false},"acc_descr":{"rules":[3],"inclusive":false},"acc_title":{"rules":[1],"inclusive":false},"open_directive":{"rules":[8],"inclusive":false},"type_directive":{"rules":[9,10],"inclusive":false},"arg_directive":{"rules":[10,11],"inclusive":false},"block":{"rules":[20,21,22,23,24,25,26],"inclusive":false},"INITIAL":{"rules":[0,2,4,7,12,13,14,15,16,17,18,19,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"inclusive":true}}
2664});
2665return lexer;
2666})();
2667parser.lexer = lexer;
2668function Parser () {
2669 this.yy = {};
2670}
2671Parser.prototype = parser;parser.Parser = Parser;
2672return new Parser;
2673})();
2674
2675
2676if (true) {
2677exports.parser = parser;
2678exports.Parser = parser.Parser;
2679exports.parse = function () { return parser.parse.apply(parser, arguments); };
2680exports.main = function commonjsMain (args) {
2681 if (!args[1]) {
2682 console.log('Usage: '+args[0]+' FILE');
2683 process.exit(1);
2684 }
2685 var source = (__webpack_require__(/*! fs */ "?3c87").readFileSync)((__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize)(args[1]), "utf8");
2686 return exports.parser.parse(source);
2687};
2688if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
2689 exports.main(process.argv.slice(1));
2690}
2691}
2692
2693/***/ }),
2694
2695/***/ "./src/diagrams/flowchart/parser/flow.jison":
2696/*!**************************************************!*\
2697 !*** ./src/diagrams/flowchart/parser/flow.jison ***!
2698 \**************************************************/
2699/***/ ((module, exports, __webpack_require__) => {
2700
2701/* module decorator */ module = __webpack_require__.nmd(module);
2702/* parser generated by jison 0.4.18 */
2703/*
2704 Returns a Parser object of the following structure:
2705
2706 Parser: {
2707 yy: {}
2708 }
2709
2710 Parser.prototype: {
2711 yy: {},
2712 trace: function(),
2713 symbols_: {associative list: name ==> number},
2714 terminals_: {associative list: number ==> name},
2715 productions_: [...],
2716 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
2717 table: [...],
2718 defaultActions: {...},
2719 parseError: function(str, hash),
2720 parse: function(input),
2721
2722 lexer: {
2723 EOF: 1,
2724 parseError: function(str, hash),
2725 setInput: function(input),
2726 input: function(),
2727 unput: function(str),
2728 more: function(),
2729 less: function(n),
2730 pastInput: function(),
2731 upcomingInput: function(),
2732 showPosition: function(),
2733 test_match: function(regex_match_array, rule_index),
2734 next: function(),
2735 lex: function(),
2736 begin: function(condition),
2737 popState: function(),
2738 _currentRules: function(),
2739 topState: function(),
2740 pushState: function(condition),
2741
2742 options: {
2743 ranges: boolean (optional: true ==> token location info will include a .range[] member)
2744 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
2745 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)
2746 },
2747
2748 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
2749 rules: [...],
2750 conditions: {associative list: name ==> set},
2751 }
2752 }
2753
2754
2755 token location info (@$, _$, etc.): {
2756 first_line: n,
2757 last_line: n,
2758 first_column: n,
2759 last_column: n,
2760 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
2761 }
2762
2763
2764 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
2765 text: (matched text)
2766 token: (the produced terminal token, if any)
2767 line: (yylineno)
2768 }
2769 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
2770 loc: (yylloc)
2771 expected: (string describing the set of expected tokens)
2772 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
2773 }
2774*/
2775var parser = (function(){
2776var 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,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],$V5=[2,10],$V6=[1,20],$V7=[1,21],$V8=[1,22],$V9=[1,23],$Va=[1,30],$Vb=[1,32],$Vc=[1,33],$Vd=[1,34],$Ve=[1,62],$Vf=[1,48],$Vg=[1,52],$Vh=[1,36],$Vi=[1,37],$Vj=[1,38],$Vk=[1,39],$Vl=[1,40],$Vm=[1,56],$Vn=[1,63],$Vo=[1,51],$Vp=[1,53],$Vq=[1,55],$Vr=[1,59],$Vs=[1,60],$Vt=[1,41],$Vu=[1,42],$Vv=[1,43],$Vw=[1,44],$Vx=[1,61],$Vy=[1,50],$Vz=[1,54],$VA=[1,57],$VB=[1,58],$VC=[1,49],$VD=[1,66],$VE=[1,71],$VF=[1,20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],$VG=[1,75],$VH=[1,74],$VI=[1,76],$VJ=[20,21,23,81,82],$VK=[1,99],$VL=[1,104],$VM=[1,107],$VN=[1,108],$VO=[1,101],$VP=[1,106],$VQ=[1,109],$VR=[1,102],$VS=[1,114],$VT=[1,113],$VU=[1,103],$VV=[1,105],$VW=[1,110],$VX=[1,111],$VY=[1,112],$VZ=[1,115],$V_=[20,21,22,23,81,82],$V$=[20,21,22,23,53,81,82],$V01=[20,21,22,23,40,52,53,55,57,59,61,63,65,66,67,69,71,73,74,76,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],$V11=[20,21,23],$V21=[20,21,23,52,66,67,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],$V31=[1,12,20,21,22,23,24,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],$V41=[52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],$V51=[1,149],$V61=[1,157],$V71=[1,158],$V81=[1,159],$V91=[1,160],$Va1=[1,144],$Vb1=[1,145],$Vc1=[1,141],$Vd1=[1,152],$Ve1=[1,153],$Vf1=[1,154],$Vg1=[1,155],$Vh1=[1,156],$Vi1=[1,161],$Vj1=[1,162],$Vk1=[1,147],$Vl1=[1,150],$Vm1=[1,146],$Vn1=[1,143],$Vo1=[20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],$Vp1=[1,165],$Vq1=[20,21,22,23,26,52,66,67,91,105,106,109,111,112,122,123,124,125,126,127],$Vr1=[20,21,22,23,24,26,38,40,41,42,52,56,58,60,62,64,66,67,68,70,72,73,75,77,81,82,86,87,88,89,90,91,92,95,105,106,109,111,112,113,114,122,123,124,125,126,127],$Vs1=[12,21,22,24],$Vt1=[22,106],$Vu1=[1,250],$Vv1=[1,245],$Vw1=[1,246],$Vx1=[1,254],$Vy1=[1,251],$Vz1=[1,248],$VA1=[1,247],$VB1=[1,249],$VC1=[1,252],$VD1=[1,253],$VE1=[1,255],$VF1=[1,273],$VG1=[20,21,23,106],$VH1=[20,21,22,23,66,67,86,102,105,106,109,110,111,112,113];
2777var parser = {trace: function trace () { },
2778yy: {},
2779symbols_: {"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,"direction":43,"acc_title":44,"acc_title_value":45,"acc_descr":46,"acc_descr_value":47,"acc_descr_multiline_value":48,"link":49,"node":50,"vertex":51,"AMP":52,"STYLE_SEPARATOR":53,"idString":54,"DOUBLECIRCLESTART":55,"DOUBLECIRCLEEND":56,"PS":57,"PE":58,"(-":59,"-)":60,"STADIUMSTART":61,"STADIUMEND":62,"SUBROUTINESTART":63,"SUBROUTINEEND":64,"VERTEX_WITH_PROPS_START":65,"ALPHA":66,"COLON":67,"PIPE":68,"CYLINDERSTART":69,"CYLINDEREND":70,"DIAMOND_START":71,"DIAMOND_STOP":72,"TAGEND":73,"TRAPSTART":74,"TRAPEND":75,"INVTRAPSTART":76,"INVTRAPEND":77,"linkStatement":78,"arrowText":79,"TESTSTR":80,"START_LINK":81,"LINK":82,"textToken":83,"STR":84,"keywords":85,"STYLE":86,"LINKSTYLE":87,"CLASSDEF":88,"CLASS":89,"CLICK":90,"DOWN":91,"UP":92,"textNoTags":93,"textNoTagsToken":94,"DEFAULT":95,"stylesOpt":96,"alphaNum":97,"CALLBACKNAME":98,"CALLBACKARGS":99,"HREF":100,"LINK_TARGET":101,"HEX":102,"numList":103,"INTERPOLATE":104,"NUM":105,"COMMA":106,"style":107,"styleComponent":108,"MINUS":109,"UNIT":110,"BRKT":111,"DOT":112,"PCT":113,"TAGSTART":114,"alphaNumToken":115,"idStringToken":116,"alphaNumStatement":117,"direction_tb":118,"direction_bt":119,"direction_rl":120,"direction_lr":121,"PUNCTUATION":122,"UNICODE_TEXT":123,"PLUS":124,"EQUALS":125,"MULT":126,"UNDERSCORE":127,"graphCodeTokens":128,"ARROW_CROSS":129,"ARROW_POINT":130,"ARROW_CIRCLE":131,"ARROW_OPEN":132,"QUOTE":133,"$accept":0,"$end":1},
2780terminals_: {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",44:"acc_title",45:"acc_title_value",46:"acc_descr",47:"acc_descr_value",48:"acc_descr_multiline_value",52:"AMP",53:"STYLE_SEPARATOR",55:"DOUBLECIRCLESTART",56:"DOUBLECIRCLEEND",57:"PS",58:"PE",59:"(-",60:"-)",61:"STADIUMSTART",62:"STADIUMEND",63:"SUBROUTINESTART",64:"SUBROUTINEEND",65:"VERTEX_WITH_PROPS_START",66:"ALPHA",67:"COLON",68:"PIPE",69:"CYLINDERSTART",70:"CYLINDEREND",71:"DIAMOND_START",72:"DIAMOND_STOP",73:"TAGEND",74:"TRAPSTART",75:"TRAPEND",76:"INVTRAPSTART",77:"INVTRAPEND",80:"TESTSTR",81:"START_LINK",82:"LINK",84:"STR",86:"STYLE",87:"LINKSTYLE",88:"CLASSDEF",89:"CLASS",90:"CLICK",91:"DOWN",92:"UP",95:"DEFAULT",98:"CALLBACKNAME",99:"CALLBACKARGS",100:"HREF",101:"LINK_TARGET",102:"HEX",104:"INTERPOLATE",105:"NUM",106:"COMMA",109:"MINUS",110:"UNIT",111:"BRKT",112:"DOT",113:"PCT",114:"TAGSTART",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr",122:"PUNCTUATION",123:"UNICODE_TEXT",124:"PLUS",125:"EQUALS",126:"MULT",127:"UNDERSCORE",129:"ARROW_CROSS",130:"ARROW_POINT",131:"ARROW_CIRCLE",132:"ARROW_OPEN",133:"QUOTE"},
2781productions_: [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],[19,1],[19,2],[19,2],[19,1],[9,1],[9,1],[9,1],[32,3],[32,4],[32,2],[32,1],[50,1],[50,5],[50,3],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,8],[51,4],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,4],[51,4],[51,1],[49,2],[49,3],[49,3],[49,1],[49,3],[78,1],[79,3],[39,1],[39,2],[39,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[93,1],[93,2],[35,5],[35,5],[36,5],[37,2],[37,4],[37,3],[37,5],[37,2],[37,4],[37,4],[37,6],[37,2],[37,4],[37,2],[37,4],[37,4],[37,6],[33,5],[33,5],[34,5],[34,5],[34,9],[34,9],[34,7],[34,7],[103,1],[103,3],[96,1],[96,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[94,1],[94,1],[94,1],[94,1],[54,1],[54,2],[97,1],[97,2],[117,1],[117,1],[117,1],[117,1],[43,1],[43,1],[43,1],[43,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1]],
2782performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
2783/* this == yyval */
2784
2785var $0 = $$.length - 1;
2786switch (yystate) {
2787case 5:
2788 yy.parseDirective('%%{', 'open_directive');
2789break;
2790case 6:
2791 yy.parseDirective($$[$0], 'type_directive');
2792break;
2793case 7:
2794 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
2795break;
2796case 8:
2797 yy.parseDirective('}%%', 'close_directive', 'flowchart');
2798break;
2799case 10:
2800 this.$ = [];
2801break;
2802case 11:
2803
2804 if($$[$0] !== []){
2805 $$[$0-1].push($$[$0]);
2806 }
2807 this.$=$$[$0-1];
2808break;
2809case 12: case 82: case 84: case 96: case 152: case 154: case 155:
2810this.$=$$[$0];
2811break;
2812case 19:
2813 yy.setDirection('TB');this.$ = 'TB';
2814break;
2815case 20:
2816 yy.setDirection($$[$0-1]);this.$ = $$[$0-1];
2817break;
2818case 35:
2819 /* console.warn('finat vs', $$[$0-1].nodes); */ this.$=$$[$0-1].nodes
2820break;
2821case 36: case 37: case 38: case 39: case 40:
2822this.$=[];
2823break;
2824case 41:
2825this.$=yy.addSubGraph($$[$0-6],$$[$0-1],$$[$0-4]);
2826break;
2827case 42:
2828this.$=yy.addSubGraph($$[$0-3],$$[$0-1],$$[$0-3]);
2829break;
2830case 43:
2831this.$=yy.addSubGraph(undefined,$$[$0-1],undefined);
2832break;
2833case 45:
2834 this.$=$$[$0].trim();yy.setAccTitle(this.$);
2835break;
2836case 46: case 47:
2837 this.$=$$[$0].trim();yy.setAccDescription(this.$);
2838break;
2839case 51:
2840 /* console.warn('vs',$$[$0-2].stmt,$$[$0]); */ yy.addLink($$[$0-2].stmt,$$[$0],$$[$0-1]); this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0-2].nodes) }
2841break;
2842case 52:
2843 /* 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) }
2844break;
2845case 53:
2846/*console.warn('noda', $$[$0-1]);*/ this.$ = {stmt: $$[$0-1], nodes:$$[$0-1] }
2847break;
2848case 54:
2849 /*console.warn('noda', $$[$0]);*/ this.$ = {stmt: $$[$0], nodes:$$[$0] }
2850break;
2851case 55:
2852 /* console.warn('nod', $$[$0]); */ this.$ = [$$[$0]];
2853break;
2854case 56:
2855 this.$ = $$[$0-4].concat($$[$0]); /* console.warn('pip', $$[$0-4][0], $$[$0], this.$); */
2856break;
2857case 57:
2858this.$ = [$$[$0-2]];yy.setClass($$[$0-2],$$[$0])
2859break;
2860case 58:
2861this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'square');
2862break;
2863case 59:
2864this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'doublecircle');
2865break;
2866case 60:
2867this.$ = $$[$0-5];yy.addVertex($$[$0-5],$$[$0-2],'circle');
2868break;
2869case 61:
2870this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'ellipse');
2871break;
2872case 62:
2873this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'stadium');
2874break;
2875case 63:
2876this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'subroutine');
2877break;
2878case 64:
2879this.$ = $$[$0-7];yy.addVertex($$[$0-7],$$[$0-1],'rect',undefined,undefined,undefined, Object.fromEntries([[$$[$0-5], $$[$0-3]]]));
2880break;
2881case 65:
2882this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'cylinder');
2883break;
2884case 66:
2885this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'round');
2886break;
2887case 67:
2888this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'diamond');
2889break;
2890case 68:
2891this.$ = $$[$0-5];yy.addVertex($$[$0-5],$$[$0-2],'hexagon');
2892break;
2893case 69:
2894this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'odd');
2895break;
2896case 70:
2897this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'trapezoid');
2898break;
2899case 71:
2900this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'inv_trapezoid');
2901break;
2902case 72:
2903this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'lean_right');
2904break;
2905case 73:
2906this.$ = $$[$0-3];yy.addVertex($$[$0-3],$$[$0-1],'lean_left');
2907break;
2908case 74:
2909 /*console.warn('h: ', $$[$0]);*/this.$ = $$[$0];yy.addVertex($$[$0]);
2910break;
2911case 75:
2912$$[$0-1].text = $$[$0];this.$ = $$[$0-1];
2913break;
2914case 76: case 77:
2915$$[$0-2].text = $$[$0-1];this.$ = $$[$0-2];
2916break;
2917case 78:
2918this.$ = $$[$0];
2919break;
2920case 79:
2921var inf = yy.destructLink($$[$0], $$[$0-2]); this.$ = {"type":inf.type,"stroke":inf.stroke,"length":inf.length,"text":$$[$0-1]};
2922break;
2923case 80:
2924var inf = yy.destructLink($$[$0]);this.$ = {"type":inf.type,"stroke":inf.stroke,"length":inf.length};
2925break;
2926case 81:
2927this.$ = $$[$0-1];
2928break;
2929case 83: case 97: case 153:
2930this.$=$$[$0-1]+''+$$[$0];
2931break;
2932case 98: case 99:
2933this.$ = $$[$0-4];yy.addClass($$[$0-2],$$[$0]);
2934break;
2935case 100:
2936this.$ = $$[$0-4];yy.setClass($$[$0-2], $$[$0]);
2937break;
2938case 101: case 109:
2939this.$ = $$[$0-1];yy.setClickEvent($$[$0-1], $$[$0]);
2940break;
2941case 102: case 110:
2942this.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-2]);yy.setTooltip($$[$0-3], $$[$0]);
2943break;
2944case 103:
2945this.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);
2946break;
2947case 104:
2948this.$ = $$[$0-4];yy.setClickEvent($$[$0-4], $$[$0-3], $$[$0-2]);yy.setTooltip($$[$0-4], $$[$0]);
2949break;
2950case 105: case 111:
2951this.$ = $$[$0-1];yy.setLink($$[$0-1], $$[$0]);
2952break;
2953case 106: case 112:
2954this.$ = $$[$0-3];yy.setLink($$[$0-3], $$[$0-2]);yy.setTooltip($$[$0-3], $$[$0]);
2955break;
2956case 107: case 113:
2957this.$ = $$[$0-3];yy.setLink($$[$0-3], $$[$0-2], $$[$0]);
2958break;
2959case 108: case 114:
2960this.$ = $$[$0-5];yy.setLink($$[$0-5], $$[$0-4], $$[$0]);yy.setTooltip($$[$0-5], $$[$0-2]);
2961break;
2962case 115:
2963this.$ = $$[$0-4];yy.addVertex($$[$0-2],undefined,undefined,$$[$0]);
2964break;
2965case 116: case 118:
2966this.$ = $$[$0-4];yy.updateLink($$[$0-2],$$[$0]);
2967break;
2968case 117:
2969this.$ = $$[$0-4];yy.updateLink([$$[$0-2]],$$[$0]);
2970break;
2971case 119:
2972this.$ = $$[$0-8];yy.updateLinkInterpolate([$$[$0-6]],$$[$0-2]);yy.updateLink([$$[$0-6]],$$[$0]);
2973break;
2974case 120:
2975this.$ = $$[$0-8];yy.updateLinkInterpolate($$[$0-6],$$[$0-2]);yy.updateLink($$[$0-6],$$[$0]);
2976break;
2977case 121:
2978this.$ = $$[$0-6];yy.updateLinkInterpolate([$$[$0-4]],$$[$0]);
2979break;
2980case 122:
2981this.$ = $$[$0-6];yy.updateLinkInterpolate($$[$0-4],$$[$0]);
2982break;
2983case 123: case 125:
2984this.$ = [$$[$0]]
2985break;
2986case 124: case 126:
2987$$[$0-2].push($$[$0]);this.$ = $$[$0-2];
2988break;
2989case 128:
2990this.$ = $$[$0-1] + $$[$0];
2991break;
2992case 150:
2993this.$=$$[$0]
2994break;
2995case 151:
2996this.$=$$[$0-1]+''+$$[$0]
2997break;
2998case 156:
2999this.$='v';
3000break;
3001case 157:
3002this.$='-';
3003break;
3004case 158:
3005 this.$={stmt:'dir', value:'TB'};
3006break;
3007case 159:
3008 this.$={stmt:'dir', value:'BT'};
3009break;
3010case 160:
3011 this.$={stmt:'dir', value:'RL'};
3012break;
3013case 161:
3014 this.$={stmt:'dir', value:'LR'};
3015break;
3016}
3017},
3018table: [{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,43:31,44:$Vb,46:$Vc,48:$Vd,50:35,51:45,52:$Ve,54:46,66:$Vf,67:$Vg,86:$Vh,87:$Vi,88:$Vj,89:$Vk,90:$Vl,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,118:$Vt,119:$Vu,120:$Vv,121:$Vw,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},{8:64,10:[1,65],15:$VD},o([10,15],[2,6]),o($V4,[2,17]),o($V4,[2,18]),o($V4,[2,19]),{20:[1,68],21:[1,69],22:$VE,27:67,30:70},o($VF,[2,11]),o($VF,[2,12]),o($VF,[2,13]),o($VF,[2,14]),o($VF,[2,15]),o($VF,[2,16]),{9:72,20:$VG,21:$VH,23:$VI,49:73,78:77,81:[1,78],82:[1,79]},{9:80,20:$VG,21:$VH,23:$VI},{9:81,20:$VG,21:$VH,23:$VI},{9:82,20:$VG,21:$VH,23:$VI},{9:83,20:$VG,21:$VH,23:$VI},{9:84,20:$VG,21:$VH,23:$VI},{9:86,20:$VG,21:$VH,22:[1,85],23:$VI},o($VF,[2,44]),{45:[1,87]},{47:[1,88]},o($VF,[2,47]),o($VJ,[2,54],{30:89,22:$VE}),{22:[1,90]},{22:[1,91]},{22:[1,92]},{22:[1,93]},{26:$VK,52:$VL,66:$VM,67:$VN,84:[1,97],91:$VO,97:96,98:[1,94],100:[1,95],105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($VF,[2,158]),o($VF,[2,159]),o($VF,[2,160]),o($VF,[2,161]),o($V_,[2,55],{53:[1,116]}),o($V$,[2,74],{116:129,40:[1,117],52:$Ve,55:[1,118],57:[1,119],59:[1,120],61:[1,121],63:[1,122],65:[1,123],66:$Vf,67:$Vg,69:[1,124],71:[1,125],73:[1,126],74:[1,127],76:[1,128],91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC}),o($V01,[2,150]),o($V01,[2,175]),o($V01,[2,176]),o($V01,[2,177]),o($V01,[2,178]),o($V01,[2,179]),o($V01,[2,180]),o($V01,[2,181]),o($V01,[2,182]),o($V01,[2,183]),o($V01,[2,184]),o($V01,[2,185]),o($V01,[2,186]),o($V01,[2,187]),o($V01,[2,188]),o($V01,[2,189]),o($V01,[2,190]),{9:130,20:$VG,21:$VH,23:$VI},{11:131,14:[1,132]},o($V11,[2,8]),o($V4,[2,20]),o($V4,[2,26]),o($V4,[2,27]),{21:[1,133]},o($V21,[2,34],{30:134,22:$VE}),o($VF,[2,35]),{50:135,51:45,52:$Ve,54:46,66:$Vf,67:$Vg,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},o($V31,[2,48]),o($V31,[2,49]),o($V31,[2,50]),o($V41,[2,78],{79:136,68:[1,138],80:[1,137]}),{22:$V51,24:$V61,26:$V71,38:$V81,39:139,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o([52,66,67,68,80,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,80]),o($VF,[2,36]),o($VF,[2,37]),o($VF,[2,38]),o($VF,[2,39]),o($VF,[2,40]),{22:$V51,24:$V61,26:$V71,38:$V81,39:163,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($Vo1,$V5,{17:164}),o($VF,[2,45]),o($VF,[2,46]),o($VJ,[2,53],{52:$Vp1}),{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,97:166,102:[1,167],105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{95:[1,168],103:169,105:[1,170]},{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,95:[1,171],97:172,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,97:173,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V11,[2,101],{22:[1,174],99:[1,175]}),o($V11,[2,105],{22:[1,176]}),o($V11,[2,109],{115:100,117:178,22:[1,177],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ}),o($V11,[2,111],{22:[1,179]}),o($Vq1,[2,152]),o($Vq1,[2,154]),o($Vq1,[2,155]),o($Vq1,[2,156]),o($Vq1,[2,157]),o($Vr1,[2,162]),o($Vr1,[2,163]),o($Vr1,[2,164]),o($Vr1,[2,165]),o($Vr1,[2,166]),o($Vr1,[2,167]),o($Vr1,[2,168]),o($Vr1,[2,169]),o($Vr1,[2,170]),o($Vr1,[2,171]),o($Vr1,[2,172]),o($Vr1,[2,173]),o($Vr1,[2,174]),{52:$Ve,54:180,66:$Vf,67:$Vg,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},{22:$V51,24:$V61,26:$V71,38:$V81,39:181,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:182,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:184,42:$V91,52:$VL,57:[1,183],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:185,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:186,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:187,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{66:[1,188]},{22:$V51,24:$V61,26:$V71,38:$V81,39:189,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:190,42:$V91,52:$VL,66:$VM,67:$VN,71:[1,191],73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:192,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:193,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:194,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V01,[2,151]),o($Vs1,[2,3]),{8:195,15:$VD},{15:[2,7]},o($V4,[2,28]),o($V21,[2,33]),o($VJ,[2,51],{30:196,22:$VE}),o($V41,[2,75],{22:[1,197]}),{22:[1,198]},{22:$V51,24:$V61,26:$V71,38:$V81,39:199,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,82:[1,200],83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($Vr1,[2,82]),o($Vr1,[2,84]),o($Vr1,[2,140]),o($Vr1,[2,141]),o($Vr1,[2,142]),o($Vr1,[2,143]),o($Vr1,[2,144]),o($Vr1,[2,145]),o($Vr1,[2,146]),o($Vr1,[2,147]),o($Vr1,[2,148]),o($Vr1,[2,149]),o($Vr1,[2,85]),o($Vr1,[2,86]),o($Vr1,[2,87]),o($Vr1,[2,88]),o($Vr1,[2,89]),o($Vr1,[2,90]),o($Vr1,[2,91]),o($Vr1,[2,92]),o($Vr1,[2,93]),o($Vr1,[2,94]),o($Vr1,[2,95]),{9:203,20:$VG,21:$VH,22:$V51,23:$VI,24:$V61,26:$V71,38:$V81,40:[1,202],42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{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,204],43:31,44:$Vb,46:$Vc,48:$Vd,50:35,51:45,52:$Ve,54:46,66:$Vf,67:$Vg,86:$Vh,87:$Vi,88:$Vj,89:$Vk,90:$Vl,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,118:$Vt,119:$Vu,120:$Vv,121:$Vw,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},{22:$VE,30:205},{22:[1,206],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:178,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:[1,207]},{22:[1,208]},{22:[1,209],106:[1,210]},o($Vt1,[2,123]),{22:[1,211]},{22:[1,212],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:178,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:[1,213],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:178,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{84:[1,214]},o($V11,[2,103],{22:[1,215]}),{84:[1,216],101:[1,217]},{84:[1,218]},o($Vq1,[2,153]),{84:[1,219],101:[1,220]},o($V_,[2,57],{116:129,52:$Ve,66:$Vf,67:$Vg,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC}),{22:$V51,24:$V61,26:$V71,38:$V81,41:[1,221],42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,56:[1,222],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:223,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,58:[1,224],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,60:[1,225],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,62:[1,226],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,64:[1,227],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{67:[1,228]},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,70:[1,229],73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,72:[1,230],73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,39:231,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,41:[1,232],42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,75:[1,233],77:[1,234],81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,75:[1,236],77:[1,235],81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{9:237,20:$VG,21:$VH,23:$VI},o($VJ,[2,52],{52:$Vp1}),o($V41,[2,77]),o($V41,[2,76]),{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,68:[1,238],73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V41,[2,79]),o($Vr1,[2,83]),{22:$V51,24:$V61,26:$V71,38:$V81,39:239,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($Vo1,$V5,{17:240}),o($VF,[2,43]),{51:241,52:$Ve,54:46,66:$Vf,67:$Vg,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:242,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:256,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:257,102:$Vy1,104:[1,258],105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:259,102:$Vy1,104:[1,260],105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{105:[1,261]},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:262,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:263,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,97:264,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V11,[2,102]),{84:[1,265]},o($V11,[2,106],{22:[1,266]}),o($V11,[2,107]),o($V11,[2,110]),o($V11,[2,112],{22:[1,267]}),o($V11,[2,113]),o($V$,[2,58]),o($V$,[2,59]),{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,58:[1,268],66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V$,[2,66]),o($V$,[2,61]),o($V$,[2,62]),o($V$,[2,63]),{66:[1,269]},o($V$,[2,65]),o($V$,[2,67]),{22:$V51,24:$V61,26:$V71,38:$V81,42:$V91,52:$VL,66:$VM,67:$VN,72:[1,270],73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V$,[2,69]),o($V$,[2,70]),o($V$,[2,72]),o($V$,[2,71]),o($V$,[2,73]),o($Vs1,[2,4]),o([22,52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,81]),{22:$V51,24:$V61,26:$V71,38:$V81,41:[1,271],42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{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,272],43:31,44:$Vb,46:$Vc,48:$Vd,50:35,51:45,52:$Ve,54:46,66:$Vf,67:$Vg,86:$Vh,87:$Vi,88:$Vj,89:$Vk,90:$Vl,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,118:$Vt,119:$Vu,120:$Vv,121:$Vw,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},o($V_,[2,56]),o($V11,[2,115],{106:$VF1}),o($VG1,[2,125],{108:274,22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,102:$Vy1,105:$Vz1,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1}),o($VH1,[2,127]),o($VH1,[2,129]),o($VH1,[2,130]),o($VH1,[2,131]),o($VH1,[2,132]),o($VH1,[2,133]),o($VH1,[2,134]),o($VH1,[2,135]),o($VH1,[2,136]),o($VH1,[2,137]),o($VH1,[2,138]),o($VH1,[2,139]),o($V11,[2,116],{106:$VF1}),o($V11,[2,117],{106:$VF1}),{22:[1,275]},o($V11,[2,118],{106:$VF1}),{22:[1,276]},o($Vt1,[2,124]),o($V11,[2,98],{106:$VF1}),o($V11,[2,99],{106:$VF1}),o($V11,[2,100],{115:100,117:178,26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ}),o($V11,[2,104]),{101:[1,277]},{101:[1,278]},{58:[1,279]},{68:[1,280]},{72:[1,281]},{9:282,20:$VG,21:$VH,23:$VI},o($VF,[2,42]),{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,102:$Vy1,105:$Vz1,107:283,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},o($VH1,[2,128]),{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,97:284,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,97:285,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,115:100,117:98,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V11,[2,108]),o($V11,[2,114]),o($V$,[2,60]),{22:$V51,24:$V61,26:$V71,38:$V81,39:286,42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:140,84:$Vc1,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},o($V$,[2,68]),o($Vo1,$V5,{17:287}),o($VG1,[2,126],{108:274,22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,102:$Vy1,105:$Vz1,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1}),o($V11,[2,121],{115:100,117:178,22:[1,288],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ}),o($V11,[2,122],{115:100,117:178,22:[1,289],26:$VK,52:$VL,66:$VM,67:$VN,91:$VO,105:$VP,106:$VQ,109:$VR,111:$VS,112:$VT,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ}),{22:$V51,24:$V61,26:$V71,38:$V81,41:[1,290],42:$V91,52:$VL,66:$VM,67:$VN,73:$Va1,81:$Vb1,83:201,85:151,86:$Vd1,87:$Ve1,88:$Vf1,89:$Vg1,90:$Vh1,91:$Vi1,92:$Vj1,94:142,95:$Vk1,105:$VP,106:$VQ,109:$Vl1,111:$VS,112:$VT,113:$Vm1,114:$Vn1,115:148,122:$VU,123:$VV,124:$VW,125:$VX,126:$VY,127:$VZ},{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,291],43:31,44:$Vb,46:$Vc,48:$Vd,50:35,51:45,52:$Ve,54:46,66:$Vf,67:$Vg,86:$Vh,87:$Vi,88:$Vj,89:$Vk,90:$Vl,91:$Vm,95:$Vn,105:$Vo,106:$Vp,109:$Vq,111:$Vr,112:$Vs,116:47,118:$Vt,119:$Vu,120:$Vv,121:$Vw,122:$Vx,123:$Vy,124:$Vz,125:$VA,126:$VB,127:$VC},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:292,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},{22:$Vu1,66:$Vv1,67:$Vw1,86:$Vx1,96:293,102:$Vy1,105:$Vz1,107:243,108:244,109:$VA1,110:$VB1,111:$VC1,112:$VD1,113:$VE1},o($V$,[2,64]),o($VF,[2,41]),o($V11,[2,119],{106:$VF1}),o($V11,[2,120],{106:$VF1})],
3019defaultActions: {2:[2,1],9:[2,5],10:[2,2],132:[2,7]},
3020parseError: function parseError (str, hash) {
3021 if (hash.recoverable) {
3022 this.trace(str);
3023 } else {
3024 var error = new Error(str);
3025 error.hash = hash;
3026 throw error;
3027 }
3028},
3029parse: function parse(input) {
3030 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
3031 var args = lstack.slice.call(arguments, 1);
3032 var lexer = Object.create(this.lexer);
3033 var sharedState = { yy: {} };
3034 for (var k in this.yy) {
3035 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
3036 sharedState.yy[k] = this.yy[k];
3037 }
3038 }
3039 lexer.setInput(input, sharedState.yy);
3040 sharedState.yy.lexer = lexer;
3041 sharedState.yy.parser = this;
3042 if (typeof lexer.yylloc == 'undefined') {
3043 lexer.yylloc = {};
3044 }
3045 var yyloc = lexer.yylloc;
3046 lstack.push(yyloc);
3047 var ranges = lexer.options && lexer.options.ranges;
3048 if (typeof sharedState.yy.parseError === 'function') {
3049 this.parseError = sharedState.yy.parseError;
3050 } else {
3051 this.parseError = Object.getPrototypeOf(this).parseError;
3052 }
3053 function popStack(n) {
3054 stack.length = stack.length - 2 * n;
3055 vstack.length = vstack.length - n;
3056 lstack.length = lstack.length - n;
3057 }
3058 function lex() {
3059 var token;
3060 token = tstack.pop() || lexer.lex() || EOF;
3061 if (typeof token !== 'number') {
3062 if (token instanceof Array) {
3063 tstack = token;
3064 token = tstack.pop();
3065 }
3066 token = self.symbols_[token] || token;
3067 }
3068 return token;
3069 }
3070 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
3071 while (true) {
3072 state = stack[stack.length - 1];
3073 if (this.defaultActions[state]) {
3074 action = this.defaultActions[state];
3075 } else {
3076 if (symbol === null || typeof symbol == 'undefined') {
3077 symbol = lex();
3078 }
3079 action = table[state] && table[state][symbol];
3080 }
3081 if (typeof action === 'undefined' || !action.length || !action[0]) {
3082 var errStr = '';
3083 expected = [];
3084 for (p in table[state]) {
3085 if (this.terminals_[p] && p > TERROR) {
3086 expected.push('\'' + this.terminals_[p] + '\'');
3087 }
3088 }
3089 if (lexer.showPosition) {
3090 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
3091 } else {
3092 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
3093 }
3094 this.parseError(errStr, {
3095 text: lexer.match,
3096 token: this.terminals_[symbol] || symbol,
3097 line: lexer.yylineno,
3098 loc: yyloc,
3099 expected: expected
3100 });
3101 }
3102 if (action[0] instanceof Array && action.length > 1) {
3103 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
3104 }
3105 switch (action[0]) {
3106 case 1:
3107 stack.push(symbol);
3108 vstack.push(lexer.yytext);
3109 lstack.push(lexer.yylloc);
3110 stack.push(action[1]);
3111 symbol = null;
3112 if (!preErrorSymbol) {
3113 yyleng = lexer.yyleng;
3114 yytext = lexer.yytext;
3115 yylineno = lexer.yylineno;
3116 yyloc = lexer.yylloc;
3117 if (recovering > 0) {
3118 recovering--;
3119 }
3120 } else {
3121 symbol = preErrorSymbol;
3122 preErrorSymbol = null;
3123 }
3124 break;
3125 case 2:
3126 len = this.productions_[action[1]][1];
3127 yyval.$ = vstack[vstack.length - len];
3128 yyval._$ = {
3129 first_line: lstack[lstack.length - (len || 1)].first_line,
3130 last_line: lstack[lstack.length - 1].last_line,
3131 first_column: lstack[lstack.length - (len || 1)].first_column,
3132 last_column: lstack[lstack.length - 1].last_column
3133 };
3134 if (ranges) {
3135 yyval._$.range = [
3136 lstack[lstack.length - (len || 1)].range[0],
3137 lstack[lstack.length - 1].range[1]
3138 ];
3139 }
3140 r = this.performAction.apply(yyval, [
3141 yytext,
3142 yyleng,
3143 yylineno,
3144 sharedState.yy,
3145 action[1],
3146 vstack,
3147 lstack
3148 ].concat(args));
3149 if (typeof r !== 'undefined') {
3150 return r;
3151 }
3152 if (len) {
3153 stack = stack.slice(0, -1 * len * 2);
3154 vstack = vstack.slice(0, -1 * len);
3155 lstack = lstack.slice(0, -1 * len);
3156 }
3157 stack.push(this.productions_[action[1]][0]);
3158 vstack.push(yyval.$);
3159 lstack.push(yyval._$);
3160 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
3161 stack.push(newState);
3162 break;
3163 case 3:
3164 return true;
3165 }
3166 }
3167 return true;
3168}};
3169
3170/* generated by jison-lex 0.3.4 */
3171var lexer = (function(){
3172var lexer = ({
3173
3174EOF:1,
3175
3176parseError:function parseError(str, hash) {
3177 if (this.yy.parser) {
3178 this.yy.parser.parseError(str, hash);
3179 } else {
3180 throw new Error(str);
3181 }
3182 },
3183
3184// resets the lexer, sets new input
3185setInput:function (input, yy) {
3186 this.yy = yy || this.yy || {};
3187 this._input = input;
3188 this._more = this._backtrack = this.done = false;
3189 this.yylineno = this.yyleng = 0;
3190 this.yytext = this.matched = this.match = '';
3191 this.conditionStack = ['INITIAL'];
3192 this.yylloc = {
3193 first_line: 1,
3194 first_column: 0,
3195 last_line: 1,
3196 last_column: 0
3197 };
3198 if (this.options.ranges) {
3199 this.yylloc.range = [0,0];
3200 }
3201 this.offset = 0;
3202 return this;
3203 },
3204
3205// consumes and returns one char from the input
3206input:function () {
3207 var ch = this._input[0];
3208 this.yytext += ch;
3209 this.yyleng++;
3210 this.offset++;
3211 this.match += ch;
3212 this.matched += ch;
3213 var lines = ch.match(/(?:\r\n?|\n).*/g);
3214 if (lines) {
3215 this.yylineno++;
3216 this.yylloc.last_line++;
3217 } else {
3218 this.yylloc.last_column++;
3219 }
3220 if (this.options.ranges) {
3221 this.yylloc.range[1]++;
3222 }
3223
3224 this._input = this._input.slice(1);
3225 return ch;
3226 },
3227
3228// unshifts one char (or a string) into the input
3229unput:function (ch) {
3230 var len = ch.length;
3231 var lines = ch.split(/(?:\r\n?|\n)/g);
3232
3233 this._input = ch + this._input;
3234 this.yytext = this.yytext.substr(0, this.yytext.length - len);
3235 //this.yyleng -= len;
3236 this.offset -= len;
3237 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
3238 this.match = this.match.substr(0, this.match.length - 1);
3239 this.matched = this.matched.substr(0, this.matched.length - 1);
3240
3241 if (lines.length - 1) {
3242 this.yylineno -= lines.length - 1;
3243 }
3244 var r = this.yylloc.range;
3245
3246 this.yylloc = {
3247 first_line: this.yylloc.first_line,
3248 last_line: this.yylineno + 1,
3249 first_column: this.yylloc.first_column,
3250 last_column: lines ?
3251 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
3252 + oldLines[oldLines.length - lines.length].length - lines[0].length :
3253 this.yylloc.first_column - len
3254 };
3255
3256 if (this.options.ranges) {
3257 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
3258 }
3259 this.yyleng = this.yytext.length;
3260 return this;
3261 },
3262
3263// When called from action, caches matched text and appends it on next action
3264more:function () {
3265 this._more = true;
3266 return this;
3267 },
3268
3269// 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.
3270reject:function () {
3271 if (this.options.backtrack_lexer) {
3272 this._backtrack = true;
3273 } else {
3274 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(), {
3275 text: "",
3276 token: null,
3277 line: this.yylineno
3278 });
3279
3280 }
3281 return this;
3282 },
3283
3284// retain first n characters of the match
3285less:function (n) {
3286 this.unput(this.match.slice(n));
3287 },
3288
3289// displays already matched input, i.e. for error messages
3290pastInput:function () {
3291 var past = this.matched.substr(0, this.matched.length - this.match.length);
3292 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
3293 },
3294
3295// displays upcoming input, i.e. for error messages
3296upcomingInput:function () {
3297 var next = this.match;
3298 if (next.length < 20) {
3299 next += this._input.substr(0, 20-next.length);
3300 }
3301 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
3302 },
3303
3304// displays the character position where the lexing error occurred, i.e. for error messages
3305showPosition:function () {
3306 var pre = this.pastInput();
3307 var c = new Array(pre.length + 1).join("-");
3308 return pre + this.upcomingInput() + "\n" + c + "^";
3309 },
3310
3311// test the lexed token: return FALSE when not a match, otherwise return token
3312test_match:function(match, indexed_rule) {
3313 var token,
3314 lines,
3315 backup;
3316
3317 if (this.options.backtrack_lexer) {
3318 // save context
3319 backup = {
3320 yylineno: this.yylineno,
3321 yylloc: {
3322 first_line: this.yylloc.first_line,
3323 last_line: this.last_line,
3324 first_column: this.yylloc.first_column,
3325 last_column: this.yylloc.last_column
3326 },
3327 yytext: this.yytext,
3328 match: this.match,
3329 matches: this.matches,
3330 matched: this.matched,
3331 yyleng: this.yyleng,
3332 offset: this.offset,
3333 _more: this._more,
3334 _input: this._input,
3335 yy: this.yy,
3336 conditionStack: this.conditionStack.slice(0),
3337 done: this.done
3338 };
3339 if (this.options.ranges) {
3340 backup.yylloc.range = this.yylloc.range.slice(0);
3341 }
3342 }
3343
3344 lines = match[0].match(/(?:\r\n?|\n).*/g);
3345 if (lines) {
3346 this.yylineno += lines.length;
3347 }
3348 this.yylloc = {
3349 first_line: this.yylloc.last_line,
3350 last_line: this.yylineno + 1,
3351 first_column: this.yylloc.last_column,
3352 last_column: lines ?
3353 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
3354 this.yylloc.last_column + match[0].length
3355 };
3356 this.yytext += match[0];
3357 this.match += match[0];
3358 this.matches = match;
3359 this.yyleng = this.yytext.length;
3360 if (this.options.ranges) {
3361 this.yylloc.range = [this.offset, this.offset += this.yyleng];
3362 }
3363 this._more = false;
3364 this._backtrack = false;
3365 this._input = this._input.slice(match[0].length);
3366 this.matched += match[0];
3367 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
3368 if (this.done && this._input) {
3369 this.done = false;
3370 }
3371 if (token) {
3372 return token;
3373 } else if (this._backtrack) {
3374 // recover context
3375 for (var k in backup) {
3376 this[k] = backup[k];
3377 }
3378 return false; // rule action called reject() implying the next rule should be tested instead.
3379 }
3380 return false;
3381 },
3382
3383// return next match in input
3384next:function () {
3385 if (this.done) {
3386 return this.EOF;
3387 }
3388 if (!this._input) {
3389 this.done = true;
3390 }
3391
3392 var token,
3393 match,
3394 tempMatch,
3395 index;
3396 if (!this._more) {
3397 this.yytext = '';
3398 this.match = '';
3399 }
3400 var rules = this._currentRules();
3401 for (var i = 0; i < rules.length; i++) {
3402 tempMatch = this._input.match(this.rules[rules[i]]);
3403 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
3404 match = tempMatch;
3405 index = i;
3406 if (this.options.backtrack_lexer) {
3407 token = this.test_match(tempMatch, rules[i]);
3408 if (token !== false) {
3409 return token;
3410 } else if (this._backtrack) {
3411 match = false;
3412 continue; // rule action called reject() implying a rule MISmatch.
3413 } else {
3414 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
3415 return false;
3416 }
3417 } else if (!this.options.flex) {
3418 break;
3419 }
3420 }
3421 }
3422 if (match) {
3423 token = this.test_match(match, rules[index]);
3424 if (token !== false) {
3425 return token;
3426 }
3427 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
3428 return false;
3429 }
3430 if (this._input === "") {
3431 return this.EOF;
3432 } else {
3433 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
3434 text: "",
3435 token: null,
3436 line: this.yylineno
3437 });
3438 }
3439 },
3440
3441// return next match that has a token
3442lex:function lex () {
3443 var r = this.next();
3444 if (r) {
3445 return r;
3446 } else {
3447 return this.lex();
3448 }
3449 },
3450
3451// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
3452begin:function begin (condition) {
3453 this.conditionStack.push(condition);
3454 },
3455
3456// pop the previously active lexer condition state off the condition stack
3457popState:function popState () {
3458 var n = this.conditionStack.length - 1;
3459 if (n > 0) {
3460 return this.conditionStack.pop();
3461 } else {
3462 return this.conditionStack[0];
3463 }
3464 },
3465
3466// produce the lexer rule set which is active for the currently active lexer condition state
3467_currentRules:function _currentRules () {
3468 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
3469 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
3470 } else {
3471 return this.conditions["INITIAL"].rules;
3472 }
3473 },
3474
3475// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
3476topState:function topState (n) {
3477 n = this.conditionStack.length - 1 - Math.abs(n || 0);
3478 if (n >= 0) {
3479 return this.conditionStack[n];
3480 } else {
3481 return "INITIAL";
3482 }
3483 },
3484
3485// alias for begin(condition)
3486pushState:function pushState (condition) {
3487 this.begin(condition);
3488 },
3489
3490// return the number of states currently on the stack
3491stateStackSize:function stateStackSize() {
3492 return this.conditionStack.length;
3493 },
3494options: {},
3495performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
3496var YYSTATE=YY_START;
3497switch($avoiding_name_collisions) {
3498case 0: this.begin('open_directive'); return 12;
3499break;
3500case 1: this.begin('type_directive'); return 13;
3501break;
3502case 2: this.popState(); this.begin('arg_directive'); return 10;
3503break;
3504case 3: this.popState(); this.popState(); return 15;
3505break;
3506case 4:return 14;
3507break;
3508case 5:/* skip comments */
3509break;
3510case 6:/* skip comments */
3511break;
3512case 7: this.begin("acc_title");return 44;
3513break;
3514case 8: this.popState(); return "acc_title_value";
3515break;
3516case 9: this.begin("acc_descr");return 46;
3517break;
3518case 10: this.popState(); return "acc_descr_value";
3519break;
3520case 11: this.begin("acc_descr_multiline");
3521break;
3522case 12: this.popState();
3523break;
3524case 13:return "acc_descr_multiline_value";
3525break;
3526case 14:this.begin("string");
3527break;
3528case 15:this.popState();
3529break;
3530case 16:return "STR";
3531break;
3532case 17:return 86;
3533break;
3534case 18:return 95;
3535break;
3536case 19:return 87;
3537break;
3538case 20:return 104;
3539break;
3540case 21:return 88;
3541break;
3542case 22:return 89;
3543break;
3544case 23:this.begin("href");
3545break;
3546case 24:this.popState();
3547break;
3548case 25:return 100;
3549break;
3550case 26:this.begin("callbackname");
3551break;
3552case 27:this.popState();
3553break;
3554case 28:this.popState(); this.begin("callbackargs");
3555break;
3556case 29:return 98;
3557break;
3558case 30:this.popState();
3559break;
3560case 31:return 99;
3561break;
3562case 32:this.begin("click");
3563break;
3564case 33:this.popState();
3565break;
3566case 34:return 90;
3567break;
3568case 35:if(yy.lex.firstGraph()){this.begin("dir");} return 24;
3569break;
3570case 36:if(yy.lex.firstGraph()){this.begin("dir");} return 24;
3571break;
3572case 37:return 38;
3573break;
3574case 38:return 42;
3575break;
3576case 39:return 101;
3577break;
3578case 40:return 101;
3579break;
3580case 41:return 101;
3581break;
3582case 42:return 101;
3583break;
3584case 43: this.popState(); return 25;
3585break;
3586case 44: this.popState(); return 26;
3587break;
3588case 45: this.popState(); return 26;
3589break;
3590case 46: this.popState(); return 26;
3591break;
3592case 47: this.popState(); return 26;
3593break;
3594case 48: this.popState(); return 26;
3595break;
3596case 49: this.popState(); return 26;
3597break;
3598case 50: this.popState(); return 26;
3599break;
3600case 51: this.popState(); return 26;
3601break;
3602case 52: this.popState(); return 26;
3603break;
3604case 53: this.popState(); return 26;
3605break;
3606case 54:return 118;
3607break;
3608case 55:return 119;
3609break;
3610case 56:return 120;
3611break;
3612case 57:return 121;
3613break;
3614case 58: return 105;
3615break;
3616case 59:return 111;
3617break;
3618case 60:return 53;
3619break;
3620case 61:return 67;
3621break;
3622case 62:return 52;
3623break;
3624case 63:return 20;
3625break;
3626case 64:return 106;
3627break;
3628case 65:return 126;
3629break;
3630case 66:return 82;
3631break;
3632case 67:return 82;
3633break;
3634case 68:return 82;
3635break;
3636case 69:return 81;
3637break;
3638case 70:return 81;
3639break;
3640case 71:return 81;
3641break;
3642case 72:return 59;
3643break;
3644case 73:return 60;
3645break;
3646case 74:return 61;
3647break;
3648case 75:return 62;
3649break;
3650case 76:return 63;
3651break;
3652case 77:return 64;
3653break;
3654case 78:return 65;
3655break;
3656case 79:return 69;
3657break;
3658case 80:return 70;
3659break;
3660case 81:return 55;
3661break;
3662case 82:return 56;
3663break;
3664case 83:return 109;
3665break;
3666case 84:return 112;
3667break;
3668case 85:return 127;
3669break;
3670case 86:return 124;
3671break;
3672case 87:return 113;
3673break;
3674case 88:return 125;
3675break;
3676case 89:return 125;
3677break;
3678case 90:return 114;
3679break;
3680case 91:return 73;
3681break;
3682case 92:return 92;
3683break;
3684case 93:return 'SEP';
3685break;
3686case 94:return 91;
3687break;
3688case 95:return 66;
3689break;
3690case 96:return 75;
3691break;
3692case 97:return 74;
3693break;
3694case 98:return 77;
3695break;
3696case 99:return 76;
3697break;
3698case 100:return 122;
3699break;
3700case 101:return 123;
3701break;
3702case 102:return 68;
3703break;
3704case 103:return 57;
3705break;
3706case 104:return 58;
3707break;
3708case 105:return 40;
3709break;
3710case 106:return 41;
3711break;
3712case 107:return 71
3713break;
3714case 108:return 72
3715break;
3716case 109:return 133;
3717break;
3718case 110:return 21;
3719break;
3720case 111:return 22;
3721break;
3722case 112:return 23;
3723break;
3724}
3725},
3726rules: [/^(?:%%\{)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)[^\n]*)/,/^(?:[^\}]%%[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?: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)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\[)/,/^(?:\]\))/,/^(?:\[\[)/,/^(?:\]\])/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\])/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:-)/,/^(?:\.)/,/^(?:[\_])/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\])/,/^(?:\[\/)/,/^(?:\/\])/,/^(?:\[\\)/,/^(?:[!"#$%&'*+,-.`?\\_/])/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],
3727conditions: {"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":[30,31],"inclusive":false},"callbackname":{"rules":[27,28,29],"inclusive":false},"href":{"rules":[24,25],"inclusive":false},"click":{"rules":[33,34],"inclusive":false},"vertex":{"rules":[],"inclusive":false},"dir":{"rules":[43,44,45,46,47,48,49,50,51,52,53],"inclusive":false},"acc_descr_multiline":{"rules":[12,13],"inclusive":false},"acc_descr":{"rules":[10],"inclusive":false},"acc_title":{"rules":[8],"inclusive":false},"string":{"rules":[15,16],"inclusive":false},"INITIAL":{"rules":[0,5,6,7,9,11,14,17,18,19,20,21,22,23,26,32,35,36,37,38,39,40,41,42,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],"inclusive":true}}
3728});
3729return lexer;
3730})();
3731parser.lexer = lexer;
3732function Parser () {
3733 this.yy = {};
3734}
3735Parser.prototype = parser;parser.Parser = Parser;
3736return new Parser;
3737})();
3738
3739
3740if (true) {
3741exports.parser = parser;
3742exports.Parser = parser.Parser;
3743exports.parse = function () { return parser.parse.apply(parser, arguments); };
3744exports.main = function commonjsMain (args) {
3745 if (!args[1]) {
3746 console.log('Usage: '+args[0]+' FILE');
3747 process.exit(1);
3748 }
3749 var source = (__webpack_require__(/*! fs */ "?dbae").readFileSync)((__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize)(args[1]), "utf8");
3750 return exports.parser.parse(source);
3751};
3752if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
3753 exports.main(process.argv.slice(1));
3754}
3755}
3756
3757/***/ }),
3758
3759/***/ "./src/diagrams/gantt/parser/gantt.jison":
3760/*!***********************************************!*\
3761 !*** ./src/diagrams/gantt/parser/gantt.jison ***!
3762 \***********************************************/
3763/***/ ((module, exports, __webpack_require__) => {
3764
3765/* module decorator */ module = __webpack_require__.nmd(module);
3766/* parser generated by jison 0.4.18 */
3767/*
3768 Returns a Parser object of the following structure:
3769
3770 Parser: {
3771 yy: {}
3772 }
3773
3774 Parser.prototype: {
3775 yy: {},
3776 trace: function(),
3777 symbols_: {associative list: name ==> number},
3778 terminals_: {associative list: number ==> name},
3779 productions_: [...],
3780 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
3781 table: [...],
3782 defaultActions: {...},
3783 parseError: function(str, hash),
3784 parse: function(input),
3785
3786 lexer: {
3787 EOF: 1,
3788 parseError: function(str, hash),
3789 setInput: function(input),
3790 input: function(),
3791 unput: function(str),
3792 more: function(),
3793 less: function(n),
3794 pastInput: function(),
3795 upcomingInput: function(),
3796 showPosition: function(),
3797 test_match: function(regex_match_array, rule_index),
3798 next: function(),
3799 lex: function(),
3800 begin: function(condition),
3801 popState: function(),
3802 _currentRules: function(),
3803 topState: function(),
3804 pushState: function(condition),
3805
3806 options: {
3807 ranges: boolean (optional: true ==> token location info will include a .range[] member)
3808 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
3809 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)
3810 },
3811
3812 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
3813 rules: [...],
3814 conditions: {associative list: name ==> set},
3815 }
3816 }
3817
3818
3819 token location info (@$, _$, etc.): {
3820 first_line: n,
3821 last_line: n,
3822 first_column: n,
3823 last_column: n,
3824 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
3825 }
3826
3827
3828 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
3829 text: (matched text)
3830 token: (the produced terminal token, if any)
3831 line: (yylineno)
3832 }
3833 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
3834 loc: (yylloc)
3835 expected: (string describing the set of expected tokens)
3836 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
3837 }
3838*/
3839var parser = (function(){
3840var 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,19,20,22,24,25,27,34,39],$V3=[1,15],$V4=[1,16],$V5=[1,17],$V6=[1,18],$V7=[1,19],$V8=[1,20],$V9=[1,21],$Va=[1,22],$Vb=[1,23],$Vc=[1,24],$Vd=[1,25],$Ve=[1,26],$Vf=[1,28],$Vg=[1,30],$Vh=[1,33],$Vi=[5,7,9,11,12,13,14,15,16,17,18,19,20,22,24,25,27,34,39];
3841var parser = {trace: function trace () { },
3842yy: {},
3843symbols_: {"error":2,"start":3,"directive":4,"gantt":5,"document":6,"EOF":7,"line":8,"SPACE":9,"statement":10,"NL":11,"dateFormat":12,"inclusiveEndDates":13,"topAxis":14,"axisFormat":15,"excludes":16,"includes":17,"todayMarker":18,"title":19,"acc_title":20,"acc_title_value":21,"acc_descr":22,"acc_descr_value":23,"acc_descr_multiline_value":24,"section":25,"clickStatement":26,"taskTxt":27,"taskData":28,"openDirective":29,"typeDirective":30,"closeDirective":31,":":32,"argDirective":33,"click":34,"callbackname":35,"callbackargs":36,"href":37,"clickStatementDebug":38,"open_directive":39,"type_directive":40,"arg_directive":41,"close_directive":42,"$accept":0,"$end":1},
3844terminals_: {2:"error",5:"gantt",7:"EOF",9:"SPACE",11:"NL",12:"dateFormat",13:"inclusiveEndDates",14:"topAxis",15:"axisFormat",16:"excludes",17:"includes",18:"todayMarker",19:"title",20:"acc_title",21:"acc_title_value",22:"acc_descr",23:"acc_descr_value",24:"acc_descr_multiline_value",25:"section",27:"taskTxt",28:"taskData",32:":",34:"click",35:"callbackname",36:"callbackargs",37:"href",39:"open_directive",40:"type_directive",41:"arg_directive",42:"close_directive"},
3845productions_: [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,2],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[26,2],[26,3],[26,3],[26,4],[26,3],[26,4],[26,2],[38,2],[38,3],[38,3],[38,4],[38,3],[38,4],[38,2],[29,1],[30,1],[33,1],[31,1]],
3846performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
3847/* this == yyval */
3848
3849var $0 = $$.length - 1;
3850switch (yystate) {
3851case 2:
3852 return $$[$0-1];
3853break;
3854case 3:
3855 this.$ = []
3856break;
3857case 4:
3858$$[$0-1].push($$[$0]);this.$ = $$[$0-1]
3859break;
3860case 5: case 6:
3861 this.$ = $$[$0]
3862break;
3863case 7: case 8:
3864 this.$=[];
3865break;
3866case 9:
3867yy.setDateFormat($$[$0].substr(11));this.$=$$[$0].substr(11);
3868break;
3869case 10:
3870yy.enableInclusiveEndDates();this.$=$$[$0].substr(18);
3871break;
3872case 11:
3873yy.TopAxis();this.$=$$[$0].substr(8);
3874break;
3875case 12:
3876yy.setAxisFormat($$[$0].substr(11));this.$=$$[$0].substr(11);
3877break;
3878case 13:
3879yy.setExcludes($$[$0].substr(9));this.$=$$[$0].substr(9);
3880break;
3881case 14:
3882yy.setIncludes($$[$0].substr(9));this.$=$$[$0].substr(9);
3883break;
3884case 15:
3885yy.setTodayMarker($$[$0].substr(12));this.$=$$[$0].substr(12);
3886break;
3887case 16:
3888yy.setDiagramTitle($$[$0].substr(6));this.$=$$[$0].substr(6);
3889break;
3890case 17:
3891 this.$=$$[$0].trim();yy.setAccTitle(this.$);
3892break;
3893case 18: case 19:
3894 this.$=$$[$0].trim();yy.setAccDescription(this.$);
3895break;
3896case 20:
3897yy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);
3898break;
3899case 22:
3900yy.addTask($$[$0-1],$$[$0]);this.$='task';
3901break;
3902case 26:
3903this.$ = $$[$0-1];yy.setClickEvent($$[$0-1], $$[$0], null);
3904break;
3905case 27:
3906this.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);
3907break;
3908case 28:
3909this.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], null);yy.setLink($$[$0-2],$$[$0]);
3910break;
3911case 29:
3912this.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-2], $$[$0-1]);yy.setLink($$[$0-3],$$[$0]);
3913break;
3914case 30:
3915this.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0], null);yy.setLink($$[$0-2],$$[$0-1]);
3916break;
3917case 31:
3918this.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-1], $$[$0]);yy.setLink($$[$0-3],$$[$0-2]);
3919break;
3920case 32:
3921this.$ = $$[$0-1];yy.setLink($$[$0-1], $$[$0]);
3922break;
3923case 33: case 39:
3924this.$=$$[$0-1] + ' ' + $$[$0];
3925break;
3926case 34: case 35: case 37:
3927this.$=$$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0];
3928break;
3929case 36: case 38:
3930this.$=$$[$0-3] + ' ' + $$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0];
3931break;
3932case 40:
3933 yy.parseDirective('%%{', 'open_directive');
3934break;
3935case 41:
3936 yy.parseDirective($$[$0], 'type_directive');
3937break;
3938case 42:
3939 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
3940break;
3941case 43:
3942 yy.parseDirective('}%%', 'close_directive', 'gantt');
3943break;
3944}
3945},
3946table: [{3:1,4:2,5:$V0,29:4,39:$V1},{1:[3]},{3:6,4:2,5:$V0,29:4,39:$V1},o($V2,[2,3],{6:7}),{30:8,40:[1,9]},{40:[2,40]},{1:[2,1]},{4:29,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:$Va,20:$Vb,22:$Vc,24:$Vd,25:$Ve,26:27,27:$Vf,29:4,34:$Vg,39:$V1},{31:31,32:[1,32],42:$Vh},o([32,42],[2,41]),o($V2,[2,8],{1:[2,2]}),o($V2,[2,4]),{4:29,10:34,12:$V3,13:$V4,14:$V5,15:$V6,16:$V7,17:$V8,18:$V9,19:$Va,20:$Vb,22:$Vc,24:$Vd,25:$Ve,26:27,27:$Vf,29:4,34:$Vg,39:$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,35]},{23:[1,36]},o($V2,[2,19]),o($V2,[2,20]),o($V2,[2,21]),{28:[1,37]},o($V2,[2,23]),{35:[1,38],37:[1,39]},{11:[1,40]},{33:41,41:[1,42]},{11:[2,43]},o($V2,[2,5]),o($V2,[2,17]),o($V2,[2,18]),o($V2,[2,22]),o($V2,[2,26],{36:[1,43],37:[1,44]}),o($V2,[2,32],{35:[1,45]}),o($Vi,[2,24]),{31:46,42:$Vh},{42:[2,42]},o($V2,[2,27],{37:[1,47]}),o($V2,[2,28]),o($V2,[2,30],{36:[1,48]}),{11:[1,49]},o($V2,[2,29]),o($V2,[2,31]),o($Vi,[2,25])],
3947defaultActions: {5:[2,40],6:[2,1],33:[2,43],42:[2,42]},
3948parseError: function parseError (str, hash) {
3949 if (hash.recoverable) {
3950 this.trace(str);
3951 } else {
3952 var error = new Error(str);
3953 error.hash = hash;
3954 throw error;
3955 }
3956},
3957parse: function parse(input) {
3958 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
3959 var args = lstack.slice.call(arguments, 1);
3960 var lexer = Object.create(this.lexer);
3961 var sharedState = { yy: {} };
3962 for (var k in this.yy) {
3963 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
3964 sharedState.yy[k] = this.yy[k];
3965 }
3966 }
3967 lexer.setInput(input, sharedState.yy);
3968 sharedState.yy.lexer = lexer;
3969 sharedState.yy.parser = this;
3970 if (typeof lexer.yylloc == 'undefined') {
3971 lexer.yylloc = {};
3972 }
3973 var yyloc = lexer.yylloc;
3974 lstack.push(yyloc);
3975 var ranges = lexer.options && lexer.options.ranges;
3976 if (typeof sharedState.yy.parseError === 'function') {
3977 this.parseError = sharedState.yy.parseError;
3978 } else {
3979 this.parseError = Object.getPrototypeOf(this).parseError;
3980 }
3981 function popStack(n) {
3982 stack.length = stack.length - 2 * n;
3983 vstack.length = vstack.length - n;
3984 lstack.length = lstack.length - n;
3985 }
3986 function lex() {
3987 var token;
3988 token = tstack.pop() || lexer.lex() || EOF;
3989 if (typeof token !== 'number') {
3990 if (token instanceof Array) {
3991 tstack = token;
3992 token = tstack.pop();
3993 }
3994 token = self.symbols_[token] || token;
3995 }
3996 return token;
3997 }
3998 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
3999 while (true) {
4000 state = stack[stack.length - 1];
4001 if (this.defaultActions[state]) {
4002 action = this.defaultActions[state];
4003 } else {
4004 if (symbol === null || typeof symbol == 'undefined') {
4005 symbol = lex();
4006 }
4007 action = table[state] && table[state][symbol];
4008 }
4009 if (typeof action === 'undefined' || !action.length || !action[0]) {
4010 var errStr = '';
4011 expected = [];
4012 for (p in table[state]) {
4013 if (this.terminals_[p] && p > TERROR) {
4014 expected.push('\'' + this.terminals_[p] + '\'');
4015 }
4016 }
4017 if (lexer.showPosition) {
4018 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
4019 } else {
4020 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
4021 }
4022 this.parseError(errStr, {
4023 text: lexer.match,
4024 token: this.terminals_[symbol] || symbol,
4025 line: lexer.yylineno,
4026 loc: yyloc,
4027 expected: expected
4028 });
4029 }
4030 if (action[0] instanceof Array && action.length > 1) {
4031 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
4032 }
4033 switch (action[0]) {
4034 case 1:
4035 stack.push(symbol);
4036 vstack.push(lexer.yytext);
4037 lstack.push(lexer.yylloc);
4038 stack.push(action[1]);
4039 symbol = null;
4040 if (!preErrorSymbol) {
4041 yyleng = lexer.yyleng;
4042 yytext = lexer.yytext;
4043 yylineno = lexer.yylineno;
4044 yyloc = lexer.yylloc;
4045 if (recovering > 0) {
4046 recovering--;
4047 }
4048 } else {
4049 symbol = preErrorSymbol;
4050 preErrorSymbol = null;
4051 }
4052 break;
4053 case 2:
4054 len = this.productions_[action[1]][1];
4055 yyval.$ = vstack[vstack.length - len];
4056 yyval._$ = {
4057 first_line: lstack[lstack.length - (len || 1)].first_line,
4058 last_line: lstack[lstack.length - 1].last_line,
4059 first_column: lstack[lstack.length - (len || 1)].first_column,
4060 last_column: lstack[lstack.length - 1].last_column
4061 };
4062 if (ranges) {
4063 yyval._$.range = [
4064 lstack[lstack.length - (len || 1)].range[0],
4065 lstack[lstack.length - 1].range[1]
4066 ];
4067 }
4068 r = this.performAction.apply(yyval, [
4069 yytext,
4070 yyleng,
4071 yylineno,
4072 sharedState.yy,
4073 action[1],
4074 vstack,
4075 lstack
4076 ].concat(args));
4077 if (typeof r !== 'undefined') {
4078 return r;
4079 }
4080 if (len) {
4081 stack = stack.slice(0, -1 * len * 2);
4082 vstack = vstack.slice(0, -1 * len);
4083 lstack = lstack.slice(0, -1 * len);
4084 }
4085 stack.push(this.productions_[action[1]][0]);
4086 vstack.push(yyval.$);
4087 lstack.push(yyval._$);
4088 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
4089 stack.push(newState);
4090 break;
4091 case 3:
4092 return true;
4093 }
4094 }
4095 return true;
4096}};
4097
4098/* generated by jison-lex 0.3.4 */
4099var lexer = (function(){
4100var lexer = ({
4101
4102EOF:1,
4103
4104parseError:function parseError(str, hash) {
4105 if (this.yy.parser) {
4106 this.yy.parser.parseError(str, hash);
4107 } else {
4108 throw new Error(str);
4109 }
4110 },
4111
4112// resets the lexer, sets new input
4113setInput:function (input, yy) {
4114 this.yy = yy || this.yy || {};
4115 this._input = input;
4116 this._more = this._backtrack = this.done = false;
4117 this.yylineno = this.yyleng = 0;
4118 this.yytext = this.matched = this.match = '';
4119 this.conditionStack = ['INITIAL'];
4120 this.yylloc = {
4121 first_line: 1,
4122 first_column: 0,
4123 last_line: 1,
4124 last_column: 0
4125 };
4126 if (this.options.ranges) {
4127 this.yylloc.range = [0,0];
4128 }
4129 this.offset = 0;
4130 return this;
4131 },
4132
4133// consumes and returns one char from the input
4134input:function () {
4135 var ch = this._input[0];
4136 this.yytext += ch;
4137 this.yyleng++;
4138 this.offset++;
4139 this.match += ch;
4140 this.matched += ch;
4141 var lines = ch.match(/(?:\r\n?|\n).*/g);
4142 if (lines) {
4143 this.yylineno++;
4144 this.yylloc.last_line++;
4145 } else {
4146 this.yylloc.last_column++;
4147 }
4148 if (this.options.ranges) {
4149 this.yylloc.range[1]++;
4150 }
4151
4152 this._input = this._input.slice(1);
4153 return ch;
4154 },
4155
4156// unshifts one char (or a string) into the input
4157unput:function (ch) {
4158 var len = ch.length;
4159 var lines = ch.split(/(?:\r\n?|\n)/g);
4160
4161 this._input = ch + this._input;
4162 this.yytext = this.yytext.substr(0, this.yytext.length - len);
4163 //this.yyleng -= len;
4164 this.offset -= len;
4165 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
4166 this.match = this.match.substr(0, this.match.length - 1);
4167 this.matched = this.matched.substr(0, this.matched.length - 1);
4168
4169 if (lines.length - 1) {
4170 this.yylineno -= lines.length - 1;
4171 }
4172 var r = this.yylloc.range;
4173
4174 this.yylloc = {
4175 first_line: this.yylloc.first_line,
4176 last_line: this.yylineno + 1,
4177 first_column: this.yylloc.first_column,
4178 last_column: lines ?
4179 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
4180 + oldLines[oldLines.length - lines.length].length - lines[0].length :
4181 this.yylloc.first_column - len
4182 };
4183
4184 if (this.options.ranges) {
4185 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
4186 }
4187 this.yyleng = this.yytext.length;
4188 return this;
4189 },
4190
4191// When called from action, caches matched text and appends it on next action
4192more:function () {
4193 this._more = true;
4194 return this;
4195 },
4196
4197// 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.
4198reject:function () {
4199 if (this.options.backtrack_lexer) {
4200 this._backtrack = true;
4201 } else {
4202 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(), {
4203 text: "",
4204 token: null,
4205 line: this.yylineno
4206 });
4207
4208 }
4209 return this;
4210 },
4211
4212// retain first n characters of the match
4213less:function (n) {
4214 this.unput(this.match.slice(n));
4215 },
4216
4217// displays already matched input, i.e. for error messages
4218pastInput:function () {
4219 var past = this.matched.substr(0, this.matched.length - this.match.length);
4220 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
4221 },
4222
4223// displays upcoming input, i.e. for error messages
4224upcomingInput:function () {
4225 var next = this.match;
4226 if (next.length < 20) {
4227 next += this._input.substr(0, 20-next.length);
4228 }
4229 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
4230 },
4231
4232// displays the character position where the lexing error occurred, i.e. for error messages
4233showPosition:function () {
4234 var pre = this.pastInput();
4235 var c = new Array(pre.length + 1).join("-");
4236 return pre + this.upcomingInput() + "\n" + c + "^";
4237 },
4238
4239// test the lexed token: return FALSE when not a match, otherwise return token
4240test_match:function(match, indexed_rule) {
4241 var token,
4242 lines,
4243 backup;
4244
4245 if (this.options.backtrack_lexer) {
4246 // save context
4247 backup = {
4248 yylineno: this.yylineno,
4249 yylloc: {
4250 first_line: this.yylloc.first_line,
4251 last_line: this.last_line,
4252 first_column: this.yylloc.first_column,
4253 last_column: this.yylloc.last_column
4254 },
4255 yytext: this.yytext,
4256 match: this.match,
4257 matches: this.matches,
4258 matched: this.matched,
4259 yyleng: this.yyleng,
4260 offset: this.offset,
4261 _more: this._more,
4262 _input: this._input,
4263 yy: this.yy,
4264 conditionStack: this.conditionStack.slice(0),
4265 done: this.done
4266 };
4267 if (this.options.ranges) {
4268 backup.yylloc.range = this.yylloc.range.slice(0);
4269 }
4270 }
4271
4272 lines = match[0].match(/(?:\r\n?|\n).*/g);
4273 if (lines) {
4274 this.yylineno += lines.length;
4275 }
4276 this.yylloc = {
4277 first_line: this.yylloc.last_line,
4278 last_line: this.yylineno + 1,
4279 first_column: this.yylloc.last_column,
4280 last_column: lines ?
4281 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
4282 this.yylloc.last_column + match[0].length
4283 };
4284 this.yytext += match[0];
4285 this.match += match[0];
4286 this.matches = match;
4287 this.yyleng = this.yytext.length;
4288 if (this.options.ranges) {
4289 this.yylloc.range = [this.offset, this.offset += this.yyleng];
4290 }
4291 this._more = false;
4292 this._backtrack = false;
4293 this._input = this._input.slice(match[0].length);
4294 this.matched += match[0];
4295 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
4296 if (this.done && this._input) {
4297 this.done = false;
4298 }
4299 if (token) {
4300 return token;
4301 } else if (this._backtrack) {
4302 // recover context
4303 for (var k in backup) {
4304 this[k] = backup[k];
4305 }
4306 return false; // rule action called reject() implying the next rule should be tested instead.
4307 }
4308 return false;
4309 },
4310
4311// return next match in input
4312next:function () {
4313 if (this.done) {
4314 return this.EOF;
4315 }
4316 if (!this._input) {
4317 this.done = true;
4318 }
4319
4320 var token,
4321 match,
4322 tempMatch,
4323 index;
4324 if (!this._more) {
4325 this.yytext = '';
4326 this.match = '';
4327 }
4328 var rules = this._currentRules();
4329 for (var i = 0; i < rules.length; i++) {
4330 tempMatch = this._input.match(this.rules[rules[i]]);
4331 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
4332 match = tempMatch;
4333 index = i;
4334 if (this.options.backtrack_lexer) {
4335 token = this.test_match(tempMatch, rules[i]);
4336 if (token !== false) {
4337 return token;
4338 } else if (this._backtrack) {
4339 match = false;
4340 continue; // rule action called reject() implying a rule MISmatch.
4341 } else {
4342 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
4343 return false;
4344 }
4345 } else if (!this.options.flex) {
4346 break;
4347 }
4348 }
4349 }
4350 if (match) {
4351 token = this.test_match(match, rules[index]);
4352 if (token !== false) {
4353 return token;
4354 }
4355 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
4356 return false;
4357 }
4358 if (this._input === "") {
4359 return this.EOF;
4360 } else {
4361 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
4362 text: "",
4363 token: null,
4364 line: this.yylineno
4365 });
4366 }
4367 },
4368
4369// return next match that has a token
4370lex:function lex () {
4371 var r = this.next();
4372 if (r) {
4373 return r;
4374 } else {
4375 return this.lex();
4376 }
4377 },
4378
4379// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
4380begin:function begin (condition) {
4381 this.conditionStack.push(condition);
4382 },
4383
4384// pop the previously active lexer condition state off the condition stack
4385popState:function popState () {
4386 var n = this.conditionStack.length - 1;
4387 if (n > 0) {
4388 return this.conditionStack.pop();
4389 } else {
4390 return this.conditionStack[0];
4391 }
4392 },
4393
4394// produce the lexer rule set which is active for the currently active lexer condition state
4395_currentRules:function _currentRules () {
4396 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
4397 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
4398 } else {
4399 return this.conditions["INITIAL"].rules;
4400 }
4401 },
4402
4403// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
4404topState:function topState (n) {
4405 n = this.conditionStack.length - 1 - Math.abs(n || 0);
4406 if (n >= 0) {
4407 return this.conditionStack[n];
4408 } else {
4409 return "INITIAL";
4410 }
4411 },
4412
4413// alias for begin(condition)
4414pushState:function pushState (condition) {
4415 this.begin(condition);
4416 },
4417
4418// return the number of states currently on the stack
4419stateStackSize:function stateStackSize() {
4420 return this.conditionStack.length;
4421 },
4422options: {"case-insensitive":true},
4423performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
4424var YYSTATE=YY_START;
4425switch($avoiding_name_collisions) {
4426case 0: this.begin('open_directive'); return 39;
4427break;
4428case 1: this.begin('type_directive'); return 40;
4429break;
4430case 2: this.popState(); this.begin('arg_directive'); return 32;
4431break;
4432case 3: this.popState(); this.popState(); return 42;
4433break;
4434case 4:return 41;
4435break;
4436case 5: this.begin("acc_title");return 20;
4437break;
4438case 6: this.popState(); return "acc_title_value";
4439break;
4440case 7: this.begin("acc_descr");return 22;
4441break;
4442case 8: this.popState(); return "acc_descr_value";
4443break;
4444case 9: this.begin("acc_descr_multiline");
4445break;
4446case 10: this.popState();
4447break;
4448case 11:return "acc_descr_multiline_value";
4449break;
4450case 12:/* skip comments */
4451break;
4452case 13:/* skip comments */
4453break;
4454case 14:/* do nothing */
4455break;
4456case 15:return 11;
4457break;
4458case 16:/* skip whitespace */
4459break;
4460case 17:/* skip comments */
4461break;
4462case 18:/* skip comments */
4463break;
4464case 19:this.begin("href");
4465break;
4466case 20:this.popState();
4467break;
4468case 21:return 37;
4469break;
4470case 22:this.begin("callbackname");
4471break;
4472case 23:this.popState();
4473break;
4474case 24:this.popState(); this.begin("callbackargs");
4475break;
4476case 25:return 35;
4477break;
4478case 26:this.popState();
4479break;
4480case 27:return 36;
4481break;
4482case 28:this.begin("click");
4483break;
4484case 29:this.popState();
4485break;
4486case 30:return 34;
4487break;
4488case 31:return 5;
4489break;
4490case 32:return 12;
4491break;
4492case 33:return 13;
4493break;
4494case 34:return 14;
4495break;
4496case 35:return 15;
4497break;
4498case 36:return 17;
4499break;
4500case 37:return 16;
4501break;
4502case 38:return 18;
4503break;
4504case 39:return 'date';
4505break;
4506case 40:return 19;
4507break;
4508case 41:return 'accDescription'
4509break;
4510case 42:return 25;
4511break;
4512case 43:return 27;
4513break;
4514case 44:return 28;
4515break;
4516case 45:return 32;
4517break;
4518case 46:return 7;
4519break;
4520case 47:return 'INVALID';
4521break;
4522}
4523},
4524rules: [/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/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,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:includes\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,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],
4525conditions: {"acc_descr_multiline":{"rules":[10,11],"inclusive":false},"acc_descr":{"rules":[8],"inclusive":false},"acc_title":{"rules":[6],"inclusive":false},"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":[26,27],"inclusive":false},"callbackname":{"rules":[23,24,25],"inclusive":false},"href":{"rules":[20,21],"inclusive":false},"click":{"rules":[29,30],"inclusive":false},"INITIAL":{"rules":[0,5,7,9,12,13,14,15,16,17,18,19,22,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"inclusive":true}}
4526});
4527return lexer;
4528})();
4529parser.lexer = lexer;
4530function Parser () {
4531 this.yy = {};
4532}
4533Parser.prototype = parser;parser.Parser = Parser;
4534return new Parser;
4535})();
4536
4537
4538if (true) {
4539exports.parser = parser;
4540exports.Parser = parser.Parser;
4541exports.parse = function () { return parser.parse.apply(parser, arguments); };
4542exports.main = function commonjsMain (args) {
4543 if (!args[1]) {
4544 console.log('Usage: '+args[0]+' FILE');
4545 process.exit(1);
4546 }
4547 var source = (__webpack_require__(/*! fs */ "?8ed1").readFileSync)((__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize)(args[1]), "utf8");
4548 return exports.parser.parse(source);
4549};
4550if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
4551 exports.main(process.argv.slice(1));
4552}
4553}
4554
4555/***/ }),
4556
4557/***/ "./src/diagrams/git/parser/gitGraph.jison":
4558/*!************************************************!*\
4559 !*** ./src/diagrams/git/parser/gitGraph.jison ***!
4560 \************************************************/
4561/***/ ((module, exports, __webpack_require__) => {
4562
4563/* module decorator */ module = __webpack_require__.nmd(module);
4564/* parser generated by jison 0.4.18 */
4565/*
4566 Returns a Parser object of the following structure:
4567
4568 Parser: {
4569 yy: {}
4570 }
4571
4572 Parser.prototype: {
4573 yy: {},
4574 trace: function(),
4575 symbols_: {associative list: name ==> number},
4576 terminals_: {associative list: number ==> name},
4577 productions_: [...],
4578 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
4579 table: [...],
4580 defaultActions: {...},
4581 parseError: function(str, hash),
4582 parse: function(input),
4583
4584 lexer: {
4585 EOF: 1,
4586 parseError: function(str, hash),
4587 setInput: function(input),
4588 input: function(),
4589 unput: function(str),
4590 more: function(),
4591 less: function(n),
4592 pastInput: function(),
4593 upcomingInput: function(),
4594 showPosition: function(),
4595 test_match: function(regex_match_array, rule_index),
4596 next: function(),
4597 lex: function(),
4598 begin: function(condition),
4599 popState: function(),
4600 _currentRules: function(),
4601 topState: function(),
4602 pushState: function(condition),
4603
4604 options: {
4605 ranges: boolean (optional: true ==> token location info will include a .range[] member)
4606 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
4607 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)
4608 },
4609
4610 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
4611 rules: [...],
4612 conditions: {associative list: name ==> set},
4613 }
4614 }
4615
4616
4617 token location info (@$, _$, etc.): {
4618 first_line: n,
4619 last_line: n,
4620 first_column: n,
4621 last_column: n,
4622 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
4623 }
4624
4625
4626 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
4627 text: (matched text)
4628 token: (the produced terminal token, if any)
4629 line: (yylineno)
4630 }
4631 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
4632 loc: (yylloc)
4633 expected: (string describing the set of expected tokens)
4634 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
4635 }
4636*/
4637var parser = (function(){
4638var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,4],$V1=[1,7],$V2=[1,5],$V3=[1,9],$V4=[1,6],$V5=[2,6],$V6=[1,16],$V7=[6,8,14,20,22,24,25,27,29,32,35,37,49,53],$V8=[8,14,20,22,24,25,27,29,32,35,37],$V9=[8,13,14,20,22,24,25,27,29,32,35,37],$Va=[1,26],$Vb=[6,8,14,49,53],$Vc=[8,14,53],$Vd=[1,64],$Ve=[1,65],$Vf=[1,66],$Vg=[8,14,33,36,41,53];
4639var parser = {trace: function trace () { },
4640yy: {},
4641symbols_: {"error":2,"start":3,"eol":4,"directive":5,"GG":6,"document":7,"EOF":8,":":9,"DIR":10,"options":11,"body":12,"OPT":13,"NL":14,"line":15,"statement":16,"commitStatement":17,"mergeStatement":18,"cherryPickStatement":19,"acc_title":20,"acc_title_value":21,"acc_descr":22,"acc_descr_value":23,"acc_descr_multiline_value":24,"section":25,"branchStatement":26,"CHECKOUT":27,"ID":28,"BRANCH":29,"ORDER":30,"NUM":31,"CHERRY_PICK":32,"COMMIT_ID":33,"STR":34,"MERGE":35,"COMMIT_TAG":36,"COMMIT":37,"commit_arg":38,"COMMIT_TYPE":39,"commitType":40,"COMMIT_MSG":41,"NORMAL":42,"REVERSE":43,"HIGHLIGHT":44,"openDirective":45,"typeDirective":46,"closeDirective":47,"argDirective":48,"open_directive":49,"type_directive":50,"arg_directive":51,"close_directive":52,";":53,"$accept":0,"$end":1},
4642terminals_: {2:"error",6:"GG",8:"EOF",9:":",10:"DIR",13:"OPT",14:"NL",20:"acc_title",21:"acc_title_value",22:"acc_descr",23:"acc_descr_value",24:"acc_descr_multiline_value",25:"section",27:"CHECKOUT",28:"ID",29:"BRANCH",30:"ORDER",31:"NUM",32:"CHERRY_PICK",33:"COMMIT_ID",34:"STR",35:"MERGE",36:"COMMIT_TAG",37:"COMMIT",39:"COMMIT_TYPE",41:"COMMIT_MSG",42:"NORMAL",43:"REVERSE",44:"HIGHLIGHT",49:"open_directive",50:"type_directive",51:"arg_directive",52:"close_directive",53:";"},
4643productions_: [0,[3,2],[3,2],[3,3],[3,4],[3,5],[7,0],[7,2],[11,2],[11,1],[12,0],[12,2],[15,2],[15,1],[16,1],[16,1],[16,1],[16,2],[16,2],[16,1],[16,1],[16,1],[16,2],[26,2],[26,4],[19,3],[18,2],[18,4],[17,2],[17,3],[17,3],[17,5],[17,5],[17,3],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,3],[17,5],[17,5],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[38,0],[38,1],[40,1],[40,1],[40,1],[5,3],[5,5],[45,1],[46,1],[48,1],[47,1],[4,1],[4,1],[4,1]],
4644performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
4645/* this == yyval */
4646
4647var $0 = $$.length - 1;
4648switch (yystate) {
4649case 3:
4650 return $$[$0];
4651break;
4652case 4:
4653 return $$[$0-1];
4654break;
4655case 5:
4656yy.setDirection($$[$0-3]); return $$[$0-1];
4657break;
4658case 7:
4659 yy.setOptions($$[$0-1]); this.$ = $$[$0]
4660break;
4661case 8:
4662$$[$0-1] +=$$[$0]; this.$=$$[$0-1]
4663break;
4664case 10:
4665this.$ = []
4666break;
4667case 11:
4668$$[$0-1].push($$[$0]); this.$=$$[$0-1];
4669break;
4670case 12:
4671this.$ =$$[$0-1]
4672break;
4673case 17:
4674 this.$=$$[$0].trim();yy.setAccTitle(this.$);
4675break;
4676case 18: case 19:
4677 this.$=$$[$0].trim();yy.setAccDescription(this.$);
4678break;
4679case 20:
4680yy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);
4681break;
4682case 22:
4683yy.checkout($$[$0])
4684break;
4685case 23:
4686yy.branch($$[$0])
4687break;
4688case 24:
4689yy.branch($$[$0-2], $$[$0])
4690break;
4691case 25:
4692yy.cherryPick($$[$0])
4693break;
4694case 26:
4695yy.merge($$[$0])
4696break;
4697case 27:
4698yy.merge($$[$0-2], $$[$0])
4699break;
4700case 28:
4701yy.commit($$[$0])
4702break;
4703case 29:
4704yy.commit('','',yy.commitType.NORMAL,$$[$0])
4705break;
4706case 30:
4707yy.commit('','',$$[$0],'')
4708break;
4709case 31:
4710yy.commit('','',$$[$0],$$[$0-2])
4711break;
4712case 32:
4713yy.commit('','',$$[$0-2],$$[$0])
4714break;
4715case 33:
4716yy.commit('',$$[$0],yy.commitType.NORMAL,'')
4717break;
4718case 34:
4719yy.commit('',$$[$0-2],yy.commitType.NORMAL,$$[$0])
4720break;
4721case 35:
4722yy.commit('',$$[$0],yy.commitType.NORMAL,$$[$0-2])
4723break;
4724case 36:
4725yy.commit('',$$[$0-2],$$[$0],'')
4726break;
4727case 37:
4728yy.commit('',$$[$0],$$[$0-2],'')
4729break;
4730case 38:
4731yy.commit('',$$[$0-4],$$[$0-2],$$[$0])
4732break;
4733case 39:
4734yy.commit('',$$[$0-4],$$[$0],$$[$0-2])
4735break;
4736case 40:
4737yy.commit('',$$[$0-2],$$[$0-4],$$[$0])
4738break;
4739case 41:
4740yy.commit('',$$[$0],$$[$0-4],$$[$0-2])
4741break;
4742case 42:
4743yy.commit('',$$[$0],$$[$0-2],$$[$0-4])
4744break;
4745case 43:
4746yy.commit('',$$[$0-2],$$[$0],$$[$0-4])
4747break;
4748case 44:
4749yy.commit($$[$0],'',yy.commitType.NORMAL,'')
4750break;
4751case 45:
4752yy.commit($$[$0],'',yy.commitType.NORMAL,$$[$0-2])
4753break;
4754case 46:
4755yy.commit($$[$0-2],'',yy.commitType.NORMAL,$$[$0])
4756break;
4757case 47:
4758yy.commit($$[$0-2],'',$$[$0],'')
4759break;
4760case 48:
4761yy.commit($$[$0],'',$$[$0-2],'')
4762break;
4763case 49:
4764yy.commit($$[$0],$$[$0-2],yy.commitType.NORMAL,'')
4765break;
4766case 50:
4767yy.commit($$[$0-2],$$[$0],yy.commitType.NORMAL,'')
4768break;
4769case 51:
4770yy.commit($$[$0-4],'',$$[$0-2],$$[$0])
4771break;
4772case 52:
4773yy.commit($$[$0-4],'',$$[$0],$$[$0-2])
4774break;
4775case 53:
4776yy.commit($$[$0-2],'',$$[$0-4],$$[$0])
4777break;
4778case 54:
4779yy.commit($$[$0],'',$$[$0-4],$$[$0-2])
4780break;
4781case 55:
4782yy.commit($$[$0],'',$$[$0-2],$$[$0-4])
4783break;
4784case 56:
4785yy.commit($$[$0-2],'',$$[$0],$$[$0-4])
4786break;
4787case 57:
4788yy.commit($$[$0-4],$$[$0],$$[$0-2],'')
4789break;
4790case 58:
4791yy.commit($$[$0-4],$$[$0-2],$$[$0],'')
4792break;
4793case 59:
4794yy.commit($$[$0-2],$$[$0],$$[$0-4],'')
4795break;
4796case 60:
4797yy.commit($$[$0],$$[$0-2],$$[$0-4],'')
4798break;
4799case 61:
4800yy.commit($$[$0],$$[$0-4],$$[$0-2],'')
4801break;
4802case 62:
4803yy.commit($$[$0-2],$$[$0-4],$$[$0],'')
4804break;
4805case 63:
4806yy.commit($$[$0-4],$$[$0],yy.commitType.NORMAL,$$[$0-2])
4807break;
4808case 64:
4809yy.commit($$[$0-4],$$[$0-2],yy.commitType.NORMAL,$$[$0])
4810break;
4811case 65:
4812yy.commit($$[$0-2],$$[$0],yy.commitType.NORMAL,$$[$0-4])
4813break;
4814case 66:
4815yy.commit($$[$0],$$[$0-2],yy.commitType.NORMAL,$$[$0-4])
4816break;
4817case 67:
4818yy.commit($$[$0],$$[$0-4],yy.commitType.NORMAL,$$[$0-2])
4819break;
4820case 68:
4821yy.commit($$[$0-2],$$[$0-4],yy.commitType.NORMAL,$$[$0])
4822break;
4823case 69:
4824yy.commit($$[$0-6],$$[$0-4],$$[$0-2],$$[$0])
4825break;
4826case 70:
4827yy.commit($$[$0-6],$$[$0-4],$$[$0],$$[$0-2])
4828break;
4829case 71:
4830yy.commit($$[$0-6],$$[$0-2],$$[$0-4],$$[$0])
4831break;
4832case 72:
4833yy.commit($$[$0-6],$$[$0],$$[$0-4],$$[$0-2])
4834break;
4835case 73:
4836yy.commit($$[$0-6],$$[$0-2],$$[$0],$$[$0-4])
4837break;
4838case 74:
4839yy.commit($$[$0-6],$$[$0],$$[$0-2],$$[$0-4])
4840break;
4841case 75:
4842yy.commit($$[$0-4],$$[$0-6],$$[$0-2],$$[$0])
4843break;
4844case 76:
4845yy.commit($$[$0-4],$$[$0-6],$$[$0],$$[$0-2])
4846break;
4847case 77:
4848yy.commit($$[$0-2],$$[$0-6],$$[$0-4],$$[$0])
4849break;
4850case 78:
4851yy.commit($$[$0],$$[$0-6],$$[$0-4],$$[$0-2])
4852break;
4853case 79:
4854yy.commit($$[$0-2],$$[$0-6],$$[$0],$$[$0-4])
4855break;
4856case 80:
4857yy.commit($$[$0],$$[$0-6],$$[$0-2],$$[$0-4])
4858break;
4859case 81:
4860yy.commit($$[$0],$$[$0-4],$$[$0-2],$$[$0-6])
4861break;
4862case 82:
4863yy.commit($$[$0-2],$$[$0-4],$$[$0],$$[$0-6])
4864break;
4865case 83:
4866yy.commit($$[$0],$$[$0-2],$$[$0-4],$$[$0-6])
4867break;
4868case 84:
4869yy.commit($$[$0-2],$$[$0],$$[$0-4],$$[$0-6])
4870break;
4871case 85:
4872yy.commit($$[$0-4],$$[$0-2],$$[$0],$$[$0-6])
4873break;
4874case 86:
4875yy.commit($$[$0-4],$$[$0],$$[$0-2],$$[$0-6])
4876break;
4877case 87:
4878yy.commit($$[$0-2],$$[$0-4],$$[$0-6],$$[$0])
4879break;
4880case 88:
4881yy.commit($$[$0],$$[$0-4],$$[$0-6],$$[$0-2])
4882break;
4883case 89:
4884yy.commit($$[$0-2],$$[$0],$$[$0-6],$$[$0-4])
4885break;
4886case 90:
4887yy.commit($$[$0],$$[$0-2],$$[$0-6],$$[$0-4])
4888break;
4889case 91:
4890yy.commit($$[$0-4],$$[$0-2],$$[$0-6],$$[$0])
4891break;
4892case 92:
4893yy.commit($$[$0-4],$$[$0],$$[$0-6],$$[$0-2])
4894break;
4895case 93:
4896this.$ = ""
4897break;
4898case 94:
4899this.$=$$[$0]
4900break;
4901case 95:
4902 this.$=yy.commitType.NORMAL;
4903break;
4904case 96:
4905 this.$=yy.commitType.REVERSE;
4906break;
4907case 97:
4908 this.$=yy.commitType.HIGHLIGHT;
4909break;
4910case 100:
4911 yy.parseDirective('%%{', 'open_directive');
4912break;
4913case 101:
4914 yy.parseDirective($$[$0], 'type_directive');
4915break;
4916case 102:
4917 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
4918break;
4919case 103:
4920 yy.parseDirective('}%%', 'close_directive', 'gitGraph');
4921break;
4922}
4923},
4924table: [{3:1,4:2,5:3,6:$V0,8:$V1,14:$V2,45:8,49:$V3,53:$V4},{1:[3]},{3:10,4:2,5:3,6:$V0,8:$V1,14:$V2,45:8,49:$V3,53:$V4},{3:11,4:2,5:3,6:$V0,8:$V1,14:$V2,45:8,49:$V3,53:$V4},{7:12,8:$V5,9:[1,13],10:[1,14],11:15,14:$V6},o($V7,[2,104]),o($V7,[2,105]),o($V7,[2,106]),{46:17,50:[1,18]},{50:[2,100]},{1:[2,1]},{1:[2,2]},{8:[1,19]},{7:20,8:$V5,11:15,14:$V6},{9:[1,21]},o($V8,[2,10],{12:22,13:[1,23]}),o($V9,[2,9]),{9:[1,25],47:24,52:$Va},o([9,52],[2,101]),{1:[2,3]},{8:[1,27]},{7:28,8:$V5,11:15,14:$V6},{8:[2,7],14:[1,31],15:29,16:30,17:32,18:33,19:34,20:[1,35],22:[1,36],24:[1,37],25:[1,38],26:39,27:[1,40],29:[1,44],32:[1,43],35:[1,42],37:[1,41]},o($V9,[2,8]),o($Vb,[2,98]),{48:45,51:[1,46]},o($Vb,[2,103]),{1:[2,4]},{8:[1,47]},o($V8,[2,11]),{4:48,8:$V1,14:$V2,53:$V4},o($V8,[2,13]),o($Vc,[2,14]),o($Vc,[2,15]),o($Vc,[2,16]),{21:[1,49]},{23:[1,50]},o($Vc,[2,19]),o($Vc,[2,20]),o($Vc,[2,21]),{28:[1,51]},o($Vc,[2,93],{38:52,33:[1,55],34:[1,57],36:[1,53],39:[1,54],41:[1,56]}),{28:[1,58]},{33:[1,59]},{28:[1,60]},{47:61,52:$Va},{52:[2,102]},{1:[2,5]},o($V8,[2,12]),o($Vc,[2,17]),o($Vc,[2,18]),o($Vc,[2,22]),o($Vc,[2,28]),{34:[1,62]},{40:63,42:$Vd,43:$Ve,44:$Vf},{34:[1,67]},{34:[1,68]},o($Vc,[2,94]),o($Vc,[2,26],{36:[1,69]}),{34:[1,70]},o($Vc,[2,23],{30:[1,71]}),o($Vb,[2,99]),o($Vc,[2,29],{33:[1,73],39:[1,72],41:[1,74]}),o($Vc,[2,30],{33:[1,76],36:[1,75],41:[1,77]}),o($Vg,[2,95]),o($Vg,[2,96]),o($Vg,[2,97]),o($Vc,[2,33],{36:[1,78],39:[1,79],41:[1,80]}),o($Vc,[2,44],{33:[1,83],36:[1,81],39:[1,82]}),{34:[1,84]},o($Vc,[2,25]),{31:[1,85]},{40:86,42:$Vd,43:$Ve,44:$Vf},{34:[1,87]},{34:[1,88]},{34:[1,89]},{34:[1,90]},{34:[1,91]},{34:[1,92]},{40:93,42:$Vd,43:$Ve,44:$Vf},{34:[1,94]},{34:[1,95]},{40:96,42:$Vd,43:$Ve,44:$Vf},{34:[1,97]},o($Vc,[2,27]),o($Vc,[2,24]),o($Vc,[2,31],{33:[1,98],41:[1,99]}),o($Vc,[2,35],{39:[1,100],41:[1,101]}),o($Vc,[2,45],{33:[1,103],39:[1,102]}),o($Vc,[2,32],{33:[1,104],41:[1,105]}),o($Vc,[2,37],{36:[1,106],41:[1,107]}),o($Vc,[2,48],{33:[1,109],36:[1,108]}),o($Vc,[2,34],{39:[1,110],41:[1,111]}),o($Vc,[2,36],{36:[1,112],41:[1,113]}),o($Vc,[2,49],{36:[1,115],39:[1,114]}),o($Vc,[2,46],{33:[1,117],39:[1,116]}),o($Vc,[2,47],{33:[1,119],36:[1,118]}),o($Vc,[2,50],{36:[1,121],39:[1,120]}),{34:[1,122]},{34:[1,123]},{40:124,42:$Vd,43:$Ve,44:$Vf},{34:[1,125]},{40:126,42:$Vd,43:$Ve,44:$Vf},{34:[1,127]},{34:[1,128]},{34:[1,129]},{34:[1,130]},{34:[1,131]},{34:[1,132]},{34:[1,133]},{40:134,42:$Vd,43:$Ve,44:$Vf},{34:[1,135]},{34:[1,136]},{34:[1,137]},{40:138,42:$Vd,43:$Ve,44:$Vf},{34:[1,139]},{40:140,42:$Vd,43:$Ve,44:$Vf},{34:[1,141]},{34:[1,142]},{34:[1,143]},{40:144,42:$Vd,43:$Ve,44:$Vf},{34:[1,145]},o($Vc,[2,42],{41:[1,146]}),o($Vc,[2,55],{33:[1,147]}),o($Vc,[2,43],{41:[1,148]}),o($Vc,[2,66],{39:[1,149]}),o($Vc,[2,56],{33:[1,150]}),o($Vc,[2,65],{39:[1,151]}),o($Vc,[2,41],{41:[1,152]}),o($Vc,[2,54],{33:[1,153]}),o($Vc,[2,40],{41:[1,154]}),o($Vc,[2,60],{36:[1,155]}),o($Vc,[2,53],{33:[1,156]}),o($Vc,[2,59],{36:[1,157]}),o($Vc,[2,39],{41:[1,158]}),o($Vc,[2,67],{39:[1,159]}),o($Vc,[2,38],{41:[1,160]}),o($Vc,[2,61],{36:[1,161]}),o($Vc,[2,62],{36:[1,162]}),o($Vc,[2,68],{39:[1,163]}),o($Vc,[2,52],{33:[1,164]}),o($Vc,[2,63],{39:[1,165]}),o($Vc,[2,51],{33:[1,166]}),o($Vc,[2,57],{36:[1,167]}),o($Vc,[2,58],{36:[1,168]}),o($Vc,[2,64],{39:[1,169]}),{34:[1,170]},{34:[1,171]},{34:[1,172]},{40:173,42:$Vd,43:$Ve,44:$Vf},{34:[1,174]},{40:175,42:$Vd,43:$Ve,44:$Vf},{34:[1,176]},{34:[1,177]},{34:[1,178]},{34:[1,179]},{34:[1,180]},{34:[1,181]},{34:[1,182]},{40:183,42:$Vd,43:$Ve,44:$Vf},{34:[1,184]},{34:[1,185]},{34:[1,186]},{40:187,42:$Vd,43:$Ve,44:$Vf},{34:[1,188]},{40:189,42:$Vd,43:$Ve,44:$Vf},{34:[1,190]},{34:[1,191]},{34:[1,192]},{40:193,42:$Vd,43:$Ve,44:$Vf},o($Vc,[2,83]),o($Vc,[2,84]),o($Vc,[2,81]),o($Vc,[2,82]),o($Vc,[2,86]),o($Vc,[2,85]),o($Vc,[2,90]),o($Vc,[2,89]),o($Vc,[2,88]),o($Vc,[2,87]),o($Vc,[2,92]),o($Vc,[2,91]),o($Vc,[2,80]),o($Vc,[2,79]),o($Vc,[2,78]),o($Vc,[2,77]),o($Vc,[2,75]),o($Vc,[2,76]),o($Vc,[2,74]),o($Vc,[2,73]),o($Vc,[2,72]),o($Vc,[2,71]),o($Vc,[2,69]),o($Vc,[2,70])],
4925defaultActions: {9:[2,100],10:[2,1],11:[2,2],19:[2,3],27:[2,4],46:[2,102],47:[2,5]},
4926parseError: function parseError (str, hash) {
4927 if (hash.recoverable) {
4928 this.trace(str);
4929 } else {
4930 var error = new Error(str);
4931 error.hash = hash;
4932 throw error;
4933 }
4934},
4935parse: function parse(input) {
4936 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
4937 var args = lstack.slice.call(arguments, 1);
4938 var lexer = Object.create(this.lexer);
4939 var sharedState = { yy: {} };
4940 for (var k in this.yy) {
4941 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
4942 sharedState.yy[k] = this.yy[k];
4943 }
4944 }
4945 lexer.setInput(input, sharedState.yy);
4946 sharedState.yy.lexer = lexer;
4947 sharedState.yy.parser = this;
4948 if (typeof lexer.yylloc == 'undefined') {
4949 lexer.yylloc = {};
4950 }
4951 var yyloc = lexer.yylloc;
4952 lstack.push(yyloc);
4953 var ranges = lexer.options && lexer.options.ranges;
4954 if (typeof sharedState.yy.parseError === 'function') {
4955 this.parseError = sharedState.yy.parseError;
4956 } else {
4957 this.parseError = Object.getPrototypeOf(this).parseError;
4958 }
4959 function popStack(n) {
4960 stack.length = stack.length - 2 * n;
4961 vstack.length = vstack.length - n;
4962 lstack.length = lstack.length - n;
4963 }
4964 function lex() {
4965 var token;
4966 token = tstack.pop() || lexer.lex() || EOF;
4967 if (typeof token !== 'number') {
4968 if (token instanceof Array) {
4969 tstack = token;
4970 token = tstack.pop();
4971 }
4972 token = self.symbols_[token] || token;
4973 }
4974 return token;
4975 }
4976 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
4977 while (true) {
4978 state = stack[stack.length - 1];
4979 if (this.defaultActions[state]) {
4980 action = this.defaultActions[state];
4981 } else {
4982 if (symbol === null || typeof symbol == 'undefined') {
4983 symbol = lex();
4984 }
4985 action = table[state] && table[state][symbol];
4986 }
4987 if (typeof action === 'undefined' || !action.length || !action[0]) {
4988 var errStr = '';
4989 expected = [];
4990 for (p in table[state]) {
4991 if (this.terminals_[p] && p > TERROR) {
4992 expected.push('\'' + this.terminals_[p] + '\'');
4993 }
4994 }
4995 if (lexer.showPosition) {
4996 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
4997 } else {
4998 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
4999 }
5000 this.parseError(errStr, {
5001 text: lexer.match,
5002 token: this.terminals_[symbol] || symbol,
5003 line: lexer.yylineno,
5004 loc: yyloc,
5005 expected: expected
5006 });
5007 }
5008 if (action[0] instanceof Array && action.length > 1) {
5009 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
5010 }
5011 switch (action[0]) {
5012 case 1:
5013 stack.push(symbol);
5014 vstack.push(lexer.yytext);
5015 lstack.push(lexer.yylloc);
5016 stack.push(action[1]);
5017 symbol = null;
5018 if (!preErrorSymbol) {
5019 yyleng = lexer.yyleng;
5020 yytext = lexer.yytext;
5021 yylineno = lexer.yylineno;
5022 yyloc = lexer.yylloc;
5023 if (recovering > 0) {
5024 recovering--;
5025 }
5026 } else {
5027 symbol = preErrorSymbol;
5028 preErrorSymbol = null;
5029 }
5030 break;
5031 case 2:
5032 len = this.productions_[action[1]][1];
5033 yyval.$ = vstack[vstack.length - len];
5034 yyval._$ = {
5035 first_line: lstack[lstack.length - (len || 1)].first_line,
5036 last_line: lstack[lstack.length - 1].last_line,
5037 first_column: lstack[lstack.length - (len || 1)].first_column,
5038 last_column: lstack[lstack.length - 1].last_column
5039 };
5040 if (ranges) {
5041 yyval._$.range = [
5042 lstack[lstack.length - (len || 1)].range[0],
5043 lstack[lstack.length - 1].range[1]
5044 ];
5045 }
5046 r = this.performAction.apply(yyval, [
5047 yytext,
5048 yyleng,
5049 yylineno,
5050 sharedState.yy,
5051 action[1],
5052 vstack,
5053 lstack
5054 ].concat(args));
5055 if (typeof r !== 'undefined') {
5056 return r;
5057 }
5058 if (len) {
5059 stack = stack.slice(0, -1 * len * 2);
5060 vstack = vstack.slice(0, -1 * len);
5061 lstack = lstack.slice(0, -1 * len);
5062 }
5063 stack.push(this.productions_[action[1]][0]);
5064 vstack.push(yyval.$);
5065 lstack.push(yyval._$);
5066 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
5067 stack.push(newState);
5068 break;
5069 case 3:
5070 return true;
5071 }
5072 }
5073 return true;
5074}};
5075/* generated by jison-lex 0.3.4 */
5076var lexer = (function(){
5077var lexer = ({
5078
5079EOF:1,
5080
5081parseError:function parseError(str, hash) {
5082 if (this.yy.parser) {
5083 this.yy.parser.parseError(str, hash);
5084 } else {
5085 throw new Error(str);
5086 }
5087 },
5088
5089// resets the lexer, sets new input
5090setInput:function (input, yy) {
5091 this.yy = yy || this.yy || {};
5092 this._input = input;
5093 this._more = this._backtrack = this.done = false;
5094 this.yylineno = this.yyleng = 0;
5095 this.yytext = this.matched = this.match = '';
5096 this.conditionStack = ['INITIAL'];
5097 this.yylloc = {
5098 first_line: 1,
5099 first_column: 0,
5100 last_line: 1,
5101 last_column: 0
5102 };
5103 if (this.options.ranges) {
5104 this.yylloc.range = [0,0];
5105 }
5106 this.offset = 0;
5107 return this;
5108 },
5109
5110// consumes and returns one char from the input
5111input:function () {
5112 var ch = this._input[0];
5113 this.yytext += ch;
5114 this.yyleng++;
5115 this.offset++;
5116 this.match += ch;
5117 this.matched += ch;
5118 var lines = ch.match(/(?:\r\n?|\n).*/g);
5119 if (lines) {
5120 this.yylineno++;
5121 this.yylloc.last_line++;
5122 } else {
5123 this.yylloc.last_column++;
5124 }
5125 if (this.options.ranges) {
5126 this.yylloc.range[1]++;
5127 }
5128
5129 this._input = this._input.slice(1);
5130 return ch;
5131 },
5132
5133// unshifts one char (or a string) into the input
5134unput:function (ch) {
5135 var len = ch.length;
5136 var lines = ch.split(/(?:\r\n?|\n)/g);
5137
5138 this._input = ch + this._input;
5139 this.yytext = this.yytext.substr(0, this.yytext.length - len);
5140 //this.yyleng -= len;
5141 this.offset -= len;
5142 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
5143 this.match = this.match.substr(0, this.match.length - 1);
5144 this.matched = this.matched.substr(0, this.matched.length - 1);
5145
5146 if (lines.length - 1) {
5147 this.yylineno -= lines.length - 1;
5148 }
5149 var r = this.yylloc.range;
5150
5151 this.yylloc = {
5152 first_line: this.yylloc.first_line,
5153 last_line: this.yylineno + 1,
5154 first_column: this.yylloc.first_column,
5155 last_column: lines ?
5156 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
5157 + oldLines[oldLines.length - lines.length].length - lines[0].length :
5158 this.yylloc.first_column - len
5159 };
5160
5161 if (this.options.ranges) {
5162 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
5163 }
5164 this.yyleng = this.yytext.length;
5165 return this;
5166 },
5167
5168// When called from action, caches matched text and appends it on next action
5169more:function () {
5170 this._more = true;
5171 return this;
5172 },
5173
5174// 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.
5175reject:function () {
5176 if (this.options.backtrack_lexer) {
5177 this._backtrack = true;
5178 } else {
5179 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(), {
5180 text: "",
5181 token: null,
5182 line: this.yylineno
5183 });
5184
5185 }
5186 return this;
5187 },
5188
5189// retain first n characters of the match
5190less:function (n) {
5191 this.unput(this.match.slice(n));
5192 },
5193
5194// displays already matched input, i.e. for error messages
5195pastInput:function () {
5196 var past = this.matched.substr(0, this.matched.length - this.match.length);
5197 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
5198 },
5199
5200// displays upcoming input, i.e. for error messages
5201upcomingInput:function () {
5202 var next = this.match;
5203 if (next.length < 20) {
5204 next += this._input.substr(0, 20-next.length);
5205 }
5206 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
5207 },
5208
5209// displays the character position where the lexing error occurred, i.e. for error messages
5210showPosition:function () {
5211 var pre = this.pastInput();
5212 var c = new Array(pre.length + 1).join("-");
5213 return pre + this.upcomingInput() + "\n" + c + "^";
5214 },
5215
5216// test the lexed token: return FALSE when not a match, otherwise return token
5217test_match:function(match, indexed_rule) {
5218 var token,
5219 lines,
5220 backup;
5221
5222 if (this.options.backtrack_lexer) {
5223 // save context
5224 backup = {
5225 yylineno: this.yylineno,
5226 yylloc: {
5227 first_line: this.yylloc.first_line,
5228 last_line: this.last_line,
5229 first_column: this.yylloc.first_column,
5230 last_column: this.yylloc.last_column
5231 },
5232 yytext: this.yytext,
5233 match: this.match,
5234 matches: this.matches,
5235 matched: this.matched,
5236 yyleng: this.yyleng,
5237 offset: this.offset,
5238 _more: this._more,
5239 _input: this._input,
5240 yy: this.yy,
5241 conditionStack: this.conditionStack.slice(0),
5242 done: this.done
5243 };
5244 if (this.options.ranges) {
5245 backup.yylloc.range = this.yylloc.range.slice(0);
5246 }
5247 }
5248
5249 lines = match[0].match(/(?:\r\n?|\n).*/g);
5250 if (lines) {
5251 this.yylineno += lines.length;
5252 }
5253 this.yylloc = {
5254 first_line: this.yylloc.last_line,
5255 last_line: this.yylineno + 1,
5256 first_column: this.yylloc.last_column,
5257 last_column: lines ?
5258 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
5259 this.yylloc.last_column + match[0].length
5260 };
5261 this.yytext += match[0];
5262 this.match += match[0];
5263 this.matches = match;
5264 this.yyleng = this.yytext.length;
5265 if (this.options.ranges) {
5266 this.yylloc.range = [this.offset, this.offset += this.yyleng];
5267 }
5268 this._more = false;
5269 this._backtrack = false;
5270 this._input = this._input.slice(match[0].length);
5271 this.matched += match[0];
5272 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
5273 if (this.done && this._input) {
5274 this.done = false;
5275 }
5276 if (token) {
5277 return token;
5278 } else if (this._backtrack) {
5279 // recover context
5280 for (var k in backup) {
5281 this[k] = backup[k];
5282 }
5283 return false; // rule action called reject() implying the next rule should be tested instead.
5284 }
5285 return false;
5286 },
5287
5288// return next match in input
5289next:function () {
5290 if (this.done) {
5291 return this.EOF;
5292 }
5293 if (!this._input) {
5294 this.done = true;
5295 }
5296
5297 var token,
5298 match,
5299 tempMatch,
5300 index;
5301 if (!this._more) {
5302 this.yytext = '';
5303 this.match = '';
5304 }
5305 var rules = this._currentRules();
5306 for (var i = 0; i < rules.length; i++) {
5307 tempMatch = this._input.match(this.rules[rules[i]]);
5308 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
5309 match = tempMatch;
5310 index = i;
5311 if (this.options.backtrack_lexer) {
5312 token = this.test_match(tempMatch, rules[i]);
5313 if (token !== false) {
5314 return token;
5315 } else if (this._backtrack) {
5316 match = false;
5317 continue; // rule action called reject() implying a rule MISmatch.
5318 } else {
5319 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
5320 return false;
5321 }
5322 } else if (!this.options.flex) {
5323 break;
5324 }
5325 }
5326 }
5327 if (match) {
5328 token = this.test_match(match, rules[index]);
5329 if (token !== false) {
5330 return token;
5331 }
5332 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
5333 return false;
5334 }
5335 if (this._input === "") {
5336 return this.EOF;
5337 } else {
5338 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
5339 text: "",
5340 token: null,
5341 line: this.yylineno
5342 });
5343 }
5344 },
5345
5346// return next match that has a token
5347lex:function lex () {
5348 var r = this.next();
5349 if (r) {
5350 return r;
5351 } else {
5352 return this.lex();
5353 }
5354 },
5355
5356// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
5357begin:function begin (condition) {
5358 this.conditionStack.push(condition);
5359 },
5360
5361// pop the previously active lexer condition state off the condition stack
5362popState:function popState () {
5363 var n = this.conditionStack.length - 1;
5364 if (n > 0) {
5365 return this.conditionStack.pop();
5366 } else {
5367 return this.conditionStack[0];
5368 }
5369 },
5370
5371// produce the lexer rule set which is active for the currently active lexer condition state
5372_currentRules:function _currentRules () {
5373 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
5374 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
5375 } else {
5376 return this.conditions["INITIAL"].rules;
5377 }
5378 },
5379
5380// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
5381topState:function topState (n) {
5382 n = this.conditionStack.length - 1 - Math.abs(n || 0);
5383 if (n >= 0) {
5384 return this.conditionStack[n];
5385 } else {
5386 return "INITIAL";
5387 }
5388 },
5389
5390// alias for begin(condition)
5391pushState:function pushState (condition) {
5392 this.begin(condition);
5393 },
5394
5395// return the number of states currently on the stack
5396stateStackSize:function stateStackSize() {
5397 return this.conditionStack.length;
5398 },
5399options: {"case-insensitive":true},
5400performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
5401var YYSTATE=YY_START;
5402switch($avoiding_name_collisions) {
5403case 0: this.begin('open_directive'); return 49;
5404break;
5405case 1: this.begin('type_directive'); return 50;
5406break;
5407case 2: this.popState(); this.begin('arg_directive'); return 9;
5408break;
5409case 3: this.popState(); this.popState(); return 52;
5410break;
5411case 4:return 51;
5412break;
5413case 5: this.begin("acc_title");return 20;
5414break;
5415case 6: this.popState(); return "acc_title_value";
5416break;
5417case 7: this.begin("acc_descr");return 22;
5418break;
5419case 8: this.popState(); return "acc_descr_value";
5420break;
5421case 9: this.begin("acc_descr_multiline");
5422break;
5423case 10: this.popState();
5424break;
5425case 11:return "acc_descr_multiline_value";
5426break;
5427case 12:/*{console.log('New line');return 14;}*/ return 14;
5428break;
5429case 13:/* skip all whitespace */
5430break;
5431case 14:/* skip comments */
5432break;
5433case 15:/* skip comments */
5434break;
5435case 16:return 6;
5436break;
5437case 17:return 37;
5438break;
5439case 18:return 33;
5440break;
5441case 19:return 39;
5442break;
5443case 20:return 41;
5444break;
5445case 21:return 42;
5446break;
5447case 22:return 43;
5448break;
5449case 23:return 44;
5450break;
5451case 24:return 36;
5452break;
5453case 25:return 29;
5454break;
5455case 26:return 30;
5456break;
5457case 27:return 35;
5458break;
5459case 28:return 32;
5460break;
5461case 29:return 27;
5462break;
5463case 30:return 10;
5464break;
5465case 31:return 10;
5466break;
5467case 32:return 9;
5468break;
5469case 33:return 'CARET'
5470break;
5471case 34:this.begin("options"); //
5472break;
5473case 35:this.popState(); // not used anymore in the renderer, fixed for backward compatibility
5474break;
5475case 36:return 13; //
5476break;
5477case 37:this.begin("string");
5478break;
5479case 38:this.popState();
5480break;
5481case 39:return 34;
5482break;
5483case 40:return 31;
5484break;
5485case 41:return 28;
5486break;
5487case 42:return 8;
5488break;
5489}
5490},
5491rules: [/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit\b)/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\b)/i,/^(?:REVERSE\b)/i,/^(?:HIGHLIGHT\b)/i,/^(?:tag:)/i,/^(?:branch\b)/i,/^(?:order:)/i,/^(?:merge\b)/i,/^(?:cherry-pick\b)/i,/^(?:checkout\b)/i,/^(?:LR\b)/i,/^(?:BT\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:[ \r\n\t]+end\b)/i,/^(?:[\s\S]+(?=[ \r\n\t]+end))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+)/i,/^(?:[a-zA-Z][-_\./a-zA-Z0-9]*[-_a-zA-Z0-9])/i,/^(?:$)/i],
5492conditions: {"acc_descr_multiline":{"rules":[10,11],"inclusive":false},"acc_descr":{"rules":[8],"inclusive":false},"acc_title":{"rules":[6],"inclusive":false},"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},"options":{"rules":[35,36],"inclusive":false},"string":{"rules":[38,39],"inclusive":false},"INITIAL":{"rules":[0,5,7,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,37,40,41,42],"inclusive":true}}
5493});
5494return lexer;
5495})();
5496parser.lexer = lexer;
5497function Parser () {
5498 this.yy = {};
5499}
5500Parser.prototype = parser;parser.Parser = Parser;
5501return new Parser;
5502})();
5503
5504
5505if (true) {
5506exports.parser = parser;
5507exports.Parser = parser.Parser;
5508exports.parse = function () { return parser.parse.apply(parser, arguments); };
5509exports.main = function commonjsMain (args) {
5510 if (!args[1]) {
5511 console.log('Usage: '+args[0]+' FILE');
5512 process.exit(1);
5513 }
5514 var source = (__webpack_require__(/*! fs */ "?2b40").readFileSync)((__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize)(args[1]), "utf8");
5515 return exports.parser.parse(source);
5516};
5517if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
5518 exports.main(process.argv.slice(1));
5519}
5520}
5521
5522/***/ }),
5523
5524/***/ "./src/diagrams/info/parser/info.jison":
5525/*!*********************************************!*\
5526 !*** ./src/diagrams/info/parser/info.jison ***!
5527 \*********************************************/
5528/***/ ((module, exports, __webpack_require__) => {
5529
5530/* module decorator */ module = __webpack_require__.nmd(module);
5531/* parser generated by jison 0.4.18 */
5532/*
5533 Returns a Parser object of the following structure:
5534
5535 Parser: {
5536 yy: {}
5537 }
5538
5539 Parser.prototype: {
5540 yy: {},
5541 trace: function(),
5542 symbols_: {associative list: name ==> number},
5543 terminals_: {associative list: number ==> name},
5544 productions_: [...],
5545 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
5546 table: [...],
5547 defaultActions: {...},
5548 parseError: function(str, hash),
5549 parse: function(input),
5550
5551 lexer: {
5552 EOF: 1,
5553 parseError: function(str, hash),
5554 setInput: function(input),
5555 input: function(),
5556 unput: function(str),
5557 more: function(),
5558 less: function(n),
5559 pastInput: function(),
5560 upcomingInput: function(),
5561 showPosition: function(),
5562 test_match: function(regex_match_array, rule_index),
5563 next: function(),
5564 lex: function(),
5565 begin: function(condition),
5566 popState: function(),
5567 _currentRules: function(),
5568 topState: function(),
5569 pushState: function(condition),
5570
5571 options: {
5572 ranges: boolean (optional: true ==> token location info will include a .range[] member)
5573 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
5574 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)
5575 },
5576
5577 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
5578 rules: [...],
5579 conditions: {associative list: name ==> set},
5580 }
5581 }
5582
5583
5584 token location info (@$, _$, etc.): {
5585 first_line: n,
5586 last_line: n,
5587 first_column: n,
5588 last_column: n,
5589 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
5590 }
5591
5592
5593 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
5594 text: (matched text)
5595 token: (the produced terminal token, if any)
5596 line: (yylineno)
5597 }
5598 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
5599 loc: (yylloc)
5600 expected: (string describing the set of expected tokens)
5601 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
5602 }
5603*/
5604var parser = (function(){
5605var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,9,10];
5606var parser = {trace: function trace () { },
5607yy: {},
5608symbols_: {"error":2,"start":3,"info":4,"document":5,"EOF":6,"line":7,"statement":8,"NL":9,"showInfo":10,"$accept":0,"$end":1},
5609terminals_: {2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},
5610productions_: [0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],
5611performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
5612/* this == yyval */
5613
5614var $0 = $$.length - 1;
5615switch (yystate) {
5616case 1:
5617 return yy;
5618break;
5619case 4:
5620
5621break;
5622case 6:
5623 yy.setInfo(true);
5624break;
5625}
5626},
5627table: [{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])],
5628defaultActions: {4:[2,1]},
5629parseError: function parseError (str, hash) {
5630 if (hash.recoverable) {
5631 this.trace(str);
5632 } else {
5633 var error = new Error(str);
5634 error.hash = hash;
5635 throw error;
5636 }
5637},
5638parse: function parse(input) {
5639 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
5640 var args = lstack.slice.call(arguments, 1);
5641 var lexer = Object.create(this.lexer);
5642 var sharedState = { yy: {} };
5643 for (var k in this.yy) {
5644 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
5645 sharedState.yy[k] = this.yy[k];
5646 }
5647 }
5648 lexer.setInput(input, sharedState.yy);
5649 sharedState.yy.lexer = lexer;
5650 sharedState.yy.parser = this;
5651 if (typeof lexer.yylloc == 'undefined') {
5652 lexer.yylloc = {};
5653 }
5654 var yyloc = lexer.yylloc;
5655 lstack.push(yyloc);
5656 var ranges = lexer.options && lexer.options.ranges;
5657 if (typeof sharedState.yy.parseError === 'function') {
5658 this.parseError = sharedState.yy.parseError;
5659 } else {
5660 this.parseError = Object.getPrototypeOf(this).parseError;
5661 }
5662 function popStack(n) {
5663 stack.length = stack.length - 2 * n;
5664 vstack.length = vstack.length - n;
5665 lstack.length = lstack.length - n;
5666 }
5667 function lex() {
5668 var token;
5669 token = tstack.pop() || lexer.lex() || EOF;
5670 if (typeof token !== 'number') {
5671 if (token instanceof Array) {
5672 tstack = token;
5673 token = tstack.pop();
5674 }
5675 token = self.symbols_[token] || token;
5676 }
5677 return token;
5678 }
5679 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
5680 while (true) {
5681 state = stack[stack.length - 1];
5682 if (this.defaultActions[state]) {
5683 action = this.defaultActions[state];
5684 } else {
5685 if (symbol === null || typeof symbol == 'undefined') {
5686 symbol = lex();
5687 }
5688 action = table[state] && table[state][symbol];
5689 }
5690 if (typeof action === 'undefined' || !action.length || !action[0]) {
5691 var errStr = '';
5692 expected = [];
5693 for (p in table[state]) {
5694 if (this.terminals_[p] && p > TERROR) {
5695 expected.push('\'' + this.terminals_[p] + '\'');
5696 }
5697 }
5698 if (lexer.showPosition) {
5699 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
5700 } else {
5701 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
5702 }
5703 this.parseError(errStr, {
5704 text: lexer.match,
5705 token: this.terminals_[symbol] || symbol,
5706 line: lexer.yylineno,
5707 loc: yyloc,
5708 expected: expected
5709 });
5710 }
5711 if (action[0] instanceof Array && action.length > 1) {
5712 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
5713 }
5714 switch (action[0]) {
5715 case 1:
5716 stack.push(symbol);
5717 vstack.push(lexer.yytext);
5718 lstack.push(lexer.yylloc);
5719 stack.push(action[1]);
5720 symbol = null;
5721 if (!preErrorSymbol) {
5722 yyleng = lexer.yyleng;
5723 yytext = lexer.yytext;
5724 yylineno = lexer.yylineno;
5725 yyloc = lexer.yylloc;
5726 if (recovering > 0) {
5727 recovering--;
5728 }
5729 } else {
5730 symbol = preErrorSymbol;
5731 preErrorSymbol = null;
5732 }
5733 break;
5734 case 2:
5735 len = this.productions_[action[1]][1];
5736 yyval.$ = vstack[vstack.length - len];
5737 yyval._$ = {
5738 first_line: lstack[lstack.length - (len || 1)].first_line,
5739 last_line: lstack[lstack.length - 1].last_line,
5740 first_column: lstack[lstack.length - (len || 1)].first_column,
5741 last_column: lstack[lstack.length - 1].last_column
5742 };
5743 if (ranges) {
5744 yyval._$.range = [
5745 lstack[lstack.length - (len || 1)].range[0],
5746 lstack[lstack.length - 1].range[1]
5747 ];
5748 }
5749 r = this.performAction.apply(yyval, [
5750 yytext,
5751 yyleng,
5752 yylineno,
5753 sharedState.yy,
5754 action[1],
5755 vstack,
5756 lstack
5757 ].concat(args));
5758 if (typeof r !== 'undefined') {
5759 return r;
5760 }
5761 if (len) {
5762 stack = stack.slice(0, -1 * len * 2);
5763 vstack = vstack.slice(0, -1 * len);
5764 lstack = lstack.slice(0, -1 * len);
5765 }
5766 stack.push(this.productions_[action[1]][0]);
5767 vstack.push(yyval.$);
5768 lstack.push(yyval._$);
5769 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
5770 stack.push(newState);
5771 break;
5772 case 3:
5773 return true;
5774 }
5775 }
5776 return true;
5777}};
5778
5779/* generated by jison-lex 0.3.4 */
5780var lexer = (function(){
5781var lexer = ({
5782
5783EOF:1,
5784
5785parseError:function parseError(str, hash) {
5786 if (this.yy.parser) {
5787 this.yy.parser.parseError(str, hash);
5788 } else {
5789 throw new Error(str);
5790 }
5791 },
5792
5793// resets the lexer, sets new input
5794setInput:function (input, yy) {
5795 this.yy = yy || this.yy || {};
5796 this._input = input;
5797 this._more = this._backtrack = this.done = false;
5798 this.yylineno = this.yyleng = 0;
5799 this.yytext = this.matched = this.match = '';
5800 this.conditionStack = ['INITIAL'];
5801 this.yylloc = {
5802 first_line: 1,
5803 first_column: 0,
5804 last_line: 1,
5805 last_column: 0
5806 };
5807 if (this.options.ranges) {
5808 this.yylloc.range = [0,0];
5809 }
5810 this.offset = 0;
5811 return this;
5812 },
5813
5814// consumes and returns one char from the input
5815input:function () {
5816 var ch = this._input[0];
5817 this.yytext += ch;
5818 this.yyleng++;
5819 this.offset++;
5820 this.match += ch;
5821 this.matched += ch;
5822 var lines = ch.match(/(?:\r\n?|\n).*/g);
5823 if (lines) {
5824 this.yylineno++;
5825 this.yylloc.last_line++;
5826 } else {
5827 this.yylloc.last_column++;
5828 }
5829 if (this.options.ranges) {
5830 this.yylloc.range[1]++;
5831 }
5832
5833 this._input = this._input.slice(1);
5834 return ch;
5835 },
5836
5837// unshifts one char (or a string) into the input
5838unput:function (ch) {
5839 var len = ch.length;
5840 var lines = ch.split(/(?:\r\n?|\n)/g);
5841
5842 this._input = ch + this._input;
5843 this.yytext = this.yytext.substr(0, this.yytext.length - len);
5844 //this.yyleng -= len;
5845 this.offset -= len;
5846 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
5847 this.match = this.match.substr(0, this.match.length - 1);
5848 this.matched = this.matched.substr(0, this.matched.length - 1);
5849
5850 if (lines.length - 1) {
5851 this.yylineno -= lines.length - 1;
5852 }
5853 var r = this.yylloc.range;
5854
5855 this.yylloc = {
5856 first_line: this.yylloc.first_line,
5857 last_line: this.yylineno + 1,
5858 first_column: this.yylloc.first_column,
5859 last_column: lines ?
5860 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
5861 + oldLines[oldLines.length - lines.length].length - lines[0].length :
5862 this.yylloc.first_column - len
5863 };
5864
5865 if (this.options.ranges) {
5866 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
5867 }
5868 this.yyleng = this.yytext.length;
5869 return this;
5870 },
5871
5872// When called from action, caches matched text and appends it on next action
5873more:function () {
5874 this._more = true;
5875 return this;
5876 },
5877
5878// 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.
5879reject:function () {
5880 if (this.options.backtrack_lexer) {
5881 this._backtrack = true;
5882 } else {
5883 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(), {
5884 text: "",
5885 token: null,
5886 line: this.yylineno
5887 });
5888
5889 }
5890 return this;
5891 },
5892
5893// retain first n characters of the match
5894less:function (n) {
5895 this.unput(this.match.slice(n));
5896 },
5897
5898// displays already matched input, i.e. for error messages
5899pastInput:function () {
5900 var past = this.matched.substr(0, this.matched.length - this.match.length);
5901 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
5902 },
5903
5904// displays upcoming input, i.e. for error messages
5905upcomingInput:function () {
5906 var next = this.match;
5907 if (next.length < 20) {
5908 next += this._input.substr(0, 20-next.length);
5909 }
5910 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
5911 },
5912
5913// displays the character position where the lexing error occurred, i.e. for error messages
5914showPosition:function () {
5915 var pre = this.pastInput();
5916 var c = new Array(pre.length + 1).join("-");
5917 return pre + this.upcomingInput() + "\n" + c + "^";
5918 },
5919
5920// test the lexed token: return FALSE when not a match, otherwise return token
5921test_match:function(match, indexed_rule) {
5922 var token,
5923 lines,
5924 backup;
5925
5926 if (this.options.backtrack_lexer) {
5927 // save context
5928 backup = {
5929 yylineno: this.yylineno,
5930 yylloc: {
5931 first_line: this.yylloc.first_line,
5932 last_line: this.last_line,
5933 first_column: this.yylloc.first_column,
5934 last_column: this.yylloc.last_column
5935 },
5936 yytext: this.yytext,
5937 match: this.match,
5938 matches: this.matches,
5939 matched: this.matched,
5940 yyleng: this.yyleng,
5941 offset: this.offset,
5942 _more: this._more,
5943 _input: this._input,
5944 yy: this.yy,
5945 conditionStack: this.conditionStack.slice(0),
5946 done: this.done
5947 };
5948 if (this.options.ranges) {
5949 backup.yylloc.range = this.yylloc.range.slice(0);
5950 }
5951 }
5952
5953 lines = match[0].match(/(?:\r\n?|\n).*/g);
5954 if (lines) {
5955 this.yylineno += lines.length;
5956 }
5957 this.yylloc = {
5958 first_line: this.yylloc.last_line,
5959 last_line: this.yylineno + 1,
5960 first_column: this.yylloc.last_column,
5961 last_column: lines ?
5962 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
5963 this.yylloc.last_column + match[0].length
5964 };
5965 this.yytext += match[0];
5966 this.match += match[0];
5967 this.matches = match;
5968 this.yyleng = this.yytext.length;
5969 if (this.options.ranges) {
5970 this.yylloc.range = [this.offset, this.offset += this.yyleng];
5971 }
5972 this._more = false;
5973 this._backtrack = false;
5974 this._input = this._input.slice(match[0].length);
5975 this.matched += match[0];
5976 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
5977 if (this.done && this._input) {
5978 this.done = false;
5979 }
5980 if (token) {
5981 return token;
5982 } else if (this._backtrack) {
5983 // recover context
5984 for (var k in backup) {
5985 this[k] = backup[k];
5986 }
5987 return false; // rule action called reject() implying the next rule should be tested instead.
5988 }
5989 return false;
5990 },
5991
5992// return next match in input
5993next:function () {
5994 if (this.done) {
5995 return this.EOF;
5996 }
5997 if (!this._input) {
5998 this.done = true;
5999 }
6000
6001 var token,
6002 match,
6003 tempMatch,
6004 index;
6005 if (!this._more) {
6006 this.yytext = '';
6007 this.match = '';
6008 }
6009 var rules = this._currentRules();
6010 for (var i = 0; i < rules.length; i++) {
6011 tempMatch = this._input.match(this.rules[rules[i]]);
6012 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
6013 match = tempMatch;
6014 index = i;
6015 if (this.options.backtrack_lexer) {
6016 token = this.test_match(tempMatch, rules[i]);
6017 if (token !== false) {
6018 return token;
6019 } else if (this._backtrack) {
6020 match = false;
6021 continue; // rule action called reject() implying a rule MISmatch.
6022 } else {
6023 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
6024 return false;
6025 }
6026 } else if (!this.options.flex) {
6027 break;
6028 }
6029 }
6030 }
6031 if (match) {
6032 token = this.test_match(match, rules[index]);
6033 if (token !== false) {
6034 return token;
6035 }
6036 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
6037 return false;
6038 }
6039 if (this._input === "") {
6040 return this.EOF;
6041 } else {
6042 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
6043 text: "",
6044 token: null,
6045 line: this.yylineno
6046 });
6047 }
6048 },
6049
6050// return next match that has a token
6051lex:function lex () {
6052 var r = this.next();
6053 if (r) {
6054 return r;
6055 } else {
6056 return this.lex();
6057 }
6058 },
6059
6060// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
6061begin:function begin (condition) {
6062 this.conditionStack.push(condition);
6063 },
6064
6065// pop the previously active lexer condition state off the condition stack
6066popState:function popState () {
6067 var n = this.conditionStack.length - 1;
6068 if (n > 0) {
6069 return this.conditionStack.pop();
6070 } else {
6071 return this.conditionStack[0];
6072 }
6073 },
6074
6075// produce the lexer rule set which is active for the currently active lexer condition state
6076_currentRules:function _currentRules () {
6077 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
6078 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
6079 } else {
6080 return this.conditions["INITIAL"].rules;
6081 }
6082 },
6083
6084// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
6085topState:function topState (n) {
6086 n = this.conditionStack.length - 1 - Math.abs(n || 0);
6087 if (n >= 0) {
6088 return this.conditionStack[n];
6089 } else {
6090 return "INITIAL";
6091 }
6092 },
6093
6094// alias for begin(condition)
6095pushState:function pushState (condition) {
6096 this.begin(condition);
6097 },
6098
6099// return the number of states currently on the stack
6100stateStackSize:function stateStackSize() {
6101 return this.conditionStack.length;
6102 },
6103options: {"case-insensitive":true},
6104performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
6105 // Pre-lexer code can go here
6106
6107var YYSTATE=YY_START;
6108switch($avoiding_name_collisions) {
6109case 0:return 4 ;
6110break;
6111case 1:return 9 ;
6112break;
6113case 2:return 'space';
6114break;
6115case 3:return 10;
6116break;
6117case 4:return 6 ;
6118break;
6119case 5:return 'TXT' ;
6120break;
6121}
6122},
6123rules: [/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],
6124conditions: {"INITIAL":{"rules":[0,1,2,3,4,5],"inclusive":true}}
6125});
6126return lexer;
6127})();
6128parser.lexer = lexer;
6129function Parser () {
6130 this.yy = {};
6131}
6132Parser.prototype = parser;parser.Parser = Parser;
6133return new Parser;
6134})();
6135
6136
6137if (true) {
6138exports.parser = parser;
6139exports.Parser = parser.Parser;
6140exports.parse = function () { return parser.parse.apply(parser, arguments); };
6141exports.main = function commonjsMain (args) {
6142 if (!args[1]) {
6143 console.log('Usage: '+args[0]+' FILE');
6144 process.exit(1);
6145 }
6146 var source = (__webpack_require__(/*! fs */ "?c5f1").readFileSync)((__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize)(args[1]), "utf8");
6147 return exports.parser.parse(source);
6148};
6149if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
6150 exports.main(process.argv.slice(1));
6151}
6152}
6153
6154/***/ }),
6155
6156/***/ "./src/diagrams/pie/parser/pie.jison":
6157/*!*******************************************!*\
6158 !*** ./src/diagrams/pie/parser/pie.jison ***!
6159 \*******************************************/
6160/***/ ((module, exports, __webpack_require__) => {
6161
6162/* module decorator */ module = __webpack_require__.nmd(module);
6163/* parser generated by jison 0.4.18 */
6164/*
6165 Returns a Parser object of the following structure:
6166
6167 Parser: {
6168 yy: {}
6169 }
6170
6171 Parser.prototype: {
6172 yy: {},
6173 trace: function(),
6174 symbols_: {associative list: name ==> number},
6175 terminals_: {associative list: number ==> name},
6176 productions_: [...],
6177 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
6178 table: [...],
6179 defaultActions: {...},
6180 parseError: function(str, hash),
6181 parse: function(input),
6182
6183 lexer: {
6184 EOF: 1,
6185 parseError: function(str, hash),
6186 setInput: function(input),
6187 input: function(),
6188 unput: function(str),
6189 more: function(),
6190 less: function(n),
6191 pastInput: function(),
6192 upcomingInput: function(),
6193 showPosition: function(),
6194 test_match: function(regex_match_array, rule_index),
6195 next: function(),
6196 lex: function(),
6197 begin: function(condition),
6198 popState: function(),
6199 _currentRules: function(),
6200 topState: function(),
6201 pushState: function(condition),
6202
6203 options: {
6204 ranges: boolean (optional: true ==> token location info will include a .range[] member)
6205 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
6206 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)
6207 },
6208
6209 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
6210 rules: [...],
6211 conditions: {associative list: name ==> set},
6212 }
6213 }
6214
6215
6216 token location info (@$, _$, etc.): {
6217 first_line: n,
6218 last_line: n,
6219 first_column: n,
6220 last_column: n,
6221 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
6222 }
6223
6224
6225 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
6226 text: (matched text)
6227 token: (the produced terminal token, if any)
6228 line: (yylineno)
6229 }
6230 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
6231 loc: (yylloc)
6232 expected: (string describing the set of expected tokens)
6233 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
6234 }
6235*/
6236var parser = (function(){
6237var 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,11,13,15,17,19,20,26,27,28,29],$V6=[2,5],$V7=[1,6,11,13,15,17,19,20,26,27,28,29],$V8=[26,27,28],$V9=[2,8],$Va=[1,18],$Vb=[1,19],$Vc=[1,20],$Vd=[1,21],$Ve=[1,22],$Vf=[1,23],$Vg=[1,28],$Vh=[6,26,27,28,29];
6238var parser = {trace: function trace () { },
6239yy: {},
6240symbols_: {"error":2,"start":3,"eol":4,"directive":5,"PIE":6,"document":7,"showData":8,"line":9,"statement":10,"txt":11,"value":12,"title":13,"title_value":14,"acc_title":15,"acc_title_value":16,"acc_descr":17,"acc_descr_value":18,"acc_descr_multiline_value":19,"section":20,"openDirective":21,"typeDirective":22,"closeDirective":23,":":24,"argDirective":25,"NEWLINE":26,";":27,"EOF":28,"open_directive":29,"type_directive":30,"arg_directive":31,"close_directive":32,"$accept":0,"$end":1},
6241terminals_: {2:"error",6:"PIE",8:"showData",11:"txt",12:"value",13:"title",14:"title_value",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",24:":",26:"NEWLINE",27:";",28:"EOF",29:"open_directive",30:"type_directive",31:"arg_directive",32:"close_directive"},
6242productions_: [0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[21,1],[22,1],[25,1],[23,1]],
6243performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
6244/* this == yyval */
6245
6246var $0 = $$.length - 1;
6247switch (yystate) {
6248case 4:
6249yy.setShowData(true);
6250break;
6251case 7:
6252 this.$ = $$[$0-1]
6253break;
6254case 9:
6255 yy.addSection($$[$0-1],yy.cleanupValue($$[$0]));
6256break;
6257case 10:
6258 this.$=$$[$0].trim();yy.setDiagramTitle(this.$);
6259break;
6260case 11:
6261 this.$=$$[$0].trim();yy.setAccTitle(this.$);
6262break;
6263case 12: case 13:
6264 this.$=$$[$0].trim();yy.setAccDescription(this.$);
6265break;
6266case 14:
6267yy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);
6268break;
6269case 21:
6270 yy.parseDirective('%%{', 'open_directive');
6271break;
6272case 22:
6273 yy.parseDirective($$[$0], 'type_directive');
6274break;
6275case 23:
6276 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
6277break;
6278case 24:
6279 yy.parseDirective('}%%', 'close_directive', 'pie');
6280break;
6281}
6282},
6283table: [{3:1,4:2,5:3,6:$V0,21:8,26:$V1,27:$V2,28:$V3,29:$V4},{1:[3]},{3:10,4:2,5:3,6:$V0,21:8,26:$V1,27:$V2,28:$V3,29:$V4},{3:11,4:2,5:3,6:$V0,21:8,26:$V1,27:$V2,28:$V3,29:$V4},o($V5,$V6,{7:12,8:[1,13]}),o($V7,[2,18]),o($V7,[2,19]),o($V7,[2,20]),{22:14,30:[1,15]},{30:[2,21]},{1:[2,1]},{1:[2,2]},o($V8,$V9,{21:8,9:16,10:17,5:24,1:[2,3],11:$Va,13:$Vb,15:$Vc,17:$Vd,19:$Ve,20:$Vf,29:$V4}),o($V5,$V6,{7:25}),{23:26,24:[1,27],32:$Vg},o([24,32],[2,22]),o($V5,[2,6]),{4:29,26:$V1,27:$V2,28:$V3},{12:[1,30]},{14:[1,31]},{16:[1,32]},{18:[1,33]},o($V8,[2,13]),o($V8,[2,14]),o($V8,[2,15]),o($V8,$V9,{21:8,9:16,10:17,5:24,1:[2,4],11:$Va,13:$Vb,15:$Vc,17:$Vd,19:$Ve,20:$Vf,29:$V4}),o($Vh,[2,16]),{25:34,31:[1,35]},o($Vh,[2,24]),o($V5,[2,7]),o($V8,[2,9]),o($V8,[2,10]),o($V8,[2,11]),o($V8,[2,12]),{23:36,32:$Vg},{32:[2,23]},o($Vh,[2,17])],
6284defaultActions: {9:[2,21],10:[2,1],11:[2,2],35:[2,23]},
6285parseError: function parseError (str, hash) {
6286 if (hash.recoverable) {
6287 this.trace(str);
6288 } else {
6289 var error = new Error(str);
6290 error.hash = hash;
6291 throw error;
6292 }
6293},
6294parse: function parse(input) {
6295 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
6296 var args = lstack.slice.call(arguments, 1);
6297 var lexer = Object.create(this.lexer);
6298 var sharedState = { yy: {} };
6299 for (var k in this.yy) {
6300 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
6301 sharedState.yy[k] = this.yy[k];
6302 }
6303 }
6304 lexer.setInput(input, sharedState.yy);
6305 sharedState.yy.lexer = lexer;
6306 sharedState.yy.parser = this;
6307 if (typeof lexer.yylloc == 'undefined') {
6308 lexer.yylloc = {};
6309 }
6310 var yyloc = lexer.yylloc;
6311 lstack.push(yyloc);
6312 var ranges = lexer.options && lexer.options.ranges;
6313 if (typeof sharedState.yy.parseError === 'function') {
6314 this.parseError = sharedState.yy.parseError;
6315 } else {
6316 this.parseError = Object.getPrototypeOf(this).parseError;
6317 }
6318 function popStack(n) {
6319 stack.length = stack.length - 2 * n;
6320 vstack.length = vstack.length - n;
6321 lstack.length = lstack.length - n;
6322 }
6323 function lex() {
6324 var token;
6325 token = tstack.pop() || lexer.lex() || EOF;
6326 if (typeof token !== 'number') {
6327 if (token instanceof Array) {
6328 tstack = token;
6329 token = tstack.pop();
6330 }
6331 token = self.symbols_[token] || token;
6332 }
6333 return token;
6334 }
6335 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
6336 while (true) {
6337 state = stack[stack.length - 1];
6338 if (this.defaultActions[state]) {
6339 action = this.defaultActions[state];
6340 } else {
6341 if (symbol === null || typeof symbol == 'undefined') {
6342 symbol = lex();
6343 }
6344 action = table[state] && table[state][symbol];
6345 }
6346 if (typeof action === 'undefined' || !action.length || !action[0]) {
6347 var errStr = '';
6348 expected = [];
6349 for (p in table[state]) {
6350 if (this.terminals_[p] && p > TERROR) {
6351 expected.push('\'' + this.terminals_[p] + '\'');
6352 }
6353 }
6354 if (lexer.showPosition) {
6355 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
6356 } else {
6357 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
6358 }
6359 this.parseError(errStr, {
6360 text: lexer.match,
6361 token: this.terminals_[symbol] || symbol,
6362 line: lexer.yylineno,
6363 loc: yyloc,
6364 expected: expected
6365 });
6366 }
6367 if (action[0] instanceof Array && action.length > 1) {
6368 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
6369 }
6370 switch (action[0]) {
6371 case 1:
6372 stack.push(symbol);
6373 vstack.push(lexer.yytext);
6374 lstack.push(lexer.yylloc);
6375 stack.push(action[1]);
6376 symbol = null;
6377 if (!preErrorSymbol) {
6378 yyleng = lexer.yyleng;
6379 yytext = lexer.yytext;
6380 yylineno = lexer.yylineno;
6381 yyloc = lexer.yylloc;
6382 if (recovering > 0) {
6383 recovering--;
6384 }
6385 } else {
6386 symbol = preErrorSymbol;
6387 preErrorSymbol = null;
6388 }
6389 break;
6390 case 2:
6391 len = this.productions_[action[1]][1];
6392 yyval.$ = vstack[vstack.length - len];
6393 yyval._$ = {
6394 first_line: lstack[lstack.length - (len || 1)].first_line,
6395 last_line: lstack[lstack.length - 1].last_line,
6396 first_column: lstack[lstack.length - (len || 1)].first_column,
6397 last_column: lstack[lstack.length - 1].last_column
6398 };
6399 if (ranges) {
6400 yyval._$.range = [
6401 lstack[lstack.length - (len || 1)].range[0],
6402 lstack[lstack.length - 1].range[1]
6403 ];
6404 }
6405 r = this.performAction.apply(yyval, [
6406 yytext,
6407 yyleng,
6408 yylineno,
6409 sharedState.yy,
6410 action[1],
6411 vstack,
6412 lstack
6413 ].concat(args));
6414 if (typeof r !== 'undefined') {
6415 return r;
6416 }
6417 if (len) {
6418 stack = stack.slice(0, -1 * len * 2);
6419 vstack = vstack.slice(0, -1 * len);
6420 lstack = lstack.slice(0, -1 * len);
6421 }
6422 stack.push(this.productions_[action[1]][0]);
6423 vstack.push(yyval.$);
6424 lstack.push(yyval._$);
6425 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
6426 stack.push(newState);
6427 break;
6428 case 3:
6429 return true;
6430 }
6431 }
6432 return true;
6433}};
6434
6435/* generated by jison-lex 0.3.4 */
6436var lexer = (function(){
6437var lexer = ({
6438
6439EOF:1,
6440
6441parseError:function parseError(str, hash) {
6442 if (this.yy.parser) {
6443 this.yy.parser.parseError(str, hash);
6444 } else {
6445 throw new Error(str);
6446 }
6447 },
6448
6449// resets the lexer, sets new input
6450setInput:function (input, yy) {
6451 this.yy = yy || this.yy || {};
6452 this._input = input;
6453 this._more = this._backtrack = this.done = false;
6454 this.yylineno = this.yyleng = 0;
6455 this.yytext = this.matched = this.match = '';
6456 this.conditionStack = ['INITIAL'];
6457 this.yylloc = {
6458 first_line: 1,
6459 first_column: 0,
6460 last_line: 1,
6461 last_column: 0
6462 };
6463 if (this.options.ranges) {
6464 this.yylloc.range = [0,0];
6465 }
6466 this.offset = 0;
6467 return this;
6468 },
6469
6470// consumes and returns one char from the input
6471input:function () {
6472 var ch = this._input[0];
6473 this.yytext += ch;
6474 this.yyleng++;
6475 this.offset++;
6476 this.match += ch;
6477 this.matched += ch;
6478 var lines = ch.match(/(?:\r\n?|\n).*/g);
6479 if (lines) {
6480 this.yylineno++;
6481 this.yylloc.last_line++;
6482 } else {
6483 this.yylloc.last_column++;
6484 }
6485 if (this.options.ranges) {
6486 this.yylloc.range[1]++;
6487 }
6488
6489 this._input = this._input.slice(1);
6490 return ch;
6491 },
6492
6493// unshifts one char (or a string) into the input
6494unput:function (ch) {
6495 var len = ch.length;
6496 var lines = ch.split(/(?:\r\n?|\n)/g);
6497
6498 this._input = ch + this._input;
6499 this.yytext = this.yytext.substr(0, this.yytext.length - len);
6500 //this.yyleng -= len;
6501 this.offset -= len;
6502 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
6503 this.match = this.match.substr(0, this.match.length - 1);
6504 this.matched = this.matched.substr(0, this.matched.length - 1);
6505
6506 if (lines.length - 1) {
6507 this.yylineno -= lines.length - 1;
6508 }
6509 var r = this.yylloc.range;
6510
6511 this.yylloc = {
6512 first_line: this.yylloc.first_line,
6513 last_line: this.yylineno + 1,
6514 first_column: this.yylloc.first_column,
6515 last_column: lines ?
6516 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
6517 + oldLines[oldLines.length - lines.length].length - lines[0].length :
6518 this.yylloc.first_column - len
6519 };
6520
6521 if (this.options.ranges) {
6522 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
6523 }
6524 this.yyleng = this.yytext.length;
6525 return this;
6526 },
6527
6528// When called from action, caches matched text and appends it on next action
6529more:function () {
6530 this._more = true;
6531 return this;
6532 },
6533
6534// 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.
6535reject:function () {
6536 if (this.options.backtrack_lexer) {
6537 this._backtrack = true;
6538 } else {
6539 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(), {
6540 text: "",
6541 token: null,
6542 line: this.yylineno
6543 });
6544
6545 }
6546 return this;
6547 },
6548
6549// retain first n characters of the match
6550less:function (n) {
6551 this.unput(this.match.slice(n));
6552 },
6553
6554// displays already matched input, i.e. for error messages
6555pastInput:function () {
6556 var past = this.matched.substr(0, this.matched.length - this.match.length);
6557 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
6558 },
6559
6560// displays upcoming input, i.e. for error messages
6561upcomingInput:function () {
6562 var next = this.match;
6563 if (next.length < 20) {
6564 next += this._input.substr(0, 20-next.length);
6565 }
6566 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
6567 },
6568
6569// displays the character position where the lexing error occurred, i.e. for error messages
6570showPosition:function () {
6571 var pre = this.pastInput();
6572 var c = new Array(pre.length + 1).join("-");
6573 return pre + this.upcomingInput() + "\n" + c + "^";
6574 },
6575
6576// test the lexed token: return FALSE when not a match, otherwise return token
6577test_match:function(match, indexed_rule) {
6578 var token,
6579 lines,
6580 backup;
6581
6582 if (this.options.backtrack_lexer) {
6583 // save context
6584 backup = {
6585 yylineno: this.yylineno,
6586 yylloc: {
6587 first_line: this.yylloc.first_line,
6588 last_line: this.last_line,
6589 first_column: this.yylloc.first_column,
6590 last_column: this.yylloc.last_column
6591 },
6592 yytext: this.yytext,
6593 match: this.match,
6594 matches: this.matches,
6595 matched: this.matched,
6596 yyleng: this.yyleng,
6597 offset: this.offset,
6598 _more: this._more,
6599 _input: this._input,
6600 yy: this.yy,
6601 conditionStack: this.conditionStack.slice(0),
6602 done: this.done
6603 };
6604 if (this.options.ranges) {
6605 backup.yylloc.range = this.yylloc.range.slice(0);
6606 }
6607 }
6608
6609 lines = match[0].match(/(?:\r\n?|\n).*/g);
6610 if (lines) {
6611 this.yylineno += lines.length;
6612 }
6613 this.yylloc = {
6614 first_line: this.yylloc.last_line,
6615 last_line: this.yylineno + 1,
6616 first_column: this.yylloc.last_column,
6617 last_column: lines ?
6618 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
6619 this.yylloc.last_column + match[0].length
6620 };
6621 this.yytext += match[0];
6622 this.match += match[0];
6623 this.matches = match;
6624 this.yyleng = this.yytext.length;
6625 if (this.options.ranges) {
6626 this.yylloc.range = [this.offset, this.offset += this.yyleng];
6627 }
6628 this._more = false;
6629 this._backtrack = false;
6630 this._input = this._input.slice(match[0].length);
6631 this.matched += match[0];
6632 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
6633 if (this.done && this._input) {
6634 this.done = false;
6635 }
6636 if (token) {
6637 return token;
6638 } else if (this._backtrack) {
6639 // recover context
6640 for (var k in backup) {
6641 this[k] = backup[k];
6642 }
6643 return false; // rule action called reject() implying the next rule should be tested instead.
6644 }
6645 return false;
6646 },
6647
6648// return next match in input
6649next:function () {
6650 if (this.done) {
6651 return this.EOF;
6652 }
6653 if (!this._input) {
6654 this.done = true;
6655 }
6656
6657 var token,
6658 match,
6659 tempMatch,
6660 index;
6661 if (!this._more) {
6662 this.yytext = '';
6663 this.match = '';
6664 }
6665 var rules = this._currentRules();
6666 for (var i = 0; i < rules.length; i++) {
6667 tempMatch = this._input.match(this.rules[rules[i]]);
6668 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
6669 match = tempMatch;
6670 index = i;
6671 if (this.options.backtrack_lexer) {
6672 token = this.test_match(tempMatch, rules[i]);
6673 if (token !== false) {
6674 return token;
6675 } else if (this._backtrack) {
6676 match = false;
6677 continue; // rule action called reject() implying a rule MISmatch.
6678 } else {
6679 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
6680 return false;
6681 }
6682 } else if (!this.options.flex) {
6683 break;
6684 }
6685 }
6686 }
6687 if (match) {
6688 token = this.test_match(match, rules[index]);
6689 if (token !== false) {
6690 return token;
6691 }
6692 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
6693 return false;
6694 }
6695 if (this._input === "") {
6696 return this.EOF;
6697 } else {
6698 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
6699 text: "",
6700 token: null,
6701 line: this.yylineno
6702 });
6703 }
6704 },
6705
6706// return next match that has a token
6707lex:function lex () {
6708 var r = this.next();
6709 if (r) {
6710 return r;
6711 } else {
6712 return this.lex();
6713 }
6714 },
6715
6716// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
6717begin:function begin (condition) {
6718 this.conditionStack.push(condition);
6719 },
6720
6721// pop the previously active lexer condition state off the condition stack
6722popState:function popState () {
6723 var n = this.conditionStack.length - 1;
6724 if (n > 0) {
6725 return this.conditionStack.pop();
6726 } else {
6727 return this.conditionStack[0];
6728 }
6729 },
6730
6731// produce the lexer rule set which is active for the currently active lexer condition state
6732_currentRules:function _currentRules () {
6733 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
6734 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
6735 } else {
6736 return this.conditions["INITIAL"].rules;
6737 }
6738 },
6739
6740// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
6741topState:function topState (n) {
6742 n = this.conditionStack.length - 1 - Math.abs(n || 0);
6743 if (n >= 0) {
6744 return this.conditionStack[n];
6745 } else {
6746 return "INITIAL";
6747 }
6748 },
6749
6750// alias for begin(condition)
6751pushState:function pushState (condition) {
6752 this.begin(condition);
6753 },
6754
6755// return the number of states currently on the stack
6756stateStackSize:function stateStackSize() {
6757 return this.conditionStack.length;
6758 },
6759options: {"case-insensitive":true},
6760performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
6761var YYSTATE=YY_START;
6762switch($avoiding_name_collisions) {
6763case 0: this.begin('open_directive'); return 29;
6764break;
6765case 1: this.begin('type_directive'); return 30;
6766break;
6767case 2: this.popState(); this.begin('arg_directive'); return 24;
6768break;
6769case 3: this.popState(); this.popState(); return 32;
6770break;
6771case 4:return 31;
6772break;
6773case 5:/* skip comments */
6774break;
6775case 6:/* skip comments */{ /*console.log('');*/ }
6776break;
6777case 7:return 26;
6778break;
6779case 8:/* do nothing */
6780break;
6781case 9:/* ignore */
6782break;
6783case 10: this.begin("title");return 13;
6784break;
6785case 11: this.popState(); return "title_value";
6786break;
6787case 12: this.begin("acc_title");return 15;
6788break;
6789case 13: this.popState(); return "acc_title_value";
6790break;
6791case 14: this.begin("acc_descr");return 17;
6792break;
6793case 15: this.popState(); return "acc_descr_value";
6794break;
6795case 16: this.begin("acc_descr_multiline");
6796break;
6797case 17: this.popState();
6798break;
6799case 18:return "acc_descr_multiline_value";
6800break;
6801case 19: this.begin("string");
6802break;
6803case 20: this.popState();
6804break;
6805case 21: return "txt";
6806break;
6807case 22:return 6;
6808break;
6809case 23:return 8;
6810break;
6811case 24:return "value";
6812break;
6813case 25:return 28;
6814break;
6815}
6816},
6817rules: [/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?:showData\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],
6818conditions: {"acc_descr_multiline":{"rules":[17,18],"inclusive":false},"acc_descr":{"rules":[15],"inclusive":false},"acc_title":{"rules":[13],"inclusive":false},"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":[20,21],"inclusive":false},"INITIAL":{"rules":[0,5,6,7,8,9,10,12,14,16,19,22,23,24,25],"inclusive":true}}
6819});
6820return lexer;
6821})();
6822parser.lexer = lexer;
6823function Parser () {
6824 this.yy = {};
6825}
6826Parser.prototype = parser;parser.Parser = Parser;
6827return new Parser;
6828})();
6829
6830
6831if (true) {
6832exports.parser = parser;
6833exports.Parser = parser.Parser;
6834exports.parse = function () { return parser.parse.apply(parser, arguments); };
6835exports.main = function commonjsMain (args) {
6836 if (!args[1]) {
6837 console.log('Usage: '+args[0]+' FILE');
6838 process.exit(1);
6839 }
6840 var source = (__webpack_require__(/*! fs */ "?a3fa").readFileSync)((__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize)(args[1]), "utf8");
6841 return exports.parser.parse(source);
6842};
6843if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
6844 exports.main(process.argv.slice(1));
6845}
6846}
6847
6848/***/ }),
6849
6850/***/ "./src/diagrams/requirement/parser/requirementDiagram.jison":
6851/*!******************************************************************!*\
6852 !*** ./src/diagrams/requirement/parser/requirementDiagram.jison ***!
6853 \******************************************************************/
6854/***/ ((module, exports, __webpack_require__) => {
6855
6856/* module decorator */ module = __webpack_require__.nmd(module);
6857/* parser generated by jison 0.4.18 */
6858/*
6859 Returns a Parser object of the following structure:
6860
6861 Parser: {
6862 yy: {}
6863 }
6864
6865 Parser.prototype: {
6866 yy: {},
6867 trace: function(),
6868 symbols_: {associative list: name ==> number},
6869 terminals_: {associative list: number ==> name},
6870 productions_: [...],
6871 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
6872 table: [...],
6873 defaultActions: {...},
6874 parseError: function(str, hash),
6875 parse: function(input),
6876
6877 lexer: {
6878 EOF: 1,
6879 parseError: function(str, hash),
6880 setInput: function(input),
6881 input: function(),
6882 unput: function(str),
6883 more: function(),
6884 less: function(n),
6885 pastInput: function(),
6886 upcomingInput: function(),
6887 showPosition: function(),
6888 test_match: function(regex_match_array, rule_index),
6889 next: function(),
6890 lex: function(),
6891 begin: function(condition),
6892 popState: function(),
6893 _currentRules: function(),
6894 topState: function(),
6895 pushState: function(condition),
6896
6897 options: {
6898 ranges: boolean (optional: true ==> token location info will include a .range[] member)
6899 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
6900 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)
6901 },
6902
6903 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
6904 rules: [...],
6905 conditions: {associative list: name ==> set},
6906 }
6907 }
6908
6909
6910 token location info (@$, _$, etc.): {
6911 first_line: n,
6912 last_line: n,
6913 first_column: n,
6914 last_column: n,
6915 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
6916 }
6917
6918
6919 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
6920 text: (matched text)
6921 token: (the produced terminal token, if any)
6922 line: (yylineno)
6923 }
6924 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
6925 loc: (yylloc)
6926 expected: (string describing the set of expected tokens)
6927 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
6928 }
6929*/
6930var parser = (function(){
6931var 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=[1,6],$V3=[1,7],$V4=[1,8],$V5=[5,6,8,14,16,18,19,40,41,42,43,44,45,53,71,72],$V6=[1,22],$V7=[2,13],$V8=[1,26],$V9=[1,27],$Va=[1,28],$Vb=[1,29],$Vc=[1,30],$Vd=[1,31],$Ve=[1,24],$Vf=[1,32],$Vg=[1,33],$Vh=[1,36],$Vi=[71,72],$Vj=[5,8,14,16,18,19,40,41,42,43,44,45,53,60,62,71,72],$Vk=[1,56],$Vl=[1,57],$Vm=[1,58],$Vn=[1,59],$Vo=[1,60],$Vp=[1,61],$Vq=[1,62],$Vr=[62,63],$Vs=[1,74],$Vt=[1,70],$Vu=[1,71],$Vv=[1,72],$Vw=[1,73],$Vx=[1,75],$Vy=[1,79],$Vz=[1,80],$VA=[1,77],$VB=[1,78],$VC=[5,8,14,16,18,19,40,41,42,43,44,45,53,71,72];
6932var parser = {trace: function trace () { },
6933yy: {},
6934symbols_: {"error":2,"start":3,"directive":4,"NEWLINE":5,"RD":6,"diagram":7,"EOF":8,"openDirective":9,"typeDirective":10,"closeDirective":11,":":12,"argDirective":13,"acc_title":14,"acc_title_value":15,"acc_descr":16,"acc_descr_value":17,"acc_descr_multiline_value":18,"open_directive":19,"type_directive":20,"arg_directive":21,"close_directive":22,"requirementDef":23,"elementDef":24,"relationshipDef":25,"requirementType":26,"requirementName":27,"STRUCT_START":28,"requirementBody":29,"ID":30,"COLONSEP":31,"id":32,"TEXT":33,"text":34,"RISK":35,"riskLevel":36,"VERIFYMTHD":37,"verifyType":38,"STRUCT_STOP":39,"REQUIREMENT":40,"FUNCTIONAL_REQUIREMENT":41,"INTERFACE_REQUIREMENT":42,"PERFORMANCE_REQUIREMENT":43,"PHYSICAL_REQUIREMENT":44,"DESIGN_CONSTRAINT":45,"LOW_RISK":46,"MED_RISK":47,"HIGH_RISK":48,"VERIFY_ANALYSIS":49,"VERIFY_DEMONSTRATION":50,"VERIFY_INSPECTION":51,"VERIFY_TEST":52,"ELEMENT":53,"elementName":54,"elementBody":55,"TYPE":56,"type":57,"DOCREF":58,"ref":59,"END_ARROW_L":60,"relationship":61,"LINE":62,"END_ARROW_R":63,"CONTAINS":64,"COPIES":65,"DERIVES":66,"SATISFIES":67,"VERIFIES":68,"REFINES":69,"TRACES":70,"unqString":71,"qString":72,"$accept":0,"$end":1},
6935terminals_: {2:"error",5:"NEWLINE",6:"RD",8:"EOF",12:":",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",28:"STRUCT_START",30:"ID",31:"COLONSEP",33:"TEXT",35:"RISK",37:"VERIFYMTHD",39:"STRUCT_STOP",40:"REQUIREMENT",41:"FUNCTIONAL_REQUIREMENT",42:"INTERFACE_REQUIREMENT",43:"PERFORMANCE_REQUIREMENT",44:"PHYSICAL_REQUIREMENT",45:"DESIGN_CONSTRAINT",46:"LOW_RISK",47:"MED_RISK",48:"HIGH_RISK",49:"VERIFY_ANALYSIS",50:"VERIFY_DEMONSTRATION",51:"VERIFY_INSPECTION",52:"VERIFY_TEST",53:"ELEMENT",56:"TYPE",58:"DOCREF",60:"END_ARROW_L",62:"LINE",63:"END_ARROW_R",64:"CONTAINS",65:"COPIES",66:"DERIVES",67:"SATISFIES",68:"VERIFIES",69:"REFINES",70:"TRACES",71:"unqString",72:"qString"},
6936productions_: [0,[3,3],[3,2],[3,4],[4,3],[4,5],[4,2],[4,2],[4,1],[9,1],[10,1],[13,1],[11,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[23,5],[29,5],[29,5],[29,5],[29,5],[29,2],[29,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[36,1],[36,1],[36,1],[38,1],[38,1],[38,1],[38,1],[24,5],[55,5],[55,5],[55,2],[55,1],[25,5],[25,5],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[27,1],[27,1],[32,1],[32,1],[34,1],[34,1],[54,1],[54,1],[57,1],[57,1],[59,1],[59,1]],
6937performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
6938/* this == yyval */
6939
6940var $0 = $$.length - 1;
6941switch (yystate) {
6942case 6:
6943 this.$=$$[$0].trim();yy.setAccTitle(this.$);
6944break;
6945case 7: case 8:
6946 this.$=$$[$0].trim();yy.setAccDescription(this.$);
6947break;
6948case 9:
6949 yy.parseDirective('%%{', 'open_directive');
6950break;
6951case 10:
6952 yy.parseDirective($$[$0], 'type_directive');
6953break;
6954case 11:
6955 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
6956break;
6957case 12:
6958 yy.parseDirective('}%%', 'close_directive', 'pie');
6959break;
6960case 13:
6961 this.$ = []
6962break;
6963case 19:
6964 yy.addRequirement($$[$0-3], $$[$0-4])
6965break;
6966case 20:
6967 yy.setNewReqId($$[$0-2]);
6968break;
6969case 21:
6970 yy.setNewReqText($$[$0-2]);
6971break;
6972case 22:
6973 yy.setNewReqRisk($$[$0-2]);
6974break;
6975case 23:
6976 yy.setNewReqVerifyMethod($$[$0-2]);
6977break;
6978case 26:
6979 this.$=yy.RequirementType.REQUIREMENT;
6980break;
6981case 27:
6982 this.$=yy.RequirementType.FUNCTIONAL_REQUIREMENT;
6983break;
6984case 28:
6985 this.$=yy.RequirementType.INTERFACE_REQUIREMENT;
6986break;
6987case 29:
6988 this.$=yy.RequirementType.PERFORMANCE_REQUIREMENT;
6989break;
6990case 30:
6991 this.$=yy.RequirementType.PHYSICAL_REQUIREMENT;
6992break;
6993case 31:
6994 this.$=yy.RequirementType.DESIGN_CONSTRAINT;
6995break;
6996case 32:
6997 this.$=yy.RiskLevel.LOW_RISK;
6998break;
6999case 33:
7000 this.$=yy.RiskLevel.MED_RISK;
7001break;
7002case 34:
7003 this.$=yy.RiskLevel.HIGH_RISK;
7004break;
7005case 35:
7006 this.$=yy.VerifyType.VERIFY_ANALYSIS;
7007break;
7008case 36:
7009 this.$=yy.VerifyType.VERIFY_DEMONSTRATION;
7010break;
7011case 37:
7012 this.$=yy.VerifyType.VERIFY_INSPECTION;
7013break;
7014case 38:
7015 this.$=yy.VerifyType.VERIFY_TEST;
7016break;
7017case 39:
7018 yy.addElement($$[$0-3])
7019break;
7020case 40:
7021 yy.setNewElementType($$[$0-2]);
7022break;
7023case 41:
7024 yy.setNewElementDocRef($$[$0-2]);
7025break;
7026case 44:
7027 yy.addRelationship($$[$0-2], $$[$0], $$[$0-4])
7028break;
7029case 45:
7030 yy.addRelationship($$[$0-2], $$[$0-4], $$[$0])
7031break;
7032case 46:
7033 this.$=yy.Relationships.CONTAINS;
7034break;
7035case 47:
7036 this.$=yy.Relationships.COPIES;
7037break;
7038case 48:
7039 this.$=yy.Relationships.DERIVES;
7040break;
7041case 49:
7042 this.$=yy.Relationships.SATISFIES;
7043break;
7044case 50:
7045 this.$=yy.Relationships.VERIFIES;
7046break;
7047case 51:
7048 this.$=yy.Relationships.REFINES;
7049break;
7050case 52:
7051 this.$=yy.Relationships.TRACES;
7052break;
7053}
7054},
7055table: [{3:1,4:2,6:$V0,9:4,14:$V1,16:$V2,18:$V3,19:$V4},{1:[3]},{3:10,4:2,5:[1,9],6:$V0,9:4,14:$V1,16:$V2,18:$V3,19:$V4},{5:[1,11]},{10:12,20:[1,13]},{15:[1,14]},{17:[1,15]},o($V5,[2,8]),{20:[2,9]},{3:16,4:2,6:$V0,9:4,14:$V1,16:$V2,18:$V3,19:$V4},{1:[2,2]},{4:21,5:$V6,7:17,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{11:34,12:[1,35],22:$Vh},o([12,22],[2,10]),o($V5,[2,6]),o($V5,[2,7]),{1:[2,1]},{8:[1,37]},{4:21,5:$V6,7:38,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{4:21,5:$V6,7:39,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{4:21,5:$V6,7:40,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{4:21,5:$V6,7:41,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{4:21,5:$V6,7:42,8:$V7,9:4,14:$V1,16:$V2,18:$V3,19:$V4,23:18,24:19,25:20,26:23,32:25,40:$V8,41:$V9,42:$Va,43:$Vb,44:$Vc,45:$Vd,53:$Ve,71:$Vf,72:$Vg},{27:43,71:[1,44],72:[1,45]},{54:46,71:[1,47],72:[1,48]},{60:[1,49],62:[1,50]},o($Vi,[2,26]),o($Vi,[2,27]),o($Vi,[2,28]),o($Vi,[2,29]),o($Vi,[2,30]),o($Vi,[2,31]),o($Vj,[2,55]),o($Vj,[2,56]),o($V5,[2,4]),{13:51,21:[1,52]},o($V5,[2,12]),{1:[2,3]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{8:[2,17]},{8:[2,18]},{28:[1,53]},{28:[2,53]},{28:[2,54]},{28:[1,54]},{28:[2,59]},{28:[2,60]},{61:55,64:$Vk,65:$Vl,66:$Vm,67:$Vn,68:$Vo,69:$Vp,70:$Vq},{61:63,64:$Vk,65:$Vl,66:$Vm,67:$Vn,68:$Vo,69:$Vp,70:$Vq},{11:64,22:$Vh},{22:[2,11]},{5:[1,65]},{5:[1,66]},{62:[1,67]},o($Vr,[2,46]),o($Vr,[2,47]),o($Vr,[2,48]),o($Vr,[2,49]),o($Vr,[2,50]),o($Vr,[2,51]),o($Vr,[2,52]),{63:[1,68]},o($V5,[2,5]),{5:$Vs,29:69,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},{5:$Vy,39:$Vz,55:76,56:$VA,58:$VB},{32:81,71:$Vf,72:$Vg},{32:82,71:$Vf,72:$Vg},o($VC,[2,19]),{31:[1,83]},{31:[1,84]},{31:[1,85]},{31:[1,86]},{5:$Vs,29:87,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},o($VC,[2,25]),o($VC,[2,39]),{31:[1,88]},{31:[1,89]},{5:$Vy,39:$Vz,55:90,56:$VA,58:$VB},o($VC,[2,43]),o($VC,[2,44]),o($VC,[2,45]),{32:91,71:$Vf,72:$Vg},{34:92,71:[1,93],72:[1,94]},{36:95,46:[1,96],47:[1,97],48:[1,98]},{38:99,49:[1,100],50:[1,101],51:[1,102],52:[1,103]},o($VC,[2,24]),{57:104,71:[1,105],72:[1,106]},{59:107,71:[1,108],72:[1,109]},o($VC,[2,42]),{5:[1,110]},{5:[1,111]},{5:[2,57]},{5:[2,58]},{5:[1,112]},{5:[2,32]},{5:[2,33]},{5:[2,34]},{5:[1,113]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[2,38]},{5:[1,114]},{5:[2,61]},{5:[2,62]},{5:[1,115]},{5:[2,63]},{5:[2,64]},{5:$Vs,29:116,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},{5:$Vs,29:117,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},{5:$Vs,29:118,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},{5:$Vs,29:119,30:$Vt,33:$Vu,35:$Vv,37:$Vw,39:$Vx},{5:$Vy,39:$Vz,55:120,56:$VA,58:$VB},{5:$Vy,39:$Vz,55:121,56:$VA,58:$VB},o($VC,[2,20]),o($VC,[2,21]),o($VC,[2,22]),o($VC,[2,23]),o($VC,[2,40]),o($VC,[2,41])],
7056defaultActions: {8:[2,9],10:[2,2],16:[2,1],37:[2,3],38:[2,14],39:[2,15],40:[2,16],41:[2,17],42:[2,18],44:[2,53],45:[2,54],47:[2,59],48:[2,60],52:[2,11],93:[2,57],94:[2,58],96:[2,32],97:[2,33],98:[2,34],100:[2,35],101:[2,36],102:[2,37],103:[2,38],105:[2,61],106:[2,62],108:[2,63],109:[2,64]},
7057parseError: function parseError (str, hash) {
7058 if (hash.recoverable) {
7059 this.trace(str);
7060 } else {
7061 var error = new Error(str);
7062 error.hash = hash;
7063 throw error;
7064 }
7065},
7066parse: function parse(input) {
7067 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
7068 var args = lstack.slice.call(arguments, 1);
7069 var lexer = Object.create(this.lexer);
7070 var sharedState = { yy: {} };
7071 for (var k in this.yy) {
7072 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
7073 sharedState.yy[k] = this.yy[k];
7074 }
7075 }
7076 lexer.setInput(input, sharedState.yy);
7077 sharedState.yy.lexer = lexer;
7078 sharedState.yy.parser = this;
7079 if (typeof lexer.yylloc == 'undefined') {
7080 lexer.yylloc = {};
7081 }
7082 var yyloc = lexer.yylloc;
7083 lstack.push(yyloc);
7084 var ranges = lexer.options && lexer.options.ranges;
7085 if (typeof sharedState.yy.parseError === 'function') {
7086 this.parseError = sharedState.yy.parseError;
7087 } else {
7088 this.parseError = Object.getPrototypeOf(this).parseError;
7089 }
7090 function popStack(n) {
7091 stack.length = stack.length - 2 * n;
7092 vstack.length = vstack.length - n;
7093 lstack.length = lstack.length - n;
7094 }
7095 function lex() {
7096 var token;
7097 token = tstack.pop() || lexer.lex() || EOF;
7098 if (typeof token !== 'number') {
7099 if (token instanceof Array) {
7100 tstack = token;
7101 token = tstack.pop();
7102 }
7103 token = self.symbols_[token] || token;
7104 }
7105 return token;
7106 }
7107 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
7108 while (true) {
7109 state = stack[stack.length - 1];
7110 if (this.defaultActions[state]) {
7111 action = this.defaultActions[state];
7112 } else {
7113 if (symbol === null || typeof symbol == 'undefined') {
7114 symbol = lex();
7115 }
7116 action = table[state] && table[state][symbol];
7117 }
7118 if (typeof action === 'undefined' || !action.length || !action[0]) {
7119 var errStr = '';
7120 expected = [];
7121 for (p in table[state]) {
7122 if (this.terminals_[p] && p > TERROR) {
7123 expected.push('\'' + this.terminals_[p] + '\'');
7124 }
7125 }
7126 if (lexer.showPosition) {
7127 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
7128 } else {
7129 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
7130 }
7131 this.parseError(errStr, {
7132 text: lexer.match,
7133 token: this.terminals_[symbol] || symbol,
7134 line: lexer.yylineno,
7135 loc: yyloc,
7136 expected: expected
7137 });
7138 }
7139 if (action[0] instanceof Array && action.length > 1) {
7140 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
7141 }
7142 switch (action[0]) {
7143 case 1:
7144 stack.push(symbol);
7145 vstack.push(lexer.yytext);
7146 lstack.push(lexer.yylloc);
7147 stack.push(action[1]);
7148 symbol = null;
7149 if (!preErrorSymbol) {
7150 yyleng = lexer.yyleng;
7151 yytext = lexer.yytext;
7152 yylineno = lexer.yylineno;
7153 yyloc = lexer.yylloc;
7154 if (recovering > 0) {
7155 recovering--;
7156 }
7157 } else {
7158 symbol = preErrorSymbol;
7159 preErrorSymbol = null;
7160 }
7161 break;
7162 case 2:
7163 len = this.productions_[action[1]][1];
7164 yyval.$ = vstack[vstack.length - len];
7165 yyval._$ = {
7166 first_line: lstack[lstack.length - (len || 1)].first_line,
7167 last_line: lstack[lstack.length - 1].last_line,
7168 first_column: lstack[lstack.length - (len || 1)].first_column,
7169 last_column: lstack[lstack.length - 1].last_column
7170 };
7171 if (ranges) {
7172 yyval._$.range = [
7173 lstack[lstack.length - (len || 1)].range[0],
7174 lstack[lstack.length - 1].range[1]
7175 ];
7176 }
7177 r = this.performAction.apply(yyval, [
7178 yytext,
7179 yyleng,
7180 yylineno,
7181 sharedState.yy,
7182 action[1],
7183 vstack,
7184 lstack
7185 ].concat(args));
7186 if (typeof r !== 'undefined') {
7187 return r;
7188 }
7189 if (len) {
7190 stack = stack.slice(0, -1 * len * 2);
7191 vstack = vstack.slice(0, -1 * len);
7192 lstack = lstack.slice(0, -1 * len);
7193 }
7194 stack.push(this.productions_[action[1]][0]);
7195 vstack.push(yyval.$);
7196 lstack.push(yyval._$);
7197 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
7198 stack.push(newState);
7199 break;
7200 case 3:
7201 return true;
7202 }
7203 }
7204 return true;
7205}};
7206
7207/* generated by jison-lex 0.3.4 */
7208var lexer = (function(){
7209var lexer = ({
7210
7211EOF:1,
7212
7213parseError:function parseError(str, hash) {
7214 if (this.yy.parser) {
7215 this.yy.parser.parseError(str, hash);
7216 } else {
7217 throw new Error(str);
7218 }
7219 },
7220
7221// resets the lexer, sets new input
7222setInput:function (input, yy) {
7223 this.yy = yy || this.yy || {};
7224 this._input = input;
7225 this._more = this._backtrack = this.done = false;
7226 this.yylineno = this.yyleng = 0;
7227 this.yytext = this.matched = this.match = '';
7228 this.conditionStack = ['INITIAL'];
7229 this.yylloc = {
7230 first_line: 1,
7231 first_column: 0,
7232 last_line: 1,
7233 last_column: 0
7234 };
7235 if (this.options.ranges) {
7236 this.yylloc.range = [0,0];
7237 }
7238 this.offset = 0;
7239 return this;
7240 },
7241
7242// consumes and returns one char from the input
7243input:function () {
7244 var ch = this._input[0];
7245 this.yytext += ch;
7246 this.yyleng++;
7247 this.offset++;
7248 this.match += ch;
7249 this.matched += ch;
7250 var lines = ch.match(/(?:\r\n?|\n).*/g);
7251 if (lines) {
7252 this.yylineno++;
7253 this.yylloc.last_line++;
7254 } else {
7255 this.yylloc.last_column++;
7256 }
7257 if (this.options.ranges) {
7258 this.yylloc.range[1]++;
7259 }
7260
7261 this._input = this._input.slice(1);
7262 return ch;
7263 },
7264
7265// unshifts one char (or a string) into the input
7266unput:function (ch) {
7267 var len = ch.length;
7268 var lines = ch.split(/(?:\r\n?|\n)/g);
7269
7270 this._input = ch + this._input;
7271 this.yytext = this.yytext.substr(0, this.yytext.length - len);
7272 //this.yyleng -= len;
7273 this.offset -= len;
7274 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
7275 this.match = this.match.substr(0, this.match.length - 1);
7276 this.matched = this.matched.substr(0, this.matched.length - 1);
7277
7278 if (lines.length - 1) {
7279 this.yylineno -= lines.length - 1;
7280 }
7281 var r = this.yylloc.range;
7282
7283 this.yylloc = {
7284 first_line: this.yylloc.first_line,
7285 last_line: this.yylineno + 1,
7286 first_column: this.yylloc.first_column,
7287 last_column: lines ?
7288 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
7289 + oldLines[oldLines.length - lines.length].length - lines[0].length :
7290 this.yylloc.first_column - len
7291 };
7292
7293 if (this.options.ranges) {
7294 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
7295 }
7296 this.yyleng = this.yytext.length;
7297 return this;
7298 },
7299
7300// When called from action, caches matched text and appends it on next action
7301more:function () {
7302 this._more = true;
7303 return this;
7304 },
7305
7306// 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.
7307reject:function () {
7308 if (this.options.backtrack_lexer) {
7309 this._backtrack = true;
7310 } else {
7311 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(), {
7312 text: "",
7313 token: null,
7314 line: this.yylineno
7315 });
7316
7317 }
7318 return this;
7319 },
7320
7321// retain first n characters of the match
7322less:function (n) {
7323 this.unput(this.match.slice(n));
7324 },
7325
7326// displays already matched input, i.e. for error messages
7327pastInput:function () {
7328 var past = this.matched.substr(0, this.matched.length - this.match.length);
7329 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
7330 },
7331
7332// displays upcoming input, i.e. for error messages
7333upcomingInput:function () {
7334 var next = this.match;
7335 if (next.length < 20) {
7336 next += this._input.substr(0, 20-next.length);
7337 }
7338 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
7339 },
7340
7341// displays the character position where the lexing error occurred, i.e. for error messages
7342showPosition:function () {
7343 var pre = this.pastInput();
7344 var c = new Array(pre.length + 1).join("-");
7345 return pre + this.upcomingInput() + "\n" + c + "^";
7346 },
7347
7348// test the lexed token: return FALSE when not a match, otherwise return token
7349test_match:function(match, indexed_rule) {
7350 var token,
7351 lines,
7352 backup;
7353
7354 if (this.options.backtrack_lexer) {
7355 // save context
7356 backup = {
7357 yylineno: this.yylineno,
7358 yylloc: {
7359 first_line: this.yylloc.first_line,
7360 last_line: this.last_line,
7361 first_column: this.yylloc.first_column,
7362 last_column: this.yylloc.last_column
7363 },
7364 yytext: this.yytext,
7365 match: this.match,
7366 matches: this.matches,
7367 matched: this.matched,
7368 yyleng: this.yyleng,
7369 offset: this.offset,
7370 _more: this._more,
7371 _input: this._input,
7372 yy: this.yy,
7373 conditionStack: this.conditionStack.slice(0),
7374 done: this.done
7375 };
7376 if (this.options.ranges) {
7377 backup.yylloc.range = this.yylloc.range.slice(0);
7378 }
7379 }
7380
7381 lines = match[0].match(/(?:\r\n?|\n).*/g);
7382 if (lines) {
7383 this.yylineno += lines.length;
7384 }
7385 this.yylloc = {
7386 first_line: this.yylloc.last_line,
7387 last_line: this.yylineno + 1,
7388 first_column: this.yylloc.last_column,
7389 last_column: lines ?
7390 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
7391 this.yylloc.last_column + match[0].length
7392 };
7393 this.yytext += match[0];
7394 this.match += match[0];
7395 this.matches = match;
7396 this.yyleng = this.yytext.length;
7397 if (this.options.ranges) {
7398 this.yylloc.range = [this.offset, this.offset += this.yyleng];
7399 }
7400 this._more = false;
7401 this._backtrack = false;
7402 this._input = this._input.slice(match[0].length);
7403 this.matched += match[0];
7404 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
7405 if (this.done && this._input) {
7406 this.done = false;
7407 }
7408 if (token) {
7409 return token;
7410 } else if (this._backtrack) {
7411 // recover context
7412 for (var k in backup) {
7413 this[k] = backup[k];
7414 }
7415 return false; // rule action called reject() implying the next rule should be tested instead.
7416 }
7417 return false;
7418 },
7419
7420// return next match in input
7421next:function () {
7422 if (this.done) {
7423 return this.EOF;
7424 }
7425 if (!this._input) {
7426 this.done = true;
7427 }
7428
7429 var token,
7430 match,
7431 tempMatch,
7432 index;
7433 if (!this._more) {
7434 this.yytext = '';
7435 this.match = '';
7436 }
7437 var rules = this._currentRules();
7438 for (var i = 0; i < rules.length; i++) {
7439 tempMatch = this._input.match(this.rules[rules[i]]);
7440 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
7441 match = tempMatch;
7442 index = i;
7443 if (this.options.backtrack_lexer) {
7444 token = this.test_match(tempMatch, rules[i]);
7445 if (token !== false) {
7446 return token;
7447 } else if (this._backtrack) {
7448 match = false;
7449 continue; // rule action called reject() implying a rule MISmatch.
7450 } else {
7451 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
7452 return false;
7453 }
7454 } else if (!this.options.flex) {
7455 break;
7456 }
7457 }
7458 }
7459 if (match) {
7460 token = this.test_match(match, rules[index]);
7461 if (token !== false) {
7462 return token;
7463 }
7464 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
7465 return false;
7466 }
7467 if (this._input === "") {
7468 return this.EOF;
7469 } else {
7470 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
7471 text: "",
7472 token: null,
7473 line: this.yylineno
7474 });
7475 }
7476 },
7477
7478// return next match that has a token
7479lex:function lex () {
7480 var r = this.next();
7481 if (r) {
7482 return r;
7483 } else {
7484 return this.lex();
7485 }
7486 },
7487
7488// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
7489begin:function begin (condition) {
7490 this.conditionStack.push(condition);
7491 },
7492
7493// pop the previously active lexer condition state off the condition stack
7494popState:function popState () {
7495 var n = this.conditionStack.length - 1;
7496 if (n > 0) {
7497 return this.conditionStack.pop();
7498 } else {
7499 return this.conditionStack[0];
7500 }
7501 },
7502
7503// produce the lexer rule set which is active for the currently active lexer condition state
7504_currentRules:function _currentRules () {
7505 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
7506 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
7507 } else {
7508 return this.conditions["INITIAL"].rules;
7509 }
7510 },
7511
7512// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
7513topState:function topState (n) {
7514 n = this.conditionStack.length - 1 - Math.abs(n || 0);
7515 if (n >= 0) {
7516 return this.conditionStack[n];
7517 } else {
7518 return "INITIAL";
7519 }
7520 },
7521
7522// alias for begin(condition)
7523pushState:function pushState (condition) {
7524 this.begin(condition);
7525 },
7526
7527// return the number of states currently on the stack
7528stateStackSize:function stateStackSize() {
7529 return this.conditionStack.length;
7530 },
7531options: {"case-insensitive":true},
7532performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
7533var YYSTATE=YY_START;
7534switch($avoiding_name_collisions) {
7535case 0: this.begin('open_directive'); return 19;
7536break;
7537case 1: this.begin('type_directive'); return 20;
7538break;
7539case 2: this.popState(); this.begin('arg_directive'); return 12;
7540break;
7541case 3: this.popState(); this.popState(); return 22;
7542break;
7543case 4:return 21;
7544break;
7545case 5:return 'title';
7546break;
7547case 6: this.begin("acc_title");return 14;
7548break;
7549case 7: this.popState(); return "acc_title_value";
7550break;
7551case 8: this.begin("acc_descr");return 16;
7552break;
7553case 9: this.popState(); return "acc_descr_value";
7554break;
7555case 10: this.begin("acc_descr_multiline");
7556break;
7557case 11: this.popState();
7558break;
7559case 12:return "acc_descr_multiline_value";
7560break;
7561case 13:return 5;
7562break;
7563case 14:/* skip all whitespace */
7564break;
7565case 15:/* skip comments */
7566break;
7567case 16:/* skip comments */
7568break;
7569case 17:return 8;
7570break;
7571case 18:return 6;
7572break;
7573case 19:return 28;
7574break;
7575case 20:return 39;
7576break;
7577case 21:return 31;
7578break;
7579case 22:return 30;
7580break;
7581case 23:return 33;
7582break;
7583case 24:return 35;
7584break;
7585case 25:return 37;
7586break;
7587case 26:return 40;
7588break;
7589case 27:return 41;
7590break;
7591case 28:return 42;
7592break;
7593case 29:return 43;
7594break;
7595case 30:return 44;
7596break;
7597case 31:return 45;
7598break;
7599case 32:return 46;
7600break;
7601case 33:return 47;
7602break;
7603case 34:return 48;
7604break;
7605case 35:return 49;
7606break;
7607case 36:return 50;
7608break;
7609case 37:return 51;
7610break;
7611case 38:return 52;
7612break;
7613case 39:return 53;
7614break;
7615case 40:return 64;
7616break;
7617case 41:return 65;
7618break;
7619case 42:return 66;
7620break;
7621case 43:return 67;
7622break;
7623case 44:return 68;
7624break;
7625case 45:return 69;
7626break;
7627case 46:return 70;
7628break;
7629case 47:return 56;
7630break;
7631case 48:return 58;
7632break;
7633case 49:return 60;
7634break;
7635case 50:return 63;
7636break;
7637case 51:return 62;
7638break;
7639case 52: this.begin("string");
7640break;
7641case 53: this.popState();
7642break;
7643case 54: return "qString";
7644break;
7645case 55: yy_.yytext = yy_.yytext.trim(); return 71;
7646break;
7647}
7648},
7649rules: [/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],
7650conditions: {"acc_descr_multiline":{"rules":[11,12],"inclusive":false},"acc_descr":{"rules":[9],"inclusive":false},"acc_title":{"rules":[7],"inclusive":false},"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},"unqString":{"rules":[],"inclusive":false},"token":{"rules":[],"inclusive":false},"string":{"rules":[53,54],"inclusive":false},"INITIAL":{"rules":[0,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55],"inclusive":true}}
7651});
7652return lexer;
7653})();
7654parser.lexer = lexer;
7655function Parser () {
7656 this.yy = {};
7657}
7658Parser.prototype = parser;parser.Parser = Parser;
7659return new Parser;
7660})();
7661
7662
7663if (true) {
7664exports.parser = parser;
7665exports.Parser = parser.Parser;
7666exports.parse = function () { return parser.parse.apply(parser, arguments); };
7667exports.main = function commonjsMain (args) {
7668 if (!args[1]) {
7669 console.log('Usage: '+args[0]+' FILE');
7670 process.exit(1);
7671 }
7672 var source = (__webpack_require__(/*! fs */ "?ebf4").readFileSync)((__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize)(args[1]), "utf8");
7673 return exports.parser.parse(source);
7674};
7675if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
7676 exports.main(process.argv.slice(1));
7677}
7678}
7679
7680/***/ }),
7681
7682/***/ "./src/diagrams/sequence/parser/sequenceDiagram.jison":
7683/*!************************************************************!*\
7684 !*** ./src/diagrams/sequence/parser/sequenceDiagram.jison ***!
7685 \************************************************************/
7686/***/ ((module, exports, __webpack_require__) => {
7687
7688/* module decorator */ module = __webpack_require__.nmd(module);
7689/* parser generated by jison 0.4.18 */
7690/*
7691 Returns a Parser object of the following structure:
7692
7693 Parser: {
7694 yy: {}
7695 }
7696
7697 Parser.prototype: {
7698 yy: {},
7699 trace: function(),
7700 symbols_: {associative list: name ==> number},
7701 terminals_: {associative list: number ==> name},
7702 productions_: [...],
7703 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
7704 table: [...],
7705 defaultActions: {...},
7706 parseError: function(str, hash),
7707 parse: function(input),
7708
7709 lexer: {
7710 EOF: 1,
7711 parseError: function(str, hash),
7712 setInput: function(input),
7713 input: function(),
7714 unput: function(str),
7715 more: function(),
7716 less: function(n),
7717 pastInput: function(),
7718 upcomingInput: function(),
7719 showPosition: function(),
7720 test_match: function(regex_match_array, rule_index),
7721 next: function(),
7722 lex: function(),
7723 begin: function(condition),
7724 popState: function(),
7725 _currentRules: function(),
7726 topState: function(),
7727 pushState: function(condition),
7728
7729 options: {
7730 ranges: boolean (optional: true ==> token location info will include a .range[] member)
7731 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
7732 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)
7733 },
7734
7735 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
7736 rules: [...],
7737 conditions: {associative list: name ==> set},
7738 }
7739 }
7740
7741
7742 token location info (@$, _$, etc.): {
7743 first_line: n,
7744 last_line: n,
7745 first_column: n,
7746 last_column: n,
7747 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
7748 }
7749
7750
7751 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
7752 text: (matched text)
7753 token: (the produced terminal token, if any)
7754 line: (yylineno)
7755 }
7756 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
7757 loc: (yylloc)
7758 expected: (string describing the set of expected tokens)
7759 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
7760 }
7761*/
7762var parser = (function(){
7763var 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,19],$V9=[1,21],$Va=[1,22],$Vb=[1,23],$Vc=[1,29],$Vd=[1,30],$Ve=[1,31],$Vf=[1,32],$Vg=[1,33],$Vh=[1,34],$Vi=[1,35],$Vj=[1,36],$Vk=[1,37],$Vl=[1,38],$Vm=[1,39],$Vn=[1,40],$Vo=[1,43],$Vp=[1,44],$Vq=[1,45],$Vr=[1,46],$Vs=[1,47],$Vt=[1,48],$Vu=[1,51],$Vv=[1,4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,51,52,53,58,59,60,61,69,79],$Vw=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,53,58,59,60,61,69,79],$Vx=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,52,53,58,59,60,61,69,79],$Vy=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,51,53,58,59,60,61,69,79],$Vz=[4,5,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,53,58,59,60,61,69,79],$VA=[67,68,69],$VB=[1,121],$VC=[1,4,5,7,16,20,22,25,26,32,33,34,36,38,39,40,41,42,43,45,47,49,50,51,52,53,58,59,60,61,69,79];
7764var parser = {trace: function trace () { },
7765yy: {},
7766symbols_: {"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,"participant_actor":20,"signal":21,"autonumber":22,"NUM":23,"off":24,"activate":25,"deactivate":26,"note_statement":27,"links_statement":28,"link_statement":29,"properties_statement":30,"details_statement":31,"title":32,"legacy_title":33,"acc_title":34,"acc_title_value":35,"acc_descr":36,"acc_descr_value":37,"acc_descr_multiline_value":38,"loop":39,"end":40,"rect":41,"opt":42,"alt":43,"else_sections":44,"par":45,"par_sections":46,"critical":47,"option_sections":48,"break":49,"option":50,"and":51,"else":52,"note":53,"placement":54,"text2":55,"over":56,"actor_pair":57,"links":58,"link":59,"properties":60,"details":61,"spaceList":62,",":63,"left_of":64,"right_of":65,"signaltype":66,"+":67,"-":68,"ACTOR":69,"SOLID_OPEN_ARROW":70,"DOTTED_OPEN_ARROW":71,"SOLID_ARROW":72,"DOTTED_ARROW":73,"SOLID_CROSS":74,"DOTTED_CROSS":75,"SOLID_POINT":76,"DOTTED_POINT":77,"TXT":78,"open_directive":79,"type_directive":80,"arg_directive":81,"close_directive":82,"$accept":0,"$end":1},
7767terminals_: {2:"error",4:"SPACE",5:"NEWLINE",7:"SD",14:":",16:"participant",18:"AS",19:"restOfLine",20:"participant_actor",22:"autonumber",23:"NUM",24:"off",25:"activate",26:"deactivate",32:"title",33:"legacy_title",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",39:"loop",40:"end",41:"rect",42:"opt",43:"alt",45:"par",47:"critical",49:"break",50:"option",51:"and",52:"else",53:"note",56:"over",58:"links",59:"link",60:"properties",61:"details",63:",",64:"left_of",65:"right_of",67:"+",68:"-",69:"ACTOR",70:"SOLID_OPEN_ARROW",71:"DOTTED_OPEN_ARROW",72:"SOLID_ARROW",73:"DOTTED_ARROW",74:"SOLID_CROSS",75:"DOTTED_CROSS",76:"SOLID_POINT",77:"DOTTED_POINT",78:"TXT",79:"open_directive",80:"type_directive",81:"arg_directive",82:"close_directive"},
7768productions_: [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,5],[10,3],[10,2],[10,4],[10,3],[10,3],[10,2],[10,3],[10,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,2],[10,2],[10,1],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,1],[48,1],[48,4],[46,1],[46,4],[44,1],[44,4],[27,4],[27,4],[28,3],[29,3],[30,3],[31,3],[62,2],[62,1],[57,3],[57,1],[54,1],[54,1],[21,5],[21,5],[21,4],[17,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[55,1],[11,1],[12,1],[15,1],[13,1]],
7769performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
7770/* this == yyval */
7771
7772var $0 = $$.length - 1;
7773switch (yystate) {
7774case 4:
7775 yy.apply($$[$0]);return $$[$0];
7776break;
7777case 5:
7778 this.$ = []
7779break;
7780case 6:
7781$$[$0-1].push($$[$0]);this.$ = $$[$0-1]
7782break;
7783case 7: case 8:
7784 this.$ = $$[$0]
7785break;
7786case 9:
7787 this.$=[];
7788break;
7789case 12:
7790$$[$0-3].type='addParticipant';$$[$0-3].description=yy.parseMessage($$[$0-1]); this.$=$$[$0-3];
7791break;
7792case 13:
7793$$[$0-1].type='addParticipant';this.$=$$[$0-1];
7794break;
7795case 14:
7796$$[$0-3].type='addActor';$$[$0-3].description=yy.parseMessage($$[$0-1]); this.$=$$[$0-3];
7797break;
7798case 15:
7799$$[$0-1].type='addActor'; this.$=$$[$0-1];
7800break;
7801case 17:
7802 this.$= {type:'sequenceIndex',sequenceIndex: Number($$[$0-2]), sequenceIndexStep:Number($$[$0-1]), sequenceVisible:true, signalType:yy.LINETYPE.AUTONUMBER};
7803break;
7804case 18:
7805 this.$ = {type:'sequenceIndex',sequenceIndex: Number($$[$0-1]), sequenceIndexStep:1, sequenceVisible:true, signalType:yy.LINETYPE.AUTONUMBER};
7806break;
7807case 19:
7808 this.$ = {type:'sequenceIndex', sequenceVisible:false, signalType:yy.LINETYPE.AUTONUMBER};
7809break;
7810case 20:
7811this.$ = {type:'sequenceIndex', sequenceVisible:true, signalType:yy.LINETYPE.AUTONUMBER};
7812break;
7813case 21:
7814this.$={type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0-1]};
7815break;
7816case 22:
7817this.$={type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0-1]};
7818break;
7819case 28:
7820yy.setDiagramTitle($$[$0].substring(6));this.$=$$[$0].substring(6);
7821break;
7822case 29:
7823yy.setDiagramTitle($$[$0].substring(7));this.$=$$[$0].substring(7);
7824break;
7825case 30:
7826 this.$=$$[$0].trim();yy.setAccTitle(this.$);
7827break;
7828case 31: case 32:
7829 this.$=$$[$0].trim();yy.setAccDescription(this.$);
7830break;
7831case 33:
7832
7833 $$[$0-1].unshift({type: 'loopStart', loopText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.LOOP_START});
7834 $$[$0-1].push({type: 'loopEnd', loopText:$$[$0-2], signalType: yy.LINETYPE.LOOP_END});
7835 this.$=$$[$0-1];
7836break;
7837case 34:
7838
7839 $$[$0-1].unshift({type: 'rectStart', color:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.RECT_START });
7840 $$[$0-1].push({type: 'rectEnd', color:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.RECT_END });
7841 this.$=$$[$0-1];
7842break;
7843case 35:
7844
7845 $$[$0-1].unshift({type: 'optStart', optText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.OPT_START});
7846 $$[$0-1].push({type: 'optEnd', optText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.OPT_END});
7847 this.$=$$[$0-1];
7848break;
7849case 36:
7850
7851 // Alt start
7852 $$[$0-1].unshift({type: 'altStart', altText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.ALT_START});
7853 // Content in alt is already in $$[$0-1]
7854 // End
7855 $$[$0-1].push({type: 'altEnd', signalType: yy.LINETYPE.ALT_END});
7856 this.$=$$[$0-1];
7857break;
7858case 37:
7859
7860 // Parallel start
7861 $$[$0-1].unshift({type: 'parStart', parText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.PAR_START});
7862 // Content in par is already in $$[$0-1]
7863 // End
7864 $$[$0-1].push({type: 'parEnd', signalType: yy.LINETYPE.PAR_END});
7865 this.$=$$[$0-1];
7866break;
7867case 38:
7868
7869 // critical start
7870 $$[$0-1].unshift({type: 'criticalStart', criticalText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.CRITICAL_START});
7871 // Content in critical is already in $$[$0-1]
7872 // critical end
7873 $$[$0-1].push({type: 'criticalEnd', signalType: yy.LINETYPE.CRITICAL_END});
7874 this.$=$$[$0-1];
7875break;
7876case 39:
7877
7878 $$[$0-1].unshift({type: 'breakStart', breakText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.BREAK_START});
7879 $$[$0-1].push({type: 'breakEnd', optText:yy.parseMessage($$[$0-2]), signalType: yy.LINETYPE.BREAK_END});
7880 this.$=$$[$0-1];
7881break;
7882case 42:
7883 this.$ = $$[$0-3].concat([{type: 'option', optionText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.CRITICAL_OPTION}, $$[$0]]);
7884break;
7885case 44:
7886 this.$ = $$[$0-3].concat([{type: 'and', parText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.PAR_AND}, $$[$0]]);
7887break;
7888case 46:
7889 this.$ = $$[$0-3].concat([{type: 'else', altText:yy.parseMessage($$[$0-1]), signalType: yy.LINETYPE.ALT_ELSE}, $$[$0]]);
7890break;
7891case 47:
7892
7893 this.$ = [$$[$0-1], {type:'addNote', placement:$$[$0-2], actor:$$[$0-1].actor, text:$$[$0]}];
7894break;
7895case 48:
7896
7897 // Coerce actor_pair into a [to, from, ...] array
7898 $$[$0-2] = [].concat($$[$0-1], $$[$0-1]).slice(0, 2);
7899 $$[$0-2][0] = $$[$0-2][0].actor;
7900 $$[$0-2][1] = $$[$0-2][1].actor;
7901 this.$ = [$$[$0-1], {type:'addNote', placement:yy.PLACEMENT.OVER, actor:$$[$0-2].slice(0, 2), text:$$[$0]}];
7902break;
7903case 49:
7904
7905 this.$ = [$$[$0-1], {type:'addLinks', actor:$$[$0-1].actor, text:$$[$0]}];
7906
7907break;
7908case 50:
7909
7910 this.$ = [$$[$0-1], {type:'addALink', actor:$$[$0-1].actor, text:$$[$0]}];
7911
7912break;
7913case 51:
7914
7915 this.$ = [$$[$0-1], {type:'addProperties', actor:$$[$0-1].actor, text:$$[$0]}];
7916
7917break;
7918case 52:
7919
7920 this.$ = [$$[$0-1], {type:'addDetails', actor:$$[$0-1].actor, text:$$[$0]}];
7921
7922break;
7923case 55:
7924 this.$ = [$$[$0-2], $$[$0]];
7925break;
7926case 56:
7927 this.$ = $$[$0];
7928break;
7929case 57:
7930 this.$ = yy.PLACEMENT.LEFTOF;
7931break;
7932case 58:
7933 this.$ = yy.PLACEMENT.RIGHTOF;
7934break;
7935case 59:
7936 this.$ = [$$[$0-4],$$[$0-1],{type: 'addMessage', from:$$[$0-4].actor, to:$$[$0-1].actor, signalType:$$[$0-3], msg:$$[$0]},
7937 {type: 'activeStart', signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0-1]}
7938 ]
7939break;
7940case 60:
7941 this.$ = [$$[$0-4],$$[$0-1],{type: 'addMessage', from:$$[$0-4].actor, to:$$[$0-1].actor, signalType:$$[$0-3], msg:$$[$0]},
7942 {type: 'activeEnd', signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0-4]}
7943 ]
7944break;
7945case 61:
7946 this.$ = [$$[$0-3],$$[$0-1],{type: 'addMessage', from:$$[$0-3].actor, to:$$[$0-1].actor, signalType:$$[$0-2], msg:$$[$0]}]
7947break;
7948case 62:
7949this.$={ type: 'addParticipant', actor:$$[$0]}
7950break;
7951case 63:
7952 this.$ = yy.LINETYPE.SOLID_OPEN;
7953break;
7954case 64:
7955 this.$ = yy.LINETYPE.DOTTED_OPEN;
7956break;
7957case 65:
7958 this.$ = yy.LINETYPE.SOLID;
7959break;
7960case 66:
7961 this.$ = yy.LINETYPE.DOTTED;
7962break;
7963case 67:
7964 this.$ = yy.LINETYPE.SOLID_CROSS;
7965break;
7966case 68:
7967 this.$ = yy.LINETYPE.DOTTED_CROSS;
7968break;
7969case 69:
7970 this.$ = yy.LINETYPE.SOLID_POINT;
7971break;
7972case 70:
7973 this.$ = yy.LINETYPE.DOTTED_POINT;
7974break;
7975case 71:
7976this.$ = yy.parseMessage($$[$0].trim().substring(1))
7977break;
7978case 72:
7979 yy.parseDirective('%%{', 'open_directive');
7980break;
7981case 73:
7982 yy.parseDirective($$[$0], 'type_directive');
7983break;
7984case 74:
7985 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
7986break;
7987case 75:
7988 yy.parseDirective('}%%', 'close_directive', 'sequence');
7989break;
7990}
7991},
7992table: [{3:1,4:$V0,5:$V1,6:4,7:$V2,11:6,79:$V3},{1:[3]},{3:8,4:$V0,5:$V1,6:4,7:$V2,11:6,79:$V3},{3:9,4:$V0,5:$V1,6:4,7:$V2,11:6,79:$V3},{3:10,4:$V0,5:$V1,6:4,7:$V2,11:6,79:$V3},o([1,4,5,16,20,22,25,26,32,33,34,36,38,39,41,42,43,45,47,49,53,58,59,60,61,69,79],$V4,{8:11}),{12:12,80:[1,13]},{80:[2,72]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{13:49,14:[1,50],82:$Vu},o([14,82],[2,73]),o($Vv,[2,6]),{6:41,10:52,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},o($Vv,[2,8]),o($Vv,[2,9]),{17:53,69:$Vt},{17:54,69:$Vt},{5:[1,55]},{5:[1,58],23:[1,56],24:[1,57]},{17:59,69:$Vt},{17:60,69:$Vt},{5:[1,61]},{5:[1,62]},{5:[1,63]},{5:[1,64]},{5:[1,65]},o($Vv,[2,28]),o($Vv,[2,29]),{35:[1,66]},{37:[1,67]},o($Vv,[2,32]),{19:[1,68]},{19:[1,69]},{19:[1,70]},{19:[1,71]},{19:[1,72]},{19:[1,73]},{19:[1,74]},o($Vv,[2,40]),{66:75,70:[1,76],71:[1,77],72:[1,78],73:[1,79],74:[1,80],75:[1,81],76:[1,82],77:[1,83]},{54:84,56:[1,85],64:[1,86],65:[1,87]},{17:88,69:$Vt},{17:89,69:$Vt},{17:90,69:$Vt},{17:91,69:$Vt},o([5,18,63,70,71,72,73,74,75,76,77,78],[2,62]),{5:[1,92]},{15:93,81:[1,94]},{5:[2,75]},o($Vv,[2,7]),{5:[1,96],18:[1,95]},{5:[1,98],18:[1,97]},o($Vv,[2,16]),{5:[1,100],23:[1,99]},{5:[1,101]},o($Vv,[2,20]),{5:[1,102]},{5:[1,103]},o($Vv,[2,23]),o($Vv,[2,24]),o($Vv,[2,25]),o($Vv,[2,26]),o($Vv,[2,27]),o($Vv,[2,30]),o($Vv,[2,31]),o($Vw,$V4,{8:104}),o($Vw,$V4,{8:105}),o($Vw,$V4,{8:106}),o($Vx,$V4,{44:107,8:108}),o($Vy,$V4,{46:109,8:110}),o($Vz,$V4,{48:111,8:112}),o($Vw,$V4,{8:113}),{17:116,67:[1,114],68:[1,115],69:$Vt},o($VA,[2,63]),o($VA,[2,64]),o($VA,[2,65]),o($VA,[2,66]),o($VA,[2,67]),o($VA,[2,68]),o($VA,[2,69]),o($VA,[2,70]),{17:117,69:$Vt},{17:119,57:118,69:$Vt},{69:[2,57]},{69:[2,58]},{55:120,78:$VB},{55:122,78:$VB},{55:123,78:$VB},{55:124,78:$VB},o($VC,[2,10]),{13:125,82:$Vu},{82:[2,74]},{19:[1,126]},o($Vv,[2,13]),{19:[1,127]},o($Vv,[2,15]),{5:[1,128]},o($Vv,[2,18]),o($Vv,[2,19]),o($Vv,[2,21]),o($Vv,[2,22]),{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[1,129],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[1,130],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[1,131],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{40:[1,132]},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[2,45],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,52:[1,133],53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{40:[1,134]},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[2,43],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,51:[1,135],53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{40:[1,136]},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[2,41],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,50:[1,137],53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{4:$V5,5:$V6,6:41,9:14,10:16,11:6,16:$V7,17:42,20:$V8,21:20,22:$V9,25:$Va,26:$Vb,27:24,28:25,29:26,30:27,31:28,32:$Vc,33:$Vd,34:$Ve,36:$Vf,38:$Vg,39:$Vh,40:[1,138],41:$Vi,42:$Vj,43:$Vk,45:$Vl,47:$Vm,49:$Vn,53:$Vo,58:$Vp,59:$Vq,60:$Vr,61:$Vs,69:$Vt,79:$V3},{17:139,69:$Vt},{17:140,69:$Vt},{55:141,78:$VB},{55:142,78:$VB},{55:143,78:$VB},{63:[1,144],78:[2,56]},{5:[2,49]},{5:[2,71]},{5:[2,50]},{5:[2,51]},{5:[2,52]},{5:[1,145]},{5:[1,146]},{5:[1,147]},o($Vv,[2,17]),o($Vv,[2,33]),o($Vv,[2,34]),o($Vv,[2,35]),o($Vv,[2,36]),{19:[1,148]},o($Vv,[2,37]),{19:[1,149]},o($Vv,[2,38]),{19:[1,150]},o($Vv,[2,39]),{55:151,78:$VB},{55:152,78:$VB},{5:[2,61]},{5:[2,47]},{5:[2,48]},{17:153,69:$Vt},o($VC,[2,11]),o($Vv,[2,12]),o($Vv,[2,14]),o($Vx,$V4,{8:108,44:154}),o($Vy,$V4,{8:110,46:155}),o($Vz,$V4,{8:112,48:156}),{5:[2,59]},{5:[2,60]},{78:[2,55]},{40:[2,46]},{40:[2,44]},{40:[2,42]}],
7993defaultActions: {7:[2,72],8:[2,1],9:[2,2],10:[2,3],51:[2,75],86:[2,57],87:[2,58],94:[2,74],120:[2,49],121:[2,71],122:[2,50],123:[2,51],124:[2,52],141:[2,61],142:[2,47],143:[2,48],151:[2,59],152:[2,60],153:[2,55],154:[2,46],155:[2,44],156:[2,42]},
7994parseError: function parseError (str, hash) {
7995 if (hash.recoverable) {
7996 this.trace(str);
7997 } else {
7998 var error = new Error(str);
7999 error.hash = hash;
8000 throw error;
8001 }
8002},
8003parse: function parse(input) {
8004 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
8005 var args = lstack.slice.call(arguments, 1);
8006 var lexer = Object.create(this.lexer);
8007 var sharedState = { yy: {} };
8008 for (var k in this.yy) {
8009 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
8010 sharedState.yy[k] = this.yy[k];
8011 }
8012 }
8013 lexer.setInput(input, sharedState.yy);
8014 sharedState.yy.lexer = lexer;
8015 sharedState.yy.parser = this;
8016 if (typeof lexer.yylloc == 'undefined') {
8017 lexer.yylloc = {};
8018 }
8019 var yyloc = lexer.yylloc;
8020 lstack.push(yyloc);
8021 var ranges = lexer.options && lexer.options.ranges;
8022 if (typeof sharedState.yy.parseError === 'function') {
8023 this.parseError = sharedState.yy.parseError;
8024 } else {
8025 this.parseError = Object.getPrototypeOf(this).parseError;
8026 }
8027 function popStack(n) {
8028 stack.length = stack.length - 2 * n;
8029 vstack.length = vstack.length - n;
8030 lstack.length = lstack.length - n;
8031 }
8032 function lex() {
8033 var token;
8034 token = tstack.pop() || lexer.lex() || EOF;
8035 if (typeof token !== 'number') {
8036 if (token instanceof Array) {
8037 tstack = token;
8038 token = tstack.pop();
8039 }
8040 token = self.symbols_[token] || token;
8041 }
8042 return token;
8043 }
8044 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
8045 while (true) {
8046 state = stack[stack.length - 1];
8047 if (this.defaultActions[state]) {
8048 action = this.defaultActions[state];
8049 } else {
8050 if (symbol === null || typeof symbol == 'undefined') {
8051 symbol = lex();
8052 }
8053 action = table[state] && table[state][symbol];
8054 }
8055 if (typeof action === 'undefined' || !action.length || !action[0]) {
8056 var errStr = '';
8057 expected = [];
8058 for (p in table[state]) {
8059 if (this.terminals_[p] && p > TERROR) {
8060 expected.push('\'' + this.terminals_[p] + '\'');
8061 }
8062 }
8063 if (lexer.showPosition) {
8064 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
8065 } else {
8066 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
8067 }
8068 this.parseError(errStr, {
8069 text: lexer.match,
8070 token: this.terminals_[symbol] || symbol,
8071 line: lexer.yylineno,
8072 loc: yyloc,
8073 expected: expected
8074 });
8075 }
8076 if (action[0] instanceof Array && action.length > 1) {
8077 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
8078 }
8079 switch (action[0]) {
8080 case 1:
8081 stack.push(symbol);
8082 vstack.push(lexer.yytext);
8083 lstack.push(lexer.yylloc);
8084 stack.push(action[1]);
8085 symbol = null;
8086 if (!preErrorSymbol) {
8087 yyleng = lexer.yyleng;
8088 yytext = lexer.yytext;
8089 yylineno = lexer.yylineno;
8090 yyloc = lexer.yylloc;
8091 if (recovering > 0) {
8092 recovering--;
8093 }
8094 } else {
8095 symbol = preErrorSymbol;
8096 preErrorSymbol = null;
8097 }
8098 break;
8099 case 2:
8100 len = this.productions_[action[1]][1];
8101 yyval.$ = vstack[vstack.length - len];
8102 yyval._$ = {
8103 first_line: lstack[lstack.length - (len || 1)].first_line,
8104 last_line: lstack[lstack.length - 1].last_line,
8105 first_column: lstack[lstack.length - (len || 1)].first_column,
8106 last_column: lstack[lstack.length - 1].last_column
8107 };
8108 if (ranges) {
8109 yyval._$.range = [
8110 lstack[lstack.length - (len || 1)].range[0],
8111 lstack[lstack.length - 1].range[1]
8112 ];
8113 }
8114 r = this.performAction.apply(yyval, [
8115 yytext,
8116 yyleng,
8117 yylineno,
8118 sharedState.yy,
8119 action[1],
8120 vstack,
8121 lstack
8122 ].concat(args));
8123 if (typeof r !== 'undefined') {
8124 return r;
8125 }
8126 if (len) {
8127 stack = stack.slice(0, -1 * len * 2);
8128 vstack = vstack.slice(0, -1 * len);
8129 lstack = lstack.slice(0, -1 * len);
8130 }
8131 stack.push(this.productions_[action[1]][0]);
8132 vstack.push(yyval.$);
8133 lstack.push(yyval._$);
8134 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
8135 stack.push(newState);
8136 break;
8137 case 3:
8138 return true;
8139 }
8140 }
8141 return true;
8142}};
8143
8144/* generated by jison-lex 0.3.4 */
8145var lexer = (function(){
8146var lexer = ({
8147
8148EOF:1,
8149
8150parseError:function parseError(str, hash) {
8151 if (this.yy.parser) {
8152 this.yy.parser.parseError(str, hash);
8153 } else {
8154 throw new Error(str);
8155 }
8156 },
8157
8158// resets the lexer, sets new input
8159setInput:function (input, yy) {
8160 this.yy = yy || this.yy || {};
8161 this._input = input;
8162 this._more = this._backtrack = this.done = false;
8163 this.yylineno = this.yyleng = 0;
8164 this.yytext = this.matched = this.match = '';
8165 this.conditionStack = ['INITIAL'];
8166 this.yylloc = {
8167 first_line: 1,
8168 first_column: 0,
8169 last_line: 1,
8170 last_column: 0
8171 };
8172 if (this.options.ranges) {
8173 this.yylloc.range = [0,0];
8174 }
8175 this.offset = 0;
8176 return this;
8177 },
8178
8179// consumes and returns one char from the input
8180input:function () {
8181 var ch = this._input[0];
8182 this.yytext += ch;
8183 this.yyleng++;
8184 this.offset++;
8185 this.match += ch;
8186 this.matched += ch;
8187 var lines = ch.match(/(?:\r\n?|\n).*/g);
8188 if (lines) {
8189 this.yylineno++;
8190 this.yylloc.last_line++;
8191 } else {
8192 this.yylloc.last_column++;
8193 }
8194 if (this.options.ranges) {
8195 this.yylloc.range[1]++;
8196 }
8197
8198 this._input = this._input.slice(1);
8199 return ch;
8200 },
8201
8202// unshifts one char (or a string) into the input
8203unput:function (ch) {
8204 var len = ch.length;
8205 var lines = ch.split(/(?:\r\n?|\n)/g);
8206
8207 this._input = ch + this._input;
8208 this.yytext = this.yytext.substr(0, this.yytext.length - len);
8209 //this.yyleng -= len;
8210 this.offset -= len;
8211 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
8212 this.match = this.match.substr(0, this.match.length - 1);
8213 this.matched = this.matched.substr(0, this.matched.length - 1);
8214
8215 if (lines.length - 1) {
8216 this.yylineno -= lines.length - 1;
8217 }
8218 var r = this.yylloc.range;
8219
8220 this.yylloc = {
8221 first_line: this.yylloc.first_line,
8222 last_line: this.yylineno + 1,
8223 first_column: this.yylloc.first_column,
8224 last_column: lines ?
8225 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
8226 + oldLines[oldLines.length - lines.length].length - lines[0].length :
8227 this.yylloc.first_column - len
8228 };
8229
8230 if (this.options.ranges) {
8231 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
8232 }
8233 this.yyleng = this.yytext.length;
8234 return this;
8235 },
8236
8237// When called from action, caches matched text and appends it on next action
8238more:function () {
8239 this._more = true;
8240 return this;
8241 },
8242
8243// 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.
8244reject:function () {
8245 if (this.options.backtrack_lexer) {
8246 this._backtrack = true;
8247 } else {
8248 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(), {
8249 text: "",
8250 token: null,
8251 line: this.yylineno
8252 });
8253
8254 }
8255 return this;
8256 },
8257
8258// retain first n characters of the match
8259less:function (n) {
8260 this.unput(this.match.slice(n));
8261 },
8262
8263// displays already matched input, i.e. for error messages
8264pastInput:function () {
8265 var past = this.matched.substr(0, this.matched.length - this.match.length);
8266 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
8267 },
8268
8269// displays upcoming input, i.e. for error messages
8270upcomingInput:function () {
8271 var next = this.match;
8272 if (next.length < 20) {
8273 next += this._input.substr(0, 20-next.length);
8274 }
8275 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
8276 },
8277
8278// displays the character position where the lexing error occurred, i.e. for error messages
8279showPosition:function () {
8280 var pre = this.pastInput();
8281 var c = new Array(pre.length + 1).join("-");
8282 return pre + this.upcomingInput() + "\n" + c + "^";
8283 },
8284
8285// test the lexed token: return FALSE when not a match, otherwise return token
8286test_match:function(match, indexed_rule) {
8287 var token,
8288 lines,
8289 backup;
8290
8291 if (this.options.backtrack_lexer) {
8292 // save context
8293 backup = {
8294 yylineno: this.yylineno,
8295 yylloc: {
8296 first_line: this.yylloc.first_line,
8297 last_line: this.last_line,
8298 first_column: this.yylloc.first_column,
8299 last_column: this.yylloc.last_column
8300 },
8301 yytext: this.yytext,
8302 match: this.match,
8303 matches: this.matches,
8304 matched: this.matched,
8305 yyleng: this.yyleng,
8306 offset: this.offset,
8307 _more: this._more,
8308 _input: this._input,
8309 yy: this.yy,
8310 conditionStack: this.conditionStack.slice(0),
8311 done: this.done
8312 };
8313 if (this.options.ranges) {
8314 backup.yylloc.range = this.yylloc.range.slice(0);
8315 }
8316 }
8317
8318 lines = match[0].match(/(?:\r\n?|\n).*/g);
8319 if (lines) {
8320 this.yylineno += lines.length;
8321 }
8322 this.yylloc = {
8323 first_line: this.yylloc.last_line,
8324 last_line: this.yylineno + 1,
8325 first_column: this.yylloc.last_column,
8326 last_column: lines ?
8327 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
8328 this.yylloc.last_column + match[0].length
8329 };
8330 this.yytext += match[0];
8331 this.match += match[0];
8332 this.matches = match;
8333 this.yyleng = this.yytext.length;
8334 if (this.options.ranges) {
8335 this.yylloc.range = [this.offset, this.offset += this.yyleng];
8336 }
8337 this._more = false;
8338 this._backtrack = false;
8339 this._input = this._input.slice(match[0].length);
8340 this.matched += match[0];
8341 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
8342 if (this.done && this._input) {
8343 this.done = false;
8344 }
8345 if (token) {
8346 return token;
8347 } else if (this._backtrack) {
8348 // recover context
8349 for (var k in backup) {
8350 this[k] = backup[k];
8351 }
8352 return false; // rule action called reject() implying the next rule should be tested instead.
8353 }
8354 return false;
8355 },
8356
8357// return next match in input
8358next:function () {
8359 if (this.done) {
8360 return this.EOF;
8361 }
8362 if (!this._input) {
8363 this.done = true;
8364 }
8365
8366 var token,
8367 match,
8368 tempMatch,
8369 index;
8370 if (!this._more) {
8371 this.yytext = '';
8372 this.match = '';
8373 }
8374 var rules = this._currentRules();
8375 for (var i = 0; i < rules.length; i++) {
8376 tempMatch = this._input.match(this.rules[rules[i]]);
8377 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
8378 match = tempMatch;
8379 index = i;
8380 if (this.options.backtrack_lexer) {
8381 token = this.test_match(tempMatch, rules[i]);
8382 if (token !== false) {
8383 return token;
8384 } else if (this._backtrack) {
8385 match = false;
8386 continue; // rule action called reject() implying a rule MISmatch.
8387 } else {
8388 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
8389 return false;
8390 }
8391 } else if (!this.options.flex) {
8392 break;
8393 }
8394 }
8395 }
8396 if (match) {
8397 token = this.test_match(match, rules[index]);
8398 if (token !== false) {
8399 return token;
8400 }
8401 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
8402 return false;
8403 }
8404 if (this._input === "") {
8405 return this.EOF;
8406 } else {
8407 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
8408 text: "",
8409 token: null,
8410 line: this.yylineno
8411 });
8412 }
8413 },
8414
8415// return next match that has a token
8416lex:function lex () {
8417 var r = this.next();
8418 if (r) {
8419 return r;
8420 } else {
8421 return this.lex();
8422 }
8423 },
8424
8425// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
8426begin:function begin (condition) {
8427 this.conditionStack.push(condition);
8428 },
8429
8430// pop the previously active lexer condition state off the condition stack
8431popState:function popState () {
8432 var n = this.conditionStack.length - 1;
8433 if (n > 0) {
8434 return this.conditionStack.pop();
8435 } else {
8436 return this.conditionStack[0];
8437 }
8438 },
8439
8440// produce the lexer rule set which is active for the currently active lexer condition state
8441_currentRules:function _currentRules () {
8442 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
8443 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
8444 } else {
8445 return this.conditions["INITIAL"].rules;
8446 }
8447 },
8448
8449// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
8450topState:function topState (n) {
8451 n = this.conditionStack.length - 1 - Math.abs(n || 0);
8452 if (n >= 0) {
8453 return this.conditionStack[n];
8454 } else {
8455 return "INITIAL";
8456 }
8457 },
8458
8459// alias for begin(condition)
8460pushState:function pushState (condition) {
8461 this.begin(condition);
8462 },
8463
8464// return the number of states currently on the stack
8465stateStackSize:function stateStackSize() {
8466 return this.conditionStack.length;
8467 },
8468options: {"case-insensitive":true},
8469performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
8470var YYSTATE=YY_START;
8471switch($avoiding_name_collisions) {
8472case 0: this.begin('open_directive'); return 79;
8473break;
8474case 1: this.begin('type_directive'); return 80;
8475break;
8476case 2: this.popState(); this.begin('arg_directive'); return 14;
8477break;
8478case 3: this.popState(); this.popState(); return 82;
8479break;
8480case 4:return 81;
8481break;
8482case 5:return 5;
8483break;
8484case 6:/* skip all whitespace */
8485break;
8486case 7:/* skip same-line whitespace */
8487break;
8488case 8:/* skip comments */
8489break;
8490case 9:/* skip comments */
8491break;
8492case 10:/* skip comments */
8493break;
8494case 11:return 23;
8495break;
8496case 12: this.begin('ID'); return 16;
8497break;
8498case 13: this.begin('ID'); return 20;
8499break;
8500case 14: yy_.yytext = yy_.yytext.trim(); this.begin('ALIAS'); return 69;
8501break;
8502case 15: this.popState(); this.popState(); this.begin('LINE'); return 18;
8503break;
8504case 16: this.popState(); this.popState(); return 5;
8505break;
8506case 17: this.begin('LINE'); return 39;
8507break;
8508case 18: this.begin('LINE'); return 41;
8509break;
8510case 19: this.begin('LINE'); return 42;
8511break;
8512case 20: this.begin('LINE'); return 43;
8513break;
8514case 21: this.begin('LINE'); return 52;
8515break;
8516case 22: this.begin('LINE'); return 45;
8517break;
8518case 23: this.begin('LINE'); return 51;
8519break;
8520case 24: this.begin('LINE'); return 47;
8521break;
8522case 25: this.begin('LINE'); return 50;
8523break;
8524case 26: this.begin('LINE'); return 49;
8525break;
8526case 27: this.popState(); return 19;
8527break;
8528case 28:return 40;
8529break;
8530case 29:return 64;
8531break;
8532case 30:return 65;
8533break;
8534case 31:return 58;
8535break;
8536case 32:return 59;
8537break;
8538case 33:return 60;
8539break;
8540case 34:return 61;
8541break;
8542case 35:return 56;
8543break;
8544case 36:return 53;
8545break;
8546case 37: this.begin('ID'); return 25;
8547break;
8548case 38: this.begin('ID'); return 26;
8549break;
8550case 39:return 32;
8551break;
8552case 40:return 33;
8553break;
8554case 41: this.begin("acc_title");return 34;
8555break;
8556case 42: this.popState(); return "acc_title_value";
8557break;
8558case 43: this.begin("acc_descr");return 36;
8559break;
8560case 44: this.popState(); return "acc_descr_value";
8561break;
8562case 45: this.begin("acc_descr_multiline");
8563break;
8564case 46: this.popState();
8565break;
8566case 47:return "acc_descr_multiline_value";
8567break;
8568case 48:return 7;
8569break;
8570case 49:return 22;
8571break;
8572case 50:return 24;
8573break;
8574case 51:return 63;
8575break;
8576case 52:return 5;
8577break;
8578case 53: yy_.yytext = yy_.yytext.trim(); return 69;
8579break;
8580case 54:return 72;
8581break;
8582case 55:return 73;
8583break;
8584case 56:return 70;
8585break;
8586case 57:return 71;
8587break;
8588case 58:return 74;
8589break;
8590case 59:return 75;
8591break;
8592case 60:return 76;
8593break;
8594case 61:return 77;
8595break;
8596case 62:return 78;
8597break;
8598case 63:return 67;
8599break;
8600case 64:return 68;
8601break;
8602case 65:return 5;
8603break;
8604case 66:return 'INVALID';
8605break;
8606}
8607},
8608rules: [/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:participant\b)/i,/^(?:actor\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,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],
8609conditions: {"acc_descr_multiline":{"rules":[46,47],"inclusive":false},"acc_descr":{"rules":[44],"inclusive":false},"acc_title":{"rules":[42],"inclusive":false},"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,14],"inclusive":false},"ALIAS":{"rules":[7,8,15,16],"inclusive":false},"LINE":{"rules":[7,8,27],"inclusive":false},"INITIAL":{"rules":[0,5,6,8,9,10,11,12,13,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,40,41,43,45,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66],"inclusive":true}}
8610});
8611return lexer;
8612})();
8613parser.lexer = lexer;
8614function Parser () {
8615 this.yy = {};
8616}
8617Parser.prototype = parser;parser.Parser = Parser;
8618return new Parser;
8619})();
8620
8621
8622if (true) {
8623exports.parser = parser;
8624exports.Parser = parser.Parser;
8625exports.parse = function () { return parser.parse.apply(parser, arguments); };
8626exports.main = function commonjsMain (args) {
8627 if (!args[1]) {
8628 console.log('Usage: '+args[0]+' FILE');
8629 process.exit(1);
8630 }
8631 var source = (__webpack_require__(/*! fs */ "?e940").readFileSync)((__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize)(args[1]), "utf8");
8632 return exports.parser.parse(source);
8633};
8634if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
8635 exports.main(process.argv.slice(1));
8636}
8637}
8638
8639/***/ }),
8640
8641/***/ "./src/diagrams/state/parser/stateDiagram.jison":
8642/*!******************************************************!*\
8643 !*** ./src/diagrams/state/parser/stateDiagram.jison ***!
8644 \******************************************************/
8645/***/ ((module, exports, __webpack_require__) => {
8646
8647/* module decorator */ module = __webpack_require__.nmd(module);
8648/* parser generated by jison 0.4.18 */
8649/*
8650 Returns a Parser object of the following structure:
8651
8652 Parser: {
8653 yy: {}
8654 }
8655
8656 Parser.prototype: {
8657 yy: {},
8658 trace: function(),
8659 symbols_: {associative list: name ==> number},
8660 terminals_: {associative list: number ==> name},
8661 productions_: [...],
8662 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
8663 table: [...],
8664 defaultActions: {...},
8665 parseError: function(str, hash),
8666 parse: function(input),
8667
8668 lexer: {
8669 EOF: 1,
8670 parseError: function(str, hash),
8671 setInput: function(input),
8672 input: function(),
8673 unput: function(str),
8674 more: function(),
8675 less: function(n),
8676 pastInput: function(),
8677 upcomingInput: function(),
8678 showPosition: function(),
8679 test_match: function(regex_match_array, rule_index),
8680 next: function(),
8681 lex: function(),
8682 begin: function(condition),
8683 popState: function(),
8684 _currentRules: function(),
8685 topState: function(),
8686 pushState: function(condition),
8687
8688 options: {
8689 ranges: boolean (optional: true ==> token location info will include a .range[] member)
8690 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
8691 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)
8692 },
8693
8694 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
8695 rules: [...],
8696 conditions: {associative list: name ==> set},
8697 }
8698 }
8699
8700
8701 token location info (@$, _$, etc.): {
8702 first_line: n,
8703 last_line: n,
8704 first_column: n,
8705 last_column: n,
8706 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
8707 }
8708
8709
8710 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
8711 text: (matched text)
8712 token: (the produced terminal token, if any)
8713 line: (yylineno)
8714 }
8715 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
8716 loc: (yylloc)
8717 expected: (string describing the set of expected tokens)
8718 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
8719 }
8720*/
8721var parser = (function(){
8722var 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,33],$Vc=[1,23],$Vd=[1,24],$Ve=[1,25],$Vf=[1,26],$Vg=[1,27],$Vh=[1,30],$Vi=[1,31],$Vj=[1,32],$Vk=[1,35],$Vl=[1,36],$Vm=[1,37],$Vn=[1,38],$Vo=[1,34],$Vp=[1,41],$Vq=[1,4,5,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],$Vr=[1,4,5,12,13,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],$Vs=[1,4,5,7,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],$Vt=[4,5,14,15,17,19,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50];
8723var parser = {trace: function trace () { },
8724yy: {},
8725symbols_: {"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,"CHOICE":25,"CONCURRENT":26,"note":27,"notePosition":28,"NOTE_TEXT":29,"direction":30,"acc_title":31,"acc_title_value":32,"acc_descr":33,"acc_descr_value":34,"acc_descr_multiline_value":35,"openDirective":36,"typeDirective":37,"closeDirective":38,":":39,"argDirective":40,"direction_tb":41,"direction_bt":42,"direction_rl":43,"direction_lr":44,"eol":45,";":46,"EDGE_STATE":47,"left_of":48,"right_of":49,"open_directive":50,"type_directive":51,"arg_directive":52,"close_directive":53,"$accept":0,"$end":1},
8726terminals_: {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:"CHOICE",26:"CONCURRENT",27:"note",29:"NOTE_TEXT",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",39:":",41:"direction_tb",42:"direction_bt",43:"direction_rl",44:"direction_lr",46:";",47:"EDGE_STATE",48:"left_of",49:"right_of",50:"open_directive",51:"type_directive",52:"arg_directive",53:"close_directive"},
8727productions_: [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,1],[10,4],[10,4],[10,1],[10,1],[10,2],[10,2],[10,1],[6,3],[6,5],[30,1],[30,1],[30,1],[30,1],[45,1],[45,1],[11,1],[11,1],[28,1],[28,1],[36,1],[37,1],[40,1],[38,1]],
8728performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
8729/* this == yyval */
8730
8731var $0 = $$.length - 1;
8732switch (yystate) {
8733case 4:
8734 /*console.warn('Root document', $$[$0]);*/ yy.setRootDoc($$[$0]);return $$[$0];
8735break;
8736case 5:
8737 this.$ = []
8738break;
8739case 6:
8740
8741 if($$[$0]!='nl'){
8742 $$[$0-1].push($$[$0]);this.$ = $$[$0-1]
8743 }
8744 // console.warn('Got document',$$[$0-1], $$[$0]);
8745
8746break;
8747case 7: case 8:
8748 this.$ = $$[$0]
8749break;
8750case 9:
8751 this.$='nl';
8752break;
8753case 10:
8754 /*console.warn('got id and descr', $$[$0]);*/this.$={ stmt: 'state', id: $$[$0], type: 'default', description: ''};
8755break;
8756case 11:
8757 /*console.warn('got id and descr', $$[$0-1], $$[$0].trim());*/this.$={ stmt: 'state', id: $$[$0-1], type: 'default', description: yy.trimColon($$[$0])};
8758break;
8759case 12:
8760
8761 /*console.warn('got id', $$[$0-2]);yy.addRelation($$[$0-2], $$[$0]);*/
8762 this.$={ stmt: 'relation', state1: { stmt: 'state', id: $$[$0-2], type: 'default', description: '' }, state2:{ stmt: 'state', id: $$[$0] ,type: 'default', description: ''}};
8763
8764break;
8765case 13:
8766
8767 /*yy.addRelation($$[$0-3], $$[$0-1], $$[$0].substr(1).trim());*/
8768 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()};
8769
8770break;
8771case 17:
8772
8773 /* console.warn('Adding document for state without id ', $$[$0-3]);*/
8774 this.$={ stmt: 'state', id: $$[$0-3], type: 'default', description: '', doc: $$[$0-1] }
8775
8776break;
8777case 18:
8778
8779 var id=$$[$0];
8780 var description = $$[$0-2].trim();
8781 if($$[$0].match(':')){
8782 var parts = $$[$0].split(':');
8783 id=parts[0];
8784 description = [description, parts[1]];
8785 }
8786 this.$={stmt: 'state', id: id, type: 'default', description: description};
8787
8788
8789break;
8790case 19:
8791
8792 // console.warn('Adding document for state with id zxzx', $$[$0-3], $$[$0-2], yy.getDirection()); yy.addDocument($$[$0-3]);
8793 this.$={ stmt: 'state', id: $$[$0-3], type: 'default', description: $$[$0-5], doc: $$[$0-1] }
8794
8795break;
8796case 20:
8797
8798 this.$={ stmt: 'state', id: $$[$0], type: 'fork' }
8799
8800break;
8801case 21:
8802
8803 this.$={ stmt: 'state', id: $$[$0], type: 'join' }
8804
8805break;
8806case 22:
8807
8808 this.$={ stmt: 'state', id: $$[$0], type: 'choice' }
8809
8810break;
8811case 23:
8812
8813 this.$={ stmt: 'state', id: yy.getDividerId(), type: 'divider' }
8814
8815break;
8816case 24:
8817
8818 /* console.warn('got NOTE, position: ', $$[$0-2].trim(), 'id = ', $$[$0-1].trim(), 'note: ', $$[$0]);*/
8819 this.$={ stmt: 'state', id: $$[$0-1].trim(), note:{position: $$[$0-2].trim(), text: $$[$0].trim()}};
8820
8821break;
8822case 28:
8823 this.$=$$[$0].trim();yy.setAccTitle(this.$);
8824break;
8825case 29: case 30:
8826 this.$=$$[$0].trim();yy.setAccDescription(this.$);
8827break;
8828case 33:
8829 yy.setDirection('TB');this.$={stmt:'dir', value:'TB'};
8830break;
8831case 34:
8832 yy.setDirection('BT');this.$={stmt:'dir', value:'BT'};
8833break;
8834case 35:
8835 yy.setDirection('RL'); this.$={stmt:'dir', value:'RL'};
8836break;
8837case 36:
8838 yy.setDirection('LR');this.$={stmt:'dir', value:'LR'};
8839break;
8840case 39: case 40:
8841this.$=$$[$0];
8842break;
8843case 43:
8844 yy.parseDirective('%%{', 'open_directive');
8845break;
8846case 44:
8847 yy.parseDirective($$[$0], 'type_directive');
8848break;
8849case 45:
8850 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
8851break;
8852case 46:
8853 yy.parseDirective('}%%', 'close_directive', 'state');
8854break;
8855}
8856},
8857table: [{3:1,4:$V0,5:$V1,6:4,7:$V2,36:6,50:$V3},{1:[3]},{3:8,4:$V0,5:$V1,6:4,7:$V2,36:6,50:$V3},{3:9,4:$V0,5:$V1,6:4,7:$V2,36:6,50:$V3},{3:10,4:$V0,5:$V1,6:4,7:$V2,36:6,50:$V3},o([1,4,5,14,15,17,20,22,23,24,25,26,27,31,33,35,41,42,43,44,47,50],$V4,{8:11}),{37:12,51:[1,13]},{51:[2,43]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:$V5,5:$V6,6:28,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:$Vh,33:$Vi,35:$Vj,36:6,41:$Vk,42:$Vl,43:$Vm,44:$Vn,47:$Vo,50:$V3},{38:39,39:[1,40],53:$Vp},o([39,53],[2,44]),o($Vq,[2,6]),{6:28,10:42,11:18,14:$V7,15:$V8,17:$V9,20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:$Vh,33:$Vi,35:$Vj,36:6,41:$Vk,42:$Vl,43:$Vm,44:$Vn,47:$Vo,50:$V3},o($Vq,[2,8]),o($Vq,[2,9]),o($Vq,[2,10],{12:[1,43],13:[1,44]}),o($Vq,[2,14]),{16:[1,45]},o($Vq,[2,16],{18:[1,46]}),{21:[1,47]},o($Vq,[2,20]),o($Vq,[2,21]),o($Vq,[2,22]),o($Vq,[2,23]),{28:48,29:[1,49],48:[1,50],49:[1,51]},o($Vq,[2,26]),o($Vq,[2,27]),{32:[1,52]},{34:[1,53]},o($Vq,[2,30]),o($Vr,[2,39]),o($Vr,[2,40]),o($Vq,[2,33]),o($Vq,[2,34]),o($Vq,[2,35]),o($Vq,[2,36]),o($Vs,[2,31]),{40:54,52:[1,55]},o($Vs,[2,46]),o($Vq,[2,7]),o($Vq,[2,11]),{11:56,22:$Vb,47:$Vo},o($Vq,[2,15]),o($Vt,$V4,{8:57}),{22:[1,58]},{22:[1,59]},{21:[1,60]},{22:[2,41]},{22:[2,42]},o($Vq,[2,28]),o($Vq,[2,29]),{38:61,53:$Vp},{53:[2,45]},o($Vq,[2,12],{12:[1,62]}),{4:$V5,5:$V6,6:28,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,19:[1,63],20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:$Vh,33:$Vi,35:$Vj,36:6,41:$Vk,42:$Vl,43:$Vm,44:$Vn,47:$Vo,50:$V3},o($Vq,[2,18],{18:[1,64]}),{29:[1,65]},{22:[1,66]},o($Vs,[2,32]),o($Vq,[2,13]),o($Vq,[2,17]),o($Vt,$V4,{8:67}),o($Vq,[2,24]),o($Vq,[2,25]),{4:$V5,5:$V6,6:28,9:14,10:16,11:18,14:$V7,15:$V8,17:$V9,19:[1,68],20:$Va,22:$Vb,23:$Vc,24:$Vd,25:$Ve,26:$Vf,27:$Vg,30:29,31:$Vh,33:$Vi,35:$Vj,36:6,41:$Vk,42:$Vl,43:$Vm,44:$Vn,47:$Vo,50:$V3},o($Vq,[2,19])],
8858defaultActions: {7:[2,43],8:[2,1],9:[2,2],10:[2,3],50:[2,41],51:[2,42],55:[2,45]},
8859parseError: function parseError (str, hash) {
8860 if (hash.recoverable) {
8861 this.trace(str);
8862 } else {
8863 var error = new Error(str);
8864 error.hash = hash;
8865 throw error;
8866 }
8867},
8868parse: function parse(input) {
8869 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
8870 var args = lstack.slice.call(arguments, 1);
8871 var lexer = Object.create(this.lexer);
8872 var sharedState = { yy: {} };
8873 for (var k in this.yy) {
8874 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
8875 sharedState.yy[k] = this.yy[k];
8876 }
8877 }
8878 lexer.setInput(input, sharedState.yy);
8879 sharedState.yy.lexer = lexer;
8880 sharedState.yy.parser = this;
8881 if (typeof lexer.yylloc == 'undefined') {
8882 lexer.yylloc = {};
8883 }
8884 var yyloc = lexer.yylloc;
8885 lstack.push(yyloc);
8886 var ranges = lexer.options && lexer.options.ranges;
8887 if (typeof sharedState.yy.parseError === 'function') {
8888 this.parseError = sharedState.yy.parseError;
8889 } else {
8890 this.parseError = Object.getPrototypeOf(this).parseError;
8891 }
8892 function popStack(n) {
8893 stack.length = stack.length - 2 * n;
8894 vstack.length = vstack.length - n;
8895 lstack.length = lstack.length - n;
8896 }
8897 function lex() {
8898 var token;
8899 token = tstack.pop() || lexer.lex() || EOF;
8900 if (typeof token !== 'number') {
8901 if (token instanceof Array) {
8902 tstack = token;
8903 token = tstack.pop();
8904 }
8905 token = self.symbols_[token] || token;
8906 }
8907 return token;
8908 }
8909 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
8910 while (true) {
8911 state = stack[stack.length - 1];
8912 if (this.defaultActions[state]) {
8913 action = this.defaultActions[state];
8914 } else {
8915 if (symbol === null || typeof symbol == 'undefined') {
8916 symbol = lex();
8917 }
8918 action = table[state] && table[state][symbol];
8919 }
8920 if (typeof action === 'undefined' || !action.length || !action[0]) {
8921 var errStr = '';
8922 expected = [];
8923 for (p in table[state]) {
8924 if (this.terminals_[p] && p > TERROR) {
8925 expected.push('\'' + this.terminals_[p] + '\'');
8926 }
8927 }
8928 if (lexer.showPosition) {
8929 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
8930 } else {
8931 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
8932 }
8933 this.parseError(errStr, {
8934 text: lexer.match,
8935 token: this.terminals_[symbol] || symbol,
8936 line: lexer.yylineno,
8937 loc: yyloc,
8938 expected: expected
8939 });
8940 }
8941 if (action[0] instanceof Array && action.length > 1) {
8942 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
8943 }
8944 switch (action[0]) {
8945 case 1:
8946 stack.push(symbol);
8947 vstack.push(lexer.yytext);
8948 lstack.push(lexer.yylloc);
8949 stack.push(action[1]);
8950 symbol = null;
8951 if (!preErrorSymbol) {
8952 yyleng = lexer.yyleng;
8953 yytext = lexer.yytext;
8954 yylineno = lexer.yylineno;
8955 yyloc = lexer.yylloc;
8956 if (recovering > 0) {
8957 recovering--;
8958 }
8959 } else {
8960 symbol = preErrorSymbol;
8961 preErrorSymbol = null;
8962 }
8963 break;
8964 case 2:
8965 len = this.productions_[action[1]][1];
8966 yyval.$ = vstack[vstack.length - len];
8967 yyval._$ = {
8968 first_line: lstack[lstack.length - (len || 1)].first_line,
8969 last_line: lstack[lstack.length - 1].last_line,
8970 first_column: lstack[lstack.length - (len || 1)].first_column,
8971 last_column: lstack[lstack.length - 1].last_column
8972 };
8973 if (ranges) {
8974 yyval._$.range = [
8975 lstack[lstack.length - (len || 1)].range[0],
8976 lstack[lstack.length - 1].range[1]
8977 ];
8978 }
8979 r = this.performAction.apply(yyval, [
8980 yytext,
8981 yyleng,
8982 yylineno,
8983 sharedState.yy,
8984 action[1],
8985 vstack,
8986 lstack
8987 ].concat(args));
8988 if (typeof r !== 'undefined') {
8989 return r;
8990 }
8991 if (len) {
8992 stack = stack.slice(0, -1 * len * 2);
8993 vstack = vstack.slice(0, -1 * len);
8994 lstack = lstack.slice(0, -1 * len);
8995 }
8996 stack.push(this.productions_[action[1]][0]);
8997 vstack.push(yyval.$);
8998 lstack.push(yyval._$);
8999 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
9000 stack.push(newState);
9001 break;
9002 case 3:
9003 return true;
9004 }
9005 }
9006 return true;
9007}};
9008
9009/* generated by jison-lex 0.3.4 */
9010var lexer = (function(){
9011var lexer = ({
9012
9013EOF:1,
9014
9015parseError:function parseError(str, hash) {
9016 if (this.yy.parser) {
9017 this.yy.parser.parseError(str, hash);
9018 } else {
9019 throw new Error(str);
9020 }
9021 },
9022
9023// resets the lexer, sets new input
9024setInput:function (input, yy) {
9025 this.yy = yy || this.yy || {};
9026 this._input = input;
9027 this._more = this._backtrack = this.done = false;
9028 this.yylineno = this.yyleng = 0;
9029 this.yytext = this.matched = this.match = '';
9030 this.conditionStack = ['INITIAL'];
9031 this.yylloc = {
9032 first_line: 1,
9033 first_column: 0,
9034 last_line: 1,
9035 last_column: 0
9036 };
9037 if (this.options.ranges) {
9038 this.yylloc.range = [0,0];
9039 }
9040 this.offset = 0;
9041 return this;
9042 },
9043
9044// consumes and returns one char from the input
9045input:function () {
9046 var ch = this._input[0];
9047 this.yytext += ch;
9048 this.yyleng++;
9049 this.offset++;
9050 this.match += ch;
9051 this.matched += ch;
9052 var lines = ch.match(/(?:\r\n?|\n).*/g);
9053 if (lines) {
9054 this.yylineno++;
9055 this.yylloc.last_line++;
9056 } else {
9057 this.yylloc.last_column++;
9058 }
9059 if (this.options.ranges) {
9060 this.yylloc.range[1]++;
9061 }
9062
9063 this._input = this._input.slice(1);
9064 return ch;
9065 },
9066
9067// unshifts one char (or a string) into the input
9068unput:function (ch) {
9069 var len = ch.length;
9070 var lines = ch.split(/(?:\r\n?|\n)/g);
9071
9072 this._input = ch + this._input;
9073 this.yytext = this.yytext.substr(0, this.yytext.length - len);
9074 //this.yyleng -= len;
9075 this.offset -= len;
9076 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
9077 this.match = this.match.substr(0, this.match.length - 1);
9078 this.matched = this.matched.substr(0, this.matched.length - 1);
9079
9080 if (lines.length - 1) {
9081 this.yylineno -= lines.length - 1;
9082 }
9083 var r = this.yylloc.range;
9084
9085 this.yylloc = {
9086 first_line: this.yylloc.first_line,
9087 last_line: this.yylineno + 1,
9088 first_column: this.yylloc.first_column,
9089 last_column: lines ?
9090 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
9091 + oldLines[oldLines.length - lines.length].length - lines[0].length :
9092 this.yylloc.first_column - len
9093 };
9094
9095 if (this.options.ranges) {
9096 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
9097 }
9098 this.yyleng = this.yytext.length;
9099 return this;
9100 },
9101
9102// When called from action, caches matched text and appends it on next action
9103more:function () {
9104 this._more = true;
9105 return this;
9106 },
9107
9108// 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.
9109reject:function () {
9110 if (this.options.backtrack_lexer) {
9111 this._backtrack = true;
9112 } else {
9113 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(), {
9114 text: "",
9115 token: null,
9116 line: this.yylineno
9117 });
9118
9119 }
9120 return this;
9121 },
9122
9123// retain first n characters of the match
9124less:function (n) {
9125 this.unput(this.match.slice(n));
9126 },
9127
9128// displays already matched input, i.e. for error messages
9129pastInput:function () {
9130 var past = this.matched.substr(0, this.matched.length - this.match.length);
9131 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
9132 },
9133
9134// displays upcoming input, i.e. for error messages
9135upcomingInput:function () {
9136 var next = this.match;
9137 if (next.length < 20) {
9138 next += this._input.substr(0, 20-next.length);
9139 }
9140 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
9141 },
9142
9143// displays the character position where the lexing error occurred, i.e. for error messages
9144showPosition:function () {
9145 var pre = this.pastInput();
9146 var c = new Array(pre.length + 1).join("-");
9147 return pre + this.upcomingInput() + "\n" + c + "^";
9148 },
9149
9150// test the lexed token: return FALSE when not a match, otherwise return token
9151test_match:function(match, indexed_rule) {
9152 var token,
9153 lines,
9154 backup;
9155
9156 if (this.options.backtrack_lexer) {
9157 // save context
9158 backup = {
9159 yylineno: this.yylineno,
9160 yylloc: {
9161 first_line: this.yylloc.first_line,
9162 last_line: this.last_line,
9163 first_column: this.yylloc.first_column,
9164 last_column: this.yylloc.last_column
9165 },
9166 yytext: this.yytext,
9167 match: this.match,
9168 matches: this.matches,
9169 matched: this.matched,
9170 yyleng: this.yyleng,
9171 offset: this.offset,
9172 _more: this._more,
9173 _input: this._input,
9174 yy: this.yy,
9175 conditionStack: this.conditionStack.slice(0),
9176 done: this.done
9177 };
9178 if (this.options.ranges) {
9179 backup.yylloc.range = this.yylloc.range.slice(0);
9180 }
9181 }
9182
9183 lines = match[0].match(/(?:\r\n?|\n).*/g);
9184 if (lines) {
9185 this.yylineno += lines.length;
9186 }
9187 this.yylloc = {
9188 first_line: this.yylloc.last_line,
9189 last_line: this.yylineno + 1,
9190 first_column: this.yylloc.last_column,
9191 last_column: lines ?
9192 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
9193 this.yylloc.last_column + match[0].length
9194 };
9195 this.yytext += match[0];
9196 this.match += match[0];
9197 this.matches = match;
9198 this.yyleng = this.yytext.length;
9199 if (this.options.ranges) {
9200 this.yylloc.range = [this.offset, this.offset += this.yyleng];
9201 }
9202 this._more = false;
9203 this._backtrack = false;
9204 this._input = this._input.slice(match[0].length);
9205 this.matched += match[0];
9206 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
9207 if (this.done && this._input) {
9208 this.done = false;
9209 }
9210 if (token) {
9211 return token;
9212 } else if (this._backtrack) {
9213 // recover context
9214 for (var k in backup) {
9215 this[k] = backup[k];
9216 }
9217 return false; // rule action called reject() implying the next rule should be tested instead.
9218 }
9219 return false;
9220 },
9221
9222// return next match in input
9223next:function () {
9224 if (this.done) {
9225 return this.EOF;
9226 }
9227 if (!this._input) {
9228 this.done = true;
9229 }
9230
9231 var token,
9232 match,
9233 tempMatch,
9234 index;
9235 if (!this._more) {
9236 this.yytext = '';
9237 this.match = '';
9238 }
9239 var rules = this._currentRules();
9240 for (var i = 0; i < rules.length; i++) {
9241 tempMatch = this._input.match(this.rules[rules[i]]);
9242 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
9243 match = tempMatch;
9244 index = i;
9245 if (this.options.backtrack_lexer) {
9246 token = this.test_match(tempMatch, rules[i]);
9247 if (token !== false) {
9248 return token;
9249 } else if (this._backtrack) {
9250 match = false;
9251 continue; // rule action called reject() implying a rule MISmatch.
9252 } else {
9253 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
9254 return false;
9255 }
9256 } else if (!this.options.flex) {
9257 break;
9258 }
9259 }
9260 }
9261 if (match) {
9262 token = this.test_match(match, rules[index]);
9263 if (token !== false) {
9264 return token;
9265 }
9266 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
9267 return false;
9268 }
9269 if (this._input === "") {
9270 return this.EOF;
9271 } else {
9272 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
9273 text: "",
9274 token: null,
9275 line: this.yylineno
9276 });
9277 }
9278 },
9279
9280// return next match that has a token
9281lex:function lex () {
9282 var r = this.next();
9283 if (r) {
9284 return r;
9285 } else {
9286 return this.lex();
9287 }
9288 },
9289
9290// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
9291begin:function begin (condition) {
9292 this.conditionStack.push(condition);
9293 },
9294
9295// pop the previously active lexer condition state off the condition stack
9296popState:function popState () {
9297 var n = this.conditionStack.length - 1;
9298 if (n > 0) {
9299 return this.conditionStack.pop();
9300 } else {
9301 return this.conditionStack[0];
9302 }
9303 },
9304
9305// produce the lexer rule set which is active for the currently active lexer condition state
9306_currentRules:function _currentRules () {
9307 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
9308 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
9309 } else {
9310 return this.conditions["INITIAL"].rules;
9311 }
9312 },
9313
9314// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
9315topState:function topState (n) {
9316 n = this.conditionStack.length - 1 - Math.abs(n || 0);
9317 if (n >= 0) {
9318 return this.conditionStack[n];
9319 } else {
9320 return "INITIAL";
9321 }
9322 },
9323
9324// alias for begin(condition)
9325pushState:function pushState (condition) {
9326 this.begin(condition);
9327 },
9328
9329// return the number of states currently on the stack
9330stateStackSize:function stateStackSize() {
9331 return this.conditionStack.length;
9332 },
9333options: {"case-insensitive":true},
9334performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
9335var YYSTATE=YY_START;
9336switch($avoiding_name_collisions) {
9337case 0:return 41;
9338break;
9339case 1:return 42;
9340break;
9341case 2:return 43;
9342break;
9343case 3:return 44;
9344break;
9345case 4: this.begin('open_directive'); return 50;
9346break;
9347case 5: this.begin('type_directive'); return 51;
9348break;
9349case 6: this.popState(); this.begin('arg_directive'); return 39;
9350break;
9351case 7: this.popState(); this.popState(); return 53;
9352break;
9353case 8:return 52;
9354break;
9355case 9:/* skip comments */
9356break;
9357case 10:/* skip comments */{ /*console.log('Crap after close');*/ }
9358break;
9359case 11:return 5;
9360break;
9361case 12:/* skip all whitespace */
9362break;
9363case 13:/* skip same-line whitespace */
9364break;
9365case 14:/* skip comments */
9366break;
9367case 15:/* skip comments */
9368break;
9369case 16: this.pushState('SCALE'); /* console.log('Got scale', yy_.yytext);*/ return 15;
9370break;
9371case 17:return 16;
9372break;
9373case 18:this.popState();
9374break;
9375case 19: this.begin("acc_title");return 31;
9376break;
9377case 20: this.popState(); return "acc_title_value";
9378break;
9379case 21: this.begin("acc_descr");return 33;
9380break;
9381case 22: this.popState(); return "acc_descr_value";
9382break;
9383case 23: this.begin("acc_descr_multiline");
9384break;
9385case 24: this.popState();
9386break;
9387case 25:return "acc_descr_multiline_value";
9388break;
9389case 26: /*console.log('Starting STATE zxzx'+yy.getDirection());*/this.pushState('STATE');
9390break;
9391case 27:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim(); /*console.warn('Fork Fork: ',yy_.yytext);*/return 23;
9392break;
9393case 28:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 24;
9394break;
9395case 29:this.popState();yy_.yytext=yy_.yytext.slice(0,-10).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 25;
9396break;
9397case 30:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Fork: ',yy_.yytext);*/return 23;
9398break;
9399case 31:this.popState();yy_.yytext=yy_.yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 24;
9400break;
9401case 32:this.popState();yy_.yytext=yy_.yytext.slice(0,-10).trim();/*console.warn('Fork Join: ',yy_.yytext);*/return 25;
9402break;
9403case 33: return 41;
9404break;
9405case 34: return 42;
9406break;
9407case 35: return 43;
9408break;
9409case 36: return 44;
9410break;
9411case 37: /*console.log('Starting STATE_STRING zxzx');*/this.begin("STATE_STRING");
9412break;
9413case 38:this.popState();this.pushState('STATE_ID');return "AS";
9414break;
9415case 39:this.popState();/* console.log('STATE_ID', yy_.yytext);*/return "ID";
9416break;
9417case 40:this.popState();
9418break;
9419case 41: /*console.log('Long description:', yy_.yytext);*/return "STATE_DESCR";
9420break;
9421case 42:/*console.log('COMPOSIT_STATE', yy_.yytext);*/return 17;
9422break;
9423case 43:this.popState();
9424break;
9425case 44:this.popState();this.pushState('struct'); /*console.log('begin struct', yy_.yytext);*/return 18;
9426break;
9427case 45: /*console.log('Ending struct');*/ this.popState(); return 19;
9428break;
9429case 46:/* nothing */
9430break;
9431case 47: this.begin('NOTE'); return 27;
9432break;
9433case 48: this.popState();this.pushState('NOTE_ID');return 48;
9434break;
9435case 49: this.popState();this.pushState('NOTE_ID');return 49;
9436break;
9437case 50: this.popState();this.pushState('FLOATING_NOTE');
9438break;
9439case 51:this.popState();this.pushState('FLOATING_NOTE_ID');return "AS";
9440break;
9441case 52:/**/
9442break;
9443case 53: /*console.log('Floating note text: ', yy_.yytext);*/return "NOTE_TEXT";
9444break;
9445case 54:this.popState();/*console.log('Floating note ID', yy_.yytext);*/return "ID";
9446break;
9447case 55: this.popState();this.pushState('NOTE_TEXT');/*console.log('Got ID for note', yy_.yytext);*/return 22;
9448break;
9449case 56: this.popState();/*console.log('Got NOTE_TEXT for note',yy_.yytext);*/yy_.yytext = yy_.yytext.substr(2).trim();return 29;
9450break;
9451case 57: this.popState();/*console.log('Got NOTE_TEXT for note',yy_.yytext);*/yy_.yytext = yy_.yytext.slice(0,-8).trim();return 29;
9452break;
9453case 58: /*console.log('Got state diagram', yy_.yytext,'#');*/return 7;
9454break;
9455case 59: /*console.log('Got state diagram', yy_.yytext,'#');*/return 7;
9456break;
9457case 60: /*console.log('HIDE_EMPTY', yy_.yytext,'#');*/return 14;
9458break;
9459case 61: /*console.log('EDGE_STATE=',yy_.yytext);*/ return 47;
9460break;
9461case 62: /*console.log('=>ID=',yy_.yytext);*/ return 22;
9462break;
9463case 63: yy_.yytext = yy_.yytext.trim(); /*console.log('Descr = ', yy_.yytext);*/ return 12;
9464break;
9465case 64:return 13;
9466break;
9467case 65:return 26;
9468break;
9469case 66:return 5;
9470break;
9471case 67:return 'INVALID';
9472break;
9473}
9474},
9475rules: [/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%\{)/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,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:state\s+)/i,/^(?:.*<<fork>>)/i,/^(?:.*<<join>>)/i,/^(?:.*<<choice>>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/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\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],
9476conditions: {"LINE":{"rules":[13,14],"inclusive":false},"close_directive":{"rules":[13,14],"inclusive":false},"arg_directive":{"rules":[7,8,13,14],"inclusive":false},"type_directive":{"rules":[6,7,13,14],"inclusive":false},"open_directive":{"rules":[5,13,14],"inclusive":false},"struct":{"rules":[13,14,26,33,34,35,36,45,46,47,61,62,63,64,65],"inclusive":false},"FLOATING_NOTE_ID":{"rules":[54],"inclusive":false},"FLOATING_NOTE":{"rules":[51,52,53],"inclusive":false},"NOTE_TEXT":{"rules":[56,57],"inclusive":false},"NOTE_ID":{"rules":[55],"inclusive":false},"NOTE":{"rules":[48,49,50],"inclusive":false},"acc_descr_multiline":{"rules":[24,25],"inclusive":false},"acc_descr":{"rules":[22],"inclusive":false},"acc_title":{"rules":[20],"inclusive":false},"SCALE":{"rules":[17,18],"inclusive":false},"ALIAS":{"rules":[],"inclusive":false},"STATE_ID":{"rules":[39],"inclusive":false},"STATE_STRING":{"rules":[40,41],"inclusive":false},"FORK_STATE":{"rules":[],"inclusive":false},"STATE":{"rules":[13,14,27,28,29,30,31,32,37,38,42,43,44],"inclusive":false},"ID":{"rules":[13,14],"inclusive":false},"INITIAL":{"rules":[0,1,2,3,4,9,10,11,12,14,15,16,19,21,23,26,44,47,58,59,60,61,62,63,64,66,67],"inclusive":true}}
9477});
9478return lexer;
9479})();
9480parser.lexer = lexer;
9481function Parser () {
9482 this.yy = {};
9483}
9484Parser.prototype = parser;parser.Parser = Parser;
9485return new Parser;
9486})();
9487
9488
9489if (true) {
9490exports.parser = parser;
9491exports.Parser = parser.Parser;
9492exports.parse = function () { return parser.parse.apply(parser, arguments); };
9493exports.main = function commonjsMain (args) {
9494 if (!args[1]) {
9495 console.log('Usage: '+args[0]+' FILE');
9496 process.exit(1);
9497 }
9498 var source = (__webpack_require__(/*! fs */ "?a3b8").readFileSync)((__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize)(args[1]), "utf8");
9499 return exports.parser.parse(source);
9500};
9501if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
9502 exports.main(process.argv.slice(1));
9503}
9504}
9505
9506/***/ }),
9507
9508/***/ "./src/diagrams/user-journey/parser/journey.jison":
9509/*!********************************************************!*\
9510 !*** ./src/diagrams/user-journey/parser/journey.jison ***!
9511 \********************************************************/
9512/***/ ((module, exports, __webpack_require__) => {
9513
9514/* module decorator */ module = __webpack_require__.nmd(module);
9515/* parser generated by jison 0.4.18 */
9516/*
9517 Returns a Parser object of the following structure:
9518
9519 Parser: {
9520 yy: {}
9521 }
9522
9523 Parser.prototype: {
9524 yy: {},
9525 trace: function(),
9526 symbols_: {associative list: name ==> number},
9527 terminals_: {associative list: number ==> name},
9528 productions_: [...],
9529 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
9530 table: [...],
9531 defaultActions: {...},
9532 parseError: function(str, hash),
9533 parse: function(input),
9534
9535 lexer: {
9536 EOF: 1,
9537 parseError: function(str, hash),
9538 setInput: function(input),
9539 input: function(),
9540 unput: function(str),
9541 more: function(),
9542 less: function(n),
9543 pastInput: function(),
9544 upcomingInput: function(),
9545 showPosition: function(),
9546 test_match: function(regex_match_array, rule_index),
9547 next: function(),
9548 lex: function(),
9549 begin: function(condition),
9550 popState: function(),
9551 _currentRules: function(),
9552 topState: function(),
9553 pushState: function(condition),
9554
9555 options: {
9556 ranges: boolean (optional: true ==> token location info will include a .range[] member)
9557 flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
9558 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)
9559 },
9560
9561 performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
9562 rules: [...],
9563 conditions: {associative list: name ==> set},
9564 }
9565 }
9566
9567
9568 token location info (@$, _$, etc.): {
9569 first_line: n,
9570 last_line: n,
9571 first_column: n,
9572 last_column: n,
9573 range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
9574 }
9575
9576
9577 the parseError function receives a 'hash' object with these members for lexer and parser errors: {
9578 text: (matched text)
9579 token: (the produced terminal token, if any)
9580 line: (yylineno)
9581 }
9582 while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
9583 loc: (yylloc)
9584 expected: (string describing the set of expected tokens)
9585 recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
9586 }
9587*/
9588var parser = (function(){
9589var 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,20,22,23,24,26],$V3=[1,15],$V4=[1,16],$V5=[1,17],$V6=[1,18],$V7=[1,19],$V8=[1,20],$V9=[1,24],$Va=[4,6,9,11,17,18,20,22,23,24,26];
9590var parser = {trace: function trace () { },
9591yy: {},
9592symbols_: {"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,"acc_title":18,"acc_title_value":19,"acc_descr":20,"acc_descr_value":21,"acc_descr_multiline_value":22,"section":23,"taskName":24,"taskData":25,"open_directive":26,"type_directive":27,"arg_directive":28,"close_directive":29,"$accept":0,"$end":1},
9593terminals_: {2:"error",4:"journey",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"acc_title",19:"acc_title_value",20:"acc_descr",21:"acc_descr_value",22:"acc_descr_multiline_value",23:"section",24:"taskName",25:"taskData",26:"open_directive",27:"type_directive",28:"arg_directive",29:"close_directive"},
9594productions_: [0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,2],[10,1],[12,1],[13,1],[16,1],[14,1]],
9595performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
9596/* this == yyval */
9597
9598var $0 = $$.length - 1;
9599switch (yystate) {
9600case 1:
9601 return $$[$0-1];
9602break;
9603case 3:
9604 this.$ = []
9605break;
9606case 4:
9607$$[$0-1].push($$[$0]);this.$ = $$[$0-1]
9608break;
9609case 5: case 6:
9610 this.$ = $$[$0]
9611break;
9612case 7: case 8:
9613 this.$=[];
9614break;
9615case 11:
9616yy.setDiagramTitle($$[$0].substr(6));this.$=$$[$0].substr(6);
9617break;
9618case 12:
9619 this.$=$$[$0].trim();yy.setAccTitle(this.$);
9620break;
9621case 13: case 14:
9622 this.$=$$[$0].trim();yy.setAccDescription(this.$);
9623break;
9624case 15:
9625yy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8);
9626break;
9627case 16:
9628yy.addTask($$[$0-1], $$[$0]);this.$='task';
9629break;
9630case 18:
9631 yy.parseDirective('%%{', 'open_directive');
9632break;
9633case 19:
9634 yy.parseDirective($$[$0], 'type_directive');
9635break;
9636case 20:
9637 $$[$0] = $$[$0].trim().replace(/'/g, '"'); yy.parseDirective($$[$0], 'arg_directive');
9638break;
9639case 21:
9640 yy.parseDirective('}%%', 'close_directive', 'journey');
9641break;
9642}
9643},
9644table: [{3:1,4:$V0,7:3,12:4,26:$V1},{1:[3]},o($V2,[2,3],{5:6}),{3:7,4:$V0,7:3,12:4,26:$V1},{13:8,27:[1,9]},{27:[2,18]},{6:[1,10],7:21,8:11,9:[1,12],10:13,11:[1,14],12:4,17:$V3,18:$V4,20:$V5,22:$V6,23:$V7,24:$V8,26:$V1},{1:[2,2]},{14:22,15:[1,23],29:$V9},o([15,29],[2,19]),o($V2,[2,8],{1:[2,1]}),o($V2,[2,4]),{7:21,10:25,12:4,17:$V3,18:$V4,20:$V5,22:$V6,23:$V7,24:$V8,26:$V1},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,11]),{19:[1,26]},{21:[1,27]},o($V2,[2,14]),o($V2,[2,15]),{25:[1,28]},o($V2,[2,17]),{11:[1,29]},{16:30,28:[1,31]},{11:[2,21]},o($V2,[2,5]),o($V2,[2,12]),o($V2,[2,13]),o($V2,[2,16]),o($Va,[2,9]),{14:32,29:$V9},{29:[2,20]},{11:[1,33]},o($Va,[2,10])],
9645defaultActions: {5:[2,18],7:[2,2],24:[2,21],31:[2,20]},
9646parseError: function parseError (str, hash) {
9647 if (hash.recoverable) {
9648 this.trace(str);
9649 } else {
9650 var error = new Error(str);
9651 error.hash = hash;
9652 throw error;
9653 }
9654},
9655parse: function parse(input) {
9656 var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
9657 var args = lstack.slice.call(arguments, 1);
9658 var lexer = Object.create(this.lexer);
9659 var sharedState = { yy: {} };
9660 for (var k in this.yy) {
9661 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
9662 sharedState.yy[k] = this.yy[k];
9663 }
9664 }
9665 lexer.setInput(input, sharedState.yy);
9666 sharedState.yy.lexer = lexer;
9667 sharedState.yy.parser = this;
9668 if (typeof lexer.yylloc == 'undefined') {
9669 lexer.yylloc = {};
9670 }
9671 var yyloc = lexer.yylloc;
9672 lstack.push(yyloc);
9673 var ranges = lexer.options && lexer.options.ranges;
9674 if (typeof sharedState.yy.parseError === 'function') {
9675 this.parseError = sharedState.yy.parseError;
9676 } else {
9677 this.parseError = Object.getPrototypeOf(this).parseError;
9678 }
9679 function popStack(n) {
9680 stack.length = stack.length - 2 * n;
9681 vstack.length = vstack.length - n;
9682 lstack.length = lstack.length - n;
9683 }
9684 function lex() {
9685 var token;
9686 token = tstack.pop() || lexer.lex() || EOF;
9687 if (typeof token !== 'number') {
9688 if (token instanceof Array) {
9689 tstack = token;
9690 token = tstack.pop();
9691 }
9692 token = self.symbols_[token] || token;
9693 }
9694 return token;
9695 }
9696 var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
9697 while (true) {
9698 state = stack[stack.length - 1];
9699 if (this.defaultActions[state]) {
9700 action = this.defaultActions[state];
9701 } else {
9702 if (symbol === null || typeof symbol == 'undefined') {
9703 symbol = lex();
9704 }
9705 action = table[state] && table[state][symbol];
9706 }
9707 if (typeof action === 'undefined' || !action.length || !action[0]) {
9708 var errStr = '';
9709 expected = [];
9710 for (p in table[state]) {
9711 if (this.terminals_[p] && p > TERROR) {
9712 expected.push('\'' + this.terminals_[p] + '\'');
9713 }
9714 }
9715 if (lexer.showPosition) {
9716 errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
9717 } else {
9718 errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
9719 }
9720 this.parseError(errStr, {
9721 text: lexer.match,
9722 token: this.terminals_[symbol] || symbol,
9723 line: lexer.yylineno,
9724 loc: yyloc,
9725 expected: expected
9726 });
9727 }
9728 if (action[0] instanceof Array && action.length > 1) {
9729 throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
9730 }
9731 switch (action[0]) {
9732 case 1:
9733 stack.push(symbol);
9734 vstack.push(lexer.yytext);
9735 lstack.push(lexer.yylloc);
9736 stack.push(action[1]);
9737 symbol = null;
9738 if (!preErrorSymbol) {
9739 yyleng = lexer.yyleng;
9740 yytext = lexer.yytext;
9741 yylineno = lexer.yylineno;
9742 yyloc = lexer.yylloc;
9743 if (recovering > 0) {
9744 recovering--;
9745 }
9746 } else {
9747 symbol = preErrorSymbol;
9748 preErrorSymbol = null;
9749 }
9750 break;
9751 case 2:
9752 len = this.productions_[action[1]][1];
9753 yyval.$ = vstack[vstack.length - len];
9754 yyval._$ = {
9755 first_line: lstack[lstack.length - (len || 1)].first_line,
9756 last_line: lstack[lstack.length - 1].last_line,
9757 first_column: lstack[lstack.length - (len || 1)].first_column,
9758 last_column: lstack[lstack.length - 1].last_column
9759 };
9760 if (ranges) {
9761 yyval._$.range = [
9762 lstack[lstack.length - (len || 1)].range[0],
9763 lstack[lstack.length - 1].range[1]
9764 ];
9765 }
9766 r = this.performAction.apply(yyval, [
9767 yytext,
9768 yyleng,
9769 yylineno,
9770 sharedState.yy,
9771 action[1],
9772 vstack,
9773 lstack
9774 ].concat(args));
9775 if (typeof r !== 'undefined') {
9776 return r;
9777 }
9778 if (len) {
9779 stack = stack.slice(0, -1 * len * 2);
9780 vstack = vstack.slice(0, -1 * len);
9781 lstack = lstack.slice(0, -1 * len);
9782 }
9783 stack.push(this.productions_[action[1]][0]);
9784 vstack.push(yyval.$);
9785 lstack.push(yyval._$);
9786 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
9787 stack.push(newState);
9788 break;
9789 case 3:
9790 return true;
9791 }
9792 }
9793 return true;
9794}};
9795
9796/* generated by jison-lex 0.3.4 */
9797var lexer = (function(){
9798var lexer = ({
9799
9800EOF:1,
9801
9802parseError:function parseError(str, hash) {
9803 if (this.yy.parser) {
9804 this.yy.parser.parseError(str, hash);
9805 } else {
9806 throw new Error(str);
9807 }
9808 },
9809
9810// resets the lexer, sets new input
9811setInput:function (input, yy) {
9812 this.yy = yy || this.yy || {};
9813 this._input = input;
9814 this._more = this._backtrack = this.done = false;
9815 this.yylineno = this.yyleng = 0;
9816 this.yytext = this.matched = this.match = '';
9817 this.conditionStack = ['INITIAL'];
9818 this.yylloc = {
9819 first_line: 1,
9820 first_column: 0,
9821 last_line: 1,
9822 last_column: 0
9823 };
9824 if (this.options.ranges) {
9825 this.yylloc.range = [0,0];
9826 }
9827 this.offset = 0;
9828 return this;
9829 },
9830
9831// consumes and returns one char from the input
9832input:function () {
9833 var ch = this._input[0];
9834 this.yytext += ch;
9835 this.yyleng++;
9836 this.offset++;
9837 this.match += ch;
9838 this.matched += ch;
9839 var lines = ch.match(/(?:\r\n?|\n).*/g);
9840 if (lines) {
9841 this.yylineno++;
9842 this.yylloc.last_line++;
9843 } else {
9844 this.yylloc.last_column++;
9845 }
9846 if (this.options.ranges) {
9847 this.yylloc.range[1]++;
9848 }
9849
9850 this._input = this._input.slice(1);
9851 return ch;
9852 },
9853
9854// unshifts one char (or a string) into the input
9855unput:function (ch) {
9856 var len = ch.length;
9857 var lines = ch.split(/(?:\r\n?|\n)/g);
9858
9859 this._input = ch + this._input;
9860 this.yytext = this.yytext.substr(0, this.yytext.length - len);
9861 //this.yyleng -= len;
9862 this.offset -= len;
9863 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
9864 this.match = this.match.substr(0, this.match.length - 1);
9865 this.matched = this.matched.substr(0, this.matched.length - 1);
9866
9867 if (lines.length - 1) {
9868 this.yylineno -= lines.length - 1;
9869 }
9870 var r = this.yylloc.range;
9871
9872 this.yylloc = {
9873 first_line: this.yylloc.first_line,
9874 last_line: this.yylineno + 1,
9875 first_column: this.yylloc.first_column,
9876 last_column: lines ?
9877 (lines.length === oldLines.length ? this.yylloc.first_column : 0)
9878 + oldLines[oldLines.length - lines.length].length - lines[0].length :
9879 this.yylloc.first_column - len
9880 };
9881
9882 if (this.options.ranges) {
9883 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
9884 }
9885 this.yyleng = this.yytext.length;
9886 return this;
9887 },
9888
9889// When called from action, caches matched text and appends it on next action
9890more:function () {
9891 this._more = true;
9892 return this;
9893 },
9894
9895// 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.
9896reject:function () {
9897 if (this.options.backtrack_lexer) {
9898 this._backtrack = true;
9899 } else {
9900 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(), {
9901 text: "",
9902 token: null,
9903 line: this.yylineno
9904 });
9905
9906 }
9907 return this;
9908 },
9909
9910// retain first n characters of the match
9911less:function (n) {
9912 this.unput(this.match.slice(n));
9913 },
9914
9915// displays already matched input, i.e. for error messages
9916pastInput:function () {
9917 var past = this.matched.substr(0, this.matched.length - this.match.length);
9918 return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
9919 },
9920
9921// displays upcoming input, i.e. for error messages
9922upcomingInput:function () {
9923 var next = this.match;
9924 if (next.length < 20) {
9925 next += this._input.substr(0, 20-next.length);
9926 }
9927 return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
9928 },
9929
9930// displays the character position where the lexing error occurred, i.e. for error messages
9931showPosition:function () {
9932 var pre = this.pastInput();
9933 var c = new Array(pre.length + 1).join("-");
9934 return pre + this.upcomingInput() + "\n" + c + "^";
9935 },
9936
9937// test the lexed token: return FALSE when not a match, otherwise return token
9938test_match:function(match, indexed_rule) {
9939 var token,
9940 lines,
9941 backup;
9942
9943 if (this.options.backtrack_lexer) {
9944 // save context
9945 backup = {
9946 yylineno: this.yylineno,
9947 yylloc: {
9948 first_line: this.yylloc.first_line,
9949 last_line: this.last_line,
9950 first_column: this.yylloc.first_column,
9951 last_column: this.yylloc.last_column
9952 },
9953 yytext: this.yytext,
9954 match: this.match,
9955 matches: this.matches,
9956 matched: this.matched,
9957 yyleng: this.yyleng,
9958 offset: this.offset,
9959 _more: this._more,
9960 _input: this._input,
9961 yy: this.yy,
9962 conditionStack: this.conditionStack.slice(0),
9963 done: this.done
9964 };
9965 if (this.options.ranges) {
9966 backup.yylloc.range = this.yylloc.range.slice(0);
9967 }
9968 }
9969
9970 lines = match[0].match(/(?:\r\n?|\n).*/g);
9971 if (lines) {
9972 this.yylineno += lines.length;
9973 }
9974 this.yylloc = {
9975 first_line: this.yylloc.last_line,
9976 last_line: this.yylineno + 1,
9977 first_column: this.yylloc.last_column,
9978 last_column: lines ?
9979 lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
9980 this.yylloc.last_column + match[0].length
9981 };
9982 this.yytext += match[0];
9983 this.match += match[0];
9984 this.matches = match;
9985 this.yyleng = this.yytext.length;
9986 if (this.options.ranges) {
9987 this.yylloc.range = [this.offset, this.offset += this.yyleng];
9988 }
9989 this._more = false;
9990 this._backtrack = false;
9991 this._input = this._input.slice(match[0].length);
9992 this.matched += match[0];
9993 token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
9994 if (this.done && this._input) {
9995 this.done = false;
9996 }
9997 if (token) {
9998 return token;
9999 } else if (this._backtrack) {
10000 // recover context
10001 for (var k in backup) {
10002 this[k] = backup[k];
10003 }
10004 return false; // rule action called reject() implying the next rule should be tested instead.
10005 }
10006 return false;
10007 },
10008
10009// return next match in input
10010next:function () {
10011 if (this.done) {
10012 return this.EOF;
10013 }
10014 if (!this._input) {
10015 this.done = true;
10016 }
10017
10018 var token,
10019 match,
10020 tempMatch,
10021 index;
10022 if (!this._more) {
10023 this.yytext = '';
10024 this.match = '';
10025 }
10026 var rules = this._currentRules();
10027 for (var i = 0; i < rules.length; i++) {
10028 tempMatch = this._input.match(this.rules[rules[i]]);
10029 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
10030 match = tempMatch;
10031 index = i;
10032 if (this.options.backtrack_lexer) {
10033 token = this.test_match(tempMatch, rules[i]);
10034 if (token !== false) {
10035 return token;
10036 } else if (this._backtrack) {
10037 match = false;
10038 continue; // rule action called reject() implying a rule MISmatch.
10039 } else {
10040 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
10041 return false;
10042 }
10043 } else if (!this.options.flex) {
10044 break;
10045 }
10046 }
10047 }
10048 if (match) {
10049 token = this.test_match(match, rules[index]);
10050 if (token !== false) {
10051 return token;
10052 }
10053 // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
10054 return false;
10055 }
10056 if (this._input === "") {
10057 return this.EOF;
10058 } else {
10059 return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
10060 text: "",
10061 token: null,
10062 line: this.yylineno
10063 });
10064 }
10065 },
10066
10067// return next match that has a token
10068lex:function lex () {
10069 var r = this.next();
10070 if (r) {
10071 return r;
10072 } else {
10073 return this.lex();
10074 }
10075 },
10076
10077// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
10078begin:function begin (condition) {
10079 this.conditionStack.push(condition);
10080 },
10081
10082// pop the previously active lexer condition state off the condition stack
10083popState:function popState () {
10084 var n = this.conditionStack.length - 1;
10085 if (n > 0) {
10086 return this.conditionStack.pop();
10087 } else {
10088 return this.conditionStack[0];
10089 }
10090 },
10091
10092// produce the lexer rule set which is active for the currently active lexer condition state
10093_currentRules:function _currentRules () {
10094 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
10095 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
10096 } else {
10097 return this.conditions["INITIAL"].rules;
10098 }
10099 },
10100
10101// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
10102topState:function topState (n) {
10103 n = this.conditionStack.length - 1 - Math.abs(n || 0);
10104 if (n >= 0) {
10105 return this.conditionStack[n];
10106 } else {
10107 return "INITIAL";
10108 }
10109 },
10110
10111// alias for begin(condition)
10112pushState:function pushState (condition) {
10113 this.begin(condition);
10114 },
10115
10116// return the number of states currently on the stack
10117stateStackSize:function stateStackSize() {
10118 return this.conditionStack.length;
10119 },
10120options: {"case-insensitive":true},
10121performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
10122var YYSTATE=YY_START;
10123switch($avoiding_name_collisions) {
10124case 0: this.begin('open_directive'); return 26;
10125break;
10126case 1: this.begin('type_directive'); return 27;
10127break;
10128case 2: this.popState(); this.begin('arg_directive'); return 15;
10129break;
10130case 3: this.popState(); this.popState(); return 29;
10131break;
10132case 4:return 28;
10133break;
10134case 5:/* skip comments */
10135break;
10136case 6:/* skip comments */
10137break;
10138case 7:return 11;
10139break;
10140case 8:/* skip whitespace */
10141break;
10142case 9:/* skip comments */
10143break;
10144case 10:return 4;
10145break;
10146case 11:return 17;
10147break;
10148case 12: this.begin("acc_title");return 18;
10149break;
10150case 13: this.popState(); return "acc_title_value";
10151break;
10152case 14: this.begin("acc_descr");return 20;
10153break;
10154case 15: this.popState(); return "acc_descr_value";
10155break;
10156case 16: this.begin("acc_descr_multiline");
10157break;
10158case 17: this.popState();
10159break;
10160case 18:return "acc_descr_multiline_value";
10161break;
10162case 19:return 23;
10163break;
10164case 20:return 24;
10165break;
10166case 21:return 25;
10167break;
10168case 22:return 15;
10169break;
10170case 23:return 6;
10171break;
10172case 24:return 'INVALID';
10173break;
10174}
10175},
10176rules: [/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],
10177conditions: {"open_directive":{"rules":[1],"inclusive":false},"type_directive":{"rules":[2,3],"inclusive":false},"arg_directive":{"rules":[3,4],"inclusive":false},"acc_descr_multiline":{"rules":[17,18],"inclusive":false},"acc_descr":{"rules":[15],"inclusive":false},"acc_title":{"rules":[13],"inclusive":false},"INITIAL":{"rules":[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23,24],"inclusive":true}}
10178});
10179return lexer;
10180})();
10181parser.lexer = lexer;
10182function Parser () {
10183 this.yy = {};
10184}
10185Parser.prototype = parser;parser.Parser = Parser;
10186return new Parser;
10187})();
10188
10189
10190if (true) {
10191exports.parser = parser;
10192exports.Parser = parser.Parser;
10193exports.parse = function () { return parser.parse.apply(parser, arguments); };
10194exports.main = function commonjsMain (args) {
10195 if (!args[1]) {
10196 console.log('Usage: '+args[0]+' FILE');
10197 process.exit(1);
10198 }
10199 var source = (__webpack_require__(/*! fs */ "?0f62").readFileSync)((__webpack_require__(/*! path */ "./node_modules/path-browserify/index.js").normalize)(args[1]), "utf8");
10200 return exports.parser.parse(source);
10201};
10202if ( true && __webpack_require__.c[__webpack_require__.s] === module) {
10203 exports.main(process.argv.slice(1));
10204}
10205}
10206
10207/***/ }),
10208
10209/***/ "./node_modules/@braintree/sanitize-url/dist/index.js":
10210/*!************************************************************!*\
10211 !*** ./node_modules/@braintree/sanitize-url/dist/index.js ***!
10212 \************************************************************/
10213/***/ ((__unused_webpack_module, exports) => {
10214
10215"use strict";
10216
10217Object.defineProperty(exports, "__esModule", ({ value: true }));
10218exports.sanitizeUrl = void 0;
10219var invalidProtocolRegex = /^([^\w]*)(javascript|data|vbscript)/im;
10220var htmlEntitiesRegex = /&#(\w+)(^\w|;)?/g;
10221var ctrlCharactersRegex = /[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;
10222var urlSchemeRegex = /^([^:]+):/gm;
10223var relativeFirstCharacters = [".", "/"];
10224function isRelativeUrlWithoutProtocol(url) {
10225 return relativeFirstCharacters.indexOf(url[0]) > -1;
10226}
10227// adapted from https://stackoverflow.com/a/29824550/2601552
10228function decodeHtmlCharacters(str) {
10229 return str.replace(htmlEntitiesRegex, function (match, dec) {
10230 return String.fromCharCode(dec);
10231 });
10232}
10233function sanitizeUrl(url) {
10234 var sanitizedUrl = decodeHtmlCharacters(url || "")
10235 .replace(ctrlCharactersRegex, "")
10236 .trim();
10237 if (!sanitizedUrl) {
10238 return "about:blank";
10239 }
10240 if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {
10241 return sanitizedUrl;
10242 }
10243 var urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);
10244 if (!urlSchemeParseResults) {
10245 return sanitizedUrl;
10246 }
10247 var urlScheme = urlSchemeParseResults[0];
10248 if (invalidProtocolRegex.test(urlScheme)) {
10249 return "about:blank";
10250 }
10251 return sanitizedUrl;
10252}
10253exports.sanitizeUrl = sanitizeUrl;
10254
10255
10256/***/ }),
10257
10258/***/ "./src/Diagram.js":
10259/*!************************!*\
10260 !*** ./src/Diagram.js ***!
10261 \************************/
10262/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10263
10264"use strict";
10265__webpack_require__.r(__webpack_exports__);
10266/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10267/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10268/* harmony export */ });
10269/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./config */ "./src/config.js");
10270/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
10271/* harmony import */ var _diagram_api_diagramAPI__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./diagram-api/diagramAPI */ "./src/diagram-api/diagramAPI.js");
10272/* harmony import */ var _diagram_api_detectType__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./diagram-api/detectType */ "./src/diagram-api/detectType.js");
10273function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10274
10275function _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); } }
10276
10277function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
10278
10279function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10280
10281
10282
10283
10284
10285
10286
10287var Diagram = /*#__PURE__*/function () {
10288 function Diagram(txt) {
10289 var _this$db$clear, _this$db;
10290
10291 _classCallCheck(this, Diagram);
10292
10293 _defineProperty(this, "type", 'graph');
10294
10295 _defineProperty(this, "parser", void 0);
10296
10297 _defineProperty(this, "renderer", void 0);
10298
10299 _defineProperty(this, "db", void 0);
10300
10301 var diagrams = (0,_diagram_api_diagramAPI__WEBPACK_IMPORTED_MODULE_0__.getDiagrams)();
10302 var cnf = _config__WEBPACK_IMPORTED_MODULE_1__.getConfig();
10303 this.txt = txt;
10304 this.type = (0,_diagram_api_detectType__WEBPACK_IMPORTED_MODULE_2__["default"])(txt, cnf);
10305 _logger__WEBPACK_IMPORTED_MODULE_3__.log.debug('Type ' + this.type); // console.log('this.type', this.type, diagrams[this.type]);
10306 // Setup diagram
10307
10308 this.db = diagrams[this.type].db;
10309 (_this$db$clear = (_this$db = this.db).clear) === null || _this$db$clear === void 0 ? void 0 : _this$db$clear.call(_this$db);
10310 this.renderer = diagrams[this.type].renderer;
10311 this.parser = diagrams[this.type].parser;
10312 this.parser.parser.yy = this.db;
10313
10314 if (typeof diagrams[this.type].init === 'function') {
10315 diagrams[this.type].init(cnf);
10316 _logger__WEBPACK_IMPORTED_MODULE_3__.log.debug('Initialized diagram ' + this.type, cnf);
10317 }
10318
10319 this.txt = this.txt + '\n';
10320 this.parser.parser.yy.graphType = this.type;
10321
10322 this.parser.parser.yy.parseError = function (str, hash) {
10323 var error = {
10324 str: str,
10325 hash: hash
10326 };
10327 throw error;
10328 };
10329
10330 this.parser.parse(this.txt);
10331 }
10332
10333 _createClass(Diagram, [{
10334 key: "parse",
10335 value: function parse(text) {
10336 var parseEncounteredException = false;
10337
10338 try {
10339 text = text + '\n';
10340 this.db.clear();
10341 this.parser.parse(text);
10342 } catch (error) {
10343 parseEncounteredException = true; // Is this the correct way to access mermiad's parseError()
10344 // method ? (or global.mermaid.parseError()) ?
10345
10346 if (__webpack_require__.g.mermaid.parseError) {
10347 if (error.str != undefined) {
10348 // handle case where error string and hash were
10349 // wrapped in object like`const error = { str, hash };`
10350 __webpack_require__.g.mermaid.parseError(error.str, error.hash);
10351 } else {
10352 // assume it is just error string and pass it on
10353 __webpack_require__.g.mermaid.parseError(error);
10354 }
10355 } else {
10356 // No mermaid.parseError() handler defined, so re-throw it
10357 throw error;
10358 }
10359 }
10360
10361 return !parseEncounteredException;
10362 }
10363 }, {
10364 key: "getParser",
10365 value: function getParser() {
10366 return this.parser;
10367 }
10368 }, {
10369 key: "getType",
10370 value: function getType() {
10371 return this.type;
10372 }
10373 }]);
10374
10375 return Diagram;
10376}();
10377
10378/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Diagram);
10379
10380/***/ }),
10381
10382/***/ "./src/accessibility.js":
10383/*!******************************!*\
10384 !*** ./src/accessibility.js ***!
10385 \******************************/
10386/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10387
10388"use strict";
10389__webpack_require__.r(__webpack_exports__);
10390/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10391/* harmony export */ "default": () => (/* binding */ addSVGAccessibilityFields)
10392/* harmony export */ });
10393/**
10394 * This method will add a basic title and description element to a chart. The yy parser will need to
10395 * respond to getAccTitle and getAccDescription, where the title is the title element on the chart,
10396 * which is generally not displayed and the accDescription is the description element on the chart,
10397 * which is never displayed.
10398 *
10399 * The following charts display their title as a visual and accessibility element: gantt
10400 *
10401 * @param yy_parser
10402 * @param svg
10403 * @param id
10404 */
10405function addSVGAccessibilityFields(yy_parser, svg, id) {
10406 if (typeof svg.insert === 'undefined') {
10407 return;
10408 }
10409
10410 var title_string = yy_parser.getAccTitle();
10411 var description = yy_parser.getAccDescription();
10412 svg.attr('role', 'img').attr('aria-labelledby', 'chart-title-' + id + ' chart-desc-' + id);
10413 svg.insert('desc', ':first-child').attr('id', 'chart-desc-' + id).text(description);
10414 svg.insert('title', ':first-child').attr('id', 'chart-title-' + id).text(title_string);
10415}
10416
10417/***/ }),
10418
10419/***/ "./src/assignWithDepth.js":
10420/*!********************************!*\
10421 !*** ./src/assignWithDepth.js ***!
10422 \********************************/
10423/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10424
10425"use strict";
10426__webpack_require__.r(__webpack_exports__);
10427/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10428/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10429/* harmony export */ });
10430function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
10431
10432/**
10433 * @function assignWithDepth Extends the functionality of {@link ObjectConstructor.assign} with the
10434 * ability to merge arbitrary-depth objects For each key in src with path `k` (recursively)
10435 * performs an Object.assign(dst[`k`], src[`k`]) with a slight change from the typical handling of
10436 * undefined for dst[`k`]: instead of raising an error, dst[`k`] is auto-initialized to {} and
10437 * effectively merged with src[`k`]<p> Additionally, dissimilar types will not clobber unless the
10438 * config.clobber parameter === true. Example:
10439 *
10440 * ```js
10441 * let config_0 = { foo: { bar: 'bar' }, bar: 'foo' };
10442 * let config_1 = { foo: 'foo', bar: 'bar' };
10443 * let result = assignWithDepth(config_0, config_1);
10444 * console.log(result);
10445 * //-> result: { foo: { bar: 'bar' }, bar: 'bar' }
10446 * ```
10447 *
10448 * Traditional Object.assign would have clobbered foo in config_0 with foo in config_1. If src is a
10449 * destructured array of objects and dst is not an array, assignWithDepth will apply each element
10450 * of src to dst in order.
10451 * @param dst
10452 * @param src
10453 * @param config
10454 * @param dst
10455 * @param src
10456 * @param config
10457 * @param dst
10458 * @param src
10459 * @param config
10460 * @param {any} dst - The destination of the merge
10461 * @param {any} src - The source object(s) to merge into destination
10462 * @param {{ depth: number; clobber: boolean }} [config={ depth: 2, clobber: false }] - Depth: depth
10463 * to traverse within src and dst for merging - clobber: should dissimilar types clobber (default:
10464 * { depth: 2, clobber: false }). Default is `{ depth: 2, clobber: false }`
10465 * @returns {any}
10466 */
10467var assignWithDepth = function assignWithDepth(dst, src, config) {
10468 var _Object$assign = Object.assign({
10469 depth: 2,
10470 clobber: false
10471 }, config),
10472 depth = _Object$assign.depth,
10473 clobber = _Object$assign.clobber;
10474
10475 if (Array.isArray(src) && !Array.isArray(dst)) {
10476 src.forEach(function (s) {
10477 return assignWithDepth(dst, s, config);
10478 });
10479 return dst;
10480 } else if (Array.isArray(src) && Array.isArray(dst)) {
10481 src.forEach(function (s) {
10482 if (dst.indexOf(s) === -1) {
10483 dst.push(s);
10484 }
10485 });
10486 return dst;
10487 }
10488
10489 if (typeof dst === 'undefined' || depth <= 0) {
10490 if (dst !== undefined && dst !== null && _typeof(dst) === 'object' && _typeof(src) === 'object') {
10491 return Object.assign(dst, src);
10492 } else {
10493 return src;
10494 }
10495 }
10496
10497 if (typeof src !== 'undefined' && _typeof(dst) === 'object' && _typeof(src) === 'object') {
10498 Object.keys(src).forEach(function (key) {
10499 if (_typeof(src[key]) === 'object' && (dst[key] === undefined || _typeof(dst[key]) === 'object')) {
10500 if (dst[key] === undefined) {
10501 dst[key] = Array.isArray(src[key]) ? [] : {};
10502 }
10503
10504 dst[key] = assignWithDepth(dst[key], src[key], {
10505 depth: depth - 1,
10506 clobber: clobber
10507 });
10508 } else if (clobber || _typeof(dst[key]) !== 'object' && _typeof(src[key]) !== 'object') {
10509 dst[key] = src[key];
10510 }
10511 });
10512 }
10513
10514 return dst;
10515};
10516
10517/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (assignWithDepth);
10518
10519/***/ }),
10520
10521/***/ "./src/commonDb.js":
10522/*!*************************!*\
10523 !*** ./src/commonDb.js ***!
10524 \*************************/
10525/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10526
10527"use strict";
10528__webpack_require__.r(__webpack_exports__);
10529/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10530/* harmony export */ "clear": () => (/* binding */ clear),
10531/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
10532/* harmony export */ "getAccDescription": () => (/* binding */ getAccDescription),
10533/* harmony export */ "getAccTitle": () => (/* binding */ getAccTitle),
10534/* harmony export */ "getDiagramTitle": () => (/* binding */ getDiagramTitle),
10535/* harmony export */ "setAccDescription": () => (/* binding */ setAccDescription),
10536/* harmony export */ "setAccTitle": () => (/* binding */ setAccTitle),
10537/* harmony export */ "setDiagramTitle": () => (/* binding */ setDiagramTitle)
10538/* harmony export */ });
10539/* harmony import */ var _diagrams_common_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./diagrams/common/common */ "./src/diagrams/common/common.js");
10540/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./config */ "./src/config.js");
10541
10542
10543var title = '';
10544var diagramTitle = '';
10545var description = '';
10546
10547var sanitizeText = function sanitizeText(txt) {
10548 return (0,_diagrams_common_common__WEBPACK_IMPORTED_MODULE_0__.sanitizeText)(txt, (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)());
10549};
10550
10551var clear = function clear() {
10552 title = '';
10553 description = '';
10554 diagramTitle = '';
10555};
10556var setAccTitle = function setAccTitle(txt) {
10557 title = sanitizeText(txt).replace(/^\s+/g, '');
10558};
10559var getAccTitle = function getAccTitle() {
10560 return title || diagramTitle;
10561};
10562var setAccDescription = function setAccDescription(txt) {
10563 description = sanitizeText(txt).replace(/\n\s+/g, '\n');
10564};
10565var getAccDescription = function getAccDescription() {
10566 return description;
10567};
10568var setDiagramTitle = function setDiagramTitle(txt) {
10569 diagramTitle = sanitizeText(txt);
10570};
10571var getDiagramTitle = function getDiagramTitle() {
10572 return diagramTitle;
10573};
10574/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
10575 setAccTitle: setAccTitle,
10576 getAccTitle: getAccTitle,
10577 setDiagramTitle: setDiagramTitle,
10578 getDiagramTitle: getDiagramTitle,
10579 getAccDescription: getAccDescription,
10580 setAccDescription: setAccDescription,
10581 clear: clear
10582});
10583
10584/***/ }),
10585
10586/***/ "./src/config.js":
10587/*!***********************!*\
10588 !*** ./src/config.js ***!
10589 \***********************/
10590/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10591
10592"use strict";
10593__webpack_require__.r(__webpack_exports__);
10594/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10595/* harmony export */ "addDirective": () => (/* binding */ addDirective),
10596/* harmony export */ "defaultConfig": () => (/* binding */ defaultConfig),
10597/* harmony export */ "getConfig": () => (/* binding */ getConfig),
10598/* harmony export */ "getSiteConfig": () => (/* binding */ getSiteConfig),
10599/* harmony export */ "reset": () => (/* binding */ reset),
10600/* harmony export */ "sanitize": () => (/* binding */ sanitize),
10601/* harmony export */ "saveConfigFromInitialize": () => (/* binding */ saveConfigFromInitialize),
10602/* harmony export */ "setConfig": () => (/* binding */ setConfig),
10603/* harmony export */ "setSiteConfig": () => (/* binding */ setSiteConfig),
10604/* harmony export */ "updateCurrentConfig": () => (/* binding */ updateCurrentConfig),
10605/* harmony export */ "updateSiteConfig": () => (/* binding */ updateSiteConfig)
10606/* harmony export */ });
10607/* harmony import */ var _assignWithDepth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assignWithDepth */ "./src/assignWithDepth.js");
10608/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
10609/* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./themes */ "./src/themes/index.js");
10610/* harmony import */ var _defaultConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultConfig */ "./src/defaultConfig.js");
10611function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
10612
10613
10614
10615
10616
10617var defaultConfig = Object.freeze(_defaultConfig__WEBPACK_IMPORTED_MODULE_0__["default"]);
10618var siteConfig = (0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_1__["default"])({}, defaultConfig);
10619var configFromInitialize;
10620var directives = [];
10621var currentConfig = (0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_1__["default"])({}, defaultConfig);
10622var updateCurrentConfig = function updateCurrentConfig(siteCfg, _directives) {
10623 // start with config beeing the siteConfig
10624 var cfg = (0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_1__["default"])({}, siteCfg); // let sCfg = assignWithDepth(defaultConfig, siteConfigDelta);
10625 // Join directives
10626
10627 var sumOfDirectives = {};
10628
10629 for (var i = 0; i < _directives.length; i++) {
10630 var d = _directives[i];
10631 sanitize(d); // Apply the data from the directive where the the overrides the themeVariables
10632
10633 sumOfDirectives = (0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_1__["default"])(sumOfDirectives, d);
10634 }
10635
10636 cfg = (0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_1__["default"])(cfg, sumOfDirectives);
10637
10638 if (sumOfDirectives.theme && _themes__WEBPACK_IMPORTED_MODULE_2__["default"][sumOfDirectives.theme]) {
10639 var tmpConfigFromInitialize = (0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_1__["default"])({}, configFromInitialize);
10640 var themeVariables = (0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_1__["default"])(tmpConfigFromInitialize.themeVariables || {}, sumOfDirectives.themeVariables);
10641 cfg.themeVariables = _themes__WEBPACK_IMPORTED_MODULE_2__["default"][cfg.theme].getThemeVariables(themeVariables);
10642 }
10643
10644 currentConfig = cfg;
10645 return cfg;
10646};
10647/**
10648 * ## setSiteConfig
10649 *
10650 * | Function | Description | Type | Values |
10651 * | ------------- | ------------------------------------- | ----------- | --------------------------------------- |
10652 * | setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array |
10653 *
10654 * **Notes:** Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls
10655 * to reset() will reset the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig)
10656 * will reset siteConfig and currentConfig to the defaultConfig Note: currentConfig is set in this
10657 * function _Default value: At default, will mirror Global Config_
10658 *
10659 * @param conf - The base currentConfig to use as siteConfig
10660 * @returns {object} - The siteConfig
10661 */
10662
10663var setSiteConfig = function setSiteConfig(conf) {
10664 siteConfig = (0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_1__["default"])({}, defaultConfig);
10665 siteConfig = (0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_1__["default"])(siteConfig, conf);
10666
10667 if (conf.theme && _themes__WEBPACK_IMPORTED_MODULE_2__["default"][conf.theme]) {
10668 siteConfig.themeVariables = _themes__WEBPACK_IMPORTED_MODULE_2__["default"][conf.theme].getThemeVariables(conf.themeVariables);
10669 }
10670
10671 currentConfig = updateCurrentConfig(siteConfig, directives);
10672 return siteConfig;
10673};
10674var saveConfigFromInitialize = function saveConfigFromInitialize(conf) {
10675 configFromInitialize = (0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_1__["default"])({}, conf);
10676};
10677var updateSiteConfig = function updateSiteConfig(conf) {
10678 siteConfig = (0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_1__["default"])(siteConfig, conf);
10679 updateCurrentConfig(siteConfig, directives);
10680 return siteConfig;
10681};
10682/**
10683 * ## getSiteConfig
10684 *
10685 * | Function | Description | Type | Values |
10686 * | ------------- | ------------------------------------------------- | ----------- | -------------------------------- |
10687 * | setSiteConfig | Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig |
10688 *
10689 * **Notes**: Returns **any** values in siteConfig.
10690 *
10691 * @returns {object} - The siteConfig
10692 */
10693
10694var getSiteConfig = function getSiteConfig() {
10695 return (0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_1__["default"])({}, siteConfig);
10696};
10697/**
10698 * ## setConfig
10699 *
10700 * | Function | Description | Type | Values |
10701 * | ------------- | ------------------------------------- | ----------- | --------------------------------------- |
10702 * | setSiteConfig | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array |
10703 *
10704 * **Notes**: Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure
10705 * keys. Any values found in conf with key found in siteConfig.secure will be replaced with the
10706 * corresponding siteConfig value.
10707 *
10708 * @param {any} conf - The potential currentConfig
10709 * @returns {any} - The currentConfig merged with the sanitized conf
10710 */
10711
10712var setConfig = function setConfig(conf) {
10713 // sanitize(conf);
10714 // Object.keys(conf).forEach(key => {
10715 // const manipulator = manipulators[key];
10716 // conf[key] = manipulator ? manipulator(conf[key]) : conf[key];
10717 // });
10718 (0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_1__["default"])(currentConfig, conf);
10719 return getConfig();
10720};
10721/**
10722 * ## getConfig
10723 *
10724 * | Function | Description | Type | Return Values |
10725 * | --------- | ------------------------- | ----------- | ------------------------------ |
10726 * | getConfig | Obtains the currentConfig | Get Request | Any Values from current Config |
10727 *
10728 * **Notes**: Returns **any** the currentConfig
10729 *
10730 * @returns {any} - The currentConfig
10731 */
10732
10733var getConfig = function getConfig() {
10734 return (0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_1__["default"])({}, currentConfig);
10735};
10736/**
10737 * ## sanitize
10738 *
10739 * | Function | Description | Type | Values |
10740 * | -------- | -------------------------------------- | ----------- | ------ |
10741 * | sanitize | Sets the siteConfig to desired values. | Put Request | None |
10742 *
10743 * Ensures options parameter does not attempt to override siteConfig secure keys **Notes**: modifies
10744 * options in-place
10745 *
10746 * @param {any} options - The potential setConfig parameter
10747 */
10748
10749var sanitize = function sanitize(options) {
10750 // Checking that options are not in the list of excluded options
10751 Object.keys(siteConfig.secure).forEach(function (key) {
10752 if (typeof options[siteConfig.secure[key]] !== 'undefined') {
10753 // DO NOT attempt to print options[siteConfig.secure[key]] within `${}` as a malicious script
10754 // can exploit the logger's attempt to stringify the value and execute arbitrary code
10755 _logger__WEBPACK_IMPORTED_MODULE_3__.log.debug("Denied attempt to modify a secure key ".concat(siteConfig.secure[key]), options[siteConfig.secure[key]]);
10756 delete options[siteConfig.secure[key]];
10757 }
10758 }); // Check that there no attempts of prototype pollution
10759
10760 Object.keys(options).forEach(function (key) {
10761 if (key.indexOf('__') === 0) {
10762 delete options[key];
10763 }
10764 }); // Check that there no attempts of xss, there should be no tags at all in the directive
10765 // blocking data urls as base64 urls can contain svgs with inline script tags
10766
10767 Object.keys(options).forEach(function (key) {
10768 if (typeof options[key] === 'string') {
10769 if (options[key].indexOf('<') > -1 || options[key].indexOf('>') > -1 || options[key].indexOf('url(data:') > -1) {
10770 delete options[key];
10771 }
10772 }
10773
10774 if (_typeof(options[key]) === 'object') {
10775 sanitize(options[key]);
10776 }
10777 });
10778};
10779/**
10780 * Pushes in a directive to the configuration
10781 *
10782 * @param {object} directive The directive to push in
10783 */
10784
10785var addDirective = function addDirective(directive) {
10786 if (directive.fontFamily) {
10787 if (!directive.themeVariables) {
10788 directive.themeVariables = {
10789 fontFamily: directive.fontFamily
10790 };
10791 } else {
10792 if (!directive.themeVariables.fontFamily) {
10793 directive.themeVariables = {
10794 fontFamily: directive.fontFamily
10795 };
10796 }
10797 }
10798 }
10799
10800 directives.push(directive);
10801 updateCurrentConfig(siteConfig, directives);
10802};
10803/**
10804 * ## reset
10805 *
10806 * | Function | Description | Type | Required | Values |
10807 * | -------- | ---------------------------- | ----------- | -------- | ------ |
10808 * | reset | Resets currentConfig to conf | Put Request | Required | None |
10809 *
10810 * ## conf
10811 *
10812 * | Parameter | Description | Type | Required | Values |
10813 * | --------- | -------------------------------------------------------------- | ---------- | -------- | -------------------------------------------- |
10814 * | conf | base set of values, which currentConfig could be **reset** to. | Dictionary | Required | Any Values, with respect to the secure Array |
10815 *
10816 * **Notes**: (default: current siteConfig ) (optional, default `getSiteConfig()`)
10817 */
10818
10819var reset = function reset() {
10820 // Replace current config with siteConfig
10821 directives = [];
10822 updateCurrentConfig(siteConfig, directives);
10823};
10824
10825/***/ }),
10826
10827/***/ "./src/dagre-wrapper/clusters.js":
10828/*!***************************************!*\
10829 !*** ./src/dagre-wrapper/clusters.js ***!
10830 \***************************************/
10831/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10832
10833"use strict";
10834__webpack_require__.r(__webpack_exports__);
10835/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10836/* harmony export */ "clear": () => (/* binding */ clear),
10837/* harmony export */ "getClusterTitleWidth": () => (/* binding */ getClusterTitleWidth),
10838/* harmony export */ "insertCluster": () => (/* binding */ insertCluster),
10839/* harmony export */ "positionCluster": () => (/* binding */ positionCluster)
10840/* harmony export */ });
10841/* harmony import */ var _intersect_intersect_rect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./intersect/intersect-rect */ "./src/dagre-wrapper/intersect/intersect-rect.js");
10842/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
10843/* harmony import */ var _createLabel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createLabel */ "./src/dagre-wrapper/createLabel.js");
10844/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
10845/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../config */ "./src/config.js");
10846/* harmony import */ var _diagrams_common_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../diagrams/common/common */ "./src/diagrams/common/common.js");
10847
10848
10849
10850
10851
10852
10853
10854var rect = function rect(parent, node) {
10855 _logger__WEBPACK_IMPORTED_MODULE_1__.log.trace('Creating subgraph rect for ', node.id, node); // Add outer g element
10856
10857 var shapeSvg = parent.insert('g').attr('class', 'cluster' + (node.class ? ' ' + node.class : '')).attr('id', node.id); // add the rect
10858
10859 var rect = shapeSvg.insert('rect', ':first-child'); // Create the label and insert it after the rect
10860
10861 var label = shapeSvg.insert('g').attr('class', 'cluster-label');
10862 var text = label.node().appendChild((0,_createLabel__WEBPACK_IMPORTED_MODULE_2__["default"])(node.labelText, node.labelStyle, undefined, true)); // Get the size of the label
10863
10864 var bbox = text.getBBox();
10865
10866 if ((0,_diagrams_common_common__WEBPACK_IMPORTED_MODULE_3__.evaluate)((0,_config__WEBPACK_IMPORTED_MODULE_4__.getConfig)().flowchart.htmlLabels)) {
10867 var div = text.children[0];
10868 var dv = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(text);
10869 bbox = div.getBoundingClientRect();
10870 dv.attr('width', bbox.width);
10871 dv.attr('height', bbox.height);
10872 }
10873
10874 var padding = 0 * node.padding;
10875 var halfPadding = padding / 2;
10876 var width = node.width <= bbox.width + padding ? bbox.width + padding : node.width;
10877
10878 if (node.width <= bbox.width + padding) {
10879 node.diff = (bbox.width - node.width) / 2 - node.padding / 2;
10880 } else {
10881 node.diff = -node.padding / 2;
10882 }
10883
10884 _logger__WEBPACK_IMPORTED_MODULE_1__.log.trace('Data ', node, JSON.stringify(node)); // center the rect around its coordinate
10885
10886 rect.attr('style', node.style).attr('rx', node.rx).attr('ry', node.ry).attr('x', node.x - width / 2).attr('y', node.y - node.height / 2 - halfPadding).attr('width', width).attr('height', node.height + padding); // Center the label
10887
10888 label.attr('transform', 'translate(' + (node.x - bbox.width / 2) + ', ' + (node.y - node.height / 2 + node.padding / 3) + ')');
10889 var rectBox = rect.node().getBBox();
10890 node.width = rectBox.width;
10891 node.height = rectBox.height;
10892
10893 node.intersect = function (point) {
10894 return (0,_intersect_intersect_rect__WEBPACK_IMPORTED_MODULE_5__["default"])(node, point);
10895 };
10896
10897 return shapeSvg;
10898};
10899/**
10900 * Non visible cluster where the note is group with its
10901 *
10902 * @param {any} parent
10903 * @param {any} node
10904 * @returns {any} ShapeSvg
10905 */
10906
10907
10908var noteGroup = function noteGroup(parent, node) {
10909 // Add outer g element
10910 var shapeSvg = parent.insert('g').attr('class', 'note-cluster').attr('id', node.id); // add the rect
10911
10912 var rect = shapeSvg.insert('rect', ':first-child');
10913 var padding = 0 * node.padding;
10914 var halfPadding = padding / 2; // center the rect around its coordinate
10915
10916 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');
10917 var rectBox = rect.node().getBBox();
10918 node.width = rectBox.width;
10919 node.height = rectBox.height;
10920
10921 node.intersect = function (point) {
10922 return (0,_intersect_intersect_rect__WEBPACK_IMPORTED_MODULE_5__["default"])(node, point);
10923 };
10924
10925 return shapeSvg;
10926};
10927
10928var roundedWithTitle = function roundedWithTitle(parent, node) {
10929 // Add outer g element
10930 var shapeSvg = parent.insert('g').attr('class', node.classes).attr('id', node.id); // add the rect
10931
10932 var rect = shapeSvg.insert('rect', ':first-child'); // Create the label and insert it after the rect
10933
10934 var label = shapeSvg.insert('g').attr('class', 'cluster-label');
10935 var innerRect = shapeSvg.append('rect');
10936 var text = label.node().appendChild((0,_createLabel__WEBPACK_IMPORTED_MODULE_2__["default"])(node.labelText, node.labelStyle, undefined, true)); // Get the size of the label
10937
10938 var bbox = text.getBBox();
10939
10940 if ((0,_diagrams_common_common__WEBPACK_IMPORTED_MODULE_3__.evaluate)((0,_config__WEBPACK_IMPORTED_MODULE_4__.getConfig)().flowchart.htmlLabels)) {
10941 var div = text.children[0];
10942 var dv = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(text);
10943 bbox = div.getBoundingClientRect();
10944 dv.attr('width', bbox.width);
10945 dv.attr('height', bbox.height);
10946 }
10947
10948 bbox = text.getBBox();
10949 var padding = 0 * node.padding;
10950 var halfPadding = padding / 2;
10951 var width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;
10952
10953 if (node.width <= bbox.width + node.padding) {
10954 node.diff = (bbox.width + node.padding * 0 - node.width) / 2;
10955 } else {
10956 node.diff = -node.padding / 2;
10957 } // center the rect around its coordinate
10958
10959
10960 rect.attr('class', 'outer').attr('x', node.x - width / 2 - halfPadding).attr('y', node.y - node.height / 2 - halfPadding).attr('width', width + padding).attr('height', node.height + padding);
10961 innerRect.attr('class', 'inner').attr('x', node.x - width / 2 - halfPadding).attr('y', node.y - node.height / 2 - halfPadding + bbox.height - 1).attr('width', width + padding).attr('height', node.height + padding - bbox.height - 3); // Center the label
10962
10963 label.attr('transform', 'translate(' + (node.x - bbox.width / 2) + ', ' + (node.y - node.height / 2 - node.padding / 3 + ((0,_diagrams_common_common__WEBPACK_IMPORTED_MODULE_3__.evaluate)((0,_config__WEBPACK_IMPORTED_MODULE_4__.getConfig)().flowchart.htmlLabels) ? 5 : 3)) + ')');
10964 var rectBox = rect.node().getBBox();
10965 node.height = rectBox.height;
10966
10967 node.intersect = function (point) {
10968 return (0,_intersect_intersect_rect__WEBPACK_IMPORTED_MODULE_5__["default"])(node, point);
10969 };
10970
10971 return shapeSvg;
10972};
10973
10974var divider = function divider(parent, node) {
10975 // Add outer g element
10976 var shapeSvg = parent.insert('g').attr('class', node.classes).attr('id', node.id); // add the rect
10977
10978 var rect = shapeSvg.insert('rect', ':first-child');
10979 var padding = 0 * node.padding;
10980 var halfPadding = padding / 2; // center the rect around its coordinate
10981
10982 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);
10983 var rectBox = rect.node().getBBox();
10984 node.width = rectBox.width;
10985 node.height = rectBox.height;
10986 node.diff = -node.padding / 2;
10987
10988 node.intersect = function (point) {
10989 return (0,_intersect_intersect_rect__WEBPACK_IMPORTED_MODULE_5__["default"])(node, point);
10990 };
10991
10992 return shapeSvg;
10993};
10994
10995var shapes = {
10996 rect: rect,
10997 roundedWithTitle: roundedWithTitle,
10998 noteGroup: noteGroup,
10999 divider: divider
11000};
11001var clusterElems = {};
11002var insertCluster = function insertCluster(elem, node) {
11003 _logger__WEBPACK_IMPORTED_MODULE_1__.log.trace('Inserting cluster');
11004 var shape = node.shape || 'rect';
11005 clusterElems[node.id] = shapes[shape](elem, node);
11006};
11007var getClusterTitleWidth = function getClusterTitleWidth(elem, node) {
11008 var label = (0,_createLabel__WEBPACK_IMPORTED_MODULE_2__["default"])(node.labelText, node.labelStyle, undefined, true);
11009 elem.node().appendChild(label);
11010 var width = label.getBBox().width;
11011 elem.node().removeChild(label);
11012 return width;
11013};
11014var clear = function clear() {
11015 clusterElems = {};
11016};
11017var positionCluster = function positionCluster(node) {
11018 _logger__WEBPACK_IMPORTED_MODULE_1__.log.info('Position cluster (' + node.id + ', ' + node.x + ', ' + node.y + ')');
11019 var el = clusterElems[node.id];
11020 el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');
11021};
11022
11023/***/ }),
11024
11025/***/ "./src/dagre-wrapper/createLabel.js":
11026/*!******************************************!*\
11027 !*** ./src/dagre-wrapper/createLabel.js ***!
11028 \******************************************/
11029/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
11030
11031"use strict";
11032__webpack_require__.r(__webpack_exports__);
11033/* harmony export */ __webpack_require__.d(__webpack_exports__, {
11034/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
11035/* harmony export */ });
11036/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
11037/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
11038/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../config */ "./src/config.js");
11039/* harmony import */ var _diagrams_common_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../diagrams/common/common */ "./src/diagrams/common/common.js");
11040/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../mermaidAPI */ "./src/mermaidAPI.js");
11041function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
11042
11043
11044 // eslint-disable-line
11045
11046
11047
11048
11049
11050var sanitizeTxt = function sanitizeTxt(txt) {
11051 return (0,_diagrams_common_common__WEBPACK_IMPORTED_MODULE_1__.sanitizeText)(txt, (0,_config__WEBPACK_IMPORTED_MODULE_2__.getConfig)());
11052};
11053/**
11054 * @param dom
11055 * @param styleFn
11056 */
11057
11058
11059function applyStyle(dom, styleFn) {
11060 if (styleFn) {
11061 dom.attr('style', styleFn);
11062 }
11063}
11064/**
11065 * @param {any} node
11066 * @returns {SVGForeignObjectElement} Node
11067 */
11068
11069
11070function addHtmlLabel(node) {
11071 var fo = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject'));
11072 var div = fo.append('xhtml:div');
11073 var label = node.label;
11074 var labelClass = node.isNode ? 'nodeLabel' : 'edgeLabel';
11075 div.html('<span class="' + labelClass + '" ' + (node.labelStyle ? 'style="' + node.labelStyle + '"' : '') + '>' + label + '</span>');
11076 applyStyle(div, node.labelStyle);
11077 div.style('display', 'inline-block'); // Fix for firefox
11078
11079 div.style('white-space', 'nowrap');
11080 div.attr('xmlns', 'http://www.w3.org/1999/xhtml');
11081 return fo.node();
11082}
11083
11084var createLabel = function createLabel(_vertexText, style, isTitle, isNode) {
11085 var vertexText = _vertexText || '';
11086 if (_typeof(vertexText) === 'object') vertexText = vertexText[0];
11087
11088 if ((0,_diagrams_common_common__WEBPACK_IMPORTED_MODULE_1__.evaluate)((0,_config__WEBPACK_IMPORTED_MODULE_2__.getConfig)().flowchart.htmlLabels)) {
11089 // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?
11090 vertexText = vertexText.replace(/\\n|\n/g, '<br />');
11091 _logger__WEBPACK_IMPORTED_MODULE_3__.log.info('vertexText' + vertexText);
11092 var node = {
11093 isNode: isNode,
11094 label: (0,_mermaidAPI__WEBPACK_IMPORTED_MODULE_4__.decodeEntities)(vertexText).replace(/fa[lrsb]?:fa-[\w-]+/g, function (s) {
11095 return "<i class='".concat(s.replace(':', ' '), "'></i>");
11096 }),
11097 labelStyle: style.replace('fill:', 'color:')
11098 };
11099 var vertexNode = addHtmlLabel(node); // vertexNode.parentNode.removeChild(vertexNode);
11100
11101 return vertexNode;
11102 } else {
11103 var svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
11104 svgLabel.setAttribute('style', style.replace('color:', 'fill:'));
11105 var rows = [];
11106
11107 if (typeof vertexText === 'string') {
11108 rows = vertexText.split(/\\n|\n|<br\s*\/?>/gi);
11109 } else if (Array.isArray(vertexText)) {
11110 rows = vertexText;
11111 } else {
11112 rows = [];
11113 }
11114
11115 for (var j = 0; j < rows.length; j++) {
11116 var tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
11117 tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
11118 tspan.setAttribute('dy', '1em');
11119 tspan.setAttribute('x', '0');
11120
11121 if (isTitle) {
11122 tspan.setAttribute('class', 'title-row');
11123 } else {
11124 tspan.setAttribute('class', 'row');
11125 }
11126
11127 tspan.textContent = rows[j].trim();
11128 svgLabel.appendChild(tspan);
11129 }
11130
11131 return svgLabel;
11132 }
11133};
11134
11135/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createLabel);
11136
11137/***/ }),
11138
11139/***/ "./src/dagre-wrapper/edges.js":
11140/*!************************************!*\
11141 !*** ./src/dagre-wrapper/edges.js ***!
11142 \************************************/
11143/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
11144
11145"use strict";
11146__webpack_require__.r(__webpack_exports__);
11147/* harmony export */ __webpack_require__.d(__webpack_exports__, {
11148/* harmony export */ "clear": () => (/* binding */ clear),
11149/* harmony export */ "insertEdge": () => (/* binding */ insertEdge),
11150/* harmony export */ "insertEdgeLabel": () => (/* binding */ insertEdgeLabel),
11151/* harmony export */ "intersection": () => (/* binding */ intersection),
11152/* harmony export */ "positionEdgeLabel": () => (/* binding */ positionEdgeLabel)
11153/* harmony export */ });
11154/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
11155/* harmony import */ var _createLabel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createLabel */ "./src/dagre-wrapper/createLabel.js");
11156/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
11157/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../config */ "./src/config.js");
11158/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils */ "./src/utils.js");
11159/* harmony import */ var _diagrams_common_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../diagrams/common/common */ "./src/diagrams/common/common.js");
11160 // eslint-disable-line
11161
11162
11163
11164
11165
11166
11167var edgeLabels = {};
11168var terminalLabels = {};
11169var clear = function clear() {
11170 edgeLabels = {};
11171 terminalLabels = {};
11172};
11173var insertEdgeLabel = function insertEdgeLabel(elem, edge) {
11174 // Create the actual text element
11175 var labelElement = (0,_createLabel__WEBPACK_IMPORTED_MODULE_1__["default"])(edge.label, edge.labelStyle); // Create outer g, edgeLabel, this will be positioned after graph layout
11176
11177 var edgeLabel = elem.insert('g').attr('class', 'edgeLabel'); // Create inner g, label, this will be positioned now for centering the text
11178
11179 var label = edgeLabel.insert('g').attr('class', 'label');
11180 label.node().appendChild(labelElement); // Center the label
11181
11182 var bbox = labelElement.getBBox();
11183
11184 if ((0,_diagrams_common_common__WEBPACK_IMPORTED_MODULE_2__.evaluate)((0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().flowchart.htmlLabels)) {
11185 var div = labelElement.children[0];
11186 var dv = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(labelElement);
11187 bbox = div.getBoundingClientRect();
11188 dv.attr('width', bbox.width);
11189 dv.attr('height', bbox.height);
11190 }
11191
11192 label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')'); // Make element accessible by id for positioning
11193
11194 edgeLabels[edge.id] = edgeLabel; // Update the abstract data of the edge with the new information about its width and height
11195
11196 edge.width = bbox.width;
11197 edge.height = bbox.height;
11198 var fo;
11199
11200 if (edge.startLabelLeft) {
11201 // Create the actual text element
11202 var startLabelElement = (0,_createLabel__WEBPACK_IMPORTED_MODULE_1__["default"])(edge.startLabelLeft, edge.labelStyle);
11203 var startEdgeLabelLeft = elem.insert('g').attr('class', 'edgeTerminals');
11204 var inner = startEdgeLabelLeft.insert('g').attr('class', 'inner');
11205 fo = inner.node().appendChild(startLabelElement);
11206 var slBox = startLabelElement.getBBox();
11207 inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');
11208
11209 if (!terminalLabels[edge.id]) {
11210 terminalLabels[edge.id] = {};
11211 }
11212
11213 terminalLabels[edge.id].startLeft = startEdgeLabelLeft;
11214 setTerminalWidth(fo, edge.startLabelLeft);
11215 }
11216
11217 if (edge.startLabelRight) {
11218 // Create the actual text element
11219 var _startLabelElement = (0,_createLabel__WEBPACK_IMPORTED_MODULE_1__["default"])(edge.startLabelRight, edge.labelStyle);
11220
11221 var startEdgeLabelRight = elem.insert('g').attr('class', 'edgeTerminals');
11222
11223 var _inner = startEdgeLabelRight.insert('g').attr('class', 'inner');
11224
11225 fo = startEdgeLabelRight.node().appendChild(_startLabelElement);
11226
11227 _inner.node().appendChild(_startLabelElement);
11228
11229 var _slBox = _startLabelElement.getBBox();
11230
11231 _inner.attr('transform', 'translate(' + -_slBox.width / 2 + ', ' + -_slBox.height / 2 + ')');
11232
11233 if (!terminalLabels[edge.id]) {
11234 terminalLabels[edge.id] = {};
11235 }
11236
11237 terminalLabels[edge.id].startRight = startEdgeLabelRight;
11238 setTerminalWidth(fo, edge.startLabelRight);
11239 }
11240
11241 if (edge.endLabelLeft) {
11242 // Create the actual text element
11243 var endLabelElement = (0,_createLabel__WEBPACK_IMPORTED_MODULE_1__["default"])(edge.endLabelLeft, edge.labelStyle);
11244 var endEdgeLabelLeft = elem.insert('g').attr('class', 'edgeTerminals');
11245
11246 var _inner2 = endEdgeLabelLeft.insert('g').attr('class', 'inner');
11247
11248 fo = _inner2.node().appendChild(endLabelElement);
11249
11250 var _slBox2 = endLabelElement.getBBox();
11251
11252 _inner2.attr('transform', 'translate(' + -_slBox2.width / 2 + ', ' + -_slBox2.height / 2 + ')');
11253
11254 endEdgeLabelLeft.node().appendChild(endLabelElement);
11255
11256 if (!terminalLabels[edge.id]) {
11257 terminalLabels[edge.id] = {};
11258 }
11259
11260 terminalLabels[edge.id].endLeft = endEdgeLabelLeft;
11261 setTerminalWidth(fo, edge.endLabelLeft);
11262 }
11263
11264 if (edge.endLabelRight) {
11265 // Create the actual text element
11266 var _endLabelElement = (0,_createLabel__WEBPACK_IMPORTED_MODULE_1__["default"])(edge.endLabelRight, edge.labelStyle);
11267
11268 var endEdgeLabelRight = elem.insert('g').attr('class', 'edgeTerminals');
11269
11270 var _inner3 = endEdgeLabelRight.insert('g').attr('class', 'inner');
11271
11272 fo = _inner3.node().appendChild(_endLabelElement);
11273
11274 var _slBox3 = _endLabelElement.getBBox();
11275
11276 _inner3.attr('transform', 'translate(' + -_slBox3.width / 2 + ', ' + -_slBox3.height / 2 + ')');
11277
11278 endEdgeLabelRight.node().appendChild(_endLabelElement);
11279
11280 if (!terminalLabels[edge.id]) {
11281 terminalLabels[edge.id] = {};
11282 }
11283
11284 terminalLabels[edge.id].endRight = endEdgeLabelRight;
11285 setTerminalWidth(fo, edge.endLabelRight);
11286 }
11287};
11288/**
11289 * @param {any} fo
11290 * @param {any} value
11291 */
11292
11293function setTerminalWidth(fo, value) {
11294 if ((0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().flowchart.htmlLabels && fo) {
11295 fo.style.width = value.length * 9 + 'px';
11296 fo.style.height = '12px';
11297 }
11298}
11299
11300var positionEdgeLabel = function positionEdgeLabel(edge, paths) {
11301 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('Moving label abc78 ', edge.id, edge.label, edgeLabels[edge.id]);
11302 var path = paths.updatedPath ? paths.updatedPath : paths.originalPath;
11303
11304 if (edge.label) {
11305 var el = edgeLabels[edge.id];
11306 var x = edge.x;
11307 var y = edge.y;
11308
11309 if (path) {
11310 // // debugger;
11311 var pos = _utils__WEBPACK_IMPORTED_MODULE_5__["default"].calcLabelPosition(path);
11312 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('Moving label from (', x, ',', y, ') to (', pos.x, ',', pos.y, ') abc78'); // x = pos.x;
11313 // y = pos.y;
11314 }
11315
11316 el.attr('transform', 'translate(' + x + ', ' + y + ')');
11317 } //let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;
11318
11319
11320 if (edge.startLabelLeft) {
11321 var _el = terminalLabels[edge.id].startLeft;
11322 var _x2 = edge.x;
11323 var _y2 = edge.y;
11324
11325 if (path) {
11326 // debugger;
11327 var _pos = _utils__WEBPACK_IMPORTED_MODULE_5__["default"].calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, 'start_left', path);
11328
11329 _x2 = _pos.x;
11330 _y2 = _pos.y;
11331 }
11332
11333 _el.attr('transform', 'translate(' + _x2 + ', ' + _y2 + ')');
11334 }
11335
11336 if (edge.startLabelRight) {
11337 var _el2 = terminalLabels[edge.id].startRight;
11338 var _x3 = edge.x;
11339 var _y3 = edge.y;
11340
11341 if (path) {
11342 // debugger;
11343 var _pos2 = _utils__WEBPACK_IMPORTED_MODULE_5__["default"].calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, 'start_right', path);
11344
11345 _x3 = _pos2.x;
11346 _y3 = _pos2.y;
11347 }
11348
11349 _el2.attr('transform', 'translate(' + _x3 + ', ' + _y3 + ')');
11350 }
11351
11352 if (edge.endLabelLeft) {
11353 var _el3 = terminalLabels[edge.id].endLeft;
11354 var _x4 = edge.x;
11355 var _y4 = edge.y;
11356
11357 if (path) {
11358 // debugger;
11359 var _pos3 = _utils__WEBPACK_IMPORTED_MODULE_5__["default"].calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, 'end_left', path);
11360
11361 _x4 = _pos3.x;
11362 _y4 = _pos3.y;
11363 }
11364
11365 _el3.attr('transform', 'translate(' + _x4 + ', ' + _y4 + ')');
11366 }
11367
11368 if (edge.endLabelRight) {
11369 var _el4 = terminalLabels[edge.id].endRight;
11370 var _x5 = edge.x;
11371 var _y5 = edge.y;
11372
11373 if (path) {
11374 // debugger;
11375 var _pos4 = _utils__WEBPACK_IMPORTED_MODULE_5__["default"].calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, 'end_right', path);
11376
11377 _x5 = _pos4.x;
11378 _y5 = _pos4.y;
11379 }
11380
11381 _el4.attr('transform', 'translate(' + _x5 + ', ' + _y5 + ')');
11382 }
11383};
11384
11385var outsideNode = function outsideNode(node, point) {
11386 // log.warn('Checking bounds ', node, point);
11387 var x = node.x;
11388 var y = node.y;
11389 var dx = Math.abs(point.x - x);
11390 var dy = Math.abs(point.y - y);
11391 var w = node.width / 2;
11392 var h = node.height / 2;
11393
11394 if (dx >= w || dy >= h) {
11395 return true;
11396 }
11397
11398 return false;
11399};
11400
11401var intersection = function intersection(node, outsidePoint, insidePoint) {
11402 _logger__WEBPACK_IMPORTED_MODULE_4__.log.warn("intersection calc abc89:\n outsidePoint: ".concat(JSON.stringify(outsidePoint), "\n insidePoint : ").concat(JSON.stringify(insidePoint), "\n node : x:").concat(node.x, " y:").concat(node.y, " w:").concat(node.width, " h:").concat(node.height));
11403 var x = node.x;
11404 var y = node.y;
11405 var dx = Math.abs(x - insidePoint.x); // const dy = Math.abs(y - insidePoint.y);
11406
11407 var w = node.width / 2;
11408 var r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;
11409 var h = node.height / 2; // const edges = {
11410 // x1: x - w,
11411 // x2: x + w,
11412 // y1: y - h,
11413 // y2: y + h
11414 // };
11415 // if (
11416 // outsidePoint.x === edges.x1 ||
11417 // outsidePoint.x === edges.x2 ||
11418 // outsidePoint.y === edges.y1 ||
11419 // outsidePoint.y === edges.y2
11420 // ) {
11421 // log.warn('abc89 calc equals on edge', outsidePoint, edges);
11422 // return outsidePoint;
11423 // }
11424
11425 var Q = Math.abs(outsidePoint.y - insidePoint.y);
11426 var R = Math.abs(outsidePoint.x - insidePoint.x); // log.warn();
11427
11428 if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {
11429 // eslint-disable-line
11430 // Intersection is top or bottom of rect.
11431 // let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;
11432 var q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;
11433 r = R * q / Q;
11434 var res = {
11435 x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,
11436 y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q
11437 };
11438
11439 if (r === 0) {
11440 res.x = outsidePoint.x;
11441 res.y = outsidePoint.y;
11442 }
11443
11444 if (R === 0) {
11445 res.x = outsidePoint.x;
11446 }
11447
11448 if (Q === 0) {
11449 res.y = outsidePoint.y;
11450 }
11451
11452 _logger__WEBPACK_IMPORTED_MODULE_4__.log.warn("abc89 topp/bott calc, Q ".concat(Q, ", q ").concat(q, ", R ").concat(R, ", r ").concat(r), res);
11453 return res;
11454 } else {
11455 // Intersection onn sides of rect
11456 if (insidePoint.x < outsidePoint.x) {
11457 r = outsidePoint.x - w - x;
11458 } else {
11459 // r = outsidePoint.x - w - x;
11460 r = x - w - outsidePoint.x;
11461 }
11462
11463 var _q = Q * r / R; // OK let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x + dx - w;
11464 // OK let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : outsidePoint.x + r;
11465
11466
11467 var _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r; // let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : outsidePoint.x + r;
11468
11469
11470 var _y = insidePoint.y < outsidePoint.y ? insidePoint.y + _q : insidePoint.y - _q;
11471
11472 _logger__WEBPACK_IMPORTED_MODULE_4__.log.warn("sides calc abc89, Q ".concat(Q, ", q ").concat(_q, ", R ").concat(R, ", r ").concat(r), {
11473 _x: _x,
11474 _y: _y
11475 });
11476
11477 if (r === 0) {
11478 _x = outsidePoint.x;
11479 _y = outsidePoint.y;
11480 }
11481
11482 if (R === 0) {
11483 _x = outsidePoint.x;
11484 }
11485
11486 if (Q === 0) {
11487 _y = outsidePoint.y;
11488 }
11489
11490 return {
11491 x: _x,
11492 y: _y
11493 };
11494 }
11495};
11496/**
11497 * This function will page a path and node where the last point(s) in the path is inside the node
11498 * and return an update path ending by the border of the node.
11499 *
11500 * @param {Array} _points
11501 * @param {any} boundryNode
11502 * @returns {Array} Points
11503 */
11504
11505var cutPathAtIntersect = function cutPathAtIntersect(_points, boundryNode) {
11506 _logger__WEBPACK_IMPORTED_MODULE_4__.log.warn('abc88 cutPathAtIntersect', _points, boundryNode);
11507 var points = [];
11508 var lastPointOutside = _points[0];
11509 var isInside = false;
11510
11511 _points.forEach(function (point) {
11512 // const node = clusterDb[edge.toCluster].node;
11513 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('abc88 checking point', point, boundryNode); // check if point is inside the boundry rect
11514
11515 if (!outsideNode(boundryNode, point) && !isInside) {
11516 // First point inside the rect found
11517 // Calc the intersection coord between the point anf the last point outside the rect
11518 var inter = intersection(boundryNode, lastPointOutside, point);
11519 _logger__WEBPACK_IMPORTED_MODULE_4__.log.warn('abc88 inside', point, lastPointOutside, inter);
11520 _logger__WEBPACK_IMPORTED_MODULE_4__.log.warn('abc88 intersection', inter); // // Check case where the intersection is the same as the last point
11521
11522 var pointPresent = false;
11523 points.forEach(function (p) {
11524 pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;
11525 }); // // if (!pointPresent) {
11526
11527 if (!points.find(function (e) {
11528 return e.x === inter.x && e.y === inter.y;
11529 })) {
11530 points.push(inter);
11531 } else {
11532 _logger__WEBPACK_IMPORTED_MODULE_4__.log.warn('abc88 no intersect', inter, points);
11533 } // points.push(inter);
11534
11535
11536 isInside = true;
11537 } else {
11538 // Outside
11539 _logger__WEBPACK_IMPORTED_MODULE_4__.log.warn('abc88 outside', point, lastPointOutside);
11540 lastPointOutside = point; // points.push(point);
11541
11542 if (!isInside) points.push(point);
11543 }
11544 });
11545
11546 _logger__WEBPACK_IMPORTED_MODULE_4__.log.warn('abc88 returning points', points);
11547 return points;
11548}; //(edgePaths, e, edge, clusterDb, diagramtype, graph)
11549
11550
11551var insertEdge = function insertEdge(elem, e, edge, clusterDb, diagramType, graph) {
11552 var points = edge.points;
11553 var pointsHasChanged = false;
11554 var tail = graph.node(e.v);
11555 var head = graph.node(e.w);
11556 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('abc88 InsertEdge: ', edge);
11557
11558 if (head.intersect && tail.intersect) {
11559 points = points.slice(1, edge.points.length - 1);
11560 points.unshift(tail.intersect(points[0]));
11561 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('Last point', points[points.length - 1], head, head.intersect(points[points.length - 1]));
11562 points.push(head.intersect(points[points.length - 1]));
11563 }
11564
11565 if (edge.toCluster) {
11566 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('to cluster abc88', clusterDb[edge.toCluster]);
11567 points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node); // log.trace('edge', edge);
11568 // points = [];
11569 // let lastPointOutside; // = edge.points[0];
11570 // let isInside = false;
11571 // edge.points.forEach(point => {
11572 // const node = clusterDb[edge.toCluster].node;
11573 // log.warn('checking from', edge.fromCluster, point, node);
11574 // if (!outsideNode(node, point) && !isInside) {
11575 // log.trace('inside', edge.toCluster, point, lastPointOutside);
11576 // // First point inside the rect
11577 // const inter = intersection(node, lastPointOutside, point);
11578 // let pointPresent = false;
11579 // points.forEach(p => {
11580 // pointPresent = pointPresent || (p.x === inter.x && p.y === inter.y);
11581 // });
11582 // // if (!pointPresent) {
11583 // if (!points.find(e => e.x === inter.x && e.y === inter.y)) {
11584 // points.push(inter);
11585 // } else {
11586 // log.warn('no intersect', inter, points);
11587 // }
11588 // isInside = true;
11589 // } else {
11590 // // outside
11591 // lastPointOutside = point;
11592 // if (!isInside) points.push(point);
11593 // }
11594 // });
11595
11596 pointsHasChanged = true;
11597 }
11598
11599 if (edge.fromCluster) {
11600 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('from cluster abc88', clusterDb[edge.fromCluster]);
11601 points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse();
11602 pointsHasChanged = true;
11603 } // The data for our line
11604
11605
11606 var lineData = points.filter(function (p) {
11607 return !Number.isNaN(p.y);
11608 }); // This is the accessor function we talked about above
11609
11610 var curve; // Currently only flowcharts get the curve from the settings, perhaps this should
11611 // be expanded to a common setting? Restricting it for now in order not to cause side-effects that
11612 // have not been thought through
11613
11614 if (diagramType === 'graph' || diagramType === 'flowchart') {
11615 curve = edge.curve || d3__WEBPACK_IMPORTED_MODULE_0__.curveBasis;
11616 } else {
11617 curve = d3__WEBPACK_IMPORTED_MODULE_0__.curveBasis;
11618 } // curve = curveLinear;
11619
11620
11621 var lineFunction = (0,d3__WEBPACK_IMPORTED_MODULE_0__.line)().x(function (d) {
11622 return d.x;
11623 }).y(function (d) {
11624 return d.y;
11625 }).curve(curve); // Contruct stroke classes based on properties
11626
11627 var strokeClasses;
11628
11629 switch (edge.thickness) {
11630 case 'normal':
11631 strokeClasses = 'edge-thickness-normal';
11632 break;
11633
11634 case 'thick':
11635 strokeClasses = 'edge-thickness-thick';
11636 break;
11637
11638 default:
11639 strokeClasses = '';
11640 }
11641
11642 switch (edge.pattern) {
11643 case 'solid':
11644 strokeClasses += ' edge-pattern-solid';
11645 break;
11646
11647 case 'dotted':
11648 strokeClasses += ' edge-pattern-dotted';
11649 break;
11650
11651 case 'dashed':
11652 strokeClasses += ' edge-pattern-dashed';
11653 break;
11654 }
11655
11656 var svgPath = elem.append('path').attr('d', lineFunction(lineData)).attr('id', edge.id).attr('class', ' ' + strokeClasses + (edge.classes ? ' ' + edge.classes : '')).attr('style', edge.style); // DEBUG code, adds a red circle at each edge coordinate
11657 // edge.points.forEach(point => {
11658 // elem
11659 // .append('circle')
11660 // .style('stroke', 'red')
11661 // .style('fill', 'red')
11662 // .attr('r', 1)
11663 // .attr('cx', point.x)
11664 // .attr('cy', point.y);
11665 // });
11666
11667 var url = '';
11668
11669 if ((0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().state.arrowMarkerAbsolute) {
11670 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
11671 url = url.replace(/\(/g, '\\(');
11672 url = url.replace(/\)/g, '\\)');
11673 }
11674
11675 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('arrowTypeStart', edge.arrowTypeStart);
11676 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('arrowTypeEnd', edge.arrowTypeEnd);
11677
11678 switch (edge.arrowTypeStart) {
11679 case 'arrow_cross':
11680 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-crossStart' + ')');
11681 break;
11682
11683 case 'arrow_point':
11684 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-pointStart' + ')');
11685 break;
11686
11687 case 'arrow_barb':
11688 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-barbStart' + ')');
11689 break;
11690
11691 case 'arrow_circle':
11692 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-circleStart' + ')');
11693 break;
11694
11695 case 'aggregation':
11696 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-aggregationStart' + ')');
11697 break;
11698
11699 case 'extension':
11700 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-extensionStart' + ')');
11701 break;
11702
11703 case 'composition':
11704 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-compositionStart' + ')');
11705 break;
11706
11707 case 'dependency':
11708 svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-dependencyStart' + ')');
11709 break;
11710
11711 default:
11712 }
11713
11714 switch (edge.arrowTypeEnd) {
11715 case 'arrow_cross':
11716 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-crossEnd' + ')');
11717 break;
11718
11719 case 'arrow_point':
11720 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-pointEnd' + ')');
11721 break;
11722
11723 case 'arrow_barb':
11724 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-barbEnd' + ')');
11725 break;
11726
11727 case 'arrow_circle':
11728 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-circleEnd' + ')');
11729 break;
11730
11731 case 'aggregation':
11732 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-aggregationEnd' + ')');
11733 break;
11734
11735 case 'extension':
11736 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-extensionEnd' + ')');
11737 break;
11738
11739 case 'composition':
11740 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-compositionEnd' + ')');
11741 break;
11742
11743 case 'dependency':
11744 svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-dependencyEnd' + ')');
11745 break;
11746
11747 default:
11748 }
11749
11750 var paths = {};
11751
11752 if (pointsHasChanged) {
11753 paths.updatedPath = points;
11754 }
11755
11756 paths.originalPath = edge.points;
11757 return paths;
11758};
11759
11760/***/ }),
11761
11762/***/ "./src/dagre-wrapper/index.js":
11763/*!************************************!*\
11764 !*** ./src/dagre-wrapper/index.js ***!
11765 \************************************/
11766/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
11767
11768"use strict";
11769__webpack_require__.r(__webpack_exports__);
11770/* harmony export */ __webpack_require__.d(__webpack_exports__, {
11771/* harmony export */ "render": () => (/* binding */ render)
11772/* harmony export */ });
11773/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dagre */ "./node_modules/dagre/index.js");
11774/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(dagre__WEBPACK_IMPORTED_MODULE_0__);
11775/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
11776/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_1__);
11777/* harmony import */ var _markers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./markers */ "./src/dagre-wrapper/markers.js");
11778/* harmony import */ var _shapes_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./shapes/util */ "./src/dagre-wrapper/shapes/util.js");
11779/* harmony import */ var _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./mermaid-graphlib */ "./src/dagre-wrapper/mermaid-graphlib.js");
11780/* harmony import */ var _nodes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./nodes */ "./src/dagre-wrapper/nodes.js");
11781/* harmony import */ var _clusters__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./clusters */ "./src/dagre-wrapper/clusters.js");
11782/* harmony import */ var _edges__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./edges */ "./src/dagre-wrapper/edges.js");
11783/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
11784
11785
11786
11787
11788
11789
11790
11791
11792
11793
11794var recursiveRender = function recursiveRender(_elem, graph, diagramtype, parentCluster) {
11795 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Graph in recursive render: XXX', graphlib__WEBPACK_IMPORTED_MODULE_1___default().json.write(graph), parentCluster);
11796 var dir = graph.graph().rankdir;
11797 _logger__WEBPACK_IMPORTED_MODULE_2__.log.trace('Dir in recursive render - dir:', dir);
11798
11799 var elem = _elem.insert('g').attr('class', 'root'); // eslint-disable-line
11800
11801
11802 if (!graph.nodes()) {
11803 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('No nodes found for', graph);
11804 } else {
11805 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Recursive render XXX', graph.nodes());
11806 }
11807
11808 if (graph.edges().length > 0) {
11809 _logger__WEBPACK_IMPORTED_MODULE_2__.log.trace('Recursive edges', graph.edge(graph.edges()[0]));
11810 }
11811
11812 var clusters = elem.insert('g').attr('class', 'clusters'); // eslint-disable-line
11813
11814 var edgePaths = elem.insert('g').attr('class', 'edgePaths');
11815 var edgeLabels = elem.insert('g').attr('class', 'edgeLabels');
11816 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
11817 // to the abstract node and is later used by dagre for the layout
11818
11819 graph.nodes().forEach(function (v) {
11820 var node = graph.node(v);
11821
11822 if (typeof parentCluster !== 'undefined') {
11823 var data = JSON.parse(JSON.stringify(parentCluster.clusterData)); // data.clusterPositioning = true;
11824
11825 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Setting data for cluster XXX (', v, ') ', data, parentCluster);
11826 graph.setNode(parentCluster.id, data);
11827
11828 if (!graph.parent(v)) {
11829 _logger__WEBPACK_IMPORTED_MODULE_2__.log.trace('Setting parent', v, parentCluster.id);
11830 graph.setParent(v, parentCluster.id, data);
11831 }
11832 }
11833
11834 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('(Insert) Node XXX' + v + ': ' + JSON.stringify(graph.node(v)));
11835
11836 if (node && node.clusterNode) {
11837 // const children = graph.children(v);
11838 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Cluster identified', v, node.width, graph.node(v));
11839 var o = recursiveRender(nodes, node.graph, diagramtype, graph.node(v));
11840 var newEl = o.elem;
11841 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, newEl);
11842 node.diff = o.diff || 0;
11843 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Node bounds (abc123)', v, node, node.width, node.x, node.y);
11844 (0,_nodes__WEBPACK_IMPORTED_MODULE_4__.setNodeElem)(newEl, node);
11845 _logger__WEBPACK_IMPORTED_MODULE_2__.log.warn('Recursive render complete ', newEl, node);
11846 } else {
11847 if (graph.children(v).length > 0) {
11848 // This is a cluster but not to be rendered recursively
11849 // Render as before
11850 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Cluster - the non recursive path XXX', v, node.id, node, graph);
11851 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info((0,_mermaid_graphlib__WEBPACK_IMPORTED_MODULE_5__.findNonClusterChild)(node.id, graph));
11852 _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_5__.clusterDb[node.id] = {
11853 id: (0,_mermaid_graphlib__WEBPACK_IMPORTED_MODULE_5__.findNonClusterChild)(node.id, graph),
11854 node: node
11855 }; // insertCluster(clusters, graph.node(v));
11856 } else {
11857 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Node - the non recursive path', v, node.id, node);
11858 (0,_nodes__WEBPACK_IMPORTED_MODULE_4__.insertNode)(nodes, graph.node(v), dir);
11859 }
11860 }
11861 }); // Insert labels, this will insert them into the dom so that the width can be calculated
11862 // Also figure out which edges point to/from clusters and adjust them accordingly
11863 // Edges from/to clusters really points to the first child in the cluster.
11864 // TODO: pick optimal child in the cluster to us as link anchor
11865
11866 graph.edges().forEach(function (e) {
11867 var edge = graph.edge(e.v, e.w, e.name);
11868 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));
11869 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Edge ' + e.v + ' -> ' + e.w + ': ', e, ' ', JSON.stringify(graph.edge(e))); // Check if link is either from or to a cluster
11870
11871 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Fix', _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_5__.clusterDb, 'ids:', e.v, e.w, 'Translateing: ', _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_5__.clusterDb[e.v], _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_5__.clusterDb[e.w]);
11872 (0,_edges__WEBPACK_IMPORTED_MODULE_6__.insertEdgeLabel)(edgeLabels, edge);
11873 });
11874 graph.edges().forEach(function (e) {
11875 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));
11876 });
11877 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('#############################################');
11878 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('### Layout ###');
11879 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('#############################################');
11880 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info(graph);
11881 dagre__WEBPACK_IMPORTED_MODULE_0___default().layout(graph);
11882 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Graph after layout:', graphlib__WEBPACK_IMPORTED_MODULE_1___default().json.write(graph)); // Move the nodes to the correct place
11883
11884 var diff = 0;
11885 (0,_mermaid_graphlib__WEBPACK_IMPORTED_MODULE_5__.sortNodesByHierarchy)(graph).forEach(function (v) {
11886 var node = graph.node(v);
11887 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Position ' + v + ': ' + JSON.stringify(graph.node(v)));
11888 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Position ' + v + ': (' + node.x, ',' + node.y, ') width: ', node.width, ' height: ', node.height);
11889
11890 if (node && node.clusterNode) {
11891 // clusterDb[node.id].node = node;
11892 (0,_nodes__WEBPACK_IMPORTED_MODULE_4__.positionNode)(node);
11893 } else {
11894 // Non cluster node
11895 if (graph.children(v).length > 0) {
11896 // A cluster in the non-recursive way
11897 // positionCluster(node);
11898 (0,_clusters__WEBPACK_IMPORTED_MODULE_7__.insertCluster)(clusters, node);
11899 _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_5__.clusterDb[node.id].node = node;
11900 } else {
11901 (0,_nodes__WEBPACK_IMPORTED_MODULE_4__.positionNode)(node);
11902 }
11903 }
11904 }); // Move the edge labels to the correct place after layout
11905
11906 graph.edges().forEach(function (e) {
11907 var edge = graph.edge(e);
11908 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(edge), edge);
11909 var paths = (0,_edges__WEBPACK_IMPORTED_MODULE_6__.insertEdge)(edgePaths, e, edge, _mermaid_graphlib__WEBPACK_IMPORTED_MODULE_5__.clusterDb, diagramtype, graph);
11910 (0,_edges__WEBPACK_IMPORTED_MODULE_6__.positionEdgeLabel)(edge, paths);
11911 });
11912 graph.nodes().forEach(function (v) {
11913 var n = graph.node(v);
11914 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info(v, n.type, n.diff);
11915
11916 if (n.type === 'group') {
11917 diff = n.diff;
11918 }
11919 });
11920 return {
11921 elem: elem,
11922 diff: diff
11923 };
11924};
11925
11926var render = function render(elem, graph, markers, diagramtype, id) {
11927 (0,_markers__WEBPACK_IMPORTED_MODULE_8__["default"])(elem, markers, diagramtype, id);
11928 (0,_nodes__WEBPACK_IMPORTED_MODULE_4__.clear)();
11929 (0,_edges__WEBPACK_IMPORTED_MODULE_6__.clear)();
11930 (0,_clusters__WEBPACK_IMPORTED_MODULE_7__.clear)();
11931 (0,_mermaid_graphlib__WEBPACK_IMPORTED_MODULE_5__.clear)();
11932 _logger__WEBPACK_IMPORTED_MODULE_2__.log.warn('Graph at first:', graphlib__WEBPACK_IMPORTED_MODULE_1___default().json.write(graph));
11933 (0,_mermaid_graphlib__WEBPACK_IMPORTED_MODULE_5__.adjustClustersAndEdges)(graph);
11934 _logger__WEBPACK_IMPORTED_MODULE_2__.log.warn('Graph after:', graphlib__WEBPACK_IMPORTED_MODULE_1___default().json.write(graph)); // log.warn('Graph ever after:', graphlib.json.write(graph.node('A').graph));
11935
11936 recursiveRender(elem, graph, diagramtype);
11937}; // const shapeDefinitions = {};
11938// export const addShape = ({ shapeType: fun }) => {
11939// shapeDefinitions[shapeType] = fun;
11940// };
11941// const arrowDefinitions = {};
11942// export const addArrow = ({ arrowType: fun }) => {
11943// arrowDefinitions[arrowType] = fun;
11944// };
11945
11946/***/ }),
11947
11948/***/ "./src/dagre-wrapper/intersect/index.js":
11949/*!**********************************************!*\
11950 !*** ./src/dagre-wrapper/intersect/index.js ***!
11951 \**********************************************/
11952/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
11953
11954"use strict";
11955__webpack_require__.r(__webpack_exports__);
11956/* harmony export */ __webpack_require__.d(__webpack_exports__, {
11957/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
11958/* harmony export */ });
11959/* harmony import */ var _intersect_node_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./intersect-node.js */ "./src/dagre-wrapper/intersect/intersect-node.js");
11960/* harmony import */ var _intersect_node_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_intersect_node_js__WEBPACK_IMPORTED_MODULE_0__);
11961/* harmony import */ var _intersect_circle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./intersect-circle.js */ "./src/dagre-wrapper/intersect/intersect-circle.js");
11962/* harmony import */ var _intersect_ellipse_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./intersect-ellipse.js */ "./src/dagre-wrapper/intersect/intersect-ellipse.js");
11963/* harmony import */ var _intersect_polygon_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./intersect-polygon.js */ "./src/dagre-wrapper/intersect/intersect-polygon.js");
11964/* harmony import */ var _intersect_rect_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./intersect-rect.js */ "./src/dagre-wrapper/intersect/intersect-rect.js");
11965/*
11966 * Borrowed with love from from dagrge-d3. Many thanks to cpettitt!
11967 */
11968
11969
11970
11971
11972
11973/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
11974 node: (_intersect_node_js__WEBPACK_IMPORTED_MODULE_0___default()),
11975 circle: _intersect_circle_js__WEBPACK_IMPORTED_MODULE_1__["default"],
11976 ellipse: _intersect_ellipse_js__WEBPACK_IMPORTED_MODULE_2__["default"],
11977 polygon: _intersect_polygon_js__WEBPACK_IMPORTED_MODULE_3__["default"],
11978 rect: _intersect_rect_js__WEBPACK_IMPORTED_MODULE_4__["default"]
11979});
11980
11981/***/ }),
11982
11983/***/ "./src/dagre-wrapper/intersect/intersect-circle.js":
11984/*!*********************************************************!*\
11985 !*** ./src/dagre-wrapper/intersect/intersect-circle.js ***!
11986 \*********************************************************/
11987/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
11988
11989"use strict";
11990__webpack_require__.r(__webpack_exports__);
11991/* harmony export */ __webpack_require__.d(__webpack_exports__, {
11992/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
11993/* harmony export */ });
11994/* harmony import */ var _intersect_ellipse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./intersect-ellipse */ "./src/dagre-wrapper/intersect/intersect-ellipse.js");
11995
11996/**
11997 * @param node
11998 * @param rx
11999 * @param point
12000 */
12001
12002function intersectCircle(node, rx, point) {
12003 return (0,_intersect_ellipse__WEBPACK_IMPORTED_MODULE_0__["default"])(node, rx, rx, point);
12004}
12005
12006/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (intersectCircle);
12007
12008/***/ }),
12009
12010/***/ "./src/dagre-wrapper/intersect/intersect-ellipse.js":
12011/*!**********************************************************!*\
12012 !*** ./src/dagre-wrapper/intersect/intersect-ellipse.js ***!
12013 \**********************************************************/
12014/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
12015
12016"use strict";
12017__webpack_require__.r(__webpack_exports__);
12018/* harmony export */ __webpack_require__.d(__webpack_exports__, {
12019/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
12020/* harmony export */ });
12021/**
12022 * @param node
12023 * @param rx
12024 * @param ry
12025 * @param point
12026 */
12027function intersectEllipse(node, rx, ry, point) {
12028 // Formulae from: https://mathworld.wolfram.com/Ellipse-LineIntersection.html
12029 var cx = node.x;
12030 var cy = node.y;
12031 var px = cx - point.x;
12032 var py = cy - point.y;
12033 var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);
12034 var dx = Math.abs(rx * ry * px / det);
12035
12036 if (point.x < cx) {
12037 dx = -dx;
12038 }
12039
12040 var dy = Math.abs(rx * ry * py / det);
12041
12042 if (point.y < cy) {
12043 dy = -dy;
12044 }
12045
12046 return {
12047 x: cx + dx,
12048 y: cy + dy
12049 };
12050}
12051
12052/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (intersectEllipse);
12053
12054/***/ }),
12055
12056/***/ "./src/dagre-wrapper/intersect/intersect-line.js":
12057/*!*******************************************************!*\
12058 !*** ./src/dagre-wrapper/intersect/intersect-line.js ***!
12059 \*******************************************************/
12060/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
12061
12062"use strict";
12063__webpack_require__.r(__webpack_exports__);
12064/* harmony export */ __webpack_require__.d(__webpack_exports__, {
12065/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
12066/* harmony export */ });
12067/**
12068 * Returns the point at which two lines, p and q, intersect or returns undefined if they do not intersect.
12069 *
12070 * @param p1
12071 * @param p2
12072 * @param q1
12073 * @param q2
12074 */
12075function intersectLine(p1, p2, q1, q2) {
12076 // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994,
12077 // p7 and p473.
12078 var a1, a2, b1, b2, c1, c2;
12079 var r1, r2, r3, r4;
12080 var denom, offset, num;
12081 var x, y; // Compute a1, b1, c1, where line joining points 1 and 2 is F(x,y) = a1 x +
12082 // b1 y + c1 = 0.
12083
12084 a1 = p2.y - p1.y;
12085 b1 = p1.x - p2.x;
12086 c1 = p2.x * p1.y - p1.x * p2.y; // Compute r3 and r4.
12087
12088 r3 = a1 * q1.x + b1 * q1.y + c1;
12089 r4 = a1 * q2.x + b1 * q2.y + c1; // Check signs of r3 and r4. If both point 3 and point 4 lie on
12090 // same side of line 1, the line segments do not intersect.
12091
12092 if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {
12093 return;
12094 } // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0
12095
12096
12097 a2 = q2.y - q1.y;
12098 b2 = q1.x - q2.x;
12099 c2 = q2.x * q1.y - q1.x * q2.y; // Compute r1 and r2
12100
12101 r1 = a2 * p1.x + b2 * p1.y + c2;
12102 r2 = a2 * p2.x + b2 * p2.y + c2; // Check signs of r1 and r2. If both point 1 and point 2 lie
12103 // on same side of second line segment, the line segments do
12104 // not intersect.
12105
12106 if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {
12107 return;
12108 } // Line segments intersect: compute intersection point.
12109
12110
12111 denom = a1 * b2 - a2 * b1;
12112
12113 if (denom === 0) {
12114 return;
12115 }
12116
12117 offset = Math.abs(denom / 2); // The denom/2 is to get rounding instead of truncating. It
12118 // is added or subtracted to the numerator, depending upon the
12119 // sign of the numerator.
12120
12121 num = b1 * c2 - b2 * c1;
12122 x = num < 0 ? (num - offset) / denom : (num + offset) / denom;
12123 num = a2 * c1 - a1 * c2;
12124 y = num < 0 ? (num - offset) / denom : (num + offset) / denom;
12125 return {
12126 x: x,
12127 y: y
12128 };
12129}
12130/**
12131 * @param r1
12132 * @param r2
12133 */
12134
12135
12136function sameSign(r1, r2) {
12137 return r1 * r2 > 0;
12138}
12139
12140/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (intersectLine);
12141
12142/***/ }),
12143
12144/***/ "./src/dagre-wrapper/intersect/intersect-node.js":
12145/*!*******************************************************!*\
12146 !*** ./src/dagre-wrapper/intersect/intersect-node.js ***!
12147 \*******************************************************/
12148/***/ ((module) => {
12149
12150module.exports = intersectNode;
12151/**
12152 * @param node
12153 * @param point
12154 */
12155
12156function intersectNode(node, point) {
12157 // console.info('Intersect Node');
12158 return node.intersect(point);
12159}
12160
12161/***/ }),
12162
12163/***/ "./src/dagre-wrapper/intersect/intersect-polygon.js":
12164/*!**********************************************************!*\
12165 !*** ./src/dagre-wrapper/intersect/intersect-polygon.js ***!
12166 \**********************************************************/
12167/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
12168
12169"use strict";
12170__webpack_require__.r(__webpack_exports__);
12171/* harmony export */ __webpack_require__.d(__webpack_exports__, {
12172/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
12173/* harmony export */ });
12174/* harmony import */ var _intersect_line__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./intersect-line */ "./src/dagre-wrapper/intersect/intersect-line.js");
12175/* eslint "no-console": off */
12176
12177/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (intersectPolygon);
12178/**
12179 * Returns the point ({x, y}) at which the point argument intersects with the node argument assuming
12180 * that it has the shape specified by polygon.
12181 *
12182 * @param node
12183 * @param polyPoints
12184 * @param point
12185 */
12186
12187function intersectPolygon(node, polyPoints, point) {
12188 var x1 = node.x;
12189 var y1 = node.y;
12190 var intersections = [];
12191 var minX = Number.POSITIVE_INFINITY;
12192 var minY = Number.POSITIVE_INFINITY;
12193
12194 if (typeof polyPoints.forEach === 'function') {
12195 polyPoints.forEach(function (entry) {
12196 minX = Math.min(minX, entry.x);
12197 minY = Math.min(minY, entry.y);
12198 });
12199 } else {
12200 minX = Math.min(minX, polyPoints.x);
12201 minY = Math.min(minY, polyPoints.y);
12202 }
12203
12204 var left = x1 - node.width / 2 - minX;
12205 var top = y1 - node.height / 2 - minY;
12206
12207 for (var i = 0; i < polyPoints.length; i++) {
12208 var p1 = polyPoints[i];
12209 var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];
12210 var intersect = (0,_intersect_line__WEBPACK_IMPORTED_MODULE_0__["default"])(node, point, {
12211 x: left + p1.x,
12212 y: top + p1.y
12213 }, {
12214 x: left + p2.x,
12215 y: top + p2.y
12216 });
12217
12218 if (intersect) {
12219 intersections.push(intersect);
12220 }
12221 }
12222
12223 if (!intersections.length) {
12224 // console.log('NO INTERSECTION FOUND, RETURN NODE CENTER', node);
12225 return node;
12226 }
12227
12228 if (intersections.length > 1) {
12229 // More intersections, find the one nearest to edge end point
12230 intersections.sort(function (p, q) {
12231 var pdx = p.x - point.x;
12232 var pdy = p.y - point.y;
12233 var distp = Math.sqrt(pdx * pdx + pdy * pdy);
12234 var qdx = q.x - point.x;
12235 var qdy = q.y - point.y;
12236 var distq = Math.sqrt(qdx * qdx + qdy * qdy);
12237 return distp < distq ? -1 : distp === distq ? 0 : 1;
12238 });
12239 }
12240
12241 return intersections[0];
12242}
12243
12244/***/ }),
12245
12246/***/ "./src/dagre-wrapper/intersect/intersect-rect.js":
12247/*!*******************************************************!*\
12248 !*** ./src/dagre-wrapper/intersect/intersect-rect.js ***!
12249 \*******************************************************/
12250/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
12251
12252"use strict";
12253__webpack_require__.r(__webpack_exports__);
12254/* harmony export */ __webpack_require__.d(__webpack_exports__, {
12255/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
12256/* harmony export */ });
12257var intersectRect = function intersectRect(node, point) {
12258 var x = node.x;
12259 var y = node.y; // Rectangle intersection algorithm from:
12260 // https://math.stackexchange.com/questions/108113/find-edge-between-two-boxes
12261
12262 var dx = point.x - x;
12263 var dy = point.y - y;
12264 var w = node.width / 2;
12265 var h = node.height / 2;
12266 var sx, sy;
12267
12268 if (Math.abs(dy) * w > Math.abs(dx) * h) {
12269 // Intersection is top or bottom of rect.
12270 if (dy < 0) {
12271 h = -h;
12272 }
12273
12274 sx = dy === 0 ? 0 : h * dx / dy;
12275 sy = h;
12276 } else {
12277 // Intersection is left or right of rect.
12278 if (dx < 0) {
12279 w = -w;
12280 }
12281
12282 sx = w;
12283 sy = dx === 0 ? 0 : w * dy / dx;
12284 }
12285
12286 return {
12287 x: x + sx,
12288 y: y + sy
12289 };
12290};
12291
12292/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (intersectRect);
12293
12294/***/ }),
12295
12296/***/ "./src/dagre-wrapper/markers.js":
12297/*!**************************************!*\
12298 !*** ./src/dagre-wrapper/markers.js ***!
12299 \**************************************/
12300/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
12301
12302"use strict";
12303__webpack_require__.r(__webpack_exports__);
12304/* harmony export */ __webpack_require__.d(__webpack_exports__, {
12305/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
12306/* harmony export */ });
12307/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
12308/** Setup arrow head and define the marker. The result is appended to the svg. */
12309 // Only add the number of markers that the diagram needs
12310
12311var insertMarkers = function insertMarkers(elem, markerArray, type, id) {
12312 markerArray.forEach(function (markerName) {
12313 markers[markerName](elem, type, id);
12314 });
12315};
12316
12317var extension = function extension(elem, type, id) {
12318 _logger__WEBPACK_IMPORTED_MODULE_0__.log.trace('Making markers for ', id);
12319 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');
12320 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
12321};
12322
12323var composition = function composition(elem, type) {
12324 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');
12325 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');
12326};
12327
12328var aggregation = function aggregation(elem, type) {
12329 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');
12330 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');
12331};
12332
12333var dependency = function dependency(elem, type) {
12334 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');
12335 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');
12336};
12337
12338var point = function point(elem, type) {
12339 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');
12340 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');
12341};
12342
12343var circle = function circle(elem, type) {
12344 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');
12345 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');
12346};
12347
12348var cross = function cross(elem, type) {
12349 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')
12350 .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');
12351 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')
12352 .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');
12353};
12354
12355var barb = function barb(elem, type) {
12356 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');
12357}; // TODO rename the class diagram markers to something shape descriptive and semantic free
12358
12359
12360var markers = {
12361 extension: extension,
12362 composition: composition,
12363 aggregation: aggregation,
12364 dependency: dependency,
12365 point: point,
12366 circle: circle,
12367 cross: cross,
12368 barb: barb
12369};
12370/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (insertMarkers);
12371
12372/***/ }),
12373
12374/***/ "./src/dagre-wrapper/mermaid-graphlib.js":
12375/*!***********************************************!*\
12376 !*** ./src/dagre-wrapper/mermaid-graphlib.js ***!
12377 \***********************************************/
12378/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
12379
12380"use strict";
12381__webpack_require__.r(__webpack_exports__);
12382/* harmony export */ __webpack_require__.d(__webpack_exports__, {
12383/* harmony export */ "adjustClustersAndEdges": () => (/* binding */ adjustClustersAndEdges),
12384/* harmony export */ "clear": () => (/* binding */ clear),
12385/* harmony export */ "clusterDb": () => (/* binding */ clusterDb),
12386/* harmony export */ "extractDecendants": () => (/* binding */ extractDecendants),
12387/* harmony export */ "extractor": () => (/* binding */ extractor),
12388/* harmony export */ "findNonClusterChild": () => (/* binding */ findNonClusterChild),
12389/* harmony export */ "sortNodesByHierarchy": () => (/* binding */ sortNodesByHierarchy),
12390/* harmony export */ "validate": () => (/* binding */ validate)
12391/* harmony export */ });
12392/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
12393/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
12394/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_0__);
12395/** Decorates with functions required by mermaids dagre-wrapper. */
12396
12397
12398var clusterDb = {};
12399var decendants = {};
12400var parents = {};
12401var clear = function clear() {
12402 decendants = {};
12403 parents = {};
12404 clusterDb = {};
12405};
12406
12407var isDecendant = function isDecendant(id, ancenstorId) {
12408 // if (id === ancenstorId) return true;
12409 _logger__WEBPACK_IMPORTED_MODULE_1__.log.trace('In isDecendant', ancenstorId, ' ', id, ' = ', decendants[ancenstorId].indexOf(id) >= 0);
12410 if (decendants[ancenstorId].indexOf(id) >= 0) return true;
12411 return false;
12412};
12413
12414var edgeInCluster = function edgeInCluster(edge, clusterId) {
12415 _logger__WEBPACK_IMPORTED_MODULE_1__.log.info('Decendants of ', clusterId, ' is ', decendants[clusterId]);
12416 _logger__WEBPACK_IMPORTED_MODULE_1__.log.info('Edge is ', edge); // Edges to/from the cluster is not in the cluster, they are in the parent
12417
12418 if (edge.v === clusterId) return false;
12419 if (edge.w === clusterId) return false;
12420
12421 if (!decendants[clusterId]) {
12422 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug('Tilt, ', clusterId, ',not in decendants');
12423 return false;
12424 }
12425
12426 _logger__WEBPACK_IMPORTED_MODULE_1__.log.info('Here ');
12427 if (decendants[clusterId].indexOf(edge.v) >= 0) return true;
12428 if (isDecendant(edge.v, clusterId)) return true;
12429 if (isDecendant(edge.w, clusterId)) return true;
12430 if (decendants[clusterId].indexOf(edge.w) >= 0) return true;
12431 return false;
12432};
12433
12434var copy = function copy(clusterId, graph, newGraph, rootId) {
12435 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Copying children of ', clusterId, 'root', rootId, 'data', graph.node(clusterId), rootId);
12436 var nodes = graph.children(clusterId) || []; // Include cluster node if it is not the root
12437
12438 if (clusterId !== rootId) {
12439 nodes.push(clusterId);
12440 }
12441
12442 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Copying (nodes) clusterId', clusterId, 'nodes', nodes);
12443 nodes.forEach(function (node) {
12444 if (graph.children(node).length > 0) {
12445 copy(node, graph, newGraph, rootId);
12446 } else {
12447 var data = graph.node(node);
12448 _logger__WEBPACK_IMPORTED_MODULE_1__.log.info('cp ', node, ' to ', rootId, ' with parent ', clusterId); //,node, data, ' parent is ', clusterId);
12449
12450 newGraph.setNode(node, data);
12451
12452 if (rootId !== graph.parent(node)) {
12453 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Setting parent', node, graph.parent(node));
12454 newGraph.setParent(node, graph.parent(node));
12455 }
12456
12457 if (clusterId !== rootId && node !== clusterId) {
12458 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug('Setting parent', node, clusterId);
12459 newGraph.setParent(node, clusterId);
12460 } else {
12461 _logger__WEBPACK_IMPORTED_MODULE_1__.log.info('In copy ', clusterId, 'root', rootId, 'data', graph.node(clusterId), rootId);
12462 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug('Not Setting parent for node=', node, 'cluster!==rootId', clusterId !== rootId, 'node!==clusterId', node !== clusterId);
12463 }
12464
12465 var edges = graph.edges(node);
12466 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug('Copying Edges', edges);
12467 edges.forEach(function (edge) {
12468 _logger__WEBPACK_IMPORTED_MODULE_1__.log.info('Edge', edge);
12469 var data = graph.edge(edge.v, edge.w, edge.name);
12470 _logger__WEBPACK_IMPORTED_MODULE_1__.log.info('Edge data', data, rootId);
12471
12472 try {
12473 // Do not copy edges in and out of the root cluster, they belong to the parent graph
12474 if (edgeInCluster(edge, rootId)) {
12475 _logger__WEBPACK_IMPORTED_MODULE_1__.log.info('Copying as ', edge.v, edge.w, data, edge.name);
12476 newGraph.setEdge(edge.v, edge.w, data, edge.name);
12477 _logger__WEBPACK_IMPORTED_MODULE_1__.log.info('newGraph edges ', newGraph.edges(), newGraph.edge(newGraph.edges()[0]));
12478 } else {
12479 _logger__WEBPACK_IMPORTED_MODULE_1__.log.info('Skipping copy of edge ', edge.v, '-->', edge.w, ' rootId: ', rootId, ' clusterId:', clusterId);
12480 }
12481 } catch (e) {
12482 _logger__WEBPACK_IMPORTED_MODULE_1__.log.error(e);
12483 }
12484 });
12485 }
12486
12487 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug('Removing node', node);
12488 graph.removeNode(node);
12489 });
12490};
12491
12492var extractDecendants = function extractDecendants(id, graph) {
12493 // log.debug('Extracting ', id);
12494 var children = graph.children(id);
12495 var res = [].concat(children);
12496
12497 for (var i = 0; i < children.length; i++) {
12498 parents[children[i]] = id;
12499 res = res.concat(extractDecendants(children[i], graph));
12500 }
12501
12502 return res;
12503};
12504/**
12505 * Validates the graph, checking that all parent child relation points to existing nodes and that
12506 * edges between nodes also ia correct. When not correct the function logs the discrepancies.
12507 *
12508 * @param graph
12509 */
12510
12511var validate = function validate(graph) {
12512 var edges = graph.edges();
12513 _logger__WEBPACK_IMPORTED_MODULE_1__.log.trace('Edges: ', edges);
12514
12515 for (var i = 0; i < edges.length; i++) {
12516 if (graph.children(edges[i].v).length > 0) {
12517 _logger__WEBPACK_IMPORTED_MODULE_1__.log.trace('The node ', edges[i].v, ' is part of and edge even though it has children');
12518 return false;
12519 }
12520
12521 if (graph.children(edges[i].w).length > 0) {
12522 _logger__WEBPACK_IMPORTED_MODULE_1__.log.trace('The node ', edges[i].w, ' is part of and edge even though it has children');
12523 return false;
12524 }
12525 }
12526
12527 return true;
12528};
12529/**
12530 * Finds a child that is not a cluster. When faking a edge between a node and a cluster.
12531 *
12532 * @param {Finds a} id
12533 * @param {any} graph
12534 */
12535
12536var findNonClusterChild = function findNonClusterChild(id, graph) {
12537 // const node = graph.node(id);
12538 _logger__WEBPACK_IMPORTED_MODULE_1__.log.trace('Searching', id); // const children = graph.children(id).reverse();
12539
12540 var children = graph.children(id); //.reverse();
12541
12542 _logger__WEBPACK_IMPORTED_MODULE_1__.log.trace('Searching children of id ', id, children);
12543
12544 if (children.length < 1) {
12545 _logger__WEBPACK_IMPORTED_MODULE_1__.log.trace('This is a valid node', id);
12546 return id;
12547 }
12548
12549 for (var i = 0; i < children.length; i++) {
12550 var _id = findNonClusterChild(children[i], graph);
12551
12552 if (_id) {
12553 _logger__WEBPACK_IMPORTED_MODULE_1__.log.trace('Found replacement for', id, ' => ', _id);
12554 return _id;
12555 }
12556 }
12557};
12558
12559var getAnchorId = function getAnchorId(id) {
12560 if (!clusterDb[id]) {
12561 return id;
12562 } // If the cluster has no external connections
12563
12564
12565 if (!clusterDb[id].externalConnections) {
12566 return id;
12567 } // Return the replacement node
12568
12569
12570 if (clusterDb[id]) {
12571 return clusterDb[id].id;
12572 }
12573
12574 return id;
12575};
12576
12577var adjustClustersAndEdges = function adjustClustersAndEdges(graph, depth) {
12578 if (!graph || depth > 10) {
12579 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug('Opting out, no graph ');
12580 return;
12581 } else {
12582 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug('Opting in, graph ');
12583 } // Go through the nodes and for each cluster found, save a replacement node, this can be used when
12584 // faking a link to a cluster
12585
12586
12587 graph.nodes().forEach(function (id) {
12588 var children = graph.children(id);
12589
12590 if (children.length > 0) {
12591 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Cluster identified', id, ' Replacement id in edges: ', findNonClusterChild(id, graph));
12592 decendants[id] = extractDecendants(id, graph);
12593 clusterDb[id] = {
12594 id: findNonClusterChild(id, graph),
12595 clusterData: graph.node(id)
12596 };
12597 }
12598 }); // Check incoming and outgoing edges for each cluster
12599
12600 graph.nodes().forEach(function (id) {
12601 var children = graph.children(id);
12602 var edges = graph.edges();
12603
12604 if (children.length > 0) {
12605 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug('Cluster identified', id, decendants);
12606 edges.forEach(function (edge) {
12607 // log.debug('Edge, decendants: ', edge, decendants[id]);
12608 // Check if any edge leaves the cluster (not the actual cluster, thats a link from the box)
12609 if (edge.v !== id && edge.w !== id) {
12610 // Any edge where either the one of the nodes is decending to the cluster but not the other
12611 // if (decendants[id].indexOf(edge.v) < 0 && decendants[id].indexOf(edge.w) < 0) {
12612 var d1 = isDecendant(edge.v, id);
12613 var d2 = isDecendant(edge.w, id); // d1 xor d2 - if either d1 is true and d2 is false or the other way around
12614
12615 if (d1 ^ d2) {
12616 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Edge: ', edge, ' leaves cluster ', id);
12617 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Decendants of XXX ', id, ': ', decendants[id]);
12618 clusterDb[id].externalConnections = true;
12619 }
12620 }
12621 });
12622 } else {
12623 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug('Not a cluster ', id, decendants);
12624 }
12625 }); // For clusters with incoming and/or outgoing edges translate those edges to a real node
12626 // in the cluster in order to fake the edge
12627
12628 graph.edges().forEach(function (e) {
12629 var edge = graph.edge(e);
12630 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));
12631 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(graph.edge(e)));
12632 var v = e.v;
12633 var w = e.w; // Check if link is either from or to a cluster
12634
12635 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Fix XXX', clusterDb, 'ids:', e.v, e.w, 'Translateing: ', clusterDb[e.v], ' --- ', clusterDb[e.w]);
12636
12637 if (clusterDb[e.v] && clusterDb[e.w] && clusterDb[e.v] === clusterDb[e.w]) {
12638 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Fixing and trixing link to self - removing XXX', e.v, e.w, e.name);
12639 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Fixing and trixing - removing XXX', e.v, e.w, e.name);
12640 v = getAnchorId(e.v);
12641 w = getAnchorId(e.w);
12642 graph.removeEdge(e.v, e.w, e.name);
12643 var specialId = e.w + '---' + e.v;
12644 graph.setNode(specialId, {
12645 domId: specialId,
12646 id: specialId,
12647 labelStyle: '',
12648 labelText: edge.label,
12649 padding: 0,
12650 shape: 'labelRect',
12651 style: ''
12652 });
12653 var edge1 = JSON.parse(JSON.stringify(edge));
12654 var edge2 = JSON.parse(JSON.stringify(edge));
12655 edge1.label = '';
12656 edge1.arrowTypeEnd = 'none';
12657 edge2.label = '';
12658 edge1.fromCluster = e.v;
12659 edge2.toCluster = e.v;
12660 graph.setEdge(v, specialId, edge1, e.name + '-cyclic-special');
12661 graph.setEdge(specialId, w, edge2, e.name + '-cyclic-special');
12662 } else if (clusterDb[e.v] || clusterDb[e.w]) {
12663 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Fixing and trixing - removing XXX', e.v, e.w, e.name);
12664 v = getAnchorId(e.v);
12665 w = getAnchorId(e.w);
12666 graph.removeEdge(e.v, e.w, e.name);
12667 if (v !== e.v) edge.fromCluster = e.v;
12668 if (w !== e.w) edge.toCluster = e.w;
12669 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Fix Replacing with XXX', v, w, e.name);
12670 graph.setEdge(v, w, edge, e.name);
12671 }
12672 });
12673 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Adjusted Graph', graphlib__WEBPACK_IMPORTED_MODULE_0___default().json.write(graph));
12674 extractor(graph, 0);
12675 _logger__WEBPACK_IMPORTED_MODULE_1__.log.trace(clusterDb); // Remove references to extracted cluster
12676 // graph.edges().forEach(edge => {
12677 // if (isDecendant(edge.v, clusterId) || isDecendant(edge.w, clusterId)) {
12678 // graph.removeEdge(edge);
12679 // }
12680 // });
12681};
12682var extractor = function extractor(graph, depth) {
12683 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('extractor - ', depth, graphlib__WEBPACK_IMPORTED_MODULE_0___default().json.write(graph), graph.children('D'));
12684
12685 if (depth > 10) {
12686 _logger__WEBPACK_IMPORTED_MODULE_1__.log.error('Bailing out');
12687 return;
12688 } // For clusters without incoming and/or outgoing edges, create a new cluster-node
12689 // containing the nodes and edges in the custer in a new graph
12690 // for (let i = 0;)
12691
12692
12693 var nodes = graph.nodes();
12694 var hasChildren = false;
12695
12696 for (var i = 0; i < nodes.length; i++) {
12697 var node = nodes[i];
12698 var children = graph.children(node);
12699 hasChildren = hasChildren || children.length > 0;
12700 }
12701
12702 if (!hasChildren) {
12703 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug('Done, no node has children', graph.nodes());
12704 return;
12705 } // const clusters = Object.keys(clusterDb);
12706 // clusters.forEach(clusterId => {
12707
12708
12709 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug('Nodes = ', nodes, depth);
12710
12711 for (var _i = 0; _i < nodes.length; _i++) {
12712 var _node = nodes[_i];
12713 _logger__WEBPACK_IMPORTED_MODULE_1__.log.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
12714 // that it still is in the game
12715
12716 if (!clusterDb[_node]) {
12717 // Skip if the node is not a cluster
12718 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug('Not a cluster', _node, depth); // break;
12719 } else if (!clusterDb[_node].externalConnections && // !graph.parent(node) &&
12720 graph.children(_node) && graph.children(_node).length > 0) {
12721 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Cluster without external connections, without a parent and with children', _node, depth);
12722 var graphSettings = graph.graph();
12723 var dir = graphSettings.rankdir === 'TB' ? 'LR' : 'TB';
12724
12725 if (clusterDb[_node]) {
12726 if (clusterDb[_node].clusterData && clusterDb[_node].clusterData.dir) {
12727 dir = clusterDb[_node].clusterData.dir;
12728 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Fixing dir', clusterDb[_node].clusterData.dir, dir);
12729 }
12730 }
12731
12732 var clusterGraph = new (graphlib__WEBPACK_IMPORTED_MODULE_0___default().Graph)({
12733 multigraph: true,
12734 compound: true
12735 }).setGraph({
12736 rankdir: dir,
12737 // Todo: set proper spacing
12738 nodesep: 50,
12739 ranksep: 50,
12740 marginx: 8,
12741 marginy: 8
12742 }).setDefaultEdgeLabel(function () {
12743 return {};
12744 });
12745 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Old graph before copy', graphlib__WEBPACK_IMPORTED_MODULE_0___default().json.write(graph));
12746 copy(_node, graph, clusterGraph, _node);
12747 graph.setNode(_node, {
12748 clusterNode: true,
12749 id: _node,
12750 clusterData: clusterDb[_node].clusterData,
12751 labelText: clusterDb[_node].labelText,
12752 graph: clusterGraph
12753 });
12754 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('New graph after copy node: (', _node, ')', graphlib__WEBPACK_IMPORTED_MODULE_0___default().json.write(clusterGraph));
12755 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug('Old graph after copy', graphlib__WEBPACK_IMPORTED_MODULE_0___default().json.write(graph));
12756 } else {
12757 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('Cluster ** ', _node, ' **not meeting the criteria !externalConnections:', !clusterDb[_node].externalConnections, ' no parent: ', !graph.parent(_node), ' children ', graph.children(_node) && graph.children(_node).length > 0, graph.children('D'), depth);
12758 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug(clusterDb);
12759 }
12760 }
12761
12762 nodes = graph.nodes();
12763 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn('New list of nodes', nodes);
12764
12765 for (var _i2 = 0; _i2 < nodes.length; _i2++) {
12766 var _node2 = nodes[_i2];
12767 var data = graph.node(_node2);
12768 _logger__WEBPACK_IMPORTED_MODULE_1__.log.warn(' Now next level', _node2, data);
12769
12770 if (data.clusterNode) {
12771 extractor(data.graph, depth + 1);
12772 }
12773 }
12774};
12775
12776var sorter = function sorter(graph, nodes) {
12777 if (nodes.length === 0) return [];
12778 var result = Object.assign(nodes);
12779 nodes.forEach(function (node) {
12780 var children = graph.children(node);
12781 var sorted = sorter(graph, children);
12782 result = result.concat(sorted);
12783 });
12784 return result;
12785};
12786
12787var sortNodesByHierarchy = function sortNodesByHierarchy(graph) {
12788 return sorter(graph, graph.children());
12789};
12790
12791/***/ }),
12792
12793/***/ "./src/dagre-wrapper/nodes.js":
12794/*!************************************!*\
12795 !*** ./src/dagre-wrapper/nodes.js ***!
12796 \************************************/
12797/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
12798
12799"use strict";
12800__webpack_require__.r(__webpack_exports__);
12801/* harmony export */ __webpack_require__.d(__webpack_exports__, {
12802/* harmony export */ "clear": () => (/* binding */ clear),
12803/* harmony export */ "insertNode": () => (/* binding */ insertNode),
12804/* harmony export */ "positionNode": () => (/* binding */ positionNode),
12805/* harmony export */ "setNodeElem": () => (/* binding */ setNodeElem)
12806/* harmony export */ });
12807/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
12808/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../logger */ "./src/logger.js");
12809/* harmony import */ var _shapes_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./shapes/util */ "./src/dagre-wrapper/shapes/util.js");
12810/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../config */ "./src/config.js");
12811/* harmony import */ var _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./intersect/index.js */ "./src/dagre-wrapper/intersect/index.js");
12812/* harmony import */ var _createLabel__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./createLabel */ "./src/dagre-wrapper/createLabel.js");
12813/* harmony import */ var _shapes_note__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./shapes/note */ "./src/dagre-wrapper/shapes/note.js");
12814/* harmony import */ var _diagrams_class_svgDraw__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../diagrams/class/svgDraw */ "./src/diagrams/class/svgDraw.js");
12815/* harmony import */ var _diagrams_common_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../diagrams/common/common */ "./src/diagrams/common/common.js");
12816function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
12817
12818
12819 // eslint-disable-line
12820
12821
12822
12823
12824
12825
12826
12827
12828
12829var sanitizeText = function sanitizeText(txt) {
12830 return (0,_diagrams_common_common__WEBPACK_IMPORTED_MODULE_1__.sanitizeText)(txt, (0,_config__WEBPACK_IMPORTED_MODULE_2__.getConfig)());
12831};
12832
12833var question = function question(parent, node) {
12834 var _labelHelper = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.labelHelper)(parent, node, undefined, true),
12835 shapeSvg = _labelHelper.shapeSvg,
12836 bbox = _labelHelper.bbox;
12837
12838 var w = bbox.width + node.padding;
12839 var h = bbox.height + node.padding;
12840 var s = w + h;
12841 var points = [{
12842 x: s / 2,
12843 y: 0
12844 }, {
12845 x: s,
12846 y: -s / 2
12847 }, {
12848 x: s / 2,
12849 y: -s
12850 }, {
12851 x: 0,
12852 y: -s / 2
12853 }];
12854 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('Question main (Circle)');
12855 var questionElem = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.insertPolygonShape)(shapeSvg, s, s, points);
12856 questionElem.attr('style', node.style);
12857 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, questionElem);
12858
12859 node.intersect = function (point) {
12860 _logger__WEBPACK_IMPORTED_MODULE_4__.log.warn('Intersect called');
12861 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].polygon(node, points, point);
12862 };
12863
12864 return shapeSvg;
12865};
12866
12867var choice = function choice(parent, node) {
12868 var shapeSvg = parent.insert('g').attr('class', 'node default').attr('id', node.domId || node.id);
12869 var s = 28;
12870 var points = [{
12871 x: 0,
12872 y: s / 2
12873 }, {
12874 x: s / 2,
12875 y: 0
12876 }, {
12877 x: 0,
12878 y: -s / 2
12879 }, {
12880 x: -s / 2,
12881 y: 0
12882 }];
12883 var choice = shapeSvg.insert('polygon', ':first-child').attr('points', points.map(function (d) {
12884 return d.x + ',' + d.y;
12885 }).join(' ')); // center the circle around its coordinate
12886
12887 choice.attr('class', 'state-start').attr('r', 7).attr('width', 28).attr('height', 28);
12888 node.width = 28;
12889 node.height = 28;
12890
12891 node.intersect = function (point) {
12892 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].circle(node, 14, point);
12893 };
12894
12895 return shapeSvg;
12896};
12897
12898var hexagon = function hexagon(parent, node) {
12899 var _labelHelper2 = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.labelHelper)(parent, node, undefined, true),
12900 shapeSvg = _labelHelper2.shapeSvg,
12901 bbox = _labelHelper2.bbox;
12902
12903 var f = 4;
12904 var h = bbox.height + node.padding;
12905 var m = h / f;
12906 var w = bbox.width + 2 * m + node.padding;
12907 var points = [{
12908 x: m,
12909 y: 0
12910 }, {
12911 x: w - m,
12912 y: 0
12913 }, {
12914 x: w,
12915 y: -h / 2
12916 }, {
12917 x: w - m,
12918 y: -h
12919 }, {
12920 x: m,
12921 y: -h
12922 }, {
12923 x: 0,
12924 y: -h / 2
12925 }];
12926 var hex = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.insertPolygonShape)(shapeSvg, w, h, points);
12927 hex.attr('style', node.style);
12928 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, hex);
12929
12930 node.intersect = function (point) {
12931 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].polygon(node, points, point);
12932 };
12933
12934 return shapeSvg;
12935};
12936
12937var rect_left_inv_arrow = function rect_left_inv_arrow(parent, node) {
12938 var _labelHelper3 = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.labelHelper)(parent, node, undefined, true),
12939 shapeSvg = _labelHelper3.shapeSvg,
12940 bbox = _labelHelper3.bbox;
12941
12942 var w = bbox.width + node.padding;
12943 var h = bbox.height + node.padding;
12944 var points = [{
12945 x: -h / 2,
12946 y: 0
12947 }, {
12948 x: w,
12949 y: 0
12950 }, {
12951 x: w,
12952 y: -h
12953 }, {
12954 x: -h / 2,
12955 y: -h
12956 }, {
12957 x: 0,
12958 y: -h / 2
12959 }];
12960 var el = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.insertPolygonShape)(shapeSvg, w, h, points);
12961 el.attr('style', node.style);
12962 node.width = w + h;
12963 node.height = h;
12964
12965 node.intersect = function (point) {
12966 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].polygon(node, points, point);
12967 };
12968
12969 return shapeSvg;
12970};
12971
12972var lean_right = function lean_right(parent, node) {
12973 var _labelHelper4 = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.labelHelper)(parent, node, undefined, true),
12974 shapeSvg = _labelHelper4.shapeSvg,
12975 bbox = _labelHelper4.bbox;
12976
12977 var w = bbox.width + node.padding;
12978 var h = bbox.height + node.padding;
12979 var points = [{
12980 x: -2 * h / 6,
12981 y: 0
12982 }, {
12983 x: w - h / 6,
12984 y: 0
12985 }, {
12986 x: w + 2 * h / 6,
12987 y: -h
12988 }, {
12989 x: h / 6,
12990 y: -h
12991 }];
12992 var el = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.insertPolygonShape)(shapeSvg, w, h, points);
12993 el.attr('style', node.style);
12994 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, el);
12995
12996 node.intersect = function (point) {
12997 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].polygon(node, points, point);
12998 };
12999
13000 return shapeSvg;
13001};
13002
13003var lean_left = function lean_left(parent, node) {
13004 var _labelHelper5 = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.labelHelper)(parent, node, undefined, true),
13005 shapeSvg = _labelHelper5.shapeSvg,
13006 bbox = _labelHelper5.bbox;
13007
13008 var w = bbox.width + node.padding;
13009 var h = bbox.height + node.padding;
13010 var points = [{
13011 x: 2 * h / 6,
13012 y: 0
13013 }, {
13014 x: w + h / 6,
13015 y: 0
13016 }, {
13017 x: w - 2 * h / 6,
13018 y: -h
13019 }, {
13020 x: -h / 6,
13021 y: -h
13022 }];
13023 var el = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.insertPolygonShape)(shapeSvg, w, h, points);
13024 el.attr('style', node.style);
13025 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, el);
13026
13027 node.intersect = function (point) {
13028 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].polygon(node, points, point);
13029 };
13030
13031 return shapeSvg;
13032};
13033
13034var trapezoid = function trapezoid(parent, node) {
13035 var _labelHelper6 = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.labelHelper)(parent, node, undefined, true),
13036 shapeSvg = _labelHelper6.shapeSvg,
13037 bbox = _labelHelper6.bbox;
13038
13039 var w = bbox.width + node.padding;
13040 var h = bbox.height + node.padding;
13041 var points = [{
13042 x: -2 * h / 6,
13043 y: 0
13044 }, {
13045 x: w + 2 * h / 6,
13046 y: 0
13047 }, {
13048 x: w - h / 6,
13049 y: -h
13050 }, {
13051 x: h / 6,
13052 y: -h
13053 }];
13054 var el = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.insertPolygonShape)(shapeSvg, w, h, points);
13055 el.attr('style', node.style);
13056 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, el);
13057
13058 node.intersect = function (point) {
13059 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].polygon(node, points, point);
13060 };
13061
13062 return shapeSvg;
13063};
13064
13065var inv_trapezoid = function inv_trapezoid(parent, node) {
13066 var _labelHelper7 = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.labelHelper)(parent, node, undefined, true),
13067 shapeSvg = _labelHelper7.shapeSvg,
13068 bbox = _labelHelper7.bbox;
13069
13070 var w = bbox.width + node.padding;
13071 var h = bbox.height + node.padding;
13072 var points = [{
13073 x: h / 6,
13074 y: 0
13075 }, {
13076 x: w - h / 6,
13077 y: 0
13078 }, {
13079 x: w + 2 * h / 6,
13080 y: -h
13081 }, {
13082 x: -2 * h / 6,
13083 y: -h
13084 }];
13085 var el = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.insertPolygonShape)(shapeSvg, w, h, points);
13086 el.attr('style', node.style);
13087 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, el);
13088
13089 node.intersect = function (point) {
13090 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].polygon(node, points, point);
13091 };
13092
13093 return shapeSvg;
13094};
13095
13096var rect_right_inv_arrow = function rect_right_inv_arrow(parent, node) {
13097 var _labelHelper8 = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.labelHelper)(parent, node, undefined, true),
13098 shapeSvg = _labelHelper8.shapeSvg,
13099 bbox = _labelHelper8.bbox;
13100
13101 var w = bbox.width + node.padding;
13102 var h = bbox.height + node.padding;
13103 var points = [{
13104 x: 0,
13105 y: 0
13106 }, {
13107 x: w + h / 2,
13108 y: 0
13109 }, {
13110 x: w,
13111 y: -h / 2
13112 }, {
13113 x: w + h / 2,
13114 y: -h
13115 }, {
13116 x: 0,
13117 y: -h
13118 }];
13119 var el = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.insertPolygonShape)(shapeSvg, w, h, points);
13120 el.attr('style', node.style);
13121 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, el);
13122
13123 node.intersect = function (point) {
13124 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].polygon(node, points, point);
13125 };
13126
13127 return shapeSvg;
13128};
13129
13130var cylinder = function cylinder(parent, node) {
13131 var _labelHelper9 = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.labelHelper)(parent, node, undefined, true),
13132 shapeSvg = _labelHelper9.shapeSvg,
13133 bbox = _labelHelper9.bbox;
13134
13135 var w = bbox.width + node.padding;
13136 var rx = w / 2;
13137 var ry = rx / (2.5 + w / 50);
13138 var h = bbox.height + ry + node.padding;
13139 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;
13140 var el = shapeSvg.attr('label-offset-y', ry).insert('path', ':first-child').attr('style', node.style).attr('d', shape).attr('transform', 'translate(' + -w / 2 + ',' + -(h / 2 + ry) + ')');
13141 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, el);
13142
13143 node.intersect = function (point) {
13144 var pos = _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].rect(node, point);
13145 var x = pos.x - node.x;
13146
13147 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)) {
13148 // ellipsis equation: x*x / a*a + y*y / b*b = 1
13149 // solve for y to get adjustion value for pos.y
13150 var y = ry * ry * (1 - x * x / (rx * rx));
13151 if (y != 0) y = Math.sqrt(y);
13152 y = ry - y;
13153 if (point.y - node.y > 0) y = -y;
13154 pos.y += y;
13155 }
13156
13157 return pos;
13158 };
13159
13160 return shapeSvg;
13161};
13162
13163var rect = function rect(parent, node) {
13164 var _labelHelper10 = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.labelHelper)(parent, node, 'node ' + node.classes, true),
13165 shapeSvg = _labelHelper10.shapeSvg,
13166 bbox = _labelHelper10.bbox,
13167 halfPadding = _labelHelper10.halfPadding;
13168
13169 _logger__WEBPACK_IMPORTED_MODULE_4__.log.trace('Classes = ', node.classes); // add the rect
13170
13171 var rect = shapeSvg.insert('rect', ':first-child');
13172 var totalWidth = bbox.width + node.padding;
13173 var totalHeight = bbox.height + node.padding;
13174 rect.attr('class', 'basic label-container').attr('style', node.style).attr('rx', node.rx).attr('ry', node.ry).attr('x', -bbox.width / 2 - halfPadding).attr('y', -bbox.height / 2 - halfPadding).attr('width', totalWidth).attr('height', totalHeight);
13175
13176 if (node.props) {
13177 var propKeys = new Set(Object.keys(node.props));
13178
13179 if (node.props.borders) {
13180 applyNodePropertyBorders(rect, node.props.borders, totalWidth, totalHeight);
13181 propKeys.delete('borders');
13182 }
13183
13184 propKeys.forEach(function (propKey) {
13185 _logger__WEBPACK_IMPORTED_MODULE_4__.log.warn("Unknown node property ".concat(propKey));
13186 });
13187 }
13188
13189 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, rect);
13190
13191 node.intersect = function (point) {
13192 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].rect(node, point);
13193 };
13194
13195 return shapeSvg;
13196};
13197
13198var labelRect = function labelRect(parent, node) {
13199 var _labelHelper11 = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.labelHelper)(parent, node, 'label', true),
13200 shapeSvg = _labelHelper11.shapeSvg,
13201 bbox = _labelHelper11.bbox,
13202 halfPadding = _labelHelper11.halfPadding;
13203
13204 _logger__WEBPACK_IMPORTED_MODULE_4__.log.trace('Classes = ', node.classes); // add the rect
13205
13206 var rect = shapeSvg.insert('rect', ':first-child'); // Hide the rect we are only after the label
13207
13208 var totalWidth = 0;
13209 var totalHeight = 0;
13210 rect.attr('width', totalWidth).attr('height', totalHeight);
13211 shapeSvg.attr('class', 'label edgeLabel');
13212
13213 if (node.props) {
13214 var propKeys = new Set(Object.keys(node.props));
13215
13216 if (node.props.borders) {
13217 applyNodePropertyBorders(rect, node.props.borders, totalWidth, totalHeight);
13218 propKeys.delete('borders');
13219 }
13220
13221 propKeys.forEach(function (propKey) {
13222 _logger__WEBPACK_IMPORTED_MODULE_4__.log.warn("Unknown node property ".concat(propKey));
13223 });
13224 }
13225
13226 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, rect);
13227
13228 node.intersect = function (point) {
13229 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].rect(node, point);
13230 };
13231
13232 return shapeSvg;
13233};
13234/**
13235 * @param rect
13236 * @param borders
13237 * @param totalWidth
13238 * @param totalHeight
13239 */
13240
13241
13242function applyNodePropertyBorders(rect, borders, totalWidth, totalHeight) {
13243 var strokeDashArray = [];
13244
13245 var addBorder = function addBorder(length) {
13246 strokeDashArray.push(length);
13247 strokeDashArray.push(0);
13248 };
13249
13250 var skipBorder = function skipBorder(length) {
13251 strokeDashArray.push(0);
13252 strokeDashArray.push(length);
13253 };
13254
13255 if (borders.includes('t')) {
13256 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('add top border');
13257 addBorder(totalWidth);
13258 } else {
13259 skipBorder(totalWidth);
13260 }
13261
13262 if (borders.includes('r')) {
13263 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('add right border');
13264 addBorder(totalHeight);
13265 } else {
13266 skipBorder(totalHeight);
13267 }
13268
13269 if (borders.includes('b')) {
13270 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('add bottom border');
13271 addBorder(totalWidth);
13272 } else {
13273 skipBorder(totalWidth);
13274 }
13275
13276 if (borders.includes('l')) {
13277 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('add left border');
13278 addBorder(totalHeight);
13279 } else {
13280 skipBorder(totalHeight);
13281 }
13282
13283 rect.attr('stroke-dasharray', strokeDashArray.join(' '));
13284}
13285
13286var rectWithTitle = function rectWithTitle(parent, node) {
13287 // const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes);
13288 var classes;
13289
13290 if (!node.classes) {
13291 classes = 'node default';
13292 } else {
13293 classes = 'node ' + node.classes;
13294 } // Add outer g element
13295
13296
13297 var shapeSvg = parent.insert('g').attr('class', classes).attr('id', node.domId || node.id); // Create the title label and insert it after the rect
13298
13299 var rect = shapeSvg.insert('rect', ':first-child'); // const innerRect = shapeSvg.insert('rect');
13300
13301 var innerLine = shapeSvg.insert('line');
13302 var label = shapeSvg.insert('g').attr('class', 'label');
13303 var text2 = node.labelText.flat ? node.labelText.flat() : node.labelText; // const text2 = typeof text2prim === 'object' ? text2prim[0] : text2prim;
13304
13305 var title = '';
13306
13307 if (_typeof(text2) === 'object') {
13308 title = text2[0];
13309 } else {
13310 title = text2;
13311 }
13312
13313 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('Label text abc79', title, text2, _typeof(text2) === 'object');
13314 var text = label.node().appendChild((0,_createLabel__WEBPACK_IMPORTED_MODULE_6__["default"])(title, node.labelStyle, true, true));
13315 var bbox = {
13316 width: 0,
13317 height: 0
13318 };
13319
13320 if ((0,_diagrams_common_common__WEBPACK_IMPORTED_MODULE_1__.evaluate)((0,_config__WEBPACK_IMPORTED_MODULE_2__.getConfig)().flowchart.htmlLabels)) {
13321 var div = text.children[0];
13322 var dv = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(text);
13323 bbox = div.getBoundingClientRect();
13324 dv.attr('width', bbox.width);
13325 dv.attr('height', bbox.height);
13326 }
13327
13328 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('Text 2', text2);
13329 var textRows = text2.slice(1, text2.length);
13330 var titleBox = text.getBBox();
13331 var descr = label.node().appendChild((0,_createLabel__WEBPACK_IMPORTED_MODULE_6__["default"])(textRows.join ? textRows.join('<br/>') : textRows, node.labelStyle, true, true));
13332
13333 if ((0,_diagrams_common_common__WEBPACK_IMPORTED_MODULE_1__.evaluate)((0,_config__WEBPACK_IMPORTED_MODULE_2__.getConfig)().flowchart.htmlLabels)) {
13334 var _div = descr.children[0];
13335
13336 var _dv = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(descr);
13337
13338 bbox = _div.getBoundingClientRect();
13339
13340 _dv.attr('width', bbox.width);
13341
13342 _dv.attr('height', bbox.height);
13343 } // bbox = label.getBBox();
13344 // log.info(descr);
13345
13346
13347 var halfPadding = node.padding / 2;
13348 (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(descr).attr('transform', 'translate( ' + ( // (titleBox.width - bbox.width) / 2 +
13349 bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + ', ' + (titleBox.height + halfPadding + 5) + ')');
13350 (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(text).attr('transform', 'translate( ' + ( // (titleBox.width - bbox.width) / 2 +
13351 bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + ', ' + 0 + ')'); // Get the size of the label
13352 // Bounding box for title and text
13353
13354 bbox = label.node().getBBox(); // Center the label
13355
13356 label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')');
13357 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);
13358 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);
13359 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, rect);
13360
13361 node.intersect = function (point) {
13362 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].rect(node, point);
13363 };
13364
13365 return shapeSvg;
13366};
13367
13368var stadium = function stadium(parent, node) {
13369 var _labelHelper12 = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.labelHelper)(parent, node, undefined, true),
13370 shapeSvg = _labelHelper12.shapeSvg,
13371 bbox = _labelHelper12.bbox;
13372
13373 var h = bbox.height + node.padding;
13374 var w = bbox.width + h / 4 + node.padding; // add the rect
13375
13376 var rect = shapeSvg.insert('rect', ':first-child').attr('style', node.style).attr('rx', h / 2).attr('ry', h / 2).attr('x', -w / 2).attr('y', -h / 2).attr('width', w).attr('height', h);
13377 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, rect);
13378
13379 node.intersect = function (point) {
13380 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].rect(node, point);
13381 };
13382
13383 return shapeSvg;
13384};
13385
13386var circle = function circle(parent, node) {
13387 var _labelHelper13 = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.labelHelper)(parent, node, undefined, true),
13388 shapeSvg = _labelHelper13.shapeSvg,
13389 bbox = _labelHelper13.bbox,
13390 halfPadding = _labelHelper13.halfPadding;
13391
13392 var circle = shapeSvg.insert('circle', ':first-child'); // center the circle around its coordinate
13393
13394 circle.attr('style', node.style).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);
13395 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('Circle main');
13396 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, circle);
13397
13398 node.intersect = function (point) {
13399 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('Circle intersect', node, bbox.width / 2 + halfPadding, point);
13400 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].circle(node, bbox.width / 2 + halfPadding, point);
13401 };
13402
13403 return shapeSvg;
13404};
13405
13406var doublecircle = function doublecircle(parent, node) {
13407 var _labelHelper14 = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.labelHelper)(parent, node, undefined, true),
13408 shapeSvg = _labelHelper14.shapeSvg,
13409 bbox = _labelHelper14.bbox,
13410 halfPadding = _labelHelper14.halfPadding;
13411
13412 var gap = 5;
13413 var circleGroup = shapeSvg.insert('g', ':first-child');
13414 var outerCircle = circleGroup.insert('circle');
13415 var innerCircle = circleGroup.insert('circle'); // center the circle around its coordinate
13416
13417 outerCircle.attr('style', node.style).attr('rx', node.rx).attr('ry', node.ry).attr('r', bbox.width / 2 + halfPadding + gap).attr('width', bbox.width + node.padding + gap * 2).attr('height', bbox.height + node.padding + gap * 2);
13418 innerCircle.attr('style', node.style).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);
13419 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('DoubleCircle main');
13420 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, outerCircle);
13421
13422 node.intersect = function (point) {
13423 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('DoubleCircle intersect', node, bbox.width / 2 + halfPadding + gap, point);
13424 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].circle(node, bbox.width / 2 + halfPadding + gap, point);
13425 };
13426
13427 return shapeSvg;
13428};
13429
13430var subroutine = function subroutine(parent, node) {
13431 var _labelHelper15 = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.labelHelper)(parent, node, undefined, true),
13432 shapeSvg = _labelHelper15.shapeSvg,
13433 bbox = _labelHelper15.bbox;
13434
13435 var w = bbox.width + node.padding;
13436 var h = bbox.height + node.padding;
13437 var points = [{
13438 x: 0,
13439 y: 0
13440 }, {
13441 x: w,
13442 y: 0
13443 }, {
13444 x: w,
13445 y: -h
13446 }, {
13447 x: 0,
13448 y: -h
13449 }, {
13450 x: 0,
13451 y: 0
13452 }, {
13453 x: -8,
13454 y: 0
13455 }, {
13456 x: w + 8,
13457 y: 0
13458 }, {
13459 x: w + 8,
13460 y: -h
13461 }, {
13462 x: -8,
13463 y: -h
13464 }, {
13465 x: -8,
13466 y: 0
13467 }];
13468 var el = (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.insertPolygonShape)(shapeSvg, w, h, points);
13469 el.attr('style', node.style);
13470 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, el);
13471
13472 node.intersect = function (point) {
13473 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].polygon(node, points, point);
13474 };
13475
13476 return shapeSvg;
13477};
13478
13479var start = function start(parent, node) {
13480 var shapeSvg = parent.insert('g').attr('class', 'node default').attr('id', node.domId || node.id);
13481 var circle = shapeSvg.insert('circle', ':first-child'); // center the circle around its coordinate
13482
13483 circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);
13484 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, circle);
13485
13486 node.intersect = function (point) {
13487 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].circle(node, 7, point);
13488 };
13489
13490 return shapeSvg;
13491};
13492
13493var forkJoin = function forkJoin(parent, node, dir) {
13494 var shapeSvg = parent.insert('g').attr('class', 'node default').attr('id', node.domId || node.id);
13495 var width = 70;
13496 var height = 10;
13497
13498 if (dir === 'LR') {
13499 width = 10;
13500 height = 70;
13501 }
13502
13503 var shape = shapeSvg.append('rect').attr('x', -1 * width / 2).attr('y', -1 * height / 2).attr('width', width).attr('height', height).attr('class', 'fork-join');
13504 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, shape);
13505 node.height = node.height + node.padding / 2;
13506 node.width = node.width + node.padding / 2;
13507
13508 node.intersect = function (point) {
13509 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].rect(node, point);
13510 };
13511
13512 return shapeSvg;
13513};
13514
13515var end = function end(parent, node) {
13516 var shapeSvg = parent.insert('g').attr('class', 'node default').attr('id', node.domId || node.id);
13517 var innerCircle = shapeSvg.insert('circle', ':first-child');
13518 var circle = shapeSvg.insert('circle', ':first-child');
13519 circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);
13520 innerCircle.attr('class', 'state-end').attr('r', 5).attr('width', 10).attr('height', 10);
13521 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, circle);
13522
13523 node.intersect = function (point) {
13524 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].circle(node, 7, point);
13525 };
13526
13527 return shapeSvg;
13528};
13529
13530var class_box = function class_box(parent, node) {
13531 var halfPadding = node.padding / 2;
13532 var rowPadding = 4;
13533 var lineHeight = 8;
13534 var classes;
13535
13536 if (!node.classes) {
13537 classes = 'node default';
13538 } else {
13539 classes = 'node ' + node.classes;
13540 } // Add outer g element
13541
13542
13543 var shapeSvg = parent.insert('g').attr('class', classes).attr('id', node.domId || node.id); // Create the title label and insert it after the rect
13544
13545 var rect = shapeSvg.insert('rect', ':first-child');
13546 var topLine = shapeSvg.insert('line');
13547 var bottomLine = shapeSvg.insert('line');
13548 var maxWidth = 0;
13549 var maxHeight = rowPadding;
13550 var labelContainer = shapeSvg.insert('g').attr('class', 'label');
13551 var verticalPos = 0;
13552 var hasInterface = node.classData.annotations && node.classData.annotations[0]; // 1. Create the labels
13553
13554 var interfaceLabelText = node.classData.annotations[0] ? '«' + node.classData.annotations[0] + '»' : '';
13555 var interfaceLabel = labelContainer.node().appendChild((0,_createLabel__WEBPACK_IMPORTED_MODULE_6__["default"])(interfaceLabelText, node.labelStyle, true, true));
13556 var interfaceBBox = interfaceLabel.getBBox();
13557
13558 if ((0,_diagrams_common_common__WEBPACK_IMPORTED_MODULE_1__.evaluate)((0,_config__WEBPACK_IMPORTED_MODULE_2__.getConfig)().flowchart.htmlLabels)) {
13559 var div = interfaceLabel.children[0];
13560 var dv = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(interfaceLabel);
13561 interfaceBBox = div.getBoundingClientRect();
13562 dv.attr('width', interfaceBBox.width);
13563 dv.attr('height', interfaceBBox.height);
13564 }
13565
13566 if (node.classData.annotations[0]) {
13567 maxHeight += interfaceBBox.height + rowPadding;
13568 maxWidth += interfaceBBox.width;
13569 }
13570
13571 var classTitleString = node.classData.id;
13572
13573 if (node.classData.type !== undefined && node.classData.type !== '') {
13574 if ((0,_config__WEBPACK_IMPORTED_MODULE_2__.getConfig)().flowchart.htmlLabels) {
13575 classTitleString += '&lt;' + node.classData.type + '&gt;';
13576 } else {
13577 classTitleString += '<' + node.classData.type + '>';
13578 }
13579 }
13580
13581 var classTitleLabel = labelContainer.node().appendChild((0,_createLabel__WEBPACK_IMPORTED_MODULE_6__["default"])(classTitleString, node.labelStyle, true, true));
13582 (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(classTitleLabel).attr('class', 'classTitle');
13583 var classTitleBBox = classTitleLabel.getBBox();
13584
13585 if ((0,_diagrams_common_common__WEBPACK_IMPORTED_MODULE_1__.evaluate)((0,_config__WEBPACK_IMPORTED_MODULE_2__.getConfig)().flowchart.htmlLabels)) {
13586 var _div2 = classTitleLabel.children[0];
13587
13588 var _dv2 = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(classTitleLabel);
13589
13590 classTitleBBox = _div2.getBoundingClientRect();
13591
13592 _dv2.attr('width', classTitleBBox.width);
13593
13594 _dv2.attr('height', classTitleBBox.height);
13595 }
13596
13597 maxHeight += classTitleBBox.height + rowPadding;
13598
13599 if (classTitleBBox.width > maxWidth) {
13600 maxWidth = classTitleBBox.width;
13601 }
13602
13603 var classAttributes = [];
13604 node.classData.members.forEach(function (str) {
13605 var parsedInfo = (0,_diagrams_class_svgDraw__WEBPACK_IMPORTED_MODULE_7__.parseMember)(str);
13606 var parsedText = parsedInfo.displayText;
13607
13608 if ((0,_config__WEBPACK_IMPORTED_MODULE_2__.getConfig)().flowchart.htmlLabels) {
13609 parsedText = parsedText.replace(/</g, '&lt;').replace(/>/g, '&gt;');
13610 }
13611
13612 var lbl = labelContainer.node().appendChild((0,_createLabel__WEBPACK_IMPORTED_MODULE_6__["default"])(parsedText, parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle, true, true));
13613 var bbox = lbl.getBBox();
13614
13615 if ((0,_diagrams_common_common__WEBPACK_IMPORTED_MODULE_1__.evaluate)((0,_config__WEBPACK_IMPORTED_MODULE_2__.getConfig)().flowchart.htmlLabels)) {
13616 var _div3 = lbl.children[0];
13617
13618 var _dv3 = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(lbl);
13619
13620 bbox = _div3.getBoundingClientRect();
13621
13622 _dv3.attr('width', bbox.width);
13623
13624 _dv3.attr('height', bbox.height);
13625 }
13626
13627 if (bbox.width > maxWidth) {
13628 maxWidth = bbox.width;
13629 }
13630
13631 maxHeight += bbox.height + rowPadding;
13632 classAttributes.push(lbl);
13633 });
13634 maxHeight += lineHeight;
13635 var classMethods = [];
13636 node.classData.methods.forEach(function (str) {
13637 var parsedInfo = (0,_diagrams_class_svgDraw__WEBPACK_IMPORTED_MODULE_7__.parseMember)(str);
13638 var displayText = parsedInfo.displayText;
13639
13640 if ((0,_config__WEBPACK_IMPORTED_MODULE_2__.getConfig)().flowchart.htmlLabels) {
13641 displayText = displayText.replace(/</g, '&lt;').replace(/>/g, '&gt;');
13642 }
13643
13644 var lbl = labelContainer.node().appendChild((0,_createLabel__WEBPACK_IMPORTED_MODULE_6__["default"])(displayText, parsedInfo.cssStyle ? parsedInfo.cssStyle : node.labelStyle, true, true));
13645 var bbox = lbl.getBBox();
13646
13647 if ((0,_diagrams_common_common__WEBPACK_IMPORTED_MODULE_1__.evaluate)((0,_config__WEBPACK_IMPORTED_MODULE_2__.getConfig)().flowchart.htmlLabels)) {
13648 var _div4 = lbl.children[0];
13649
13650 var _dv4 = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(lbl);
13651
13652 bbox = _div4.getBoundingClientRect();
13653
13654 _dv4.attr('width', bbox.width);
13655
13656 _dv4.attr('height', bbox.height);
13657 }
13658
13659 if (bbox.width > maxWidth) {
13660 maxWidth = bbox.width;
13661 }
13662
13663 maxHeight += bbox.height + rowPadding;
13664 classMethods.push(lbl);
13665 });
13666 maxHeight += lineHeight; // 2. Position the labels
13667 // position the interface label
13668
13669 if (hasInterface) {
13670 var _diffX = (maxWidth - interfaceBBox.width) / 2;
13671
13672 (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(interfaceLabel).attr('transform', 'translate( ' + (-1 * maxWidth / 2 + _diffX) + ', ' + -1 * maxHeight / 2 + ')');
13673 verticalPos = interfaceBBox.height + rowPadding;
13674 } // Position the class title label
13675
13676
13677 var diffX = (maxWidth - classTitleBBox.width) / 2;
13678 (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(classTitleLabel).attr('transform', 'translate( ' + (-1 * maxWidth / 2 + diffX) + ', ' + (-1 * maxHeight / 2 + verticalPos) + ')');
13679 verticalPos += classTitleBBox.height + rowPadding;
13680 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);
13681 verticalPos += lineHeight;
13682 classAttributes.forEach(function (lbl) {
13683 (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(lbl).attr('transform', 'translate( ' + -maxWidth / 2 + ', ' + (-1 * maxHeight / 2 + verticalPos + lineHeight / 2) + ')');
13684 verticalPos += classTitleBBox.height + rowPadding;
13685 });
13686 verticalPos += lineHeight;
13687 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);
13688 verticalPos += lineHeight;
13689 classMethods.forEach(function (lbl) {
13690 (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(lbl).attr('transform', 'translate( ' + -maxWidth / 2 + ', ' + (-1 * maxHeight / 2 + verticalPos) + ')');
13691 verticalPos += classTitleBBox.height + rowPadding;
13692 }); //
13693 // let bbox;
13694 // if (evaluate(getConfig().flowchart.htmlLabels)) {
13695 // const div = interfaceLabel.children[0];
13696 // const dv = select(interfaceLabel);
13697 // bbox = div.getBoundingClientRect();
13698 // dv.attr('width', bbox.width);
13699 // dv.attr('height', bbox.height);
13700 // }
13701 // bbox = labelContainer.getBBox();
13702 // log.info('Text 2', text2);
13703 // const textRows = text2.slice(1, text2.length);
13704 // let titleBox = text.getBBox();
13705 // const descr = label
13706 // .node()
13707 // .appendChild(createLabel(textRows.join('<br/>'), node.labelStyle, true, true));
13708 // if (evaluate(getConfig().flowchart.htmlLabels)) {
13709 // const div = descr.children[0];
13710 // const dv = select(descr);
13711 // bbox = div.getBoundingClientRect();
13712 // dv.attr('width', bbox.width);
13713 // dv.attr('height', bbox.height);
13714 // }
13715 // // bbox = label.getBBox();
13716 // // log.info(descr);
13717 // select(descr).attr(
13718 // 'transform',
13719 // 'translate( ' +
13720 // // (titleBox.width - bbox.width) / 2 +
13721 // (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) +
13722 // ', ' +
13723 // (titleBox.height + halfPadding + 5) +
13724 // ')'
13725 // );
13726 // select(text).attr(
13727 // 'transform',
13728 // 'translate( ' +
13729 // // (titleBox.width - bbox.width) / 2 +
13730 // (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) +
13731 // ', ' +
13732 // 0 +
13733 // ')'
13734 // );
13735 // // Get the size of the label
13736 // // Bounding box for title and text
13737 // bbox = label.node().getBBox();
13738 // // Center the label
13739 // label.attr(
13740 // 'transform',
13741 // 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')'
13742 // );
13743
13744 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
13745 // .attr('class', 'divider')
13746 // .attr('x1', -bbox.width / 2 - halfPadding)
13747 // .attr('x2', bbox.width / 2 + halfPadding)
13748 // .attr('y1', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding)
13749 // .attr('y2', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);
13750
13751 (0,_shapes_util__WEBPACK_IMPORTED_MODULE_3__.updateNodeBounds)(node, rect);
13752
13753 node.intersect = function (point) {
13754 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].rect(node, point);
13755 };
13756
13757 return shapeSvg;
13758};
13759
13760var shapes = {
13761 question: question,
13762 rect: rect,
13763 labelRect: labelRect,
13764 rectWithTitle: rectWithTitle,
13765 choice: choice,
13766 circle: circle,
13767 doublecircle: doublecircle,
13768 stadium: stadium,
13769 hexagon: hexagon,
13770 rect_left_inv_arrow: rect_left_inv_arrow,
13771 lean_right: lean_right,
13772 lean_left: lean_left,
13773 trapezoid: trapezoid,
13774 inv_trapezoid: inv_trapezoid,
13775 rect_right_inv_arrow: rect_right_inv_arrow,
13776 cylinder: cylinder,
13777 start: start,
13778 end: end,
13779 note: _shapes_note__WEBPACK_IMPORTED_MODULE_8__["default"],
13780 subroutine: subroutine,
13781 fork: forkJoin,
13782 join: forkJoin,
13783 class_box: class_box
13784};
13785var nodeElems = {};
13786var insertNode = function insertNode(elem, node, dir) {
13787 var newEl;
13788 var el; // Add link when appropriate
13789
13790 if (node.link) {
13791 var target;
13792
13793 if ((0,_config__WEBPACK_IMPORTED_MODULE_2__.getConfig)().securityLevel === 'sandbox') {
13794 target = '_top';
13795 } else if (node.linkTarget) {
13796 target = node.linkTarget || '_blank';
13797 }
13798
13799 newEl = elem.insert('svg:a').attr('xlink:href', node.link).attr('target', target);
13800 el = shapes[node.shape](newEl, node, dir);
13801 } else {
13802 el = shapes[node.shape](elem, node, dir);
13803 newEl = el;
13804 }
13805
13806 if (node.tooltip) {
13807 el.attr('title', node.tooltip);
13808 }
13809
13810 if (node.class) {
13811 el.attr('class', 'node default ' + node.class);
13812 }
13813
13814 nodeElems[node.id] = newEl;
13815
13816 if (node.haveCallback) {
13817 nodeElems[node.id].attr('class', nodeElems[node.id].attr('class') + ' clickable');
13818 }
13819};
13820var setNodeElem = function setNodeElem(elem, node) {
13821 nodeElems[node.id] = elem;
13822};
13823var clear = function clear() {
13824 nodeElems = {};
13825};
13826var positionNode = function positionNode(node) {
13827 var el = nodeElems[node.id];
13828 _logger__WEBPACK_IMPORTED_MODULE_4__.log.trace('Transforming node', node.diff, node, 'translate(' + (node.x - node.width / 2 - 5) + ', ' + node.width / 2 + ')');
13829 var padding = 8;
13830 var diff = node.diff || 0;
13831
13832 if (node.clusterNode) {
13833 el.attr('transform', 'translate(' + (node.x + diff - node.width / 2) + ', ' + (node.y - node.height / 2 - padding) + ')');
13834 } else {
13835 el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');
13836 }
13837
13838 return diff;
13839};
13840
13841/***/ }),
13842
13843/***/ "./src/dagre-wrapper/shapes/note.js":
13844/*!******************************************!*\
13845 !*** ./src/dagre-wrapper/shapes/note.js ***!
13846 \******************************************/
13847/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
13848
13849"use strict";
13850__webpack_require__.r(__webpack_exports__);
13851/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13852/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
13853/* harmony export */ });
13854/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "./src/dagre-wrapper/shapes/util.js");
13855/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
13856/* harmony import */ var _intersect_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../intersect/index.js */ "./src/dagre-wrapper/intersect/index.js");
13857
13858 // eslint-disable-line
13859
13860
13861
13862var note = function note(parent, node) {
13863 var _labelHelper = (0,_util__WEBPACK_IMPORTED_MODULE_0__.labelHelper)(parent, node, 'node ' + node.classes, true),
13864 shapeSvg = _labelHelper.shapeSvg,
13865 bbox = _labelHelper.bbox,
13866 halfPadding = _labelHelper.halfPadding;
13867
13868 _logger__WEBPACK_IMPORTED_MODULE_1__.log.info('Classes = ', node.classes); // add the rect
13869
13870 var rect = shapeSvg.insert('rect', ':first-child');
13871 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);
13872 (0,_util__WEBPACK_IMPORTED_MODULE_0__.updateNodeBounds)(node, rect);
13873
13874 node.intersect = function (point) {
13875 return _intersect_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].rect(node, point);
13876 };
13877
13878 return shapeSvg;
13879};
13880
13881/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (note);
13882
13883/***/ }),
13884
13885/***/ "./src/dagre-wrapper/shapes/util.js":
13886/*!******************************************!*\
13887 !*** ./src/dagre-wrapper/shapes/util.js ***!
13888 \******************************************/
13889/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
13890
13891"use strict";
13892__webpack_require__.r(__webpack_exports__);
13893/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13894/* harmony export */ "insertPolygonShape": () => (/* binding */ insertPolygonShape),
13895/* harmony export */ "labelHelper": () => (/* binding */ labelHelper),
13896/* harmony export */ "updateNodeBounds": () => (/* binding */ updateNodeBounds)
13897/* harmony export */ });
13898/* harmony import */ var _createLabel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../createLabel */ "./src/dagre-wrapper/createLabel.js");
13899/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config */ "./src/config.js");
13900/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
13901/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
13902/* harmony import */ var _diagrams_common_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../diagrams/common/common */ "./src/diagrams/common/common.js");
13903
13904
13905
13906
13907
13908var labelHelper = function labelHelper(parent, node, _classes, isNode) {
13909 var classes;
13910
13911 if (!_classes) {
13912 classes = 'node default';
13913 } else {
13914 classes = _classes;
13915 } // Add outer g element
13916
13917
13918 var shapeSvg = parent.insert('g').attr('class', classes).attr('id', node.domId || node.id); // Create the label and insert it after the rect
13919
13920 var label = shapeSvg.insert('g').attr('class', 'label').attr('style', node.labelStyle);
13921 var labelText = typeof node.labelText === 'string' ? node.labelText : node.labelText[0];
13922 var text = label.node().appendChild((0,_createLabel__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_diagrams_common_common__WEBPACK_IMPORTED_MODULE_2__.sanitizeText)((0,_mermaidAPI__WEBPACK_IMPORTED_MODULE_3__.decodeEntities)(labelText), (0,_config__WEBPACK_IMPORTED_MODULE_4__.getConfig)()), node.labelStyle, false, isNode)); // Get the size of the label
13923
13924 var bbox = text.getBBox();
13925
13926 if ((0,_diagrams_common_common__WEBPACK_IMPORTED_MODULE_2__.evaluate)((0,_config__WEBPACK_IMPORTED_MODULE_4__.getConfig)().flowchart.htmlLabels)) {
13927 var div = text.children[0];
13928 var dv = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(text);
13929 bbox = div.getBoundingClientRect();
13930 dv.attr('width', bbox.width);
13931 dv.attr('height', bbox.height);
13932 }
13933
13934 var halfPadding = node.padding / 2; // Center the label
13935
13936 label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')');
13937 return {
13938 shapeSvg: shapeSvg,
13939 bbox: bbox,
13940 halfPadding: halfPadding,
13941 label: label
13942 };
13943};
13944var updateNodeBounds = function updateNodeBounds(node, element) {
13945 var bbox = element.node().getBBox();
13946 node.width = bbox.width;
13947 node.height = bbox.height;
13948};
13949/**
13950 * @param parent
13951 * @param w
13952 * @param h
13953 * @param points
13954 */
13955
13956function insertPolygonShape(parent, w, h, points) {
13957 return parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
13958 return d.x + ',' + d.y;
13959 }).join(' ')).attr('class', 'label-container').attr('transform', 'translate(' + -w / 2 + ',' + h / 2 + ')');
13960}
13961
13962/***/ }),
13963
13964/***/ "./src/defaultConfig.js":
13965/*!******************************!*\
13966 !*** ./src/defaultConfig.js ***!
13967 \******************************/
13968/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
13969
13970"use strict";
13971__webpack_require__.r(__webpack_exports__);
13972/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13973/* harmony export */ "configKeys": () => (/* binding */ configKeys),
13974/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
13975/* harmony export */ });
13976/* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./themes */ "./src/themes/index.js");
13977function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
13978
13979function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13980
13981function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
13982
13983function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
13984
13985function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
13986
13987function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
13988
13989function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
13990
13991
13992/**
13993 * **Configuration methods in Mermaid version 8.6.0 have been updated, to learn more[[click
13994 * here](8.6.0_docs.md)].**
13995 *
13996 * ## **What follows are config instructions for older versions**
13997 *
13998 * These are the default options which can be overridden with the initialization call like so:
13999 *
14000 * **Example 1:**<pre> mermaid.initialize({ flowchart:{ htmlLabels: false } }); </pre>
14001 *
14002 * **Example 2:**<pre> <script> var config = { startOnLoad:true, flowchart:{ useMaxWidth:true,
14003 * htmlLabels:true, curve:'cardinal', },
14004 *
14005 * securityLevel:'loose',
14006 *
14007 * }; mermaid.initialize(config); </script> </pre>
14008 *
14009 * A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults).
14010 * A description of each option follows below.
14011 *
14012 * @name Configuration
14013 */
14014
14015var config = {
14016 /**
14017 * Theme , the CSS style sheet
14018 *
14019 * | Parameter | Description | Type | Required | Values |
14020 * | --------- | --------------- | ------ | -------- | ---------------------------------------------- |
14021 * | theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' |
14022 *
14023 * **Notes:** To disable any pre-defined mermaid theme, use "null".<pre> "theme": "forest",
14024 * "themeCSS": ".node rect { fill: red; }" </pre>
14025 */
14026 theme: 'default',
14027 themeVariables: _themes__WEBPACK_IMPORTED_MODULE_0__["default"]["default"].getThemeVariables(),
14028 themeCSS: undefined,
14029
14030 /* **maxTextSize** - The maximum allowed size of the users text diagram */
14031 maxTextSize: 50000,
14032 darkMode: false,
14033
14034 /**
14035 * | Parameter | Description | Type | Required | Values |
14036 * | ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- |
14037 * | fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily |
14038 *
14039 * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif;'.
14040 */
14041 fontFamily: '"trebuchet ms", verdana, arial, sans-serif;',
14042
14043 /**
14044 * | Parameter | Description | Type | Required | Values |
14045 * | --------- | ----------------------------------------------------- | ---------------- | -------- | ------------- |
14046 * | logLevel | This option decides the amount of logging to be used. | string \| number | Required | 1, 2, 3, 4, 5 |
14047 *
14048 * **Notes:**
14049 *
14050 * - Debug: 1
14051 * - Info: 2
14052 * - Warn: 3
14053 * - Error: 4
14054 * - Fatal: 5 (default)
14055 */
14056 logLevel: 5,
14057
14058 /**
14059 * | Parameter | Description | Type | Required | Values |
14060 * | ------------- | --------------------------------- | ------ | -------- | ------------------------------- |
14061 * | securitylevel | Level of trust for parsed diagram | string | Required | 'strict', 'loose', 'antiscript' |
14062 *
14063 * **Notes**:
14064 *
14065 * - **strict**: (**default**) tags in text are encoded, click functionality is disabled
14066 * - **loose**: tags in text are allowed, click functionality is enabled
14067 * - **antiscript**: html tags in text are allowed, (only script element is removed), click
14068 * functionality is enabled
14069 */
14070 securityLevel: 'strict',
14071
14072 /**
14073 * | Parameter | Description | Type | Required | Values |
14074 * | ----------- | -------------------------------------------- | ------- | -------- | ----------- |
14075 * | startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false |
14076 *
14077 * **Notes:** Default value: true
14078 */
14079 startOnLoad: true,
14080
14081 /**
14082 * | Parameter | Description | Type | Required | Values |
14083 * | ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- |
14084 * | arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false |
14085 *
14086 * **Notes**:
14087 *
14088 * This matters if you are using base tag settings.
14089 *
14090 * Default value: false
14091 */
14092 arrowMarkerAbsolute: false,
14093
14094 /**
14095 * This option controls which currentConfig keys are considered _secure_ and can only be changed
14096 * via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the
14097 * `secure` keys in the current currentConfig. This prevents malicious graph directives from
14098 * overriding a site's default security.
14099 *
14100 * **Notes**:
14101 *
14102 * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']
14103 */
14104 secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'],
14105
14106 /**
14107 * This option controls if the generated ids of nodes in the SVG are generated randomly or based
14108 * on a seed. If set to false, the IDs are generated based on the current date and thus are not
14109 * deterministic. This is the default behaviour.
14110 *
14111 * **Notes**:
14112 *
14113 * This matters if your files are checked into sourcecontrol e.g. git and should not change unless
14114 * content is changed.
14115 *
14116 * Default value: false
14117 */
14118 deterministicIds: false,
14119
14120 /**
14121 * This option is the optional seed for deterministic ids. if set to undefined but
14122 * deterministicIds is true, a simple number iterator is used. You can set this attribute to base
14123 * the seed on a static string.
14124 */
14125 deterministicIDSeed: undefined,
14126
14127 /** The object containing configurations specific for flowcharts */
14128 flowchart: {
14129 /**
14130 * | Parameter | Description | Type | Required | Values |
14131 * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |
14132 * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
14133 *
14134 * **Notes:**
14135 *
14136 * The amount of padding around the diagram as a whole so that embedded diagrams have margins,
14137 * expressed in pixels
14138 *
14139 * Default value: 8
14140 */
14141 diagramPadding: 8,
14142
14143 /**
14144 * | Parameter | Description | Type | Required | Values |
14145 * | ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- |
14146 * | htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false |
14147 *
14148 * **Notes:** Default value: true.
14149 */
14150 htmlLabels: true,
14151
14152 /**
14153 * | Parameter | Description | Type | Required | Values |
14154 * | ----------- | --------------------------------------------------- | ------- | -------- | ------------------- |
14155 * | nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number |
14156 *
14157 * **Notes:**
14158 *
14159 * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the
14160 * vertical spacing for LR as well as RL graphs.**
14161 *
14162 * Default value: 50
14163 */
14164 nodeSpacing: 50,
14165
14166 /**
14167 * | Parameter | Description | Type | Required | Values |
14168 * | ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- |
14169 * | rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number |
14170 *
14171 * **Notes**:
14172 *
14173 * Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal
14174 * spacing for LR as well as RL graphs.
14175 *
14176 * Default value 50
14177 */
14178 rankSpacing: 50,
14179
14180 /**
14181 * | Parameter | Description | Type | Required | Values |
14182 * | --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- |
14183 * | curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' |
14184 *
14185 * **Notes:**
14186 *
14187 * Default Value: 'basis'
14188 */
14189 curve: 'basis',
14190 // Only used in new experimental rendering
14191 // represents the padding between the labels and the shape
14192 padding: 15,
14193
14194 /**
14195 * | Parameter | Description | Type | Required | Values |
14196 * | ----------- | ----------- | ------- | -------- | ----------- |
14197 * | useMaxWidth | See notes | boolean | 4 | true, false |
14198 *
14199 * **Notes:**
14200 *
14201 * When this flag is set the height and width is set to 100% and is then scaling with the
14202 * available space if not the absolute space required is used.
14203 *
14204 * Default value: true
14205 */
14206 useMaxWidth: true,
14207
14208 /**
14209 * | Parameter | Description | Type | Required | Values |
14210 * | --------------- | ----------- | ------- | -------- | ----------------------- |
14211 * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
14212 *
14213 * **Notes:**
14214 *
14215 * Decides which rendering engine that is to be used for the rendering. Legal values are:
14216 * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
14217 *
14218 * Default value: 'dagre-d3'
14219 */
14220 defaultRenderer: 'dagre-d3'
14221 },
14222
14223 /** The object containing configurations specific for sequence diagrams */
14224 sequence: {
14225 hideUnusedParticipants: false,
14226
14227 /**
14228 * | Parameter | Description | Type | Required | Values |
14229 * | --------------- | ---------------------------- | ------- | -------- | ------------------ |
14230 * | activationWidth | Width of the activation rect | Integer | Required | Any Positive Value |
14231 *
14232 * **Notes:** Default value :10
14233 */
14234 activationWidth: 10,
14235
14236 /**
14237 * | Parameter | Description | Type | Required | Values |
14238 * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
14239 * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
14240 *
14241 * **Notes:** Default value: 50
14242 */
14243 diagramMarginX: 50,
14244
14245 /**
14246 * | Parameter | Description | Type | Required | Values |
14247 * | -------------- | ------------------------------------------------- | ------- | -------- | ------------------ |
14248 * | diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value |
14249 *
14250 * **Notes:** Default value: 10
14251 */
14252 diagramMarginY: 10,
14253
14254 /**
14255 * | Parameter | Description | Type | Required | Values |
14256 * | ----------- | --------------------- | ------- | -------- | ------------------ |
14257 * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
14258 *
14259 * **Notes:** Default value: 50
14260 */
14261 actorMargin: 50,
14262
14263 /**
14264 * | Parameter | Description | Type | Required | Values |
14265 * | --------- | -------------------- | ------- | -------- | ------------------ |
14266 * | width | Width of actor boxes | Integer | Required | Any Positive Value |
14267 *
14268 * **Notes:** Default value: 150
14269 */
14270 width: 150,
14271
14272 /**
14273 * | Parameter | Description | Type | Required | Values |
14274 * | --------- | --------------------- | ------- | -------- | ------------------ |
14275 * | height | Height of actor boxes | Integer | Required | Any Positive Value |
14276 *
14277 * **Notes:** Default value: 65
14278 */
14279 height: 65,
14280
14281 /**
14282 * | Parameter | Description | Type | Required | Values |
14283 * | --------- | ------------------------ | ------- | -------- | ------------------ |
14284 * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
14285 *
14286 * **Notes:** Default value: 10
14287 */
14288 boxMargin: 10,
14289
14290 /**
14291 * | Parameter | Description | Type | Required | Values |
14292 * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
14293 * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
14294 *
14295 * **Notes:** Default value: 5
14296 */
14297 boxTextMargin: 5,
14298
14299 /**
14300 * | Parameter | Description | Type | Required | Values |
14301 * | ---------- | ------------------- | ------- | -------- | ------------------ |
14302 * | noteMargin | margin around notes | Integer | Required | Any Positive Value |
14303 *
14304 * **Notes:** Default value: 10
14305 */
14306 noteMargin: 10,
14307
14308 /**
14309 * | Parameter | Description | Type | Required | Values |
14310 * | ------------- | ---------------------- | ------- | -------- | ------------------ |
14311 * | messageMargin | Space between messages | Integer | Required | Any Positive Value |
14312 *
14313 * **Notes:** Default value: 35
14314 */
14315 messageMargin: 35,
14316
14317 /**
14318 * | Parameter | Description | Type | Required | Values |
14319 * | ------------ | --------------------------- | ------ | -------- | ------------------------- |
14320 * | messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' |
14321 *
14322 * **Notes:** Default value: 'center'
14323 */
14324 messageAlign: 'center',
14325
14326 /**
14327 * | Parameter | Description | Type | Required | Values |
14328 * | ------------ | --------------------------- | ------- | -------- | ----------- |
14329 * | mirrorActors | Mirror actors under diagram | boolean | Required | true, false |
14330 *
14331 * **Notes:** Default value: true
14332 */
14333 mirrorActors: true,
14334
14335 /**
14336 * | Parameter | Description | Type | Required | Values |
14337 * | ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- |
14338 * | forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False |
14339 *
14340 * **Notes:**
14341 *
14342 * Default value: false.
14343 */
14344 forceMenus: false,
14345
14346 /**
14347 * | Parameter | Description | Type | Required | Values |
14348 * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
14349 * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value |
14350 *
14351 * **Notes:**
14352 *
14353 * Depending on css styling this might need adjustment.
14354 *
14355 * Default value: 1
14356 */
14357 bottomMarginAdj: 1,
14358
14359 /**
14360 * | Parameter | Description | Type | Required | Values |
14361 * | ----------- | ----------- | ------- | -------- | ----------- |
14362 * | useMaxWidth | See Notes | boolean | Required | true, false |
14363 *
14364 * **Notes:** When this flag is set to true, the height and width is set to 100% and is then
14365 * scaling with the available space. If set to false, the absolute space required is used.
14366 *
14367 * Default value: true
14368 */
14369 useMaxWidth: true,
14370
14371 /**
14372 * | Parameter | Description | Type | Required | Values |
14373 * | ----------- | ------------------------------------ | ------- | -------- | ----------- |
14374 * | rightAngles | display curve arrows as right angles | boolean | Required | true, false |
14375 *
14376 * **Notes:**
14377 *
14378 * This will display arrows that start and begin at the same node as right angles, rather than a curve
14379 *
14380 * Default value: false
14381 */
14382 rightAngles: false,
14383
14384 /**
14385 * | Parameter | Description | Type | Required | Values |
14386 * | ------------------- | ------------------------------- | ------- | -------- | ----------- |
14387 * | showSequenceNumbers | This will show the node numbers | boolean | Required | true, false |
14388 *
14389 * **Notes:** Default value: false
14390 */
14391 showSequenceNumbers: false,
14392
14393 /**
14394 * | Parameter | Description | Type | Required | Values |
14395 * | ------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
14396 * | actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value |
14397 *
14398 * **Notes:** **Default value 14**..
14399 */
14400 actorFontSize: 14,
14401
14402 /**
14403 * | Parameter | Description | Type | Required | Values |
14404 * | --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- |
14405 * | actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily |
14406 *
14407 * **Notes:** Default value: "'Open Sans", sans-serif'
14408 */
14409 actorFontFamily: '"Open Sans", sans-serif',
14410
14411 /**
14412 * This sets the font weight of the actor's description
14413 *
14414 * **Notes:** Default value: 400.
14415 */
14416 actorFontWeight: 400,
14417
14418 /**
14419 * | Parameter | Description | Type | Required | Values |
14420 * | ------------ | ----------------------------------------------- | ------- | -------- | ------------------ |
14421 * | noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value |
14422 *
14423 * **Notes:** Default value: 14
14424 */
14425 noteFontSize: 14,
14426
14427 /**
14428 * | Parameter | Description | Type | Required | Values |
14429 * | -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- |
14430 * | noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily |
14431 *
14432 * **Notes:** Default value: ''"trebuchet ms", verdana, arial, sans-serif'
14433 */
14434 noteFontFamily: '"trebuchet ms", verdana, arial, sans-serif',
14435
14436 /**
14437 * This sets the font weight of the note's description
14438 *
14439 * **Notes:** Default value: 400
14440 */
14441 noteFontWeight: 400,
14442
14443 /**
14444 * | Parameter | Description | Type | Required | Values |
14445 * | --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- |
14446 * | noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' |
14447 *
14448 * **Notes:** Default value: 'center'
14449 */
14450 noteAlign: 'center',
14451
14452 /**
14453 * | Parameter | Description | Type | Required | Values |
14454 * | --------------- | ----------------------------------------- | ------- | -------- | ------------------- |
14455 * | messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number |
14456 *
14457 * **Notes:** Default value: 16
14458 */
14459 messageFontSize: 16,
14460
14461 /**
14462 * | Parameter | Description | Type | Required | Values |
14463 * | ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- |
14464 * | messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily |
14465 *
14466 * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif'
14467 */
14468 messageFontFamily: '"trebuchet ms", verdana, arial, sans-serif',
14469
14470 /**
14471 * This sets the font weight of the message's description
14472 *
14473 * **Notes:** Default value: 400.
14474 */
14475 messageFontWeight: 400,
14476
14477 /**
14478 * This sets the auto-wrap state for the diagram
14479 *
14480 * **Notes:** Default value: false.
14481 */
14482 wrap: false,
14483
14484 /**
14485 * This sets the auto-wrap padding for the diagram (sides only)
14486 *
14487 * **Notes:** Default value: 0.
14488 */
14489 wrapPadding: 10,
14490
14491 /**
14492 * This sets the width of the loop-box (loop, alt, opt, par)
14493 *
14494 * **Notes:** Default value: 50.
14495 */
14496 labelBoxWidth: 50,
14497
14498 /**
14499 * This sets the height of the loop-box (loop, alt, opt, par)
14500 *
14501 * **Notes:** Default value: 20.
14502 */
14503 labelBoxHeight: 20,
14504 messageFont: function messageFont() {
14505 return {
14506 fontFamily: this.messageFontFamily,
14507 fontSize: this.messageFontSize,
14508 fontWeight: this.messageFontWeight
14509 };
14510 },
14511 noteFont: function noteFont() {
14512 return {
14513 fontFamily: this.noteFontFamily,
14514 fontSize: this.noteFontSize,
14515 fontWeight: this.noteFontWeight
14516 };
14517 },
14518 actorFont: function actorFont() {
14519 return {
14520 fontFamily: this.actorFontFamily,
14521 fontSize: this.actorFontSize,
14522 fontWeight: this.actorFontWeight
14523 };
14524 }
14525 },
14526
14527 /** The object containing configurations specific for gantt diagrams */
14528 gantt: {
14529 /**
14530 * ### titleTopMargin
14531 *
14532 * | Parameter | Description | Type | Required | Values |
14533 * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
14534 * | titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value |
14535 *
14536 * **Notes:** Default value: 25
14537 */
14538 titleTopMargin: 25,
14539
14540 /**
14541 * | Parameter | Description | Type | Required | Values |
14542 * | --------- | ----------------------------------- | ------- | -------- | ------------------ |
14543 * | barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value |
14544 *
14545 * **Notes:** Default value: 20
14546 */
14547 barHeight: 20,
14548
14549 /**
14550 * | Parameter | Description | Type | Required | Values |
14551 * | --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ |
14552 * | barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value |
14553 *
14554 * **Notes:** Default value: 4
14555 */
14556 barGap: 4,
14557
14558 /**
14559 * | Parameter | Description | Type | Required | Values |
14560 * | ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ |
14561 * | topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value |
14562 *
14563 * **Notes:** Default value: 50
14564 */
14565 topPadding: 50,
14566
14567 /**
14568 * | Parameter | Description | Type | Required | Values |
14569 * | ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ |
14570 * | rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value |
14571 *
14572 * **Notes:** Default value: 75
14573 */
14574 rightPadding: 75,
14575
14576 /**
14577 * | Parameter | Description | Type | Required | Values |
14578 * | ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ |
14579 * | leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value |
14580 *
14581 * **Notes:** Default value: 75
14582 */
14583 leftPadding: 75,
14584
14585 /**
14586 * | Parameter | Description | Type | Required | Values |
14587 * | -------------------- | -------------------------------------------- | ------- | -------- | ------------------ |
14588 * | gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value |
14589 *
14590 * **Notes:** Default value: 35
14591 */
14592 gridLineStartPadding: 35,
14593
14594 /**
14595 * | Parameter | Description | Type | Required | Values |
14596 * | --------- | ----------- | ------- | -------- | ------------------ |
14597 * | fontSize | Font size | Integer | Required | Any Positive Value |
14598 *
14599 * **Notes:** Default value: 11
14600 */
14601 fontSize: 11,
14602
14603 /**
14604 * | Parameter | Description | Type | Required | Values |
14605 * | --------------- | ---------------------- | ------- | -------- | ------------------ |
14606 * | sectionFontSize | Font size for sections | Integer | Required | Any Positive Value |
14607 *
14608 * **Notes:** Default value: 11
14609 */
14610 sectionFontSize: 11,
14611
14612 /**
14613 * | Parameter | Description | Type | Required | Values |
14614 * | ------------------- | ---------------------------------------- | ------- | -------- | ------------------ |
14615 * | numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value |
14616 *
14617 * **Notes:** Default value: 4
14618 */
14619 numberSectionStyles: 4,
14620
14621 /**
14622 * | Parameter | Description | Type | Required | Values |
14623 * | ---------- | --------------------------- | ---- | -------- | ---------------- |
14624 * | axisFormat | Datetime format of the axis | 3 | Required | Date in yy-mm-dd |
14625 *
14626 * **Notes:**
14627 *
14628 * This might need adjustment to match your locale and preferences
14629 *
14630 * Default value: '%Y-%m-%d'.
14631 */
14632 axisFormat: '%Y-%m-%d',
14633
14634 /**
14635 * | Parameter | Description | Type | Required | Values |
14636 * | ----------- | ----------- | ------- | -------- | ----------- |
14637 * | useMaxWidth | See notes | boolean | 4 | true, false |
14638 *
14639 * **Notes:**
14640 *
14641 * When this flag is set the height and width is set to 100% and is then scaling with the
14642 * available space if not the absolute space required is used.
14643 *
14644 * Default value: true
14645 */
14646 useMaxWidth: true,
14647
14648 /**
14649 * | Parameter | Description | Type | Required | Values |
14650 * | --------- | ----------- | ------- | -------- | ----------- |
14651 * | topAxis | See notes | Boolean | 4 | True, False |
14652 *
14653 * **Notes:** when this flag is set date labels will be added to the top of the chart
14654 *
14655 * **Default value false**.
14656 */
14657 topAxis: false,
14658 useWidth: undefined
14659 },
14660
14661 /** The object containing configurations specific for journey diagrams */
14662 journey: {
14663 /**
14664 * | Parameter | Description | Type | Required | Values |
14665 * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
14666 * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
14667 *
14668 * **Notes:** Default value: 50
14669 */
14670 diagramMarginX: 50,
14671
14672 /**
14673 * | Parameter | Description | Type | Required | Values |
14674 * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
14675 * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |
14676 *
14677 * **Notes:** Default value: 10
14678 */
14679 diagramMarginY: 10,
14680
14681 /**
14682 * | Parameter | Description | Type | Required | Values |
14683 * | ----------- | --------------------- | ------- | -------- | ------------------ |
14684 * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
14685 *
14686 * **Notes:** Default value: 50
14687 */
14688 leftMargin: 150,
14689
14690 /**
14691 * | Parameter | Description | Type | Required | Values |
14692 * | --------- | -------------------- | ------- | -------- | ------------------ |
14693 * | width | Width of actor boxes | Integer | Required | Any Positive Value |
14694 *
14695 * **Notes:** Default value: 150
14696 */
14697 width: 150,
14698
14699 /**
14700 * | Parameter | Description | Type | Required | Values |
14701 * | --------- | --------------------- | ------- | -------- | ------------------ |
14702 * | height | Height of actor boxes | Integer | Required | Any Positive Value |
14703 *
14704 * **Notes:** Default value: 65
14705 */
14706 height: 50,
14707
14708 /**
14709 * | Parameter | Description | Type | Required | Values |
14710 * | --------- | ------------------------ | ------- | -------- | ------------------ |
14711 * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
14712 *
14713 * **Notes:** Default value: 10
14714 */
14715 boxMargin: 10,
14716
14717 /**
14718 * | Parameter | Description | Type | Required | Values |
14719 * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
14720 * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
14721 *
14722 * **Notes:** Default value: 5
14723 */
14724 boxTextMargin: 5,
14725
14726 /**
14727 * | Parameter | Description | Type | Required | Values |
14728 * | ---------- | ------------------- | ------- | -------- | ------------------ |
14729 * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |
14730 *
14731 * **Notes:** Default value: 10
14732 */
14733 noteMargin: 10,
14734
14735 /**
14736 * | Parameter | Description | Type | Required | Values |
14737 * | ------------- | ----------------------- | ------- | -------- | ------------------ |
14738 * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |
14739 *
14740 * **Notes:**
14741 *
14742 * Space between messages.
14743 *
14744 * Default value: 35
14745 */
14746 messageMargin: 35,
14747
14748 /**
14749 * | Parameter | Description | Type | Required | Values |
14750 * | ------------ | --------------------------- | ---- | -------- | ------------------------- |
14751 * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |
14752 *
14753 * **Notes:** Default value: 'center'
14754 */
14755 messageAlign: 'center',
14756
14757 /**
14758 * | Parameter | Description | Type | Required | Values |
14759 * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
14760 * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |
14761 *
14762 * **Notes:**
14763 *
14764 * Depending on css styling this might need adjustment.
14765 *
14766 * Default value: 1
14767 */
14768 bottomMarginAdj: 1,
14769
14770 /**
14771 * | Parameter | Description | Type | Required | Values |
14772 * | ----------- | ----------- | ------- | -------- | ----------- |
14773 * | useMaxWidth | See notes | boolean | 4 | true, false |
14774 *
14775 * **Notes:**
14776 *
14777 * When this flag is set the height and width is set to 100% and is then scaling with the
14778 * available space if not the absolute space required is used.
14779 *
14780 * Default value: true
14781 */
14782 useMaxWidth: true,
14783
14784 /**
14785 * | Parameter | Description | Type | Required | Values |
14786 * | ----------- | --------------------------------- | ---- | -------- | ----------- |
14787 * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |
14788 *
14789 * **Notes:**
14790 *
14791 * This will display arrows that start and begin at the same node as right angles, rather than a curves
14792 *
14793 * Default value: false
14794 */
14795 rightAngles: false,
14796 taskFontSize: 14,
14797 taskFontFamily: '"Open Sans", sans-serif',
14798 taskMargin: 50,
14799 // width of activation box
14800 activationWidth: 10,
14801 // text placement as: tspan | fo | old only text as before
14802 textPlacement: 'fo',
14803 actorColours: ['#8FBC8F', '#7CFC00', '#00FFFF', '#20B2AA', '#B0E0E6', '#FFFFE0'],
14804 sectionFills: ['#191970', '#8B008B', '#4B0082', '#2F4F4F', '#800000', '#8B4513', '#00008B'],
14805 sectionColours: ['#fff']
14806 },
14807 class: {
14808 arrowMarkerAbsolute: false,
14809 dividerMargin: 10,
14810 padding: 5,
14811 textHeight: 10,
14812
14813 /**
14814 * | Parameter | Description | Type | Required | Values |
14815 * | ----------- | ----------- | ------- | -------- | ----------- |
14816 * | useMaxWidth | See notes | boolean | 4 | true, false |
14817 *
14818 * **Notes:**
14819 *
14820 * When this flag is set the height and width is set to 100% and is then scaling with the
14821 * available space if not the absolute space required is used.
14822 *
14823 * Default value: true
14824 */
14825 useMaxWidth: true,
14826
14827 /**
14828 * | Parameter | Description | Type | Required | Values |
14829 * | --------------- | ----------- | ------- | -------- | ----------------------- |
14830 * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
14831 *
14832 * **Notes**:
14833 *
14834 * Decides which rendering engine that is to be used for the rendering. Legal values are:
14835 * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
14836 *
14837 * Default value: 'dagre-d3'
14838 */
14839 defaultRenderer: 'dagre-wrapper'
14840 },
14841 state: {
14842 dividerMargin: 10,
14843 sizeUnit: 5,
14844 padding: 8,
14845 textHeight: 10,
14846 titleShift: -15,
14847 noteMargin: 10,
14848 forkWidth: 70,
14849 forkHeight: 7,
14850 // Used
14851 miniPadding: 2,
14852 // Font size factor, this is used to guess the width of the edges labels before rendering by dagre
14853 // layout. This might need updating if/when switching font
14854 fontSizeFactor: 5.02,
14855 fontSize: 24,
14856 labelHeight: 16,
14857 edgeLengthFactor: '20',
14858 compositTitleSize: 35,
14859 radius: 5,
14860
14861 /**
14862 * | Parameter | Description | Type | Required | Values |
14863 * | ----------- | ----------- | ------- | -------- | ----------- |
14864 * | useMaxWidth | See notes | boolean | 4 | true, false |
14865 *
14866 * **Notes:**
14867 *
14868 * When this flag is set the height and width is set to 100% and is then scaling with the
14869 * available space if not the absolute space required is used.
14870 *
14871 * Default value: true
14872 */
14873 useMaxWidth: true,
14874
14875 /**
14876 * | Parameter | Description | Type | Required | Values |
14877 * | --------------- | ----------- | ------- | -------- | ----------------------- |
14878 * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
14879 *
14880 * **Notes:**
14881 *
14882 * Decides which rendering engine that is to be used for the rendering. Legal values are:
14883 * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
14884 *
14885 * Default value: 'dagre-d3'
14886 */
14887 defaultRenderer: 'dagre-wrapper'
14888 },
14889
14890 /** The object containing configurations specific for entity relationship diagrams */
14891 er: {
14892 /**
14893 * | Parameter | Description | Type | Required | Values |
14894 * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |
14895 * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
14896 *
14897 * **Notes:**
14898 *
14899 * The amount of padding around the diagram as a whole so that embedded diagrams have margins,
14900 * expressed in pixels
14901 *
14902 * Default value: 20
14903 */
14904 diagramPadding: 20,
14905
14906 /**
14907 * | Parameter | Description | Type | Required | Values |
14908 * | --------------- | ---------------------------------------- | ------ | -------- | ---------------------- |
14909 * | layoutDirection | Directional bias for layout of entities. | string | Required | "TB", "BT", "LR", "RL" |
14910 *
14911 * **Notes:**
14912 *
14913 * 'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.
14914 *
14915 * T = top, B = bottom, L = left, and R = right.
14916 *
14917 * Default value: 'TB'
14918 */
14919 layoutDirection: 'TB',
14920
14921 /**
14922 * | Parameter | Description | Type | Required | Values |
14923 * | -------------- | ---------------------------------- | ------- | -------- | ------------------ |
14924 * | minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value |
14925 *
14926 * **Notes:** Expressed in pixels. Default value: 100
14927 */
14928 minEntityWidth: 100,
14929
14930 /**
14931 * | Parameter | Description | Type | Required | Values |
14932 * | --------------- | ----------------------------------- | ------- | -------- | ------------------ |
14933 * | minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value |
14934 *
14935 * **Notes:** Expressed in pixels Default value: 75
14936 */
14937 minEntityHeight: 75,
14938
14939 /**
14940 * | Parameter | Description | Type | Required | Values |
14941 * | ------------- | ------------------------------------------------------------ | ------- | -------- | ------------------ |
14942 * | entityPadding | Minimum internal padding between text in box and box borders | Integer | 4 | Any Positive Value |
14943 *
14944 * **Notes:**
14945 *
14946 * The minimum internal padding between text in an entity box and the enclosing box borders,
14947 * expressed in pixels.
14948 *
14949 * Default value: 15
14950 */
14951 entityPadding: 15,
14952
14953 /**
14954 * | Parameter | Description | Type | Required | Values |
14955 * | --------- | ----------------------------------- | ------ | -------- | -------------------- |
14956 * | stroke | Stroke color of box edges and lines | string | 4 | Any recognized color |
14957 *
14958 * **Notes:** Default value: 'gray'
14959 */
14960 stroke: 'gray',
14961
14962 /**
14963 * | Parameter | Description | Type | Required | Values |
14964 * | --------- | -------------------------- | ------ | -------- | -------------------- |
14965 * | fill | Fill color of entity boxes | string | 4 | Any recognized color |
14966 *
14967 * **Notes:** Default value: 'honeydew'
14968 */
14969 fill: 'honeydew',
14970
14971 /**
14972 * | Parameter | Description | Type | Required | Values |
14973 * | --------- | ------------------- | ------- | -------- | ------------------ |
14974 * | fontSize | Font Size in pixels | Integer | | Any Positive Value |
14975 *
14976 * **Notes:**
14977 *
14978 * Font size (expressed as an integer representing a number of pixels) Default value: 12
14979 */
14980 fontSize: 12,
14981
14982 /**
14983 * | Parameter | Description | Type | Required | Values |
14984 * | ----------- | ----------- | ------- | -------- | ----------- |
14985 * | useMaxWidth | See Notes | boolean | Required | true, false |
14986 *
14987 * **Notes:**
14988 *
14989 * When this flag is set to true, the diagram width is locked to 100% and scaled based on
14990 * available space. If set to false, the diagram reserves its absolute width.
14991 *
14992 * Default value: true
14993 */
14994 useMaxWidth: true
14995 },
14996
14997 /** The object containing configurations specific for pie diagrams */
14998 pie: {
14999 useWidth: undefined,
15000
15001 /**
15002 * | Parameter | Description | Type | Required | Values |
15003 * | ----------- | ----------- | ------- | -------- | ----------- |
15004 * | useMaxWidth | See Notes | boolean | Required | true, false |
15005 *
15006 * **Notes:**
15007 *
15008 * When this flag is set to true, the diagram width is locked to 100% and scaled based on
15009 * available space. If set to false, the diagram reserves its absolute width.
15010 *
15011 * Default value: true
15012 */
15013 useMaxWidth: true
15014 },
15015
15016 /** The object containing configurations specific for req diagrams */
15017 requirement: {
15018 useWidth: undefined,
15019
15020 /**
15021 * | Parameter | Description | Type | Required | Values |
15022 * | ----------- | ----------- | ------- | -------- | ----------- |
15023 * | useMaxWidth | See Notes | boolean | Required | true, false |
15024 *
15025 * **Notes:**
15026 *
15027 * When this flag is set to true, the diagram width is locked to 100% and scaled based on
15028 * available space. If set to false, the diagram reserves its absolute width.
15029 *
15030 * Default value: true
15031 */
15032 useMaxWidth: true,
15033 rect_fill: '#f9f9f9',
15034 text_color: '#333',
15035 rect_border_size: '0.5px',
15036 rect_border_color: '#bbb',
15037 rect_min_width: 200,
15038 rect_min_height: 200,
15039 fontSize: 14,
15040 rect_padding: 10,
15041 line_height: 20
15042 },
15043 gitGraph: {
15044 diagramPadding: 8,
15045 nodeLabel: {
15046 width: 75,
15047 height: 100,
15048 x: -25,
15049 y: 0
15050 },
15051 mainBranchName: 'main',
15052 mainBranchOrder: 0,
15053 showCommitLabel: true,
15054 showBranches: true,
15055 rotateCommitLabel: true
15056 },
15057
15058 /** The object containing configurations specific for c4 diagrams */
15059 c4: {
15060 useWidth: undefined,
15061
15062 /**
15063 * | Parameter | Description | Type | Required | Values |
15064 * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
15065 * | diagramMarginX | Margin to the right and left of the c4 diagram | Integer | Required | Any Positive Value |
15066 *
15067 * **Notes:** Default value: 50
15068 */
15069 diagramMarginX: 50,
15070
15071 /**
15072 * | Parameter | Description | Type | Required | Values |
15073 * | -------------- | ------------------------------------------- | ------- | -------- | ------------------ |
15074 * | diagramMarginY | Margin to the over and under the c4 diagram | Integer | Required | Any Positive Value |
15075 *
15076 * **Notes:** Default value: 10
15077 */
15078 diagramMarginY: 10,
15079
15080 /**
15081 * | Parameter | Description | Type | Required | Values |
15082 * | ------------- | --------------------- | ------- | -------- | ------------------ |
15083 * | c4ShapeMargin | Margin between shapes | Integer | Required | Any Positive Value |
15084 *
15085 * **Notes:** Default value: 50
15086 */
15087 c4ShapeMargin: 50,
15088
15089 /**
15090 * | Parameter | Description | Type | Required | Values |
15091 * | -------------- | ---------------------- | ------- | -------- | ------------------ |
15092 * | c4ShapePadding | Padding between shapes | Integer | Required | Any Positive Value |
15093 *
15094 * **Notes:** Default value: 20
15095 */
15096 c4ShapePadding: 20,
15097
15098 /**
15099 * | Parameter | Description | Type | Required | Values |
15100 * | --------- | --------------------- | ------- | -------- | ------------------ |
15101 * | width | Width of person boxes | Integer | Required | Any Positive Value |
15102 *
15103 * **Notes:** Default value: 216
15104 */
15105 width: 216,
15106
15107 /**
15108 * | Parameter | Description | Type | Required | Values |
15109 * | --------- | ---------------------- | ------- | -------- | ------------------ |
15110 * | height | Height of person boxes | Integer | Required | Any Positive Value |
15111 *
15112 * **Notes:** Default value: 60
15113 */
15114 height: 60,
15115
15116 /**
15117 * | Parameter | Description | Type | Required | Values |
15118 * | --------- | ------------------- | ------- | -------- | ------------------ |
15119 * | boxMargin | Margin around boxes | Integer | Required | Any Positive Value |
15120 *
15121 * **Notes:** Default value: 10
15122 */
15123 boxMargin: 10,
15124
15125 /**
15126 * | Parameter | Description | Type | Required | Values |
15127 * | ----------- | ----------- | ------- | -------- | ----------- |
15128 * | useMaxWidth | See Notes | boolean | Required | true, false |
15129 *
15130 * **Notes:** When this flag is set to true, the height and width is set to 100% and is then
15131 * scaling with the available space. If set to false, the absolute space required is used.
15132 *
15133 * Default value: true
15134 */
15135 useMaxWidth: true,
15136
15137 /**
15138 * | Parameter | Description | Type | Required | Values |
15139 * | ------------ | ----------- | ------- | -------- | ------------------ |
15140 * | c4ShapeInRow | See Notes | Integer | Required | Any Positive Value |
15141 *
15142 * **Notes:** How many shapes to place in each row.
15143 *
15144 * Default value: 4
15145 */
15146 c4ShapeInRow: 4,
15147 nextLinePaddingX: 0,
15148
15149 /**
15150 * | Parameter | Description | Type | Required | Values |
15151 * | --------------- | ----------- | ------- | -------- | ------------------ |
15152 * | c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value |
15153 *
15154 * **Notes:** How many boundarys to place in each row.
15155 *
15156 * Default value: 2
15157 */
15158 c4BoundaryInRow: 2,
15159
15160 /**
15161 * This sets the font size of Person shape for the diagram
15162 *
15163 * **Notes:** Default value: 14.
15164 */
15165 personFontSize: 14,
15166
15167 /**
15168 * This sets the font family of Person shape for the diagram
15169 *
15170 * **Notes:** Default value: "Open Sans", sans-serif.
15171 */
15172 personFontFamily: '"Open Sans", sans-serif',
15173
15174 /**
15175 * This sets the font weight of Person shape for the diagram
15176 *
15177 * **Notes:** Default value: normal.
15178 */
15179 personFontWeight: 'normal',
15180
15181 /**
15182 * This sets the font size of External Person shape for the diagram
15183 *
15184 * **Notes:** Default value: 14.
15185 */
15186 external_personFontSize: 14,
15187
15188 /**
15189 * This sets the font family of External Person shape for the diagram
15190 *
15191 * **Notes:** Default value: "Open Sans", sans-serif.
15192 */
15193 external_personFontFamily: '"Open Sans", sans-serif',
15194
15195 /**
15196 * This sets the font weight of External Person shape for the diagram
15197 *
15198 * **Notes:** Default value: normal.
15199 */
15200 external_personFontWeight: 'normal',
15201
15202 /**
15203 * This sets the font size of System shape for the diagram
15204 *
15205 * **Notes:** Default value: 14.
15206 */
15207 systemFontSize: 14,
15208
15209 /**
15210 * This sets the font family of System shape for the diagram
15211 *
15212 * **Notes:** Default value: "Open Sans", sans-serif.
15213 */
15214 systemFontFamily: '"Open Sans", sans-serif',
15215
15216 /**
15217 * This sets the font weight of System shape for the diagram
15218 *
15219 * **Notes:** Default value: normal.
15220 */
15221 systemFontWeight: 'normal',
15222
15223 /**
15224 * This sets the font size of External System shape for the diagram
15225 *
15226 * **Notes:** Default value: 14.
15227 */
15228 external_systemFontSize: 14,
15229
15230 /**
15231 * This sets the font family of External System shape for the diagram
15232 *
15233 * **Notes:** Default value: "Open Sans", sans-serif.
15234 */
15235 external_systemFontFamily: '"Open Sans", sans-serif',
15236
15237 /**
15238 * This sets the font weight of External System shape for the diagram
15239 *
15240 * **Notes:** Default value: normal.
15241 */
15242 external_systemFontWeight: 'normal',
15243
15244 /**
15245 * This sets the font size of System DB shape for the diagram
15246 *
15247 * **Notes:** Default value: 14.
15248 */
15249 system_dbFontSize: 14,
15250
15251 /**
15252 * This sets the font family of System DB shape for the diagram
15253 *
15254 * **Notes:** Default value: "Open Sans", sans-serif.
15255 */
15256 system_dbFontFamily: '"Open Sans", sans-serif',
15257
15258 /**
15259 * This sets the font weight of System DB shape for the diagram
15260 *
15261 * **Notes:** Default value: normal.
15262 */
15263 system_dbFontWeight: 'normal',
15264
15265 /**
15266 * This sets the font size of External System DB shape for the diagram
15267 *
15268 * **Notes:** Default value: 14.
15269 */
15270 external_system_dbFontSize: 14,
15271
15272 /**
15273 * This sets the font family of External System DB shape for the diagram
15274 *
15275 * **Notes:** Default value: "Open Sans", sans-serif.
15276 */
15277 external_system_dbFontFamily: '"Open Sans", sans-serif',
15278
15279 /**
15280 * This sets the font weight of External System DB shape for the diagram
15281 *
15282 * **Notes:** Default value: normal.
15283 */
15284 external_system_dbFontWeight: 'normal',
15285
15286 /**
15287 * This sets the font size of System Queue shape for the diagram
15288 *
15289 * **Notes:** Default value: 14.
15290 */
15291 system_queueFontSize: 14,
15292
15293 /**
15294 * This sets the font family of System Queue shape for the diagram
15295 *
15296 * **Notes:** Default value: "Open Sans", sans-serif.
15297 */
15298 system_queueFontFamily: '"Open Sans", sans-serif',
15299
15300 /**
15301 * This sets the font weight of System Queue shape for the diagram
15302 *
15303 * **Notes:** Default value: normal.
15304 */
15305 system_queueFontWeight: 'normal',
15306
15307 /**
15308 * This sets the font size of External System Queue shape for the diagram
15309 *
15310 * **Notes:** Default value: 14.
15311 */
15312 external_system_queueFontSize: 14,
15313
15314 /**
15315 * This sets the font family of External System Queue shape for the diagram
15316 *
15317 * **Notes:** Default value: "Open Sans", sans-serif.
15318 */
15319 external_system_queueFontFamily: '"Open Sans", sans-serif',
15320
15321 /**
15322 * This sets the font weight of External System Queue shape for the diagram
15323 *
15324 * **Notes:** Default value: normal.
15325 */
15326 external_system_queueFontWeight: 'normal',
15327
15328 /**
15329 * This sets the font size of Boundary shape for the diagram
15330 *
15331 * **Notes:** Default value: 14.
15332 */
15333 boundaryFontSize: 14,
15334
15335 /**
15336 * This sets the font family of Boundary shape for the diagram
15337 *
15338 * **Notes:** Default value: "Open Sans", sans-serif.
15339 */
15340 boundaryFontFamily: '"Open Sans", sans-serif',
15341
15342 /**
15343 * This sets the font weight of Boundary shape for the diagram
15344 *
15345 * **Notes:** Default value: normal.
15346 */
15347 boundaryFontWeight: 'normal',
15348
15349 /**
15350 * This sets the font size of Message shape for the diagram
15351 *
15352 * **Notes:** Default value: 12.
15353 */
15354 messageFontSize: 12,
15355
15356 /**
15357 * This sets the font family of Message shape for the diagram
15358 *
15359 * **Notes:** Default value: "Open Sans", sans-serif.
15360 */
15361 messageFontFamily: '"Open Sans", sans-serif',
15362
15363 /**
15364 * This sets the font weight of Message shape for the diagram
15365 *
15366 * **Notes:** Default value: normal.
15367 */
15368 messageFontWeight: 'normal',
15369
15370 /**
15371 * This sets the font size of Container shape for the diagram
15372 *
15373 * **Notes:** Default value: 14.
15374 */
15375 containerFontSize: 14,
15376
15377 /**
15378 * This sets the font family of Container shape for the diagram
15379 *
15380 * **Notes:** Default value: "Open Sans", sans-serif.
15381 */
15382 containerFontFamily: '"Open Sans", sans-serif',
15383
15384 /**
15385 * This sets the font weight of Container shape for the diagram
15386 *
15387 * **Notes:** Default value: normal.
15388 */
15389 containerFontWeight: 'normal',
15390
15391 /**
15392 * This sets the font size of External Container shape for the diagram
15393 *
15394 * **Notes:** Default value: 14.
15395 */
15396 external_containerFontSize: 14,
15397
15398 /**
15399 * This sets the font family of External Container shape for the diagram
15400 *
15401 * **Notes:** Default value: "Open Sans", sans-serif.
15402 */
15403 external_containerFontFamily: '"Open Sans", sans-serif',
15404
15405 /**
15406 * This sets the font weight of External Container shape for the diagram
15407 *
15408 * **Notes:** Default value: normal.
15409 */
15410 external_containerFontWeight: 'normal',
15411
15412 /**
15413 * This sets the font size of Container DB shape for the diagram
15414 *
15415 * **Notes:** Default value: 14.
15416 */
15417 container_dbFontSize: 14,
15418
15419 /**
15420 * This sets the font family of Container DB shape for the diagram
15421 *
15422 * **Notes:** Default value: "Open Sans", sans-serif.
15423 */
15424 container_dbFontFamily: '"Open Sans", sans-serif',
15425
15426 /**
15427 * This sets the font weight of Container DB shape for the diagram
15428 *
15429 * **Notes:** Default value: normal.
15430 */
15431 container_dbFontWeight: 'normal',
15432
15433 /**
15434 * This sets the font size of External Container DB shape for the diagram
15435 *
15436 * **Notes:** Default value: 14.
15437 */
15438 external_container_dbFontSize: 14,
15439
15440 /**
15441 * This sets the font family of External Container DB shape for the diagram
15442 *
15443 * **Notes:** Default value: "Open Sans", sans-serif.
15444 */
15445 external_container_dbFontFamily: '"Open Sans", sans-serif',
15446
15447 /**
15448 * This sets the font weight of External Container DB shape for the diagram
15449 *
15450 * **Notes:** Default value: normal.
15451 */
15452 external_container_dbFontWeight: 'normal',
15453
15454 /**
15455 * This sets the font size of Container Queue shape for the diagram
15456 *
15457 * **Notes:** Default value: 14.
15458 */
15459 container_queueFontSize: 14,
15460
15461 /**
15462 * This sets the font family of Container Queue shape for the diagram
15463 *
15464 * **Notes:** Default value: "Open Sans", sans-serif.
15465 */
15466 container_queueFontFamily: '"Open Sans", sans-serif',
15467
15468 /**
15469 * This sets the font weight of Container Queue shape for the diagram
15470 *
15471 * **Notes:** Default value: normal.
15472 */
15473 container_queueFontWeight: 'normal',
15474
15475 /**
15476 * This sets the font size of External Container Queue shape for the diagram
15477 *
15478 * **Notes:** Default value: 14.
15479 */
15480 external_container_queueFontSize: 14,
15481
15482 /**
15483 * This sets the font family of External Container Queue shape for the diagram
15484 *
15485 * **Notes:** Default value: "Open Sans", sans-serif.
15486 */
15487 external_container_queueFontFamily: '"Open Sans", sans-serif',
15488
15489 /**
15490 * This sets the font weight of External Container Queue shape for the diagram
15491 *
15492 * **Notes:** Default value: normal.
15493 */
15494 external_container_queueFontWeight: 'normal',
15495
15496 /**
15497 * This sets the font size of Component shape for the diagram
15498 *
15499 * **Notes:** Default value: 14.
15500 */
15501 componentFontSize: 14,
15502
15503 /**
15504 * This sets the font family of Component shape for the diagram
15505 *
15506 * **Notes:** Default value: "Open Sans", sans-serif.
15507 */
15508 componentFontFamily: '"Open Sans", sans-serif',
15509
15510 /**
15511 * This sets the font weight of Component shape for the diagram
15512 *
15513 * **Notes:** Default value: normal.
15514 */
15515 componentFontWeight: 'normal',
15516
15517 /**
15518 * This sets the font size of External Component shape for the diagram
15519 *
15520 * **Notes:** Default value: 14.
15521 */
15522 external_componentFontSize: 14,
15523
15524 /**
15525 * This sets the font family of External Component shape for the diagram
15526 *
15527 * **Notes:** Default value: "Open Sans", sans-serif.
15528 */
15529 external_componentFontFamily: '"Open Sans", sans-serif',
15530
15531 /**
15532 * This sets the font weight of External Component shape for the diagram
15533 *
15534 * **Notes:** Default value: normal.
15535 */
15536 external_componentFontWeight: 'normal',
15537
15538 /**
15539 * This sets the font size of Component DB shape for the diagram
15540 *
15541 * **Notes:** Default value: 14.
15542 */
15543 component_dbFontSize: 14,
15544
15545 /**
15546 * This sets the font family of Component DB shape for the diagram
15547 *
15548 * **Notes:** Default value: "Open Sans", sans-serif.
15549 */
15550 component_dbFontFamily: '"Open Sans", sans-serif',
15551
15552 /**
15553 * This sets the font weight of Component DB shape for the diagram
15554 *
15555 * **Notes:** Default value: normal.
15556 */
15557 component_dbFontWeight: 'normal',
15558
15559 /**
15560 * This sets the font size of External Component DB shape for the diagram
15561 *
15562 * **Notes:** Default value: 14.
15563 */
15564 external_component_dbFontSize: 14,
15565
15566 /**
15567 * This sets the font family of External Component DB shape for the diagram
15568 *
15569 * **Notes:** Default value: "Open Sans", sans-serif.
15570 */
15571 external_component_dbFontFamily: '"Open Sans", sans-serif',
15572
15573 /**
15574 * This sets the font weight of External Component DB shape for the diagram
15575 *
15576 * **Notes:** Default value: normal.
15577 */
15578 external_component_dbFontWeight: 'normal',
15579
15580 /**
15581 * This sets the font size of Component Queue shape for the diagram
15582 *
15583 * **Notes:** Default value: 14.
15584 */
15585 component_queueFontSize: 14,
15586
15587 /**
15588 * This sets the font family of Component Queue shape for the diagram
15589 *
15590 * **Notes:** Default value: "Open Sans", sans-serif.
15591 */
15592 component_queueFontFamily: '"Open Sans", sans-serif',
15593
15594 /**
15595 * This sets the font weight of Component Queue shape for the diagram
15596 *
15597 * **Notes:** Default value: normal.
15598 */
15599 component_queueFontWeight: 'normal',
15600
15601 /**
15602 * This sets the font size of External Component Queue shape for the diagram
15603 *
15604 * **Notes:** Default value: 14.
15605 */
15606 external_component_queueFontSize: 14,
15607
15608 /**
15609 * This sets the font family of External Component Queue shape for the diagram
15610 *
15611 * **Notes:** Default value: "Open Sans", sans-serif.
15612 */
15613 external_component_queueFontFamily: '"Open Sans", sans-serif',
15614
15615 /**
15616 * This sets the font weight of External Component Queue shape for the diagram
15617 *
15618 * **Notes:** Default value: normal.
15619 */
15620 external_component_queueFontWeight: 'normal',
15621
15622 /**
15623 * This sets the auto-wrap state for the diagram
15624 *
15625 * **Notes:** Default value: true.
15626 */
15627 wrap: true,
15628
15629 /**
15630 * This sets the auto-wrap padding for the diagram (sides only)
15631 *
15632 * **Notes:** Default value: 0.
15633 */
15634 wrapPadding: 10,
15635 personFont: function personFont() {
15636 return {
15637 fontFamily: this.personFontFamily,
15638 fontSize: this.personFontSize,
15639 fontWeight: this.personFontWeight
15640 };
15641 },
15642 external_personFont: function external_personFont() {
15643 return {
15644 fontFamily: this.external_personFontFamily,
15645 fontSize: this.external_personFontSize,
15646 fontWeight: this.external_personFontWeight
15647 };
15648 },
15649 systemFont: function systemFont() {
15650 return {
15651 fontFamily: this.systemFontFamily,
15652 fontSize: this.systemFontSize,
15653 fontWeight: this.systemFontWeight
15654 };
15655 },
15656 external_systemFont: function external_systemFont() {
15657 return {
15658 fontFamily: this.external_systemFontFamily,
15659 fontSize: this.external_systemFontSize,
15660 fontWeight: this.external_systemFontWeight
15661 };
15662 },
15663 system_dbFont: function system_dbFont() {
15664 return {
15665 fontFamily: this.system_dbFontFamily,
15666 fontSize: this.system_dbFontSize,
15667 fontWeight: this.system_dbFontWeight
15668 };
15669 },
15670 external_system_dbFont: function external_system_dbFont() {
15671 return {
15672 fontFamily: this.external_system_dbFontFamily,
15673 fontSize: this.external_system_dbFontSize,
15674 fontWeight: this.external_system_dbFontWeight
15675 };
15676 },
15677 system_queueFont: function system_queueFont() {
15678 return {
15679 fontFamily: this.system_queueFontFamily,
15680 fontSize: this.system_queueFontSize,
15681 fontWeight: this.system_queueFontWeight
15682 };
15683 },
15684 external_system_queueFont: function external_system_queueFont() {
15685 return {
15686 fontFamily: this.external_system_queueFontFamily,
15687 fontSize: this.external_system_queueFontSize,
15688 fontWeight: this.external_system_queueFontWeight
15689 };
15690 },
15691 containerFont: function containerFont() {
15692 return {
15693 fontFamily: this.containerFontFamily,
15694 fontSize: this.containerFontSize,
15695 fontWeight: this.containerFontWeight
15696 };
15697 },
15698 external_containerFont: function external_containerFont() {
15699 return {
15700 fontFamily: this.external_containerFontFamily,
15701 fontSize: this.external_containerFontSize,
15702 fontWeight: this.external_containerFontWeight
15703 };
15704 },
15705 container_dbFont: function container_dbFont() {
15706 return {
15707 fontFamily: this.container_dbFontFamily,
15708 fontSize: this.container_dbFontSize,
15709 fontWeight: this.container_dbFontWeight
15710 };
15711 },
15712 external_container_dbFont: function external_container_dbFont() {
15713 return {
15714 fontFamily: this.external_container_dbFontFamily,
15715 fontSize: this.external_container_dbFontSize,
15716 fontWeight: this.external_container_dbFontWeight
15717 };
15718 },
15719 container_queueFont: function container_queueFont() {
15720 return {
15721 fontFamily: this.container_queueFontFamily,
15722 fontSize: this.container_queueFontSize,
15723 fontWeight: this.container_queueFontWeight
15724 };
15725 },
15726 external_container_queueFont: function external_container_queueFont() {
15727 return {
15728 fontFamily: this.external_container_queueFontFamily,
15729 fontSize: this.external_container_queueFontSize,
15730 fontWeight: this.external_container_queueFontWeight
15731 };
15732 },
15733 componentFont: function componentFont() {
15734 return {
15735 fontFamily: this.componentFontFamily,
15736 fontSize: this.componentFontSize,
15737 fontWeight: this.componentFontWeight
15738 };
15739 },
15740 external_componentFont: function external_componentFont() {
15741 return {
15742 fontFamily: this.external_componentFontFamily,
15743 fontSize: this.external_componentFontSize,
15744 fontWeight: this.external_componentFontWeight
15745 };
15746 },
15747 component_dbFont: function component_dbFont() {
15748 return {
15749 fontFamily: this.component_dbFontFamily,
15750 fontSize: this.component_dbFontSize,
15751 fontWeight: this.component_dbFontWeight
15752 };
15753 },
15754 external_component_dbFont: function external_component_dbFont() {
15755 return {
15756 fontFamily: this.external_component_dbFontFamily,
15757 fontSize: this.external_component_dbFontSize,
15758 fontWeight: this.external_component_dbFontWeight
15759 };
15760 },
15761 component_queueFont: function component_queueFont() {
15762 return {
15763 fontFamily: this.component_queueFontFamily,
15764 fontSize: this.component_queueFontSize,
15765 fontWeight: this.component_queueFontWeight
15766 };
15767 },
15768 external_component_queueFont: function external_component_queueFont() {
15769 return {
15770 fontFamily: this.external_component_queueFontFamily,
15771 fontSize: this.external_component_queueFontSize,
15772 fontWeight: this.external_component_queueFontWeight
15773 };
15774 },
15775 boundaryFont: function boundaryFont() {
15776 return {
15777 fontFamily: this.boundaryFontFamily,
15778 fontSize: this.boundaryFontSize,
15779 fontWeight: this.boundaryFontWeight
15780 };
15781 },
15782 messageFont: function messageFont() {
15783 return {
15784 fontFamily: this.messageFontFamily,
15785 fontSize: this.messageFontSize,
15786 fontWeight: this.messageFontWeight
15787 };
15788 },
15789 // ' Colors
15790 // ' ##################################
15791 person_bg_color: '#08427B',
15792 person_border_color: '#073B6F',
15793 external_person_bg_color: '#686868',
15794 external_person_border_color: '#8A8A8A',
15795 system_bg_color: '#1168BD',
15796 system_border_color: '#3C7FC0',
15797 system_db_bg_color: '#1168BD',
15798 system_db_border_color: '#3C7FC0',
15799 system_queue_bg_color: '#1168BD',
15800 system_queue_border_color: '#3C7FC0',
15801 external_system_bg_color: '#999999',
15802 external_system_border_color: '#8A8A8A',
15803 external_system_db_bg_color: '#999999',
15804 external_system_db_border_color: '#8A8A8A',
15805 external_system_queue_bg_color: '#999999',
15806 external_system_queue_border_color: '#8A8A8A',
15807 container_bg_color: '#438DD5',
15808 container_border_color: '#3C7FC0',
15809 container_db_bg_color: '#438DD5',
15810 container_db_border_color: '#3C7FC0',
15811 container_queue_bg_color: '#438DD5',
15812 container_queue_border_color: '#3C7FC0',
15813 external_container_bg_color: '#B3B3B3',
15814 external_container_border_color: '#A6A6A6',
15815 external_container_db_bg_color: '#B3B3B3',
15816 external_container_db_border_color: '#A6A6A6',
15817 external_container_queue_bg_color: '#B3B3B3',
15818 external_container_queue_border_color: '#A6A6A6',
15819 component_bg_color: '#85BBF0',
15820 component_border_color: '#78A8D8',
15821 component_db_bg_color: '#85BBF0',
15822 component_db_border_color: '#78A8D8',
15823 component_queue_bg_color: '#85BBF0',
15824 component_queue_border_color: '#78A8D8',
15825 external_component_bg_color: '#CCCCCC',
15826 external_component_border_color: '#BFBFBF',
15827 external_component_db_bg_color: '#CCCCCC',
15828 external_component_db_border_color: '#BFBFBF',
15829 external_component_queue_bg_color: '#CCCCCC',
15830 external_component_queue_border_color: '#BFBFBF'
15831 }
15832};
15833config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
15834config.gitGraph.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
15835
15836var keyify = function keyify(obj) {
15837 var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
15838 return Object.keys(obj).reduce(function (res, el) {
15839 if (Array.isArray(obj[el])) {
15840 return res;
15841 } else if (_typeof(obj[el]) === 'object' && obj[el] !== null) {
15842 return [].concat(_toConsumableArray(res), [prefix + el], _toConsumableArray(keyify(obj[el], '')));
15843 }
15844
15845 return [].concat(_toConsumableArray(res), [prefix + el]);
15846 }, []);
15847};
15848
15849var configKeys = keyify(config, '');
15850/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (config);
15851
15852/***/ }),
15853
15854/***/ "./src/diagram-api/detectType.js":
15855/*!***************************************!*\
15856 !*** ./src/diagram-api/detectType.js ***!
15857 \***************************************/
15858/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
15859
15860"use strict";
15861__webpack_require__.r(__webpack_exports__);
15862/* harmony export */ __webpack_require__.d(__webpack_exports__, {
15863/* harmony export */ "addDetector": () => (/* binding */ addDetector),
15864/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
15865/* harmony export */ });
15866var directive = /[%]{2}[{]\s*(?:(?:(\w+)\s*:|(\w+))\s*(?:(?:(\w+))|((?:(?![}][%]{2}).|\r?\n)*))?\s*)(?:[}][%]{2})?/gi;
15867var anyComment = /\s*%%.*\n/gm;
15868var detectors = {};
15869/**
15870 * @function detectType Detects the type of the graph text. Takes into consideration the possible
15871 * existence of an %%init directive
15872 *
15873 * ```mermaid
15874 * %%{initialize: {"startOnLoad": true, logLevel: "fatal" }}%%
15875 * graph LR
15876 * a-->b
15877 * b-->c
15878 * c-->d
15879 * d-->e
15880 * e-->f
15881 * f-->g
15882 * g-->h
15883 * ```
15884 * @param {string} text The text defining the graph
15885 * @param {{
15886 * class: { defaultRenderer: string } | undefined;
15887 * state: { defaultRenderer: string } | undefined;
15888 * flowchart: { defaultRenderer: string } | undefined;
15889 * }} [cnf]
15890 * @returns {string} A graph definition key
15891 */
15892
15893var detectType = function detectType(text, cnf) {
15894 text = text.replace(directive, '').replace(anyComment, '\n');
15895
15896 if (text.match(/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/)) {
15897 return 'c4';
15898 }
15899
15900 if (text.match(/^\s*sequenceDiagram/)) {
15901 return 'sequence';
15902 }
15903
15904 if (text.match(/^\s*gantt/)) {
15905 return 'gantt';
15906 }
15907
15908 if (text.match(/^\s*classDiagram-v2/)) {
15909 return 'classDiagram';
15910 }
15911
15912 if (text.match(/^\s*classDiagram/)) {
15913 if (cnf && cnf.class && cnf.class.defaultRenderer === 'dagre-wrapper') return 'classDiagram';
15914 return 'class';
15915 }
15916
15917 if (text.match(/^\s*stateDiagram-v2/)) {
15918 return 'stateDiagram';
15919 }
15920
15921 if (text.match(/^\s*stateDiagram/)) {
15922 if (cnf && cnf.class && cnf.state.defaultRenderer === 'dagre-wrapper') return 'stateDiagram';
15923 return 'state';
15924 } // if (text.match(/^\s*gitGraph/)) {
15925 // return 'gitGraph';
15926 // }
15927
15928
15929 if (text.match(/^\s*flowchart/)) {
15930 return 'flowchart-v2';
15931 }
15932
15933 if (text.match(/^\s*info/)) {
15934 return 'info';
15935 }
15936
15937 if (text.match(/^\s*pie/)) {
15938 return 'pie';
15939 }
15940
15941 if (text.match(/^\s*erDiagram/)) {
15942 return 'er';
15943 }
15944
15945 if (text.match(/^\s*journey/)) {
15946 return 'journey';
15947 }
15948
15949 if (text.match(/^\s*requirement/) || text.match(/^\s*requirementDiagram/)) {
15950 return 'requirement';
15951 }
15952
15953 if (cnf && cnf.flowchart && cnf.flowchart.defaultRenderer === 'dagre-wrapper') return 'flowchart-v2';
15954 var k = Object.keys(detectors);
15955
15956 for (var i = 0; i < k.length; i++) {
15957 var key = k[i];
15958 var dia = detectors[key];
15959
15960 if (dia && dia.detector(text)) {
15961 return key;
15962 }
15963 }
15964
15965 return 'flowchart';
15966};
15967
15968var addDetector = function addDetector(key, detector) {
15969 detectors[key] = {
15970 detector: detector
15971 };
15972};
15973/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (detectType);
15974
15975/***/ }),
15976
15977/***/ "./src/diagram-api/diagram-orchestration.js":
15978/*!**************************************************!*\
15979 !*** ./src/diagram-api/diagram-orchestration.js ***!
15980 \**************************************************/
15981/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
15982
15983"use strict";
15984__webpack_require__.r(__webpack_exports__);
15985/* harmony export */ __webpack_require__.d(__webpack_exports__, {
15986/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
15987/* harmony export */ });
15988/* harmony import */ var _diagramAPI_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./diagramAPI.js */ "./src/diagram-api/diagramAPI.js");
15989/* harmony import */ var _diagrams_git_gitGraphAst__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../diagrams/git/gitGraphAst */ "./src/diagrams/git/gitGraphAst.js");
15990/* harmony import */ var _diagrams_git_gitGraphRenderer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../diagrams/git/gitGraphRenderer */ "./src/diagrams/git/gitGraphRenderer.js");
15991/* harmony import */ var _diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../diagrams/git/parser/gitGraph */ "./src/diagrams/git/parser/gitGraph.jison");
15992/* harmony import */ var _diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_1__);
15993/* harmony import */ var _diagrams_git_gitGraphDetector__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../diagrams/git/gitGraphDetector */ "./src/diagrams/git/gitGraphDetector.js");
15994 // import mindmapDb from '../diagrams/mindmap/mindmapDb';
15995// import mindmapRenderer from '../diagrams/mindmap/mindmapRenderer';
15996// import mindmapParser from '../diagrams/mindmap/parser/mindmapDiagram';
15997// import mindmapDetector from '../diagrams/mindmap/mindmapDetector';
15998
15999
16000
16001
16002 // Register mindmap and other built-in diagrams
16003// registerDiagram(
16004// 'mindmap',
16005// mindmapParser,
16006// mindmapDb,
16007// mindmapRenderer,
16008// undefined,
16009// mindmapRenderer,
16010// mindmapDetector
16011// );
16012
16013var addDiagrams = function addDiagrams() {
16014 (0,_diagramAPI_js__WEBPACK_IMPORTED_MODULE_0__.registerDiagram)('gitGraph', (_diagrams_git_parser_gitGraph__WEBPACK_IMPORTED_MODULE_1___default()), _diagrams_git_gitGraphAst__WEBPACK_IMPORTED_MODULE_2__["default"], _diagrams_git_gitGraphRenderer__WEBPACK_IMPORTED_MODULE_3__["default"], undefined, _diagrams_git_gitGraphDetector__WEBPACK_IMPORTED_MODULE_4__["default"]);
16015};
16016
16017/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addDiagrams);
16018
16019/***/ }),
16020
16021/***/ "./src/diagram-api/diagramAPI.js":
16022/*!***************************************!*\
16023 !*** ./src/diagram-api/diagramAPI.js ***!
16024 \***************************************/
16025/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
16026
16027"use strict";
16028__webpack_require__.r(__webpack_exports__);
16029/* harmony export */ __webpack_require__.d(__webpack_exports__, {
16030/* harmony export */ "getDiagrams": () => (/* binding */ getDiagrams),
16031/* harmony export */ "registerDiagram": () => (/* binding */ registerDiagram)
16032/* harmony export */ });
16033/* harmony import */ var _diagrams_c4_c4Db__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../diagrams/c4/c4Db */ "./src/diagrams/c4/c4Db.js");
16034/* harmony import */ var _diagrams_c4_c4Renderer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../diagrams/c4/c4Renderer */ "./src/diagrams/c4/c4Renderer.js");
16035/* harmony import */ var _diagrams_c4_parser_c4Diagram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../diagrams/c4/parser/c4Diagram */ "./src/diagrams/c4/parser/c4Diagram.jison");
16036/* harmony import */ var _diagrams_c4_parser_c4Diagram__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_diagrams_c4_parser_c4Diagram__WEBPACK_IMPORTED_MODULE_2__);
16037/* harmony import */ var _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../diagrams/class/classDb */ "./src/diagrams/class/classDb.js");
16038/* harmony import */ var _diagrams_class_classRenderer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../diagrams/class/classRenderer */ "./src/diagrams/class/classRenderer.js");
16039/* harmony import */ var _diagrams_class_classRenderer_v2__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../diagrams/class/classRenderer-v2 */ "./src/diagrams/class/classRenderer-v2.js");
16040/* harmony import */ var _diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../diagrams/class/parser/classDiagram */ "./src/diagrams/class/parser/classDiagram.jison");
16041/* harmony import */ var _diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_5__);
16042/* harmony import */ var _diagrams_er_erDb__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../diagrams/er/erDb */ "./src/diagrams/er/erDb.js");
16043/* harmony import */ var _diagrams_er_erRenderer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../diagrams/er/erRenderer */ "./src/diagrams/er/erRenderer.js");
16044/* harmony import */ var _diagrams_er_parser_erDiagram__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../diagrams/er/parser/erDiagram */ "./src/diagrams/er/parser/erDiagram.jison");
16045/* harmony import */ var _diagrams_er_parser_erDiagram__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_diagrams_er_parser_erDiagram__WEBPACK_IMPORTED_MODULE_9__);
16046/* harmony import */ var _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../diagrams/flowchart/flowDb */ "./src/diagrams/flowchart/flowDb.js");
16047/* harmony import */ var _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../diagrams/flowchart/flowRenderer */ "./src/diagrams/flowchart/flowRenderer.js");
16048/* harmony import */ var _diagrams_flowchart_flowRenderer_v2__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../diagrams/flowchart/flowRenderer-v2 */ "./src/diagrams/flowchart/flowRenderer-v2.js");
16049/* harmony import */ var _diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../diagrams/flowchart/parser/flow */ "./src/diagrams/flowchart/parser/flow.jison");
16050/* harmony import */ var _diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_12__);
16051/* harmony import */ var _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../diagrams/gantt/ganttDb */ "./src/diagrams/gantt/ganttDb.js");
16052/* harmony import */ var _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../diagrams/gantt/ganttRenderer */ "./src/diagrams/gantt/ganttRenderer.js");
16053/* harmony import */ var _diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../diagrams/gantt/parser/gantt */ "./src/diagrams/gantt/parser/gantt.jison");
16054/* harmony import */ var _diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_16__);
16055/* harmony import */ var _diagrams_info_infoDb__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../diagrams/info/infoDb */ "./src/diagrams/info/infoDb.js");
16056/* harmony import */ var _diagrams_info_infoRenderer__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../diagrams/info/infoRenderer */ "./src/diagrams/info/infoRenderer.js");
16057/* harmony import */ var _diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../diagrams/info/parser/info */ "./src/diagrams/info/parser/info.jison");
16058/* harmony import */ var _diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_19__);
16059/* harmony import */ var _diagrams_pie_parser_pie__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../diagrams/pie/parser/pie */ "./src/diagrams/pie/parser/pie.jison");
16060/* harmony import */ var _diagrams_pie_parser_pie__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_diagrams_pie_parser_pie__WEBPACK_IMPORTED_MODULE_22__);
16061/* harmony import */ var _diagrams_pie_pieDb__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../diagrams/pie/pieDb */ "./src/diagrams/pie/pieDb.js");
16062/* harmony import */ var _diagrams_pie_pieRenderer__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../diagrams/pie/pieRenderer */ "./src/diagrams/pie/pieRenderer.js");
16063/* harmony import */ var _diagrams_requirement_parser_requirementDiagram__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../diagrams/requirement/parser/requirementDiagram */ "./src/diagrams/requirement/parser/requirementDiagram.jison");
16064/* harmony import */ var _diagrams_requirement_parser_requirementDiagram__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(_diagrams_requirement_parser_requirementDiagram__WEBPACK_IMPORTED_MODULE_25__);
16065/* harmony import */ var _diagrams_requirement_requirementDb__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../diagrams/requirement/requirementDb */ "./src/diagrams/requirement/requirementDb.js");
16066/* harmony import */ var _diagrams_requirement_requirementRenderer__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../diagrams/requirement/requirementRenderer */ "./src/diagrams/requirement/requirementRenderer.js");
16067/* harmony import */ var _diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../diagrams/sequence/parser/sequenceDiagram */ "./src/diagrams/sequence/parser/sequenceDiagram.jison");
16068/* harmony import */ var _diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(_diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_28__);
16069/* harmony import */ var _diagrams_sequence_sequenceDb__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../diagrams/sequence/sequenceDb */ "./src/diagrams/sequence/sequenceDb.js");
16070/* harmony import */ var _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../diagrams/sequence/sequenceRenderer */ "./src/diagrams/sequence/sequenceRenderer.js");
16071/* harmony import */ var _diagrams_state_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../diagrams/state/parser/stateDiagram */ "./src/diagrams/state/parser/stateDiagram.jison");
16072/* harmony import */ var _diagrams_state_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_31___default = /*#__PURE__*/__webpack_require__.n(_diagrams_state_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_31__);
16073/* harmony import */ var _diagrams_state_stateDb__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../diagrams/state/stateDb */ "./src/diagrams/state/stateDb.js");
16074/* harmony import */ var _diagrams_state_stateRenderer__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../diagrams/state/stateRenderer */ "./src/diagrams/state/stateRenderer.js");
16075/* harmony import */ var _diagrams_state_stateRenderer_v2__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../diagrams/state/stateRenderer-v2 */ "./src/diagrams/state/stateRenderer-v2.js");
16076/* harmony import */ var _diagrams_user_journey_journeyDb__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../diagrams/user-journey/journeyDb */ "./src/diagrams/user-journey/journeyDb.js");
16077/* harmony import */ var _diagrams_user_journey_journeyRenderer__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ../diagrams/user-journey/journeyRenderer */ "./src/diagrams/user-journey/journeyRenderer.js");
16078/* harmony import */ var _diagrams_user_journey_parser_journey__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ../diagrams/user-journey/parser/journey */ "./src/diagrams/user-journey/parser/journey.jison");
16079/* harmony import */ var _diagrams_user_journey_parser_journey__WEBPACK_IMPORTED_MODULE_35___default = /*#__PURE__*/__webpack_require__.n(_diagrams_user_journey_parser_journey__WEBPACK_IMPORTED_MODULE_35__);
16080/* harmony import */ var _detectType__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./detectType */ "./src/diagram-api/detectType.js");
16081
16082
16083
16084
16085
16086
16087
16088
16089
16090
16091
16092
16093
16094
16095
16096
16097
16098
16099
16100
16101
16102
16103
16104
16105
16106
16107
16108
16109
16110
16111
16112
16113
16114
16115
16116
16117
16118var diagrams = {
16119 c4: {
16120 db: _diagrams_c4_c4Db__WEBPACK_IMPORTED_MODULE_0__["default"],
16121 renderer: _diagrams_c4_c4Renderer__WEBPACK_IMPORTED_MODULE_1__["default"],
16122 parser: (_diagrams_c4_parser_c4Diagram__WEBPACK_IMPORTED_MODULE_2___default()),
16123 init: function init(cnf) {
16124 _diagrams_c4_c4Renderer__WEBPACK_IMPORTED_MODULE_1__["default"].setConf(cnf.c4);
16125 }
16126 },
16127 class: {
16128 db: _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_3__["default"],
16129 renderer: _diagrams_class_classRenderer__WEBPACK_IMPORTED_MODULE_4__["default"],
16130 parser: (_diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_5___default()),
16131 init: function init(cnf) {
16132 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
16133 _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_3__["default"].clear();
16134 }
16135 },
16136 classDiagram: {
16137 db: _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_3__["default"],
16138 renderer: _diagrams_class_classRenderer_v2__WEBPACK_IMPORTED_MODULE_6__["default"],
16139 parser: (_diagrams_class_parser_classDiagram__WEBPACK_IMPORTED_MODULE_5___default()),
16140 init: function init(cnf) {
16141 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
16142 _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_3__["default"].clear();
16143 }
16144 },
16145 er: {
16146 db: _diagrams_er_erDb__WEBPACK_IMPORTED_MODULE_7__["default"],
16147 renderer: _diagrams_er_erRenderer__WEBPACK_IMPORTED_MODULE_8__["default"],
16148 parser: (_diagrams_er_parser_erDiagram__WEBPACK_IMPORTED_MODULE_9___default())
16149 },
16150 flowchart: {
16151 db: _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_10__["default"],
16152 renderer: _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_11__["default"],
16153 parser: (_diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_12___default()),
16154 init: function init(cnf) {
16155 _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_11__["default"].setConf(cnf.flowchart);
16156 cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
16157 _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_10__["default"].clear();
16158 _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_10__["default"].setGen('gen-1');
16159 }
16160 },
16161 'flowchart-v2': {
16162 db: _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_10__["default"],
16163 renderer: _diagrams_flowchart_flowRenderer_v2__WEBPACK_IMPORTED_MODULE_13__["default"],
16164 parser: (_diagrams_flowchart_parser_flow__WEBPACK_IMPORTED_MODULE_12___default()),
16165 init: function init(cnf) {
16166 _diagrams_flowchart_flowRenderer_v2__WEBPACK_IMPORTED_MODULE_13__["default"].setConf(cnf.flowchart);
16167 cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
16168 _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_10__["default"].clear();
16169 _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_10__["default"].setGen('gen-2');
16170 }
16171 },
16172 gantt: {
16173 db: _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__["default"],
16174 renderer: _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_15__["default"],
16175 parser: (_diagrams_gantt_parser_gantt__WEBPACK_IMPORTED_MODULE_16___default()),
16176 init: function init(cnf) {
16177 _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_15__["default"].setConf(cnf.gantt);
16178 }
16179 },
16180 // git: {
16181 // db: gitGraphAst,
16182 // renderer: gitGraphRenderer,
16183 // parser: gitGraphParser,
16184 // },
16185 info: {
16186 db: _diagrams_info_infoDb__WEBPACK_IMPORTED_MODULE_17__["default"],
16187 renderer: _diagrams_info_infoRenderer__WEBPACK_IMPORTED_MODULE_18__["default"],
16188 parser: (_diagrams_info_parser_info__WEBPACK_IMPORTED_MODULE_19___default())
16189 },
16190 pie: {
16191 db: _diagrams_pie_pieDb__WEBPACK_IMPORTED_MODULE_20__["default"],
16192 renderer: _diagrams_pie_pieRenderer__WEBPACK_IMPORTED_MODULE_21__["default"],
16193 parser: (_diagrams_pie_parser_pie__WEBPACK_IMPORTED_MODULE_22___default())
16194 },
16195 requirement: {
16196 db: _diagrams_requirement_requirementDb__WEBPACK_IMPORTED_MODULE_23__["default"],
16197 renderer: _diagrams_requirement_requirementRenderer__WEBPACK_IMPORTED_MODULE_24__["default"],
16198 parser: (_diagrams_requirement_parser_requirementDiagram__WEBPACK_IMPORTED_MODULE_25___default())
16199 },
16200 sequence: {
16201 db: _diagrams_sequence_sequenceDb__WEBPACK_IMPORTED_MODULE_26__["default"],
16202 renderer: _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_27__["default"],
16203 parser: (_diagrams_sequence_parser_sequenceDiagram__WEBPACK_IMPORTED_MODULE_28___default()),
16204 init: function init(cnf) {
16205 cnf.sequence.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
16206
16207 if (cnf.sequenceDiagram) {
16208 // backwards compatibility
16209 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_27__["default"].setConf(Object.assign(cnf.sequence, cnf.sequenceDiagram));
16210 console.error('`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.');
16211 }
16212
16213 _diagrams_sequence_sequenceDb__WEBPACK_IMPORTED_MODULE_26__["default"].setWrap(cnf.wrap);
16214 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_27__["default"].setConf(cnf.sequence);
16215 }
16216 },
16217 state: {
16218 db: _diagrams_state_stateDb__WEBPACK_IMPORTED_MODULE_29__["default"],
16219 renderer: _diagrams_state_stateRenderer__WEBPACK_IMPORTED_MODULE_30__["default"],
16220 parser: (_diagrams_state_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_31___default()),
16221 init: function init(cnf) {
16222 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
16223 _diagrams_state_stateDb__WEBPACK_IMPORTED_MODULE_29__["default"].clear();
16224 }
16225 },
16226 stateDiagram: {
16227 db: _diagrams_state_stateDb__WEBPACK_IMPORTED_MODULE_29__["default"],
16228 renderer: _diagrams_state_stateRenderer_v2__WEBPACK_IMPORTED_MODULE_32__["default"],
16229 parser: (_diagrams_state_parser_stateDiagram__WEBPACK_IMPORTED_MODULE_31___default()),
16230 init: function init(cnf) {
16231 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
16232 _diagrams_state_stateDb__WEBPACK_IMPORTED_MODULE_29__["default"].clear();
16233 }
16234 },
16235 journey: {
16236 db: _diagrams_user_journey_journeyDb__WEBPACK_IMPORTED_MODULE_33__["default"],
16237 renderer: _diagrams_user_journey_journeyRenderer__WEBPACK_IMPORTED_MODULE_34__["default"],
16238 parser: (_diagrams_user_journey_parser_journey__WEBPACK_IMPORTED_MODULE_35___default()),
16239 init: function init(cnf) {
16240 _diagrams_user_journey_journeyRenderer__WEBPACK_IMPORTED_MODULE_34__["default"].setConf(cnf.journey);
16241 _diagrams_user_journey_journeyDb__WEBPACK_IMPORTED_MODULE_33__["default"].clear();
16242 }
16243 }
16244}; // console.log(sequenceDb);
16245
16246var registerDiagram = function registerDiagram(id, parser, db, renderer, init, detector) {
16247 diagrams[id] = {
16248 parser: parser,
16249 db: db,
16250 renderer: renderer,
16251 init: init
16252 };
16253 (0,_detectType__WEBPACK_IMPORTED_MODULE_36__.addDetector)(id, detector);
16254};
16255var getDiagrams = function getDiagrams() {
16256 // console.log('diagrams', diagrams);
16257 return diagrams;
16258};
16259
16260/***/ }),
16261
16262/***/ "./src/diagrams/c4/c4Db.js":
16263/*!*********************************!*\
16264 !*** ./src/diagrams/c4/c4Db.js ***!
16265 \*********************************/
16266/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
16267
16268"use strict";
16269__webpack_require__.r(__webpack_exports__);
16270/* harmony export */ __webpack_require__.d(__webpack_exports__, {
16271/* harmony export */ "ARROWTYPE": () => (/* binding */ ARROWTYPE),
16272/* harmony export */ "LINETYPE": () => (/* binding */ LINETYPE),
16273/* harmony export */ "PLACEMENT": () => (/* binding */ PLACEMENT),
16274/* harmony export */ "addComponent": () => (/* binding */ addComponent),
16275/* harmony export */ "addContainer": () => (/* binding */ addContainer),
16276/* harmony export */ "addContainerBoundary": () => (/* binding */ addContainerBoundary),
16277/* harmony export */ "addDeploymentNode": () => (/* binding */ addDeploymentNode),
16278/* harmony export */ "addPersonOrSystem": () => (/* binding */ addPersonOrSystem),
16279/* harmony export */ "addPersonOrSystemBoundary": () => (/* binding */ addPersonOrSystemBoundary),
16280/* harmony export */ "addRel": () => (/* binding */ addRel),
16281/* harmony export */ "autoWrap": () => (/* binding */ autoWrap),
16282/* harmony export */ "clear": () => (/* binding */ clear),
16283/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
16284/* harmony export */ "getBoundarys": () => (/* binding */ getBoundarys),
16285/* harmony export */ "getC4BoundaryInRow": () => (/* binding */ getC4BoundaryInRow),
16286/* harmony export */ "getC4Shape": () => (/* binding */ getC4Shape),
16287/* harmony export */ "getC4ShapeArray": () => (/* binding */ getC4ShapeArray),
16288/* harmony export */ "getC4ShapeInRow": () => (/* binding */ getC4ShapeInRow),
16289/* harmony export */ "getC4ShapeKeys": () => (/* binding */ getC4ShapeKeys),
16290/* harmony export */ "getC4Type": () => (/* binding */ getC4Type),
16291/* harmony export */ "getCurrentBoundaryParse": () => (/* binding */ getCurrentBoundaryParse),
16292/* harmony export */ "getParentBoundaryParse": () => (/* binding */ getParentBoundaryParse),
16293/* harmony export */ "getRels": () => (/* binding */ getRels),
16294/* harmony export */ "getTitle": () => (/* binding */ getTitle),
16295/* harmony export */ "parseDirective": () => (/* binding */ parseDirective),
16296/* harmony export */ "popBoundaryParseStack": () => (/* binding */ popBoundaryParseStack),
16297/* harmony export */ "setC4Type": () => (/* binding */ setC4Type),
16298/* harmony export */ "setTitle": () => (/* binding */ setTitle),
16299/* harmony export */ "setWrap": () => (/* binding */ setWrap),
16300/* harmony export */ "updateElStyle": () => (/* binding */ updateElStyle),
16301/* harmony export */ "updateLayoutConfig": () => (/* binding */ updateLayoutConfig),
16302/* harmony export */ "updateRelStyle": () => (/* binding */ updateRelStyle)
16303/* harmony export */ });
16304/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
16305/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ "./src/config.js");
16306/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
16307/* harmony import */ var _commonDb__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../commonDb */ "./src/commonDb.js");
16308function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
16309
16310function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16311
16312function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
16313
16314function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
16315
16316function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
16317
16318function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16319
16320function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
16321
16322
16323
16324
16325
16326
16327var c4ShapeArray = [];
16328var boundaryParseStack = [''];
16329var currentBoundaryParse = 'global';
16330var parentBoundaryParse = '';
16331var boundarys = [{
16332 alias: 'global',
16333 label: {
16334 text: 'global'
16335 },
16336 type: {
16337 text: 'global'
16338 },
16339 tags: null,
16340 link: null,
16341 parentBoundary: ''
16342}];
16343var rels = [];
16344var title = '';
16345var wrapEnabled = false;
16346var description = '';
16347var c4ShapeInRow = 4;
16348var c4BoundaryInRow = 2;
16349var c4Type;
16350var getC4Type = function getC4Type() {
16351 return c4Type;
16352};
16353var setC4Type = function setC4Type(c4TypeParam) {
16354 var sanitizedText = (0,_common_common__WEBPACK_IMPORTED_MODULE_0__.sanitizeText)(c4TypeParam, _config__WEBPACK_IMPORTED_MODULE_1__.getConfig());
16355 c4Type = sanitizedText;
16356};
16357var parseDirective = function parseDirective(statement, context, type) {
16358 _mermaidAPI__WEBPACK_IMPORTED_MODULE_2__["default"].parseDirective(this, statement, context, type);
16359}; //type, from, to, label, ?techn, ?descr, ?sprite, ?tags, $link
16360
16361var addRel = function addRel(type, from, to, label, techn, descr, sprite, tags, link) {
16362 // Don't allow label nulling
16363 if (type === undefined || type === null || from === undefined || from === null || to === undefined || to === null || label === undefined || label === null) return;
16364 var rel = {};
16365 var old = rels.find(function (rel) {
16366 return rel.from === from && rel.to === to;
16367 });
16368
16369 if (old) {
16370 rel = old;
16371 } else {
16372 rels.push(rel);
16373 }
16374
16375 rel.type = type;
16376 rel.from = from;
16377 rel.to = to;
16378 rel.label = {
16379 text: label
16380 };
16381
16382 if (techn === undefined || techn === null) {
16383 rel.techn = {
16384 text: ''
16385 };
16386 } else {
16387 if (_typeof(techn) === 'object') {
16388 var _Object$entries$ = _slicedToArray(Object.entries(techn)[0], 2),
16389 key = _Object$entries$[0],
16390 value = _Object$entries$[1];
16391
16392 rel[key] = {
16393 text: value
16394 };
16395 } else {
16396 rel.techn = {
16397 text: techn
16398 };
16399 }
16400 }
16401
16402 if (descr === undefined || descr === null) {
16403 rel.descr = {
16404 text: ''
16405 };
16406 } else {
16407 if (_typeof(descr) === 'object') {
16408 var _Object$entries$2 = _slicedToArray(Object.entries(descr)[0], 2),
16409 _key = _Object$entries$2[0],
16410 _value = _Object$entries$2[1];
16411
16412 rel[_key] = {
16413 text: _value
16414 };
16415 } else {
16416 rel.descr = {
16417 text: descr
16418 };
16419 }
16420 }
16421
16422 if (_typeof(sprite) === 'object') {
16423 var _Object$entries$3 = _slicedToArray(Object.entries(sprite)[0], 2),
16424 _key2 = _Object$entries$3[0],
16425 _value2 = _Object$entries$3[1];
16426
16427 rel[_key2] = _value2;
16428 } else {
16429 rel.sprite = sprite;
16430 }
16431
16432 if (_typeof(tags) === 'object') {
16433 var _Object$entries$4 = _slicedToArray(Object.entries(tags)[0], 2),
16434 _key3 = _Object$entries$4[0],
16435 _value3 = _Object$entries$4[1];
16436
16437 rel[_key3] = _value3;
16438 } else {
16439 rel.tags = tags;
16440 }
16441
16442 if (_typeof(link) === 'object') {
16443 var _Object$entries$5 = _slicedToArray(Object.entries(link)[0], 2),
16444 _key4 = _Object$entries$5[0],
16445 _value4 = _Object$entries$5[1];
16446
16447 rel[_key4] = _value4;
16448 } else {
16449 rel.link = link;
16450 }
16451
16452 rel.wrap = autoWrap();
16453}; //type, alias, label, ?descr, ?sprite, ?tags, $link
16454
16455var addPersonOrSystem = function addPersonOrSystem(typeC4Shape, alias, label, descr, sprite, tags, link) {
16456 // Don't allow label nulling
16457 if (alias === null || label === null) return;
16458 var personOrSystem = {};
16459 var old = c4ShapeArray.find(function (personOrSystem) {
16460 return personOrSystem.alias === alias;
16461 });
16462
16463 if (old && alias === old.alias) {
16464 personOrSystem = old;
16465 } else {
16466 personOrSystem.alias = alias;
16467 c4ShapeArray.push(personOrSystem);
16468 } // Don't allow null labels, either
16469
16470
16471 if (label === undefined || label === null) {
16472 personOrSystem.label = {
16473 text: ''
16474 };
16475 } else {
16476 personOrSystem.label = {
16477 text: label
16478 };
16479 }
16480
16481 if (descr === undefined || descr === null) {
16482 personOrSystem.descr = {
16483 text: ''
16484 };
16485 } else {
16486 if (_typeof(descr) === 'object') {
16487 var _Object$entries$6 = _slicedToArray(Object.entries(descr)[0], 2),
16488 key = _Object$entries$6[0],
16489 value = _Object$entries$6[1];
16490
16491 personOrSystem[key] = {
16492 text: value
16493 };
16494 } else {
16495 personOrSystem.descr = {
16496 text: descr
16497 };
16498 }
16499 }
16500
16501 if (_typeof(sprite) === 'object') {
16502 var _Object$entries$7 = _slicedToArray(Object.entries(sprite)[0], 2),
16503 _key5 = _Object$entries$7[0],
16504 _value5 = _Object$entries$7[1];
16505
16506 personOrSystem[_key5] = _value5;
16507 } else {
16508 personOrSystem.sprite = sprite;
16509 }
16510
16511 if (_typeof(tags) === 'object') {
16512 var _Object$entries$8 = _slicedToArray(Object.entries(tags)[0], 2),
16513 _key6 = _Object$entries$8[0],
16514 _value6 = _Object$entries$8[1];
16515
16516 personOrSystem[_key6] = _value6;
16517 } else {
16518 personOrSystem.tags = tags;
16519 }
16520
16521 if (_typeof(link) === 'object') {
16522 var _Object$entries$9 = _slicedToArray(Object.entries(link)[0], 2),
16523 _key7 = _Object$entries$9[0],
16524 _value7 = _Object$entries$9[1];
16525
16526 personOrSystem[_key7] = _value7;
16527 } else {
16528 personOrSystem.link = link;
16529 }
16530
16531 personOrSystem.typeC4Shape = {
16532 text: typeC4Shape
16533 };
16534 personOrSystem.parentBoundary = currentBoundaryParse;
16535 personOrSystem.wrap = autoWrap();
16536}; //type, alias, label, ?techn, ?descr ?sprite, ?tags, $link
16537
16538var addContainer = function addContainer(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {
16539 // Don't allow label nulling
16540 if (alias === null || label === null) return;
16541 var container = {};
16542 var old = c4ShapeArray.find(function (container) {
16543 return container.alias === alias;
16544 });
16545
16546 if (old && alias === old.alias) {
16547 container = old;
16548 } else {
16549 container.alias = alias;
16550 c4ShapeArray.push(container);
16551 } // Don't allow null labels, either
16552
16553
16554 if (label === undefined || label === null) {
16555 container.label = {
16556 text: ''
16557 };
16558 } else {
16559 container.label = {
16560 text: label
16561 };
16562 }
16563
16564 if (techn === undefined || techn === null) {
16565 container.techn = {
16566 text: ''
16567 };
16568 } else {
16569 if (_typeof(techn) === 'object') {
16570 var _Object$entries$10 = _slicedToArray(Object.entries(techn)[0], 2),
16571 key = _Object$entries$10[0],
16572 value = _Object$entries$10[1];
16573
16574 container[key] = {
16575 text: value
16576 };
16577 } else {
16578 container.techn = {
16579 text: techn
16580 };
16581 }
16582 }
16583
16584 if (descr === undefined || descr === null) {
16585 container.descr = {
16586 text: ''
16587 };
16588 } else {
16589 if (_typeof(descr) === 'object') {
16590 var _Object$entries$11 = _slicedToArray(Object.entries(descr)[0], 2),
16591 _key8 = _Object$entries$11[0],
16592 _value8 = _Object$entries$11[1];
16593
16594 container[_key8] = {
16595 text: _value8
16596 };
16597 } else {
16598 container.descr = {
16599 text: descr
16600 };
16601 }
16602 }
16603
16604 if (_typeof(sprite) === 'object') {
16605 var _Object$entries$12 = _slicedToArray(Object.entries(sprite)[0], 2),
16606 _key9 = _Object$entries$12[0],
16607 _value9 = _Object$entries$12[1];
16608
16609 container[_key9] = _value9;
16610 } else {
16611 container.sprite = sprite;
16612 }
16613
16614 if (_typeof(tags) === 'object') {
16615 var _Object$entries$13 = _slicedToArray(Object.entries(tags)[0], 2),
16616 _key10 = _Object$entries$13[0],
16617 _value10 = _Object$entries$13[1];
16618
16619 container[_key10] = _value10;
16620 } else {
16621 container.tags = tags;
16622 }
16623
16624 if (_typeof(link) === 'object') {
16625 var _Object$entries$14 = _slicedToArray(Object.entries(link)[0], 2),
16626 _key11 = _Object$entries$14[0],
16627 _value11 = _Object$entries$14[1];
16628
16629 container[_key11] = _value11;
16630 } else {
16631 container.link = link;
16632 }
16633
16634 container.wrap = autoWrap();
16635 container.typeC4Shape = {
16636 text: typeC4Shape
16637 };
16638 container.parentBoundary = currentBoundaryParse;
16639}; //type, alias, label, ?techn, ?descr ?sprite, ?tags, $link
16640
16641var addComponent = function addComponent(typeC4Shape, alias, label, techn, descr, sprite, tags, link) {
16642 // Don't allow label nulling
16643 if (alias === null || label === null) return;
16644 var component = {};
16645 var old = c4ShapeArray.find(function (component) {
16646 return component.alias === alias;
16647 });
16648
16649 if (old && alias === old.alias) {
16650 component = old;
16651 } else {
16652 component.alias = alias;
16653 c4ShapeArray.push(component);
16654 } // Don't allow null labels, either
16655
16656
16657 if (label === undefined || label === null) {
16658 component.label = {
16659 text: ''
16660 };
16661 } else {
16662 component.label = {
16663 text: label
16664 };
16665 }
16666
16667 if (techn === undefined || techn === null) {
16668 component.techn = {
16669 text: ''
16670 };
16671 } else {
16672 if (_typeof(techn) === 'object') {
16673 var _Object$entries$15 = _slicedToArray(Object.entries(techn)[0], 2),
16674 key = _Object$entries$15[0],
16675 value = _Object$entries$15[1];
16676
16677 component[key] = {
16678 text: value
16679 };
16680 } else {
16681 component.techn = {
16682 text: techn
16683 };
16684 }
16685 }
16686
16687 if (descr === undefined || descr === null) {
16688 component.descr = {
16689 text: ''
16690 };
16691 } else {
16692 if (_typeof(descr) === 'object') {
16693 var _Object$entries$16 = _slicedToArray(Object.entries(descr)[0], 2),
16694 _key12 = _Object$entries$16[0],
16695 _value12 = _Object$entries$16[1];
16696
16697 component[_key12] = {
16698 text: _value12
16699 };
16700 } else {
16701 component.descr = {
16702 text: descr
16703 };
16704 }
16705 }
16706
16707 if (_typeof(sprite) === 'object') {
16708 var _Object$entries$17 = _slicedToArray(Object.entries(sprite)[0], 2),
16709 _key13 = _Object$entries$17[0],
16710 _value13 = _Object$entries$17[1];
16711
16712 component[_key13] = _value13;
16713 } else {
16714 component.sprite = sprite;
16715 }
16716
16717 if (_typeof(tags) === 'object') {
16718 var _Object$entries$18 = _slicedToArray(Object.entries(tags)[0], 2),
16719 _key14 = _Object$entries$18[0],
16720 _value14 = _Object$entries$18[1];
16721
16722 component[_key14] = _value14;
16723 } else {
16724 component.tags = tags;
16725 }
16726
16727 if (_typeof(link) === 'object') {
16728 var _Object$entries$19 = _slicedToArray(Object.entries(link)[0], 2),
16729 _key15 = _Object$entries$19[0],
16730 _value15 = _Object$entries$19[1];
16731
16732 component[_key15] = _value15;
16733 } else {
16734 component.link = link;
16735 }
16736
16737 component.wrap = autoWrap();
16738 component.typeC4Shape = {
16739 text: typeC4Shape
16740 };
16741 component.parentBoundary = currentBoundaryParse;
16742}; //alias, label, ?type, ?tags, $link
16743
16744var addPersonOrSystemBoundary = function addPersonOrSystemBoundary(alias, label, type, tags, link) {
16745 // if (parentBoundary === null) return;
16746 // Don't allow label nulling
16747 if (alias === null || label === null) return;
16748 var boundary = {};
16749 var old = boundarys.find(function (boundary) {
16750 return boundary.alias === alias;
16751 });
16752
16753 if (old && alias === old.alias) {
16754 boundary = old;
16755 } else {
16756 boundary.alias = alias;
16757 boundarys.push(boundary);
16758 } // Don't allow null labels, either
16759
16760
16761 if (label === undefined || label === null) {
16762 boundary.label = {
16763 text: ''
16764 };
16765 } else {
16766 boundary.label = {
16767 text: label
16768 };
16769 }
16770
16771 if (type === undefined || type === null) {
16772 boundary.type = {
16773 text: 'system'
16774 };
16775 } else {
16776 if (_typeof(type) === 'object') {
16777 var _Object$entries$20 = _slicedToArray(Object.entries(type)[0], 2),
16778 key = _Object$entries$20[0],
16779 value = _Object$entries$20[1];
16780
16781 boundary[key] = {
16782 text: value
16783 };
16784 } else {
16785 boundary.type = {
16786 text: type
16787 };
16788 }
16789 }
16790
16791 if (_typeof(tags) === 'object') {
16792 var _Object$entries$21 = _slicedToArray(Object.entries(tags)[0], 2),
16793 _key16 = _Object$entries$21[0],
16794 _value16 = _Object$entries$21[1];
16795
16796 boundary[_key16] = _value16;
16797 } else {
16798 boundary.tags = tags;
16799 }
16800
16801 if (_typeof(link) === 'object') {
16802 var _Object$entries$22 = _slicedToArray(Object.entries(link)[0], 2),
16803 _key17 = _Object$entries$22[0],
16804 _value17 = _Object$entries$22[1];
16805
16806 boundary[_key17] = _value17;
16807 } else {
16808 boundary.link = link;
16809 }
16810
16811 boundary.parentBoundary = currentBoundaryParse;
16812 boundary.wrap = autoWrap();
16813 parentBoundaryParse = currentBoundaryParse;
16814 currentBoundaryParse = alias;
16815 boundaryParseStack.push(parentBoundaryParse);
16816}; //alias, label, ?type, ?tags, $link
16817
16818var addContainerBoundary = function addContainerBoundary(alias, label, type, tags, link) {
16819 // if (parentBoundary === null) return;
16820 // Don't allow label nulling
16821 if (alias === null || label === null) return;
16822 var boundary = {};
16823 var old = boundarys.find(function (boundary) {
16824 return boundary.alias === alias;
16825 });
16826
16827 if (old && alias === old.alias) {
16828 boundary = old;
16829 } else {
16830 boundary.alias = alias;
16831 boundarys.push(boundary);
16832 } // Don't allow null labels, either
16833
16834
16835 if (label === undefined || label === null) {
16836 boundary.label = {
16837 text: ''
16838 };
16839 } else {
16840 boundary.label = {
16841 text: label
16842 };
16843 }
16844
16845 if (type === undefined || type === null) {
16846 boundary.type = {
16847 text: 'container'
16848 };
16849 } else {
16850 if (_typeof(type) === 'object') {
16851 var _Object$entries$23 = _slicedToArray(Object.entries(type)[0], 2),
16852 key = _Object$entries$23[0],
16853 value = _Object$entries$23[1];
16854
16855 boundary[key] = {
16856 text: value
16857 };
16858 } else {
16859 boundary.type = {
16860 text: type
16861 };
16862 }
16863 }
16864
16865 if (_typeof(tags) === 'object') {
16866 var _Object$entries$24 = _slicedToArray(Object.entries(tags)[0], 2),
16867 _key18 = _Object$entries$24[0],
16868 _value18 = _Object$entries$24[1];
16869
16870 boundary[_key18] = _value18;
16871 } else {
16872 boundary.tags = tags;
16873 }
16874
16875 if (_typeof(link) === 'object') {
16876 var _Object$entries$25 = _slicedToArray(Object.entries(link)[0], 2),
16877 _key19 = _Object$entries$25[0],
16878 _value19 = _Object$entries$25[1];
16879
16880 boundary[_key19] = _value19;
16881 } else {
16882 boundary.link = link;
16883 }
16884
16885 boundary.parentBoundary = currentBoundaryParse;
16886 boundary.wrap = autoWrap();
16887 parentBoundaryParse = currentBoundaryParse;
16888 currentBoundaryParse = alias;
16889 boundaryParseStack.push(parentBoundaryParse);
16890}; //alias, label, ?type, ?descr, ?sprite, ?tags, $link
16891
16892var addDeploymentNode = function addDeploymentNode(nodeType, alias, label, type, descr, sprite, tags, link) {
16893 // if (parentBoundary === null) return;
16894 // Don't allow label nulling
16895 if (alias === null || label === null) return;
16896 var boundary = {};
16897 var old = boundarys.find(function (boundary) {
16898 return boundary.alias === alias;
16899 });
16900
16901 if (old && alias === old.alias) {
16902 boundary = old;
16903 } else {
16904 boundary.alias = alias;
16905 boundarys.push(boundary);
16906 } // Don't allow null labels, either
16907
16908
16909 if (label === undefined || label === null) {
16910 boundary.label = {
16911 text: ''
16912 };
16913 } else {
16914 boundary.label = {
16915 text: label
16916 };
16917 }
16918
16919 if (type === undefined || type === null) {
16920 boundary.type = {
16921 text: 'node'
16922 };
16923 } else {
16924 if (_typeof(type) === 'object') {
16925 var _Object$entries$26 = _slicedToArray(Object.entries(type)[0], 2),
16926 key = _Object$entries$26[0],
16927 value = _Object$entries$26[1];
16928
16929 boundary[key] = {
16930 text: value
16931 };
16932 } else {
16933 boundary.type = {
16934 text: type
16935 };
16936 }
16937 }
16938
16939 if (descr === undefined || descr === null) {
16940 boundary.descr = {
16941 text: ''
16942 };
16943 } else {
16944 if (_typeof(descr) === 'object') {
16945 var _Object$entries$27 = _slicedToArray(Object.entries(descr)[0], 2),
16946 _key20 = _Object$entries$27[0],
16947 _value20 = _Object$entries$27[1];
16948
16949 boundary[_key20] = {
16950 text: _value20
16951 };
16952 } else {
16953 boundary.descr = {
16954 text: descr
16955 };
16956 }
16957 }
16958
16959 if (_typeof(tags) === 'object') {
16960 var _Object$entries$28 = _slicedToArray(Object.entries(tags)[0], 2),
16961 _key21 = _Object$entries$28[0],
16962 _value21 = _Object$entries$28[1];
16963
16964 boundary[_key21] = _value21;
16965 } else {
16966 boundary.tags = tags;
16967 }
16968
16969 if (_typeof(link) === 'object') {
16970 var _Object$entries$29 = _slicedToArray(Object.entries(link)[0], 2),
16971 _key22 = _Object$entries$29[0],
16972 _value22 = _Object$entries$29[1];
16973
16974 boundary[_key22] = _value22;
16975 } else {
16976 boundary.link = link;
16977 }
16978
16979 boundary.nodeType = nodeType;
16980 boundary.parentBoundary = currentBoundaryParse;
16981 boundary.wrap = autoWrap();
16982 parentBoundaryParse = currentBoundaryParse;
16983 currentBoundaryParse = alias;
16984 boundaryParseStack.push(parentBoundaryParse);
16985};
16986var popBoundaryParseStack = function popBoundaryParseStack() {
16987 currentBoundaryParse = parentBoundaryParse;
16988 boundaryParseStack.pop();
16989 parentBoundaryParse = boundaryParseStack.pop();
16990 boundaryParseStack.push(parentBoundaryParse);
16991}; //elementName, ?bgColor, ?fontColor, ?borderColor, ?shadowing, ?shape, ?sprite, ?techn, ?legendText, ?legendSprite
16992
16993var updateElStyle = function updateElStyle(typeC4Shape, elementName, bgColor, fontColor, borderColor, shadowing, shape, sprite, techn, legendText, legendSprite) {
16994 var old = c4ShapeArray.find(function (element) {
16995 return element.alias === elementName;
16996 });
16997
16998 if (old === undefined) {
16999 old = boundarys.find(function (element) {
17000 return element.alias === elementName;
17001 });
17002
17003 if (old === undefined) {
17004 return;
17005 }
17006 }
17007
17008 if (bgColor !== undefined && bgColor !== null) {
17009 if (_typeof(bgColor) === 'object') {
17010 var _Object$entries$30 = _slicedToArray(Object.entries(bgColor)[0], 2),
17011 key = _Object$entries$30[0],
17012 value = _Object$entries$30[1];
17013
17014 old[key] = value;
17015 } else {
17016 old.bgColor = bgColor;
17017 }
17018 }
17019
17020 if (fontColor !== undefined && fontColor !== null) {
17021 if (_typeof(fontColor) === 'object') {
17022 var _Object$entries$31 = _slicedToArray(Object.entries(fontColor)[0], 2),
17023 _key23 = _Object$entries$31[0],
17024 _value23 = _Object$entries$31[1];
17025
17026 old[_key23] = _value23;
17027 } else {
17028 old.fontColor = fontColor;
17029 }
17030 }
17031
17032 if (borderColor !== undefined && borderColor !== null) {
17033 if (_typeof(borderColor) === 'object') {
17034 var _Object$entries$32 = _slicedToArray(Object.entries(borderColor)[0], 2),
17035 _key24 = _Object$entries$32[0],
17036 _value24 = _Object$entries$32[1];
17037
17038 old[_key24] = _value24;
17039 } else {
17040 old.borderColor = borderColor;
17041 }
17042 }
17043
17044 if (shadowing !== undefined && shadowing !== null) {
17045 if (_typeof(shadowing) === 'object') {
17046 var _Object$entries$33 = _slicedToArray(Object.entries(shadowing)[0], 2),
17047 _key25 = _Object$entries$33[0],
17048 _value25 = _Object$entries$33[1];
17049
17050 old[_key25] = _value25;
17051 } else {
17052 old.shadowing = shadowing;
17053 }
17054 }
17055
17056 if (shape !== undefined && shape !== null) {
17057 if (_typeof(shape) === 'object') {
17058 var _Object$entries$34 = _slicedToArray(Object.entries(shape)[0], 2),
17059 _key26 = _Object$entries$34[0],
17060 _value26 = _Object$entries$34[1];
17061
17062 old[_key26] = _value26;
17063 } else {
17064 old.shape = shape;
17065 }
17066 }
17067
17068 if (sprite !== undefined && sprite !== null) {
17069 if (_typeof(sprite) === 'object') {
17070 var _Object$entries$35 = _slicedToArray(Object.entries(sprite)[0], 2),
17071 _key27 = _Object$entries$35[0],
17072 _value27 = _Object$entries$35[1];
17073
17074 old[_key27] = _value27;
17075 } else {
17076 old.sprite = sprite;
17077 }
17078 }
17079
17080 if (techn !== undefined && techn !== null) {
17081 if (_typeof(techn) === 'object') {
17082 var _Object$entries$36 = _slicedToArray(Object.entries(techn)[0], 2),
17083 _key28 = _Object$entries$36[0],
17084 _value28 = _Object$entries$36[1];
17085
17086 old[_key28] = _value28;
17087 } else {
17088 old.techn = techn;
17089 }
17090 }
17091
17092 if (legendText !== undefined && legendText !== null) {
17093 if (_typeof(legendText) === 'object') {
17094 var _Object$entries$37 = _slicedToArray(Object.entries(legendText)[0], 2),
17095 _key29 = _Object$entries$37[0],
17096 _value29 = _Object$entries$37[1];
17097
17098 old[_key29] = _value29;
17099 } else {
17100 old.legendText = legendText;
17101 }
17102 }
17103
17104 if (legendSprite !== undefined && legendSprite !== null) {
17105 if (_typeof(legendSprite) === 'object') {
17106 var _Object$entries$38 = _slicedToArray(Object.entries(legendSprite)[0], 2),
17107 _key30 = _Object$entries$38[0],
17108 _value30 = _Object$entries$38[1];
17109
17110 old[_key30] = _value30;
17111 } else {
17112 old.legendSprite = legendSprite;
17113 }
17114 }
17115}; //textColor, lineColor, ?offsetX, ?offsetY
17116
17117var updateRelStyle = function updateRelStyle(typeC4Shape, from, to, textColor, lineColor, offsetX, offsetY) {
17118 var old = rels.find(function (rel) {
17119 return rel.from === from && rel.to === to;
17120 });
17121
17122 if (old === undefined) {
17123 return;
17124 }
17125
17126 if (textColor !== undefined && textColor !== null) {
17127 if (_typeof(textColor) === 'object') {
17128 var _Object$entries$39 = _slicedToArray(Object.entries(textColor)[0], 2),
17129 key = _Object$entries$39[0],
17130 value = _Object$entries$39[1];
17131
17132 old[key] = value;
17133 } else {
17134 old.textColor = textColor;
17135 }
17136 }
17137
17138 if (lineColor !== undefined && lineColor !== null) {
17139 if (_typeof(lineColor) === 'object') {
17140 var _Object$entries$40 = _slicedToArray(Object.entries(lineColor)[0], 2),
17141 _key31 = _Object$entries$40[0],
17142 _value31 = _Object$entries$40[1];
17143
17144 old[_key31] = _value31;
17145 } else {
17146 old.lineColor = lineColor;
17147 }
17148 }
17149
17150 if (offsetX !== undefined && offsetX !== null) {
17151 if (_typeof(offsetX) === 'object') {
17152 var _Object$entries$41 = _slicedToArray(Object.entries(offsetX)[0], 2),
17153 _key32 = _Object$entries$41[0],
17154 _value32 = _Object$entries$41[1];
17155
17156 old[_key32] = parseInt(_value32);
17157 } else {
17158 old.offsetX = parseInt(offsetX);
17159 }
17160 }
17161
17162 if (offsetY !== undefined && offsetY !== null) {
17163 if (_typeof(offsetY) === 'object') {
17164 var _Object$entries$42 = _slicedToArray(Object.entries(offsetY)[0], 2),
17165 _key33 = _Object$entries$42[0],
17166 _value33 = _Object$entries$42[1];
17167
17168 old[_key33] = parseInt(_value33);
17169 } else {
17170 old.offsetY = parseInt(offsetY);
17171 }
17172 }
17173}; //?c4ShapeInRow, ?c4BoundaryInRow
17174
17175var updateLayoutConfig = function updateLayoutConfig(typeC4Shape, c4ShapeInRowParam, c4BoundaryInRowParam) {
17176 var c4ShapeInRowValue = c4ShapeInRow;
17177 var c4BoundaryInRowValue = c4BoundaryInRow;
17178
17179 if (_typeof(c4ShapeInRowParam) === 'object') {
17180 var _Object$entries$43 = _slicedToArray(Object.entries(c4ShapeInRowParam)[0], 2),
17181 key = _Object$entries$43[0],
17182 value = _Object$entries$43[1];
17183
17184 c4ShapeInRowValue = parseInt(value);
17185 } else {
17186 c4ShapeInRowValue = parseInt(c4ShapeInRowParam);
17187 }
17188
17189 if (_typeof(c4BoundaryInRowParam) === 'object') {
17190 var _Object$entries$44 = _slicedToArray(Object.entries(c4BoundaryInRowParam)[0], 2),
17191 _key34 = _Object$entries$44[0],
17192 _value34 = _Object$entries$44[1];
17193
17194 c4BoundaryInRowValue = parseInt(_value34);
17195 } else {
17196 c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam);
17197 }
17198
17199 if (c4ShapeInRowValue >= 1) c4ShapeInRow = c4ShapeInRowValue;
17200 if (c4BoundaryInRowValue >= 1) c4BoundaryInRow = c4BoundaryInRowValue;
17201};
17202var getC4ShapeInRow = function getC4ShapeInRow() {
17203 return c4ShapeInRow;
17204};
17205var getC4BoundaryInRow = function getC4BoundaryInRow() {
17206 return c4BoundaryInRow;
17207};
17208var getCurrentBoundaryParse = function getCurrentBoundaryParse() {
17209 return currentBoundaryParse;
17210};
17211var getParentBoundaryParse = function getParentBoundaryParse() {
17212 return parentBoundaryParse;
17213};
17214var getC4ShapeArray = function getC4ShapeArray(parentBoundary) {
17215 if (parentBoundary === undefined || parentBoundary === null) return c4ShapeArray;else return c4ShapeArray.filter(function (personOrSystem) {
17216 return personOrSystem.parentBoundary === parentBoundary;
17217 });
17218};
17219var getC4Shape = function getC4Shape(alias) {
17220 return c4ShapeArray.find(function (personOrSystem) {
17221 return personOrSystem.alias === alias;
17222 });
17223};
17224var getC4ShapeKeys = function getC4ShapeKeys(parentBoundary) {
17225 return Object.keys(getC4ShapeArray(parentBoundary));
17226};
17227var getBoundarys = function getBoundarys(parentBoundary) {
17228 if (parentBoundary === undefined || parentBoundary === null) return boundarys;else return boundarys.filter(function (boundary) {
17229 return boundary.parentBoundary === parentBoundary;
17230 });
17231};
17232var getRels = function getRels() {
17233 return rels;
17234};
17235var getTitle = function getTitle() {
17236 return title;
17237};
17238var setWrap = function setWrap(wrapSetting) {
17239 wrapEnabled = wrapSetting;
17240};
17241var autoWrap = function autoWrap() {
17242 return wrapEnabled;
17243};
17244var clear = function clear() {
17245 c4ShapeArray = [];
17246 boundarys = [{
17247 alias: 'global',
17248 label: {
17249 text: 'global'
17250 },
17251 type: {
17252 text: 'global'
17253 },
17254 tags: null,
17255 link: null,
17256 parentBoundary: ''
17257 }];
17258 parentBoundaryParse = '';
17259 currentBoundaryParse = 'global';
17260 boundaryParseStack = [''];
17261 rels = [];
17262 boundaryParseStack = [''];
17263 title = '';
17264 wrapEnabled = false;
17265 description = '';
17266 c4ShapeInRow = 4;
17267 c4BoundaryInRow = 2;
17268};
17269var LINETYPE = {
17270 SOLID: 0,
17271 DOTTED: 1,
17272 NOTE: 2,
17273 SOLID_CROSS: 3,
17274 DOTTED_CROSS: 4,
17275 SOLID_OPEN: 5,
17276 DOTTED_OPEN: 6,
17277 LOOP_START: 10,
17278 LOOP_END: 11,
17279 ALT_START: 12,
17280 ALT_ELSE: 13,
17281 ALT_END: 14,
17282 OPT_START: 15,
17283 OPT_END: 16,
17284 ACTIVE_START: 17,
17285 ACTIVE_END: 18,
17286 PAR_START: 19,
17287 PAR_AND: 20,
17288 PAR_END: 21,
17289 RECT_START: 22,
17290 RECT_END: 23,
17291 SOLID_POINT: 24,
17292 DOTTED_POINT: 25
17293};
17294var ARROWTYPE = {
17295 FILLED: 0,
17296 OPEN: 1
17297};
17298var PLACEMENT = {
17299 LEFTOF: 0,
17300 RIGHTOF: 1,
17301 OVER: 2
17302};
17303var setTitle = function setTitle(txt) {
17304 var sanitizedText = (0,_common_common__WEBPACK_IMPORTED_MODULE_0__.sanitizeText)(txt, _config__WEBPACK_IMPORTED_MODULE_1__.getConfig());
17305 title = sanitizedText;
17306};
17307/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
17308 addPersonOrSystem: addPersonOrSystem,
17309 addPersonOrSystemBoundary: addPersonOrSystemBoundary,
17310 addContainer: addContainer,
17311 addContainerBoundary: addContainerBoundary,
17312 addComponent: addComponent,
17313 addDeploymentNode: addDeploymentNode,
17314 popBoundaryParseStack: popBoundaryParseStack,
17315 addRel: addRel,
17316 updateElStyle: updateElStyle,
17317 updateRelStyle: updateRelStyle,
17318 updateLayoutConfig: updateLayoutConfig,
17319 autoWrap: autoWrap,
17320 setWrap: setWrap,
17321 getC4ShapeArray: getC4ShapeArray,
17322 getC4Shape: getC4Shape,
17323 getC4ShapeKeys: getC4ShapeKeys,
17324 getBoundarys: getBoundarys,
17325 getCurrentBoundaryParse: getCurrentBoundaryParse,
17326 getParentBoundaryParse: getParentBoundaryParse,
17327 getRels: getRels,
17328 getTitle: getTitle,
17329 getC4Type: getC4Type,
17330 getC4ShapeInRow: getC4ShapeInRow,
17331 getC4BoundaryInRow: getC4BoundaryInRow,
17332 setAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_3__.setAccTitle,
17333 getAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_3__.getAccTitle,
17334 getAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_3__.getAccDescription,
17335 setAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_3__.setAccDescription,
17336 parseDirective: parseDirective,
17337 getConfig: function getConfig() {
17338 return _config__WEBPACK_IMPORTED_MODULE_1__.getConfig().c4;
17339 },
17340 clear: clear,
17341 LINETYPE: LINETYPE,
17342 ARROWTYPE: ARROWTYPE,
17343 PLACEMENT: PLACEMENT,
17344 setTitle: setTitle,
17345 setC4Type: setC4Type // apply,
17346
17347});
17348
17349/***/ }),
17350
17351/***/ "./src/diagrams/c4/c4Renderer.js":
17352/*!***************************************!*\
17353 !*** ./src/diagrams/c4/c4Renderer.js ***!
17354 \***************************************/
17355/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
17356
17357"use strict";
17358__webpack_require__.r(__webpack_exports__);
17359/* harmony export */ __webpack_require__.d(__webpack_exports__, {
17360/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
17361/* harmony export */ "draw": () => (/* binding */ draw),
17362/* harmony export */ "drawBoundary": () => (/* binding */ drawBoundary),
17363/* harmony export */ "drawC4ShapeArray": () => (/* binding */ drawC4ShapeArray),
17364/* harmony export */ "drawRels": () => (/* binding */ drawRels),
17365/* harmony export */ "setConf": () => (/* binding */ setConf)
17366/* harmony export */ });
17367/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
17368/* harmony import */ var _svgDraw__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./svgDraw */ "./src/diagrams/c4/svgDraw.js");
17369/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
17370/* harmony import */ var _parser_c4Diagram__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parser/c4Diagram */ "./src/diagrams/c4/parser/c4Diagram.jison");
17371/* harmony import */ var _parser_c4Diagram__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_parser_c4Diagram__WEBPACK_IMPORTED_MODULE_1__);
17372/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
17373/* harmony import */ var _c4Db__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./c4Db */ "./src/diagrams/c4/c4Db.js");
17374/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../config */ "./src/config.js");
17375/* harmony import */ var _assignWithDepth__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../assignWithDepth */ "./src/assignWithDepth.js");
17376/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
17377/* harmony import */ var _accessibility__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../accessibility */ "./src/accessibility.js");
17378function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
17379
17380function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17381
17382function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
17383
17384function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17385
17386function _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); } }
17387
17388function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
17389
17390
17391
17392
17393
17394
17395
17396
17397
17398
17399
17400var globalBoundaryMaxX = 0,
17401 globalBoundaryMaxY = 0;
17402var c4ShapeInRow = 4;
17403var c4BoundaryInRow = 2;
17404_parser_c4Diagram__WEBPACK_IMPORTED_MODULE_1__.parser.yy = _c4Db__WEBPACK_IMPORTED_MODULE_2__["default"];
17405var conf = {};
17406
17407var Bounds = /*#__PURE__*/function () {
17408 function Bounds(diagObj) {
17409 _classCallCheck(this, Bounds);
17410
17411 this.name = '';
17412 this.data = {};
17413 this.data.startx = undefined;
17414 this.data.stopx = undefined;
17415 this.data.starty = undefined;
17416 this.data.stopy = undefined;
17417 this.data.widthLimit = undefined;
17418 this.nextData = {};
17419 this.nextData.startx = undefined;
17420 this.nextData.stopx = undefined;
17421 this.nextData.starty = undefined;
17422 this.nextData.stopy = undefined;
17423 this.nextData.cnt = 0;
17424 setConf(diagObj.db.getConfig());
17425 }
17426
17427 _createClass(Bounds, [{
17428 key: "setData",
17429 value: function setData(startx, stopx, starty, stopy) {
17430 this.nextData.startx = this.data.startx = startx;
17431 this.nextData.stopx = this.data.stopx = stopx;
17432 this.nextData.starty = this.data.starty = starty;
17433 this.nextData.stopy = this.data.stopy = stopy;
17434 }
17435 }, {
17436 key: "updateVal",
17437 value: function updateVal(obj, key, val, fun) {
17438 if (typeof obj[key] === 'undefined') {
17439 obj[key] = val;
17440 } else {
17441 obj[key] = fun(val, obj[key]);
17442 }
17443 }
17444 }, {
17445 key: "insert",
17446 value: function insert(c4Shape) {
17447 this.nextData.cnt = this.nextData.cnt + 1;
17448
17449 var _startx = this.nextData.startx === this.nextData.stopx ? this.nextData.stopx + c4Shape.margin : this.nextData.stopx + c4Shape.margin * 2;
17450
17451 var _stopx = _startx + c4Shape.width;
17452
17453 var _starty = this.nextData.starty + c4Shape.margin * 2;
17454
17455 var _stopy = _starty + c4Shape.height;
17456
17457 if (_startx >= this.data.widthLimit || _stopx >= this.data.widthLimit || this.nextData.cnt > c4ShapeInRow) {
17458 _startx = this.nextData.startx + c4Shape.margin + conf.nextLinePaddingX;
17459 _starty = this.nextData.stopy + c4Shape.margin * 2;
17460 this.nextData.stopx = _stopx = _startx + c4Shape.width;
17461 this.nextData.starty = this.nextData.stopy;
17462 this.nextData.stopy = _stopy = _starty + c4Shape.height;
17463 this.nextData.cnt = 1;
17464 }
17465
17466 c4Shape.x = _startx;
17467 c4Shape.y = _starty;
17468 this.updateVal(this.data, 'startx', _startx, Math.min);
17469 this.updateVal(this.data, 'starty', _starty, Math.min);
17470 this.updateVal(this.data, 'stopx', _stopx, Math.max);
17471 this.updateVal(this.data, 'stopy', _stopy, Math.max);
17472 this.updateVal(this.nextData, 'startx', _startx, Math.min);
17473 this.updateVal(this.nextData, 'starty', _starty, Math.min);
17474 this.updateVal(this.nextData, 'stopx', _stopx, Math.max);
17475 this.updateVal(this.nextData, 'stopy', _stopy, Math.max);
17476 }
17477 }, {
17478 key: "init",
17479 value: function init(diagObj) {
17480 this.name = '';
17481 this.data = {
17482 startx: undefined,
17483 stopx: undefined,
17484 starty: undefined,
17485 stopy: undefined,
17486 widthLimit: undefined
17487 };
17488 this.nextData = {
17489 startx: undefined,
17490 stopx: undefined,
17491 starty: undefined,
17492 stopy: undefined,
17493 cnt: 0
17494 };
17495 setConf(diagObj.db.getConfig());
17496 }
17497 }, {
17498 key: "bumpLastMargin",
17499 value: function bumpLastMargin(margin) {
17500 this.data.stopx += margin;
17501 this.data.stopy += margin;
17502 }
17503 }]);
17504
17505 return Bounds;
17506}();
17507
17508var setConf = function setConf(cnf) {
17509 (0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_3__["default"])(conf, cnf);
17510
17511 if (cnf.fontFamily) {
17512 conf.personFontFamily = conf.systemFontFamily = conf.messageFontFamily = cnf.fontFamily;
17513 }
17514
17515 if (cnf.fontSize) {
17516 conf.personFontSize = conf.systemFontSize = conf.messageFontSize = cnf.fontSize;
17517 }
17518
17519 if (cnf.fontWeight) {
17520 conf.personFontWeight = conf.systemFontWeight = conf.messageFontWeight = cnf.fontWeight;
17521 }
17522};
17523
17524var c4ShapeFont = function c4ShapeFont(cnf, typeC4Shape) {
17525 return {
17526 fontFamily: cnf[typeC4Shape + 'FontFamily'],
17527 fontSize: cnf[typeC4Shape + 'FontSize'],
17528 fontWeight: cnf[typeC4Shape + 'FontWeight']
17529 };
17530};
17531
17532var boundaryFont = function boundaryFont(cnf) {
17533 return {
17534 fontFamily: cnf.boundaryFontFamily,
17535 fontSize: cnf.boundaryFontSize,
17536 fontWeight: cnf.boundaryFontWeight
17537 };
17538};
17539
17540var messageFont = function messageFont(cnf) {
17541 return {
17542 fontFamily: cnf.messageFontFamily,
17543 fontSize: cnf.messageFontSize,
17544 fontWeight: cnf.messageFontWeight
17545 };
17546};
17547/**
17548 * @param textType
17549 * @param c4Shape
17550 * @param c4ShapeTextWrap
17551 * @param textConf
17552 * @param textLimitWidth
17553 */
17554
17555
17556function calcC4ShapeTextWH(textType, c4Shape, c4ShapeTextWrap, textConf, textLimitWidth) {
17557 if (!c4Shape[textType].width) {
17558 if (c4ShapeTextWrap) {
17559 c4Shape[textType].text = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.wrapLabel)(c4Shape[textType].text, textLimitWidth, textConf);
17560 c4Shape[textType].textLines = c4Shape[textType].text.split(_common_common__WEBPACK_IMPORTED_MODULE_5__["default"].lineBreakRegex).length; // c4Shape[textType].width = calculateTextWidth(c4Shape[textType].text, textConf);
17561
17562 c4Shape[textType].width = textLimitWidth; // c4Shape[textType].height = c4Shape[textType].textLines * textConf.fontSize;
17563
17564 c4Shape[textType].height = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.calculateTextHeight)(c4Shape[textType].text, textConf);
17565 } else {
17566 var lines = c4Shape[textType].text.split(_common_common__WEBPACK_IMPORTED_MODULE_5__["default"].lineBreakRegex);
17567 c4Shape[textType].textLines = lines.length;
17568 var lineHeight = 0;
17569 c4Shape[textType].height = 0;
17570 c4Shape[textType].width = 0;
17571
17572 for (var i = 0; i < lines.length; i++) {
17573 c4Shape[textType].width = Math.max((0,_utils__WEBPACK_IMPORTED_MODULE_4__.calculateTextWidth)(lines[i], textConf), c4Shape[textType].width);
17574 lineHeight = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.calculateTextHeight)(lines[i], textConf);
17575 c4Shape[textType].height = c4Shape[textType].height + lineHeight;
17576 } // c4Shapes[textType].height = c4Shapes[textType].textLines * textConf.fontSize;
17577
17578 }
17579 }
17580}
17581
17582var drawBoundary = function drawBoundary(diagram, boundary, bounds) {
17583 boundary.x = bounds.data.startx;
17584 boundary.y = bounds.data.starty;
17585 boundary.width = bounds.data.stopx - bounds.data.startx;
17586 boundary.height = bounds.data.stopy - bounds.data.starty;
17587 boundary.label.y = conf.c4ShapeMargin - 35;
17588 var boundaryTextWrap = boundary.wrap && conf.wrap;
17589 var boundaryLabelConf = boundaryFont(conf);
17590 boundaryLabelConf.fontSize = boundaryLabelConf.fontSize + 2;
17591 boundaryLabelConf.fontWeight = 'bold';
17592 var textLimitWidth = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.calculateTextWidth)(boundary.label.text, boundaryLabelConf);
17593 calcC4ShapeTextWH('label', boundary, boundaryTextWrap, boundaryLabelConf, textLimitWidth);
17594 _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].drawBoundary(diagram, boundary, conf);
17595};
17596var drawC4ShapeArray = function drawC4ShapeArray(currentBounds, diagram, c4ShapeArray, c4ShapeKeys) {
17597 // Upper Y is relative point
17598 var Y = 0; // Draw the c4ShapeArray
17599
17600 for (var i = 0; i < c4ShapeKeys.length; i++) {
17601 Y = 0;
17602 var c4Shape = c4ShapeArray[c4ShapeKeys[i]]; // calc c4 shape type width and height
17603
17604 var c4ShapeTypeConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);
17605 c4ShapeTypeConf.fontSize = c4ShapeTypeConf.fontSize - 2;
17606 c4Shape.typeC4Shape.width = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.calculateTextWidth)('<<' + c4Shape.typeC4Shape.text + '>>', c4ShapeTypeConf);
17607 c4Shape.typeC4Shape.height = c4ShapeTypeConf.fontSize + 2;
17608 c4Shape.typeC4Shape.Y = conf.c4ShapePadding;
17609 Y = c4Shape.typeC4Shape.Y + c4Shape.typeC4Shape.height - 4; // set image width and height c4Shape.x + c4Shape.width / 2 - 24, c4Shape.y + 28
17610 // let imageWidth = 0,
17611 // imageHeight = 0,
17612 // imageY = 0;
17613 //
17614
17615 c4Shape.image = {
17616 width: 0,
17617 height: 0,
17618 Y: 0
17619 };
17620
17621 switch (c4Shape.typeC4Shape.text) {
17622 case 'person':
17623 case 'external_person':
17624 c4Shape.image.width = 48;
17625 c4Shape.image.height = 48;
17626 c4Shape.image.Y = Y;
17627 Y = c4Shape.image.Y + c4Shape.image.height;
17628 break;
17629 }
17630
17631 if (c4Shape.sprite) {
17632 c4Shape.image.width = 48;
17633 c4Shape.image.height = 48;
17634 c4Shape.image.Y = Y;
17635 Y = c4Shape.image.Y + c4Shape.image.height;
17636 } // Y = conf.c4ShapePadding + c4Shape.image.height;
17637
17638
17639 var c4ShapeTextWrap = c4Shape.wrap && conf.wrap;
17640 var textLimitWidth = conf.width - conf.c4ShapePadding * 2;
17641 var c4ShapeLabelConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);
17642 c4ShapeLabelConf.fontSize = c4ShapeLabelConf.fontSize + 2;
17643 c4ShapeLabelConf.fontWeight = 'bold';
17644 calcC4ShapeTextWH('label', c4Shape, c4ShapeTextWrap, c4ShapeLabelConf, textLimitWidth);
17645 c4Shape['label'].Y = Y + 8;
17646 Y = c4Shape['label'].Y + c4Shape['label'].height;
17647
17648 if (c4Shape.type && c4Shape.type.text !== '') {
17649 c4Shape.type.text = '[' + c4Shape.type.text + ']';
17650
17651 var _c4ShapeTypeConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);
17652
17653 calcC4ShapeTextWH('type', c4Shape, c4ShapeTextWrap, _c4ShapeTypeConf, textLimitWidth);
17654 c4Shape['type'].Y = Y + 5;
17655 Y = c4Shape['type'].Y + c4Shape['type'].height;
17656 } else if (c4Shape.techn && c4Shape.techn.text !== '') {
17657 c4Shape.techn.text = '[' + c4Shape.techn.text + ']';
17658 var c4ShapeTechnConf = c4ShapeFont(conf, c4Shape.techn.text);
17659 calcC4ShapeTextWH('techn', c4Shape, c4ShapeTextWrap, c4ShapeTechnConf, textLimitWidth);
17660 c4Shape['techn'].Y = Y + 5;
17661 Y = c4Shape['techn'].Y + c4Shape['techn'].height;
17662 }
17663
17664 var rectHeight = Y;
17665 var rectWidth = c4Shape.label.width;
17666
17667 if (c4Shape.descr && c4Shape.descr.text !== '') {
17668 var c4ShapeDescrConf = c4ShapeFont(conf, c4Shape.typeC4Shape.text);
17669 calcC4ShapeTextWH('descr', c4Shape, c4ShapeTextWrap, c4ShapeDescrConf, textLimitWidth);
17670 c4Shape['descr'].Y = Y + 20;
17671 Y = c4Shape['descr'].Y + c4Shape['descr'].height;
17672 rectWidth = Math.max(c4Shape.label.width, c4Shape.descr.width);
17673 rectHeight = Y - c4Shape['descr'].textLines * 5;
17674 }
17675
17676 rectWidth = rectWidth + conf.c4ShapePadding; // let rectHeight =
17677
17678 c4Shape.width = Math.max(c4Shape.width || conf.width, rectWidth, conf.width);
17679 c4Shape.height = Math.max(c4Shape.height || conf.height, rectHeight, conf.height);
17680 c4Shape.margin = c4Shape.margin || conf.c4ShapeMargin;
17681 currentBounds.insert(c4Shape);
17682 var height = _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].drawC4Shape(diagram, c4Shape, conf);
17683 }
17684
17685 currentBounds.bumpLastMargin(conf.c4ShapeMargin);
17686};
17687
17688var Point = /*#__PURE__*/_createClass(function Point(x, y) {
17689 _classCallCheck(this, Point);
17690
17691 this.x = x;
17692 this.y = y;
17693});
17694/* * *
17695 * Get the intersection of the line between the center point of a rectangle and a point outside the rectangle.
17696 * Algorithm idea.
17697 * Using a point outside the rectangle as the coordinate origin, the graph is divided into four quadrants, and each quadrant is divided into two cases, with separate treatment on the coordinate axes
17698 * 1. The case of coordinate axes.
17699 * 1. The case of the negative x-axis
17700 * 2. The case of the positive x-axis
17701 * 3. The case of the positive y-axis
17702 * 4. The negative y-axis case
17703 * 2. Quadrant cases.
17704 * 2.1. first quadrant: the case where the line intersects the left side of the rectangle; the case where it intersects the lower side of the rectangle
17705 * 2.2. second quadrant: the case where the line intersects the right side of the rectangle; the case where it intersects the lower edge of the rectangle
17706 * 2.3. third quadrant: the case where the line intersects the right side of the rectangle; the case where it intersects the upper edge of the rectangle
17707 * 2.4. fourth quadrant: the case where the line intersects the left side of the rectangle; the case where it intersects the upper side of the rectangle
17708 *
17709 */
17710
17711
17712var getIntersectPoint = function getIntersectPoint(fromNode, endPoint) {
17713 var x1 = fromNode.x;
17714 var y1 = fromNode.y;
17715 var x2 = endPoint.x;
17716 var y2 = endPoint.y;
17717 var fromCenterX = x1 + fromNode.width / 2;
17718 var fromCenterY = y1 + fromNode.height / 2;
17719 var dx = Math.abs(x1 - x2);
17720 var dy = Math.abs(y1 - y2);
17721 var tanDYX = dy / dx;
17722 var fromDYX = fromNode.height / fromNode.width;
17723 var returnPoint = null;
17724
17725 if (y1 == y2 && x1 < x2) {
17726 returnPoint = new Point(x1 + fromNode.width, fromCenterY);
17727 } else if (y1 == y2 && x1 > x2) {
17728 returnPoint = new Point(x1, fromCenterY);
17729 } else if (x1 == x2 && y1 < y2) {
17730 returnPoint = new Point(fromCenterX, y1 + fromNode.height);
17731 } else if (x1 == x2 && y1 > y2) {
17732 returnPoint = new Point(fromCenterX, y1);
17733 }
17734
17735 if (x1 > x2 && y1 < y2) {
17736 if (fromDYX >= tanDYX) {
17737 returnPoint = new Point(x1, fromCenterY + tanDYX * fromNode.width / 2);
17738 } else {
17739 returnPoint = new Point(fromCenterX - dx / dy * fromNode.height / 2, y1 + fromNode.height);
17740 }
17741 } else if (x1 < x2 && y1 < y2) {
17742 //
17743 if (fromDYX >= tanDYX) {
17744 returnPoint = new Point(x1 + fromNode.width, fromCenterY + tanDYX * fromNode.width / 2);
17745 } else {
17746 returnPoint = new Point(fromCenterX + dx / dy * fromNode.height / 2, y1 + fromNode.height);
17747 }
17748 } else if (x1 < x2 && y1 > y2) {
17749 if (fromDYX >= tanDYX) {
17750 returnPoint = new Point(x1 + fromNode.width, fromCenterY - tanDYX * fromNode.width / 2);
17751 } else {
17752 returnPoint = new Point(fromCenterX + fromNode.height / 2 * dx / dy, y1);
17753 }
17754 } else if (x1 > x2 && y1 > y2) {
17755 if (fromDYX >= tanDYX) {
17756 returnPoint = new Point(x1, fromCenterY - fromNode.width / 2 * tanDYX);
17757 } else {
17758 returnPoint = new Point(fromCenterX - fromNode.height / 2 * dx / dy, y1);
17759 }
17760 }
17761
17762 return returnPoint;
17763};
17764
17765var getIntersectPoints = function getIntersectPoints(fromNode, endNode) {
17766 var endIntersectPoint = {
17767 x: 0,
17768 y: 0
17769 };
17770 endIntersectPoint.x = endNode.x + endNode.width / 2;
17771 endIntersectPoint.y = endNode.y + endNode.height / 2;
17772 var startPoint = getIntersectPoint(fromNode, endIntersectPoint);
17773 endIntersectPoint.x = fromNode.x + fromNode.width / 2;
17774 endIntersectPoint.y = fromNode.y + fromNode.height / 2;
17775 var endPoint = getIntersectPoint(endNode, endIntersectPoint);
17776 return {
17777 startPoint: startPoint,
17778 endPoint: endPoint
17779 };
17780};
17781
17782var drawRels = function drawRels(diagram, rels, getC4ShapeObj, diagObj) {
17783 var i = 0;
17784
17785 var _iterator = _createForOfIteratorHelper(rels),
17786 _step;
17787
17788 try {
17789 for (_iterator.s(); !(_step = _iterator.n()).done;) {
17790 var rel = _step.value;
17791 i = i + 1;
17792 var relTextWrap = rel.wrap && conf.wrap;
17793 var relConf = messageFont(conf);
17794 var diagramType = diagObj.db.getC4Type();
17795 if (diagramType === 'C4Dynamic') rel.label.text = i + ': ' + rel.label.text;
17796 var textLimitWidth = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.calculateTextWidth)(rel.label.text, relConf);
17797 calcC4ShapeTextWH('label', rel, relTextWrap, relConf, textLimitWidth);
17798
17799 if (rel.techn && rel.techn.text !== '') {
17800 textLimitWidth = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.calculateTextWidth)(rel.techn.text, relConf);
17801 calcC4ShapeTextWH('techn', rel, relTextWrap, relConf, textLimitWidth);
17802 }
17803
17804 if (rel.descr && rel.descr.text !== '') {
17805 textLimitWidth = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.calculateTextWidth)(rel.descr.text, relConf);
17806 calcC4ShapeTextWH('descr', rel, relTextWrap, relConf, textLimitWidth);
17807 }
17808
17809 var fromNode = getC4ShapeObj(rel.from);
17810 var endNode = getC4ShapeObj(rel.to);
17811 var points = getIntersectPoints(fromNode, endNode);
17812 rel.startPoint = points.startPoint;
17813 rel.endPoint = points.endPoint;
17814 }
17815 } catch (err) {
17816 _iterator.e(err);
17817 } finally {
17818 _iterator.f();
17819 }
17820
17821 _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].drawRels(diagram, rels, conf);
17822};
17823/**
17824 * @param diagram
17825 * @param parentBoundaryAlias
17826 * @param parentBounds
17827 * @param currentBoundarys
17828 * @param diagObj
17829 */
17830
17831function drawInsideBoundary(diagram, parentBoundaryAlias, parentBounds, currentBoundarys, diagObj) {
17832 var currentBounds = new Bounds(diagObj); // Calculate the width limit of the boundar. label/type 的长度,
17833
17834 currentBounds.data.widthLimit = parentBounds.data.widthLimit / Math.min(c4BoundaryInRow, currentBoundarys.length); // Math.min(
17835 // conf.width * conf.c4ShapeInRow + conf.c4ShapeMargin * conf.c4ShapeInRow * 2,
17836 // parentBounds.data.widthLimit / Math.min(conf.c4BoundaryInRow, currentBoundarys.length)
17837 // );
17838
17839 for (var i = 0; i < currentBoundarys.length; i++) {
17840 var currentBoundary = currentBoundarys[i];
17841 var Y = 0;
17842 currentBoundary.image = {
17843 width: 0,
17844 height: 0,
17845 Y: 0
17846 };
17847
17848 if (currentBoundary.sprite) {
17849 currentBoundary.image.width = 48;
17850 currentBoundary.image.height = 48;
17851 currentBoundary.image.Y = Y;
17852 Y = currentBoundary.image.Y + currentBoundary.image.height;
17853 }
17854
17855 var currentBoundaryTextWrap = currentBoundary.wrap && conf.wrap;
17856 var currentBoundaryLabelConf = boundaryFont(conf);
17857 currentBoundaryLabelConf.fontSize = currentBoundaryLabelConf.fontSize + 2;
17858 currentBoundaryLabelConf.fontWeight = 'bold';
17859 calcC4ShapeTextWH('label', currentBoundary, currentBoundaryTextWrap, currentBoundaryLabelConf, currentBounds.data.widthLimit);
17860 currentBoundary['label'].Y = Y + 8;
17861 Y = currentBoundary['label'].Y + currentBoundary['label'].height;
17862
17863 if (currentBoundary.type && currentBoundary.type.text !== '') {
17864 currentBoundary.type.text = '[' + currentBoundary.type.text + ']';
17865 var currentBoundaryTypeConf = boundaryFont(conf);
17866 calcC4ShapeTextWH('type', currentBoundary, currentBoundaryTextWrap, currentBoundaryTypeConf, currentBounds.data.widthLimit);
17867 currentBoundary['type'].Y = Y + 5;
17868 Y = currentBoundary['type'].Y + currentBoundary['type'].height;
17869 }
17870
17871 if (currentBoundary.descr && currentBoundary.descr.text !== '') {
17872 var currentBoundaryDescrConf = boundaryFont(conf);
17873 currentBoundaryDescrConf.fontSize = currentBoundaryDescrConf.fontSize - 2;
17874 calcC4ShapeTextWH('descr', currentBoundary, currentBoundaryTextWrap, currentBoundaryDescrConf, currentBounds.data.widthLimit);
17875 currentBoundary['descr'].Y = Y + 20;
17876 Y = currentBoundary['descr'].Y + currentBoundary['descr'].height;
17877 }
17878
17879 if (i == 0 || i % c4BoundaryInRow === 0) {
17880 // Calculate the drawing start point of the currentBoundarys.
17881 var _x = parentBounds.data.startx + conf.diagramMarginX;
17882
17883 var _y = parentBounds.data.stopy + conf.diagramMarginY + Y;
17884
17885 currentBounds.setData(_x, _x, _y, _y);
17886 } else {
17887 // Calculate the drawing start point of the currentBoundarys.
17888 var _x2 = currentBounds.data.stopx !== currentBounds.data.startx ? currentBounds.data.stopx + conf.diagramMarginX : currentBounds.data.startx;
17889
17890 var _y2 = currentBounds.data.starty;
17891 currentBounds.setData(_x2, _x2, _y2, _y2);
17892 }
17893
17894 currentBounds.name = currentBoundary.alias;
17895 var currentPersonOrSystemArray = diagObj.db.getC4ShapeArray(currentBoundary.alias);
17896 var currentPersonOrSystemKeys = diagObj.db.getC4ShapeKeys(currentBoundary.alias);
17897
17898 if (currentPersonOrSystemKeys.length > 0) {
17899 drawC4ShapeArray(currentBounds, diagram, currentPersonOrSystemArray, currentPersonOrSystemKeys);
17900 }
17901
17902 parentBoundaryAlias = currentBoundary.alias;
17903 var nextCurrentBoundarys = diagObj.db.getBoundarys(parentBoundaryAlias);
17904
17905 if (nextCurrentBoundarys.length > 0) {
17906 // draw boundary inside currentBoundary
17907 // bounds.init();
17908 // parentBoundaryWidthLimit = bounds.data.stopx - bounds.startx;
17909 drawInsideBoundary(diagram, parentBoundaryAlias, currentBounds, nextCurrentBoundarys, diagObj);
17910 } // draw boundary
17911
17912
17913 if (currentBoundary.alias !== 'global') drawBoundary(diagram, currentBoundary, currentBounds);
17914 parentBounds.data.stopy = Math.max(currentBounds.data.stopy + conf.c4ShapeMargin, parentBounds.data.stopy);
17915 parentBounds.data.stopx = Math.max(currentBounds.data.stopx + conf.c4ShapeMargin, parentBounds.data.stopx);
17916 globalBoundaryMaxX = Math.max(globalBoundaryMaxX, parentBounds.data.stopx);
17917 globalBoundaryMaxY = Math.max(globalBoundaryMaxY, parentBounds.data.stopy);
17918 }
17919}
17920/**
17921 * Draws a sequenceDiagram in the tag with id: id based on the graph definition in text.
17922 *
17923 * @param {any} text
17924 * @param _text
17925 * @param {any} id
17926 * @param _version
17927 * @param diagObj
17928 */
17929
17930
17931var draw = function draw(_text, id, _version, diagObj) {
17932 conf = _config__WEBPACK_IMPORTED_MODULE_7__.getConfig().c4;
17933 var securityLevel = _config__WEBPACK_IMPORTED_MODULE_7__.getConfig().securityLevel; // Handle root and Document for when rendering in sanbox mode
17934
17935 var sandboxElement;
17936
17937 if (securityLevel === 'sandbox') {
17938 sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('#i' + id);
17939 }
17940
17941 var root = securityLevel === 'sandbox' ? (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('body');
17942 var db = diagObj.db;
17943 diagObj.db.setWrap(conf.wrap);
17944 c4ShapeInRow = db.getC4ShapeInRow();
17945 c4BoundaryInRow = db.getC4BoundaryInRow();
17946 _logger__WEBPACK_IMPORTED_MODULE_8__.log.debug("C:".concat(JSON.stringify(conf, null, 2)));
17947 var diagram = securityLevel === 'sandbox' ? root.select("[id=\"".concat(id, "\"]")) : (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)("[id=\"".concat(id, "\"]"));
17948 _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].insertComputerIcon(diagram);
17949 _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].insertDatabaseIcon(diagram);
17950 _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].insertClockIcon(diagram);
17951 var screenBounds = new Bounds(diagObj);
17952 screenBounds.setData(conf.diagramMarginX, conf.diagramMarginX, conf.diagramMarginY, conf.diagramMarginY);
17953 screenBounds.data.widthLimit = screen.availWidth;
17954 globalBoundaryMaxX = conf.diagramMarginX;
17955 globalBoundaryMaxY = conf.diagramMarginY;
17956 var title = diagObj.db.getTitle();
17957 var c4type = diagObj.db.getC4Type();
17958 var currentBoundarys = diagObj.db.getBoundarys(''); // switch (c4type) {
17959 // case 'C4Context':
17960
17961 drawInsideBoundary(diagram, '', screenBounds, currentBoundarys, diagObj); // break;
17962 // }
17963 // The arrow head definition is attached to the svg once
17964
17965 _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].insertArrowHead(diagram);
17966 _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].insertArrowEnd(diagram);
17967 _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].insertArrowCrossHead(diagram);
17968 _svgDraw__WEBPACK_IMPORTED_MODULE_6__["default"].insertArrowFilledHead(diagram);
17969 drawRels(diagram, diagObj.db.getRels(), diagObj.db.getC4Shape, diagObj);
17970 screenBounds.data.stopx = globalBoundaryMaxX;
17971 screenBounds.data.stopy = globalBoundaryMaxY;
17972 var box = screenBounds.data; // Make sure the height of the diagram supports long menus.
17973
17974 var boxHeight = box.stopy - box.starty;
17975 var height = boxHeight + 2 * conf.diagramMarginY; // Make sure the width of the diagram supports wide menus.
17976
17977 var boxWidth = box.stopx - box.startx;
17978 var width = boxWidth + 2 * conf.diagramMarginX;
17979
17980 if (title) {
17981 diagram.append('text').text(title).attr('x', (box.stopx - box.startx) / 2 - 4 * conf.diagramMarginX).attr('y', box.starty + conf.diagramMarginY);
17982 }
17983
17984 (0,_utils__WEBPACK_IMPORTED_MODULE_4__.configureSvgSize)(diagram, height, width, conf.useMaxWidth);
17985 var extraVertForTitle = title ? 60 : 0;
17986 diagram.attr('viewBox', box.startx - conf.diagramMarginX + ' -' + (conf.diagramMarginY + extraVertForTitle) + ' ' + width + ' ' + (height + extraVertForTitle));
17987 (0,_accessibility__WEBPACK_IMPORTED_MODULE_9__["default"])(_parser_c4Diagram__WEBPACK_IMPORTED_MODULE_1__.parser.yy, diagram, id);
17988 _logger__WEBPACK_IMPORTED_MODULE_8__.log.debug("models:", box);
17989};
17990/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
17991 drawPersonOrSystemArray: drawC4ShapeArray,
17992 drawBoundary: drawBoundary,
17993 setConf: setConf,
17994 draw: draw
17995});
17996
17997/***/ }),
17998
17999/***/ "./src/diagrams/c4/styles.js":
18000/*!***********************************!*\
18001 !*** ./src/diagrams/c4/styles.js ***!
18002 \***********************************/
18003/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
18004
18005"use strict";
18006__webpack_require__.r(__webpack_exports__);
18007/* harmony export */ __webpack_require__.d(__webpack_exports__, {
18008/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
18009/* harmony export */ });
18010var getStyles = function getStyles(options) {
18011 return ".person {\n stroke: ".concat(options.personBorder, ";\n fill: ").concat(options.personBkg, ";\n }\n");
18012};
18013
18014/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getStyles);
18015
18016/***/ }),
18017
18018/***/ "./src/diagrams/c4/svgDraw.js":
18019/*!************************************!*\
18020 !*** ./src/diagrams/c4/svgDraw.js ***!
18021 \************************************/
18022/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
18023
18024"use strict";
18025__webpack_require__.r(__webpack_exports__);
18026/* harmony export */ __webpack_require__.d(__webpack_exports__, {
18027/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
18028/* harmony export */ "drawC4Shape": () => (/* binding */ drawC4Shape),
18029/* harmony export */ "drawEmbeddedImage": () => (/* binding */ drawEmbeddedImage),
18030/* harmony export */ "drawImage": () => (/* binding */ drawImage),
18031/* harmony export */ "drawLabel": () => (/* binding */ drawLabel),
18032/* harmony export */ "drawRect": () => (/* binding */ drawRect),
18033/* harmony export */ "drawRels": () => (/* binding */ drawRels),
18034/* harmony export */ "drawText": () => (/* binding */ drawText),
18035/* harmony export */ "getNoteRect": () => (/* binding */ getNoteRect),
18036/* harmony export */ "getTextObj": () => (/* binding */ getTextObj),
18037/* harmony export */ "insertArrowCrossHead": () => (/* binding */ insertArrowCrossHead),
18038/* harmony export */ "insertArrowEnd": () => (/* binding */ insertArrowEnd),
18039/* harmony export */ "insertArrowFilledHead": () => (/* binding */ insertArrowFilledHead),
18040/* harmony export */ "insertArrowHead": () => (/* binding */ insertArrowHead),
18041/* harmony export */ "insertClockIcon": () => (/* binding */ insertClockIcon),
18042/* harmony export */ "insertComputerIcon": () => (/* binding */ insertComputerIcon),
18043/* harmony export */ "insertDatabaseIcon": () => (/* binding */ insertDatabaseIcon),
18044/* harmony export */ "insertDynamicNumber": () => (/* binding */ insertDynamicNumber)
18045/* harmony export */ });
18046/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
18047/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @braintree/sanitize-url */ "./node_modules/@braintree/sanitize-url/dist/index.js");
18048function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
18049
18050function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
18051
18052function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
18053
18054
18055
18056
18057var drawRect = function drawRect(elem, rectData) {
18058 var rectElem = elem.append('rect');
18059 rectElem.attr('x', rectData.x);
18060 rectElem.attr('y', rectData.y);
18061 rectElem.attr('fill', rectData.fill);
18062 rectElem.attr('stroke', rectData.stroke);
18063 rectElem.attr('width', rectData.width);
18064 rectElem.attr('height', rectData.height);
18065 rectElem.attr('rx', rectData.rx);
18066 rectElem.attr('ry', rectData.ry);
18067
18068 if (rectData.attrs !== 'undefined' && rectData.attrs !== null) {
18069 for (var attrKey in rectData.attrs) {
18070 rectElem.attr(attrKey, rectData.attrs[attrKey]);
18071 }
18072 }
18073
18074 if (rectData.class !== 'undefined') {
18075 rectElem.attr('class', rectData.class);
18076 }
18077
18078 return rectElem;
18079};
18080var drawImage = function drawImage(elem, width, height, x, y, link) {
18081 var imageElem = elem.append('image');
18082 imageElem.attr('width', width);
18083 imageElem.attr('height', height);
18084 imageElem.attr('x', x);
18085 imageElem.attr('y', y);
18086 var sanitizedLink = link.startsWith('data:image/png;base64') ? link : (0,_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_0__.sanitizeUrl)(link);
18087 imageElem.attr('xlink:href', sanitizedLink);
18088};
18089var drawEmbeddedImage = function drawEmbeddedImage(elem, x, y, link) {
18090 var imageElem = elem.append('use');
18091 imageElem.attr('x', x);
18092 imageElem.attr('y', y);
18093 var sanitizedLink = (0,_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_0__.sanitizeUrl)(link);
18094 imageElem.attr('xlink:href', '#' + sanitizedLink);
18095};
18096var drawText = function drawText(elem, textData) {
18097 var prevTextHeight = 0,
18098 textHeight = 0;
18099 var lines = textData.text.split(_common_common__WEBPACK_IMPORTED_MODULE_1__["default"].lineBreakRegex);
18100 var textElems = [];
18101 var dy = 0;
18102
18103 var yfunc = function yfunc() {
18104 return textData.y;
18105 };
18106
18107 if (typeof textData.valign !== 'undefined' && typeof textData.textMargin !== 'undefined' && textData.textMargin > 0) {
18108 switch (textData.valign) {
18109 case 'top':
18110 case 'start':
18111 yfunc = function yfunc() {
18112 return Math.round(textData.y + textData.textMargin);
18113 };
18114
18115 break;
18116
18117 case 'middle':
18118 case 'center':
18119 yfunc = function yfunc() {
18120 return Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2);
18121 };
18122
18123 break;
18124
18125 case 'bottom':
18126 case 'end':
18127 yfunc = function yfunc() {
18128 return Math.round(textData.y + (prevTextHeight + textHeight + 2 * textData.textMargin) - textData.textMargin);
18129 };
18130
18131 break;
18132 }
18133 }
18134
18135 if (typeof textData.anchor !== 'undefined' && typeof textData.textMargin !== 'undefined' && typeof textData.width !== 'undefined') {
18136 switch (textData.anchor) {
18137 case 'left':
18138 case 'start':
18139 textData.x = Math.round(textData.x + textData.textMargin);
18140 textData.anchor = 'start';
18141 textData.dominantBaseline = 'text-after-edge';
18142 textData.alignmentBaseline = 'middle';
18143 break;
18144
18145 case 'middle':
18146 case 'center':
18147 textData.x = Math.round(textData.x + textData.width / 2);
18148 textData.anchor = 'middle';
18149 textData.dominantBaseline = 'middle';
18150 textData.alignmentBaseline = 'middle';
18151 break;
18152
18153 case 'right':
18154 case 'end':
18155 textData.x = Math.round(textData.x + textData.width - textData.textMargin);
18156 textData.anchor = 'end';
18157 textData.dominantBaseline = 'text-before-edge';
18158 textData.alignmentBaseline = 'middle';
18159 break;
18160 }
18161 }
18162
18163 for (var i = 0; i < lines.length; i++) {
18164 var line = lines[i];
18165
18166 if (typeof textData.textMargin !== 'undefined' && textData.textMargin === 0 && typeof textData.fontSize !== 'undefined') {
18167 dy = i * textData.fontSize;
18168 }
18169
18170 var textElem = elem.append('text');
18171 textElem.attr('x', textData.x);
18172 textElem.attr('y', yfunc());
18173
18174 if (typeof textData.anchor !== 'undefined') {
18175 textElem.attr('text-anchor', textData.anchor).attr('dominant-baseline', textData.dominantBaseline).attr('alignment-baseline', textData.alignmentBaseline);
18176 }
18177
18178 if (typeof textData.fontFamily !== 'undefined') {
18179 textElem.style('font-family', textData.fontFamily);
18180 }
18181
18182 if (typeof textData.fontSize !== 'undefined') {
18183 textElem.style('font-size', textData.fontSize);
18184 }
18185
18186 if (typeof textData.fontWeight !== 'undefined') {
18187 textElem.style('font-weight', textData.fontWeight);
18188 }
18189
18190 if (typeof textData.fill !== 'undefined') {
18191 textElem.attr('fill', textData.fill);
18192 }
18193
18194 if (typeof textData.class !== 'undefined') {
18195 textElem.attr('class', textData.class);
18196 }
18197
18198 if (typeof textData.dy !== 'undefined') {
18199 textElem.attr('dy', textData.dy);
18200 } else if (dy !== 0) {
18201 textElem.attr('dy', dy);
18202 }
18203
18204 if (textData.tspan) {
18205 var span = textElem.append('tspan');
18206 span.attr('x', textData.x);
18207
18208 if (typeof textData.fill !== 'undefined') {
18209 span.attr('fill', textData.fill);
18210 }
18211
18212 span.text(line);
18213 } else {
18214 textElem.text(line);
18215 }
18216
18217 if (typeof textData.valign !== 'undefined' && typeof textData.textMargin !== 'undefined' && textData.textMargin > 0) {
18218 textHeight += (textElem._groups || textElem)[0][0].getBBox().height;
18219 prevTextHeight = textHeight;
18220 }
18221
18222 textElems.push(textElem);
18223 }
18224
18225 return textElems;
18226};
18227var drawLabel = function drawLabel(elem, txtObject) {
18228 /**
18229 * @param {any} x
18230 * @param {any} y
18231 * @param {any} width
18232 * @param {any} height
18233 * @param {any} cut
18234 * @returns {any}
18235 */
18236 function genPoints(x, y, width, height, cut) {
18237 return x + ',' + y + ' ' + (x + width) + ',' + y + ' ' + (x + width) + ',' + (y + height - cut) + ' ' + (x + width - cut * 1.2) + ',' + (y + height) + ' ' + x + ',' + (y + height);
18238 }
18239
18240 var polygon = elem.append('polygon');
18241 polygon.attr('points', genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7));
18242 polygon.attr('class', 'labelBox');
18243 txtObject.y = txtObject.y + txtObject.height / 2;
18244 drawText(elem, txtObject);
18245 return polygon;
18246};
18247var drawRels = function drawRels(elem, rels, conf) {
18248 var relsElem = elem.append('g');
18249 var i = 0;
18250
18251 var _iterator = _createForOfIteratorHelper(rels),
18252 _step;
18253
18254 try {
18255 for (_iterator.s(); !(_step = _iterator.n()).done;) {
18256 var rel = _step.value;
18257 var textColor = rel.textColor ? rel.textColor : '#444444';
18258 var strokeColor = rel.lineColor ? rel.lineColor : '#444444';
18259 var offsetX = rel.offsetX ? parseInt(rel.offsetX) : 0;
18260 var offsetY = rel.offsetY ? parseInt(rel.offsetY) : 0;
18261 var url = '';
18262
18263 if (i === 0) {
18264 var line = relsElem.append('line');
18265 line.attr('x1', rel.startPoint.x);
18266 line.attr('y1', rel.startPoint.y);
18267 line.attr('x2', rel.endPoint.x);
18268 line.attr('y2', rel.endPoint.y);
18269 line.attr('stroke-width', '1');
18270 line.attr('stroke', strokeColor);
18271 line.style('fill', 'none');
18272 if (rel.type !== 'rel_b') line.attr('marker-end', 'url(' + url + '#arrowhead)');
18273 if (rel.type === 'birel' || rel.type === 'rel_b') line.attr('marker-start', 'url(' + url + '#arrowend)');
18274 i = -1;
18275 } else {
18276 var _line = relsElem.append('path');
18277
18278 _line.attr('fill', 'none').attr('stroke-width', '1').attr('stroke', strokeColor).attr('d', 'Mstartx,starty Qcontrolx,controly stopx,stopy '.replaceAll('startx', rel.startPoint.x).replaceAll('starty', rel.startPoint.y).replaceAll('controlx', rel.startPoint.x + (rel.endPoint.x - rel.startPoint.x) / 2 - (rel.endPoint.x - rel.startPoint.x) / 4).replaceAll('controly', rel.startPoint.y + (rel.endPoint.y - rel.startPoint.y) / 2).replaceAll('stopx', rel.endPoint.x).replaceAll('stopy', rel.endPoint.y));
18279
18280 if (rel.type !== 'rel_b') _line.attr('marker-end', 'url(' + url + '#arrowhead)');
18281 if (rel.type === 'birel' || rel.type === 'rel_b') _line.attr('marker-start', 'url(' + url + '#arrowend)');
18282 }
18283
18284 var messageConf = conf.messageFont();
18285
18286 _drawTextCandidateFunc(conf)(rel.label.text, relsElem, Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX, Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + offsetY, rel.label.width, rel.label.height, {
18287 fill: textColor
18288 }, messageConf);
18289
18290 if (rel.techn && rel.techn.text !== '') {
18291 messageConf = conf.messageFont();
18292
18293 _drawTextCandidateFunc(conf)('[' + rel.techn.text + ']', relsElem, Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX, Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + conf.messageFontSize + 5 + offsetY, Math.max(rel.label.width, rel.techn.width), rel.techn.height, {
18294 fill: textColor,
18295 'font-style': 'italic'
18296 }, messageConf);
18297 }
18298 }
18299 } catch (err) {
18300 _iterator.e(err);
18301 } finally {
18302 _iterator.f();
18303 }
18304};
18305/**
18306 * Draws an boundary in the diagram
18307 *
18308 * @param {any} elem - The diagram we'll draw to.
18309 * @param {any} boundary - The boundary to draw.
18310 * @param {any} conf - DrawText implementation discriminator object
18311 */
18312
18313var drawBoundary = function drawBoundary(elem, boundary, conf) {
18314 var boundaryElem = elem.append('g');
18315 var fillColor = boundary.bgColor ? boundary.bgColor : 'none';
18316 var strokeColor = boundary.borderColor ? boundary.borderColor : '#444444';
18317 var fontColor = boundary.fontColor ? boundary.fontColor : 'black';
18318 var attrsValue = {
18319 'stroke-width': 1.0,
18320 'stroke-dasharray': '7.0,7.0'
18321 };
18322 if (boundary.nodeType) attrsValue = {
18323 'stroke-width': 1.0
18324 };
18325 var rectData = {
18326 x: boundary.x,
18327 y: boundary.y,
18328 fill: fillColor,
18329 stroke: strokeColor,
18330 width: boundary.width,
18331 height: boundary.height,
18332 rx: 2.5,
18333 ry: 2.5,
18334 attrs: attrsValue
18335 };
18336 drawRect(boundaryElem, rectData); // draw label
18337
18338 var boundaryConf = conf.boundaryFont();
18339 boundaryConf.fontWeight = 'bold';
18340 boundaryConf.fontSize = boundaryConf.fontSize + 2;
18341 boundaryConf.fontColor = fontColor;
18342
18343 _drawTextCandidateFunc(conf)(boundary.label.text, boundaryElem, boundary.x, boundary.y + boundary.label.Y, boundary.width, boundary.height, {
18344 fill: '#444444'
18345 }, boundaryConf); // draw type
18346
18347
18348 if (boundary.type && boundary.type.text !== '') {
18349 boundaryConf = conf.boundaryFont();
18350 boundaryConf.fontColor = fontColor;
18351
18352 _drawTextCandidateFunc(conf)(boundary.type.text, boundaryElem, boundary.x, boundary.y + boundary.type.Y, boundary.width, boundary.height, {
18353 fill: '#444444'
18354 }, boundaryConf);
18355 } // draw descr
18356
18357
18358 if (boundary.descr && boundary.descr.text !== '') {
18359 boundaryConf = conf.boundaryFont();
18360 boundaryConf.fontSize = boundaryConf.fontSize - 2;
18361 boundaryConf.fontColor = fontColor;
18362
18363 _drawTextCandidateFunc(conf)(boundary.descr.text, boundaryElem, boundary.x, boundary.y + boundary.descr.Y, boundary.width, boundary.height, {
18364 fill: '#444444'
18365 }, boundaryConf);
18366 }
18367};
18368
18369var drawC4Shape = function drawC4Shape(elem, c4Shape, conf) {
18370 var fillColor = c4Shape.bgColor ? c4Shape.bgColor : conf[c4Shape.typeC4Shape.text + '_bg_color'];
18371 var strokeColor = c4Shape.borderColor ? c4Shape.borderColor : conf[c4Shape.typeC4Shape.text + '_border_color'];
18372 var fontColor = c4Shape.fontColor ? c4Shape.fontColor : '#FFFFFF';
18373 var personImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=';
18374
18375 switch (c4Shape.typeC4Shape.text) {
18376 case 'person':
18377 personImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=';
18378 break;
18379
18380 case 'external_person':
18381 personImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=';
18382 break;
18383 }
18384
18385 var c4ShapeElem = elem.append('g');
18386 c4ShapeElem.attr('class', 'person-man'); // <rect fill="#08427B" height="119.2188" rx="2.5" ry="2.5" style="stroke:#073B6F;stroke-width:0.5;" width="110" x="120" y="7"/>
18387 // draw rect of c4Shape
18388
18389 var rect = getNoteRect();
18390
18391 switch (c4Shape.typeC4Shape.text) {
18392 case 'person':
18393 case 'external_person':
18394 case 'system':
18395 case 'external_system':
18396 case 'container':
18397 case 'external_container':
18398 case 'component':
18399 case 'external_component':
18400 rect.x = c4Shape.x;
18401 rect.y = c4Shape.y;
18402 rect.fill = fillColor;
18403 rect.width = c4Shape.width;
18404 rect.height = c4Shape.height;
18405 rect.style = 'stroke:' + strokeColor + ';stroke-width:0.5;';
18406 rect.rx = 2.5;
18407 rect.ry = 2.5;
18408 drawRect(c4ShapeElem, rect);
18409 break;
18410
18411 case 'system_db':
18412 case 'external_system_db':
18413 case 'container_db':
18414 case 'external_container_db':
18415 case 'component_db':
18416 case 'external_component_db':
18417 c4ShapeElem.append('path').attr('fill', fillColor).attr('stroke-width', '0.5').attr('stroke', strokeColor).attr('d', 'Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height'.replaceAll('startx', c4Shape.x).replaceAll('starty', c4Shape.y).replaceAll('half', c4Shape.width / 2).replaceAll('height', c4Shape.height));
18418 c4ShapeElem.append('path').attr('fill', 'none').attr('stroke-width', '0.5').attr('stroke', strokeColor).attr('d', 'Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10'.replaceAll('startx', c4Shape.x).replaceAll('starty', c4Shape.y).replaceAll('half', c4Shape.width / 2));
18419 break;
18420
18421 case 'system_queue':
18422 case 'external_system_queue':
18423 case 'container_queue':
18424 case 'external_container_queue':
18425 case 'component_queue':
18426 case 'external_component_queue':
18427 c4ShapeElem.append('path').attr('fill', fillColor).attr('stroke-width', '0.5').attr('stroke', strokeColor).attr('d', 'Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half'.replaceAll('startx', c4Shape.x).replaceAll('starty', c4Shape.y).replaceAll('width', c4Shape.width).replaceAll('half', c4Shape.height / 2));
18428 c4ShapeElem.append('path').attr('fill', 'none').attr('stroke-width', '0.5').attr('stroke', strokeColor).attr('d', 'Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half'.replaceAll('startx', c4Shape.x + c4Shape.width).replaceAll('starty', c4Shape.y).replaceAll('half', c4Shape.height / 2));
18429 break;
18430 } // draw type of c4Shape
18431
18432
18433 var c4ShapeFontConf = getC4ShapeFont(conf, c4Shape.typeC4Shape.text);
18434 c4ShapeElem.append('text').attr('fill', fontColor).attr('font-family', c4ShapeFontConf.fontFamily).attr('font-size', c4ShapeFontConf.fontSize - 2).attr('font-style', 'italic').attr('lengthAdjust', 'spacing').attr('textLength', c4Shape.typeC4Shape.width).attr('x', c4Shape.x + c4Shape.width / 2 - c4Shape.typeC4Shape.width / 2).attr('y', c4Shape.y + c4Shape.typeC4Shape.Y).text('<<' + c4Shape.typeC4Shape.text + '>>'); // draw image/sprite
18435
18436 switch (c4Shape.typeC4Shape.text) {
18437 case 'person':
18438 case 'external_person':
18439 drawImage(c4ShapeElem, 48, 48, c4Shape.x + c4Shape.width / 2 - 24, c4Shape.y + c4Shape.image.Y, personImg);
18440 break;
18441 } // draw label
18442
18443
18444 var textFontConf = conf[c4Shape.typeC4Shape.text + 'Font']();
18445 textFontConf.fontWeight = 'bold';
18446 textFontConf.fontSize = textFontConf.fontSize + 2;
18447 textFontConf.fontColor = fontColor;
18448
18449 _drawTextCandidateFunc(conf)(c4Shape.label.text, c4ShapeElem, c4Shape.x, c4Shape.y + c4Shape.label.Y, c4Shape.width, c4Shape.height, {
18450 fill: fontColor
18451 }, textFontConf); // draw techn/type
18452
18453
18454 textFontConf = conf[c4Shape.typeC4Shape.text + 'Font']();
18455 textFontConf.fontColor = fontColor;
18456
18457 if (c4Shape.thchn && c4Shape.thchn.text !== '') {
18458 _drawTextCandidateFunc(conf)(c4Shape.thchn.text, c4ShapeElem, c4Shape.x, c4Shape.y + c4Shape.thchn.Y, c4Shape.width, c4Shape.height, {
18459 fill: fontColor,
18460 'font-style': 'italic'
18461 }, textFontConf);
18462 } else if (c4Shape.type && c4Shape.type.text !== '') {
18463 _drawTextCandidateFunc(conf)(c4Shape.type.text, c4ShapeElem, c4Shape.x, c4Shape.y + c4Shape.type.Y, c4Shape.width, c4Shape.height, {
18464 fill: fontColor,
18465 'font-style': 'italic'
18466 }, textFontConf);
18467 } // draw descr
18468
18469
18470 if (c4Shape.descr && c4Shape.descr.text !== '') {
18471 textFontConf = conf.personFont();
18472 textFontConf.fontColor = fontColor;
18473
18474 _drawTextCandidateFunc(conf)(c4Shape.descr.text, c4ShapeElem, c4Shape.x, c4Shape.y + c4Shape.descr.Y, c4Shape.width, c4Shape.height, {
18475 fill: fontColor
18476 }, textFontConf);
18477 }
18478
18479 return c4Shape.height;
18480};
18481var insertDatabaseIcon = function insertDatabaseIcon(elem) {
18482 elem.append('defs').append('symbol').attr('id', 'database').attr('fill-rule', 'evenodd').attr('clip-rule', 'evenodd').append('path').attr('transform', 'scale(.5)').attr('d', 'M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z');
18483};
18484var insertComputerIcon = function insertComputerIcon(elem) {
18485 elem.append('defs').append('symbol').attr('id', 'computer').attr('width', '24').attr('height', '24').append('path').attr('transform', 'scale(.5)').attr('d', 'M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z');
18486};
18487var insertClockIcon = function insertClockIcon(elem) {
18488 elem.append('defs').append('symbol').attr('id', 'clock').attr('width', '24').attr('height', '24').append('path').attr('transform', 'scale(.5)').attr('d', 'M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z');
18489};
18490/**
18491 * Setup arrow head and define the marker. The result is appended to the svg.
18492 *
18493 * @param elem
18494 */
18495
18496var insertArrowHead = function insertArrowHead(elem) {
18497 elem.append('defs').append('marker').attr('id', 'arrowhead').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'); // this is actual shape for arrowhead
18498};
18499var insertArrowEnd = function insertArrowEnd(elem) {
18500 elem.append('defs').append('marker').attr('id', 'arrowend').attr('refX', 1).attr('refY', 5).attr('markerUnits', 'userSpaceOnUse').attr('markerWidth', 12).attr('markerHeight', 12).attr('orient', 'auto').append('path').attr('d', 'M 10 0 L 0 5 L 10 10 z'); // this is actual shape for arrowhead
18501};
18502/**
18503 * Setup arrow head and define the marker. The result is appended to the svg.
18504 *
18505 * @param {any} elem
18506 */
18507
18508var insertArrowFilledHead = function insertArrowFilledHead(elem) {
18509 elem.append('defs').append('marker').attr('id', 'filled-head').attr('refX', 18).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');
18510};
18511/**
18512 * Setup node number. The result is appended to the svg.
18513 *
18514 * @param {any} elem
18515 */
18516
18517var insertDynamicNumber = function insertDynamicNumber(elem) {
18518 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');
18519};
18520/**
18521 * Setup arrow head and define the marker. The result is appended to the svg.
18522 *
18523 * @param {any} elem
18524 */
18525
18526var insertArrowCrossHead = function insertArrowCrossHead(elem) {
18527 var defs = elem.append('defs');
18528 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
18529
18530 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
18531
18532 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
18533};
18534var getTextObj = function getTextObj() {
18535 return {
18536 x: 0,
18537 y: 0,
18538 fill: undefined,
18539 anchor: undefined,
18540 style: '#666',
18541 width: undefined,
18542 height: undefined,
18543 textMargin: 0,
18544 rx: 0,
18545 ry: 0,
18546 tspan: true,
18547 valign: undefined
18548 };
18549};
18550var getNoteRect = function getNoteRect() {
18551 return {
18552 x: 0,
18553 y: 0,
18554 fill: '#EDF2AE',
18555 stroke: '#666',
18556 width: 100,
18557 anchor: 'start',
18558 height: 100,
18559 rx: 0,
18560 ry: 0
18561 };
18562};
18563
18564var getC4ShapeFont = function getC4ShapeFont(cnf, typeC4Shape) {
18565 return {
18566 fontFamily: cnf[typeC4Shape + 'FontFamily'],
18567 fontSize: cnf[typeC4Shape + 'FontSize'],
18568 fontWeight: cnf[typeC4Shape + 'FontWeight']
18569 };
18570};
18571
18572var _drawTextCandidateFunc = function () {
18573 /**
18574 * @param {any} content
18575 * @param {any} g
18576 * @param {any} x
18577 * @param {any} y
18578 * @param {any} width
18579 * @param {any} height
18580 * @param {any} textAttrs
18581 */
18582 function byText(content, g, x, y, width, height, textAttrs) {
18583 var text = g.append('text').attr('x', x + width / 2).attr('y', y + height / 2 + 5).style('text-anchor', 'middle').text(content);
18584
18585 _setTextAttrs(text, textAttrs);
18586 }
18587 /**
18588 * @param {any} content
18589 * @param {any} g
18590 * @param {any} x
18591 * @param {any} y
18592 * @param {any} width
18593 * @param {any} height
18594 * @param {any} textAttrs
18595 * @param {any} conf
18596 */
18597
18598
18599 function byTspan(content, g, x, y, width, height, textAttrs, conf) {
18600 var fontSize = conf.fontSize,
18601 fontFamily = conf.fontFamily,
18602 fontWeight = conf.fontWeight;
18603 var lines = content.split(_common_common__WEBPACK_IMPORTED_MODULE_1__["default"].lineBreakRegex);
18604
18605 for (var i = 0; i < lines.length; i++) {
18606 var dy = i * fontSize - fontSize * (lines.length - 1) / 2;
18607 var text = g.append('text').attr('x', x + width / 2).attr('y', y).style('text-anchor', 'middle').attr('dominant-baseline', 'middle').style('font-size', fontSize).style('font-weight', fontWeight).style('font-family', fontFamily);
18608 text.append('tspan') // .attr('x', x + width / 2)
18609 .attr('dy', dy).text(lines[i]) // .attr('y', y + height / 2)
18610 .attr('alignment-baseline', 'mathematical');
18611
18612 _setTextAttrs(text, textAttrs);
18613 }
18614 }
18615 /**
18616 * @param {any} content
18617 * @param {any} g
18618 * @param {any} x
18619 * @param {any} y
18620 * @param {any} width
18621 * @param {any} height
18622 * @param {any} textAttrs
18623 * @param {any} conf
18624 */
18625
18626
18627 function byFo(content, g, x, y, width, height, textAttrs, conf) {
18628 var s = g.append('switch');
18629 var f = s.append('foreignObject').attr('x', x).attr('y', y).attr('width', width).attr('height', height);
18630 var text = f.append('xhtml:div').style('display', 'table').style('height', '100%').style('width', '100%');
18631 text.append('div').style('display', 'table-cell').style('text-align', 'center').style('vertical-align', 'middle').text(content);
18632 byTspan(content, s, x, y, width, height, textAttrs, conf);
18633
18634 _setTextAttrs(text, textAttrs);
18635 }
18636 /**
18637 * @param {any} toText
18638 * @param {any} fromTextAttrsDict
18639 */
18640
18641
18642 function _setTextAttrs(toText, fromTextAttrsDict) {
18643 for (var key in fromTextAttrsDict) {
18644 if (fromTextAttrsDict.hasOwnProperty(key)) {
18645 // eslint-disable-line
18646 toText.attr(key, fromTextAttrsDict[key]);
18647 }
18648 }
18649 }
18650
18651 return function (conf) {
18652 return conf.textPlacement === 'fo' ? byFo : conf.textPlacement === 'old' ? byText : byTspan;
18653 };
18654}();
18655
18656/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
18657 drawRect: drawRect,
18658 drawText: drawText,
18659 drawLabel: drawLabel,
18660 drawBoundary: drawBoundary,
18661 drawC4Shape: drawC4Shape,
18662 drawRels: drawRels,
18663 drawImage: drawImage,
18664 drawEmbeddedImage: drawEmbeddedImage,
18665 insertArrowHead: insertArrowHead,
18666 insertArrowEnd: insertArrowEnd,
18667 insertArrowFilledHead: insertArrowFilledHead,
18668 insertDynamicNumber: insertDynamicNumber,
18669 insertArrowCrossHead: insertArrowCrossHead,
18670 insertDatabaseIcon: insertDatabaseIcon,
18671 insertComputerIcon: insertComputerIcon,
18672 insertClockIcon: insertClockIcon,
18673 getTextObj: getTextObj,
18674 getNoteRect: getNoteRect,
18675 sanitizeUrl: _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_0__.sanitizeUrl
18676});
18677
18678/***/ }),
18679
18680/***/ "./src/diagrams/class/classDb.js":
18681/*!***************************************!*\
18682 !*** ./src/diagrams/class/classDb.js ***!
18683 \***************************************/
18684/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
18685
18686"use strict";
18687__webpack_require__.r(__webpack_exports__);
18688/* harmony export */ __webpack_require__.d(__webpack_exports__, {
18689/* harmony export */ "addAnnotation": () => (/* binding */ addAnnotation),
18690/* harmony export */ "addClass": () => (/* binding */ addClass),
18691/* harmony export */ "addMember": () => (/* binding */ addMember),
18692/* harmony export */ "addMembers": () => (/* binding */ addMembers),
18693/* harmony export */ "addRelation": () => (/* binding */ addRelation),
18694/* harmony export */ "bindFunctions": () => (/* binding */ bindFunctions),
18695/* harmony export */ "cleanupLabel": () => (/* binding */ cleanupLabel),
18696/* harmony export */ "clear": () => (/* binding */ clear),
18697/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
18698/* harmony export */ "getClass": () => (/* binding */ getClass),
18699/* harmony export */ "getClasses": () => (/* binding */ getClasses),
18700/* harmony export */ "getRelations": () => (/* binding */ getRelations),
18701/* harmony export */ "lineType": () => (/* binding */ lineType),
18702/* harmony export */ "lookUpDomId": () => (/* binding */ lookUpDomId),
18703/* harmony export */ "parseDirective": () => (/* binding */ parseDirective),
18704/* harmony export */ "relationType": () => (/* binding */ relationType),
18705/* harmony export */ "setClickEvent": () => (/* binding */ setClickEvent),
18706/* harmony export */ "setCssClass": () => (/* binding */ setCssClass),
18707/* harmony export */ "setLink": () => (/* binding */ setLink)
18708/* harmony export */ });
18709/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
18710/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
18711/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config */ "./src/config.js");
18712/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
18713/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
18714/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
18715/* harmony import */ var _commonDb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../commonDb */ "./src/commonDb.js");
18716function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
18717
18718function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
18719
18720function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
18721
18722function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
18723
18724function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
18725
18726function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
18727
18728
18729
18730
18731
18732
18733
18734
18735var MERMAID_DOM_ID_PREFIX = 'classid-';
18736var relations = [];
18737var classes = {};
18738var classCounter = 0;
18739var funs = [];
18740
18741var sanitizeText = function sanitizeText(txt) {
18742 return _common_common__WEBPACK_IMPORTED_MODULE_1__["default"].sanitizeText(txt, _config__WEBPACK_IMPORTED_MODULE_2__.getConfig());
18743};
18744
18745var parseDirective = function parseDirective(statement, context, type) {
18746 _mermaidAPI__WEBPACK_IMPORTED_MODULE_3__["default"].parseDirective(this, statement, context, type);
18747};
18748
18749var splitClassNameAndType = function splitClassNameAndType(id) {
18750 var genericType = '';
18751 var className = id;
18752
18753 if (id.indexOf('~') > 0) {
18754 var split = id.split('~');
18755 className = split[0];
18756 genericType = _common_common__WEBPACK_IMPORTED_MODULE_1__["default"].sanitizeText(split[1], _config__WEBPACK_IMPORTED_MODULE_2__.getConfig());
18757 }
18758
18759 return {
18760 className: className,
18761 type: genericType
18762 };
18763};
18764/**
18765 * Function called by parser when a node definition has been found.
18766 *
18767 * @param id
18768 * @public
18769 */
18770
18771
18772var addClass = function addClass(id) {
18773 var classId = splitClassNameAndType(id); // Only add class if not exists
18774
18775 if (typeof classes[classId.className] !== 'undefined') return;
18776 classes[classId.className] = {
18777 id: classId.className,
18778 type: classId.type,
18779 cssClasses: [],
18780 methods: [],
18781 members: [],
18782 annotations: [],
18783 domId: MERMAID_DOM_ID_PREFIX + classId.className + '-' + classCounter
18784 };
18785 classCounter++;
18786};
18787/**
18788 * Function to lookup domId from id in the graph definition.
18789 *
18790 * @param id
18791 * @public
18792 */
18793
18794var lookUpDomId = function lookUpDomId(id) {
18795 var classKeys = Object.keys(classes);
18796
18797 for (var i = 0; i < classKeys.length; i++) {
18798 if (classes[classKeys[i]].id === id) {
18799 return classes[classKeys[i]].domId;
18800 }
18801 }
18802};
18803var clear = function clear() {
18804 relations = [];
18805 classes = {};
18806 funs = [];
18807 funs.push(setupToolTips);
18808 (0,_commonDb__WEBPACK_IMPORTED_MODULE_4__.clear)();
18809};
18810var getClass = function getClass(id) {
18811 return classes[id];
18812};
18813var getClasses = function getClasses() {
18814 return classes;
18815};
18816var getRelations = function getRelations() {
18817 return relations;
18818};
18819var addRelation = function addRelation(relation) {
18820 _logger__WEBPACK_IMPORTED_MODULE_5__.log.debug('Adding relation: ' + JSON.stringify(relation));
18821 addClass(relation.id1);
18822 addClass(relation.id2);
18823 relation.id1 = splitClassNameAndType(relation.id1).className;
18824 relation.id2 = splitClassNameAndType(relation.id2).className;
18825 relation.relationTitle1 = _common_common__WEBPACK_IMPORTED_MODULE_1__["default"].sanitizeText(relation.relationTitle1.trim(), _config__WEBPACK_IMPORTED_MODULE_2__.getConfig());
18826 relation.relationTitle2 = _common_common__WEBPACK_IMPORTED_MODULE_1__["default"].sanitizeText(relation.relationTitle2.trim(), _config__WEBPACK_IMPORTED_MODULE_2__.getConfig());
18827 relations.push(relation);
18828};
18829/**
18830 * Adds an annotation to the specified class Annotations mark special properties of the given type
18831 * (like 'interface' or 'service')
18832 *
18833 * @param className The class name
18834 * @param annotation The name of the annotation without any brackets
18835 * @public
18836 */
18837
18838var addAnnotation = function addAnnotation(className, annotation) {
18839 var validatedClassName = splitClassNameAndType(className).className;
18840 classes[validatedClassName].annotations.push(annotation);
18841};
18842/**
18843 * Adds a member to the specified class
18844 *
18845 * @param className The class name
18846 * @param member The full name of the member. If the member is enclosed in <<brackets>> it is
18847 * treated as an annotation If the member is ending with a closing bracket ) it is treated as a
18848 * method Otherwise the member will be treated as a normal property
18849 * @public
18850 */
18851
18852var addMember = function addMember(className, member) {
18853 var validatedClassName = splitClassNameAndType(className).className;
18854 var theClass = classes[validatedClassName];
18855
18856 if (typeof member === 'string') {
18857 // Member can contain white spaces, we trim them out
18858 var memberString = member.trim();
18859
18860 if (memberString.startsWith('<<') && memberString.endsWith('>>')) {
18861 // Remove leading and trailing brackets
18862 // theClass.annotations.push(memberString.substring(2, memberString.length - 2));
18863 theClass.annotations.push(sanitizeText(memberString.substring(2, memberString.length - 2)));
18864 } else if (memberString.indexOf(')') > 0) {
18865 theClass.methods.push(sanitizeText(memberString));
18866 } else if (memberString) {
18867 theClass.members.push(sanitizeText(memberString));
18868 }
18869 }
18870};
18871var addMembers = function addMembers(className, members) {
18872 if (Array.isArray(members)) {
18873 members.reverse();
18874 members.forEach(function (member) {
18875 return addMember(className, member);
18876 });
18877 }
18878};
18879var cleanupLabel = function cleanupLabel(label) {
18880 if (label.substring(0, 1) === ':') {
18881 return _common_common__WEBPACK_IMPORTED_MODULE_1__["default"].sanitizeText(label.substr(1).trim(), _config__WEBPACK_IMPORTED_MODULE_2__.getConfig());
18882 } else {
18883 return sanitizeText(label.trim());
18884 }
18885};
18886/**
18887 * Called by parser when a special node is found, e.g. a clickable element.
18888 *
18889 * @param ids Comma separated list of ids
18890 * @param className Class to add
18891 */
18892
18893var setCssClass = function setCssClass(ids, className) {
18894 ids.split(',').forEach(function (_id) {
18895 var id = _id;
18896 if (_id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id;
18897
18898 if (typeof classes[id] !== 'undefined') {
18899 classes[id].cssClasses.push(className);
18900 }
18901 });
18902};
18903/**
18904 * Called by parser when a tooltip is found, e.g. a clickable element.
18905 *
18906 * @param ids Comma separated list of ids
18907 * @param tooltip Tooltip to add
18908 */
18909
18910var setTooltip = function setTooltip(ids, tooltip) {
18911 var config = _config__WEBPACK_IMPORTED_MODULE_2__.getConfig();
18912 ids.split(',').forEach(function (id) {
18913 if (typeof tooltip !== 'undefined') {
18914 classes[id].tooltip = _common_common__WEBPACK_IMPORTED_MODULE_1__["default"].sanitizeText(tooltip, config);
18915 }
18916 });
18917};
18918/**
18919 * Called by parser when a link is found. Adds the URL to the vertex data.
18920 *
18921 * @param ids Comma separated list of ids
18922 * @param linkStr URL to create a link for
18923 * @param target Target of the link, _blank by default as originally defined in the svgDraw.js file
18924 */
18925
18926
18927var setLink = function setLink(ids, linkStr, target) {
18928 var config = _config__WEBPACK_IMPORTED_MODULE_2__.getConfig();
18929 ids.split(',').forEach(function (_id) {
18930 var id = _id;
18931 if (_id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id;
18932
18933 if (typeof classes[id] !== 'undefined') {
18934 classes[id].link = _utils__WEBPACK_IMPORTED_MODULE_6__["default"].formatUrl(linkStr, config);
18935
18936 if (config.securityLevel === 'sandbox') {
18937 classes[id].linkTarget = '_top';
18938 } else if (typeof target === 'string') {
18939 classes[id].linkTarget = sanitizeText(target);
18940 } else {
18941 classes[id].linkTarget = '_blank';
18942 }
18943 }
18944 });
18945 setCssClass(ids, 'clickable');
18946};
18947/**
18948 * Called by parser when a click definition is found. Registers an event handler.
18949 *
18950 * @param ids Comma separated list of ids
18951 * @param functionName Function to be called on click
18952 * @param functionArgs Function args the function should be called with
18953 */
18954
18955var setClickEvent = function setClickEvent(ids, functionName, functionArgs) {
18956 ids.split(',').forEach(function (id) {
18957 setClickFunc(id, functionName, functionArgs);
18958 classes[id].haveCallback = true;
18959 });
18960 setCssClass(ids, 'clickable');
18961};
18962
18963var setClickFunc = function setClickFunc(domId, functionName, functionArgs) {
18964 var config = _config__WEBPACK_IMPORTED_MODULE_2__.getConfig();
18965 var id = domId;
18966 var elemId = lookUpDomId(id);
18967
18968 if (config.securityLevel !== 'loose') {
18969 return;
18970 }
18971
18972 if (typeof functionName === 'undefined') {
18973 return;
18974 }
18975
18976 if (typeof classes[id] !== 'undefined') {
18977 var argList = [];
18978
18979 if (typeof functionArgs === 'string') {
18980 /* Splits functionArgs by ',', ignoring all ',' in double quoted strings */
18981 argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
18982
18983 for (var i = 0; i < argList.length; i++) {
18984 var item = argList[i].trim();
18985 /* Removes all double quotes at the start and end of an argument */
18986
18987 /* This preserves all starting and ending whitespace inside */
18988
18989 if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
18990 item = item.substr(1, item.length - 2);
18991 }
18992
18993 argList[i] = item;
18994 }
18995 }
18996 /* if no arguments passed into callback, default to passing in id */
18997
18998
18999 if (argList.length === 0) {
19000 argList.push(elemId);
19001 }
19002
19003 funs.push(function () {
19004 var elem = document.querySelector("[id=\"".concat(elemId, "\"]"));
19005
19006 if (elem !== null) {
19007 elem.addEventListener('click', function () {
19008 _utils__WEBPACK_IMPORTED_MODULE_6__["default"].runFunc.apply(_utils__WEBPACK_IMPORTED_MODULE_6__["default"], [functionName].concat(_toConsumableArray(argList)));
19009 }, false);
19010 }
19011 });
19012 }
19013};
19014
19015var bindFunctions = function bindFunctions(element) {
19016 funs.forEach(function (fun) {
19017 fun(element);
19018 });
19019};
19020var lineType = {
19021 LINE: 0,
19022 DOTTED_LINE: 1
19023};
19024var relationType = {
19025 AGGREGATION: 0,
19026 EXTENSION: 1,
19027 COMPOSITION: 2,
19028 DEPENDENCY: 3
19029};
19030
19031var setupToolTips = function setupToolTips(element) {
19032 var tooltipElem = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('.mermaidTooltip');
19033
19034 if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
19035 tooltipElem = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('body').append('div').attr('class', 'mermaidTooltip').style('opacity', 0);
19036 }
19037
19038 var svg = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(element).select('svg');
19039 var nodes = svg.selectAll('g.node');
19040 nodes.on('mouseover', function () {
19041 var el = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(this);
19042 var title = el.attr('title'); // Dont try to draw a tooltip if no data is provided
19043
19044 if (title === null) {
19045 return;
19046 }
19047
19048 var rect = this.getBoundingClientRect();
19049 tooltipElem.transition().duration(200).style('opacity', '.9');
19050 tooltipElem.text(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');
19051 el.classed('hover', true);
19052 }).on('mouseout', function () {
19053 tooltipElem.transition().duration(500).style('opacity', 0);
19054 var el = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(this);
19055 el.classed('hover', false);
19056 });
19057};
19058
19059funs.push(setupToolTips);
19060var direction = 'TB';
19061
19062var getDirection = function getDirection() {
19063 return direction;
19064};
19065
19066var setDirection = function setDirection(dir) {
19067 direction = dir;
19068};
19069
19070/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
19071 parseDirective: parseDirective,
19072 setAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_4__.setAccTitle,
19073 getAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_4__.getAccTitle,
19074 getAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_4__.getAccDescription,
19075 setAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_4__.setAccDescription,
19076 getConfig: function getConfig() {
19077 return _config__WEBPACK_IMPORTED_MODULE_2__.getConfig().class;
19078 },
19079 addClass: addClass,
19080 bindFunctions: bindFunctions,
19081 clear: clear,
19082 getClass: getClass,
19083 getClasses: getClasses,
19084 addAnnotation: addAnnotation,
19085 getRelations: getRelations,
19086 addRelation: addRelation,
19087 getDirection: getDirection,
19088 setDirection: setDirection,
19089 addMember: addMember,
19090 addMembers: addMembers,
19091 cleanupLabel: cleanupLabel,
19092 lineType: lineType,
19093 relationType: relationType,
19094 setClickEvent: setClickEvent,
19095 setCssClass: setCssClass,
19096 setLink: setLink,
19097 setTooltip: setTooltip,
19098 lookUpDomId: lookUpDomId
19099});
19100
19101/***/ }),
19102
19103/***/ "./src/diagrams/class/classRenderer-v2.js":
19104/*!************************************************!*\
19105 !*** ./src/diagrams/class/classRenderer-v2.js ***!
19106 \************************************************/
19107/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
19108
19109"use strict";
19110__webpack_require__.r(__webpack_exports__);
19111/* harmony export */ __webpack_require__.d(__webpack_exports__, {
19112/* harmony export */ "addClasses": () => (/* binding */ addClasses),
19113/* harmony export */ "addRelations": () => (/* binding */ addRelations),
19114/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
19115/* harmony export */ "draw": () => (/* binding */ draw),
19116/* harmony export */ "setConf": () => (/* binding */ setConf)
19117/* harmony export */ });
19118/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
19119/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
19120/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_1__);
19121/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
19122/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../config */ "./src/config.js");
19123/* harmony import */ var _dagre_wrapper_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../dagre-wrapper/index.js */ "./src/dagre-wrapper/index.js");
19124/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
19125/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
19126/* harmony import */ var _accessibility__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../accessibility */ "./src/accessibility.js");
19127
19128
19129
19130
19131 // import addHtmlLabel from 'dagre-d3/lib/label/add-html-label.js';
19132
19133
19134
19135
19136
19137var idCache = {};
19138var padding = 20;
19139
19140var sanitizeText = function sanitizeText(txt) {
19141 return _common_common__WEBPACK_IMPORTED_MODULE_2__["default"].sanitizeText(txt, (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)());
19142};
19143
19144var conf = {
19145 dividerMargin: 10,
19146 padding: 5,
19147 textHeight: 10
19148};
19149/**
19150 * Function that adds the vertices found during parsing to the graph to be rendered.
19151 *
19152 * @param {Object<
19153 * string,
19154 * { cssClasses: string[]; text: string; id: string; type: string; domId: string }
19155 * >} classes
19156 * Object containing the vertices.
19157 * @param {SVGGElement} g The graph that is to be drawn.
19158 */
19159
19160var addClasses = function addClasses(classes, g) {
19161 // const svg = select(`[id="${svgId}"]`);
19162 var keys = Object.keys(classes);
19163 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('keys:', keys);
19164 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info(classes); // Iterate through each item in the vertex object (containing all the vertices found) in the graph definition
19165
19166 keys.forEach(function (id) {
19167 var vertex = classes[id];
19168 /**
19169 * Variable for storing the classes for the vertex
19170 *
19171 * @type {string}
19172 */
19173
19174 var cssClassStr = '';
19175
19176 if (vertex.cssClasses.length > 0) {
19177 cssClassStr = cssClassStr + ' ' + vertex.cssClasses.join(' ');
19178 } // if (vertex.classes.length > 0) {
19179 // classStr = vertex.classes.join(' ');
19180 // }
19181
19182
19183 var styles = {
19184 labelStyle: ''
19185 }; //getStylesFromArray(vertex.styles);
19186 // Use vertex id as text in the box if no text is provided by the graph definition
19187
19188 var vertexText = vertex.text !== undefined ? vertex.text : vertex.id; // We create a SVG label, either by delegating to addHtmlLabel or manually
19189 // let vertexNode;
19190 // if (evaluate(getConfig().flowchart.htmlLabels)) {
19191 // const node = {
19192 // label: vertexText.replace(
19193 // /fa[lrsb]?:fa-[\w-]+/g,
19194 // s => `<i class='${s.replace(':', ' ')}'></i>`
19195 // )
19196 // };
19197 // vertexNode = addHtmlLabel(svg, node).node();
19198 // vertexNode.parentNode.removeChild(vertexNode);
19199 // } else {
19200 // const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
19201 // svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));
19202 // const rows = vertexText.split(common.lineBreakRegex);
19203 // for (let j = 0; j < rows.length; j++) {
19204 // const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
19205 // tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
19206 // tspan.setAttribute('dy', '1em');
19207 // tspan.setAttribute('x', '1');
19208 // tspan.textContent = rows[j];
19209 // svgLabel.appendChild(tspan);
19210 // }
19211 // vertexNode = svgLabel;
19212 // }
19213
19214 var radious = 0;
19215 var _shape = ''; // Set the shape based parameters
19216
19217 switch (vertex.type) {
19218 case 'class':
19219 _shape = 'class_box';
19220 break;
19221
19222 default:
19223 _shape = 'class_box';
19224 } // Add the node
19225
19226
19227 g.setNode(vertex.id, {
19228 labelStyle: styles.labelStyle,
19229 shape: _shape,
19230 labelText: sanitizeText(vertexText),
19231 classData: vertex,
19232 rx: radious,
19233 ry: radious,
19234 class: cssClassStr,
19235 style: styles.style,
19236 id: vertex.id,
19237 domId: vertex.domId,
19238 haveCallback: vertex.haveCallback,
19239 link: vertex.link,
19240 width: vertex.type === 'group' ? 500 : undefined,
19241 type: vertex.type,
19242 padding: (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().flowchart.padding
19243 });
19244 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('setNode', {
19245 labelStyle: styles.labelStyle,
19246 shape: _shape,
19247 labelText: vertexText,
19248 rx: radious,
19249 ry: radious,
19250 class: cssClassStr,
19251 style: styles.style,
19252 id: vertex.id,
19253 width: vertex.type === 'group' ? 500 : undefined,
19254 type: vertex.type,
19255 padding: (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().flowchart.padding
19256 });
19257 });
19258};
19259/**
19260 * Add edges to graph based on parsed graph definition
19261 *
19262 * @param relations
19263 * @param {object} g The graph object
19264 */
19265
19266var addRelations = function addRelations(relations, g) {
19267 var conf = (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().flowchart;
19268 var cnt = 0;
19269 var defaultStyle;
19270 var defaultLabelStyle; // if (typeof relations.defaultStyle !== 'undefined') {
19271 // const defaultStyles = getStylesFromArray(relations.defaultStyle);
19272 // defaultStyle = defaultStyles.style;
19273 // defaultLabelStyle = defaultStyles.labelStyle;
19274 // }
19275
19276 relations.forEach(function (edge) {
19277 cnt++;
19278 var edgeData = {}; //Set relationship style and line type
19279
19280 edgeData.classes = 'relation';
19281 edgeData.pattern = edge.relation.lineType == 1 ? 'dashed' : 'solid';
19282 edgeData.id = 'id' + cnt; // Set link type for rendering
19283
19284 if (edge.type === 'arrow_open') {
19285 edgeData.arrowhead = 'none';
19286 } else {
19287 edgeData.arrowhead = 'normal';
19288 }
19289
19290 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info(edgeData, edge); //Set edge extra labels
19291 //edgeData.startLabelLeft = edge.relationTitle1;
19292
19293 edgeData.startLabelRight = edge.relationTitle1 === 'none' ? '' : edge.relationTitle1;
19294 edgeData.endLabelLeft = edge.relationTitle2 === 'none' ? '' : edge.relationTitle2; //edgeData.endLabelRight = edge.relationTitle2;
19295 //Set relation arrow types
19296
19297 edgeData.arrowTypeStart = getArrowMarker(edge.relation.type1);
19298 edgeData.arrowTypeEnd = getArrowMarker(edge.relation.type2);
19299 var style = '';
19300 var labelStyle = '';
19301
19302 if (typeof edge.style !== 'undefined') {
19303 var styles = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.getStylesFromArray)(edge.style);
19304 style = styles.style;
19305 labelStyle = styles.labelStyle;
19306 } else {
19307 style = 'fill:none';
19308
19309 if (typeof defaultStyle !== 'undefined') {
19310 style = defaultStyle;
19311 }
19312
19313 if (typeof defaultLabelStyle !== 'undefined') {
19314 labelStyle = defaultLabelStyle;
19315 }
19316 }
19317
19318 edgeData.style = style;
19319 edgeData.labelStyle = labelStyle;
19320
19321 if (typeof edge.interpolate !== 'undefined') {
19322 edgeData.curve = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.interpolateToCurve)(edge.interpolate, d3__WEBPACK_IMPORTED_MODULE_0__.curveLinear);
19323 } else if (typeof relations.defaultInterpolate !== 'undefined') {
19324 edgeData.curve = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.interpolateToCurve)(relations.defaultInterpolate, d3__WEBPACK_IMPORTED_MODULE_0__.curveLinear);
19325 } else {
19326 edgeData.curve = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.interpolateToCurve)(conf.curve, d3__WEBPACK_IMPORTED_MODULE_0__.curveLinear);
19327 }
19328
19329 edge.text = edge.title;
19330
19331 if (typeof edge.text === 'undefined') {
19332 if (typeof edge.style !== 'undefined') {
19333 edgeData.arrowheadStyle = 'fill: #333';
19334 }
19335 } else {
19336 edgeData.arrowheadStyle = 'fill: #333';
19337 edgeData.labelpos = 'c';
19338
19339 if ((0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().flowchart.htmlLabels) {
19340 // eslint-disable-line
19341 edgeData.labelType = 'html';
19342 edgeData.label = '<span class="edgeLabel">' + edge.text + '</span>';
19343 } else {
19344 edgeData.labelType = 'text';
19345 edgeData.label = edge.text.replace(_common_common__WEBPACK_IMPORTED_MODULE_2__["default"].lineBreakRegex, '\n');
19346
19347 if (typeof edge.style === 'undefined') {
19348 edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none';
19349 }
19350
19351 edgeData.labelStyle = edgeData.labelStyle.replace('color:', 'fill:');
19352 }
19353 } // Add the edge to the graph
19354
19355
19356 g.setEdge(edge.id1, edge.id2, edgeData, cnt);
19357 });
19358};
19359/**
19360 * Gets the ID with the same label as in the cache
19361 *
19362 * @param {string} label The label to look for
19363 * @returns {string} The resulting ID
19364 */
19365
19366var getGraphId = function getGraphId(label) {
19367 var foundEntry = Object.entries(idCache).find(function (entry) {
19368 return entry[1].label === label;
19369 });
19370
19371 if (foundEntry) {
19372 return foundEntry[0];
19373 }
19374};
19375/**
19376 * Merges the value of `conf` with the passed `cnf`
19377 *
19378 * @param {object} cnf Config to merge
19379 */
19380
19381
19382var setConf = function setConf(cnf) {
19383 var keys = Object.keys(cnf);
19384 keys.forEach(function (key) {
19385 conf[key] = cnf[key];
19386 });
19387};
19388/**
19389 * Draws a flowchart in the tag with id: id based on the graph definition in text.
19390 *
19391 * @param {string} text
19392 * @param {string} id
19393 * @param _version
19394 * @param diagObj
19395 */
19396
19397var draw = function draw(text, id, _version, diagObj) {
19398 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('Drawing class - ', id); // diagObj.db.clear();
19399 // const parser = diagObj.db.parser;
19400 // parser.yy = classDb;
19401 // Parse the graph definition
19402 // try {
19403 // parser.parse(text);
19404 // } catch (err) {
19405 // log.debug('Parsing failed');
19406 // }
19407 // Fetch the default direction, use TD if none was found
19408 //let dir = 'TD';
19409
19410 var conf = (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().flowchart;
19411 var securityLevel = (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().securityLevel;
19412 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('config:', conf);
19413 var nodeSpacing = conf.nodeSpacing || 50;
19414 var rankSpacing = conf.rankSpacing || 50; // Create the input mermaid.graph
19415
19416 var g = new (graphlib__WEBPACK_IMPORTED_MODULE_1___default().Graph)({
19417 multigraph: true,
19418 compound: true
19419 }).setGraph({
19420 rankdir: diagObj.db.getDirection(),
19421 nodesep: nodeSpacing,
19422 ranksep: rankSpacing,
19423 marginx: 8,
19424 marginy: 8
19425 }).setDefaultEdgeLabel(function () {
19426 return {};
19427 }); // let subG;
19428 // const subGraphs = flowDb.getSubGraphs();
19429 // log.info('Subgraphs - ', subGraphs);
19430 // for (let i = subGraphs.length - 1; i >= 0; i--) {
19431 // subG = subGraphs[i];
19432 // log.info('Subgraph - ', subG);
19433 // flowDb.addVertex(subG.id, subG.title, 'group', undefined, subG.classes);
19434 // }
19435 // Fetch the vertices/nodes and edges/links from the parsed graph definition
19436
19437 var classes = diagObj.db.getClasses();
19438 var relations = diagObj.db.getRelations();
19439 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info(relations);
19440 addClasses(classes, g, id);
19441 addRelations(relations, g); // Add custom shapes
19442 // flowChartShapes.addToRenderV2(addShape);
19443 // Set up an SVG group so that we can translate the final graph.
19444
19445 var sandboxElement;
19446
19447 if (securityLevel === 'sandbox') {
19448 sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('#i' + id);
19449 }
19450
19451 var root = securityLevel === 'sandbox' ? (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('body');
19452 var svg = root.select("[id=\"".concat(id, "\"]")); // Run the renderer. This is what draws the final graph.
19453
19454 var element = root.select('#' + id + ' g');
19455 (0,_dagre_wrapper_index_js__WEBPACK_IMPORTED_MODULE_6__.render)(element, g, ['aggregation', 'extension', 'composition', 'dependency'], 'classDiagram', id);
19456 (0,_utils__WEBPACK_IMPORTED_MODULE_5__.setupGraphViewbox)(g, svg, conf.diagramPadding, conf.useMaxWidth); // Add label rects for non html labels
19457
19458 if (!conf.htmlLabels) {
19459 var doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document;
19460 var labels = doc.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
19461
19462 for (var k = 0; k < labels.length; k++) {
19463 var label = labels[k]; // Get dimensions of label
19464
19465 var dim = label.getBBox();
19466 var rect = doc.createElementNS('http://www.w3.org/2000/svg', 'rect');
19467 rect.setAttribute('rx', 0);
19468 rect.setAttribute('ry', 0);
19469 rect.setAttribute('width', dim.width);
19470 rect.setAttribute('height', dim.height); // rect.setAttribute('style', 'fill:#e8e8e8;');
19471
19472 label.insertBefore(rect, label.firstChild);
19473 }
19474 }
19475
19476 (0,_accessibility__WEBPACK_IMPORTED_MODULE_7__["default"])(diagObj.db, svg, id); // If node has a link, wrap it in an anchor SVG object.
19477 // const keys = Object.keys(classes);
19478 // keys.forEach(function(key) {
19479 // const vertex = classes[key];
19480 // if (vertex.link) {
19481 // const node = select('#' + id + ' [id="' + key + '"]');
19482 // if (node) {
19483 // const link = document.createElementNS('http://www.w3.org/2000/svg', 'a');
19484 // link.setAttributeNS('http://www.w3.org/2000/svg', 'class', vertex.classes.join(' '));
19485 // link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertex.link);
19486 // link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener');
19487 // const linkNode = node.insert(function() {
19488 // return link;
19489 // }, ':first-child');
19490 // const shape = node.select('.label-container');
19491 // if (shape) {
19492 // linkNode.append(function() {
19493 // return shape.node();
19494 // });
19495 // }
19496 // const label = node.select('.label');
19497 // if (label) {
19498 // linkNode.append(function() {
19499 // return label.node();
19500 // });
19501 // }
19502 // }
19503 // }
19504 // });
19505};
19506/**
19507 * Gets the arrow marker for a type index
19508 *
19509 * @param {number} type The type to look for
19510 * @returns {'aggregation' | 'extension' | 'composition' | 'dependency'} The arrow marker
19511 */
19512
19513function getArrowMarker(type) {
19514 var marker;
19515
19516 switch (type) {
19517 case 0:
19518 marker = 'aggregation';
19519 break;
19520
19521 case 1:
19522 marker = 'extension';
19523 break;
19524
19525 case 2:
19526 marker = 'composition';
19527 break;
19528
19529 case 3:
19530 marker = 'dependency';
19531 break;
19532
19533 default:
19534 marker = 'none';
19535 }
19536
19537 return marker;
19538}
19539
19540/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
19541 setConf: setConf,
19542 draw: draw
19543});
19544
19545/***/ }),
19546
19547/***/ "./src/diagrams/class/classRenderer.js":
19548/*!*********************************************!*\
19549 !*** ./src/diagrams/class/classRenderer.js ***!
19550 \*********************************************/
19551/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
19552
19553"use strict";
19554__webpack_require__.r(__webpack_exports__);
19555/* harmony export */ __webpack_require__.d(__webpack_exports__, {
19556/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
19557/* harmony export */ "draw": () => (/* binding */ draw)
19558/* harmony export */ });
19559/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
19560/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dagre */ "./node_modules/dagre/index.js");
19561/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dagre__WEBPACK_IMPORTED_MODULE_1__);
19562/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
19563/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_2__);
19564/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
19565/* harmony import */ var _svgDraw__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./svgDraw */ "./src/diagrams/class/svgDraw.js");
19566/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
19567/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../config */ "./src/config.js");
19568/* harmony import */ var _accessibility__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../accessibility */ "./src/accessibility.js");
19569
19570
19571
19572
19573
19574
19575
19576
19577var idCache = {};
19578var padding = 20;
19579var confa = {
19580 dividerMargin: 10,
19581 padding: 5,
19582 textHeight: 10
19583};
19584/**
19585 * Gets the ID with the same label as in the cache
19586 *
19587 * @param {string} label The label to look for
19588 * @returns {string} The resulting ID
19589 */
19590
19591var getGraphId = function getGraphId(label) {
19592 var foundEntry = Object.entries(idCache).find(function (entry) {
19593 return entry[1].label === label;
19594 });
19595
19596 if (foundEntry) {
19597 return foundEntry[0];
19598 }
19599};
19600/**
19601 * Setup arrow head and define the marker. The result is appended to the svg.
19602 *
19603 * @param {SVGSVGElement} elem The SVG element to append to
19604 */
19605
19606
19607var insertMarkers = function insertMarkers(elem) {
19608 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');
19609 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
19610
19611 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');
19612 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');
19613 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');
19614 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');
19615 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');
19616 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');
19617};
19618/**
19619 * Draws a flowchart in the tag with id: id based on the graph definition in text.
19620 *
19621 * @param {string} text
19622 * @param {string} id
19623 * @param version
19624 * @param _version
19625 * @param diagObj
19626 */
19627
19628
19629var draw = function draw(text, id, _version, diagObj) {
19630 var conf = (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().class;
19631 idCache = {}; // diagObj.db.clear();
19632 // diagObj.parser.parse(text);
19633
19634 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('Rendering diagram ' + text);
19635 var securityLevel = (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().securityLevel; // Handle root and Document for when rendering in sanbox mode
19636
19637 var sandboxElement;
19638
19639 if (securityLevel === 'sandbox') {
19640 sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('#i' + id);
19641 }
19642
19643 var root = securityLevel === 'sandbox' ? (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('body');
19644 var doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document; // Fetch the default direction, use TD if none was found
19645
19646 var diagram = root.select("[id='".concat(id, "']"));
19647 insertMarkers(diagram); // Layout graph, Create a new directed graph
19648
19649 var g = new (graphlib__WEBPACK_IMPORTED_MODULE_2___default().Graph)({
19650 multigraph: true
19651 }); // Set an object for the graph label
19652
19653 g.setGraph({
19654 isMultiGraph: true
19655 }); // Default to assigning a new object as a label for each new edge.
19656
19657 g.setDefaultEdgeLabel(function () {
19658 return {};
19659 });
19660 var classes = diagObj.db.getClasses();
19661 var keys = Object.keys(classes);
19662
19663 for (var i = 0; i < keys.length; i++) {
19664 var classDef = classes[keys[i]];
19665 var node = _svgDraw__WEBPACK_IMPORTED_MODULE_5__["default"].drawClass(diagram, classDef, conf, diagObj);
19666 idCache[node.id] = node; // Add nodes to the graph. The first argument is the node id. The second is
19667 // metadata about the node. In this case we're going to add labels to each of
19668 // our nodes.
19669
19670 g.setNode(node.id, node);
19671 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('Org height: ' + node.height);
19672 }
19673
19674 var relations = diagObj.db.getRelations();
19675 relations.forEach(function (relation) {
19676 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation));
19677 g.setEdge(getGraphId(relation.id1), getGraphId(relation.id2), {
19678 relation: relation
19679 }, relation.title || 'DEFAULT');
19680 });
19681 dagre__WEBPACK_IMPORTED_MODULE_1___default().layout(g);
19682 g.nodes().forEach(function (v) {
19683 if (typeof v !== 'undefined' && typeof g.node(v) !== 'undefined') {
19684 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('Node ' + v + ': ' + JSON.stringify(g.node(v)));
19685 root.select('#' + diagObj.db.lookUpDomId(v)).attr('transform', 'translate(' + (g.node(v).x - g.node(v).width / 2) + ',' + (g.node(v).y - g.node(v).height / 2) + ' )');
19686 }
19687 });
19688 g.edges().forEach(function (e) {
19689 if (typeof e !== 'undefined' && typeof g.edge(e) !== 'undefined') {
19690 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e)));
19691 _svgDraw__WEBPACK_IMPORTED_MODULE_5__["default"].drawEdge(diagram, g.edge(e), g.edge(e).relation, conf, diagObj);
19692 }
19693 });
19694 var svgBounds = diagram.node().getBBox();
19695 var width = svgBounds.width + padding * 2;
19696 var height = svgBounds.height + padding * 2;
19697 (0,_utils__WEBPACK_IMPORTED_MODULE_6__.configureSvgSize)(diagram, height, width, conf.useMaxWidth); // Ensure the viewBox includes the whole svgBounds area with extra space for padding
19698
19699 var vBox = "".concat(svgBounds.x - padding, " ").concat(svgBounds.y - padding, " ").concat(width, " ").concat(height);
19700 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug("viewBox ".concat(vBox));
19701 diagram.attr('viewBox', vBox);
19702 (0,_accessibility__WEBPACK_IMPORTED_MODULE_7__["default"])(diagObj.db, diagram, id);
19703};
19704/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
19705 draw: draw
19706});
19707
19708/***/ }),
19709
19710/***/ "./src/diagrams/class/styles.js":
19711/*!**************************************!*\
19712 !*** ./src/diagrams/class/styles.js ***!
19713 \**************************************/
19714/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
19715
19716"use strict";
19717__webpack_require__.r(__webpack_exports__);
19718/* harmony export */ __webpack_require__.d(__webpack_exports__, {
19719/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
19720/* harmony export */ });
19721var getStyles = function getStyles(options) {
19722 return "g.classGroup text {\n fill: ".concat(options.nodeBorder, ";\n fill: ").concat(options.classText, ";\n stroke: none;\n font-family: ").concat(options.fontFamily, ";\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ").concat(options.classText, ";\n}\n.edgeLabel .label rect {\n fill: ").concat(options.mainBkg, ";\n}\n.label text {\n fill: ").concat(options.classText, ";\n}\n.edgeLabel .label span {\n background: ").concat(options.mainBkg, ";\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ").concat(options.mainBkg, ";\n stroke: ").concat(options.nodeBorder, ";\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ").concat(options.nodeBorder, ";\n stroke: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ").concat(options.mainBkg, ";\n stroke: ").concat(options.nodeBorder, ";\n}\n\ng.classGroup line {\n stroke: ").concat(options.nodeBorder, ";\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ").concat(options.mainBkg, ";\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ").concat(options.nodeBorder, ";\n font-size: 10px;\n}\n\n.relation {\n stroke: ").concat(options.lineColor, ";\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n#compositionStart, .composition {\n fill: ").concat(options.lineColor, " !important;\n stroke: ").concat(options.lineColor, " !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ").concat(options.lineColor, " !important;\n stroke: ").concat(options.lineColor, " !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ").concat(options.lineColor, " !important;\n stroke: ").concat(options.lineColor, " !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ").concat(options.lineColor, " !important;\n stroke: ").concat(options.lineColor, " !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: ").concat(options.lineColor, " !important;\n stroke: ").concat(options.lineColor, " !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: ").concat(options.lineColor, " !important;\n stroke: ").concat(options.lineColor, " !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: ").concat(options.mainBkg, " !important;\n stroke: ").concat(options.lineColor, " !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: ").concat(options.mainBkg, " !important;\n stroke: ").concat(options.lineColor, " !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n}\n\n");
19723};
19724
19725/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getStyles);
19726
19727/***/ }),
19728
19729/***/ "./src/diagrams/class/svgDraw.js":
19730/*!***************************************!*\
19731 !*** ./src/diagrams/class/svgDraw.js ***!
19732 \***************************************/
19733/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
19734
19735"use strict";
19736__webpack_require__.r(__webpack_exports__);
19737/* harmony export */ __webpack_require__.d(__webpack_exports__, {
19738/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
19739/* harmony export */ "drawClass": () => (/* binding */ drawClass),
19740/* harmony export */ "drawEdge": () => (/* binding */ drawEdge),
19741/* harmony export */ "parseMember": () => (/* binding */ parseMember)
19742/* harmony export */ });
19743/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
19744/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
19745/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
19746
19747
19748
19749var edgeCount = 0;
19750var drawEdge = function drawEdge(elem, path, relation, conf, diagObj) {
19751 var getRelationType = function getRelationType(type) {
19752 switch (type) {
19753 case diagObj.db.relationType.AGGREGATION:
19754 return 'aggregation';
19755
19756 case diagObj.db.EXTENSION:
19757 return 'extension';
19758
19759 case diagObj.db.COMPOSITION:
19760 return 'composition';
19761
19762 case diagObj.db.DEPENDENCY:
19763 return 'dependency';
19764 }
19765 };
19766
19767 path.points = path.points.filter(function (p) {
19768 return !Number.isNaN(p.y);
19769 }); // The data for our line
19770
19771 var lineData = path.points; // This is the accessor function we talked about above
19772
19773 var lineFunction = (0,d3__WEBPACK_IMPORTED_MODULE_0__.line)().x(function (d) {
19774 return d.x;
19775 }).y(function (d) {
19776 return d.y;
19777 }).curve(d3__WEBPACK_IMPORTED_MODULE_0__.curveBasis);
19778 var svgPath = elem.append('path').attr('d', lineFunction(lineData)).attr('id', 'edge' + edgeCount).attr('class', 'relation');
19779 var url = '';
19780
19781 if (conf.arrowMarkerAbsolute) {
19782 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
19783 url = url.replace(/\(/g, '\\(');
19784 url = url.replace(/\)/g, '\\)');
19785 }
19786
19787 if (relation.relation.lineType == 1) {
19788 svgPath.attr('class', 'relation dashed-line');
19789 }
19790
19791 if (relation.relation.type1 !== 'none') {
19792 svgPath.attr('marker-start', 'url(' + url + '#' + getRelationType(relation.relation.type1) + 'Start' + ')');
19793 }
19794
19795 if (relation.relation.type2 !== 'none') {
19796 svgPath.attr('marker-end', 'url(' + url + '#' + getRelationType(relation.relation.type2) + 'End' + ')');
19797 }
19798
19799 var x, y;
19800 var l = path.points.length; // Calculate Label position
19801
19802 var labelPosition = _utils__WEBPACK_IMPORTED_MODULE_1__["default"].calcLabelPosition(path.points);
19803 x = labelPosition.x;
19804 y = labelPosition.y;
19805 var p1_card_x, p1_card_y;
19806 var p2_card_x, p2_card_y;
19807
19808 if (l % 2 !== 0 && l > 1) {
19809 var cardinality_1_point = _utils__WEBPACK_IMPORTED_MODULE_1__["default"].calcCardinalityPosition(relation.relation.type1 !== 'none', path.points, path.points[0]);
19810 var cardinality_2_point = _utils__WEBPACK_IMPORTED_MODULE_1__["default"].calcCardinalityPosition(relation.relation.type2 !== 'none', path.points, path.points[l - 1]);
19811 _logger__WEBPACK_IMPORTED_MODULE_2__.log.debug('cardinality_1_point ' + JSON.stringify(cardinality_1_point));
19812 _logger__WEBPACK_IMPORTED_MODULE_2__.log.debug('cardinality_2_point ' + JSON.stringify(cardinality_2_point));
19813 p1_card_x = cardinality_1_point.x;
19814 p1_card_y = cardinality_1_point.y;
19815 p2_card_x = cardinality_2_point.x;
19816 p2_card_y = cardinality_2_point.y;
19817 }
19818
19819 if (typeof relation.title !== 'undefined') {
19820 var g = elem.append('g').attr('class', 'classLabel');
19821 var label = g.append('text').attr('class', 'label').attr('x', x).attr('y', y).attr('fill', 'red').attr('text-anchor', 'middle').text(relation.title);
19822 window.label = label;
19823 var bounds = label.node().getBBox();
19824 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);
19825 }
19826
19827 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Rendering relation ' + JSON.stringify(relation));
19828
19829 if (typeof relation.relationTitle1 !== 'undefined' && relation.relationTitle1 !== 'none') {
19830 var _g = elem.append('g').attr('class', 'cardinality');
19831
19832 _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);
19833 }
19834
19835 if (typeof relation.relationTitle2 !== 'undefined' && relation.relationTitle2 !== 'none') {
19836 var _g2 = elem.append('g').attr('class', 'cardinality');
19837
19838 _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);
19839 }
19840
19841 edgeCount++;
19842};
19843/**
19844 * Renders a class diagram
19845 *
19846 * @param {SVGSVGElement} elem The element to draw it into
19847 * @param classDef
19848 * @param conf
19849 * @param diagObj
19850 * @todo Add more information in the JSDOC here
19851 */
19852
19853var drawClass = function drawClass(elem, classDef, conf, diagObj) {
19854 _logger__WEBPACK_IMPORTED_MODULE_2__.log.debug('Rendering class ', classDef, conf);
19855 var id = classDef.id;
19856 var classInfo = {
19857 id: id,
19858 label: classDef.id,
19859 width: 0,
19860 height: 0
19861 }; // add class group
19862
19863 var g = elem.append('g').attr('id', diagObj.db.lookUpDomId(id)).attr('class', 'classGroup'); // add title
19864
19865 var title;
19866
19867 if (classDef.link) {
19868 title = g.append('svg:a').attr('xlink:href', classDef.link).attr('target', classDef.linkTarget).append('text').attr('y', conf.textHeight + conf.padding).attr('x', 0);
19869 } else {
19870 title = g.append('text').attr('y', conf.textHeight + conf.padding).attr('x', 0);
19871 } // add annotations
19872
19873
19874 var isFirst = true;
19875 classDef.annotations.forEach(function (member) {
19876 var titleText2 = title.append('tspan').text('«' + member + '»');
19877 if (!isFirst) titleText2.attr('dy', conf.textHeight);
19878 isFirst = false;
19879 });
19880 var classTitleString = classDef.id;
19881
19882 if (classDef.type !== undefined && classDef.type !== '') {
19883 classTitleString += '<' + classDef.type + '>';
19884 }
19885
19886 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
19887
19888 if (!isFirst) classTitle.attr('dy', conf.textHeight);
19889 var titleHeight = title.node().getBBox().height;
19890 var membersLine = g.append('line') // text label for the x axis
19891 .attr('x1', 0).attr('y1', conf.padding + titleHeight + conf.dividerMargin / 2).attr('y2', conf.padding + titleHeight + conf.dividerMargin / 2);
19892 var members = g.append('text') // text label for the x axis
19893 .attr('x', conf.padding).attr('y', titleHeight + conf.dividerMargin + conf.textHeight).attr('fill', 'white').attr('class', 'classText');
19894 isFirst = true;
19895 classDef.members.forEach(function (member) {
19896 addTspan(members, member, isFirst, conf);
19897 isFirst = false;
19898 });
19899 var membersBox = members.node().getBBox();
19900 var methodsLine = g.append('line') // text label for the x axis
19901 .attr('x1', 0).attr('y1', conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr('y2', conf.padding + titleHeight + conf.dividerMargin + membersBox.height);
19902 var methods = g.append('text') // text label for the x axis
19903 .attr('x', conf.padding).attr('y', titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr('fill', 'white').attr('class', 'classText');
19904 isFirst = true;
19905 classDef.methods.forEach(function (method) {
19906 addTspan(methods, method, isFirst, conf);
19907 isFirst = false;
19908 });
19909 var classBox = g.node().getBBox();
19910 var cssClassStr = ' ';
19911
19912 if (classDef.cssClasses.length > 0) {
19913 cssClassStr = cssClassStr + classDef.cssClasses.join(' ');
19914 }
19915
19916 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);
19917 var rectWidth = rect.node().getBBox().width; // Center title
19918 // We subtract the width of each text element from the class box width and divide it by 2
19919
19920 title.node().childNodes.forEach(function (x) {
19921 x.setAttribute('x', (rectWidth - x.getBBox().width) / 2);
19922 });
19923
19924 if (classDef.tooltip) {
19925 title.insert('title').text(classDef.tooltip);
19926 }
19927
19928 membersLine.attr('x2', rectWidth);
19929 methodsLine.attr('x2', rectWidth);
19930 classInfo.width = rectWidth;
19931 classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin;
19932 return classInfo;
19933};
19934var parseMember = function parseMember(text) {
19935 var fieldRegEx = /^(\+|-|~|#)?(\w+)(~\w+~|\[\])?\s+(\w+) *(\*|\$)?$/;
19936 var methodRegEx = /^([+|\-|~|#])?(\w+) *\( *(.*)\) *(\*|\$)? *(\w*[~|[\]]*\s*\w*~?)$/;
19937 var fieldMatch = text.match(fieldRegEx);
19938 var methodMatch = text.match(methodRegEx);
19939
19940 if (fieldMatch && !methodMatch) {
19941 return buildFieldDisplay(fieldMatch);
19942 } else if (methodMatch) {
19943 return buildMethodDisplay(methodMatch);
19944 } else {
19945 return buildLegacyDisplay(text);
19946 }
19947};
19948
19949var buildFieldDisplay = function buildFieldDisplay(parsedText) {
19950 var cssStyle = '';
19951 var displayText = '';
19952
19953 try {
19954 var visibility = parsedText[1] ? parsedText[1].trim() : '';
19955 var fieldType = parsedText[2] ? parsedText[2].trim() : '';
19956 var genericType = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : '';
19957 var fieldName = parsedText[4] ? parsedText[4].trim() : '';
19958 var classifier = parsedText[5] ? parsedText[5].trim() : '';
19959 displayText = visibility + fieldType + genericType + ' ' + fieldName;
19960 cssStyle = parseClassifier(classifier);
19961 } catch (err) {
19962 displayText = parsedText;
19963 }
19964
19965 return {
19966 displayText: displayText,
19967 cssStyle: cssStyle
19968 };
19969};
19970
19971var buildMethodDisplay = function buildMethodDisplay(parsedText) {
19972 var cssStyle = '';
19973 var displayText = '';
19974
19975 try {
19976 var visibility = parsedText[1] ? parsedText[1].trim() : '';
19977 var methodName = parsedText[2] ? parsedText[2].trim() : '';
19978 var parameters = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : '';
19979 var classifier = parsedText[4] ? parsedText[4].trim() : '';
19980 var returnType = parsedText[5] ? ' : ' + parseGenericTypes(parsedText[5]).trim() : '';
19981 displayText = visibility + methodName + '(' + parameters + ')' + returnType;
19982 cssStyle = parseClassifier(classifier);
19983 } catch (err) {
19984 displayText = parsedText;
19985 }
19986
19987 return {
19988 displayText: displayText,
19989 cssStyle: cssStyle
19990 };
19991};
19992
19993var buildLegacyDisplay = function buildLegacyDisplay(text) {
19994 // if for some reason we dont have any match, use old format to parse text
19995 var displayText = '';
19996 var cssStyle = '';
19997 var memberText = '';
19998 var returnType = '';
19999 var methodStart = text.indexOf('(');
20000 var methodEnd = text.indexOf(')');
20001
20002 if (methodStart > 1 && methodEnd > methodStart && methodEnd <= text.length) {
20003 var visibility = '';
20004 var methodName = '';
20005 var firstChar = text.substring(0, 1);
20006
20007 if (firstChar.match(/\w/)) {
20008 methodName = text.substring(0, methodStart).trim();
20009 } else {
20010 if (firstChar.match(/\+|-|~|#/)) {
20011 visibility = firstChar;
20012 }
20013
20014 methodName = text.substring(1, methodStart).trim();
20015 }
20016
20017 var parameters = text.substring(methodStart + 1, methodEnd);
20018 var classifier = text.substring(methodEnd + 1, 1);
20019 cssStyle = parseClassifier(classifier);
20020 displayText = visibility + methodName + '(' + parseGenericTypes(parameters.trim()) + ')';
20021
20022 if (methodEnd < memberText.length) {
20023 returnType = text.substring(methodEnd + 2).trim();
20024
20025 if (returnType !== '') {
20026 returnType = ' : ' + parseGenericTypes(returnType);
20027 }
20028 }
20029 } else {
20030 // finally - if all else fails, just send the text back as written (other than parsing for generic types)
20031 displayText = parseGenericTypes(text);
20032 }
20033
20034 return {
20035 displayText: displayText,
20036 cssStyle: cssStyle
20037 };
20038};
20039/**
20040 * Adds a <tspan> for a member in a diagram
20041 *
20042 * @param {SVGElement} textEl The element to append to
20043 * @param {string} txt The member
20044 * @param {boolean} isFirst
20045 * @param {{ padding: string; textHeight: string }} conf The configuration for the member
20046 */
20047
20048
20049var addTspan = function addTspan(textEl, txt, isFirst, conf) {
20050 var member = parseMember(txt);
20051 var tSpan = textEl.append('tspan').attr('x', conf.padding).text(member.displayText);
20052
20053 if (member.cssStyle !== '') {
20054 tSpan.attr('style', member.cssStyle);
20055 }
20056
20057 if (!isFirst) {
20058 tSpan.attr('dy', conf.textHeight);
20059 }
20060};
20061/**
20062 * Makes generics in typescript syntax
20063 *
20064 * @example <caption>Array of array of strings in typescript syntax</caption>
20065 * // returns "Array<Array<string>>"
20066 * parseGenericTypes('Array~Array~string~~');
20067 *
20068 * @param {string} text The text to convert
20069 * @returns {string} The converted string
20070 */
20071
20072
20073var parseGenericTypes = function parseGenericTypes(text) {
20074 var cleanedText = text;
20075
20076 if (text.indexOf('~') != -1) {
20077 cleanedText = cleanedText.replace('~', '<');
20078 cleanedText = cleanedText.replace('~', '>');
20079 return parseGenericTypes(cleanedText);
20080 } else {
20081 return cleanedText;
20082 }
20083};
20084/**
20085 * Gives the styles for a classifier
20086 *
20087 * @param {'+' | '-' | '#' | '~' | '*' | '$'} classifier The classifier string
20088 * @returns {string} Styling for the classifier
20089 */
20090
20091
20092var parseClassifier = function parseClassifier(classifier) {
20093 switch (classifier) {
20094 case '*':
20095 return 'font-style:italic;';
20096
20097 case '$':
20098 return 'text-decoration:underline;';
20099
20100 default:
20101 return '';
20102 }
20103};
20104
20105/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
20106 drawClass: drawClass,
20107 drawEdge: drawEdge,
20108 parseMember: parseMember
20109});
20110
20111/***/ }),
20112
20113/***/ "./src/diagrams/common/common.js":
20114/*!***************************************!*\
20115 !*** ./src/diagrams/common/common.js ***!
20116 \***************************************/
20117/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20118
20119"use strict";
20120__webpack_require__.r(__webpack_exports__);
20121/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20122/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
20123/* harmony export */ "evaluate": () => (/* binding */ evaluate),
20124/* harmony export */ "getRows": () => (/* binding */ getRows),
20125/* harmony export */ "hasBreaks": () => (/* binding */ hasBreaks),
20126/* harmony export */ "lineBreakRegex": () => (/* binding */ lineBreakRegex),
20127/* harmony export */ "removeEscapes": () => (/* binding */ removeEscapes),
20128/* harmony export */ "removeScript": () => (/* binding */ removeScript),
20129/* harmony export */ "sanitizeText": () => (/* binding */ sanitizeText),
20130/* harmony export */ "sanitizeTextOrArray": () => (/* binding */ sanitizeTextOrArray),
20131/* harmony export */ "splitBreaks": () => (/* binding */ splitBreaks)
20132/* harmony export */ });
20133/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dompurify */ "./node_modules/dompurify/dist/purify.js");
20134/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(dompurify__WEBPACK_IMPORTED_MODULE_0__);
20135
20136/**
20137 * Gets the number of lines in a string
20138 *
20139 * @param {string | undefined} s The string to check the lines for
20140 * @returns {number} The number of lines in that string
20141 */
20142
20143var getRows = function getRows(s) {
20144 if (!s) return 1;
20145 var str = breakToPlaceholder(s);
20146 str = str.replace(/\\n/g, '#br#');
20147 return str.split('#br#');
20148};
20149var removeEscapes = function removeEscapes(text) {
20150 var newStr = text.replace(/\\u[\dA-F]{4}/gi, function (match) {
20151 return String.fromCharCode(parseInt(match.replace(/\\u/g, ''), 16));
20152 });
20153 newStr = newStr.replace(/\\x([0-9a-f]{2})/gi, function (_, c) {
20154 return String.fromCharCode(parseInt(c, 16));
20155 });
20156 newStr = newStr.replace(/\\[\d\d\d]{3}/gi, function (match) {
20157 return String.fromCharCode(parseInt(match.replace(/\\/g, ''), 8));
20158 });
20159 newStr = newStr.replace(/\\[\d\d\d]{2}/gi, function (match) {
20160 return String.fromCharCode(parseInt(match.replace(/\\/g, ''), 8));
20161 });
20162 return newStr;
20163};
20164/**
20165 * Removes script tags from a text
20166 *
20167 * @param {string} txt The text to sanitize
20168 * @returns {string} The safer text
20169 */
20170
20171var removeScript = function removeScript(txt) {
20172 var rs = '';
20173 var idx = 0;
20174
20175 while (idx >= 0) {
20176 idx = txt.indexOf('<script');
20177
20178 if (idx >= 0) {
20179 rs += txt.substr(0, idx);
20180 txt = txt.substr(idx + 1);
20181 idx = txt.indexOf('</script>');
20182
20183 if (idx >= 0) {
20184 idx += 9;
20185 txt = txt.substr(idx);
20186 }
20187 } else {
20188 rs += txt;
20189 idx = -1;
20190 break;
20191 }
20192 }
20193
20194 var decodedText = removeEscapes(rs);
20195 decodedText = decodedText.replaceAll(/script>/gi, '#');
20196 decodedText = decodedText.replaceAll(/javascript:/gi, '#');
20197 decodedText = decodedText.replaceAll(/javascript&colon/gi, '#');
20198 decodedText = decodedText.replaceAll(/onerror=/gi, 'onerror:');
20199 decodedText = decodedText.replaceAll(/<iframe/gi, '');
20200 return decodedText;
20201};
20202
20203var sanitizeMore = function sanitizeMore(text, config) {
20204 var txt = text;
20205 var htmlLabels = true;
20206
20207 if (config.flowchart && (config.flowchart.htmlLabels === false || config.flowchart.htmlLabels === 'false')) {
20208 htmlLabels = false;
20209 }
20210
20211 if (htmlLabels) {
20212 var level = config.securityLevel;
20213
20214 if (level === 'antiscript' || level === 'strict') {
20215 txt = removeScript(txt);
20216 } else if (level !== 'loose') {
20217 // eslint-disable-line
20218 txt = breakToPlaceholder(txt);
20219 txt = txt.replace(/</g, '&lt;').replace(/>/g, '&gt;');
20220 txt = txt.replace(/=/g, '&equals;');
20221 txt = placeholderToBreak(txt);
20222 }
20223 }
20224
20225 return txt;
20226};
20227
20228var sanitizeText = function sanitizeText(text, config) {
20229 if (!text) return text;
20230 var txt = '';
20231
20232 if (config['dompurifyConfig']) {
20233 txt = dompurify__WEBPACK_IMPORTED_MODULE_0___default().sanitize(sanitizeMore(text, config), config['dompurifyConfig']);
20234 } else {
20235 txt = dompurify__WEBPACK_IMPORTED_MODULE_0___default().sanitize(sanitizeMore(text, config));
20236 }
20237
20238 return txt;
20239};
20240var sanitizeTextOrArray = function sanitizeTextOrArray(a, config) {
20241 if (typeof a === 'string') return sanitizeText(a, config);
20242
20243 var f = function f(x) {
20244 return sanitizeText(x, config);
20245 };
20246
20247 return a.flat().map(f);
20248};
20249var lineBreakRegex = /<br\s*\/?>/gi;
20250/**
20251 * Whether or not a text has any linebreaks
20252 *
20253 * @param {string} text The text to test
20254 * @returns {boolean} Whether or not the text has breaks
20255 */
20256
20257var hasBreaks = function hasBreaks(text) {
20258 return lineBreakRegex.test(text);
20259};
20260/**
20261 * Splits on <br> tags
20262 *
20263 * @param {string} text Text to split
20264 * @returns {string[]} List of lines as strings
20265 */
20266
20267var splitBreaks = function splitBreaks(text) {
20268 return text.split(lineBreakRegex);
20269};
20270/**
20271 * Converts placeholders to linebreaks in HTML
20272 *
20273 * @param {string} s HTML with placeholders
20274 * @returns {string} HTML with breaks instead of placeholders
20275 */
20276
20277var placeholderToBreak = function placeholderToBreak(s) {
20278 return s.replace(/#br#/g, '<br/>');
20279};
20280/**
20281 * Opposite of `placeholderToBreak`, converts breaks to placeholders
20282 *
20283 * @param {string} s HTML string
20284 * @returns {string} String with placeholders
20285 */
20286
20287
20288var breakToPlaceholder = function breakToPlaceholder(s) {
20289 return s.replace(lineBreakRegex, '#br#');
20290};
20291/**
20292 * Gets the current URL
20293 *
20294 * @param {boolean} useAbsolute Whether to return the absolute URL or not
20295 * @returns {string} The current URL
20296 */
20297
20298
20299var getUrl = function getUrl(useAbsolute) {
20300 var url = '';
20301
20302 if (useAbsolute) {
20303 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
20304 url = url.replace(/\(/g, '\\(');
20305 url = url.replace(/\)/g, '\\)');
20306 }
20307
20308 return url;
20309};
20310/**
20311 * Converts a string/boolean into a boolean
20312 *
20313 * @param {string | boolean} val String or boolean to convert
20314 * @returns {boolean} The result from the input
20315 */
20316
20317
20318var evaluate = function evaluate(val) {
20319 return val === 'false' || val === false ? false : true;
20320};
20321/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
20322 getRows: getRows,
20323 sanitizeText: sanitizeText,
20324 sanitizeTextOrArray: sanitizeTextOrArray,
20325 hasBreaks: hasBreaks,
20326 splitBreaks: splitBreaks,
20327 lineBreakRegex: lineBreakRegex,
20328 removeScript: removeScript,
20329 getUrl: getUrl,
20330 evaluate: evaluate,
20331 removeEscapes: removeEscapes
20332});
20333
20334/***/ }),
20335
20336/***/ "./src/diagrams/er/erDb.js":
20337/*!*********************************!*\
20338 !*** ./src/diagrams/er/erDb.js ***!
20339 \*********************************/
20340/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20341
20342"use strict";
20343__webpack_require__.r(__webpack_exports__);
20344/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20345/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
20346/* harmony export */ "parseDirective": () => (/* binding */ parseDirective)
20347/* harmony export */ });
20348/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
20349/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
20350/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../config */ "./src/config.js");
20351/* harmony import */ var _commonDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../commonDb */ "./src/commonDb.js");
20352
20353
20354
20355
20356
20357var entities = {};
20358var relationships = [];
20359var title = '';
20360var description = '';
20361var Cardinality = {
20362 ZERO_OR_ONE: 'ZERO_OR_ONE',
20363 ZERO_OR_MORE: 'ZERO_OR_MORE',
20364 ONE_OR_MORE: 'ONE_OR_MORE',
20365 ONLY_ONE: 'ONLY_ONE'
20366};
20367var Identification = {
20368 NON_IDENTIFYING: 'NON_IDENTIFYING',
20369 IDENTIFYING: 'IDENTIFYING'
20370};
20371var parseDirective = function parseDirective(statement, context, type) {
20372 _mermaidAPI__WEBPACK_IMPORTED_MODULE_0__["default"].parseDirective(this, statement, context, type);
20373};
20374
20375var addEntity = function addEntity(name) {
20376 if (typeof entities[name] === 'undefined') {
20377 entities[name] = {
20378 attributes: []
20379 };
20380 _logger__WEBPACK_IMPORTED_MODULE_1__.log.info('Added new entity :', name);
20381 }
20382
20383 return entities[name];
20384};
20385
20386var getEntities = function getEntities() {
20387 return entities;
20388};
20389
20390var addAttributes = function addAttributes(entityName, attribs) {
20391 var entity = addEntity(entityName); // May do nothing (if entity has already been added)
20392 // Process attribs in reverse order due to effect of recursive construction (last attribute is first)
20393
20394 var i;
20395
20396 for (i = attribs.length - 1; i >= 0; i--) {
20397 entity.attributes.push(attribs[i]);
20398 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug('Added attribute ', attribs[i].attributeName);
20399 }
20400};
20401/**
20402 * Add a relationship
20403 *
20404 * @param entA The first entity in the relationship
20405 * @param rolA The role played by the first entity in relation to the second
20406 * @param entB The second entity in the relationship
20407 * @param rSpec The details of the relationship between the two entities
20408 */
20409
20410
20411var addRelationship = function addRelationship(entA, rolA, entB, rSpec) {
20412 var rel = {
20413 entityA: entA,
20414 roleA: rolA,
20415 entityB: entB,
20416 relSpec: rSpec
20417 };
20418 relationships.push(rel);
20419 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug('Added new relationship :', rel);
20420};
20421
20422var getRelationships = function getRelationships() {
20423 return relationships;
20424};
20425
20426var clear = function clear() {
20427 entities = {};
20428 relationships = [];
20429 title = '';
20430 (0,_commonDb__WEBPACK_IMPORTED_MODULE_2__.clear)();
20431};
20432
20433/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
20434 Cardinality: Cardinality,
20435 Identification: Identification,
20436 parseDirective: parseDirective,
20437 getConfig: function getConfig() {
20438 return _config__WEBPACK_IMPORTED_MODULE_3__.getConfig().er;
20439 },
20440 addEntity: addEntity,
20441 addAttributes: addAttributes,
20442 getEntities: getEntities,
20443 addRelationship: addRelationship,
20444 getRelationships: getRelationships,
20445 clear: clear,
20446 setAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_2__.setAccTitle,
20447 getAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_2__.getAccTitle,
20448 setAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_2__.setAccDescription,
20449 getAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_2__.getAccDescription
20450});
20451
20452/***/ }),
20453
20454/***/ "./src/diagrams/er/erMarkers.js":
20455/*!**************************************!*\
20456 !*** ./src/diagrams/er/erMarkers.js ***!
20457 \**************************************/
20458/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20459
20460"use strict";
20461__webpack_require__.r(__webpack_exports__);
20462/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20463/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
20464/* harmony export */ });
20465var ERMarkers = {
20466 ONLY_ONE_START: 'ONLY_ONE_START',
20467 ONLY_ONE_END: 'ONLY_ONE_END',
20468 ZERO_OR_ONE_START: 'ZERO_OR_ONE_START',
20469 ZERO_OR_ONE_END: 'ZERO_OR_ONE_END',
20470 ONE_OR_MORE_START: 'ONE_OR_MORE_START',
20471 ONE_OR_MORE_END: 'ONE_OR_MORE_END',
20472 ZERO_OR_MORE_START: 'ZERO_OR_MORE_START',
20473 ZERO_OR_MORE_END: 'ZERO_OR_MORE_END'
20474};
20475/**
20476 * Put the markers into the svg DOM for later use with edge paths
20477 *
20478 * @param elem
20479 * @param conf
20480 */
20481
20482var insertMarkers = function insertMarkers(elem, conf) {
20483 var marker;
20484 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');
20485 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');
20486 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');
20487 marker.append('circle').attr('stroke', conf.stroke).attr('fill', 'white').attr('cx', 21).attr('cy', 9).attr('r', 6);
20488 marker.append('path').attr('stroke', conf.stroke).attr('fill', 'none').attr('d', 'M9,0 L9,18');
20489 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');
20490 marker.append('circle').attr('stroke', conf.stroke).attr('fill', 'white').attr('cx', 9).attr('cy', 9).attr('r', 6);
20491 marker.append('path').attr('stroke', conf.stroke).attr('fill', 'none').attr('d', 'M21,0 L21,18');
20492 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');
20493 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');
20494 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');
20495 marker.append('circle').attr('stroke', conf.stroke).attr('fill', 'white').attr('cx', 48).attr('cy', 18).attr('r', 6);
20496 marker.append('path').attr('stroke', conf.stroke).attr('fill', 'none').attr('d', 'M0,18 Q18,0 36,18 Q18,36 0,18');
20497 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');
20498 marker.append('circle').attr('stroke', conf.stroke).attr('fill', 'white').attr('cx', 9).attr('cy', 18).attr('r', 6);
20499 marker.append('path').attr('stroke', conf.stroke).attr('fill', 'none').attr('d', 'M21,18 Q39,0 57,18 Q39,36 21,18');
20500 return;
20501};
20502
20503/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
20504 ERMarkers: ERMarkers,
20505 insertMarkers: insertMarkers
20506});
20507
20508/***/ }),
20509
20510/***/ "./src/diagrams/er/erRenderer.js":
20511/*!***************************************!*\
20512 !*** ./src/diagrams/er/erRenderer.js ***!
20513 \***************************************/
20514/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20515
20516"use strict";
20517__webpack_require__.r(__webpack_exports__);
20518/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20519/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
20520/* harmony export */ "draw": () => (/* binding */ draw),
20521/* harmony export */ "setConf": () => (/* binding */ setConf)
20522/* harmony export */ });
20523/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
20524/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_0__);
20525/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
20526/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! dagre */ "./node_modules/dagre/index.js");
20527/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(dagre__WEBPACK_IMPORTED_MODULE_2__);
20528/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../config */ "./src/config.js");
20529/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
20530/* harmony import */ var _erMarkers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./erMarkers */ "./src/diagrams/er/erMarkers.js");
20531/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
20532/* harmony import */ var _accessibility__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../accessibility */ "./src/accessibility.js");
20533
20534 // import erDb from './erDb';
20535// import erParser from './parser/erDiagram';
20536
20537
20538
20539
20540
20541
20542
20543var conf = {};
20544/**
20545 * Allows the top-level API module to inject config specific to this renderer, storing it in the
20546 * local conf object. Note that generic config still needs to be retrieved using getConfig()
20547 * imported from the config module
20548 *
20549 * @param cnf
20550 */
20551
20552var setConf = function setConf(cnf) {
20553 var keys = Object.keys(cnf);
20554
20555 for (var i = 0; i < keys.length; i++) {
20556 conf[keys[i]] = cnf[keys[i]];
20557 }
20558};
20559/**
20560 * Draw attributes for an entity
20561 *
20562 * @param groupNode The svg group node for the entity
20563 * @param entityTextNode The svg node for the entity label text
20564 * @param attributes An array of attributes defined for the entity (each attribute has a type and a name)
20565 * @returns The bounding box of the entity, after attributes have been added
20566 */
20567
20568var drawAttributes = function drawAttributes(groupNode, entityTextNode, attributes) {
20569 var heightPadding = conf.entityPadding / 3; // Padding internal to attribute boxes
20570
20571 var widthPadding = conf.entityPadding / 3; // Ditto
20572
20573 var attrFontSize = conf.fontSize * 0.85;
20574 var labelBBox = entityTextNode.node().getBBox();
20575 var attributeNodes = []; // Intermediate storage for attribute nodes created so that we can do a second pass
20576
20577 var hasKeyType = false;
20578 var hasComment = false;
20579 var maxTypeWidth = 0;
20580 var maxNameWidth = 0;
20581 var maxKeyWidth = 0;
20582 var maxCommentWidth = 0;
20583 var cumulativeHeight = labelBBox.height + heightPadding * 2;
20584 var attrNum = 1; // Check to see if any of the attributes has a key or a comment
20585
20586 attributes.forEach(function (item) {
20587 if (item.attributeKeyType !== undefined) {
20588 hasKeyType = true;
20589 }
20590
20591 if (item.attributeComment !== undefined) {
20592 hasComment = true;
20593 }
20594 });
20595 attributes.forEach(function (item) {
20596 var attrPrefix = "".concat(entityTextNode.node().id, "-attr-").concat(attrNum);
20597 var nodeHeight = 0; // Add a text node for the attribute type
20598
20599 var typeNode = groupNode.append('text').attr('class', 'er entityLabel').attr('id', "".concat(attrPrefix, "-type")).attr('x', 0).attr('y', 0).attr('dominant-baseline', 'middle').attr('text-anchor', 'left').attr('style', 'font-family: ' + (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().fontFamily + '; font-size: ' + attrFontSize + 'px').text(item.attributeType); // Add a text node for the attribute name
20600
20601 var nameNode = groupNode.append('text').attr('class', 'er entityLabel').attr('id', "".concat(attrPrefix, "-name")).attr('x', 0).attr('y', 0).attr('dominant-baseline', 'middle').attr('text-anchor', 'left').attr('style', 'font-family: ' + (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().fontFamily + '; font-size: ' + attrFontSize + 'px').text(item.attributeName);
20602 var attributeNode = {};
20603 attributeNode.tn = typeNode;
20604 attributeNode.nn = nameNode;
20605 var typeBBox = typeNode.node().getBBox();
20606 var nameBBox = nameNode.node().getBBox();
20607 maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width);
20608 maxNameWidth = Math.max(maxNameWidth, nameBBox.width);
20609 nodeHeight = Math.max(typeBBox.height, nameBBox.height);
20610
20611 if (hasKeyType) {
20612 var keyTypeNode = groupNode.append('text').attr('class', 'er entityLabel').attr('id', "".concat(attrPrefix, "-key")).attr('x', 0).attr('y', 0).attr('dominant-baseline', 'middle').attr('text-anchor', 'left').attr('style', 'font-family: ' + (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().fontFamily + '; font-size: ' + attrFontSize + 'px').text(item.attributeKeyType || '');
20613 attributeNode.kn = keyTypeNode;
20614 var keyTypeBBox = keyTypeNode.node().getBBox();
20615 maxKeyWidth = Math.max(maxKeyWidth, keyTypeBBox.width);
20616 nodeHeight = Math.max(nodeHeight, keyTypeBBox.height);
20617 }
20618
20619 if (hasComment) {
20620 var commentNode = groupNode.append('text').attr('class', 'er entityLabel').attr('id', "".concat(attrPrefix, "-comment")).attr('x', 0).attr('y', 0).attr('dominant-baseline', 'middle').attr('text-anchor', 'left').attr('style', 'font-family: ' + (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().fontFamily + '; font-size: ' + attrFontSize + 'px').text(item.attributeComment || '');
20621 attributeNode.cn = commentNode;
20622 var commentNodeBBox = commentNode.node().getBBox();
20623 maxCommentWidth = Math.max(maxCommentWidth, commentNodeBBox.width);
20624 nodeHeight = Math.max(nodeHeight, commentNodeBBox.height);
20625 }
20626
20627 attributeNode.height = nodeHeight; // Keep a reference to the nodes so that we can iterate through them later
20628
20629 attributeNodes.push(attributeNode);
20630 cumulativeHeight += nodeHeight + heightPadding * 2;
20631 attrNum += 1;
20632 });
20633 var widthPaddingFactor = 4;
20634
20635 if (hasKeyType) {
20636 widthPaddingFactor += 2;
20637 }
20638
20639 if (hasComment) {
20640 widthPaddingFactor += 2;
20641 }
20642
20643 var maxWidth = maxTypeWidth + maxNameWidth + maxKeyWidth + maxCommentWidth; // Calculate the new bounding box of the overall entity, now that attributes have been added
20644
20645 var bBox = {
20646 width: Math.max(conf.minEntityWidth, Math.max(labelBBox.width + conf.entityPadding * 2, maxWidth + widthPadding * widthPaddingFactor)),
20647 height: attributes.length > 0 ? cumulativeHeight : Math.max(conf.minEntityHeight, labelBBox.height + conf.entityPadding * 2)
20648 };
20649
20650 if (attributes.length > 0) {
20651 // There might be some spare width for padding out attributes if the entity name is very long
20652 var spareColumnWidth = Math.max(0, (bBox.width - maxWidth - widthPadding * widthPaddingFactor) / (widthPaddingFactor / 2)); // Position the entity label near the top of the entity bounding box
20653
20654 entityTextNode.attr('transform', 'translate(' + bBox.width / 2 + ',' + (heightPadding + labelBBox.height / 2) + ')'); // Add rectangular boxes for the attribute types/names
20655
20656 var heightOffset = labelBBox.height + heightPadding * 2; // Start at the bottom of the entity label
20657
20658 var attribStyle = 'attributeBoxOdd'; // We will flip the style on alternate rows to achieve a banded effect
20659
20660 attributeNodes.forEach(function (attributeNode) {
20661 // Calculate the alignment y co-ordinate for the type/name of the attribute
20662 var alignY = heightOffset + heightPadding + attributeNode.height / 2; // Position the type attribute
20663
20664 attributeNode.tn.attr('transform', 'translate(' + widthPadding + ',' + alignY + ')'); // TODO Handle spareWidth in attr('width')
20665 // Insert a rectangle for the type
20666
20667 var typeRect = groupNode.insert('rect', '#' + attributeNode.tn.node().id).attr('class', "er ".concat(attribStyle)).attr('fill', conf.fill).attr('fill-opacity', '100%').attr('stroke', conf.stroke).attr('x', 0).attr('y', heightOffset).attr('width', maxTypeWidth + widthPadding * 2 + spareColumnWidth).attr('height', attributeNode.height + heightPadding * 2);
20668 var nameXOffset = parseFloat(typeRect.attr('x')) + parseFloat(typeRect.attr('width')); // Position the name attribute
20669
20670 attributeNode.nn.attr('transform', 'translate(' + (nameXOffset + widthPadding) + ',' + alignY + ')'); // Insert a rectangle for the name
20671
20672 var nameRect = groupNode.insert('rect', '#' + attributeNode.nn.node().id).attr('class', "er ".concat(attribStyle)).attr('fill', conf.fill).attr('fill-opacity', '100%').attr('stroke', conf.stroke).attr('x', nameXOffset).attr('y', heightOffset).attr('width', maxNameWidth + widthPadding * 2 + spareColumnWidth).attr('height', attributeNode.height + heightPadding * 2);
20673 var keyTypeAndCommentXOffset = parseFloat(nameRect.attr('x')) + parseFloat(nameRect.attr('width'));
20674
20675 if (hasKeyType) {
20676 // Position the key type attribute
20677 attributeNode.kn.attr('transform', 'translate(' + (keyTypeAndCommentXOffset + widthPadding) + ',' + alignY + ')'); // Insert a rectangle for the key type
20678
20679 var keyTypeRect = groupNode.insert('rect', '#' + attributeNode.kn.node().id).attr('class', "er ".concat(attribStyle)).attr('fill', conf.fill).attr('fill-opacity', '100%').attr('stroke', conf.stroke).attr('x', keyTypeAndCommentXOffset).attr('y', heightOffset).attr('width', maxKeyWidth + widthPadding * 2 + spareColumnWidth).attr('height', attributeNode.height + heightPadding * 2);
20680 keyTypeAndCommentXOffset = parseFloat(keyTypeRect.attr('x')) + parseFloat(keyTypeRect.attr('width'));
20681 }
20682
20683 if (hasComment) {
20684 // Position the comment attribute
20685 attributeNode.cn.attr('transform', 'translate(' + (keyTypeAndCommentXOffset + widthPadding) + ',' + alignY + ')'); // Insert a rectangle for the comment
20686
20687 groupNode.insert('rect', '#' + attributeNode.cn.node().id).attr('class', "er ".concat(attribStyle)).attr('fill', conf.fill).attr('fill-opacity', '100%').attr('stroke', conf.stroke).attr('x', keyTypeAndCommentXOffset).attr('y', heightOffset).attr('width', maxCommentWidth + widthPadding * 2 + spareColumnWidth).attr('height', attributeNode.height + heightPadding * 2);
20688 } // Increment the height offset to move to the next row
20689
20690
20691 heightOffset += attributeNode.height + heightPadding * 2; // Flip the attribute style for row banding
20692
20693 attribStyle = attribStyle == 'attributeBoxOdd' ? 'attributeBoxEven' : 'attributeBoxOdd';
20694 });
20695 } else {
20696 // Ensure the entity box is a decent size without any attributes
20697 bBox.height = Math.max(conf.minEntityHeight, cumulativeHeight); // Position the entity label in the middle of the box
20698
20699 entityTextNode.attr('transform', 'translate(' + bBox.width / 2 + ',' + bBox.height / 2 + ')');
20700 }
20701
20702 return bBox;
20703};
20704/**
20705 * Use D3 to construct the svg elements for the entities
20706 *
20707 * @param svgNode The svg node that contains the diagram
20708 * @param entities The entities to be drawn
20709 * @param graph The graph that contains the vertex and edge definitions post-layout
20710 * @returns The first entity that was inserted
20711 */
20712
20713
20714var drawEntities = function drawEntities(svgNode, entities, graph) {
20715 var keys = Object.keys(entities);
20716 var firstOne;
20717 keys.forEach(function (id) {
20718 // Create a group for each entity
20719 var groupNode = svgNode.append('g').attr('id', id);
20720 firstOne = firstOne === undefined ? id : firstOne; // Label the entity - this is done first so that we can get the bounding box
20721 // which then determines the size of the rectangle
20722
20723 var textId = 'entity-' + id;
20724 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: ' + (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().fontFamily + '; font-size: ' + conf.fontSize + 'px').text(id);
20725
20726 var _drawAttributes = drawAttributes(groupNode, textNode, entities[id].attributes),
20727 entityWidth = _drawAttributes.width,
20728 entityHeight = _drawAttributes.height; // Draw the rectangle - insert it before the text so that the text is not obscured
20729
20730
20731 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);
20732 var rectBBox = rectNode.node().getBBox(); // Add the entity to the graph
20733
20734 graph.setNode(id, {
20735 width: rectBBox.width,
20736 height: rectBBox.height,
20737 shape: 'rect',
20738 id: id
20739 });
20740 });
20741 return firstOne;
20742}; // drawEntities
20743
20744
20745var adjustEntities = function adjustEntities(svgNode, graph) {
20746 graph.nodes().forEach(function (v) {
20747 if (typeof v !== 'undefined' && typeof graph.node(v) !== 'undefined') {
20748 svgNode.select('#' + v).attr('transform', 'translate(' + (graph.node(v).x - graph.node(v).width / 2) + ',' + (graph.node(v).y - graph.node(v).height / 2) + ' )');
20749 }
20750 });
20751 return;
20752};
20753
20754var getEdgeName = function getEdgeName(rel) {
20755 return (rel.entityA + rel.roleA + rel.entityB).replace(/\s/g, '');
20756};
20757/**
20758 * Add each relationship to the graph
20759 *
20760 * @param relationships The relationships to be added
20761 * @param g The graph
20762 * @returns {Array} The array of relationships
20763 */
20764
20765
20766var addRelationships = function addRelationships(relationships, g) {
20767 relationships.forEach(function (r) {
20768 g.setEdge(r.entityA, r.entityB, {
20769 relationship: r
20770 }, getEdgeName(r));
20771 });
20772 return relationships;
20773}; // addRelationships
20774
20775
20776var relCnt = 0;
20777/**
20778 * Draw a relationship using edge information from the graph
20779 *
20780 * @param svg The svg node
20781 * @param rel The relationship to draw in the svg
20782 * @param g The graph containing the edge information
20783 * @param insert The insertion point in the svg DOM (because relationships have markers that need to
20784 * sit 'behind' opaque entity boxes)
20785 * @param diagObj
20786 */
20787
20788var drawRelationshipFromLayout = function drawRelationshipFromLayout(svg, rel, g, insert, diagObj) {
20789 relCnt++; // Find the edge relating to this relationship
20790
20791 var edge = g.edge(rel.entityA, rel.entityB, getEdgeName(rel)); // Get a function that will generate the line path
20792
20793 var lineFunction = (0,d3__WEBPACK_IMPORTED_MODULE_1__.line)().x(function (d) {
20794 return d.x;
20795 }).y(function (d) {
20796 return d.y;
20797 }).curve(d3__WEBPACK_IMPORTED_MODULE_1__.curveBasis); // Insert the line at the right place
20798
20799 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
20800
20801 if (rel.relSpec.relType === diagObj.db.Identification.NON_IDENTIFYING) {
20802 svgPath.attr('stroke-dasharray', '8,8');
20803 } // TODO: Understand this better
20804
20805
20806 var url = '';
20807
20808 if (conf.arrowMarkerAbsolute) {
20809 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
20810 url = url.replace(/\(/g, '\\(');
20811 url = url.replace(/\)/g, '\\)');
20812 } // Decide which start and end markers it needs. It may be possible to be more concise here
20813 // by reversing a start marker to make an end marker...but this will do for now
20814 // Note that the 'A' entity's marker is at the end of the relationship and the 'B' entity's marker is at the start
20815
20816
20817 switch (rel.relSpec.cardA) {
20818 case diagObj.db.Cardinality.ZERO_OR_ONE:
20819 svgPath.attr('marker-end', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_4__["default"].ERMarkers.ZERO_OR_ONE_END + ')');
20820 break;
20821
20822 case diagObj.db.Cardinality.ZERO_OR_MORE:
20823 svgPath.attr('marker-end', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_4__["default"].ERMarkers.ZERO_OR_MORE_END + ')');
20824 break;
20825
20826 case diagObj.db.Cardinality.ONE_OR_MORE:
20827 svgPath.attr('marker-end', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_4__["default"].ERMarkers.ONE_OR_MORE_END + ')');
20828 break;
20829
20830 case diagObj.db.Cardinality.ONLY_ONE:
20831 svgPath.attr('marker-end', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_4__["default"].ERMarkers.ONLY_ONE_END + ')');
20832 break;
20833 }
20834
20835 switch (rel.relSpec.cardB) {
20836 case diagObj.db.Cardinality.ZERO_OR_ONE:
20837 svgPath.attr('marker-start', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_4__["default"].ERMarkers.ZERO_OR_ONE_START + ')');
20838 break;
20839
20840 case diagObj.db.Cardinality.ZERO_OR_MORE:
20841 svgPath.attr('marker-start', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_4__["default"].ERMarkers.ZERO_OR_MORE_START + ')');
20842 break;
20843
20844 case diagObj.db.Cardinality.ONE_OR_MORE:
20845 svgPath.attr('marker-start', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_4__["default"].ERMarkers.ONE_OR_MORE_START + ')');
20846 break;
20847
20848 case diagObj.db.Cardinality.ONLY_ONE:
20849 svgPath.attr('marker-start', 'url(' + url + '#' + _erMarkers__WEBPACK_IMPORTED_MODULE_4__["default"].ERMarkers.ONLY_ONE_START + ')');
20850 break;
20851 } // Now label the relationship
20852 // Find the half-way point
20853
20854
20855 var len = svgPath.node().getTotalLength();
20856 var labelPoint = svgPath.node().getPointAtLength(len * 0.5); // Append a text node containing the label
20857
20858 var labelId = 'rel' + relCnt;
20859 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: ' + (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().fontFamily + '; font-size: ' + conf.fontSize + 'px').text(rel.roleA); // Figure out how big the opaque 'container' rectangle needs to be
20860
20861 var labelBBox = labelNode.node().getBBox(); // Insert the opaque rectangle before the text label
20862
20863 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%');
20864 return;
20865};
20866/**
20867 * Draw en E-R diagram in the tag with id: id based on the text definition of the diagram
20868 *
20869 * @param text The text of the diagram
20870 * @param id The unique id of the DOM node that contains the diagram
20871 * @param _version
20872 * @param diag
20873 * @param diagObj
20874 */
20875
20876
20877var draw = function draw(text, id, _version, diagObj) {
20878 conf = (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().er;
20879 _logger__WEBPACK_IMPORTED_MODULE_5__.log.info('Drawing ER diagram'); // diag.db.clear();
20880
20881 var securityLevel = (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().securityLevel; // Handle root and Document for when rendering in sanbox mode
20882
20883 var sandboxElement;
20884
20885 if (securityLevel === 'sandbox') {
20886 sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)('#i' + id);
20887 }
20888
20889 var root = securityLevel === 'sandbox' ? (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)('body'); // const doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document;
20890 // Parse the text to populate erDb
20891 // try {
20892 // parser.parse(text);
20893 // } catch (err) {
20894 // log.debug('Parsing failed');
20895 // }
20896 // Get a reference to the svg node that contains the text
20897
20898 var svg = root.select("[id='".concat(id, "']")); // Add cardinality marker definitions to the svg
20899
20900 _erMarkers__WEBPACK_IMPORTED_MODULE_4__["default"].insertMarkers(svg, conf); // Now we have to construct the diagram in a specific way:
20901 // ---
20902 // 1. Create all the entities in the svg node at 0,0, but with the correct dimensions (allowing for text content)
20903 // 2. Make sure they are all added to the graph
20904 // 3. Add all the edges (relationships) to the graph as well
20905 // 4. Let dagre do its magic to layout the graph. This assigns:
20906 // - the centre co-ordinates for each node, bearing in mind the dimensions and edge relationships
20907 // - the path co-ordinates for each edge
20908 // But it has no impact on the svg child nodes - the diagram remains with every entity rooted at 0,0
20909 // 5. Now assign a transform to each entity in the svg node so that it gets drawn in the correct place, as determined by
20910 // its centre point, which is obtained from the graph, and it's width and height
20911 // 6. And finally, create all the edges in the svg node using information from the graph
20912 // ---
20913 // Create the graph
20914
20915 var g; // TODO: Explore directed vs undirected graphs, and how the layout is affected
20916 // An E-R diagram could be said to be undirected, but there is merit in setting
20917 // the direction from parent to child in a one-to-many as this influences graphlib to
20918 // put the parent above the child (does it?), which is intuitive. Most relationships
20919 // in ER diagrams are one-to-many.
20920
20921 g = new (graphlib__WEBPACK_IMPORTED_MODULE_0___default().Graph)({
20922 multigraph: true,
20923 directed: true,
20924 compound: false
20925 }).setGraph({
20926 rankdir: conf.layoutDirection,
20927 marginx: 20,
20928 marginy: 20,
20929 nodesep: 100,
20930 edgesep: 100,
20931 ranksep: 100
20932 }).setDefaultEdgeLabel(function () {
20933 return {};
20934 }); // Draw the entities (at 0,0), returning the first svg node that got
20935 // inserted - this represents the insertion point for relationship paths
20936
20937 var firstEntity = drawEntities(svg, diagObj.db.getEntities(), g); // TODO: externalise the addition of entities to the graph - it's a bit 'buried' in the above
20938 // Add all the relationships to the graph
20939
20940 var relationships = addRelationships(diagObj.db.getRelationships(), g);
20941 dagre__WEBPACK_IMPORTED_MODULE_2___default().layout(g); // Node and edge positions will be updated
20942 // Adjust the positions of the entities so that they adhere to the layout
20943
20944 adjustEntities(svg, g); // Draw the relationships
20945
20946 relationships.forEach(function (rel) {
20947 drawRelationshipFromLayout(svg, rel, g, firstEntity, diagObj);
20948 });
20949 var padding = conf.diagramPadding;
20950 var svgBounds = svg.node().getBBox();
20951 var width = svgBounds.width + padding * 2;
20952 var height = svgBounds.height + padding * 2;
20953 (0,_utils__WEBPACK_IMPORTED_MODULE_6__.configureSvgSize)(svg, height, width, conf.useMaxWidth);
20954 svg.attr('viewBox', "".concat(svgBounds.x - padding, " ").concat(svgBounds.y - padding, " ").concat(width, " ").concat(height));
20955 (0,_accessibility__WEBPACK_IMPORTED_MODULE_7__["default"])(diagObj.db, svg, id);
20956}; // draw
20957
20958/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
20959 setConf: setConf,
20960 draw: draw
20961});
20962
20963/***/ }),
20964
20965/***/ "./src/diagrams/er/styles.js":
20966/*!***********************************!*\
20967 !*** ./src/diagrams/er/styles.js ***!
20968 \***********************************/
20969/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20970
20971"use strict";
20972__webpack_require__.r(__webpack_exports__);
20973/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20974/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
20975/* harmony export */ });
20976var getStyles = function getStyles(options) {
20977 return "\n .entityBox {\n fill: ".concat(options.mainBkg, ";\n stroke: ").concat(options.nodeBorder, ";\n }\n\n .attributeBoxOdd {\n fill: #ffffff;\n stroke: ").concat(options.nodeBorder, ";\n }\n\n .attributeBoxEven {\n fill: #f2f2f2;\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");
20978};
20979
20980/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getStyles);
20981
20982/***/ }),
20983
20984/***/ "./src/diagrams/flowchart/flowChartShapes.js":
20985/*!***************************************************!*\
20986 !*** ./src/diagrams/flowchart/flowChartShapes.js ***!
20987 \***************************************************/
20988/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20989
20990"use strict";
20991__webpack_require__.r(__webpack_exports__);
20992/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20993/* harmony export */ "addToRender": () => (/* binding */ addToRender),
20994/* harmony export */ "addToRenderV2": () => (/* binding */ addToRenderV2),
20995/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
20996/* harmony export */ });
20997/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dagre-d3 */ "./node_modules/dagre-d3/index.js");
20998/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(dagre_d3__WEBPACK_IMPORTED_MODULE_0__);
20999
21000/**
21001 * @param parent
21002 * @param bbox
21003 * @param node
21004 */
21005
21006function question(parent, bbox, node) {
21007 var w = bbox.width;
21008 var h = bbox.height;
21009 var s = (w + h) * 0.9;
21010 var points = [{
21011 x: s / 2,
21012 y: 0
21013 }, {
21014 x: s,
21015 y: -s / 2
21016 }, {
21017 x: s / 2,
21018 y: -s
21019 }, {
21020 x: 0,
21021 y: -s / 2
21022 }];
21023 var shapeSvg = insertPolygonShape(parent, s, s, points);
21024
21025 node.intersect = function (point) {
21026 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default().intersect.polygon(node, points, point);
21027 };
21028
21029 return shapeSvg;
21030}
21031/**
21032 * @param parent
21033 * @param bbox
21034 * @param node
21035 */
21036
21037
21038function hexagon(parent, bbox, node) {
21039 var f = 4;
21040 var h = bbox.height;
21041 var m = h / f;
21042 var w = bbox.width + 2 * m;
21043 var points = [{
21044 x: m,
21045 y: 0
21046 }, {
21047 x: w - m,
21048 y: 0
21049 }, {
21050 x: w,
21051 y: -h / 2
21052 }, {
21053 x: w - m,
21054 y: -h
21055 }, {
21056 x: m,
21057 y: -h
21058 }, {
21059 x: 0,
21060 y: -h / 2
21061 }];
21062 var shapeSvg = insertPolygonShape(parent, w, h, points);
21063
21064 node.intersect = function (point) {
21065 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default().intersect.polygon(node, points, point);
21066 };
21067
21068 return shapeSvg;
21069}
21070/**
21071 * @param parent
21072 * @param bbox
21073 * @param node
21074 */
21075
21076
21077function rect_left_inv_arrow(parent, bbox, node) {
21078 var w = bbox.width;
21079 var h = bbox.height;
21080 var points = [{
21081 x: -h / 2,
21082 y: 0
21083 }, {
21084 x: w,
21085 y: 0
21086 }, {
21087 x: w,
21088 y: -h
21089 }, {
21090 x: -h / 2,
21091 y: -h
21092 }, {
21093 x: 0,
21094 y: -h / 2
21095 }];
21096 var shapeSvg = insertPolygonShape(parent, w, h, points);
21097
21098 node.intersect = function (point) {
21099 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default().intersect.polygon(node, points, point);
21100 };
21101
21102 return shapeSvg;
21103}
21104/**
21105 * @param parent
21106 * @param bbox
21107 * @param node
21108 */
21109
21110
21111function lean_right(parent, bbox, node) {
21112 var w = bbox.width;
21113 var h = bbox.height;
21114 var points = [{
21115 x: -2 * h / 6,
21116 y: 0
21117 }, {
21118 x: w - h / 6,
21119 y: 0
21120 }, {
21121 x: w + 2 * h / 6,
21122 y: -h
21123 }, {
21124 x: h / 6,
21125 y: -h
21126 }];
21127 var shapeSvg = insertPolygonShape(parent, w, h, points);
21128
21129 node.intersect = function (point) {
21130 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default().intersect.polygon(node, points, point);
21131 };
21132
21133 return shapeSvg;
21134}
21135/**
21136 * @param parent
21137 * @param bbox
21138 * @param node
21139 */
21140
21141
21142function lean_left(parent, bbox, node) {
21143 var w = bbox.width;
21144 var h = bbox.height;
21145 var points = [{
21146 x: 2 * h / 6,
21147 y: 0
21148 }, {
21149 x: w + h / 6,
21150 y: 0
21151 }, {
21152 x: w - 2 * h / 6,
21153 y: -h
21154 }, {
21155 x: -h / 6,
21156 y: -h
21157 }];
21158 var shapeSvg = insertPolygonShape(parent, w, h, points);
21159
21160 node.intersect = function (point) {
21161 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default().intersect.polygon(node, points, point);
21162 };
21163
21164 return shapeSvg;
21165}
21166/**
21167 * @param parent
21168 * @param bbox
21169 * @param node
21170 */
21171
21172
21173function trapezoid(parent, bbox, node) {
21174 var w = bbox.width;
21175 var h = bbox.height;
21176 var points = [{
21177 x: -2 * h / 6,
21178 y: 0
21179 }, {
21180 x: w + 2 * h / 6,
21181 y: 0
21182 }, {
21183 x: w - h / 6,
21184 y: -h
21185 }, {
21186 x: h / 6,
21187 y: -h
21188 }];
21189 var shapeSvg = insertPolygonShape(parent, w, h, points);
21190
21191 node.intersect = function (point) {
21192 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default().intersect.polygon(node, points, point);
21193 };
21194
21195 return shapeSvg;
21196}
21197/**
21198 * @param parent
21199 * @param bbox
21200 * @param node
21201 */
21202
21203
21204function inv_trapezoid(parent, bbox, node) {
21205 var w = bbox.width;
21206 var h = bbox.height;
21207 var points = [{
21208 x: h / 6,
21209 y: 0
21210 }, {
21211 x: w - h / 6,
21212 y: 0
21213 }, {
21214 x: w + 2 * h / 6,
21215 y: -h
21216 }, {
21217 x: -2 * h / 6,
21218 y: -h
21219 }];
21220 var shapeSvg = insertPolygonShape(parent, w, h, points);
21221
21222 node.intersect = function (point) {
21223 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default().intersect.polygon(node, points, point);
21224 };
21225
21226 return shapeSvg;
21227}
21228/**
21229 * @param parent
21230 * @param bbox
21231 * @param node
21232 */
21233
21234
21235function rect_right_inv_arrow(parent, bbox, node) {
21236 var w = bbox.width;
21237 var h = bbox.height;
21238 var points = [{
21239 x: 0,
21240 y: 0
21241 }, {
21242 x: w + h / 2,
21243 y: 0
21244 }, {
21245 x: w,
21246 y: -h / 2
21247 }, {
21248 x: w + h / 2,
21249 y: -h
21250 }, {
21251 x: 0,
21252 y: -h
21253 }];
21254 var shapeSvg = insertPolygonShape(parent, w, h, points);
21255
21256 node.intersect = function (point) {
21257 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default().intersect.polygon(node, points, point);
21258 };
21259
21260 return shapeSvg;
21261}
21262/**
21263 * @param parent
21264 * @param bbox
21265 * @param node
21266 */
21267
21268
21269function stadium(parent, bbox, node) {
21270 var h = bbox.height;
21271 var w = bbox.width + h / 4;
21272 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);
21273
21274 node.intersect = function (point) {
21275 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default().intersect.rect(node, point);
21276 };
21277
21278 return shapeSvg;
21279}
21280/**
21281 * @param parent
21282 * @param bbox
21283 * @param node
21284 */
21285
21286
21287function subroutine(parent, bbox, node) {
21288 var w = bbox.width;
21289 var h = bbox.height;
21290 var points = [{
21291 x: 0,
21292 y: 0
21293 }, {
21294 x: w,
21295 y: 0
21296 }, {
21297 x: w,
21298 y: -h
21299 }, {
21300 x: 0,
21301 y: -h
21302 }, {
21303 x: 0,
21304 y: 0
21305 }, {
21306 x: -8,
21307 y: 0
21308 }, {
21309 x: w + 8,
21310 y: 0
21311 }, {
21312 x: w + 8,
21313 y: -h
21314 }, {
21315 x: -8,
21316 y: -h
21317 }, {
21318 x: -8,
21319 y: 0
21320 }];
21321 var shapeSvg = insertPolygonShape(parent, w, h, points);
21322
21323 node.intersect = function (point) {
21324 return dagre_d3__WEBPACK_IMPORTED_MODULE_0___default().intersect.polygon(node, points, point);
21325 };
21326
21327 return shapeSvg;
21328}
21329/**
21330 * @param parent
21331 * @param bbox
21332 * @param node
21333 */
21334
21335
21336function cylinder(parent, bbox, node) {
21337 var w = bbox.width;
21338 var rx = w / 2;
21339 var ry = rx / (2.5 + w / 50);
21340 var h = bbox.height + ry;
21341 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;
21342 var shapeSvg = parent.attr('label-offset-y', ry).insert('path', ':first-child').attr('d', shape).attr('transform', 'translate(' + -w / 2 + ',' + -(h / 2 + ry) + ')');
21343
21344 node.intersect = function (point) {
21345 var pos = dagre_d3__WEBPACK_IMPORTED_MODULE_0___default().intersect.rect(node, point);
21346 var x = pos.x - node.x;
21347
21348 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)) {
21349 // ellipsis equation: x*x / a*a + y*y / b*b = 1
21350 // solve for y to get adjustion value for pos.y
21351 var y = ry * ry * (1 - x * x / (rx * rx));
21352 if (y != 0) y = Math.sqrt(y);
21353 y = ry - y;
21354 if (point.y - node.y > 0) y = -y;
21355 pos.y += y;
21356 }
21357
21358 return pos;
21359 };
21360
21361 return shapeSvg;
21362}
21363/** @param render */
21364
21365
21366function addToRender(render) {
21367 render.shapes().question = question;
21368 render.shapes().hexagon = hexagon;
21369 render.shapes().stadium = stadium;
21370 render.shapes().subroutine = subroutine;
21371 render.shapes().cylinder = cylinder; // Add custom shape for box with inverted arrow on left side
21372
21373 render.shapes().rect_left_inv_arrow = rect_left_inv_arrow; // Add custom shape for box with inverted arrow on left side
21374
21375 render.shapes().lean_right = lean_right; // Add custom shape for box with inverted arrow on left side
21376
21377 render.shapes().lean_left = lean_left; // Add custom shape for box with inverted arrow on left side
21378
21379 render.shapes().trapezoid = trapezoid; // Add custom shape for box with inverted arrow on left side
21380
21381 render.shapes().inv_trapezoid = inv_trapezoid; // Add custom shape for box with inverted arrow on right side
21382
21383 render.shapes().rect_right_inv_arrow = rect_right_inv_arrow;
21384}
21385/** @param addShape */
21386
21387function addToRenderV2(addShape) {
21388 addShape({
21389 question: question
21390 });
21391 addShape({
21392 hexagon: hexagon
21393 });
21394 addShape({
21395 stadium: stadium
21396 });
21397 addShape({
21398 subroutine: subroutine
21399 });
21400 addShape({
21401 cylinder: cylinder
21402 }); // Add custom shape for box with inverted arrow on left side
21403
21404 addShape({
21405 rect_left_inv_arrow: rect_left_inv_arrow
21406 }); // Add custom shape for box with inverted arrow on left side
21407
21408 addShape({
21409 lean_right: lean_right
21410 }); // Add custom shape for box with inverted arrow on left side
21411
21412 addShape({
21413 lean_left: lean_left
21414 }); // Add custom shape for box with inverted arrow on left side
21415
21416 addShape({
21417 trapezoid: trapezoid
21418 }); // Add custom shape for box with inverted arrow on left side
21419
21420 addShape({
21421 inv_trapezoid: inv_trapezoid
21422 }); // Add custom shape for box with inverted arrow on right side
21423
21424 addShape({
21425 rect_right_inv_arrow: rect_right_inv_arrow
21426 });
21427}
21428/**
21429 * @param parent
21430 * @param w
21431 * @param h
21432 * @param points
21433 */
21434
21435function insertPolygonShape(parent, w, h, points) {
21436 return parent.insert('polygon', ':first-child').attr('points', points.map(function (d) {
21437 return d.x + ',' + d.y;
21438 }).join(' ')).attr('transform', 'translate(' + -w / 2 + ',' + h / 2 + ')');
21439}
21440
21441/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
21442 addToRender: addToRender,
21443 addToRenderV2: addToRenderV2
21444});
21445
21446/***/ }),
21447
21448/***/ "./src/diagrams/flowchart/flowDb.js":
21449/*!******************************************!*\
21450 !*** ./src/diagrams/flowchart/flowDb.js ***!
21451 \******************************************/
21452/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
21453
21454"use strict";
21455__webpack_require__.r(__webpack_exports__);
21456/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21457/* harmony export */ "addClass": () => (/* binding */ addClass),
21458/* harmony export */ "addLink": () => (/* binding */ addLink),
21459/* harmony export */ "addSingleLink": () => (/* binding */ addSingleLink),
21460/* harmony export */ "addSubGraph": () => (/* binding */ addSubGraph),
21461/* harmony export */ "addVertex": () => (/* binding */ addVertex),
21462/* harmony export */ "bindFunctions": () => (/* binding */ bindFunctions),
21463/* harmony export */ "clear": () => (/* binding */ clear),
21464/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
21465/* harmony export */ "defaultStyle": () => (/* binding */ defaultStyle),
21466/* harmony export */ "firstGraph": () => (/* binding */ firstGraph),
21467/* harmony export */ "getClasses": () => (/* binding */ getClasses),
21468/* harmony export */ "getDepthFirstPos": () => (/* binding */ getDepthFirstPos),
21469/* harmony export */ "getDirection": () => (/* binding */ getDirection),
21470/* harmony export */ "getEdges": () => (/* binding */ getEdges),
21471/* harmony export */ "getSubGraphs": () => (/* binding */ getSubGraphs),
21472/* harmony export */ "getTooltip": () => (/* binding */ getTooltip),
21473/* harmony export */ "getVertices": () => (/* binding */ getVertices),
21474/* harmony export */ "indexNodes": () => (/* binding */ indexNodes),
21475/* harmony export */ "lookUpDomId": () => (/* binding */ lookUpDomId),
21476/* harmony export */ "parseDirective": () => (/* binding */ parseDirective),
21477/* harmony export */ "setClass": () => (/* binding */ setClass),
21478/* harmony export */ "setClickEvent": () => (/* binding */ setClickEvent),
21479/* harmony export */ "setDirection": () => (/* binding */ setDirection),
21480/* harmony export */ "setGen": () => (/* binding */ setGen),
21481/* harmony export */ "setLink": () => (/* binding */ setLink),
21482/* harmony export */ "updateLink": () => (/* binding */ updateLink),
21483/* harmony export */ "updateLinkInterpolate": () => (/* binding */ updateLinkInterpolate)
21484/* harmony export */ });
21485/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
21486/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
21487/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ "./src/config.js");
21488/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
21489/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
21490/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
21491/* harmony import */ var _commonDb__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../commonDb */ "./src/commonDb.js");
21492function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
21493
21494function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
21495
21496function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
21497
21498function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
21499
21500function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
21501
21502function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
21503
21504function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
21505
21506
21507
21508
21509
21510
21511
21512
21513var MERMAID_DOM_ID_PREFIX = 'flowchart-';
21514var vertexCounter = 0;
21515var config = _config__WEBPACK_IMPORTED_MODULE_1__.getConfig();
21516var vertices = {};
21517var edges = [];
21518var classes = [];
21519var subGraphs = [];
21520var subGraphLookup = {};
21521var tooltips = {};
21522var subCount = 0;
21523var firstGraphFlag = true;
21524var direction;
21525var version; // As in graph
21526// Functions to be run after graph rendering
21527
21528var funs = [];
21529
21530var sanitizeText = function sanitizeText(txt) {
21531 return _common_common__WEBPACK_IMPORTED_MODULE_2__["default"].sanitizeText(txt, config);
21532};
21533
21534var parseDirective = function parseDirective(statement, context, type) {
21535 _mermaidAPI__WEBPACK_IMPORTED_MODULE_3__["default"].parseDirective(this, statement, context, type);
21536};
21537/**
21538 * Function to lookup domId from id in the graph definition.
21539 *
21540 * @param id
21541 * @public
21542 */
21543
21544var lookUpDomId = function lookUpDomId(id) {
21545 var veritceKeys = Object.keys(vertices);
21546
21547 for (var i = 0; i < veritceKeys.length; i++) {
21548 if (vertices[veritceKeys[i]].id === id) {
21549 return vertices[veritceKeys[i]].domId;
21550 }
21551 }
21552
21553 return id;
21554};
21555/**
21556 * Function called by parser when a node definition has been found
21557 *
21558 * @param _id
21559 * @param text
21560 * @param type
21561 * @param style
21562 * @param classes
21563 * @param dir
21564 * @param props
21565 */
21566
21567var addVertex = function addVertex(_id, text, type, style, classes, dir) {
21568 var props = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};
21569 var txt;
21570 var id = _id;
21571
21572 if (typeof id === 'undefined') {
21573 return;
21574 }
21575
21576 if (id.trim().length === 0) {
21577 return;
21578 } // if (id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id;
21579
21580
21581 if (typeof vertices[id] === 'undefined') {
21582 vertices[id] = {
21583 id: id,
21584 domId: MERMAID_DOM_ID_PREFIX + id + '-' + vertexCounter,
21585 styles: [],
21586 classes: []
21587 };
21588 }
21589
21590 vertexCounter++;
21591
21592 if (typeof text !== 'undefined') {
21593 config = _config__WEBPACK_IMPORTED_MODULE_1__.getConfig();
21594 txt = sanitizeText(text.trim()); // strip quotes if string starts and ends with a quote
21595
21596 if (txt[0] === '"' && txt[txt.length - 1] === '"') {
21597 txt = txt.substring(1, txt.length - 1);
21598 }
21599
21600 vertices[id].text = txt;
21601 } else {
21602 if (typeof vertices[id].text === 'undefined') {
21603 vertices[id].text = _id;
21604 }
21605 }
21606
21607 if (typeof type !== 'undefined') {
21608 vertices[id].type = type;
21609 }
21610
21611 if (typeof style !== 'undefined') {
21612 if (style !== null) {
21613 style.forEach(function (s) {
21614 vertices[id].styles.push(s);
21615 });
21616 }
21617 }
21618
21619 if (typeof classes !== 'undefined') {
21620 if (classes !== null) {
21621 classes.forEach(function (s) {
21622 vertices[id].classes.push(s);
21623 });
21624 }
21625 }
21626
21627 if (typeof dir !== 'undefined') {
21628 vertices[id].dir = dir;
21629 }
21630
21631 vertices[id].props = props;
21632};
21633/**
21634 * Function called by parser when a link/edge definition has been found
21635 *
21636 * @param _start
21637 * @param _end
21638 * @param type
21639 * @param linktext
21640 */
21641
21642var addSingleLink = function addSingleLink(_start, _end, type, linktext) {
21643 var start = _start;
21644 var end = _end; // if (start[0].match(/\d/)) start = MERMAID_DOM_ID_PREFIX + start;
21645 // if (end[0].match(/\d/)) end = MERMAID_DOM_ID_PREFIX + end;
21646 // log.info('Got edge...', start, end);
21647
21648 var edge = {
21649 start: start,
21650 end: end,
21651 type: undefined,
21652 text: ''
21653 };
21654 linktext = type.text;
21655
21656 if (typeof linktext !== 'undefined') {
21657 edge.text = sanitizeText(linktext.trim()); // strip quotes if string starts and exnds with a quote
21658
21659 if (edge.text[0] === '"' && edge.text[edge.text.length - 1] === '"') {
21660 edge.text = edge.text.substring(1, edge.text.length - 1);
21661 }
21662 }
21663
21664 if (typeof type !== 'undefined') {
21665 edge.type = type.type;
21666 edge.stroke = type.stroke;
21667 edge.length = type.length;
21668 }
21669
21670 edges.push(edge);
21671};
21672var addLink = function addLink(_start, _end, type, linktext) {
21673 var i, j;
21674
21675 for (i = 0; i < _start.length; i++) {
21676 for (j = 0; j < _end.length; j++) {
21677 addSingleLink(_start[i], _end[j], type, linktext);
21678 }
21679 }
21680};
21681/**
21682 * Updates a link's line interpolation algorithm
21683 *
21684 * @param positions
21685 * @param interp
21686 */
21687
21688var updateLinkInterpolate = function updateLinkInterpolate(positions, interp) {
21689 positions.forEach(function (pos) {
21690 if (pos === 'default') {
21691 edges.defaultInterpolate = interp;
21692 } else {
21693 edges[pos].interpolate = interp;
21694 }
21695 });
21696};
21697/**
21698 * Updates a link with a style
21699 *
21700 * @param positions
21701 * @param style
21702 */
21703
21704var updateLink = function updateLink(positions, style) {
21705 positions.forEach(function (pos) {
21706 if (pos === 'default') {
21707 edges.defaultStyle = style;
21708 } else {
21709 if (_utils__WEBPACK_IMPORTED_MODULE_4__["default"].isSubstringInArray('fill', style) === -1) {
21710 style.push('fill:none');
21711 }
21712
21713 edges[pos].style = style;
21714 }
21715 });
21716};
21717var addClass = function addClass(id, style) {
21718 if (typeof classes[id] === 'undefined') {
21719 classes[id] = {
21720 id: id,
21721 styles: [],
21722 textStyles: []
21723 };
21724 }
21725
21726 if (typeof style !== 'undefined') {
21727 if (style !== null) {
21728 style.forEach(function (s) {
21729 if (s.match('color')) {
21730 var newStyle1 = s.replace('fill', 'bgFill');
21731 var newStyle2 = newStyle1.replace('color', 'fill');
21732 classes[id].textStyles.push(newStyle2);
21733 }
21734
21735 classes[id].styles.push(s);
21736 });
21737 }
21738 }
21739};
21740/**
21741 * Called by parser when a graph definition is found, stores the direction of the chart.
21742 *
21743 * @param dir
21744 */
21745
21746var setDirection = function setDirection(dir) {
21747 direction = dir;
21748
21749 if (direction.match(/.*</)) {
21750 direction = 'RL';
21751 }
21752
21753 if (direction.match(/.*\^/)) {
21754 direction = 'BT';
21755 }
21756
21757 if (direction.match(/.*>/)) {
21758 direction = 'LR';
21759 }
21760
21761 if (direction.match(/.*v/)) {
21762 direction = 'TB';
21763 }
21764};
21765/**
21766 * Called by parser when a special node is found, e.g. a clickable element.
21767 *
21768 * @param ids Comma separated list of ids
21769 * @param className Class to add
21770 */
21771
21772var setClass = function setClass(ids, className) {
21773 ids.split(',').forEach(function (_id) {
21774 // let id = version === 'gen-2' ? lookUpDomId(_id) : _id;
21775 var id = _id; // if (_id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id;
21776
21777 if (typeof vertices[id] !== 'undefined') {
21778 vertices[id].classes.push(className);
21779 }
21780
21781 if (typeof subGraphLookup[id] !== 'undefined') {
21782 subGraphLookup[id].classes.push(className);
21783 }
21784 });
21785};
21786
21787var setTooltip = function setTooltip(ids, tooltip) {
21788 ids.split(',').forEach(function (id) {
21789 if (typeof tooltip !== 'undefined') {
21790 tooltips[version === 'gen-1' ? lookUpDomId(id) : id] = sanitizeText(tooltip);
21791 }
21792 });
21793};
21794
21795var setClickFun = function setClickFun(id, functionName, functionArgs) {
21796 var domId = lookUpDomId(id); // if (_id[0].match(/\d/)) id = MERMAID_DOM_ID_PREFIX + id;
21797
21798 if (_config__WEBPACK_IMPORTED_MODULE_1__.getConfig().securityLevel !== 'loose') {
21799 return;
21800 }
21801
21802 if (typeof functionName === 'undefined') {
21803 return;
21804 }
21805
21806 var argList = [];
21807
21808 if (typeof functionArgs === 'string') {
21809 /* Splits functionArgs by ',', ignoring all ',' in double quoted strings */
21810 argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
21811
21812 for (var i = 0; i < argList.length; i++) {
21813 var item = argList[i].trim();
21814 /* Removes all double quotes at the start and end of an argument */
21815
21816 /* This preserves all starting and ending whitespace inside */
21817
21818 if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
21819 item = item.substr(1, item.length - 2);
21820 }
21821
21822 argList[i] = item;
21823 }
21824 }
21825 /* if no arguments passed into callback, default to passing in id */
21826
21827
21828 if (argList.length === 0) {
21829 argList.push(id);
21830 }
21831
21832 if (typeof vertices[id] !== 'undefined') {
21833 vertices[id].haveCallback = true;
21834 funs.push(function () {
21835 var elem = document.querySelector("[id=\"".concat(domId, "\"]"));
21836
21837 if (elem !== null) {
21838 elem.addEventListener('click', function () {
21839 _utils__WEBPACK_IMPORTED_MODULE_4__["default"].runFunc.apply(_utils__WEBPACK_IMPORTED_MODULE_4__["default"], [functionName].concat(_toConsumableArray(argList)));
21840 }, false);
21841 }
21842 });
21843 }
21844};
21845/**
21846 * Called by parser when a link is found. Adds the URL to the vertex data.
21847 *
21848 * @param ids Comma separated list of ids
21849 * @param linkStr URL to create a link for
21850 * @param target
21851 */
21852
21853
21854var setLink = function setLink(ids, linkStr, target) {
21855 ids.split(',').forEach(function (id) {
21856 if (typeof vertices[id] !== 'undefined') {
21857 vertices[id].link = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].formatUrl(linkStr, config);
21858 vertices[id].linkTarget = target;
21859 }
21860 });
21861 setClass(ids, 'clickable');
21862};
21863var getTooltip = function getTooltip(id) {
21864 return tooltips[id];
21865};
21866/**
21867 * Called by parser when a click definition is found. Registers an event handler.
21868 *
21869 * @param ids Comma separated list of ids
21870 * @param functionName Function to be called on click
21871 * @param functionArgs
21872 */
21873
21874var setClickEvent = function setClickEvent(ids, functionName, functionArgs) {
21875 ids.split(',').forEach(function (id) {
21876 setClickFun(id, functionName, functionArgs);
21877 });
21878 setClass(ids, 'clickable');
21879};
21880var bindFunctions = function bindFunctions(element) {
21881 funs.forEach(function (fun) {
21882 fun(element);
21883 });
21884};
21885var getDirection = function getDirection() {
21886 return direction.trim();
21887};
21888/**
21889 * Retrieval function for fetching the found nodes after parsing has completed.
21890 *
21891 * @returns {{} | any | vertices}
21892 */
21893
21894var getVertices = function getVertices() {
21895 return vertices;
21896};
21897/**
21898 * Retrieval function for fetching the found links after parsing has completed.
21899 *
21900 * @returns {{} | any | edges}
21901 */
21902
21903var getEdges = function getEdges() {
21904 return edges;
21905};
21906/**
21907 * Retrieval function for fetching the found class definitions after parsing has completed.
21908 *
21909 * @returns {{} | any | classes}
21910 */
21911
21912var getClasses = function getClasses() {
21913 return classes;
21914};
21915
21916var setupToolTips = function setupToolTips(element) {
21917 var tooltipElem = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('.mermaidTooltip');
21918
21919 if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
21920 tooltipElem = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('body').append('div').attr('class', 'mermaidTooltip').style('opacity', 0);
21921 }
21922
21923 var svg = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(element).select('svg');
21924 var nodes = svg.selectAll('g.node');
21925 nodes.on('mouseover', function () {
21926 var el = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(this);
21927 var title = el.attr('title'); // Dont try to draw a tooltip if no data is provided
21928
21929 if (title === null) {
21930 return;
21931 }
21932
21933 var rect = this.getBoundingClientRect();
21934 tooltipElem.transition().duration(200).style('opacity', '.9');
21935 tooltipElem.text(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');
21936 el.classed('hover', true);
21937 }).on('mouseout', function () {
21938 tooltipElem.transition().duration(500).style('opacity', 0);
21939 var el = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(this);
21940 el.classed('hover', false);
21941 });
21942};
21943
21944funs.push(setupToolTips);
21945/**
21946 * Clears the internal graph db so that a new graph can be parsed.
21947 *
21948 * @param ver
21949 */
21950
21951var clear = function clear(ver) {
21952 vertices = {};
21953 classes = {};
21954 edges = [];
21955 funs = [];
21956 funs.push(setupToolTips);
21957 subGraphs = [];
21958 subGraphLookup = {};
21959 subCount = 0;
21960 tooltips = [];
21961 firstGraphFlag = true;
21962 version = ver || 'gen-1';
21963 (0,_commonDb__WEBPACK_IMPORTED_MODULE_5__.clear)();
21964};
21965var setGen = function setGen(ver) {
21966 version = ver || 'gen-1';
21967};
21968/** @returns {string} */
21969
21970var defaultStyle = function defaultStyle() {
21971 return 'fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;';
21972};
21973/**
21974 * Clears the internal graph db so that a new graph can be parsed.
21975 *
21976 * @param _id
21977 * @param list
21978 * @param _title
21979 */
21980
21981var addSubGraph = function addSubGraph(_id, list, _title) {
21982 // console.log('addSubGraph', _id, list, _title);
21983 var id = _id.trim();
21984
21985 var title = _title;
21986
21987 if (_id === _title && _title.match(/\s/)) {
21988 id = undefined;
21989 }
21990 /** @param a */
21991
21992
21993 function uniq(a) {
21994 var prims = {
21995 boolean: {},
21996 number: {},
21997 string: {}
21998 };
21999 var objs = [];
22000 var dir; // = undefined; direction.trim();
22001
22002 var nodeList = a.filter(function (item) {
22003 var type = _typeof(item);
22004
22005 if (item.stmt && item.stmt === 'dir') {
22006 dir = item.value;
22007 return false;
22008 }
22009
22010 if (item.trim() === '') {
22011 return false;
22012 }
22013
22014 if (type in prims) {
22015 return prims[type].hasOwnProperty(item) ? false : prims[type][item] = true; // eslint-disable-line
22016 } else {
22017 return objs.indexOf(item) >= 0 ? false : objs.push(item);
22018 }
22019 });
22020 return {
22021 nodeList: nodeList,
22022 dir: dir
22023 };
22024 }
22025
22026 var nodeList = [];
22027
22028 var _uniq = uniq(nodeList.concat.apply(nodeList, list)),
22029 nl = _uniq.nodeList,
22030 dir = _uniq.dir;
22031
22032 nodeList = nl;
22033
22034 if (version === 'gen-1') {
22035 for (var i = 0; i < nodeList.length; i++) {
22036 nodeList[i] = lookUpDomId(nodeList[i]);
22037 }
22038 }
22039
22040 id = id || 'subGraph' + subCount; // if (id[0].match(/\d/)) id = lookUpDomId(id);
22041
22042 title = title || '';
22043 title = sanitizeText(title);
22044 subCount = subCount + 1;
22045 var subGraph = {
22046 id: id,
22047 nodes: nodeList,
22048 title: title.trim(),
22049 classes: [],
22050 dir: dir
22051 };
22052 _logger__WEBPACK_IMPORTED_MODULE_6__.log.info('Adding', subGraph.id, subGraph.nodes, subGraph.dir);
22053 /** Deletes an id from all subgraphs */
22054 // const del = _id => {
22055 // subGraphs.forEach(sg => {
22056 // const pos = sg.nodes.indexOf(_id);
22057 // if (pos >= 0) {
22058 // sg.nodes.splice(pos, 1);
22059 // }
22060 // });
22061 // };
22062 // // Removes the members of this subgraph from any other subgraphs, a node only belong to one subgraph
22063 // subGraph.nodes.forEach(_id => del(_id));
22064 // Remove the members in the new subgraph if they already belong to another subgraph
22065
22066 subGraph.nodes = makeUniq(subGraph, subGraphs).nodes;
22067 subGraphs.push(subGraph);
22068 subGraphLookup[id] = subGraph;
22069 return id;
22070};
22071
22072var getPosForId = function getPosForId(id) {
22073 for (var i = 0; i < subGraphs.length; i++) {
22074 if (subGraphs[i].id === id) {
22075 return i;
22076 }
22077 }
22078
22079 return -1;
22080};
22081
22082var secCount = -1;
22083var posCrossRef = [];
22084
22085var indexNodes2 = function indexNodes2(id, pos) {
22086 var nodes = subGraphs[pos].nodes;
22087 secCount = secCount + 1;
22088
22089 if (secCount > 2000) {
22090 return;
22091 }
22092
22093 posCrossRef[secCount] = pos; // Check if match
22094
22095 if (subGraphs[pos].id === id) {
22096 return {
22097 result: true,
22098 count: 0
22099 };
22100 }
22101
22102 var count = 0;
22103 var posCount = 1;
22104
22105 while (count < nodes.length) {
22106 var childPos = getPosForId(nodes[count]); // Ignore regular nodes (pos will be -1)
22107
22108 if (childPos >= 0) {
22109 var res = indexNodes2(id, childPos);
22110
22111 if (res.result) {
22112 return {
22113 result: true,
22114 count: posCount + res.count
22115 };
22116 } else {
22117 posCount = posCount + res.count;
22118 }
22119 }
22120
22121 count = count + 1;
22122 }
22123
22124 return {
22125 result: false,
22126 count: posCount
22127 };
22128};
22129
22130var getDepthFirstPos = function getDepthFirstPos(pos) {
22131 return posCrossRef[pos];
22132};
22133var indexNodes = function indexNodes() {
22134 secCount = -1;
22135
22136 if (subGraphs.length > 0) {
22137 indexNodes2('none', subGraphs.length - 1, 0);
22138 }
22139};
22140var getSubGraphs = function getSubGraphs() {
22141 return subGraphs;
22142};
22143var firstGraph = function firstGraph() {
22144 if (firstGraphFlag) {
22145 firstGraphFlag = false;
22146 return true;
22147 }
22148
22149 return false;
22150};
22151
22152var destructStartLink = function destructStartLink(_str) {
22153 var str = _str.trim();
22154
22155 var type = 'arrow_open';
22156
22157 switch (str[0]) {
22158 case '<':
22159 type = 'arrow_point';
22160 str = str.slice(1);
22161 break;
22162
22163 case 'x':
22164 type = 'arrow_cross';
22165 str = str.slice(1);
22166 break;
22167
22168 case 'o':
22169 type = 'arrow_circle';
22170 str = str.slice(1);
22171 break;
22172 }
22173
22174 var stroke = 'normal';
22175
22176 if (str.indexOf('=') !== -1) {
22177 stroke = 'thick';
22178 }
22179
22180 if (str.indexOf('.') !== -1) {
22181 stroke = 'dotted';
22182 }
22183
22184 return {
22185 type: type,
22186 stroke: stroke
22187 };
22188};
22189
22190var countChar = function countChar(char, str) {
22191 var length = str.length;
22192 var count = 0;
22193
22194 for (var i = 0; i < length; ++i) {
22195 if (str[i] === char) {
22196 ++count;
22197 }
22198 }
22199
22200 return count;
22201};
22202
22203var destructEndLink = function destructEndLink(_str) {
22204 var str = _str.trim();
22205
22206 var line = str.slice(0, -1);
22207 var type = 'arrow_open';
22208
22209 switch (str.slice(-1)) {
22210 case 'x':
22211 type = 'arrow_cross';
22212
22213 if (str[0] === 'x') {
22214 type = 'double_' + type;
22215 line = line.slice(1);
22216 }
22217
22218 break;
22219
22220 case '>':
22221 type = 'arrow_point';
22222
22223 if (str[0] === '<') {
22224 type = 'double_' + type;
22225 line = line.slice(1);
22226 }
22227
22228 break;
22229
22230 case 'o':
22231 type = 'arrow_circle';
22232
22233 if (str[0] === 'o') {
22234 type = 'double_' + type;
22235 line = line.slice(1);
22236 }
22237
22238 break;
22239 }
22240
22241 var stroke = 'normal';
22242 var length = line.length - 1;
22243
22244 if (line[0] === '=') {
22245 stroke = 'thick';
22246 }
22247
22248 var dots = countChar('.', line);
22249
22250 if (dots) {
22251 stroke = 'dotted';
22252 length = dots;
22253 }
22254
22255 return {
22256 type: type,
22257 stroke: stroke,
22258 length: length
22259 };
22260};
22261
22262var destructLink = function destructLink(_str, _startStr) {
22263 var info = destructEndLink(_str);
22264 var startInfo;
22265
22266 if (_startStr) {
22267 startInfo = destructStartLink(_startStr);
22268
22269 if (startInfo.stroke !== info.stroke) {
22270 return {
22271 type: 'INVALID',
22272 stroke: 'INVALID'
22273 };
22274 }
22275
22276 if (startInfo.type === 'arrow_open') {
22277 // -- xyz --> - take arrow type from ending
22278 startInfo.type = info.type;
22279 } else {
22280 // x-- xyz --> - not supported
22281 if (startInfo.type !== info.type) return {
22282 type: 'INVALID',
22283 stroke: 'INVALID'
22284 };
22285 startInfo.type = 'double_' + startInfo.type;
22286 }
22287
22288 if (startInfo.type === 'double_arrow') {
22289 startInfo.type = 'double_arrow_point';
22290 }
22291
22292 startInfo.length = info.length;
22293 return startInfo;
22294 }
22295
22296 return info;
22297}; // Todo optimizer this by caching existing nodes
22298
22299
22300var exists = function exists(allSgs, _id) {
22301 var res = false;
22302 allSgs.forEach(function (sg) {
22303 var pos = sg.nodes.indexOf(_id);
22304
22305 if (pos >= 0) {
22306 res = true;
22307 }
22308 });
22309 return res;
22310};
22311/**
22312 * Deletes an id from all subgraphs
22313 *
22314 * @param sg
22315 * @param allSubgraphs
22316 */
22317
22318
22319var makeUniq = function makeUniq(sg, allSubgraphs) {
22320 var res = [];
22321 sg.nodes.forEach(function (_id, pos) {
22322 if (!exists(allSubgraphs, _id)) {
22323 res.push(sg.nodes[pos]);
22324 }
22325 });
22326 return {
22327 nodes: res
22328 };
22329};
22330
22331/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
22332 parseDirective: parseDirective,
22333 defaultConfig: function defaultConfig() {
22334 return _config__WEBPACK_IMPORTED_MODULE_1__.defaultConfig.flowchart;
22335 },
22336 setAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_5__.setAccTitle,
22337 getAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_5__.getAccTitle,
22338 getAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_5__.getAccDescription,
22339 setAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_5__.setAccDescription,
22340 addVertex: addVertex,
22341 lookUpDomId: lookUpDomId,
22342 addLink: addLink,
22343 updateLinkInterpolate: updateLinkInterpolate,
22344 updateLink: updateLink,
22345 addClass: addClass,
22346 setDirection: setDirection,
22347 setClass: setClass,
22348 setTooltip: setTooltip,
22349 getTooltip: getTooltip,
22350 setClickEvent: setClickEvent,
22351 setLink: setLink,
22352 bindFunctions: bindFunctions,
22353 getDirection: getDirection,
22354 getVertices: getVertices,
22355 getEdges: getEdges,
22356 getClasses: getClasses,
22357 clear: clear,
22358 setGen: setGen,
22359 defaultStyle: defaultStyle,
22360 addSubGraph: addSubGraph,
22361 getDepthFirstPos: getDepthFirstPos,
22362 indexNodes: indexNodes,
22363 getSubGraphs: getSubGraphs,
22364 destructLink: destructLink,
22365 lex: {
22366 firstGraph: firstGraph
22367 },
22368 exists: exists,
22369 makeUniq: makeUniq
22370});
22371
22372/***/ }),
22373
22374/***/ "./src/diagrams/flowchart/flowRenderer-v2.js":
22375/*!***************************************************!*\
22376 !*** ./src/diagrams/flowchart/flowRenderer-v2.js ***!
22377 \***************************************************/
22378/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
22379
22380"use strict";
22381__webpack_require__.r(__webpack_exports__);
22382/* harmony export */ __webpack_require__.d(__webpack_exports__, {
22383/* harmony export */ "addEdges": () => (/* binding */ addEdges),
22384/* harmony export */ "addVertices": () => (/* binding */ addVertices),
22385/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
22386/* harmony export */ "draw": () => (/* binding */ draw),
22387/* harmony export */ "getClasses": () => (/* binding */ getClasses),
22388/* harmony export */ "setConf": () => (/* binding */ setConf)
22389/* harmony export */ });
22390/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
22391/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_0__);
22392/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
22393/* harmony import */ var _flowDb__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./flowDb */ "./src/diagrams/flowchart/flowDb.js");
22394/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../config */ "./src/config.js");
22395/* harmony import */ var _dagre_wrapper_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../dagre-wrapper/index.js */ "./src/dagre-wrapper/index.js");
22396/* harmony import */ var dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! dagre-d3/lib/label/add-html-label.js */ "./node_modules/dagre-d3/lib/label/add-html-label.js");
22397/* harmony import */ var dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_2__);
22398/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
22399/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
22400/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
22401/* harmony import */ var _accessibility__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../accessibility */ "./src/accessibility.js");
22402
22403
22404
22405
22406
22407
22408
22409
22410
22411
22412
22413var conf = {};
22414var setConf = function setConf(cnf) {
22415 var keys = Object.keys(cnf);
22416
22417 for (var i = 0; i < keys.length; i++) {
22418 conf[keys[i]] = cnf[keys[i]];
22419 }
22420};
22421/**
22422 * Function that adds the vertices found during parsing to the graph to be rendered.
22423 *
22424 * @param vert Object containing the vertices.
22425 * @param g The graph that is to be drawn.
22426 * @param svgId
22427 * @param root
22428 * @param doc
22429 * @param diagObj
22430 */
22431
22432var addVertices = function addVertices(vert, g, svgId, root, doc, diagObj) {
22433 var svg = root.select("[id=\"".concat(svgId, "\"]"));
22434 var keys = Object.keys(vert); // Iterate through each item in the vertex object (containing all the vertices found) in the graph definition
22435
22436 keys.forEach(function (id) {
22437 var vertex = vert[id];
22438 /**
22439 * Variable for storing the classes for the vertex
22440 *
22441 * @type {string}
22442 */
22443
22444 var classStr = 'default';
22445
22446 if (vertex.classes.length > 0) {
22447 classStr = vertex.classes.join(' ');
22448 }
22449
22450 var styles = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getStylesFromArray)(vertex.styles); // Use vertex id as text in the box if no text is provided by the graph definition
22451
22452 var vertexText = vertex.text !== undefined ? vertex.text : vertex.id; // We create a SVG label, either by delegating to addHtmlLabel or manually
22453
22454 var vertexNode;
22455
22456 if ((0,_common_common__WEBPACK_IMPORTED_MODULE_4__.evaluate)((0,_config__WEBPACK_IMPORTED_MODULE_5__.getConfig)().flowchart.htmlLabels)) {
22457 // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?
22458 var node = {
22459 label: vertexText.replace(/fa[lrsb]?:fa-[\w-]+/g, function (s) {
22460 return "<i class='".concat(s.replace(':', ' '), "'></i>");
22461 })
22462 };
22463 vertexNode = dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_2___default()(svg, node).node();
22464 vertexNode.parentNode.removeChild(vertexNode);
22465 } else {
22466 var svgLabel = doc.createElementNS('http://www.w3.org/2000/svg', 'text');
22467 svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));
22468 var rows = vertexText.split(_common_common__WEBPACK_IMPORTED_MODULE_4__["default"].lineBreakRegex);
22469
22470 for (var j = 0; j < rows.length; j++) {
22471 var tspan = doc.createElementNS('http://www.w3.org/2000/svg', 'tspan');
22472 tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
22473 tspan.setAttribute('dy', '1em');
22474 tspan.setAttribute('x', '1');
22475 tspan.textContent = rows[j];
22476 svgLabel.appendChild(tspan);
22477 }
22478
22479 vertexNode = svgLabel;
22480 }
22481
22482 var radious = 0;
22483 var _shape = ''; // Set the shape based parameters
22484
22485 switch (vertex.type) {
22486 case 'round':
22487 radious = 5;
22488 _shape = 'rect';
22489 break;
22490
22491 case 'square':
22492 _shape = 'rect';
22493 break;
22494
22495 case 'diamond':
22496 _shape = 'question';
22497 break;
22498
22499 case 'hexagon':
22500 _shape = 'hexagon';
22501 break;
22502
22503 case 'odd':
22504 _shape = 'rect_left_inv_arrow';
22505 break;
22506
22507 case 'lean_right':
22508 _shape = 'lean_right';
22509 break;
22510
22511 case 'lean_left':
22512 _shape = 'lean_left';
22513 break;
22514
22515 case 'trapezoid':
22516 _shape = 'trapezoid';
22517 break;
22518
22519 case 'inv_trapezoid':
22520 _shape = 'inv_trapezoid';
22521 break;
22522
22523 case 'odd_right':
22524 _shape = 'rect_left_inv_arrow';
22525 break;
22526
22527 case 'circle':
22528 _shape = 'circle';
22529 break;
22530
22531 case 'ellipse':
22532 _shape = 'ellipse';
22533 break;
22534
22535 case 'stadium':
22536 _shape = 'stadium';
22537 break;
22538
22539 case 'subroutine':
22540 _shape = 'subroutine';
22541 break;
22542
22543 case 'cylinder':
22544 _shape = 'cylinder';
22545 break;
22546
22547 case 'group':
22548 _shape = 'rect';
22549 break;
22550
22551 case 'doublecircle':
22552 _shape = 'doublecircle';
22553 break;
22554
22555 default:
22556 _shape = 'rect';
22557 } // Add the node
22558
22559
22560 g.setNode(vertex.id, {
22561 labelStyle: styles.labelStyle,
22562 shape: _shape,
22563 labelText: vertexText,
22564 rx: radious,
22565 ry: radious,
22566 class: classStr,
22567 style: styles.style,
22568 id: vertex.id,
22569 link: vertex.link,
22570 linkTarget: vertex.linkTarget,
22571 tooltip: diagObj.db.getTooltip(vertex.id) || '',
22572 domId: diagObj.db.lookUpDomId(vertex.id),
22573 haveCallback: vertex.haveCallback,
22574 width: vertex.type === 'group' ? 500 : undefined,
22575 dir: vertex.dir,
22576 type: vertex.type,
22577 props: vertex.props,
22578 padding: (0,_config__WEBPACK_IMPORTED_MODULE_5__.getConfig)().flowchart.padding
22579 });
22580 _logger__WEBPACK_IMPORTED_MODULE_6__.log.info('setNode', {
22581 labelStyle: styles.labelStyle,
22582 shape: _shape,
22583 labelText: vertexText,
22584 rx: radious,
22585 ry: radious,
22586 class: classStr,
22587 style: styles.style,
22588 id: vertex.id,
22589 domId: diagObj.db.lookUpDomId(vertex.id),
22590 width: vertex.type === 'group' ? 500 : undefined,
22591 type: vertex.type,
22592 dir: vertex.dir,
22593 props: vertex.props,
22594 padding: (0,_config__WEBPACK_IMPORTED_MODULE_5__.getConfig)().flowchart.padding
22595 });
22596 });
22597};
22598/**
22599 * Add edges to graph based on parsed graph definition
22600 *
22601 * @param {object} edges The edges to add to the graph
22602 * @param {object} g The graph object
22603 * @param diagObj
22604 */
22605
22606var addEdges = function addEdges(edges, g, diagObj) {
22607 _logger__WEBPACK_IMPORTED_MODULE_6__.log.info('abc78 edges = ', edges);
22608 var cnt = 0;
22609 var linkIdCnt = {};
22610 var defaultStyle;
22611 var defaultLabelStyle;
22612
22613 if (typeof edges.defaultStyle !== 'undefined') {
22614 var defaultStyles = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getStylesFromArray)(edges.defaultStyle);
22615 defaultStyle = defaultStyles.style;
22616 defaultLabelStyle = defaultStyles.labelStyle;
22617 }
22618
22619 edges.forEach(function (edge) {
22620 cnt++; // Identify Link
22621
22622 var linkIdBase = 'L-' + edge.start + '-' + edge.end; // count the links from+to the same node to give unique id
22623
22624 if (typeof linkIdCnt[linkIdBase] === 'undefined') {
22625 linkIdCnt[linkIdBase] = 0;
22626 _logger__WEBPACK_IMPORTED_MODULE_6__.log.info('abc78 new entry', linkIdBase, linkIdCnt[linkIdBase]);
22627 } else {
22628 linkIdCnt[linkIdBase]++;
22629 _logger__WEBPACK_IMPORTED_MODULE_6__.log.info('abc78 new entry', linkIdBase, linkIdCnt[linkIdBase]);
22630 }
22631
22632 var linkId = linkIdBase + '-' + linkIdCnt[linkIdBase];
22633 _logger__WEBPACK_IMPORTED_MODULE_6__.log.info('abc78 new link id to be used is', linkIdBase, linkId, linkIdCnt[linkIdBase]);
22634 var linkNameStart = 'LS-' + edge.start;
22635 var linkNameEnd = 'LE-' + edge.end;
22636 var edgeData = {
22637 style: '',
22638 labelStyle: ''
22639 };
22640 edgeData.minlen = edge.length || 1; //edgeData.id = 'id' + cnt;
22641 // Set link type for rendering
22642
22643 if (edge.type === 'arrow_open') {
22644 edgeData.arrowhead = 'none';
22645 } else {
22646 edgeData.arrowhead = 'normal';
22647 } // Check of arrow types, placed here in order not to break old rendering
22648
22649
22650 edgeData.arrowTypeStart = 'arrow_open';
22651 edgeData.arrowTypeEnd = 'arrow_open';
22652 /* eslint-disable no-fallthrough */
22653
22654 switch (edge.type) {
22655 case 'double_arrow_cross':
22656 edgeData.arrowTypeStart = 'arrow_cross';
22657
22658 case 'arrow_cross':
22659 edgeData.arrowTypeEnd = 'arrow_cross';
22660 break;
22661
22662 case 'double_arrow_point':
22663 edgeData.arrowTypeStart = 'arrow_point';
22664
22665 case 'arrow_point':
22666 edgeData.arrowTypeEnd = 'arrow_point';
22667 break;
22668
22669 case 'double_arrow_circle':
22670 edgeData.arrowTypeStart = 'arrow_circle';
22671
22672 case 'arrow_circle':
22673 edgeData.arrowTypeEnd = 'arrow_circle';
22674 break;
22675 }
22676
22677 var style = '';
22678 var labelStyle = '';
22679
22680 switch (edge.stroke) {
22681 case 'normal':
22682 style = 'fill:none;';
22683
22684 if (typeof defaultStyle !== 'undefined') {
22685 style = defaultStyle;
22686 }
22687
22688 if (typeof defaultLabelStyle !== 'undefined') {
22689 labelStyle = defaultLabelStyle;
22690 }
22691
22692 edgeData.thickness = 'normal';
22693 edgeData.pattern = 'solid';
22694 break;
22695
22696 case 'dotted':
22697 edgeData.thickness = 'normal';
22698 edgeData.pattern = 'dotted';
22699 edgeData.style = 'fill:none;stroke-width:2px;stroke-dasharray:3;';
22700 break;
22701
22702 case 'thick':
22703 edgeData.thickness = 'thick';
22704 edgeData.pattern = 'solid';
22705 edgeData.style = 'stroke-width: 3.5px;fill:none;';
22706 break;
22707 }
22708
22709 if (typeof edge.style !== 'undefined') {
22710 var styles = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getStylesFromArray)(edge.style);
22711 style = styles.style;
22712 labelStyle = styles.labelStyle;
22713 }
22714
22715 edgeData.style = edgeData.style += style;
22716 edgeData.labelStyle = edgeData.labelStyle += labelStyle;
22717
22718 if (typeof edge.interpolate !== 'undefined') {
22719 edgeData.curve = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.interpolateToCurve)(edge.interpolate, d3__WEBPACK_IMPORTED_MODULE_1__.curveLinear);
22720 } else if (typeof edges.defaultInterpolate !== 'undefined') {
22721 edgeData.curve = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.interpolateToCurve)(edges.defaultInterpolate, d3__WEBPACK_IMPORTED_MODULE_1__.curveLinear);
22722 } else {
22723 edgeData.curve = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.interpolateToCurve)(conf.curve, d3__WEBPACK_IMPORTED_MODULE_1__.curveLinear);
22724 }
22725
22726 if (typeof edge.text === 'undefined') {
22727 if (typeof edge.style !== 'undefined') {
22728 edgeData.arrowheadStyle = 'fill: #333';
22729 }
22730 } else {
22731 edgeData.arrowheadStyle = 'fill: #333';
22732 edgeData.labelpos = 'c';
22733 }
22734
22735 edgeData.labelType = 'text';
22736 edgeData.label = edge.text.replace(_common_common__WEBPACK_IMPORTED_MODULE_4__["default"].lineBreakRegex, '\n');
22737
22738 if (typeof edge.style === 'undefined') {
22739 edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none;';
22740 }
22741
22742 edgeData.labelStyle = edgeData.labelStyle.replace('color:', 'fill:');
22743 edgeData.id = linkId;
22744 edgeData.classes = 'flowchart-link ' + linkNameStart + ' ' + linkNameEnd; // Add the edge to the graph
22745
22746 g.setEdge(edge.start, edge.end, edgeData, cnt);
22747 });
22748};
22749/**
22750 * Returns the all the styles from classDef statements in the graph definition.
22751 *
22752 * @param text
22753 * @param diagObj
22754 * @returns {object} ClassDef styles
22755 */
22756
22757var getClasses = function getClasses(text, diagObj) {
22758 _logger__WEBPACK_IMPORTED_MODULE_6__.log.info('Extracting classes');
22759 diagObj.db.clear();
22760
22761 try {
22762 // Parse the graph definition
22763 diagObj.parse(text);
22764 return diagObj.db.getClasses();
22765 } catch (e) {
22766 return;
22767 }
22768};
22769/**
22770 * Draws a flowchart in the tag with id: id based on the graph definition in text.
22771 *
22772 * @param text
22773 * @param id
22774 */
22775
22776var draw = function draw(text, id, _version, diagObj) {
22777 _logger__WEBPACK_IMPORTED_MODULE_6__.log.info('Drawing flowchart');
22778 diagObj.db.clear();
22779 _flowDb__WEBPACK_IMPORTED_MODULE_7__["default"].setGen('gen-2'); // Parse the graph definition
22780
22781 diagObj.parser.parse(text); // Fetch the default direction, use TD if none was found
22782
22783 var dir = diagObj.db.getDirection();
22784
22785 if (typeof dir === 'undefined') {
22786 dir = 'TD';
22787 }
22788
22789 var conf = (0,_config__WEBPACK_IMPORTED_MODULE_5__.getConfig)().flowchart;
22790 var nodeSpacing = conf.nodeSpacing || 50;
22791 var rankSpacing = conf.rankSpacing || 50;
22792 var securityLevel = (0,_config__WEBPACK_IMPORTED_MODULE_5__.getConfig)().securityLevel; // Handle root and document for when rendering in sandbox mode
22793
22794 var sandboxElement;
22795
22796 if (securityLevel === 'sandbox') {
22797 sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)('#i' + id);
22798 }
22799
22800 var root = securityLevel === 'sandbox' ? (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)('body');
22801 var doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document; // Create the input mermaid.graph
22802
22803 var g = new (graphlib__WEBPACK_IMPORTED_MODULE_0___default().Graph)({
22804 multigraph: true,
22805 compound: true
22806 }).setGraph({
22807 rankdir: dir,
22808 nodesep: nodeSpacing,
22809 ranksep: rankSpacing,
22810 marginx: 8,
22811 marginy: 8
22812 }).setDefaultEdgeLabel(function () {
22813 return {};
22814 });
22815 var subG;
22816 var subGraphs = diagObj.db.getSubGraphs();
22817 _logger__WEBPACK_IMPORTED_MODULE_6__.log.info('Subgraphs - ', subGraphs);
22818
22819 for (var _i = subGraphs.length - 1; _i >= 0; _i--) {
22820 subG = subGraphs[_i];
22821 _logger__WEBPACK_IMPORTED_MODULE_6__.log.info('Subgraph - ', subG);
22822 diagObj.db.addVertex(subG.id, subG.title, 'group', undefined, subG.classes, subG.dir);
22823 } // Fetch the vertices/nodes and edges/links from the parsed graph definition
22824
22825
22826 var vert = diagObj.db.getVertices();
22827 var edges = diagObj.db.getEdges();
22828 _logger__WEBPACK_IMPORTED_MODULE_6__.log.info(edges);
22829 var i = 0;
22830
22831 for (i = subGraphs.length - 1; i >= 0; i--) {
22832 // for (let i = 0; i < subGraphs.length; i++) {
22833 subG = subGraphs[i];
22834 (0,d3__WEBPACK_IMPORTED_MODULE_1__.selectAll)('cluster').append('text');
22835
22836 for (var j = 0; j < subG.nodes.length; j++) {
22837 _logger__WEBPACK_IMPORTED_MODULE_6__.log.info('Setting up subgraphs', subG.nodes[j], subG.id);
22838 g.setParent(subG.nodes[j], subG.id);
22839 }
22840 }
22841
22842 addVertices(vert, g, id, root, doc, diagObj);
22843 addEdges(edges, g, diagObj); // Add custom shapes
22844 // flowChartShapes.addToRenderV2(addShape);
22845 // Set up an SVG group so that we can translate the final graph.
22846
22847 var svg = root.select("[id=\"".concat(id, "\"]")); // Adds title and description to the flow chart
22848
22849 (0,_accessibility__WEBPACK_IMPORTED_MODULE_8__["default"])(diagObj.db, svg, id); // Run the renderer. This is what draws the final graph.
22850
22851 var element = root.select('#' + id + ' g');
22852 (0,_dagre_wrapper_index_js__WEBPACK_IMPORTED_MODULE_9__.render)(element, g, ['point', 'circle', 'cross'], 'flowchart', id);
22853 (0,_utils__WEBPACK_IMPORTED_MODULE_3__.setupGraphViewbox)(g, svg, conf.diagramPadding, conf.useMaxWidth); // Index nodes
22854
22855 diagObj.db.indexNodes('subGraph' + i); // Add label rects for non html labels
22856
22857 if (!conf.htmlLabels) {
22858 var labels = doc.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
22859
22860 for (var k = 0; k < labels.length; k++) {
22861 var label = labels[k]; // Get dimensions of label
22862
22863 var dim = label.getBBox();
22864 var rect = doc.createElementNS('http://www.w3.org/2000/svg', 'rect');
22865 rect.setAttribute('rx', 0);
22866 rect.setAttribute('ry', 0);
22867 rect.setAttribute('width', dim.width);
22868 rect.setAttribute('height', dim.height);
22869 label.insertBefore(rect, label.firstChild);
22870 }
22871 } // If node has a link, wrap it in an anchor SVG object.
22872
22873
22874 var keys = Object.keys(vert);
22875 keys.forEach(function (key) {
22876 var vertex = vert[key];
22877
22878 if (vertex.link) {
22879 var node = (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)('#' + id + ' [id="' + key + '"]');
22880
22881 if (node) {
22882 var link = doc.createElementNS('http://www.w3.org/2000/svg', 'a');
22883 link.setAttributeNS('http://www.w3.org/2000/svg', 'class', vertex.classes.join(' '));
22884 link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertex.link);
22885 link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener');
22886
22887 if (securityLevel === 'sandbox') {
22888 link.setAttributeNS('http://www.w3.org/2000/svg', 'target', '_top');
22889 } else if (vertex.linkTarget) {
22890 link.setAttributeNS('http://www.w3.org/2000/svg', 'target', vertex.linkTarget);
22891 }
22892
22893 var linkNode = node.insert(function () {
22894 return link;
22895 }, ':first-child');
22896 var shape = node.select('.label-container');
22897
22898 if (shape) {
22899 linkNode.append(function () {
22900 return shape.node();
22901 });
22902 }
22903
22904 var _label = node.select('.label');
22905
22906 if (_label) {
22907 linkNode.append(function () {
22908 return _label.node();
22909 });
22910 }
22911 }
22912 }
22913 });
22914};
22915/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
22916 setConf: setConf,
22917 addVertices: addVertices,
22918 addEdges: addEdges,
22919 getClasses: getClasses,
22920 draw: draw
22921});
22922
22923/***/ }),
22924
22925/***/ "./src/diagrams/flowchart/flowRenderer.js":
22926/*!************************************************!*\
22927 !*** ./src/diagrams/flowchart/flowRenderer.js ***!
22928 \************************************************/
22929/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
22930
22931"use strict";
22932__webpack_require__.r(__webpack_exports__);
22933/* harmony export */ __webpack_require__.d(__webpack_exports__, {
22934/* harmony export */ "addEdges": () => (/* binding */ addEdges),
22935/* harmony export */ "addVertices": () => (/* binding */ addVertices),
22936/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
22937/* harmony export */ "draw": () => (/* binding */ draw),
22938/* harmony export */ "getClasses": () => (/* binding */ getClasses),
22939/* harmony export */ "setConf": () => (/* binding */ setConf)
22940/* harmony export */ });
22941/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
22942/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_0__);
22943/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
22944/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config */ "./src/config.js");
22945/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! dagre-d3 */ "./node_modules/dagre-d3/index.js");
22946/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(dagre_d3__WEBPACK_IMPORTED_MODULE_2__);
22947/* harmony import */ var dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! dagre-d3/lib/label/add-html-label.js */ "./node_modules/dagre-d3/lib/label/add-html-label.js");
22948/* harmony import */ var dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_3__);
22949/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
22950/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
22951/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
22952/* harmony import */ var _flowChartShapes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./flowChartShapes */ "./src/diagrams/flowchart/flowChartShapes.js");
22953/* harmony import */ var _accessibility__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../accessibility */ "./src/accessibility.js");
22954
22955
22956
22957
22958
22959
22960
22961
22962
22963
22964var conf = {};
22965var setConf = function setConf(cnf) {
22966 var keys = Object.keys(cnf);
22967
22968 for (var i = 0; i < keys.length; i++) {
22969 conf[keys[i]] = cnf[keys[i]];
22970 }
22971};
22972/**
22973 * Function that adds the vertices found in the graph definition to the graph to be rendered.
22974 *
22975 * @param vert Object containing the vertices.
22976 * @param g The graph that is to be drawn.
22977 * @param svgId
22978 * @param root
22979 * @param doc
22980 * @param _doc
22981 * @param diagObj
22982 */
22983
22984var addVertices = function addVertices(vert, g, svgId, root, _doc, diagObj) {
22985 var securityLevel = (0,_config__WEBPACK_IMPORTED_MODULE_4__.getConfig)().securityLevel;
22986 var svg = !root ? (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)("[id=\"".concat(svgId, "\"]")) : root.select("[id=\"".concat(svgId, "\"]"));
22987 var doc = !_doc ? document : _doc;
22988 var keys = Object.keys(vert); // Iterate through each item in the vertex object (containing all the vertices found) in the graph definition
22989
22990 keys.forEach(function (id) {
22991 var vertex = vert[id];
22992 /**
22993 * Variable for storing the classes for the vertex
22994 *
22995 * @type {string}
22996 */
22997
22998 var classStr = 'default';
22999
23000 if (vertex.classes.length > 0) {
23001 classStr = vertex.classes.join(' ');
23002 }
23003
23004 var styles = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.getStylesFromArray)(vertex.styles); // Use vertex id as text in the box if no text is provided by the graph definition
23005
23006 var vertexText = vertex.text !== undefined ? vertex.text : vertex.id; // We create a SVG label, either by delegating to addHtmlLabel or manually
23007
23008 var vertexNode;
23009
23010 if ((0,_common_common__WEBPACK_IMPORTED_MODULE_6__.evaluate)((0,_config__WEBPACK_IMPORTED_MODULE_4__.getConfig)().flowchart.htmlLabels)) {
23011 // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?
23012 var node = {
23013 label: vertexText.replace(/fa[lrsb]?:fa-[\w-]+/g, function (s) {
23014 return "<i class='".concat(s.replace(':', ' '), "'></i>");
23015 })
23016 };
23017 vertexNode = dagre_d3_lib_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_3___default()(svg, node).node();
23018 vertexNode.parentNode.removeChild(vertexNode);
23019 } else {
23020 var svgLabel = doc.createElementNS('http://www.w3.org/2000/svg', 'text');
23021 svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));
23022 var rows = vertexText.split(_common_common__WEBPACK_IMPORTED_MODULE_6__["default"].lineBreakRegex);
23023
23024 for (var j = 0; j < rows.length; j++) {
23025 var tspan = doc.createElementNS('http://www.w3.org/2000/svg', 'tspan');
23026 tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
23027 tspan.setAttribute('dy', '1em');
23028 tspan.setAttribute('x', '1');
23029 tspan.textContent = rows[j];
23030 svgLabel.appendChild(tspan);
23031 }
23032
23033 vertexNode = svgLabel;
23034 }
23035
23036 var radious = 0;
23037 var _shape = ''; // Set the shape based parameters
23038
23039 switch (vertex.type) {
23040 case 'round':
23041 radious = 5;
23042 _shape = 'rect';
23043 break;
23044
23045 case 'square':
23046 _shape = 'rect';
23047 break;
23048
23049 case 'diamond':
23050 _shape = 'question';
23051 break;
23052
23053 case 'hexagon':
23054 _shape = 'hexagon';
23055 break;
23056
23057 case 'odd':
23058 _shape = 'rect_left_inv_arrow';
23059 break;
23060
23061 case 'lean_right':
23062 _shape = 'lean_right';
23063 break;
23064
23065 case 'lean_left':
23066 _shape = 'lean_left';
23067 break;
23068
23069 case 'trapezoid':
23070 _shape = 'trapezoid';
23071 break;
23072
23073 case 'inv_trapezoid':
23074 _shape = 'inv_trapezoid';
23075 break;
23076
23077 case 'odd_right':
23078 _shape = 'rect_left_inv_arrow';
23079 break;
23080
23081 case 'circle':
23082 _shape = 'circle';
23083 break;
23084
23085 case 'ellipse':
23086 _shape = 'ellipse';
23087 break;
23088
23089 case 'stadium':
23090 _shape = 'stadium';
23091 break;
23092
23093 case 'subroutine':
23094 _shape = 'subroutine';
23095 break;
23096
23097 case 'cylinder':
23098 _shape = 'cylinder';
23099 break;
23100
23101 case 'group':
23102 _shape = 'rect';
23103 break;
23104
23105 default:
23106 _shape = 'rect';
23107 } // Add the node
23108
23109
23110 _logger__WEBPACK_IMPORTED_MODULE_7__.log.warn('Adding node', vertex.id, vertex.domId);
23111 g.setNode(diagObj.db.lookUpDomId(vertex.id), {
23112 labelType: 'svg',
23113 labelStyle: styles.labelStyle,
23114 shape: _shape,
23115 label: vertexNode,
23116 rx: radious,
23117 ry: radious,
23118 class: classStr,
23119 style: styles.style,
23120 id: diagObj.db.lookUpDomId(vertex.id)
23121 });
23122 });
23123};
23124/**
23125 * Add edges to graph based on parsed graph definition
23126 *
23127 * @param {object} edges The edges to add to the graph
23128 * @param {object} g The graph object
23129 * @param diagObj
23130 */
23131
23132var addEdges = function addEdges(edges, g, diagObj) {
23133 var cnt = 0;
23134 var defaultStyle;
23135 var defaultLabelStyle;
23136
23137 if (typeof edges.defaultStyle !== 'undefined') {
23138 var defaultStyles = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.getStylesFromArray)(edges.defaultStyle);
23139 defaultStyle = defaultStyles.style;
23140 defaultLabelStyle = defaultStyles.labelStyle;
23141 }
23142
23143 edges.forEach(function (edge) {
23144 cnt++; // Identify Link
23145
23146 var linkId = 'L-' + edge.start + '-' + edge.end;
23147 var linkNameStart = 'LS-' + edge.start;
23148 var linkNameEnd = 'LE-' + edge.end;
23149 var edgeData = {}; // Set link type for rendering
23150
23151 if (edge.type === 'arrow_open') {
23152 edgeData.arrowhead = 'none';
23153 } else {
23154 edgeData.arrowhead = 'normal';
23155 }
23156
23157 var style = '';
23158 var labelStyle = '';
23159
23160 if (typeof edge.style !== 'undefined') {
23161 var styles = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.getStylesFromArray)(edge.style);
23162 style = styles.style;
23163 labelStyle = styles.labelStyle;
23164 } else {
23165 switch (edge.stroke) {
23166 case 'normal':
23167 style = 'fill:none';
23168
23169 if (typeof defaultStyle !== 'undefined') {
23170 style = defaultStyle;
23171 }
23172
23173 if (typeof defaultLabelStyle !== 'undefined') {
23174 labelStyle = defaultLabelStyle;
23175 }
23176
23177 break;
23178
23179 case 'dotted':
23180 style = 'fill:none;stroke-width:2px;stroke-dasharray:3;';
23181 break;
23182
23183 case 'thick':
23184 style = ' stroke-width: 3.5px;fill:none';
23185 break;
23186 }
23187 }
23188
23189 edgeData.style = style;
23190 edgeData.labelStyle = labelStyle;
23191
23192 if (typeof edge.interpolate !== 'undefined') {
23193 edgeData.curve = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.interpolateToCurve)(edge.interpolate, d3__WEBPACK_IMPORTED_MODULE_1__.curveLinear);
23194 } else if (typeof edges.defaultInterpolate !== 'undefined') {
23195 edgeData.curve = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.interpolateToCurve)(edges.defaultInterpolate, d3__WEBPACK_IMPORTED_MODULE_1__.curveLinear);
23196 } else {
23197 edgeData.curve = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.interpolateToCurve)(conf.curve, d3__WEBPACK_IMPORTED_MODULE_1__.curveLinear);
23198 }
23199
23200 if (typeof edge.text === 'undefined') {
23201 if (typeof edge.style !== 'undefined') {
23202 edgeData.arrowheadStyle = 'fill: #333';
23203 }
23204 } else {
23205 edgeData.arrowheadStyle = 'fill: #333';
23206 edgeData.labelpos = 'c';
23207
23208 if ((0,_common_common__WEBPACK_IMPORTED_MODULE_6__.evaluate)((0,_config__WEBPACK_IMPORTED_MODULE_4__.getConfig)().flowchart.htmlLabels)) {
23209 edgeData.labelType = 'html';
23210 edgeData.label = "<span id=\"L-".concat(linkId, "\" class=\"edgeLabel L-").concat(linkNameStart, "' L-").concat(linkNameEnd, "\" style=\"").concat(edgeData.labelStyle, "\">").concat(edge.text.replace(/fa[lrsb]?:fa-[\w-]+/g, function (s) {
23211 return "<i class='".concat(s.replace(':', ' '), "'></i>");
23212 }), "</span>");
23213 } else {
23214 edgeData.labelType = 'text';
23215 edgeData.label = edge.text.replace(_common_common__WEBPACK_IMPORTED_MODULE_6__["default"].lineBreakRegex, '\n');
23216
23217 if (typeof edge.style === 'undefined') {
23218 edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none';
23219 }
23220
23221 edgeData.labelStyle = edgeData.labelStyle.replace('color:', 'fill:');
23222 }
23223 }
23224
23225 edgeData.id = linkId;
23226 edgeData.class = linkNameStart + ' ' + linkNameEnd;
23227 edgeData.minlen = edge.length || 1; // Add the edge to the graph
23228
23229 g.setEdge(diagObj.db.lookUpDomId(edge.start), diagObj.db.lookUpDomId(edge.end), edgeData, cnt);
23230 });
23231};
23232/**
23233 * Returns the all the styles from classDef statements in the graph definition.
23234 *
23235 * @param text
23236 * @param diagObj
23237 * @returns {object} ClassDef styles
23238 */
23239
23240var getClasses = function getClasses(text, diagObj) {
23241 _logger__WEBPACK_IMPORTED_MODULE_7__.log.info('Extracting classes');
23242 diagObj.db.clear();
23243
23244 try {
23245 // Parse the graph definition
23246 diagObj.parse(text);
23247 return diagObj.db.getClasses();
23248 } catch (e) {
23249 return;
23250 }
23251};
23252/**
23253 * Draws a flowchart in the tag with id: id based on the graph definition in text.
23254 *
23255 * @param text
23256 * @param id
23257 * @param _version
23258 * @param diagObj
23259 */
23260
23261var draw = function draw(text, id, _version, diagObj) {
23262 _logger__WEBPACK_IMPORTED_MODULE_7__.log.info('Drawing flowchart');
23263 diagObj.db.clear();
23264 var securityLevel = (0,_config__WEBPACK_IMPORTED_MODULE_4__.getConfig)().securityLevel;
23265 var sandboxElement;
23266
23267 if (securityLevel === 'sandbox') {
23268 sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)('#i' + id);
23269 }
23270
23271 var root = securityLevel === 'sandbox' ? (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)('body');
23272 var doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document; // Parse the graph definition
23273
23274 try {
23275 diagObj.parser.parse(text);
23276 } catch (err) {
23277 _logger__WEBPACK_IMPORTED_MODULE_7__.log.debug('Parsing failed');
23278 } // Fetch the default direction, use TD if none was found
23279
23280
23281 var dir = diagObj.db.getDirection();
23282
23283 if (typeof dir === 'undefined') {
23284 dir = 'TD';
23285 }
23286
23287 var conf = (0,_config__WEBPACK_IMPORTED_MODULE_4__.getConfig)().flowchart;
23288 var nodeSpacing = conf.nodeSpacing || 50;
23289 var rankSpacing = conf.rankSpacing || 50; // Create the input mermaid.graph
23290
23291 var g = new (graphlib__WEBPACK_IMPORTED_MODULE_0___default().Graph)({
23292 multigraph: true,
23293 compound: true
23294 }).setGraph({
23295 rankdir: dir,
23296 nodesep: nodeSpacing,
23297 ranksep: rankSpacing,
23298 marginx: 8,
23299 marginy: 8
23300 }).setDefaultEdgeLabel(function () {
23301 return {};
23302 });
23303 var subG;
23304 var subGraphs = diagObj.db.getSubGraphs();
23305
23306 for (var _i = subGraphs.length - 1; _i >= 0; _i--) {
23307 subG = subGraphs[_i];
23308 diagObj.db.addVertex(subG.id, subG.title, 'group', undefined, subG.classes);
23309 } // Fetch the vertices/nodes and edges/links from the parsed graph definition
23310
23311
23312 var vert = diagObj.db.getVertices();
23313 _logger__WEBPACK_IMPORTED_MODULE_7__.log.warn('Get vertices', vert);
23314 var edges = diagObj.db.getEdges();
23315 var i = 0;
23316
23317 for (i = subGraphs.length - 1; i >= 0; i--) {
23318 subG = subGraphs[i];
23319 (0,d3__WEBPACK_IMPORTED_MODULE_1__.selectAll)('cluster').append('text');
23320
23321 for (var j = 0; j < subG.nodes.length; j++) {
23322 _logger__WEBPACK_IMPORTED_MODULE_7__.log.warn('Setting subgraph', subG.nodes[j], diagObj.db.lookUpDomId(subG.nodes[j]), diagObj.db.lookUpDomId(subG.id));
23323 g.setParent(diagObj.db.lookUpDomId(subG.nodes[j]), diagObj.db.lookUpDomId(subG.id));
23324 }
23325 }
23326
23327 addVertices(vert, g, id, root, doc, diagObj);
23328 addEdges(edges, g, diagObj); // Create the renderer
23329
23330 var Render = (dagre_d3__WEBPACK_IMPORTED_MODULE_2___default().render);
23331 var render = new Render(); // Add custom shapes
23332
23333 _flowChartShapes__WEBPACK_IMPORTED_MODULE_8__["default"].addToRender(render); // Add our custom arrow - an empty arrowhead
23334
23335 render.arrows().none = function normal(parent, id, edge, type) {
23336 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');
23337 var path = marker.append('path').attr('d', 'M 0 0 L 0 0 L 0 0 z');
23338 dagre_d3__WEBPACK_IMPORTED_MODULE_2___default().util.applyStyle(path, edge[type + 'Style']);
23339 }; // Override normal arrowhead defined in d3. Remove style & add class to allow css styling.
23340
23341
23342 render.arrows().normal = function normal(parent, id) {
23343 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');
23344 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');
23345 }; // Set up an SVG group so that we can translate the final graph.
23346
23347
23348 var svg = root.select("[id=\"".concat(id, "\"]")); // Adds title and description to the flow chart
23349
23350 (0,_accessibility__WEBPACK_IMPORTED_MODULE_9__["default"])(diagObj.db, svg, id); // Run the renderer. This is what draws the final graph.
23351
23352 var element = root.select('#' + id + ' g');
23353 render(element, g);
23354 element.selectAll('g.node').attr('title', function () {
23355 return diagObj.db.getTooltip(this.id);
23356 }); // Index nodes
23357
23358 diagObj.db.indexNodes('subGraph' + i); // reposition labels
23359
23360 for (i = 0; i < subGraphs.length; i++) {
23361 subG = subGraphs[i];
23362
23363 if (subG.title !== 'undefined') {
23364 var clusterRects = doc.querySelectorAll('#' + id + ' [id="' + diagObj.db.lookUpDomId(subG.id) + '"] rect');
23365 var clusterEl = doc.querySelectorAll('#' + id + ' [id="' + diagObj.db.lookUpDomId(subG.id) + '"]');
23366 var xPos = clusterRects[0].x.baseVal.value;
23367 var yPos = clusterRects[0].y.baseVal.value;
23368 var _width = clusterRects[0].width.baseVal.value;
23369 var cluster = (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)(clusterEl[0]);
23370 var te = cluster.select('.label');
23371 te.attr('transform', "translate(".concat(xPos + _width / 2, ", ").concat(yPos + 14, ")"));
23372 te.attr('id', id + 'Text');
23373
23374 for (var _j = 0; _j < subG.classes.length; _j++) {
23375 clusterEl[0].classList.add(subG.classes[_j]);
23376 }
23377 }
23378 } // Add label rects for non html labels
23379
23380
23381 if (!(0,_common_common__WEBPACK_IMPORTED_MODULE_6__.evaluate)(conf.htmlLabels) || true) {
23382 // eslint-disable-line
23383 var labels = doc.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
23384
23385 for (var k = 0; k < labels.length; k++) {
23386 var label = labels[k]; // Get dimensions of label
23387
23388 var dim = label.getBBox();
23389 var rect = doc.createElementNS('http://www.w3.org/2000/svg', 'rect');
23390 rect.setAttribute('rx', 0);
23391 rect.setAttribute('ry', 0);
23392 rect.setAttribute('width', dim.width);
23393 rect.setAttribute('height', dim.height); // rect.setAttribute('style', 'fill:#e8e8e8;');
23394
23395 label.insertBefore(rect, label.firstChild);
23396 }
23397 }
23398
23399 (0,_utils__WEBPACK_IMPORTED_MODULE_5__.setupGraphViewbox)(g, svg, conf.diagramPadding, conf.useMaxWidth); // If node has a link, wrap it in an anchor SVG object.
23400
23401 var keys = Object.keys(vert);
23402 keys.forEach(function (key) {
23403 var vertex = vert[key];
23404
23405 if (vertex.link) {
23406 var node = root.select('#' + id + ' [id="' + diagObj.db.lookUpDomId(key) + '"]');
23407
23408 if (node) {
23409 var link = doc.createElementNS('http://www.w3.org/2000/svg', 'a');
23410 link.setAttributeNS('http://www.w3.org/2000/svg', 'class', vertex.classes.join(' '));
23411 link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertex.link);
23412 link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener');
23413
23414 if (securityLevel === 'sandbox') {
23415 link.setAttributeNS('http://www.w3.org/2000/svg', 'target', '_top');
23416 } else if (vertex.linkTarget) {
23417 link.setAttributeNS('http://www.w3.org/2000/svg', 'target', vertex.linkTarget);
23418 }
23419
23420 var linkNode = node.insert(function () {
23421 return link;
23422 }, ':first-child');
23423 var shape = node.select('.label-container');
23424
23425 if (shape) {
23426 linkNode.append(function () {
23427 return shape.node();
23428 });
23429 }
23430
23431 var _label = node.select('.label');
23432
23433 if (_label) {
23434 linkNode.append(function () {
23435 return _label.node();
23436 });
23437 }
23438 }
23439 }
23440 });
23441};
23442/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
23443 setConf: setConf,
23444 addVertices: addVertices,
23445 addEdges: addEdges,
23446 getClasses: getClasses,
23447 draw: draw
23448});
23449
23450/***/ }),
23451
23452/***/ "./src/diagrams/flowchart/styles.js":
23453/*!******************************************!*\
23454 !*** ./src/diagrams/flowchart/styles.js ***!
23455 \******************************************/
23456/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23457
23458"use strict";
23459__webpack_require__.r(__webpack_exports__);
23460/* harmony export */ __webpack_require__.d(__webpack_exports__, {
23461/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
23462/* harmony export */ });
23463/**
23464 * Returns the styles given options
23465 *
23466 * @param {{
23467 * fontFamily: string;
23468 * nodeTextColor: string;
23469 * textColor: string;
23470 * titleColor: string;
23471 * mainBkg: string;
23472 * nodeBorder: string;
23473 * arrowheadColor: string;
23474 * lineColor: string;
23475 * edgeLabelBackground: string;
23476 * clusterBkg: string;
23477 * clusterBorder: string;
23478 * tertiaryColor: string;
23479 * border2: string;
23480 * }} options
23481 * The options for the styles
23482 * @returns {string} The resulting styles
23483 */
23484var getStyles = function getStyles(options) {
23485 return ".label {\n font-family: ".concat(options.fontFamily, ";\n color: ").concat(options.nodeTextColor || options.textColor, ";\n }\n .cluster-label text {\n fill: ").concat(options.titleColor, ";\n }\n .cluster-label span {\n color: ").concat(options.titleColor, ";\n }\n\n .label text,span {\n fill: ").concat(options.nodeTextColor || options.textColor, ";\n color: ").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: 2.0px;\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 .cluster span {\n color: ").concat(options.titleColor, ";\n }\n /* .cluster div {\n color: ").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");
23486};
23487
23488/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getStyles);
23489
23490/***/ }),
23491
23492/***/ "./src/diagrams/gantt/ganttDb.js":
23493/*!***************************************!*\
23494 !*** ./src/diagrams/gantt/ganttDb.js ***!
23495 \***************************************/
23496/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23497
23498"use strict";
23499__webpack_require__.r(__webpack_exports__);
23500/* harmony export */ __webpack_require__.d(__webpack_exports__, {
23501/* harmony export */ "addSection": () => (/* binding */ addSection),
23502/* harmony export */ "addTask": () => (/* binding */ addTask),
23503/* harmony export */ "addTaskOrg": () => (/* binding */ addTaskOrg),
23504/* harmony export */ "bindFunctions": () => (/* binding */ bindFunctions),
23505/* harmony export */ "clear": () => (/* binding */ clear),
23506/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
23507/* harmony export */ "enableInclusiveEndDates": () => (/* binding */ enableInclusiveEndDates),
23508/* harmony export */ "enableTopAxis": () => (/* binding */ enableTopAxis),
23509/* harmony export */ "endDatesAreInclusive": () => (/* binding */ endDatesAreInclusive),
23510/* harmony export */ "findTaskById": () => (/* binding */ findTaskById),
23511/* harmony export */ "getAxisFormat": () => (/* binding */ getAxisFormat),
23512/* harmony export */ "getDateFormat": () => (/* binding */ getDateFormat),
23513/* harmony export */ "getExcludes": () => (/* binding */ getExcludes),
23514/* harmony export */ "getIncludes": () => (/* binding */ getIncludes),
23515/* harmony export */ "getLinks": () => (/* binding */ getLinks),
23516/* harmony export */ "getSections": () => (/* binding */ getSections),
23517/* harmony export */ "getTasks": () => (/* binding */ getTasks),
23518/* harmony export */ "getTodayMarker": () => (/* binding */ getTodayMarker),
23519/* harmony export */ "isInvalidDate": () => (/* binding */ isInvalidDate),
23520/* harmony export */ "parseDirective": () => (/* binding */ parseDirective),
23521/* harmony export */ "setAxisFormat": () => (/* binding */ setAxisFormat),
23522/* harmony export */ "setClass": () => (/* binding */ setClass),
23523/* harmony export */ "setClickEvent": () => (/* binding */ setClickEvent),
23524/* harmony export */ "setDateFormat": () => (/* binding */ setDateFormat),
23525/* harmony export */ "setExcludes": () => (/* binding */ setExcludes),
23526/* harmony export */ "setIncludes": () => (/* binding */ setIncludes),
23527/* harmony export */ "setLink": () => (/* binding */ setLink),
23528/* harmony export */ "setTodayMarker": () => (/* binding */ setTodayMarker),
23529/* harmony export */ "topAxisEnabled": () => (/* binding */ topAxisEnabled)
23530/* harmony export */ });
23531/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-mini */ "./node_modules/moment-mini/moment.min.js");
23532/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_mini__WEBPACK_IMPORTED_MODULE_0__);
23533/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @braintree/sanitize-url */ "./node_modules/@braintree/sanitize-url/dist/index.js");
23534/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
23535/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../config */ "./src/config.js");
23536/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
23537/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
23538/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
23539/* harmony import */ var _commonDb__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../commonDb */ "./src/commonDb.js");
23540function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
23541
23542function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
23543
23544function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
23545
23546function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
23547
23548function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
23549
23550function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
23551
23552
23553
23554
23555
23556
23557
23558
23559
23560var dateFormat = '';
23561var axisFormat = '';
23562var todayMarker = '';
23563var includes = [];
23564var excludes = [];
23565var links = {};
23566var title = '';
23567var accDescription = '';
23568var sections = [];
23569var tasks = [];
23570var currentSection = '';
23571var tags = ['active', 'done', 'crit', 'milestone'];
23572var funs = [];
23573var inclusiveEndDates = false;
23574var topAxis = false; // The serial order of the task in the script
23575
23576var lastOrder = 0;
23577
23578var sanitizeText = function sanitizeText(txt) {
23579 return _common_common__WEBPACK_IMPORTED_MODULE_2__["default"].sanitizeText(txt, _config__WEBPACK_IMPORTED_MODULE_3__.getConfig());
23580};
23581
23582var parseDirective = function parseDirective(statement, context, type) {
23583 _mermaidAPI__WEBPACK_IMPORTED_MODULE_4__["default"].parseDirective(this, statement, context, type);
23584};
23585var clear = function clear() {
23586 sections = [];
23587 tasks = [];
23588 currentSection = '';
23589 funs = [];
23590 title = '';
23591 taskCnt = 0;
23592 lastTask = undefined;
23593 lastTaskID = undefined;
23594 rawTasks = [];
23595 dateFormat = '';
23596 axisFormat = '';
23597 todayMarker = '';
23598 includes = [];
23599 excludes = [];
23600 inclusiveEndDates = false;
23601 topAxis = false;
23602 lastOrder = 0;
23603 links = {};
23604 (0,_commonDb__WEBPACK_IMPORTED_MODULE_5__.clear)();
23605};
23606var setAxisFormat = function setAxisFormat(txt) {
23607 axisFormat = txt;
23608};
23609var getAxisFormat = function getAxisFormat() {
23610 return axisFormat;
23611};
23612var setTodayMarker = function setTodayMarker(txt) {
23613 todayMarker = txt;
23614};
23615var getTodayMarker = function getTodayMarker() {
23616 return todayMarker;
23617};
23618var setDateFormat = function setDateFormat(txt) {
23619 dateFormat = txt;
23620};
23621var enableInclusiveEndDates = function enableInclusiveEndDates() {
23622 inclusiveEndDates = true;
23623};
23624var endDatesAreInclusive = function endDatesAreInclusive() {
23625 return inclusiveEndDates;
23626};
23627var enableTopAxis = function enableTopAxis() {
23628 topAxis = true;
23629};
23630var topAxisEnabled = function topAxisEnabled() {
23631 return topAxis;
23632};
23633var getDateFormat = function getDateFormat() {
23634 return dateFormat;
23635};
23636var setIncludes = function setIncludes(txt) {
23637 includes = txt.toLowerCase().split(/[\s,]+/);
23638};
23639var getIncludes = function getIncludes() {
23640 return includes;
23641};
23642var setExcludes = function setExcludes(txt) {
23643 excludes = txt.toLowerCase().split(/[\s,]+/);
23644};
23645var getExcludes = function getExcludes() {
23646 return excludes;
23647};
23648var getLinks = function getLinks() {
23649 return links;
23650};
23651var addSection = function addSection(txt) {
23652 currentSection = txt;
23653 sections.push(txt);
23654};
23655var getSections = function getSections() {
23656 return sections;
23657};
23658var getTasks = function getTasks() {
23659 var allItemsPricessed = compileTasks();
23660 var maxDepth = 10;
23661 var iterationCount = 0;
23662
23663 while (!allItemsPricessed && iterationCount < maxDepth) {
23664 allItemsPricessed = compileTasks();
23665 iterationCount++;
23666 }
23667
23668 tasks = rawTasks;
23669 return tasks;
23670};
23671var isInvalidDate = function isInvalidDate(date, dateFormat, excludes, includes) {
23672 if (includes.indexOf(date.format(dateFormat.trim())) >= 0) {
23673 return false;
23674 }
23675
23676 if (date.isoWeekday() >= 6 && excludes.indexOf('weekends') >= 0) {
23677 return true;
23678 }
23679
23680 if (excludes.indexOf(date.format('dddd').toLowerCase()) >= 0) {
23681 return true;
23682 }
23683
23684 return excludes.indexOf(date.format(dateFormat.trim())) >= 0;
23685};
23686
23687var checkTaskDates = function checkTaskDates(task, dateFormat, excludes, includes) {
23688 if (!excludes.length || task.manualEndTime) return;
23689 var startTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(task.startTime, dateFormat, true);
23690 startTime.add(1, 'd');
23691 var endTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(task.endTime, dateFormat, true);
23692 var renderEndTime = fixTaskDates(startTime, endTime, dateFormat, excludes, includes);
23693 task.endTime = endTime.toDate();
23694 task.renderEndTime = renderEndTime;
23695};
23696
23697var fixTaskDates = function fixTaskDates(startTime, endTime, dateFormat, excludes, includes) {
23698 var invalid = false;
23699 var renderEndTime = null;
23700
23701 while (startTime <= endTime) {
23702 if (!invalid) {
23703 renderEndTime = endTime.toDate();
23704 }
23705
23706 invalid = isInvalidDate(startTime, dateFormat, excludes, includes);
23707
23708 if (invalid) {
23709 endTime.add(1, 'd');
23710 }
23711
23712 startTime.add(1, 'd');
23713 }
23714
23715 return renderEndTime;
23716};
23717
23718var getStartDate = function getStartDate(prevTime, dateFormat, str) {
23719 str = str.trim(); // Test for after
23720
23721 var re = /^after\s+([\d\w- ]+)/;
23722 var afterStatement = re.exec(str.trim());
23723
23724 if (afterStatement !== null) {
23725 // check all after ids and take the latest
23726 var latestEndingTask = null;
23727 afterStatement[1].split(' ').forEach(function (id) {
23728 var task = findTaskById(id);
23729
23730 if (typeof task !== 'undefined') {
23731 if (!latestEndingTask) {
23732 latestEndingTask = task;
23733 } else {
23734 if (task.endTime > latestEndingTask.endTime) {
23735 latestEndingTask = task;
23736 }
23737 }
23738 }
23739 });
23740
23741 if (!latestEndingTask) {
23742 var dt = new Date();
23743 dt.setHours(0, 0, 0, 0);
23744 return dt;
23745 } else {
23746 return latestEndingTask.endTime;
23747 }
23748 } // Check for actual date set
23749
23750
23751 var mDate = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(str, dateFormat.trim(), true);
23752
23753 if (mDate.isValid()) {
23754 return mDate.toDate();
23755 } else {
23756 _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug('Invalid date:' + str);
23757 _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug('With date format:' + dateFormat.trim());
23758 } // Default date - now
23759
23760
23761 return new Date();
23762};
23763
23764var durationToDate = function durationToDate(durationStatement, relativeTime) {
23765 if (durationStatement !== null) {
23766 switch (durationStatement[2]) {
23767 case 's':
23768 relativeTime.add(durationStatement[1], 'seconds');
23769 break;
23770
23771 case 'm':
23772 relativeTime.add(durationStatement[1], 'minutes');
23773 break;
23774
23775 case 'h':
23776 relativeTime.add(durationStatement[1], 'hours');
23777 break;
23778
23779 case 'd':
23780 relativeTime.add(durationStatement[1], 'days');
23781 break;
23782
23783 case 'w':
23784 relativeTime.add(durationStatement[1], 'weeks');
23785 break;
23786 }
23787 } // Default date - now
23788
23789
23790 return relativeTime.toDate();
23791};
23792
23793var getEndDate = function getEndDate(prevTime, dateFormat, str, inclusive) {
23794 inclusive = inclusive || false;
23795 str = str.trim(); // Check for actual date
23796
23797 var mDate = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(str, dateFormat.trim(), true);
23798
23799 if (mDate.isValid()) {
23800 if (inclusive) {
23801 mDate.add(1, 'd');
23802 }
23803
23804 return mDate.toDate();
23805 }
23806
23807 return durationToDate(/^([\d]+)([wdhms])/.exec(str.trim()), moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(prevTime));
23808};
23809
23810var taskCnt = 0;
23811
23812var parseId = function parseId(idStr) {
23813 if (typeof idStr === 'undefined') {
23814 taskCnt = taskCnt + 1;
23815 return 'task' + taskCnt;
23816 }
23817
23818 return idStr;
23819}; // id, startDate, endDate
23820// id, startDate, length
23821// id, after x, endDate
23822// id, after x, length
23823// startDate, endDate
23824// startDate, length
23825// after x, endDate
23826// after x, length
23827// endDate
23828// length
23829
23830
23831var compileData = function compileData(prevTask, dataStr) {
23832 var ds;
23833
23834 if (dataStr.substr(0, 1) === ':') {
23835 ds = dataStr.substr(1, dataStr.length);
23836 } else {
23837 ds = dataStr;
23838 }
23839
23840 var data = ds.split(',');
23841 var task = {}; // Get tags like active, done, crit and milestone
23842
23843 getTaskTags(data, task, tags);
23844
23845 for (var i = 0; i < data.length; i++) {
23846 data[i] = data[i].trim();
23847 }
23848
23849 var endTimeData = '';
23850
23851 switch (data.length) {
23852 case 1:
23853 task.id = parseId();
23854 task.startTime = prevTask.endTime;
23855 endTimeData = data[0];
23856 break;
23857
23858 case 2:
23859 task.id = parseId();
23860 task.startTime = getStartDate(undefined, dateFormat, data[0]);
23861 endTimeData = data[1];
23862 break;
23863
23864 case 3:
23865 task.id = parseId(data[0]);
23866 task.startTime = getStartDate(undefined, dateFormat, data[1]);
23867 endTimeData = data[2];
23868 break;
23869
23870 default:
23871 }
23872
23873 if (endTimeData) {
23874 task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);
23875 task.manualEndTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(endTimeData, 'YYYY-MM-DD', true).isValid();
23876 checkTaskDates(task, dateFormat, excludes, includes);
23877 }
23878
23879 return task;
23880};
23881
23882var parseData = function parseData(prevTaskId, dataStr) {
23883 var ds;
23884
23885 if (dataStr.substr(0, 1) === ':') {
23886 ds = dataStr.substr(1, dataStr.length);
23887 } else {
23888 ds = dataStr;
23889 }
23890
23891 var data = ds.split(',');
23892 var task = {}; // Get tags like active, done, crit and milestone
23893
23894 getTaskTags(data, task, tags);
23895
23896 for (var i = 0; i < data.length; i++) {
23897 data[i] = data[i].trim();
23898 }
23899
23900 switch (data.length) {
23901 case 1:
23902 task.id = parseId();
23903 task.startTime = {
23904 type: 'prevTaskEnd',
23905 id: prevTaskId
23906 };
23907 task.endTime = {
23908 data: data[0]
23909 };
23910 break;
23911
23912 case 2:
23913 task.id = parseId();
23914 task.startTime = {
23915 type: 'getStartDate',
23916 startData: data[0]
23917 };
23918 task.endTime = {
23919 data: data[1]
23920 };
23921 break;
23922
23923 case 3:
23924 task.id = parseId(data[0]);
23925 task.startTime = {
23926 type: 'getStartDate',
23927 startData: data[1]
23928 };
23929 task.endTime = {
23930 data: data[2]
23931 };
23932 break;
23933
23934 default:
23935 }
23936
23937 return task;
23938};
23939
23940var lastTask;
23941var lastTaskID;
23942var rawTasks = [];
23943var taskDb = {};
23944var addTask = function addTask(descr, data) {
23945 var rawTask = {
23946 section: currentSection,
23947 type: currentSection,
23948 processed: false,
23949 manualEndTime: false,
23950 renderEndTime: null,
23951 raw: {
23952 data: data
23953 },
23954 task: descr,
23955 classes: []
23956 };
23957 var taskInfo = parseData(lastTaskID, data);
23958 rawTask.raw.startTime = taskInfo.startTime;
23959 rawTask.raw.endTime = taskInfo.endTime;
23960 rawTask.id = taskInfo.id;
23961 rawTask.prevTaskId = lastTaskID;
23962 rawTask.active = taskInfo.active;
23963 rawTask.done = taskInfo.done;
23964 rawTask.crit = taskInfo.crit;
23965 rawTask.milestone = taskInfo.milestone;
23966 rawTask.order = lastOrder;
23967 lastOrder++;
23968 var pos = rawTasks.push(rawTask);
23969 lastTaskID = rawTask.id; // Store cross ref
23970
23971 taskDb[rawTask.id] = pos - 1;
23972};
23973var findTaskById = function findTaskById(id) {
23974 var pos = taskDb[id];
23975 return rawTasks[pos];
23976};
23977var addTaskOrg = function addTaskOrg(descr, data) {
23978 var newTask = {
23979 section: currentSection,
23980 type: currentSection,
23981 description: descr,
23982 task: descr,
23983 classes: []
23984 };
23985 var taskInfo = compileData(lastTask, data);
23986 newTask.startTime = taskInfo.startTime;
23987 newTask.endTime = taskInfo.endTime;
23988 newTask.id = taskInfo.id;
23989 newTask.active = taskInfo.active;
23990 newTask.done = taskInfo.done;
23991 newTask.crit = taskInfo.crit;
23992 newTask.milestone = taskInfo.milestone;
23993 lastTask = newTask;
23994 tasks.push(newTask);
23995};
23996
23997var compileTasks = function compileTasks() {
23998 var compileTask = function compileTask(pos) {
23999 var task = rawTasks[pos];
24000 var startTime = '';
24001
24002 switch (rawTasks[pos].raw.startTime.type) {
24003 case 'prevTaskEnd':
24004 {
24005 var prevTask = findTaskById(task.prevTaskId);
24006 task.startTime = prevTask.endTime;
24007 break;
24008 }
24009
24010 case 'getStartDate':
24011 startTime = getStartDate(undefined, dateFormat, rawTasks[pos].raw.startTime.startData);
24012
24013 if (startTime) {
24014 rawTasks[pos].startTime = startTime;
24015 }
24016
24017 break;
24018 }
24019
24020 if (rawTasks[pos].startTime) {
24021 rawTasks[pos].endTime = getEndDate(rawTasks[pos].startTime, dateFormat, rawTasks[pos].raw.endTime.data, inclusiveEndDates);
24022
24023 if (rawTasks[pos].endTime) {
24024 rawTasks[pos].processed = true;
24025 rawTasks[pos].manualEndTime = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(rawTasks[pos].raw.endTime.data, 'YYYY-MM-DD', true).isValid();
24026 checkTaskDates(rawTasks[pos], dateFormat, excludes, includes);
24027 }
24028 }
24029
24030 return rawTasks[pos].processed;
24031 };
24032
24033 var allProcessed = true;
24034
24035 for (var i = 0; i < rawTasks.length; i++) {
24036 compileTask(i);
24037 allProcessed = allProcessed && rawTasks[i].processed;
24038 }
24039
24040 return allProcessed;
24041};
24042/**
24043 * Called by parser when a link is found. Adds the URL to the vertex data.
24044 *
24045 * @param ids Comma separated list of ids
24046 * @param _linkStr URL to create a link for
24047 */
24048
24049
24050var setLink = function setLink(ids, _linkStr) {
24051 var linkStr = _linkStr;
24052
24053 if (_config__WEBPACK_IMPORTED_MODULE_3__.getConfig().securityLevel !== 'loose') {
24054 linkStr = (0,_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_1__.sanitizeUrl)(_linkStr);
24055 }
24056
24057 ids.split(',').forEach(function (id) {
24058 var rawTask = findTaskById(id);
24059
24060 if (typeof rawTask !== 'undefined') {
24061 pushFun(id, function () {
24062 window.open(linkStr, '_self');
24063 });
24064 links[id] = linkStr;
24065 }
24066 });
24067 setClass(ids, 'clickable');
24068};
24069/**
24070 * Called by parser when a special node is found, e.g. a clickable element.
24071 *
24072 * @param ids Comma separated list of ids
24073 * @param className Class to add
24074 */
24075
24076var setClass = function setClass(ids, className) {
24077 ids.split(',').forEach(function (id) {
24078 var rawTask = findTaskById(id);
24079
24080 if (typeof rawTask !== 'undefined') {
24081 rawTask.classes.push(className);
24082 }
24083 });
24084};
24085
24086var setClickFun = function setClickFun(id, functionName, functionArgs) {
24087 if (_config__WEBPACK_IMPORTED_MODULE_3__.getConfig().securityLevel !== 'loose') {
24088 return;
24089 }
24090
24091 if (typeof functionName === 'undefined') {
24092 return;
24093 }
24094
24095 var argList = [];
24096
24097 if (typeof functionArgs === 'string') {
24098 /* Splits functionArgs by ',', ignoring all ',' in double quoted strings */
24099 argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
24100
24101 for (var i = 0; i < argList.length; i++) {
24102 var item = argList[i].trim();
24103 /* Removes all double quotes at the start and end of an argument */
24104
24105 /* This preserves all starting and ending whitespace inside */
24106
24107 if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
24108 item = item.substr(1, item.length - 2);
24109 }
24110
24111 argList[i] = item;
24112 }
24113 }
24114 /* if no arguments passed into callback, default to passing in id */
24115
24116
24117 if (argList.length === 0) {
24118 argList.push(id);
24119 }
24120
24121 var rawTask = findTaskById(id);
24122
24123 if (typeof rawTask !== 'undefined') {
24124 pushFun(id, function () {
24125 _utils__WEBPACK_IMPORTED_MODULE_7__["default"].runFunc.apply(_utils__WEBPACK_IMPORTED_MODULE_7__["default"], [functionName].concat(_toConsumableArray(argList)));
24126 });
24127 }
24128};
24129/**
24130 * The callbackFunction is executed in a click event bound to the task with the specified id or the
24131 * task's assigned text
24132 *
24133 * @param id The task's id
24134 * @param callbackFunction A function to be executed when clicked on the task or the task's text
24135 */
24136
24137
24138var pushFun = function pushFun(id, callbackFunction) {
24139 funs.push(function () {
24140 // const elem = d3.select(element).select(`[id="${id}"]`)
24141 var elem = document.querySelector("[id=\"".concat(id, "\"]"));
24142
24143 if (elem !== null) {
24144 elem.addEventListener('click', function () {
24145 callbackFunction();
24146 });
24147 }
24148 });
24149 funs.push(function () {
24150 // const elem = d3.select(element).select(`[id="${id}-text"]`)
24151 var elem = document.querySelector("[id=\"".concat(id, "-text\"]"));
24152
24153 if (elem !== null) {
24154 elem.addEventListener('click', function () {
24155 callbackFunction();
24156 });
24157 }
24158 });
24159};
24160/**
24161 * Called by parser when a click definition is found. Registers an event handler.
24162 *
24163 * @param ids Comma separated list of ids
24164 * @param functionName Function to be called on click
24165 * @param functionArgs Function args the function should be called with
24166 */
24167
24168
24169var setClickEvent = function setClickEvent(ids, functionName, functionArgs) {
24170 ids.split(',').forEach(function (id) {
24171 setClickFun(id, functionName, functionArgs);
24172 });
24173 setClass(ids, 'clickable');
24174};
24175/**
24176 * Binds all functions previously added to fun (specified through click) to the element
24177 *
24178 * @param element
24179 */
24180
24181var bindFunctions = function bindFunctions(element) {
24182 funs.forEach(function (fun) {
24183 fun(element);
24184 });
24185};
24186/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
24187 parseDirective: parseDirective,
24188 getConfig: function getConfig() {
24189 return _config__WEBPACK_IMPORTED_MODULE_3__.getConfig().gantt;
24190 },
24191 clear: clear,
24192 setDateFormat: setDateFormat,
24193 getDateFormat: getDateFormat,
24194 enableInclusiveEndDates: enableInclusiveEndDates,
24195 endDatesAreInclusive: endDatesAreInclusive,
24196 enableTopAxis: enableTopAxis,
24197 topAxisEnabled: topAxisEnabled,
24198 setAxisFormat: setAxisFormat,
24199 getAxisFormat: getAxisFormat,
24200 setTodayMarker: setTodayMarker,
24201 getTodayMarker: getTodayMarker,
24202 setAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_5__.setAccTitle,
24203 getAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_5__.getAccTitle,
24204 setDiagramTitle: _commonDb__WEBPACK_IMPORTED_MODULE_5__.setDiagramTitle,
24205 getDiagramTitle: _commonDb__WEBPACK_IMPORTED_MODULE_5__.getDiagramTitle,
24206 setAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_5__.setAccDescription,
24207 getAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_5__.getAccDescription,
24208 addSection: addSection,
24209 getSections: getSections,
24210 getTasks: getTasks,
24211 addTask: addTask,
24212 findTaskById: findTaskById,
24213 addTaskOrg: addTaskOrg,
24214 setIncludes: setIncludes,
24215 getIncludes: getIncludes,
24216 setExcludes: setExcludes,
24217 getExcludes: getExcludes,
24218 setClickEvent: setClickEvent,
24219 setLink: setLink,
24220 getLinks: getLinks,
24221 bindFunctions: bindFunctions,
24222 durationToDate: durationToDate,
24223 isInvalidDate: isInvalidDate
24224});
24225/**
24226 * @param data
24227 * @param task
24228 * @param tags
24229 */
24230
24231function getTaskTags(data, task, tags) {
24232 var matchFound = true;
24233
24234 while (matchFound) {
24235 matchFound = false;
24236 tags.forEach(function (t) {
24237 var pattern = '^\\s*' + t + '\\s*$';
24238 var regex = new RegExp(pattern);
24239
24240 if (data[0].match(regex)) {
24241 task[t] = true;
24242 data.shift(1);
24243 matchFound = true;
24244 }
24245 });
24246 }
24247}
24248
24249/***/ }),
24250
24251/***/ "./src/diagrams/gantt/ganttRenderer.js":
24252/*!*********************************************!*\
24253 !*** ./src/diagrams/gantt/ganttRenderer.js ***!
24254 \*********************************************/
24255/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24256
24257"use strict";
24258__webpack_require__.r(__webpack_exports__);
24259/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24260/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
24261/* harmony export */ "draw": () => (/* binding */ draw),
24262/* harmony export */ "setConf": () => (/* binding */ setConf)
24263/* harmony export */ });
24264/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-mini */ "./node_modules/moment-mini/moment.min.js");
24265/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_mini__WEBPACK_IMPORTED_MODULE_0__);
24266/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
24267/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
24268/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
24269/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../config */ "./src/config.js");
24270/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
24271/* harmony import */ var _accessibility__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../accessibility */ "./src/accessibility.js");
24272
24273
24274
24275
24276
24277
24278
24279var setConf = function setConf() {
24280 _logger__WEBPACK_IMPORTED_MODULE_2__.log.debug('Something is calling, setConf, remove the call');
24281};
24282var w;
24283var draw = function draw(text, id, version, diagObj) {
24284 var conf = (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().gantt; // diagObj.db.clear();
24285 // parser.parse(text);
24286
24287 var securityLevel = (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().securityLevel; // Handle root and Document for when rendering in sanbox mode
24288
24289 var sandboxElement;
24290
24291 if (securityLevel === 'sandbox') {
24292 sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)('#i' + id);
24293 }
24294
24295 var root = securityLevel === 'sandbox' ? (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)('body');
24296 var doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document;
24297 var elem = doc.getElementById(id);
24298 w = elem.parentElement.offsetWidth;
24299
24300 if (typeof w === 'undefined') {
24301 w = 1200;
24302 }
24303
24304 if (typeof conf.useWidth !== 'undefined') {
24305 w = conf.useWidth;
24306 }
24307
24308 var taskArray = diagObj.db.getTasks(); // Set height based on number of tasks
24309
24310 var h = taskArray.length * (conf.barHeight + conf.barGap) + 2 * conf.topPadding; // Set viewBox
24311
24312 elem.setAttribute('viewBox', '0 0 ' + w + ' ' + h);
24313 var svg = root.select("[id=\"".concat(id, "\"]")); // Set timescale
24314
24315 var timeScale = (0,d3__WEBPACK_IMPORTED_MODULE_1__.scaleTime)().domain([(0,d3__WEBPACK_IMPORTED_MODULE_1__.min)(taskArray, function (d) {
24316 return d.startTime;
24317 }), (0,d3__WEBPACK_IMPORTED_MODULE_1__.max)(taskArray, function (d) {
24318 return d.endTime;
24319 })]).rangeRound([0, w - conf.leftPadding - conf.rightPadding]);
24320 var categories = [];
24321
24322 for (var i = 0; i < taskArray.length; i++) {
24323 categories.push(taskArray[i].type);
24324 }
24325
24326 var catsUnfiltered = categories; // for vert labels
24327
24328 categories = checkUnique(categories);
24329 /**
24330 * @param a
24331 * @param b
24332 */
24333
24334 function taskCompare(a, b) {
24335 var taskA = a.startTime;
24336 var taskB = b.startTime;
24337 var result = 0;
24338
24339 if (taskA > taskB) {
24340 result = 1;
24341 } else if (taskA < taskB) {
24342 result = -1;
24343 }
24344
24345 return result;
24346 } // Sort the task array using the above taskCompare() so that
24347 // tasks are created based on their order of startTime
24348
24349
24350 taskArray.sort(taskCompare);
24351 makeGant(taskArray, w, h);
24352 (0,_utils__WEBPACK_IMPORTED_MODULE_4__.configureSvgSize)(svg, h, w, conf.useMaxWidth);
24353 svg.append('text').text(diagObj.db.getDiagramTitle()).attr('x', w / 2).attr('y', conf.titleTopMargin).attr('class', 'titleText');
24354 (0,_accessibility__WEBPACK_IMPORTED_MODULE_5__["default"])(diagObj.db, svg, id);
24355 /**
24356 * @param tasks
24357 * @param pageWidth
24358 * @param pageHeight
24359 */
24360
24361 function makeGant(tasks, pageWidth, pageHeight) {
24362 var barHeight = conf.barHeight;
24363 var gap = barHeight + conf.barGap;
24364 var topPadding = conf.topPadding;
24365 var leftPadding = conf.leftPadding;
24366 var colorScale = (0,d3__WEBPACK_IMPORTED_MODULE_1__.scaleLinear)().domain([0, categories.length]).range(['#00B9FA', '#F95002']).interpolate(d3__WEBPACK_IMPORTED_MODULE_1__.interpolateHcl);
24367 drawExcludeDays(gap, topPadding, leftPadding, pageWidth, pageHeight, tasks, diagObj.db.getExcludes(), diagObj.db.getIncludes());
24368 makeGrid(leftPadding, topPadding, pageWidth, pageHeight);
24369 drawRects(tasks, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth, pageHeight);
24370 vertLabels(gap, topPadding, leftPadding, barHeight, colorScale);
24371 drawToday(leftPadding, topPadding, pageWidth, pageHeight);
24372 }
24373 /**
24374 * @param theArray
24375 * @param theGap
24376 * @param theTopPad
24377 * @param theSidePad
24378 * @param theBarHeight
24379 * @param theColorScale
24380 * @param w
24381 */
24382
24383
24384 function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w) {
24385 // Draw background rects covering the entire width of the graph, these form the section rows.
24386 svg.append('g').selectAll('rect').data(theArray).enter().append('rect').attr('x', 0).attr('y', function (d, i) {
24387 // Ignore the incoming i value and use our order instead
24388 i = d.order;
24389 return i * theGap + theTopPad - 2;
24390 }).attr('width', function () {
24391 return w - conf.rightPadding / 2;
24392 }).attr('height', theGap).attr('class', function (d) {
24393 for (var _i = 0; _i < categories.length; _i++) {
24394 if (d.type === categories[_i]) {
24395 return 'section section' + _i % conf.numberSectionStyles;
24396 }
24397 }
24398
24399 return 'section section0';
24400 }); // Draw the rects representing the tasks
24401
24402 var rectangles = svg.append('g').selectAll('rect').data(theArray).enter();
24403 var links = diagObj.db.getLinks(); // Render the tasks with links
24404 // Render the other tasks
24405
24406 rectangles.append('rect').attr('id', function (d) {
24407 return d.id;
24408 }).attr('rx', 3).attr('ry', 3).attr('x', function (d) {
24409 if (d.milestone) {
24410 return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
24411 }
24412
24413 return timeScale(d.startTime) + theSidePad;
24414 }).attr('y', function (d, i) {
24415 // Ignore the incoming i value and use our order instead
24416 i = d.order;
24417 return i * theGap + theTopPad;
24418 }).attr('width', function (d) {
24419 if (d.milestone) {
24420 return theBarHeight;
24421 }
24422
24423 return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime);
24424 }).attr('height', theBarHeight).attr('transform-origin', function (d, i) {
24425 // Ignore the incoming i value and use our order instead
24426 i = d.order;
24427 return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + 'px ' + (i * theGap + theTopPad + 0.5 * theBarHeight).toString() + 'px';
24428 }).attr('class', function (d) {
24429 var res = 'task';
24430 var classStr = '';
24431
24432 if (d.classes.length > 0) {
24433 classStr = d.classes.join(' ');
24434 }
24435
24436 var secNum = 0;
24437
24438 for (var _i2 = 0; _i2 < categories.length; _i2++) {
24439 if (d.type === categories[_i2]) {
24440 secNum = _i2 % conf.numberSectionStyles;
24441 }
24442 }
24443
24444 var taskClass = '';
24445
24446 if (d.active) {
24447 if (d.crit) {
24448 taskClass += ' activeCrit';
24449 } else {
24450 taskClass = ' active';
24451 }
24452 } else if (d.done) {
24453 if (d.crit) {
24454 taskClass = ' doneCrit';
24455 } else {
24456 taskClass = ' done';
24457 }
24458 } else {
24459 if (d.crit) {
24460 taskClass += ' crit';
24461 }
24462 }
24463
24464 if (taskClass.length === 0) {
24465 taskClass = ' task';
24466 }
24467
24468 if (d.milestone) {
24469 taskClass = ' milestone ' + taskClass;
24470 }
24471
24472 taskClass += secNum;
24473 taskClass += ' ' + classStr;
24474 return res + taskClass;
24475 }); // Append task labels
24476
24477 rectangles.append('text').attr('id', function (d) {
24478 return d.id + '-text';
24479 }).text(function (d) {
24480 return d.task;
24481 }).attr('font-size', conf.fontSize).attr('x', function (d) {
24482 var startX = timeScale(d.startTime);
24483 var endX = timeScale(d.renderEndTime || d.endTime);
24484
24485 if (d.milestone) {
24486 startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
24487 }
24488
24489 if (d.milestone) {
24490 endX = startX + theBarHeight;
24491 }
24492
24493 var textWidth = this.getBBox().width; // Check id text width > width of rectangle
24494
24495 if (textWidth > endX - startX) {
24496 if (endX + textWidth + 1.5 * conf.leftPadding > w) {
24497 return startX + theSidePad - 5;
24498 } else {
24499 return endX + theSidePad + 5;
24500 }
24501 } else {
24502 return (endX - startX) / 2 + startX + theSidePad;
24503 }
24504 }).attr('y', function (d, i) {
24505 // Ignore the incoming i value and use our order instead
24506 i = d.order;
24507 return i * theGap + conf.barHeight / 2 + (conf.fontSize / 2 - 2) + theTopPad;
24508 }).attr('text-height', theBarHeight).attr('class', function (d) {
24509 var startX = timeScale(d.startTime);
24510 var endX = timeScale(d.endTime);
24511
24512 if (d.milestone) {
24513 endX = startX + theBarHeight;
24514 }
24515
24516 var textWidth = this.getBBox().width;
24517 var classStr = '';
24518
24519 if (d.classes.length > 0) {
24520 classStr = d.classes.join(' ');
24521 }
24522
24523 var secNum = 0;
24524
24525 for (var _i3 = 0; _i3 < categories.length; _i3++) {
24526 if (d.type === categories[_i3]) {
24527 secNum = _i3 % conf.numberSectionStyles;
24528 }
24529 }
24530
24531 var taskType = '';
24532
24533 if (d.active) {
24534 if (d.crit) {
24535 taskType = 'activeCritText' + secNum;
24536 } else {
24537 taskType = 'activeText' + secNum;
24538 }
24539 }
24540
24541 if (d.done) {
24542 if (d.crit) {
24543 taskType = taskType + ' doneCritText' + secNum;
24544 } else {
24545 taskType = taskType + ' doneText' + secNum;
24546 }
24547 } else {
24548 if (d.crit) {
24549 taskType = taskType + ' critText' + secNum;
24550 }
24551 }
24552
24553 if (d.milestone) {
24554 taskType += ' milestoneText';
24555 } // Check id text width > width of rectangle
24556
24557
24558 if (textWidth > endX - startX) {
24559 if (endX + textWidth + 1.5 * conf.leftPadding > w) {
24560 return classStr + ' taskTextOutsideLeft taskTextOutside' + secNum + ' ' + taskType;
24561 } else {
24562 return classStr + ' taskTextOutsideRight taskTextOutside' + secNum + ' ' + taskType + ' width-' + textWidth;
24563 }
24564 } else {
24565 return classStr + ' taskText taskText' + secNum + ' ' + taskType + ' width-' + textWidth;
24566 }
24567 });
24568 var securityLevel = (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().securityLevel; // Wrap the tasks in an a tag for working links without javascript
24569
24570 if (securityLevel === 'sandbox') {
24571 var _sandboxElement;
24572
24573 _sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)('#i' + id);
24574
24575 var _root = (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)(_sandboxElement.nodes()[0].contentDocument.body);
24576
24577 var _doc = _sandboxElement.nodes()[0].contentDocument;
24578
24579 rectangles.filter(function (d) {
24580 return typeof links[d.id] !== 'undefined';
24581 }).each(function (o) {
24582 var taskRect = _doc.querySelector('#' + o.id);
24583
24584 var taskText = _doc.querySelector('#' + o.id + '-text');
24585
24586 var oldParent = taskRect.parentNode;
24587
24588 var Link = _doc.createElement('a');
24589
24590 Link.setAttribute('xlink:href', links[o.id]);
24591 Link.setAttribute('target', '_top');
24592 oldParent.appendChild(Link);
24593 Link.appendChild(taskRect);
24594 Link.appendChild(taskText);
24595 });
24596 }
24597 }
24598 /**
24599 * @param theGap
24600 * @param theTopPad
24601 * @param theSidePad
24602 * @param w
24603 * @param h
24604 * @param tasks
24605 * @param excludes
24606 * @param includes
24607 */
24608
24609
24610 function drawExcludeDays(theGap, theTopPad, theSidePad, w, h, tasks, excludes, includes) {
24611 var minTime = tasks.reduce(function (min, _ref) {
24612 var startTime = _ref.startTime;
24613 return min ? Math.min(min, startTime) : startTime;
24614 }, 0);
24615 var maxTime = tasks.reduce(function (max, _ref2) {
24616 var endTime = _ref2.endTime;
24617 return max ? Math.max(max, endTime) : endTime;
24618 }, 0);
24619 var dateFormat = diagObj.db.getDateFormat();
24620 if (!minTime || !maxTime) return;
24621 var excludeRanges = [];
24622 var range = null;
24623 var d = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()(minTime);
24624
24625 while (d.valueOf() <= maxTime) {
24626 if (diagObj.db.isInvalidDate(d, dateFormat, excludes, includes)) {
24627 if (!range) {
24628 range = {
24629 start: d.clone(),
24630 end: d.clone()
24631 };
24632 } else {
24633 range.end = d.clone();
24634 }
24635 } else {
24636 if (range) {
24637 excludeRanges.push(range);
24638 range = null;
24639 }
24640 }
24641
24642 d.add(1, 'd');
24643 }
24644
24645 var rectangles = svg.append('g').selectAll('rect').data(excludeRanges).enter();
24646 rectangles.append('rect').attr('id', function (d) {
24647 return 'exclude-' + d.start.format('YYYY-MM-DD');
24648 }).attr('x', function (d) {
24649 return timeScale(d.start) + theSidePad;
24650 }).attr('y', conf.gridLineStartPadding).attr('width', function (d) {
24651 var renderEnd = d.end.clone().add(1, 'day');
24652 return timeScale(renderEnd) - timeScale(d.start);
24653 }).attr('height', h - theTopPad - conf.gridLineStartPadding).attr('transform-origin', function (d, i) {
24654 return (timeScale(d.start) + theSidePad + 0.5 * (timeScale(d.end) - timeScale(d.start))).toString() + 'px ' + (i * theGap + 0.5 * h).toString() + 'px';
24655 }).attr('class', 'exclude-range');
24656 }
24657 /**
24658 * @param theSidePad
24659 * @param theTopPad
24660 * @param w
24661 * @param h
24662 */
24663
24664
24665 function makeGrid(theSidePad, theTopPad, w, h) {
24666 var bottomXAxis = (0,d3__WEBPACK_IMPORTED_MODULE_1__.axisBottom)(timeScale).tickSize(-h + theTopPad + conf.gridLineStartPadding).tickFormat((0,d3__WEBPACK_IMPORTED_MODULE_1__.timeFormat)(diagObj.db.getAxisFormat() || conf.axisFormat || '%Y-%m-%d'));
24667 svg.append('g').attr('class', 'grid').attr('transform', 'translate(' + theSidePad + ', ' + (h - 50) + ')').call(bottomXAxis).selectAll('text').style('text-anchor', 'middle').attr('fill', '#000').attr('stroke', 'none').attr('font-size', 10).attr('dy', '1em');
24668
24669 if (diagObj.db.topAxisEnabled() || conf.topAxis) {
24670 var topXAxis = (0,d3__WEBPACK_IMPORTED_MODULE_1__.axisTop)(timeScale).tickSize(-h + theTopPad + conf.gridLineStartPadding).tickFormat((0,d3__WEBPACK_IMPORTED_MODULE_1__.timeFormat)(diagObj.db.getAxisFormat() || conf.axisFormat || '%Y-%m-%d'));
24671 svg.append('g').attr('class', 'grid').attr('transform', 'translate(' + theSidePad + ', ' + theTopPad + ')').call(topXAxis).selectAll('text').style('text-anchor', 'middle').attr('fill', '#000').attr('stroke', 'none').attr('font-size', 10); // .attr('dy', '1em');
24672 }
24673 }
24674 /**
24675 * @param theGap
24676 * @param theTopPad
24677 */
24678
24679
24680 function vertLabels(theGap, theTopPad) {
24681 var numOccurances = [];
24682 var prevGap = 0;
24683
24684 for (var _i4 = 0; _i4 < categories.length; _i4++) {
24685 numOccurances[_i4] = [categories[_i4], getCount(categories[_i4], catsUnfiltered)];
24686 }
24687
24688 svg.append('g') // without doing this, impossible to put grid lines behind text
24689 .selectAll('text').data(numOccurances).enter().append(function (d) {
24690 var rows = d[0].split(_common_common__WEBPACK_IMPORTED_MODULE_6__["default"].lineBreakRegex);
24691 var dy = -(rows.length - 1) / 2;
24692 var svgLabel = doc.createElementNS('http://www.w3.org/2000/svg', 'text');
24693 svgLabel.setAttribute('dy', dy + 'em');
24694
24695 for (var j = 0; j < rows.length; j++) {
24696 var tspan = doc.createElementNS('http://www.w3.org/2000/svg', 'tspan');
24697 tspan.setAttribute('alignment-baseline', 'central');
24698 tspan.setAttribute('x', '10');
24699 if (j > 0) tspan.setAttribute('dy', '1em');
24700 tspan.textContent = rows[j];
24701 svgLabel.appendChild(tspan);
24702 }
24703
24704 return svgLabel;
24705 }).attr('x', 10).attr('y', function (d, i) {
24706 if (i > 0) {
24707 for (var j = 0; j < i; j++) {
24708 prevGap += numOccurances[i - 1][1];
24709 return d[1] * theGap / 2 + prevGap * theGap + theTopPad;
24710 }
24711 } else {
24712 return d[1] * theGap / 2 + theTopPad;
24713 }
24714 }).attr('font-size', conf.sectionFontSize).attr('font-size', conf.sectionFontSize).attr('class', function (d) {
24715 for (var _i5 = 0; _i5 < categories.length; _i5++) {
24716 if (d[0] === categories[_i5]) {
24717 return 'sectionTitle sectionTitle' + _i5 % conf.numberSectionStyles;
24718 }
24719 }
24720
24721 return 'sectionTitle';
24722 });
24723 }
24724 /**
24725 * @param theSidePad
24726 * @param theTopPad
24727 * @param w
24728 * @param h
24729 */
24730
24731
24732 function drawToday(theSidePad, theTopPad, w, h) {
24733 var todayMarker = diagObj.db.getTodayMarker();
24734
24735 if (todayMarker === 'off') {
24736 return;
24737 }
24738
24739 var todayG = svg.append('g').attr('class', 'today');
24740 var today = new Date();
24741 var todayLine = todayG.append('line');
24742 todayLine.attr('x1', timeScale(today) + theSidePad).attr('x2', timeScale(today) + theSidePad).attr('y1', conf.titleTopMargin).attr('y2', h - conf.titleTopMargin).attr('class', 'today');
24743
24744 if (todayMarker !== '') {
24745 todayLine.attr('style', todayMarker.replace(/,/g, ';'));
24746 }
24747 }
24748 /**
24749 * From this stackexchange question:
24750 * http://stackoverflow.com/questions/1890203/unique-for-arrays-in-javascript
24751 *
24752 * @param arr
24753 */
24754
24755
24756 function checkUnique(arr) {
24757 var hash = {};
24758 var result = [];
24759
24760 for (var _i6 = 0, l = arr.length; _i6 < l; ++_i6) {
24761 if (!Object.prototype.hasOwnProperty.call(hash, arr[_i6])) {
24762 // eslint-disable-line
24763 // it works with objects! in FF, at least
24764 hash[arr[_i6]] = true;
24765 result.push(arr[_i6]);
24766 }
24767 }
24768
24769 return result;
24770 }
24771 /**
24772 * From this stackexchange question:
24773 * http://stackoverflow.com/questions/14227981/count-how-many-strings-in-an-array-have-duplicates-in-the-same-array
24774 *
24775 * @param arr
24776 */
24777
24778
24779 function getCounts(arr) {
24780 var i = arr.length; // const to loop over
24781
24782 var obj = {}; // obj to store results
24783
24784 while (i) {
24785 obj[arr[--i]] = (obj[arr[i]] || 0) + 1; // count occurrences
24786 }
24787
24788 return obj;
24789 }
24790 /**
24791 * Get specific from everything
24792 *
24793 * @param word
24794 * @param arr
24795 */
24796
24797
24798 function getCount(word, arr) {
24799 return getCounts(arr)[word] || 0;
24800 }
24801};
24802/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
24803 setConf: setConf,
24804 draw: draw
24805});
24806
24807/***/ }),
24808
24809/***/ "./src/diagrams/gantt/styles.js":
24810/*!**************************************!*\
24811 !*** ./src/diagrams/gantt/styles.js ***!
24812 \**************************************/
24813/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24814
24815"use strict";
24816__webpack_require__.r(__webpack_exports__);
24817/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24818/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
24819/* harmony export */ });
24820var getStyles = function getStyles(options) {
24821 return "\n .mermaid-main-font {\n font-family: \"trebuchet ms\", verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n .exclude-range {\n fill: ".concat(options.excludeBkgColor, ";\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: ").concat(options.ganttFontSize, ";\n // text-height: 14px;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\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, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n\n // .taskText:not([font-size]) {\n // font-size: ").concat(options.ganttFontSize, ";\n // }\n\n .taskTextOutsideRight {\n fill: ").concat(options.taskTextDarkColor, ";\n text-anchor: start;\n // font-size: ").concat(options.ganttFontSize, ";\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n\n }\n\n .taskTextOutsideLeft {\n fill: ").concat(options.taskTextDarkColor, ";\n text-anchor: end;\n // font-size: ").concat(options.ganttFontSize, ";\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, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n");
24822};
24823
24824/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getStyles);
24825
24826/***/ }),
24827
24828/***/ "./src/diagrams/git/gitGraphAst.js":
24829/*!*****************************************!*\
24830 !*** ./src/diagrams/git/gitGraphAst.js ***!
24831 \*****************************************/
24832/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24833
24834"use strict";
24835__webpack_require__.r(__webpack_exports__);
24836/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24837/* harmony export */ "branch": () => (/* binding */ branch),
24838/* harmony export */ "checkout": () => (/* binding */ checkout),
24839/* harmony export */ "cherryPick": () => (/* binding */ cherryPick),
24840/* harmony export */ "clear": () => (/* binding */ clear),
24841/* harmony export */ "commit": () => (/* binding */ commit),
24842/* harmony export */ "commitType": () => (/* binding */ commitType),
24843/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
24844/* harmony export */ "getBranches": () => (/* binding */ getBranches),
24845/* harmony export */ "getBranchesAsObjArray": () => (/* binding */ getBranchesAsObjArray),
24846/* harmony export */ "getCommits": () => (/* binding */ getCommits),
24847/* harmony export */ "getCommitsArray": () => (/* binding */ getCommitsArray),
24848/* harmony export */ "getCurrentBranch": () => (/* binding */ getCurrentBranch),
24849/* harmony export */ "getDirection": () => (/* binding */ getDirection),
24850/* harmony export */ "getHead": () => (/* binding */ getHead),
24851/* harmony export */ "getOptions": () => (/* binding */ getOptions),
24852/* harmony export */ "merge": () => (/* binding */ merge),
24853/* harmony export */ "parseDirective": () => (/* binding */ parseDirective),
24854/* harmony export */ "prettyPrint": () => (/* binding */ prettyPrint),
24855/* harmony export */ "setDirection": () => (/* binding */ setDirection),
24856/* harmony export */ "setOptions": () => (/* binding */ setOptions)
24857/* harmony export */ });
24858/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
24859/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
24860/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
24861/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../config */ "./src/config.js");
24862/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
24863/* harmony import */ var _commonDb__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../commonDb */ "./src/commonDb.js");
24864function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24865
24866function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
24867
24868function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
24869
24870
24871
24872
24873
24874
24875
24876
24877var mainBranchName = (0,_config__WEBPACK_IMPORTED_MODULE_0__.getConfig)().gitGraph.mainBranchName;
24878var mainBranchOrder = (0,_config__WEBPACK_IMPORTED_MODULE_0__.getConfig)().gitGraph.mainBranchOrder;
24879var commits = {};
24880var head = null;
24881var branchesConfig = {};
24882branchesConfig[mainBranchName] = {
24883 name: mainBranchName,
24884 order: mainBranchOrder
24885};
24886var branches = {};
24887branches[mainBranchName] = head;
24888var curBranch = mainBranchName;
24889var direction = 'LR';
24890var seq = 0;
24891
24892function getId() {
24893 // eslint-disable-line
24894 return (0,_utils__WEBPACK_IMPORTED_MODULE_1__.random)({
24895 length: 7
24896 });
24897}
24898
24899var parseDirective = function parseDirective(statement, context, type) {
24900 _mermaidAPI__WEBPACK_IMPORTED_MODULE_2__["default"].parseDirective(this, statement, context, type);
24901}; // /**
24902// * @param currentCommit
24903// * @param otherCommit
24904// */
24905// function isfastforwardable(currentCommit, otherCommit) {
24906// log.debug('Entering isfastforwardable:', currentCommit.id, otherCommit.id);
24907// let cnt = 0;
24908// while (currentCommit.seq <= otherCommit.seq && currentCommit !== otherCommit && cnt < 1000) {
24909// cnt++;
24910// // only if other branch has more commits
24911// if (otherCommit.parent == null) break;
24912// if (Array.isArray(otherCommit.parent)) {
24913// log.debug('In merge commit:', otherCommit.parent);
24914// return (
24915// isfastforwardable(currentCommit, commits[otherCommit.parent[0]]) ||
24916// isfastforwardable(currentCommit, commits[otherCommit.parent[1]])
24917// );
24918// } else {
24919// otherCommit = commits[otherCommit.parent];
24920// }
24921// }
24922// log.debug(currentCommit.id, otherCommit.id);
24923// return currentCommit.id === otherCommit.id;
24924// }
24925
24926/**
24927 * @param currentCommit
24928 * @param otherCommit
24929 */
24930// function isReachableFrom(currentCommit, otherCommit) {
24931// const currentSeq = currentCommit.seq;
24932// const otherSeq = otherCommit.seq;
24933// if (currentSeq > otherSeq) return isfastforwardable(otherCommit, currentCommit);
24934// return false;
24935// }
24936
24937/**
24938 * @param list
24939 * @param fn
24940 */
24941
24942function uniqBy(list, fn) {
24943 var recordMap = Object.create(null);
24944 return list.reduce(function (out, item) {
24945 var key = fn(item);
24946
24947 if (!recordMap[key]) {
24948 recordMap[key] = true;
24949 out.push(item);
24950 }
24951
24952 return out;
24953 }, []);
24954}
24955
24956var setDirection = function setDirection(dir) {
24957 direction = dir;
24958};
24959var options = {};
24960var setOptions = function setOptions(rawOptString) {
24961 _logger__WEBPACK_IMPORTED_MODULE_3__.log.debug('options str', rawOptString);
24962 rawOptString = rawOptString && rawOptString.trim();
24963 rawOptString = rawOptString || '{}';
24964
24965 try {
24966 options = JSON.parse(rawOptString);
24967 } catch (e) {
24968 _logger__WEBPACK_IMPORTED_MODULE_3__.log.error('error while parsing gitGraph options', e.message);
24969 }
24970};
24971var getOptions = function getOptions() {
24972 return options;
24973};
24974var commit = function commit(msg, id, type, tag) {
24975 _logger__WEBPACK_IMPORTED_MODULE_3__.log.debug('Entering commit:', msg, id, type, tag);
24976 id = _common_common__WEBPACK_IMPORTED_MODULE_4__["default"].sanitizeText(id, _config__WEBPACK_IMPORTED_MODULE_0__.getConfig());
24977 msg = _common_common__WEBPACK_IMPORTED_MODULE_4__["default"].sanitizeText(msg, _config__WEBPACK_IMPORTED_MODULE_0__.getConfig());
24978 tag = _common_common__WEBPACK_IMPORTED_MODULE_4__["default"].sanitizeText(tag, _config__WEBPACK_IMPORTED_MODULE_0__.getConfig());
24979 var commit = {
24980 id: id ? id : seq + '-' + getId(),
24981 message: msg,
24982 seq: seq++,
24983 type: type ? type : commitType.NORMAL,
24984 tag: tag ? tag : '',
24985 parents: head == null ? [] : [head.id],
24986 branch: curBranch
24987 };
24988 head = commit;
24989 commits[commit.id] = commit;
24990 branches[curBranch] = commit.id;
24991 _logger__WEBPACK_IMPORTED_MODULE_3__.log.debug('in pushCommit ' + commit.id);
24992};
24993var branch = function branch(name, order) {
24994 name = _common_common__WEBPACK_IMPORTED_MODULE_4__["default"].sanitizeText(name, _config__WEBPACK_IMPORTED_MODULE_0__.getConfig());
24995
24996 if (typeof branches[name] === 'undefined') {
24997 branches[name] = head != null ? head.id : null;
24998 branchesConfig[name] = {
24999 name: name,
25000 order: order ? parseInt(order, 10) : null
25001 };
25002 checkout(name);
25003 _logger__WEBPACK_IMPORTED_MODULE_3__.log.debug('in createBranch');
25004 } else {
25005 var error = new Error('Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ' + name + '")');
25006 error.hash = {
25007 text: 'branch ' + name,
25008 token: 'branch ' + name,
25009 line: '1',
25010 loc: {
25011 first_line: 1,
25012 last_line: 1,
25013 first_column: 1,
25014 last_column: 1
25015 },
25016 expected: ['"checkout ' + name + '"']
25017 };
25018 throw error;
25019 }
25020};
25021var merge = function merge(otherBranch, tag) {
25022 otherBranch = _common_common__WEBPACK_IMPORTED_MODULE_4__["default"].sanitizeText(otherBranch, _config__WEBPACK_IMPORTED_MODULE_0__.getConfig());
25023 var currentCommit = commits[branches[curBranch]];
25024 var otherCommit = commits[branches[otherBranch]];
25025
25026 if (curBranch === otherBranch) {
25027 var error = new Error('Incorrect usage of "merge". Cannot merge a branch to itself');
25028 error.hash = {
25029 text: 'merge ' + otherBranch,
25030 token: 'merge ' + otherBranch,
25031 line: '1',
25032 loc: {
25033 first_line: 1,
25034 last_line: 1,
25035 first_column: 1,
25036 last_column: 1
25037 },
25038 expected: ['branch abc']
25039 };
25040 throw error;
25041 } else if (typeof currentCommit === 'undefined' || !currentCommit) {
25042 var _error = new Error('Incorrect usage of "merge". Current branch (' + curBranch + ')has no commits');
25043
25044 _error.hash = {
25045 text: 'merge ' + otherBranch,
25046 token: 'merge ' + otherBranch,
25047 line: '1',
25048 loc: {
25049 first_line: 1,
25050 last_line: 1,
25051 first_column: 1,
25052 last_column: 1
25053 },
25054 expected: ['commit']
25055 };
25056 throw _error;
25057 } else if (typeof branches[otherBranch] === 'undefined') {
25058 var _error2 = new Error('Incorrect usage of "merge". Branch to be merged (' + otherBranch + ') does not exist');
25059
25060 _error2.hash = {
25061 text: 'merge ' + otherBranch,
25062 token: 'merge ' + otherBranch,
25063 line: '1',
25064 loc: {
25065 first_line: 1,
25066 last_line: 1,
25067 first_column: 1,
25068 last_column: 1
25069 },
25070 expected: ['branch ' + otherBranch]
25071 };
25072 throw _error2;
25073 } else if (typeof otherCommit === 'undefined' || !otherCommit) {
25074 var _error3 = new Error('Incorrect usage of "merge". Branch to be merged (' + otherBranch + ') has no commits');
25075
25076 _error3.hash = {
25077 text: 'merge ' + otherBranch,
25078 token: 'merge ' + otherBranch,
25079 line: '1',
25080 loc: {
25081 first_line: 1,
25082 last_line: 1,
25083 first_column: 1,
25084 last_column: 1
25085 },
25086 expected: ['"commit"']
25087 };
25088 throw _error3;
25089 } else if (currentCommit === otherCommit) {
25090 var _error4 = new Error('Incorrect usage of "merge". Both branches have same head');
25091
25092 _error4.hash = {
25093 text: 'merge ' + otherBranch,
25094 token: 'merge ' + otherBranch,
25095 line: '1',
25096 loc: {
25097 first_line: 1,
25098 last_line: 1,
25099 first_column: 1,
25100 last_column: 1
25101 },
25102 expected: ['branch abc']
25103 };
25104 throw _error4;
25105 } // if (isReachableFrom(currentCommit, otherCommit)) {
25106 // log.debug('Already merged');
25107 // return;
25108 // }
25109 // if (isfastforwardable(currentCommit, otherCommit)) {
25110 // branches[curBranch] = branches[otherBranch];
25111 // head = commits[branches[curBranch]];
25112 // } else {
25113 // create merge commit
25114
25115
25116 var commit = {
25117 id: seq + '-' + getId(),
25118 message: 'merged branch ' + otherBranch + ' into ' + curBranch,
25119 seq: seq++,
25120 parents: [head == null ? null : head.id, branches[otherBranch]],
25121 branch: curBranch,
25122 type: commitType.MERGE,
25123 tag: tag ? tag : ''
25124 };
25125 head = commit;
25126 commits[commit.id] = commit;
25127 branches[curBranch] = commit.id; // }
25128
25129 _logger__WEBPACK_IMPORTED_MODULE_3__.log.debug(branches);
25130 _logger__WEBPACK_IMPORTED_MODULE_3__.log.debug('in mergeBranch');
25131};
25132var cherryPick = function cherryPick(sourceId, targetId) {
25133 sourceId = _common_common__WEBPACK_IMPORTED_MODULE_4__["default"].sanitizeText(sourceId, _config__WEBPACK_IMPORTED_MODULE_0__.getConfig());
25134 targetId = _common_common__WEBPACK_IMPORTED_MODULE_4__["default"].sanitizeText(targetId, _config__WEBPACK_IMPORTED_MODULE_0__.getConfig());
25135
25136 if (!sourceId || typeof commits[sourceId] === 'undefined') {
25137 var error = new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');
25138 error.hash = {
25139 text: 'cherryPick ' + sourceId + ' ' + targetId,
25140 token: 'cherryPick ' + sourceId + ' ' + targetId,
25141 line: '1',
25142 loc: {
25143 first_line: 1,
25144 last_line: 1,
25145 first_column: 1,
25146 last_column: 1
25147 },
25148 expected: ['cherry-pick abc']
25149 };
25150 throw error;
25151 }
25152
25153 var sourceCommit = commits[sourceId];
25154 var sourceCommitBranch = sourceCommit.branch;
25155
25156 if (sourceCommit.type === commitType.MERGE) {
25157 var _error5 = new Error('Incorrect usage of "cherryPick". Source commit should not be a merge commit');
25158
25159 _error5.hash = {
25160 text: 'cherryPick ' + sourceId + ' ' + targetId,
25161 token: 'cherryPick ' + sourceId + ' ' + targetId,
25162 line: '1',
25163 loc: {
25164 first_line: 1,
25165 last_line: 1,
25166 first_column: 1,
25167 last_column: 1
25168 },
25169 expected: ['cherry-pick abc']
25170 };
25171 throw _error5;
25172 }
25173
25174 if (!targetId || typeof commits[targetId] === 'undefined') {
25175 // cherry-pick source commit to current branch
25176 if (sourceCommitBranch === curBranch) {
25177 var _error6 = new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');
25178
25179 _error6.hash = {
25180 text: 'cherryPick ' + sourceId + ' ' + targetId,
25181 token: 'cherryPick ' + sourceId + ' ' + targetId,
25182 line: '1',
25183 loc: {
25184 first_line: 1,
25185 last_line: 1,
25186 first_column: 1,
25187 last_column: 1
25188 },
25189 expected: ['cherry-pick abc']
25190 };
25191 throw _error6;
25192 }
25193
25194 var currentCommit = commits[branches[curBranch]];
25195
25196 if (typeof currentCommit === 'undefined' || !currentCommit) {
25197 var _error7 = new Error('Incorrect usage of "cherry-pick". Current branch (' + curBranch + ')has no commits');
25198
25199 _error7.hash = {
25200 text: 'cherryPick ' + sourceId + ' ' + targetId,
25201 token: 'cherryPick ' + sourceId + ' ' + targetId,
25202 line: '1',
25203 loc: {
25204 first_line: 1,
25205 last_line: 1,
25206 first_column: 1,
25207 last_column: 1
25208 },
25209 expected: ['cherry-pick abc']
25210 };
25211 throw _error7;
25212 }
25213
25214 var _commit = {
25215 id: seq + '-' + getId(),
25216 message: 'cherry-picked ' + sourceCommit + ' into ' + curBranch,
25217 seq: seq++,
25218 parents: [head == null ? null : head.id, sourceCommit.id],
25219 branch: curBranch,
25220 type: commitType.CHERRY_PICK,
25221 tag: 'cherry-pick:' + sourceCommit.id
25222 };
25223 head = _commit;
25224 commits[_commit.id] = _commit;
25225 branches[curBranch] = _commit.id;
25226 _logger__WEBPACK_IMPORTED_MODULE_3__.log.debug(branches);
25227 _logger__WEBPACK_IMPORTED_MODULE_3__.log.debug('in cheeryPick');
25228 }
25229};
25230var checkout = function checkout(branch) {
25231 branch = _common_common__WEBPACK_IMPORTED_MODULE_4__["default"].sanitizeText(branch, _config__WEBPACK_IMPORTED_MODULE_0__.getConfig());
25232
25233 if (typeof branches[branch] === 'undefined') {
25234 var error = new Error('Trying to checkout branch which is not yet created. (Help try using "branch ' + branch + '")');
25235 error.hash = {
25236 text: 'checkout ' + branch,
25237 token: 'checkout ' + branch,
25238 line: '1',
25239 loc: {
25240 first_line: 1,
25241 last_line: 1,
25242 first_column: 1,
25243 last_column: 1
25244 },
25245 expected: ['"branch ' + branch + '"']
25246 };
25247 throw error; //branches[branch] = head != null ? head.id : null;
25248 //log.debug('in createBranch');
25249 } else {
25250 curBranch = branch;
25251 var id = branches[curBranch];
25252 head = commits[id];
25253 }
25254}; // export const reset = function (commitRef) {
25255// log.debug('in reset', commitRef);
25256// const ref = commitRef.split(':')[0];
25257// let parentCount = parseInt(commitRef.split(':')[1]);
25258// let commit = ref === 'HEAD' ? head : commits[branches[ref]];
25259// log.debug(commit, parentCount);
25260// while (parentCount > 0) {
25261// commit = commits[commit.parent];
25262// parentCount--;
25263// if (!commit) {
25264// const err = 'Critical error - unique parent commit not found during reset';
25265// log.error(err);
25266// throw err;
25267// }
25268// }
25269// head = commit;
25270// branches[curBranch] = commit.id;
25271// };
25272
25273/**
25274 * @param arr
25275 * @param key
25276 * @param newval
25277 */
25278
25279function upsert(arr, key, newval) {
25280 var index = arr.indexOf(key);
25281
25282 if (index === -1) {
25283 arr.push(newval);
25284 } else {
25285 arr.splice(index, 1, newval);
25286 }
25287}
25288/** @param commitArr */
25289
25290
25291function prettyPrintCommitHistory(commitArr) {
25292 var commit = commitArr.reduce(function (out, commit) {
25293 if (out.seq > commit.seq) return out;
25294 return commit;
25295 }, commitArr[0]);
25296 var line = '';
25297 commitArr.forEach(function (c) {
25298 if (c === commit) {
25299 line += '\t*';
25300 } else {
25301 line += '\t|';
25302 }
25303 });
25304 var label = [line, commit.id, commit.seq];
25305
25306 for (var _branch in branches) {
25307 if (branches[_branch] === commit.id) label.push(_branch);
25308 }
25309
25310 _logger__WEBPACK_IMPORTED_MODULE_3__.log.debug(label.join(' '));
25311
25312 if (commit.parents && commit.parents.length == 2) {
25313 var newCommit = commits[commit.parents[0]];
25314 upsert(commitArr, commit, newCommit);
25315 commitArr.push(commits[commit.parents[1]]);
25316 } else if (commit.parents.length == 0) {
25317 return;
25318 } else {
25319 var nextCommit = commits[commit.parents];
25320 upsert(commitArr, commit, nextCommit);
25321 }
25322
25323 commitArr = uniqBy(commitArr, function (c) {
25324 return c.id;
25325 });
25326 prettyPrintCommitHistory(commitArr);
25327}
25328
25329var prettyPrint = function prettyPrint() {
25330 _logger__WEBPACK_IMPORTED_MODULE_3__.log.debug(commits);
25331 var node = getCommitsArray()[0];
25332 prettyPrintCommitHistory([node]);
25333};
25334var clear = function clear() {
25335 commits = {};
25336 head = null;
25337 var mainBranch = (0,_config__WEBPACK_IMPORTED_MODULE_0__.getConfig)().gitGraph.mainBranchName;
25338 var mainBranchOrder = (0,_config__WEBPACK_IMPORTED_MODULE_0__.getConfig)().gitGraph.mainBranchOrder;
25339 branches = {};
25340 branches[mainBranch] = null;
25341 branchesConfig = {};
25342 branchesConfig[mainBranch] = {
25343 name: mainBranch,
25344 order: mainBranchOrder
25345 };
25346 curBranch = mainBranch;
25347 seq = 0;
25348 (0,_commonDb__WEBPACK_IMPORTED_MODULE_5__.clear)();
25349};
25350var getBranchesAsObjArray = function getBranchesAsObjArray() {
25351 var branchesArray = Object.values(branchesConfig).map(function (branchConfig, i) {
25352 if (branchConfig.order !== null) return branchConfig;
25353 return _objectSpread(_objectSpread({}, branchConfig), {}, {
25354 order: parseFloat("0.".concat(i), 10)
25355 });
25356 }).sort(function (a, b) {
25357 return a.order - b.order;
25358 }).map(function (_ref) {
25359 var name = _ref.name;
25360 return {
25361 name: name
25362 };
25363 });
25364 return branchesArray;
25365};
25366var getBranches = function getBranches() {
25367 return branches;
25368};
25369var getCommits = function getCommits() {
25370 return commits;
25371};
25372var getCommitsArray = function getCommitsArray() {
25373 var commitArr = Object.keys(commits).map(function (key) {
25374 return commits[key];
25375 });
25376 commitArr.forEach(function (o) {
25377 _logger__WEBPACK_IMPORTED_MODULE_3__.log.debug(o.id);
25378 });
25379 commitArr.sort(function (a, b) {
25380 return a.seq - b.seq;
25381 });
25382 return commitArr;
25383};
25384var getCurrentBranch = function getCurrentBranch() {
25385 return curBranch;
25386};
25387var getDirection = function getDirection() {
25388 return direction;
25389};
25390var getHead = function getHead() {
25391 return head;
25392};
25393var commitType = {
25394 NORMAL: 0,
25395 REVERSE: 1,
25396 HIGHLIGHT: 2,
25397 MERGE: 3,
25398 CHERRY_PICK: 4
25399};
25400/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
25401 parseDirective: parseDirective,
25402 getConfig: function getConfig() {
25403 return _config__WEBPACK_IMPORTED_MODULE_0__.getConfig().gitGraph;
25404 },
25405 setDirection: setDirection,
25406 setOptions: setOptions,
25407 getOptions: getOptions,
25408 commit: commit,
25409 branch: branch,
25410 merge: merge,
25411 cherryPick: cherryPick,
25412 checkout: checkout,
25413 //reset,
25414 prettyPrint: prettyPrint,
25415 clear: clear,
25416 getBranchesAsObjArray: getBranchesAsObjArray,
25417 getBranches: getBranches,
25418 getCommits: getCommits,
25419 getCommitsArray: getCommitsArray,
25420 getCurrentBranch: getCurrentBranch,
25421 getDirection: getDirection,
25422 getHead: getHead,
25423 setAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_5__.setAccTitle,
25424 getAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_5__.getAccTitle,
25425 getAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_5__.getAccDescription,
25426 setAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_5__.setAccDescription,
25427 commitType: commitType
25428});
25429
25430/***/ }),
25431
25432/***/ "./src/diagrams/git/gitGraphDetector.js":
25433/*!**********************************************!*\
25434 !*** ./src/diagrams/git/gitGraphDetector.js ***!
25435 \**********************************************/
25436/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25437
25438"use strict";
25439__webpack_require__.r(__webpack_exports__);
25440/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25441/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
25442/* harmony export */ });
25443var detector = function detector(txt) {
25444 if (txt.match(/^\s*gitGraph/)) {
25445 return 'gitGraph';
25446 }
25447
25448 return null;
25449};
25450
25451/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (detector);
25452
25453/***/ }),
25454
25455/***/ "./src/diagrams/git/gitGraphRenderer.js":
25456/*!**********************************************!*\
25457 !*** ./src/diagrams/git/gitGraphRenderer.js ***!
25458 \**********************************************/
25459/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25460
25461"use strict";
25462__webpack_require__.r(__webpack_exports__);
25463/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25464/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
25465/* harmony export */ "draw": () => (/* binding */ draw)
25466/* harmony export */ });
25467/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
25468/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
25469/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
25470/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ "./src/config.js");
25471/* harmony import */ var _accessibility__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../accessibility */ "./src/accessibility.js");
25472
25473
25474
25475
25476
25477var allCommitsDict = {};
25478var branchNum;
25479var commitType = {
25480 NORMAL: 0,
25481 REVERSE: 1,
25482 HIGHLIGHT: 2,
25483 MERGE: 3,
25484 CHERRY_PICK: 4
25485};
25486var THEME_COLOR_LIMIT = 8;
25487var branchPos = {};
25488var commitPos = {};
25489var lanes = [];
25490var maxPos = 0;
25491
25492var clear = function clear() {
25493 branchPos = {};
25494 commitPos = {};
25495 allCommitsDict = {};
25496 maxPos = 0;
25497 lanes = [];
25498};
25499/**
25500 * Draws a text, used for labels of the branches
25501 *
25502 * @param {string} txt The text
25503 * @returns {SVGElement}
25504 */
25505
25506
25507var drawText = function drawText(txt) {
25508 var svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');
25509 var rows = []; // Handling of new lines in the label
25510
25511 if (typeof txt === 'string') {
25512 rows = txt.split(/\\n|\n|<br\s*\/?>/gi);
25513 } else if (Array.isArray(txt)) {
25514 rows = txt;
25515 } else {
25516 rows = [];
25517 }
25518
25519 for (var j = 0; j < rows.length; j++) {
25520 var tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');
25521 tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');
25522 tspan.setAttribute('dy', '1em');
25523 tspan.setAttribute('x', '0');
25524 tspan.setAttribute('class', 'row');
25525 tspan.textContent = rows[j].trim();
25526 svgLabel.appendChild(tspan);
25527 }
25528 /**
25529 * @param svg
25530 * @param selector
25531 */
25532
25533
25534 return svgLabel;
25535};
25536/**
25537 * Draws the commits with its symbol and labels. The function has two modes, one which only
25538 * calculates the positions and one that does the actual drawing. This for a simple way getting the
25539 * vertical layering correct in the graph.
25540 *
25541 * @param {any} svg
25542 * @param {any} commits
25543 * @param {any} modifyGraph
25544 */
25545
25546
25547var drawCommits = function drawCommits(svg, commits, modifyGraph) {
25548 var gitGraphConfig = (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().gitGraph;
25549 var gBullets = svg.append('g').attr('class', 'commit-bullets');
25550 var gLabels = svg.append('g').attr('class', 'commit-labels');
25551 var pos = 0;
25552 var keys = Object.keys(commits);
25553 var sortedKeys = keys.sort(function (a, b) {
25554 return commits[a].seq - commits[b].seq;
25555 });
25556 sortedKeys.forEach(function (key, index) {
25557 var commit = commits[key];
25558 var y = branchPos[commit.branch].pos;
25559 var x = pos + 10; // Don't draw the commits now but calculate the positioning which is used by the branch lines etc.
25560
25561 if (modifyGraph) {
25562 var typeClass;
25563
25564 switch (commit.type) {
25565 case commitType.NORMAL:
25566 typeClass = 'commit-normal';
25567 break;
25568
25569 case commitType.REVERSE:
25570 typeClass = 'commit-reverse';
25571 break;
25572
25573 case commitType.HIGHLIGHT:
25574 typeClass = 'commit-highlight';
25575 break;
25576
25577 case commitType.MERGE:
25578 typeClass = 'commit-merge';
25579 break;
25580
25581 case commitType.CHERRY_PICK:
25582 typeClass = 'commit-cherry-pick';
25583 break;
25584
25585 default:
25586 typeClass = 'commit-normal';
25587 }
25588
25589 if (commit.type === commitType.HIGHLIGHT) {
25590 var circle = gBullets.append('rect');
25591 circle.attr('x', x - 10);
25592 circle.attr('y', y - 10);
25593 circle.attr('height', 20);
25594 circle.attr('width', 20);
25595 circle.attr('class', "commit ".concat(commit.id, " commit-highlight").concat(branchPos[commit.branch].index % THEME_COLOR_LIMIT, " ").concat(typeClass, "-outer"));
25596 gBullets.append('rect').attr('x', x - 6).attr('y', y - 6).attr('height', 12).attr('width', 12).attr('class', "commit ".concat(commit.id, " commit").concat(branchPos[commit.branch].index % THEME_COLOR_LIMIT, " ").concat(typeClass, "-inner"));
25597 } else if (commit.type === commitType.CHERRY_PICK) {
25598 gBullets.append('circle').attr('cx', x).attr('cy', y).attr('r', 10).attr('class', "commit ".concat(commit.id, " ").concat(typeClass));
25599 gBullets.append('circle').attr('cx', x - 3).attr('cy', y + 2).attr('r', 2.75).attr('fill', '#fff').attr('class', "commit ".concat(commit.id, " ").concat(typeClass));
25600 gBullets.append('circle').attr('cx', x + 3).attr('cy', y + 2).attr('r', 2.75).attr('fill', '#fff').attr('class', "commit ".concat(commit.id, " ").concat(typeClass));
25601 gBullets.append('line').attr('x1', x + 3).attr('y1', y + 1).attr('x2', x).attr('y2', y - 5).attr('stroke', '#fff').attr('class', "commit ".concat(commit.id, " ").concat(typeClass));
25602 gBullets.append('line').attr('x1', x - 3).attr('y1', y + 1).attr('x2', x).attr('y2', y - 5).attr('stroke', '#fff').attr('class', "commit ".concat(commit.id, " ").concat(typeClass));
25603 } else {
25604 var _circle = gBullets.append('circle');
25605
25606 _circle.attr('cx', x);
25607
25608 _circle.attr('cy', y);
25609
25610 _circle.attr('r', commit.type === commitType.MERGE ? 9 : 10);
25611
25612 _circle.attr('class', "commit ".concat(commit.id, " commit").concat(branchPos[commit.branch].index % THEME_COLOR_LIMIT));
25613
25614 if (commit.type === commitType.MERGE) {
25615 var circle2 = gBullets.append('circle');
25616 circle2.attr('cx', x);
25617 circle2.attr('cy', y);
25618 circle2.attr('r', 6);
25619 circle2.attr('class', "commit ".concat(typeClass, " ").concat(commit.id, " commit").concat(branchPos[commit.branch].index % THEME_COLOR_LIMIT));
25620 }
25621
25622 if (commit.type === commitType.REVERSE) {
25623 var cross = gBullets.append('path');
25624 cross.attr('d', "M ".concat(x - 5, ",").concat(y - 5, "L").concat(x + 5, ",").concat(y + 5, "M").concat(x - 5, ",").concat(y + 5, "L").concat(x + 5, ",").concat(y - 5)).attr('class', "commit ".concat(typeClass, " ").concat(commit.id, " commit").concat(branchPos[commit.branch].index % THEME_COLOR_LIMIT));
25625 }
25626 }
25627 }
25628
25629 commitPos[commit.id] = {
25630 x: pos + 10,
25631 y: y
25632 }; // The first iteration over the commits are for positioning purposes, this
25633 // is required for drawing the lines. The circles and labels is drawn after the labels
25634 // placing them on top of the lines.
25635
25636 if (modifyGraph) {
25637 var px = 4;
25638 var py = 2; // Draw the commit label
25639
25640 if (commit.type !== commitType.CHERRY_PICK && commit.type !== commitType.MERGE && gitGraphConfig.showCommitLabel) {
25641 var wrapper = gLabels.append('g');
25642 var labelBkg = wrapper.insert('rect').attr('class', 'commit-label-bkg');
25643 var text = wrapper.append('text').attr('x', pos).attr('y', y + 25).attr('class', 'commit-label').text(commit.id);
25644 var bbox = text.node().getBBox(); // Now we have the label, lets position the background
25645
25646 labelBkg.attr('x', pos + 10 - bbox.width / 2 - py).attr('y', y + 13.5).attr('width', bbox.width + 2 * py).attr('height', bbox.height + 2 * py);
25647 text.attr('x', pos + 10 - bbox.width / 2);
25648
25649 if (gitGraphConfig.rotateCommitLabel) {
25650 var r_x = -7.5 - (bbox.width + 10) / 25 * 9.5;
25651 var r_y = 10 + bbox.width / 25 * 8.5;
25652 wrapper.attr('transform', 'translate(' + r_x + ', ' + r_y + ') rotate(' + -45 + ', ' + pos + ', ' + y + ')');
25653 }
25654 }
25655
25656 if (commit.tag) {
25657 var rect = gLabels.insert('polygon');
25658 var hole = gLabels.append('circle');
25659 var tag = gLabels.append('text') // Note that we are delaying setting the x position until we know the width of the text
25660 .attr('y', y - 16).attr('class', 'tag-label').text(commit.tag);
25661 var tagBbox = tag.node().getBBox();
25662 tag.attr('x', pos + 10 - tagBbox.width / 2);
25663 var h2 = tagBbox.height / 2;
25664 var ly = y - 19.2;
25665 rect.attr('class', 'tag-label-bkg').attr('points', "\n ".concat(pos - tagBbox.width / 2 - px / 2, ",").concat(ly + py, "\n ").concat(pos - tagBbox.width / 2 - px / 2, ",").concat(ly - py, "\n ").concat(pos + 10 - tagBbox.width / 2 - px, ",").concat(ly - h2 - py, "\n ").concat(pos + 10 + tagBbox.width / 2 + px, ",").concat(ly - h2 - py, "\n ").concat(pos + 10 + tagBbox.width / 2 + px, ",").concat(ly + h2 + py, "\n ").concat(pos + 10 - tagBbox.width / 2 - px, ",").concat(ly + h2 + py));
25666 hole.attr('cx', pos - tagBbox.width / 2 + px / 2).attr('cy', ly).attr('r', 1.5).attr('class', 'tag-hole');
25667 }
25668 }
25669
25670 pos += 50;
25671
25672 if (pos > maxPos) {
25673 maxPos = pos;
25674 }
25675 });
25676};
25677/**
25678 * Detect if there are other commits between commit1s x-position and commit2s x-position on the same
25679 * branch as commit2.
25680 *
25681 * @param {any} commit1
25682 * @param {any} commit2
25683 * @param allCommits
25684 * @returns
25685 */
25686
25687
25688var hasOverlappingCommits = function hasOverlappingCommits(commit1, commit2, allCommits) {
25689 var commit1Pos = commitPos[commit2.id];
25690 var commit2Pos = commitPos[commit1.id]; // Find commits on the same branch as commit2
25691
25692 var keys = Object.keys(allCommits);
25693 var overlappingComits = keys.filter(function (key) {
25694 return allCommits[key].branch === commit2.branch && allCommits[key].seq > commit1.seq && allCommits[key].seq < commit2.seq;
25695 });
25696 return overlappingComits.length > 0;
25697};
25698/**
25699 * This function find a lane in the y-axis that is not overlapping with any other lanes. This is
25700 * used for drawing the lines between commits.
25701 *
25702 * @param {any} y1
25703 * @param {any} y2
25704 * @param {any} _depth
25705 * @returns
25706 */
25707
25708
25709var findLane = function findLane(y1, y2, _depth) {
25710 var depth = _depth || 0;
25711 var candidate = y1 + Math.abs(y1 - y2) / 2;
25712
25713 if (depth > 5) {
25714 return candidate;
25715 }
25716
25717 var ok = true;
25718
25719 for (var i = 0; i < lanes.length; i++) {
25720 if (Math.abs(lanes[i] - candidate) < 10) {
25721 ok = false;
25722 }
25723 }
25724
25725 if (ok) {
25726 lanes.push(candidate);
25727 return candidate;
25728 }
25729
25730 var diff = Math.abs(y1 - y2);
25731 return findLane(y1, y2 - diff / 5, depth);
25732};
25733/**
25734 * This function draw the lines between the commits. They were arrows initially.
25735 *
25736 * @param {any} svg
25737 * @param {any} commit1
25738 * @param {any} commit2
25739 * @param {any} allCommits
25740 */
25741
25742
25743var drawArrow = function drawArrow(svg, commit1, commit2, allCommits) {
25744 var conf = (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)();
25745 var p1 = commitPos[commit1.id];
25746 var p2 = commitPos[commit2.id];
25747 var overlappingCommits = hasOverlappingCommits(commit1, commit2, allCommits); // log.debug('drawArrow', p1, p2, overlappingCommits, commit1.id, commit2.id);
25748
25749 var url = '';
25750
25751 if (conf.arrowMarkerAbsolute) {
25752 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
25753 url = url.replace(/\(/g, '\\(');
25754 url = url.replace(/\)/g, '\\)');
25755 }
25756
25757 var arc = '';
25758 var arc2 = '';
25759 var radius = 0;
25760 var offset = 0;
25761 var colorClassNum = branchPos[commit2.branch].index;
25762 var lineDef;
25763
25764 if (overlappingCommits) {
25765 arc = 'A 10 10, 0, 0, 0,';
25766 arc2 = 'A 10 10, 0, 0, 1,';
25767 radius = 10;
25768 offset = 10; // Figure out the color of the arrow,arrows going down take the color from the destination branch
25769
25770 colorClassNum = branchPos[commit2.branch].index;
25771 var lineY = p1.y < p2.y ? findLane(p1.y, p2.y) : findLane(p2.y, p1.y);
25772
25773 if (p1.y < p2.y) {
25774 lineDef = "M ".concat(p1.x, " ").concat(p1.y, " L ").concat(p1.x, " ").concat(lineY - radius, " ").concat(arc, " ").concat(p1.x + offset, " ").concat(lineY, " L ").concat(p2.x - radius, " ").concat(lineY, " ").concat(arc2, " ").concat(p2.x, " ").concat(lineY + offset, " L ").concat(p2.x, " ").concat(p2.y);
25775 } else {
25776 lineDef = "M ".concat(p1.x, " ").concat(p1.y, " L ").concat(p1.x, " ").concat(lineY + radius, " ").concat(arc2, " ").concat(p1.x + offset, " ").concat(lineY, " L ").concat(p2.x - radius, " ").concat(lineY, " ").concat(arc, " ").concat(p2.x, " ").concat(lineY - offset, " L ").concat(p2.x, " ").concat(p2.y);
25777 }
25778 } else {
25779 if (p1.y < p2.y) {
25780 arc = 'A 20 20, 0, 0, 0,';
25781 radius = 20;
25782 offset = 20; // Figure out the color of the arrow,arrows going down take the color from the destination branch
25783
25784 colorClassNum = branchPos[commit2.branch].index;
25785 lineDef = "M ".concat(p1.x, " ").concat(p1.y, " L ").concat(p1.x, " ").concat(p2.y - radius, " ").concat(arc, " ").concat(p1.x + offset, " ").concat(p2.y, " L ").concat(p2.x, " ").concat(p2.y);
25786 }
25787
25788 if (p1.y > p2.y) {
25789 arc = 'A 20 20, 0, 0, 0,';
25790 radius = 20;
25791 offset = 20; // Arrows going up take the color from the source branch
25792
25793 colorClassNum = branchPos[commit1.branch].index;
25794 lineDef = "M ".concat(p1.x, " ").concat(p1.y, " L ").concat(p2.x - radius, " ").concat(p1.y, " ").concat(arc, " ").concat(p2.x, " ").concat(p1.y - offset, " L ").concat(p2.x, " ").concat(p2.y);
25795 }
25796
25797 if (p1.y === p2.y) {
25798 colorClassNum = branchPos[commit1.branch].index;
25799 lineDef = "M ".concat(p1.x, " ").concat(p1.y, " L ").concat(p1.x, " ").concat(p2.y - radius, " ").concat(arc, " ").concat(p1.x + offset, " ").concat(p2.y, " L ").concat(p2.x, " ").concat(p2.y);
25800 }
25801 }
25802
25803 var arrow = svg.append('path').attr('d', lineDef).attr('class', 'arrow arrow' + colorClassNum % THEME_COLOR_LIMIT);
25804};
25805
25806var drawArrows = function drawArrows(svg, commits) {
25807 var gArrows = svg.append('g').attr('class', 'commit-arrows');
25808 var pos = 0;
25809 var k = Object.keys(commits);
25810 k.forEach(function (key, index) {
25811 var commit = commits[key];
25812
25813 if (commit.parents && commit.parents.length > 0) {
25814 commit.parents.forEach(function (parent) {
25815 drawArrow(gArrows, commits[parent], commit, commits);
25816 });
25817 }
25818 });
25819};
25820/**
25821 * This function adds the branches and the branches' labels to the svg.
25822 *
25823 * @param svg
25824 * @param commitid
25825 * @param branches
25826 * @param direction
25827 */
25828
25829
25830var drawBranches = function drawBranches(svg, branches) {
25831 var gitGraphConfig = (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().gitGraph;
25832 var g = svg.append('g');
25833 branches.forEach(function (branch, index) {
25834 var adjustIndexForTheme = index % THEME_COLOR_LIMIT;
25835 var pos = branchPos[branch.name].pos;
25836 var line = g.append('line');
25837 line.attr('x1', 0);
25838 line.attr('y1', pos);
25839 line.attr('x2', maxPos);
25840 line.attr('y2', pos);
25841 line.attr('class', 'branch branch' + adjustIndexForTheme);
25842 lanes.push(pos);
25843 var name = branch.name; // Create the actual text element
25844
25845 var labelElement = drawText(name); // Create outer g, edgeLabel, this will be positioned after graph layout
25846
25847 var bkg = g.insert('rect');
25848 var branchLabel = g.insert('g').attr('class', 'branchLabel'); // Create inner g, label, this will be positioned now for centering the text
25849
25850 var label = branchLabel.insert('g').attr('class', 'label branch-label' + adjustIndexForTheme);
25851 label.node().appendChild(labelElement);
25852 var bbox = labelElement.getBBox();
25853 bkg.attr('class', 'branchLabelBkg label' + adjustIndexForTheme).attr('rx', 4).attr('ry', 4).attr('x', -bbox.width - 4 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)).attr('y', -bbox.height / 2 + 8).attr('width', bbox.width + 18).attr('height', bbox.height + 4);
25854 label.attr('transform', 'translate(' + (-bbox.width - 14 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)) + ', ' + (pos - bbox.height / 2 - 1) + ')');
25855 bkg.attr('transform', 'translate(' + -19 + ', ' + (pos - bbox.height / 2) + ')');
25856 });
25857};
25858/**
25859 * @param svg
25860 * @param commit
25861 * @param direction
25862 * @param branchColor
25863 * @param txt
25864 * @param id
25865 * @param ver
25866 * @param diagObj
25867 */
25868
25869
25870var draw = function draw(txt, id, ver, diagObj) {
25871 clear();
25872 var conf = (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)();
25873 var gitGraphConfig = (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().gitGraph; // try {
25874
25875 _logger__WEBPACK_IMPORTED_MODULE_2__.log.debug('in gitgraph renderer', txt + '\n', 'id:', id, ver);
25876 allCommitsDict = diagObj.db.getCommits();
25877 var branches = diagObj.db.getBranchesAsObjArray(); // Position branches vertically
25878
25879 var pos = 0;
25880 branches.forEach(function (branch, index) {
25881 branchPos[branch.name] = {
25882 pos: pos,
25883 index: index
25884 };
25885 pos += 50 + (gitGraphConfig.rotateCommitLabel ? 40 : 0);
25886 });
25887 var diagram = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)("[id=\"".concat(id, "\"]")); // Adds title and description to the flow chart
25888
25889 (0,_accessibility__WEBPACK_IMPORTED_MODULE_3__["default"])(diagObj.db, diagram, id);
25890 drawCommits(diagram, allCommitsDict, false);
25891
25892 if (gitGraphConfig.showBranches) {
25893 drawBranches(diagram, branches);
25894 }
25895
25896 drawArrows(diagram, allCommitsDict);
25897 drawCommits(diagram, allCommitsDict, true);
25898 var padding = gitGraphConfig.diagramPadding;
25899 var svgBounds = diagram.node().getBBox();
25900 var width = svgBounds.width + padding * 2;
25901 var height = svgBounds.height + padding * 2;
25902 (0,_utils__WEBPACK_IMPORTED_MODULE_4__.configureSvgSize)(diagram, height, width, conf.useMaxWidth);
25903 var vBox = "".concat(svgBounds.x - padding - (gitGraphConfig.showBranches && gitGraphConfig.rotateCommitLabel === true ? 30 : 0), " ").concat(svgBounds.y - padding, " ").concat(width, " ").concat(height);
25904 diagram.attr('viewBox', vBox);
25905};
25906/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
25907 draw: draw
25908});
25909
25910/***/ }),
25911
25912/***/ "./src/diagrams/git/styles.js":
25913/*!************************************!*\
25914 !*** ./src/diagrams/git/styles.js ***!
25915 \************************************/
25916/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25917
25918"use strict";
25919__webpack_require__.r(__webpack_exports__);
25920/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25921/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
25922/* harmony export */ });
25923var getStyles = function getStyles(options) {
25924 return "\n .commit-id,\n .commit-msg,\n .branch-label {\n fill: lightgrey;\n color: lightgrey;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n ".concat([0, 1, 2, 3, 4, 5, 6, 7].map(function (i) {
25925 return "\n .branch-label".concat(i, " { fill: ").concat(options['gitBranchLabel' + i], "; }\n .commit").concat(i, " { stroke: ").concat(options['git' + i], "; fill: ").concat(options['git' + i], "; }\n .commit-highlight").concat(i, " { stroke: ").concat(options['gitInv' + i], "; fill: ").concat(options['gitInv' + i], "; }\n .label").concat(i, " { fill: ").concat(options['git' + i], "; }\n .arrow").concat(i, " { stroke: ").concat(options['git' + i], "; }\n ");
25926 }).join('\n'), "\n\n .branch {\n stroke-width: 1;\n stroke: ").concat(options.lineColor, ";\n stroke-dasharray: 2;\n }\n .commit-label { font-size: ").concat(options.commitLabelFontSize, "; fill: ").concat(options.commitLabelColor, ";}\n .commit-label-bkg { font-size: ").concat(options.commitLabelFontSize, "; fill: ").concat(options.commitLabelBackground, "; opacity: 0.5; }\n .tag-label { font-size: ").concat(options.tagLabelFontSize, "; fill: ").concat(options.tagLabelColor, ";}\n .tag-label-bkg { fill: ").concat(options.tagLabelBackground, "; stroke: ").concat(options.tagLabelBorder, "; }\n .tag-hole { fill: ").concat(options.textColor, "; }\n\n .commit-merge {\n stroke: ").concat(options.primaryColor, ";\n fill: ").concat(options.primaryColor, ";\n }\n .commit-reverse {\n stroke: ").concat(options.primaryColor, ";\n fill: ").concat(options.primaryColor, ";\n stroke-width: 3;\n }\n .commit-highlight-outer {\n }\n .commit-highlight-inner {\n stroke: ").concat(options.primaryColor, ";\n fill: ").concat(options.primaryColor, ";\n }\n\n .arrow { stroke-width: 8; stroke-linecap: round; fill: none}\n }\n");
25927};
25928
25929/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getStyles);
25930
25931/***/ }),
25932
25933/***/ "./src/diagrams/info/infoDb.js":
25934/*!*************************************!*\
25935 !*** ./src/diagrams/info/infoDb.js ***!
25936 \*************************************/
25937/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25938
25939"use strict";
25940__webpack_require__.r(__webpack_exports__);
25941/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25942/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
25943/* harmony export */ "getInfo": () => (/* binding */ getInfo),
25944/* harmony export */ "getMessage": () => (/* binding */ getMessage),
25945/* harmony export */ "setInfo": () => (/* binding */ setInfo),
25946/* harmony export */ "setMessage": () => (/* binding */ setMessage)
25947/* harmony export */ });
25948/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
25949/** Created by knut on 15-01-14. */
25950
25951var message = '';
25952var info = false;
25953var setMessage = function setMessage(txt) {
25954 _logger__WEBPACK_IMPORTED_MODULE_0__.log.debug('Setting message to: ' + txt);
25955 message = txt;
25956};
25957var getMessage = function getMessage() {
25958 return message;
25959};
25960var setInfo = function setInfo(inf) {
25961 info = inf;
25962};
25963var getInfo = function getInfo() {
25964 return info;
25965}; // export const parseError = (err, hash) => {
25966// global.mermaidAPI.parseError(err, hash)
25967// }
25968
25969/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
25970 setMessage: setMessage,
25971 getMessage: getMessage,
25972 setInfo: setInfo,
25973 getInfo: getInfo // parseError
25974
25975});
25976
25977/***/ }),
25978
25979/***/ "./src/diagrams/info/infoRenderer.js":
25980/*!*******************************************!*\
25981 !*** ./src/diagrams/info/infoRenderer.js ***!
25982 \*******************************************/
25983/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25984
25985"use strict";
25986__webpack_require__.r(__webpack_exports__);
25987/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25988/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
25989/* harmony export */ "draw": () => (/* binding */ draw)
25990/* harmony export */ });
25991/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
25992/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
25993/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config */ "./src/config.js");
25994/** Created by knut on 14-12-11. */
25995
25996
25997
25998/**
25999 * Draws a an info picture in the tag with id: id based on the graph definition in text.
26000 *
26001 * @param {any} text
26002 * @param {any} id
26003 * @param {any} version
26004 * @param diagObj
26005 */
26006
26007var draw = function draw(text, id, version, diagObj) {
26008 try {
26009 // const parser = infoParser.parser;
26010 // parser.yy = db;
26011 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug('Renering info diagram\n' + text);
26012 var securityLevel = (0,_config__WEBPACK_IMPORTED_MODULE_2__.getConfig)().securityLevel; // Handle root and Document for when rendering in sanbox mode
26013
26014 var sandboxElement;
26015
26016 if (securityLevel === 'sandbox') {
26017 sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('#i' + id);
26018 }
26019
26020 var root = securityLevel === 'sandbox' ? (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('body');
26021 var doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document; // Parse the graph definition
26022 // parser.parse(text);
26023 // log.debug('Parsed info diagram');
26024 // Fetch the default direction, use TD if none was found
26025
26026 var svg = root.select('#' + id);
26027 var g = svg.append('g');
26028 g.append('text') // text label for the x axis
26029 .attr('x', 100).attr('y', 40).attr('class', 'version').attr('font-size', '32px').style('text-anchor', 'middle').text('v ' + version);
26030 svg.attr('height', 100);
26031 svg.attr('width', 400); // svg.attr('viewBox', '0 0 300 150');
26032 } catch (e) {
26033 _logger__WEBPACK_IMPORTED_MODULE_1__.log.error('Error while rendering info diagram');
26034 _logger__WEBPACK_IMPORTED_MODULE_1__.log.error(e.message);
26035 }
26036};
26037/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
26038 draw: draw
26039});
26040
26041/***/ }),
26042
26043/***/ "./src/diagrams/info/styles.js":
26044/*!*************************************!*\
26045 !*** ./src/diagrams/info/styles.js ***!
26046 \*************************************/
26047/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26048
26049"use strict";
26050__webpack_require__.r(__webpack_exports__);
26051/* harmony export */ __webpack_require__.d(__webpack_exports__, {
26052/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
26053/* harmony export */ });
26054var getStyles = function getStyles() {
26055 return "";
26056};
26057
26058/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getStyles);
26059
26060/***/ }),
26061
26062/***/ "./src/diagrams/pie/pieDb.js":
26063/*!***********************************!*\
26064 !*** ./src/diagrams/pie/pieDb.js ***!
26065 \***********************************/
26066/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26067
26068"use strict";
26069__webpack_require__.r(__webpack_exports__);
26070/* harmony export */ __webpack_require__.d(__webpack_exports__, {
26071/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
26072/* harmony export */ "parseDirective": () => (/* binding */ parseDirective)
26073/* harmony export */ });
26074/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
26075/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
26076/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../config */ "./src/config.js");
26077/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
26078/* harmony import */ var _commonDb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../commonDb */ "./src/commonDb.js");
26079
26080
26081
26082
26083
26084var sections = {};
26085var title = '';
26086var description = '';
26087var showData = false;
26088var parseDirective = function parseDirective(statement, context, type) {
26089 _mermaidAPI__WEBPACK_IMPORTED_MODULE_0__["default"].parseDirective(this, statement, context, type);
26090};
26091
26092var addSection = function addSection(id, value) {
26093 id = _common_common__WEBPACK_IMPORTED_MODULE_1__["default"].sanitizeText(id, _config__WEBPACK_IMPORTED_MODULE_2__.getConfig());
26094
26095 if (typeof sections[id] === 'undefined') {
26096 sections[id] = value;
26097 _logger__WEBPACK_IMPORTED_MODULE_3__.log.debug('Added new section :', id);
26098 }
26099};
26100
26101var getSections = function getSections() {
26102 return sections;
26103};
26104
26105var setShowData = function setShowData(toggle) {
26106 showData = toggle;
26107};
26108
26109var getShowData = function getShowData() {
26110 return showData;
26111};
26112
26113var cleanupValue = function cleanupValue(value) {
26114 if (value.substring(0, 1) === ':') {
26115 value = value.substring(1).trim();
26116 return Number(value.trim());
26117 } else {
26118 return Number(value.trim());
26119 }
26120};
26121
26122var clear = function clear() {
26123 sections = {};
26124 title = '';
26125 showData = false;
26126 (0,_commonDb__WEBPACK_IMPORTED_MODULE_4__.clear)();
26127};
26128
26129/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
26130 parseDirective: parseDirective,
26131 getConfig: function getConfig() {
26132 return _config__WEBPACK_IMPORTED_MODULE_2__.getConfig().pie;
26133 },
26134 addSection: addSection,
26135 getSections: getSections,
26136 cleanupValue: cleanupValue,
26137 clear: clear,
26138 setAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_4__.setAccTitle,
26139 getAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_4__.getAccTitle,
26140 setDiagramTitle: _commonDb__WEBPACK_IMPORTED_MODULE_4__.setDiagramTitle,
26141 getDiagramTitle: _commonDb__WEBPACK_IMPORTED_MODULE_4__.getDiagramTitle,
26142 setShowData: setShowData,
26143 getShowData: getShowData,
26144 getAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_4__.getAccDescription,
26145 setAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_4__.setAccDescription
26146});
26147
26148/***/ }),
26149
26150/***/ "./src/diagrams/pie/pieRenderer.js":
26151/*!*****************************************!*\
26152 !*** ./src/diagrams/pie/pieRenderer.js ***!
26153 \*****************************************/
26154/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26155
26156"use strict";
26157__webpack_require__.r(__webpack_exports__);
26158/* harmony export */ __webpack_require__.d(__webpack_exports__, {
26159/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
26160/* harmony export */ "draw": () => (/* binding */ draw)
26161/* harmony export */ });
26162/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
26163/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
26164/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
26165/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ "./src/config.js");
26166/* harmony import */ var _accessibility__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../accessibility */ "./src/accessibility.js");
26167/** Created by AshishJ on 11-09-2019. */
26168
26169
26170
26171
26172
26173var conf = _config__WEBPACK_IMPORTED_MODULE_1__.getConfig();
26174/**
26175 * Draws a Pie Chart with the data given in text.
26176 *
26177 * @param text
26178 * @param id
26179 */
26180
26181var width;
26182var height = 450;
26183var draw = function draw(txt, id, _version, diagObj) {
26184 try {
26185 conf = _config__WEBPACK_IMPORTED_MODULE_1__.getConfig();
26186 _logger__WEBPACK_IMPORTED_MODULE_2__.log.debug('Rendering info diagram\n' + txt);
26187 var securityLevel = _config__WEBPACK_IMPORTED_MODULE_1__.getConfig().securityLevel; // Handle root and Document for when rendering in sanbox mode
26188
26189 var sandboxElement;
26190
26191 if (securityLevel === 'sandbox') {
26192 sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('#i' + id);
26193 }
26194
26195 var root = securityLevel === 'sandbox' ? (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('body');
26196 var doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document; // Parse the Pie Chart definition
26197
26198 diagObj.db.clear();
26199 diagObj.parser.parse(txt);
26200 _logger__WEBPACK_IMPORTED_MODULE_2__.log.debug('Parsed info diagram');
26201 var elem = doc.getElementById(id);
26202 width = elem.parentElement.offsetWidth;
26203
26204 if (typeof width === 'undefined') {
26205 width = 1200;
26206 }
26207
26208 if (typeof conf.useWidth !== 'undefined') {
26209 width = conf.useWidth;
26210 }
26211
26212 if (typeof conf.pie.useWidth !== 'undefined') {
26213 width = conf.pie.useWidth;
26214 }
26215
26216 var diagram = root.select('#' + id);
26217 (0,_utils__WEBPACK_IMPORTED_MODULE_3__.configureSvgSize)(diagram, height, width, conf.pie.useMaxWidth);
26218 (0,_accessibility__WEBPACK_IMPORTED_MODULE_4__["default"])(diagObj.db, diagram, id); // Set viewBox
26219
26220 elem.setAttribute('viewBox', '0 0 ' + width + ' ' + height); // Fetch the default direction, use TD if none was found
26221
26222 var margin = 40;
26223 var legendRectSize = 18;
26224 var legendSpacing = 4;
26225 var radius = Math.min(width, height) / 2 - margin;
26226 var svg = diagram.append('g').attr('transform', 'translate(' + width / 2 + ',' + height / 2 + ')');
26227 var data = diagObj.db.getSections();
26228 var sum = 0;
26229 Object.keys(data).forEach(function (key) {
26230 sum += data[key];
26231 });
26232 var themeVariables = conf.themeVariables;
26233 var myGeneratedColors = [themeVariables.pie1, themeVariables.pie2, themeVariables.pie3, themeVariables.pie4, themeVariables.pie5, themeVariables.pie6, themeVariables.pie7, themeVariables.pie8, themeVariables.pie9, themeVariables.pie10, themeVariables.pie11, themeVariables.pie12]; // Set the color scale
26234
26235 var color = (0,d3__WEBPACK_IMPORTED_MODULE_0__.scaleOrdinal)().range(myGeneratedColors); // Compute the position of each group on the pie:
26236
26237 var pie = (0,d3__WEBPACK_IMPORTED_MODULE_0__.pie)().value(function (d) {
26238 return d[1];
26239 });
26240 var dataReady = pie(Object.entries(data)); // Shape helper to build arcs:
26241
26242 var arcGenerator = (0,d3__WEBPACK_IMPORTED_MODULE_0__.arc)().innerRadius(0).outerRadius(radius); // Build the pie chart: each part of the pie is a path that we build using the arc function.
26243
26244 svg.selectAll('mySlices').data(dataReady).enter().append('path').attr('d', arcGenerator).attr('fill', function (d) {
26245 return color(d.data[0]);
26246 }).attr('class', 'pieCircle'); // Now add the percentage.
26247 // Use the centroid method to get the best coordinates.
26248
26249 svg.selectAll('mySlices').data(dataReady).enter().append('text').text(function (d) {
26250 return (d.data[1] / sum * 100).toFixed(0) + '%';
26251 }).attr('transform', function (d) {
26252 return 'translate(' + arcGenerator.centroid(d) + ')';
26253 }).style('text-anchor', 'middle').attr('class', 'slice');
26254 svg.append('text').text(diagObj.db.getDiagramTitle()).attr('x', 0).attr('y', -(height - 50) / 2).attr('class', 'pieTitleText'); // Add the legends/annotations for each section
26255
26256 var legend = svg.selectAll('.legend').data(color.domain()).enter().append('g').attr('class', 'legend').attr('transform', function (d, i) {
26257 var height = legendRectSize + legendSpacing;
26258 var offset = height * color.domain().length / 2;
26259 var horz = 12 * legendRectSize;
26260 var vert = i * height - offset;
26261 return 'translate(' + horz + ',' + vert + ')';
26262 });
26263 legend.append('rect').attr('width', legendRectSize).attr('height', legendRectSize).style('fill', color).style('stroke', color);
26264 legend.data(dataReady).append('text').attr('x', legendRectSize + legendSpacing).attr('y', legendRectSize - legendSpacing).text(function (d) {
26265 if (diagObj.db.getShowData() || conf.showData || conf.pie.showData) {
26266 return d.data[0] + ' [' + d.data[1] + ']';
26267 } else {
26268 return d.data[0];
26269 }
26270 });
26271 } catch (e) {
26272 _logger__WEBPACK_IMPORTED_MODULE_2__.log.error('Error while rendering info diagram');
26273 _logger__WEBPACK_IMPORTED_MODULE_2__.log.error(e);
26274 }
26275};
26276/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
26277 draw: draw
26278});
26279
26280/***/ }),
26281
26282/***/ "./src/diagrams/pie/styles.js":
26283/*!************************************!*\
26284 !*** ./src/diagrams/pie/styles.js ***!
26285 \************************************/
26286/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26287
26288"use strict";
26289__webpack_require__.r(__webpack_exports__);
26290/* harmony export */ __webpack_require__.d(__webpack_exports__, {
26291/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
26292/* harmony export */ });
26293var getStyles = function getStyles(options) {
26294 return "\n .pieCircle{\n stroke: ".concat(options.pieStrokeColor, ";\n stroke-width : ").concat(options.pieStrokeWidth, ";\n opacity : ").concat(options.pieOpacity, ";\n }\n .pieTitleText {\n text-anchor: middle;\n font-size: ").concat(options.pieTitleTextSize, ";\n fill: ").concat(options.pieTitleTextColor, ";\n font-family: ").concat(options.fontFamily, ";\n }\n .slice {\n font-family: ").concat(options.fontFamily, ";\n fill: ").concat(options.pieSectionTextColor, ";\n font-size:").concat(options.pieSectionTextSize, ";\n // fill: white;\n }\n .legend text {\n fill: ").concat(options.pieLegendTextColor, ";\n font-family: ").concat(options.fontFamily, ";\n font-size: ").concat(options.pieLegendTextSize, ";\n }\n");
26295};
26296
26297/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getStyles);
26298
26299/***/ }),
26300
26301/***/ "./src/diagrams/requirement/requirementDb.js":
26302/*!***************************************************!*\
26303 !*** ./src/diagrams/requirement/requirementDb.js ***!
26304 \***************************************************/
26305/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26306
26307"use strict";
26308__webpack_require__.r(__webpack_exports__);
26309/* harmony export */ __webpack_require__.d(__webpack_exports__, {
26310/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
26311/* harmony export */ "parseDirective": () => (/* binding */ parseDirective)
26312/* harmony export */ });
26313/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ "./src/config.js");
26314/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
26315/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
26316/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
26317/* harmony import */ var _commonDb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../commonDb */ "./src/commonDb.js");
26318
26319
26320
26321
26322
26323var relations = [];
26324var latestRequirement = {};
26325var requirements = {};
26326var latestElement = {};
26327var elements = {};
26328var title = '';
26329var accDescription = '';
26330
26331var sanitizeText = function sanitizeText(txt) {
26332 return _common_common__WEBPACK_IMPORTED_MODULE_0__["default"].sanitizeText(txt, _config__WEBPACK_IMPORTED_MODULE_1__.getConfig());
26333};
26334
26335var RequirementType = {
26336 REQUIREMENT: 'Requirement',
26337 FUNCTIONAL_REQUIREMENT: 'Functional Requirement',
26338 INTERFACE_REQUIREMENT: 'Interface Requirement',
26339 PERFORMANCE_REQUIREMENT: 'Performance Requirement',
26340 PHYSICAL_REQUIREMENT: 'Physical Requirement',
26341 DESIGN_CONSTRAINT: 'Design Constraint'
26342};
26343var RiskLevel = {
26344 LOW_RISK: 'Low',
26345 MED_RISK: 'Medium',
26346 HIGH_RISK: 'High'
26347};
26348var VerifyType = {
26349 VERIFY_ANALYSIS: 'Analysis',
26350 VERIFY_DEMONSTRATION: 'Demonstration',
26351 VERIFY_INSPECTION: 'Inspection',
26352 VERIFY_TEST: 'Test'
26353};
26354var Relationships = {
26355 CONTAINS: 'contains',
26356 COPIES: 'copies',
26357 DERIVES: 'derives',
26358 SATISFIES: 'satisfies',
26359 VERIFIES: 'verifies',
26360 REFINES: 'refines',
26361 TRACES: 'traces'
26362};
26363var parseDirective = function parseDirective(statement, context, type) {
26364 _mermaidAPI__WEBPACK_IMPORTED_MODULE_2__["default"].parseDirective(this, statement, context, type);
26365};
26366
26367var addRequirement = function addRequirement(name, type) {
26368 if (typeof requirements[name] === 'undefined') {
26369 requirements[name] = {
26370 name: name,
26371 type: type,
26372 id: latestRequirement.id,
26373 text: latestRequirement.text,
26374 risk: latestRequirement.risk,
26375 verifyMethod: latestRequirement.verifyMethod
26376 };
26377 }
26378
26379 latestRequirement = {};
26380 return requirements[name];
26381};
26382
26383var getRequirements = function getRequirements() {
26384 return requirements;
26385};
26386
26387var setNewReqId = function setNewReqId(id) {
26388 if (typeof latestRequirement != 'undefined') {
26389 latestRequirement.id = id;
26390 }
26391};
26392
26393var setNewReqText = function setNewReqText(text) {
26394 if (typeof latestRequirement != 'undefined') {
26395 latestRequirement.text = text;
26396 }
26397};
26398
26399var setNewReqRisk = function setNewReqRisk(risk) {
26400 if (typeof latestRequirement != 'undefined') {
26401 latestRequirement.risk = risk;
26402 }
26403};
26404
26405var setNewReqVerifyMethod = function setNewReqVerifyMethod(verifyMethod) {
26406 if (typeof latestRequirement != 'undefined') {
26407 latestRequirement.verifyMethod = verifyMethod;
26408 }
26409};
26410
26411var addElement = function addElement(name) {
26412 if (typeof elements[name] === 'undefined') {
26413 elements[name] = {
26414 name: name,
26415 type: latestElement.type,
26416 docRef: latestElement.docRef
26417 };
26418 _logger__WEBPACK_IMPORTED_MODULE_3__.log.info('Added new requirement: ', name);
26419 }
26420
26421 latestElement = {};
26422 return elements[name];
26423};
26424
26425var getElements = function getElements() {
26426 return elements;
26427};
26428
26429var setNewElementType = function setNewElementType(type) {
26430 if (typeof latestElement != 'undefined') {
26431 latestElement.type = type;
26432 }
26433};
26434
26435var setNewElementDocRef = function setNewElementDocRef(docRef) {
26436 if (typeof latestElement != 'undefined') {
26437 latestElement.docRef = docRef;
26438 }
26439};
26440
26441var addRelationship = function addRelationship(type, src, dst) {
26442 relations.push({
26443 type: type,
26444 src: src,
26445 dst: dst
26446 });
26447};
26448
26449var getRelationships = function getRelationships() {
26450 return relations;
26451};
26452
26453var clear = function clear() {
26454 relations = [];
26455 latestRequirement = {};
26456 requirements = {};
26457 latestElement = {};
26458 elements = {};
26459 (0,_commonDb__WEBPACK_IMPORTED_MODULE_4__.clear)();
26460};
26461
26462/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
26463 RequirementType: RequirementType,
26464 RiskLevel: RiskLevel,
26465 VerifyType: VerifyType,
26466 Relationships: Relationships,
26467 parseDirective: parseDirective,
26468 getConfig: function getConfig() {
26469 return _config__WEBPACK_IMPORTED_MODULE_1__.getConfig().req;
26470 },
26471 addRequirement: addRequirement,
26472 getRequirements: getRequirements,
26473 setNewReqId: setNewReqId,
26474 setNewReqText: setNewReqText,
26475 setNewReqRisk: setNewReqRisk,
26476 setNewReqVerifyMethod: setNewReqVerifyMethod,
26477 setAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_4__.setAccTitle,
26478 getAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_4__.getAccTitle,
26479 setAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_4__.setAccDescription,
26480 getAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_4__.getAccDescription,
26481 addElement: addElement,
26482 getElements: getElements,
26483 setNewElementType: setNewElementType,
26484 setNewElementDocRef: setNewElementDocRef,
26485 addRelationship: addRelationship,
26486 getRelationships: getRelationships,
26487 clear: clear
26488});
26489
26490/***/ }),
26491
26492/***/ "./src/diagrams/requirement/requirementMarkers.js":
26493/*!********************************************************!*\
26494 !*** ./src/diagrams/requirement/requirementMarkers.js ***!
26495 \********************************************************/
26496/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26497
26498"use strict";
26499__webpack_require__.r(__webpack_exports__);
26500/* harmony export */ __webpack_require__.d(__webpack_exports__, {
26501/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
26502/* harmony export */ });
26503var ReqMarkers = {
26504 CONTAINS: 'contains',
26505 ARROW: 'arrow'
26506};
26507
26508var insertLineEndings = function insertLineEndings(parentNode, conf) {
26509 var containsNode = parentNode.append('defs').append('marker').attr('id', ReqMarkers.CONTAINS + '_line_ending').attr('refX', 0).attr('refY', conf.line_height / 2).attr('markerWidth', conf.line_height).attr('markerHeight', conf.line_height).attr('orient', 'auto').append('g');
26510 containsNode.append('circle').attr('cx', conf.line_height / 2).attr('cy', conf.line_height / 2).attr('r', conf.line_height / 2) // .attr('stroke', conf.rect_border_color)
26511 // .attr('stroke-width', 1)
26512 .attr('fill', 'none');
26513 containsNode.append('line').attr('x1', 0).attr('x2', conf.line_height).attr('y1', conf.line_height / 2).attr('y2', conf.line_height / 2) // .attr('stroke', conf.rect_border_color)
26514 .attr('stroke-width', 1);
26515 containsNode.append('line').attr('y1', 0).attr('y2', conf.line_height).attr('x1', conf.line_height / 2).attr('x2', conf.line_height / 2) // .attr('stroke', conf.rect_border_color)
26516 .attr('stroke-width', 1);
26517 parentNode.append('defs').append('marker').attr('id', ReqMarkers.ARROW + '_line_ending').attr('refX', conf.line_height).attr('refY', 0.5 * conf.line_height).attr('markerWidth', conf.line_height).attr('markerHeight', conf.line_height).attr('orient', 'auto').append('path').attr('d', "M0,0\n L".concat(conf.line_height, ",").concat(conf.line_height / 2, "\n M").concat(conf.line_height, ",").concat(conf.line_height / 2, "\n L0,").concat(conf.line_height)).attr('stroke-width', 1); // .attr('stroke', conf.rect_border_color);
26518};
26519
26520/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
26521 ReqMarkers: ReqMarkers,
26522 insertLineEndings: insertLineEndings
26523});
26524
26525/***/ }),
26526
26527/***/ "./src/diagrams/requirement/requirementRenderer.js":
26528/*!*********************************************************!*\
26529 !*** ./src/diagrams/requirement/requirementRenderer.js ***!
26530 \*********************************************************/
26531/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26532
26533"use strict";
26534__webpack_require__.r(__webpack_exports__);
26535/* harmony export */ __webpack_require__.d(__webpack_exports__, {
26536/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
26537/* harmony export */ "draw": () => (/* binding */ draw),
26538/* harmony export */ "drawElements": () => (/* binding */ drawElements),
26539/* harmony export */ "drawReqs": () => (/* binding */ drawReqs)
26540/* harmony export */ });
26541/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
26542/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dagre */ "./node_modules/dagre/index.js");
26543/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dagre__WEBPACK_IMPORTED_MODULE_1__);
26544/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
26545/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_2__);
26546/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
26547/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
26548/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
26549/* harmony import */ var _requirementMarkers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./requirementMarkers */ "./src/diagrams/requirement/requirementMarkers.js");
26550/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../config */ "./src/config.js");
26551/* harmony import */ var _accessibility__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../accessibility */ "./src/accessibility.js");
26552
26553
26554
26555
26556
26557
26558
26559
26560
26561var conf = {};
26562var relCnt = 0;
26563
26564var newRectNode = function newRectNode(parentNode, id) {
26565 return parentNode.insert('rect', '#' + id).attr('class', 'req reqBox').attr('x', 0).attr('y', 0).attr('width', conf.rect_min_width + 'px').attr('height', conf.rect_min_height + 'px');
26566};
26567
26568var newTitleNode = function newTitleNode(parentNode, id, txts) {
26569 var x = conf.rect_min_width / 2;
26570 var title = parentNode.append('text').attr('class', 'req reqLabel reqTitle').attr('id', id).attr('x', x).attr('y', conf.rect_padding).attr('dominant-baseline', 'hanging'); // .attr(
26571 // 'style',
26572 // 'font-family: ' + configApi.getConfig().fontFamily + '; font-size: ' + conf.fontSize + 'px'
26573 // )
26574
26575 var i = 0;
26576 txts.forEach(function (textStr) {
26577 if (i == 0) {
26578 title.append('tspan').attr('text-anchor', 'middle').attr('x', conf.rect_min_width / 2).attr('dy', 0).text(textStr);
26579 } else {
26580 title.append('tspan').attr('text-anchor', 'middle').attr('x', conf.rect_min_width / 2).attr('dy', conf.line_height * 0.75).text(textStr);
26581 }
26582
26583 i++;
26584 });
26585 var yPadding = 1.5 * conf.rect_padding;
26586 var linePadding = i * conf.line_height * 0.75;
26587 var totalY = yPadding + linePadding;
26588 parentNode.append('line').attr('class', 'req-title-line').attr('x1', '0').attr('x2', conf.rect_min_width).attr('y1', totalY).attr('y2', totalY);
26589 return {
26590 titleNode: title,
26591 y: totalY
26592 };
26593};
26594
26595var newBodyNode = function newBodyNode(parentNode, id, txts, yStart) {
26596 var body = parentNode.append('text').attr('class', 'req reqLabel').attr('id', id).attr('x', conf.rect_padding).attr('y', yStart).attr('dominant-baseline', 'hanging'); // .attr(
26597 // 'style',
26598 // 'font-family: ' + configApi.getConfig().fontFamily + '; font-size: ' + conf.fontSize + 'px'
26599 // );
26600
26601 var currentRow = 0;
26602 var charLimit = 30;
26603 var wrappedTxts = [];
26604 txts.forEach(function (textStr) {
26605 var currentTextLen = textStr.length;
26606
26607 while (currentTextLen > charLimit && currentRow < 3) {
26608 var firstPart = textStr.substring(0, charLimit);
26609 textStr = textStr.substring(charLimit, textStr.length);
26610 currentTextLen = textStr.length;
26611 wrappedTxts[wrappedTxts.length] = firstPart;
26612 currentRow++;
26613 }
26614
26615 if (currentRow == 3) {
26616 var lastStr = wrappedTxts[wrappedTxts.length - 1];
26617 wrappedTxts[wrappedTxts.length - 1] = lastStr.substring(0, lastStr.length - 4) + '...';
26618 } else {
26619 wrappedTxts[wrappedTxts.length] = textStr;
26620 }
26621
26622 currentRow = 0;
26623 });
26624 wrappedTxts.forEach(function (textStr) {
26625 body.append('tspan').attr('x', conf.rect_padding).attr('dy', conf.line_height).text(textStr);
26626 });
26627 return body;
26628};
26629
26630var addEdgeLabel = function addEdgeLabel(parentNode, svgPath, conf, txt) {
26631 // Find the half-way point
26632 var len = svgPath.node().getTotalLength();
26633 var labelPoint = svgPath.node().getPointAtLength(len * 0.5); // Append a text node containing the label
26634
26635 var labelId = 'rel' + relCnt;
26636 relCnt++;
26637 var labelNode = parentNode.append('text').attr('class', 'req relationshipLabel').attr('id', labelId).attr('x', labelPoint.x).attr('y', labelPoint.y).attr('text-anchor', 'middle').attr('dominant-baseline', 'middle') // .attr('style', 'font-family: ' + conf.fontFamily + '; font-size: ' + conf.fontSize + 'px')
26638 .text(txt); // Figure out how big the opaque 'container' rectangle needs to be
26639
26640 var labelBBox = labelNode.node().getBBox(); // Insert the opaque rectangle before the text label
26641
26642 parentNode.insert('rect', '#' + labelId).attr('class', 'req reqLabelBox').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%');
26643};
26644
26645var drawRelationshipFromLayout = function drawRelationshipFromLayout(svg, rel, g, insert, diagObj) {
26646 // Find the edge relating to this relationship
26647 var edge = g.edge(elementString(rel.src), elementString(rel.dst)); // Get a function that will generate the line path
26648
26649 var lineFunction = (0,d3__WEBPACK_IMPORTED_MODULE_0__.line)().x(function (d) {
26650 return d.x;
26651 }).y(function (d) {
26652 return d.y;
26653 }); // Insert the line at the right place
26654
26655 var svgPath = svg.insert('path', '#' + insert).attr('class', 'er relationshipLine').attr('d', lineFunction(edge.points)).attr('fill', 'none');
26656
26657 if (rel.type == diagObj.db.Relationships.CONTAINS) {
26658 svgPath.attr('marker-start', 'url(' + _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].getUrl(conf.arrowMarkerAbsolute) + '#' + rel.type + '_line_ending' + ')');
26659 } else {
26660 svgPath.attr('stroke-dasharray', '10,7');
26661 svgPath.attr('marker-end', 'url(' + _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].getUrl(conf.arrowMarkerAbsolute) + '#' + _requirementMarkers__WEBPACK_IMPORTED_MODULE_4__["default"].ReqMarkers.ARROW + '_line_ending' + ')');
26662 }
26663
26664 addEdgeLabel(svg, svgPath, conf, "<<".concat(rel.type, ">>"));
26665 return;
26666};
26667
26668var drawReqs = function drawReqs(reqs, graph, svgNode) {
26669 Object.keys(reqs).forEach(function (reqName) {
26670 var req = reqs[reqName];
26671 reqName = elementString(reqName);
26672 _logger__WEBPACK_IMPORTED_MODULE_5__.log.info('Added new requirement: ', reqName);
26673 var groupNode = svgNode.append('g').attr('id', reqName);
26674 var textId = 'req-' + reqName;
26675 var rectNode = newRectNode(groupNode, textId);
26676 var nodes = [];
26677 var titleNodeInfo = newTitleNode(groupNode, reqName + '_title', ["<<".concat(req.type, ">>"), "".concat(req.name)]);
26678 nodes.push(titleNodeInfo.titleNode);
26679 var bodyNode = newBodyNode(groupNode, reqName + '_body', ["Id: ".concat(req.id), "Text: ".concat(req.text), "Risk: ".concat(req.risk), "Verification: ".concat(req.verifyMethod)], titleNodeInfo.y);
26680 nodes.push(bodyNode);
26681 var rectBBox = rectNode.node().getBBox(); // Add the entity to the graph
26682
26683 graph.setNode(reqName, {
26684 width: rectBBox.width,
26685 height: rectBBox.height,
26686 shape: 'rect',
26687 id: reqName
26688 });
26689 });
26690};
26691var drawElements = function drawElements(els, graph, svgNode) {
26692 Object.keys(els).forEach(function (elName) {
26693 var el = els[elName];
26694 var id = elementString(elName);
26695 var groupNode = svgNode.append('g').attr('id', id);
26696 var textId = 'element-' + id;
26697 var rectNode = newRectNode(groupNode, textId);
26698 var nodes = [];
26699 var titleNodeInfo = newTitleNode(groupNode, textId + '_title', ["<<Element>>", "".concat(elName)]);
26700 nodes.push(titleNodeInfo.titleNode);
26701 var bodyNode = newBodyNode(groupNode, textId + '_body', ["Type: ".concat(el.type || 'Not Specified'), "Doc Ref: ".concat(el.docRef || 'None')], titleNodeInfo.y);
26702 nodes.push(bodyNode);
26703 var rectBBox = rectNode.node().getBBox(); // Add the entity to the graph
26704
26705 graph.setNode(id, {
26706 width: rectBBox.width,
26707 height: rectBBox.height,
26708 shape: 'rect',
26709 id: id
26710 });
26711 });
26712};
26713
26714var addRelationships = function addRelationships(relationships, g) {
26715 relationships.forEach(function (r) {
26716 var src = elementString(r.src);
26717 var dst = elementString(r.dst);
26718 g.setEdge(src, dst, {
26719 relationship: r
26720 });
26721 });
26722 return relationships;
26723};
26724
26725var adjustEntities = function adjustEntities(svgNode, graph) {
26726 graph.nodes().forEach(function (v) {
26727 if (typeof v !== 'undefined' && typeof graph.node(v) !== 'undefined') {
26728 svgNode.select('#' + v);
26729 svgNode.select('#' + v).attr('transform', 'translate(' + (graph.node(v).x - graph.node(v).width / 2) + ',' + (graph.node(v).y - graph.node(v).height / 2) + ' )');
26730 }
26731 });
26732 return;
26733};
26734
26735var elementString = function elementString(str) {
26736 return str.replace(/\s/g, '').replace(/\./g, '_');
26737};
26738
26739var draw = function draw(text, id, _version, diagObj) {
26740 conf = (0,_config__WEBPACK_IMPORTED_MODULE_6__.getConfig)().requirement;
26741 diagObj.db.clear();
26742 diagObj.parser.parse(text);
26743 var securityLevel = conf.securityLevel; // Handle root and Document for when rendering in sanbox mode
26744
26745 var sandboxElement;
26746
26747 if (securityLevel === 'sandbox') {
26748 sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('#i' + id);
26749 }
26750
26751 var root = securityLevel === 'sandbox' ? (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('body');
26752 var doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document;
26753 var svg = root.select("[id='".concat(id, "']"));
26754 _requirementMarkers__WEBPACK_IMPORTED_MODULE_4__["default"].insertLineEndings(svg, conf);
26755 var g = new (graphlib__WEBPACK_IMPORTED_MODULE_2___default().Graph)({
26756 multigraph: false,
26757 compound: false,
26758 directed: true
26759 }).setGraph({
26760 rankdir: conf.layoutDirection,
26761 marginx: 20,
26762 marginy: 20,
26763 nodesep: 100,
26764 edgesep: 100,
26765 ranksep: 100
26766 }).setDefaultEdgeLabel(function () {
26767 return {};
26768 });
26769 var requirements = diagObj.db.getRequirements();
26770 var elements = diagObj.db.getElements();
26771 var relationships = diagObj.db.getRelationships();
26772 drawReqs(requirements, g, svg);
26773 drawElements(elements, g, svg);
26774 addRelationships(relationships, g);
26775 dagre__WEBPACK_IMPORTED_MODULE_1___default().layout(g);
26776 adjustEntities(svg, g);
26777 relationships.forEach(function (rel) {
26778 drawRelationshipFromLayout(svg, rel, g, id, diagObj);
26779 });
26780 var padding = conf.rect_padding;
26781 var svgBounds = svg.node().getBBox();
26782 var width = svgBounds.width + padding * 2;
26783 var height = svgBounds.height + padding * 2;
26784 (0,_utils__WEBPACK_IMPORTED_MODULE_7__.configureSvgSize)(svg, height, width, conf.useMaxWidth);
26785 svg.attr('viewBox', "".concat(svgBounds.x - padding, " ").concat(svgBounds.y - padding, " ").concat(width, " ").concat(height)); // Adds title and description to the requirements diagram
26786
26787 (0,_accessibility__WEBPACK_IMPORTED_MODULE_8__["default"])(diagObj.db, svg, id);
26788};
26789/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
26790 draw: draw
26791});
26792
26793/***/ }),
26794
26795/***/ "./src/diagrams/requirement/styles.js":
26796/*!********************************************!*\
26797 !*** ./src/diagrams/requirement/styles.js ***!
26798 \********************************************/
26799/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26800
26801"use strict";
26802__webpack_require__.r(__webpack_exports__);
26803/* harmony export */ __webpack_require__.d(__webpack_exports__, {
26804/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
26805/* harmony export */ });
26806var getStyles = function getStyles(options) {
26807 return "\n\n marker {\n fill: ".concat(options.relationColor, ";\n stroke: ").concat(options.relationColor, ";\n }\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 .reqBox {\n fill: ").concat(options.requirementBackground, ";\n fill-opacity: 100%;\n stroke: ").concat(options.requirementBorderColor, ";\n stroke-width: ").concat(options.requirementBorderSize, ";\n }\n \n .reqTitle, .reqLabel{\n fill: ").concat(options.requirementTextColor, ";\n }\n .reqLabelBox {\n fill: ").concat(options.relationLabelBackground, ";\n fill-opacity: 100%;\n }\n\n .req-title-line {\n stroke: ").concat(options.requirementBorderColor, ";\n stroke-width: ").concat(options.requirementBorderSize, ";\n }\n .relationshipLine {\n stroke: ").concat(options.relationColor, ";\n stroke-width: 1;\n }\n .relationshipLabel {\n fill: ").concat(options.relationLabelColor, ";\n }\n\n");
26808}; // fill', conf.rect_fill)
26809
26810
26811/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getStyles);
26812
26813/***/ }),
26814
26815/***/ "./src/diagrams/sequence/sequenceDb.js":
26816/*!*********************************************!*\
26817 !*** ./src/diagrams/sequence/sequenceDb.js ***!
26818 \*********************************************/
26819/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26820
26821"use strict";
26822__webpack_require__.r(__webpack_exports__);
26823/* harmony export */ __webpack_require__.d(__webpack_exports__, {
26824/* harmony export */ "ARROWTYPE": () => (/* binding */ ARROWTYPE),
26825/* harmony export */ "LINETYPE": () => (/* binding */ LINETYPE),
26826/* harmony export */ "PLACEMENT": () => (/* binding */ PLACEMENT),
26827/* harmony export */ "addALink": () => (/* binding */ addALink),
26828/* harmony export */ "addActor": () => (/* binding */ addActor),
26829/* harmony export */ "addDetails": () => (/* binding */ addDetails),
26830/* harmony export */ "addLinks": () => (/* binding */ addLinks),
26831/* harmony export */ "addMessage": () => (/* binding */ addMessage),
26832/* harmony export */ "addNote": () => (/* binding */ addNote),
26833/* harmony export */ "addProperties": () => (/* binding */ addProperties),
26834/* harmony export */ "addSignal": () => (/* binding */ addSignal),
26835/* harmony export */ "apply": () => (/* binding */ apply),
26836/* harmony export */ "autoWrap": () => (/* binding */ autoWrap),
26837/* harmony export */ "clear": () => (/* binding */ clear),
26838/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
26839/* harmony export */ "disableSequenceNumbers": () => (/* binding */ disableSequenceNumbers),
26840/* harmony export */ "enableSequenceNumbers": () => (/* binding */ enableSequenceNumbers),
26841/* harmony export */ "getActor": () => (/* binding */ getActor),
26842/* harmony export */ "getActorKeys": () => (/* binding */ getActorKeys),
26843/* harmony export */ "getActorProperty": () => (/* binding */ getActorProperty),
26844/* harmony export */ "getActors": () => (/* binding */ getActors),
26845/* harmony export */ "getMessages": () => (/* binding */ getMessages),
26846/* harmony export */ "parseDirective": () => (/* binding */ parseDirective),
26847/* harmony export */ "parseMessage": () => (/* binding */ parseMessage),
26848/* harmony export */ "setWrap": () => (/* binding */ setWrap),
26849/* harmony export */ "showSequenceNumbers": () => (/* binding */ showSequenceNumbers)
26850/* harmony export */ });
26851/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
26852/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ "./src/config.js");
26853/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
26854/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
26855/* harmony import */ var _commonDb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../commonDb */ "./src/commonDb.js");
26856
26857
26858
26859
26860
26861var prevActor = undefined;
26862var actors = {};
26863var messages = [];
26864var notes = [];
26865var diagramTitle = '';
26866var description = '';
26867var sequenceNumbersEnabled = false;
26868var wrapEnabled;
26869var parseDirective = function parseDirective(statement, context, type) {
26870 _mermaidAPI__WEBPACK_IMPORTED_MODULE_0__["default"].parseDirective(this, statement, context, type);
26871};
26872var addActor = function addActor(id, name, description, type) {
26873 // Don't allow description nulling
26874 var old = actors[id];
26875 if (old && name === old.name && description == null) return; // Don't allow null descriptions, either
26876
26877 if (description == null || description.text == null) {
26878 description = {
26879 text: name,
26880 wrap: null,
26881 type: type
26882 };
26883 }
26884
26885 if (type == null || description.text == null) {
26886 description = {
26887 text: name,
26888 wrap: null,
26889 type: type
26890 };
26891 }
26892
26893 actors[id] = {
26894 name: name,
26895 description: description.text,
26896 wrap: description.wrap === undefined && autoWrap() || !!description.wrap,
26897 prevActor: prevActor,
26898 links: {},
26899 properties: {},
26900 actorCnt: null,
26901 rectData: null,
26902 type: type || 'participant'
26903 };
26904
26905 if (prevActor && actors[prevActor]) {
26906 actors[prevActor].nextActor = id;
26907 }
26908
26909 prevActor = id;
26910};
26911
26912var activationCount = function activationCount(part) {
26913 var i;
26914 var count = 0;
26915
26916 for (i = 0; i < messages.length; i++) {
26917 if (messages[i].type === LINETYPE.ACTIVE_START) {
26918 if (messages[i].from.actor === part) {
26919 count++;
26920 }
26921 }
26922
26923 if (messages[i].type === LINETYPE.ACTIVE_END) {
26924 if (messages[i].from.actor === part) {
26925 count--;
26926 }
26927 }
26928 }
26929
26930 return count;
26931};
26932
26933var addMessage = function addMessage(idFrom, idTo, message, answer) {
26934 messages.push({
26935 from: idFrom,
26936 to: idTo,
26937 message: message.text,
26938 wrap: message.wrap === undefined && autoWrap() || !!message.wrap,
26939 answer: answer
26940 });
26941};
26942var addSignal = function addSignal(idFrom, idTo) {
26943 var message = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
26944 text: undefined,
26945 wrap: undefined
26946 };
26947 var messageType = arguments.length > 3 ? arguments[3] : undefined;
26948
26949 if (messageType === LINETYPE.ACTIVE_END) {
26950 var cnt = activationCount(idFrom.actor);
26951
26952 if (cnt < 1) {
26953 // Bail out as there is an activation signal from an inactive participant
26954 var error = new Error('Trying to inactivate an inactive participant (' + idFrom.actor + ')');
26955 error.hash = {
26956 text: '->>-',
26957 token: '->>-',
26958 line: '1',
26959 loc: {
26960 first_line: 1,
26961 last_line: 1,
26962 first_column: 1,
26963 last_column: 1
26964 },
26965 expected: ["'ACTIVE_PARTICIPANT'"]
26966 };
26967 throw error;
26968 }
26969 }
26970
26971 messages.push({
26972 from: idFrom,
26973 to: idTo,
26974 message: message.text,
26975 wrap: message.wrap === undefined && autoWrap() || !!message.wrap,
26976 type: messageType
26977 });
26978 return true;
26979};
26980var getMessages = function getMessages() {
26981 return messages;
26982};
26983var getActors = function getActors() {
26984 return actors;
26985};
26986var getActor = function getActor(id) {
26987 return actors[id];
26988};
26989var getActorKeys = function getActorKeys() {
26990 return Object.keys(actors);
26991};
26992var enableSequenceNumbers = function enableSequenceNumbers() {
26993 sequenceNumbersEnabled = true;
26994};
26995var disableSequenceNumbers = function disableSequenceNumbers() {
26996 sequenceNumbersEnabled = false;
26997};
26998var showSequenceNumbers = function showSequenceNumbers() {
26999 return sequenceNumbersEnabled;
27000};
27001var setWrap = function setWrap(wrapSetting) {
27002 wrapEnabled = wrapSetting;
27003};
27004var autoWrap = function autoWrap() {
27005 // if setWrap has been called, use that value, otherwise use the value from the config
27006 // TODO: refactor, always use the config value let setWrap update the config value
27007 if (typeof wrapEnabled !== 'undefined') {
27008 return wrapEnabled;
27009 }
27010
27011 return _config__WEBPACK_IMPORTED_MODULE_1__.getConfig().sequence.wrap;
27012};
27013var clear = function clear() {
27014 actors = {};
27015 messages = [];
27016 sequenceNumbersEnabled = false;
27017 diagramTitle = '';
27018 (0,_commonDb__WEBPACK_IMPORTED_MODULE_2__.clear)();
27019};
27020var parseMessage = function parseMessage(str) {
27021 var _str = str.trim();
27022
27023 var message = {
27024 text: _str.replace(/^[:]?(?:no)?wrap:/, '').trim(),
27025 wrap: _str.match(/^[:]?wrap:/) !== null ? true : _str.match(/^[:]?nowrap:/) !== null ? false : undefined
27026 };
27027 _logger__WEBPACK_IMPORTED_MODULE_3__.log.debug('parseMessage:', message);
27028 return message;
27029};
27030var LINETYPE = {
27031 SOLID: 0,
27032 DOTTED: 1,
27033 NOTE: 2,
27034 SOLID_CROSS: 3,
27035 DOTTED_CROSS: 4,
27036 SOLID_OPEN: 5,
27037 DOTTED_OPEN: 6,
27038 LOOP_START: 10,
27039 LOOP_END: 11,
27040 ALT_START: 12,
27041 ALT_ELSE: 13,
27042 ALT_END: 14,
27043 OPT_START: 15,
27044 OPT_END: 16,
27045 ACTIVE_START: 17,
27046 ACTIVE_END: 18,
27047 PAR_START: 19,
27048 PAR_AND: 20,
27049 PAR_END: 21,
27050 RECT_START: 22,
27051 RECT_END: 23,
27052 SOLID_POINT: 24,
27053 DOTTED_POINT: 25,
27054 AUTONUMBER: 26,
27055 CRITICAL_START: 27,
27056 CRITICAL_OPTION: 28,
27057 CRITICAL_END: 29,
27058 BREAK_START: 30,
27059 BREAK_END: 31
27060};
27061var ARROWTYPE = {
27062 FILLED: 0,
27063 OPEN: 1
27064};
27065var PLACEMENT = {
27066 LEFTOF: 0,
27067 RIGHTOF: 1,
27068 OVER: 2
27069};
27070var addNote = function addNote(actor, placement, message) {
27071 var note = {
27072 actor: actor,
27073 placement: placement,
27074 message: message.text,
27075 wrap: message.wrap === undefined && autoWrap() || !!message.wrap
27076 }; // Coerce actor into a [to, from, ...] array
27077
27078 var actors = [].concat(actor, actor);
27079 notes.push(note);
27080 messages.push({
27081 from: actors[0],
27082 to: actors[1],
27083 message: message.text,
27084 wrap: message.wrap === undefined && autoWrap() || !!message.wrap,
27085 type: LINETYPE.NOTE,
27086 placement: placement
27087 });
27088};
27089var addLinks = function addLinks(actorId, text) {
27090 // find the actor
27091 var actor = getActor(actorId); // JSON.parse the text
27092
27093 try {
27094 var sanitizedText = (0,_common_common__WEBPACK_IMPORTED_MODULE_4__.sanitizeText)(text.text, _config__WEBPACK_IMPORTED_MODULE_1__.getConfig());
27095 sanitizedText = sanitizedText.replace(/&amp;/g, '&');
27096 sanitizedText = sanitizedText.replace(/&equals;/g, '=');
27097 var links = JSON.parse(sanitizedText); // add the deserialized text to the actor's links field.
27098
27099 insertLinks(actor, links);
27100 } catch (e) {
27101 _logger__WEBPACK_IMPORTED_MODULE_3__.log.error('error while parsing actor link text', e);
27102 }
27103};
27104var addALink = function addALink(actorId, text) {
27105 // find the actor
27106 var actor = getActor(actorId);
27107
27108 try {
27109 var links = {};
27110 var sanitizedText = (0,_common_common__WEBPACK_IMPORTED_MODULE_4__.sanitizeText)(text.text, _config__WEBPACK_IMPORTED_MODULE_1__.getConfig());
27111 var sep = sanitizedText.indexOf('@');
27112 sanitizedText = sanitizedText.replace(/&amp;/g, '&');
27113 sanitizedText = sanitizedText.replace(/&equals;/g, '=');
27114 var label = sanitizedText.slice(0, sep - 1).trim();
27115 var link = sanitizedText.slice(sep + 1).trim();
27116 links[label] = link; // add the deserialized text to the actor's links field.
27117
27118 insertLinks(actor, links);
27119 } catch (e) {
27120 _logger__WEBPACK_IMPORTED_MODULE_3__.log.error('error while parsing actor link text', e);
27121 }
27122};
27123/**
27124 * @param {any} actor
27125 * @param {any} links
27126 */
27127
27128function insertLinks(actor, links) {
27129 if (actor.links == null) {
27130 actor.links = links;
27131 } else {
27132 for (var key in links) {
27133 actor.links[key] = links[key];
27134 }
27135 }
27136}
27137
27138var addProperties = function addProperties(actorId, text) {
27139 // find the actor
27140 var actor = getActor(actorId); // JSON.parse the text
27141
27142 try {
27143 var sanitizedText = (0,_common_common__WEBPACK_IMPORTED_MODULE_4__.sanitizeText)(text.text, _config__WEBPACK_IMPORTED_MODULE_1__.getConfig());
27144 var properties = JSON.parse(sanitizedText); // add the deserialized text to the actor's property field.
27145
27146 insertProperties(actor, properties);
27147 } catch (e) {
27148 _logger__WEBPACK_IMPORTED_MODULE_3__.log.error('error while parsing actor properties text', e);
27149 }
27150};
27151/**
27152 * @param {any} actor
27153 * @param {any} properties
27154 */
27155
27156function insertProperties(actor, properties) {
27157 if (actor.properties == null) {
27158 actor.properties = properties;
27159 } else {
27160 for (var key in properties) {
27161 actor.properties[key] = properties[key];
27162 }
27163 }
27164}
27165
27166var addDetails = function addDetails(actorId, text) {
27167 // find the actor
27168 var actor = getActor(actorId);
27169 var elem = document.getElementById(text.text); // JSON.parse the text
27170
27171 try {
27172 var _text = elem.innerHTML;
27173 var details = JSON.parse(_text); // add the deserialized text to the actor's property field.
27174
27175 if (details['properties']) {
27176 insertProperties(actor, details['properties']);
27177 }
27178
27179 if (details['links']) {
27180 insertLinks(actor, details['links']);
27181 }
27182 } catch (e) {
27183 _logger__WEBPACK_IMPORTED_MODULE_3__.log.error('error while parsing actor details text', e);
27184 }
27185};
27186var getActorProperty = function getActorProperty(actor, key) {
27187 if (typeof actor !== 'undefined' && typeof actor.properties !== 'undefined') {
27188 return actor.properties[key];
27189 }
27190
27191 return undefined;
27192};
27193var apply = function apply(param) {
27194 if (param instanceof Array) {
27195 param.forEach(function (item) {
27196 apply(item);
27197 });
27198 } else {
27199 switch (param.type) {
27200 case 'sequenceIndex':
27201 messages.push({
27202 from: undefined,
27203 to: undefined,
27204 message: {
27205 start: param.sequenceIndex,
27206 step: param.sequenceIndexStep,
27207 visible: param.sequenceVisible
27208 },
27209 wrap: false,
27210 type: param.signalType
27211 });
27212 break;
27213
27214 case 'addParticipant':
27215 addActor(param.actor, param.actor, param.description, 'participant');
27216 break;
27217
27218 case 'addActor':
27219 addActor(param.actor, param.actor, param.description, 'actor');
27220 break;
27221
27222 case 'activeStart':
27223 addSignal(param.actor, undefined, undefined, param.signalType);
27224 break;
27225
27226 case 'activeEnd':
27227 addSignal(param.actor, undefined, undefined, param.signalType);
27228 break;
27229
27230 case 'addNote':
27231 addNote(param.actor, param.placement, param.text);
27232 break;
27233
27234 case 'addLinks':
27235 addLinks(param.actor, param.text);
27236 break;
27237
27238 case 'addALink':
27239 addALink(param.actor, param.text);
27240 break;
27241
27242 case 'addProperties':
27243 addProperties(param.actor, param.text);
27244 break;
27245
27246 case 'addDetails':
27247 addDetails(param.actor, param.text);
27248 break;
27249
27250 case 'addMessage':
27251 addSignal(param.from, param.to, param.msg, param.signalType);
27252 break;
27253
27254 case 'loopStart':
27255 addSignal(undefined, undefined, param.loopText, param.signalType);
27256 break;
27257
27258 case 'loopEnd':
27259 addSignal(undefined, undefined, undefined, param.signalType);
27260 break;
27261
27262 case 'rectStart':
27263 addSignal(undefined, undefined, param.color, param.signalType);
27264 break;
27265
27266 case 'rectEnd':
27267 addSignal(undefined, undefined, undefined, param.signalType);
27268 break;
27269
27270 case 'optStart':
27271 addSignal(undefined, undefined, param.optText, param.signalType);
27272 break;
27273
27274 case 'optEnd':
27275 addSignal(undefined, undefined, undefined, param.signalType);
27276 break;
27277
27278 case 'altStart':
27279 addSignal(undefined, undefined, param.altText, param.signalType);
27280 break;
27281
27282 case 'else':
27283 addSignal(undefined, undefined, param.altText, param.signalType);
27284 break;
27285
27286 case 'altEnd':
27287 addSignal(undefined, undefined, undefined, param.signalType);
27288 break;
27289
27290 case 'setAccTitle':
27291 (0,_commonDb__WEBPACK_IMPORTED_MODULE_2__.setAccTitle)(param.text);
27292 break;
27293
27294 case 'parStart':
27295 addSignal(undefined, undefined, param.parText, param.signalType);
27296 break;
27297
27298 case 'and':
27299 addSignal(undefined, undefined, param.parText, param.signalType);
27300 break;
27301
27302 case 'parEnd':
27303 addSignal(undefined, undefined, undefined, param.signalType);
27304 break;
27305
27306 case 'criticalStart':
27307 addSignal(undefined, undefined, param.criticalText, param.signalType);
27308 break;
27309
27310 case 'option':
27311 addSignal(undefined, undefined, param.optionText, param.signalType);
27312 break;
27313
27314 case 'criticalEnd':
27315 addSignal(undefined, undefined, undefined, param.signalType);
27316 break;
27317
27318 case 'breakStart':
27319 addSignal(undefined, undefined, param.breakText, param.signalType);
27320 break;
27321
27322 case 'breakEnd':
27323 addSignal(undefined, undefined, undefined, param.signalType);
27324 break;
27325 }
27326 }
27327};
27328/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
27329 addActor: addActor,
27330 addMessage: addMessage,
27331 addSignal: addSignal,
27332 addLinks: addLinks,
27333 addDetails: addDetails,
27334 addProperties: addProperties,
27335 autoWrap: autoWrap,
27336 setWrap: setWrap,
27337 enableSequenceNumbers: enableSequenceNumbers,
27338 disableSequenceNumbers: disableSequenceNumbers,
27339 showSequenceNumbers: showSequenceNumbers,
27340 getMessages: getMessages,
27341 getActors: getActors,
27342 getActor: getActor,
27343 getActorKeys: getActorKeys,
27344 getActorProperty: getActorProperty,
27345 getAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_2__.getAccTitle,
27346 getDiagramTitle: _commonDb__WEBPACK_IMPORTED_MODULE_2__.getDiagramTitle,
27347 setDiagramTitle: _commonDb__WEBPACK_IMPORTED_MODULE_2__.setDiagramTitle,
27348 parseDirective: parseDirective,
27349 getConfig: function getConfig() {
27350 return _config__WEBPACK_IMPORTED_MODULE_1__.getConfig().sequence;
27351 },
27352 clear: clear,
27353 parseMessage: parseMessage,
27354 LINETYPE: LINETYPE,
27355 ARROWTYPE: ARROWTYPE,
27356 PLACEMENT: PLACEMENT,
27357 addNote: addNote,
27358 setAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_2__.setAccTitle,
27359 apply: apply,
27360 setAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_2__.setAccDescription,
27361 getAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_2__.getAccDescription
27362});
27363
27364/***/ }),
27365
27366/***/ "./src/diagrams/sequence/sequenceRenderer.js":
27367/*!***************************************************!*\
27368 !*** ./src/diagrams/sequence/sequenceRenderer.js ***!
27369 \***************************************************/
27370/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
27371
27372"use strict";
27373__webpack_require__.r(__webpack_exports__);
27374/* harmony export */ __webpack_require__.d(__webpack_exports__, {
27375/* harmony export */ "bounds": () => (/* binding */ bounds),
27376/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
27377/* harmony export */ "draw": () => (/* binding */ draw),
27378/* harmony export */ "drawActors": () => (/* binding */ drawActors),
27379/* harmony export */ "drawActorsPopup": () => (/* binding */ drawActorsPopup),
27380/* harmony export */ "setConf": () => (/* binding */ setConf)
27381/* harmony export */ });
27382/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
27383/* harmony import */ var _svgDraw__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./svgDraw */ "./src/diagrams/sequence/svgDraw.js");
27384/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
27385/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
27386/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ "./src/config.js");
27387/* harmony import */ var _assignWithDepth__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../assignWithDepth */ "./src/assignWithDepth.js");
27388/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
27389/* harmony import */ var _accessibility__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../accessibility */ "./src/accessibility.js");
27390
27391
27392 // import { parser } from './parser/sequenceDiagram';
27393
27394 // import sequenceDb from './sequenceDb';
27395
27396
27397
27398
27399
27400var conf = {};
27401var bounds = {
27402 data: {
27403 startx: undefined,
27404 stopx: undefined,
27405 starty: undefined,
27406 stopy: undefined
27407 },
27408 verticalPos: 0,
27409 sequenceItems: [],
27410 activations: [],
27411 models: {
27412 getHeight: function getHeight() {
27413 return Math.max.apply(null, this.actors.length === 0 ? [0] : this.actors.map(function (actor) {
27414 return actor.height || 0;
27415 })) + (this.loops.length === 0 ? 0 : this.loops.map(function (it) {
27416 return it.height || 0;
27417 }).reduce(function (acc, h) {
27418 return acc + h;
27419 })) + (this.messages.length === 0 ? 0 : this.messages.map(function (it) {
27420 return it.height || 0;
27421 }).reduce(function (acc, h) {
27422 return acc + h;
27423 })) + (this.notes.length === 0 ? 0 : this.notes.map(function (it) {
27424 return it.height || 0;
27425 }).reduce(function (acc, h) {
27426 return acc + h;
27427 }));
27428 },
27429 clear: function clear() {
27430 this.actors = [];
27431 this.loops = [];
27432 this.messages = [];
27433 this.notes = [];
27434 },
27435 addActor: function addActor(actorModel) {
27436 this.actors.push(actorModel);
27437 },
27438 addLoop: function addLoop(loopModel) {
27439 this.loops.push(loopModel);
27440 },
27441 addMessage: function addMessage(msgModel) {
27442 this.messages.push(msgModel);
27443 },
27444 addNote: function addNote(noteModel) {
27445 this.notes.push(noteModel);
27446 },
27447 lastActor: function lastActor() {
27448 return this.actors[this.actors.length - 1];
27449 },
27450 lastLoop: function lastLoop() {
27451 return this.loops[this.loops.length - 1];
27452 },
27453 lastMessage: function lastMessage() {
27454 return this.messages[this.messages.length - 1];
27455 },
27456 lastNote: function lastNote() {
27457 return this.notes[this.notes.length - 1];
27458 },
27459 actors: [],
27460 loops: [],
27461 messages: [],
27462 notes: []
27463 },
27464 init: function init() {
27465 this.sequenceItems = [];
27466 this.activations = [];
27467 this.models.clear();
27468 this.data = {
27469 startx: undefined,
27470 stopx: undefined,
27471 starty: undefined,
27472 stopy: undefined
27473 };
27474 this.verticalPos = 0;
27475 setConf(_config__WEBPACK_IMPORTED_MODULE_1__.getConfig());
27476 },
27477 updateVal: function updateVal(obj, key, val, fun) {
27478 if (typeof obj[key] === 'undefined') {
27479 obj[key] = val;
27480 } else {
27481 obj[key] = fun(val, obj[key]);
27482 }
27483 },
27484 updateBounds: function updateBounds(startx, starty, stopx, stopy) {
27485 var _self = this;
27486
27487 var cnt = 0;
27488 /** @param {any} type */
27489
27490 function updateFn(type) {
27491 return function updateItemBounds(item) {
27492 cnt++; // The loop sequenceItems is a stack so the biggest margins in the beginning of the sequenceItems
27493
27494 var n = _self.sequenceItems.length - cnt + 1;
27495
27496 _self.updateVal(item, 'starty', starty - n * conf.boxMargin, Math.min);
27497
27498 _self.updateVal(item, 'stopy', stopy + n * conf.boxMargin, Math.max);
27499
27500 _self.updateVal(bounds.data, 'startx', startx - n * conf.boxMargin, Math.min);
27501
27502 _self.updateVal(bounds.data, 'stopx', stopx + n * conf.boxMargin, Math.max);
27503
27504 if (!(type === 'activation')) {
27505 _self.updateVal(item, 'startx', startx - n * conf.boxMargin, Math.min);
27506
27507 _self.updateVal(item, 'stopx', stopx + n * conf.boxMargin, Math.max);
27508
27509 _self.updateVal(bounds.data, 'starty', starty - n * conf.boxMargin, Math.min);
27510
27511 _self.updateVal(bounds.data, 'stopy', stopy + n * conf.boxMargin, Math.max);
27512 }
27513 };
27514 }
27515
27516 this.sequenceItems.forEach(updateFn());
27517 this.activations.forEach(updateFn('activation'));
27518 },
27519 insert: function insert(startx, starty, stopx, stopy) {
27520 var _startx = Math.min(startx, stopx);
27521
27522 var _stopx = Math.max(startx, stopx);
27523
27524 var _starty = Math.min(starty, stopy);
27525
27526 var _stopy = Math.max(starty, stopy);
27527
27528 this.updateVal(bounds.data, 'startx', _startx, Math.min);
27529 this.updateVal(bounds.data, 'starty', _starty, Math.min);
27530 this.updateVal(bounds.data, 'stopx', _stopx, Math.max);
27531 this.updateVal(bounds.data, 'stopy', _stopy, Math.max);
27532 this.updateBounds(_startx, _starty, _stopx, _stopy);
27533 },
27534 newActivation: function newActivation(message, diagram, actors) {
27535 var actorRect = actors[message.from.actor];
27536 var stackedSize = actorActivations(message.from.actor).length || 0;
27537 var x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;
27538 this.activations.push({
27539 startx: x,
27540 starty: this.verticalPos + 2,
27541 stopx: x + conf.activationWidth,
27542 stopy: undefined,
27543 actor: message.from.actor,
27544 anchored: _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].anchorElement(diagram)
27545 });
27546 },
27547 endActivation: function endActivation(message) {
27548 // find most recent activation for given actor
27549 var lastActorActivationIdx = this.activations.map(function (activation) {
27550 return activation.actor;
27551 }).lastIndexOf(message.from.actor);
27552 return this.activations.splice(lastActorActivationIdx, 1)[0];
27553 },
27554 createLoop: function createLoop() {
27555 var title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
27556 message: undefined,
27557 wrap: false,
27558 width: undefined
27559 };
27560 var fill = arguments.length > 1 ? arguments[1] : undefined;
27561 return {
27562 startx: undefined,
27563 starty: this.verticalPos,
27564 stopx: undefined,
27565 stopy: undefined,
27566 title: title.message,
27567 wrap: title.wrap,
27568 width: title.width,
27569 height: 0,
27570 fill: fill
27571 };
27572 },
27573 newLoop: function newLoop() {
27574 var title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
27575 message: undefined,
27576 wrap: false,
27577 width: undefined
27578 };
27579 var fill = arguments.length > 1 ? arguments[1] : undefined;
27580 this.sequenceItems.push(this.createLoop(title, fill));
27581 },
27582 endLoop: function endLoop() {
27583 return this.sequenceItems.pop();
27584 },
27585 addSectionToLoop: function addSectionToLoop(message) {
27586 var loop = this.sequenceItems.pop();
27587 loop.sections = loop.sections || [];
27588 loop.sectionTitles = loop.sectionTitles || [];
27589 loop.sections.push({
27590 y: bounds.getVerticalPos(),
27591 height: 0
27592 });
27593 loop.sectionTitles.push(message);
27594 this.sequenceItems.push(loop);
27595 },
27596 bumpVerticalPos: function bumpVerticalPos(bump) {
27597 this.verticalPos = this.verticalPos + bump;
27598 this.data.stopy = this.verticalPos;
27599 },
27600 getVerticalPos: function getVerticalPos() {
27601 return this.verticalPos;
27602 },
27603 getBounds: function getBounds() {
27604 return {
27605 bounds: this.data,
27606 models: this.models
27607 };
27608 }
27609};
27610/**
27611 * Draws an note in the diagram with the attached line
27612 *
27613 * @param {any} elem - The diagram to draw to.
27614 * @param {{ x: number; y: number; message: string; width: number }} noteModel - Startx: x axis
27615 * start position, verticalPos: y axis position, messsage: the message to be shown, width: Set
27616 * this with a custom width to override the default configured width.
27617 */
27618
27619var drawNote = function drawNote(elem, noteModel) {
27620 bounds.bumpVerticalPos(conf.boxMargin);
27621 noteModel.height = conf.boxMargin;
27622 noteModel.starty = bounds.getVerticalPos();
27623 var rect = _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].getNoteRect();
27624 rect.x = noteModel.startx;
27625 rect.y = noteModel.starty;
27626 rect.width = noteModel.width || conf.width;
27627 rect.class = 'note';
27628 var g = elem.append('g');
27629 var rectElem = _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].drawRect(g, rect);
27630 var textObj = _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].getTextObj();
27631 textObj.x = noteModel.startx;
27632 textObj.y = noteModel.starty;
27633 textObj.width = rect.width;
27634 textObj.dy = '1em';
27635 textObj.text = noteModel.message;
27636 textObj.class = 'noteText';
27637 textObj.fontFamily = conf.noteFontFamily;
27638 textObj.fontSize = conf.noteFontSize;
27639 textObj.fontWeight = conf.noteFontWeight;
27640 textObj.anchor = conf.noteAlign;
27641 textObj.textMargin = conf.noteMargin;
27642 textObj.valign = 'center';
27643 var textElem = (0,_svgDraw__WEBPACK_IMPORTED_MODULE_2__.drawText)(g, textObj);
27644 var textHeight = Math.round(textElem.map(function (te) {
27645 return (te._groups || te)[0][0].getBBox().height;
27646 }).reduce(function (acc, curr) {
27647 return acc + curr;
27648 }));
27649 rectElem.attr('height', textHeight + 2 * conf.noteMargin);
27650 noteModel.height += textHeight + 2 * conf.noteMargin;
27651 bounds.bumpVerticalPos(textHeight + 2 * conf.noteMargin);
27652 noteModel.stopy = noteModel.starty + textHeight + 2 * conf.noteMargin;
27653 noteModel.stopx = noteModel.startx + rect.width;
27654 bounds.insert(noteModel.startx, noteModel.starty, noteModel.stopx, noteModel.stopy);
27655 bounds.models.addNote(noteModel);
27656};
27657
27658var messageFont = function messageFont(cnf) {
27659 return {
27660 fontFamily: cnf.messageFontFamily,
27661 fontSize: cnf.messageFontSize,
27662 fontWeight: cnf.messageFontWeight
27663 };
27664};
27665
27666var noteFont = function noteFont(cnf) {
27667 return {
27668 fontFamily: cnf.noteFontFamily,
27669 fontSize: cnf.noteFontSize,
27670 fontWeight: cnf.noteFontWeight
27671 };
27672};
27673
27674var actorFont = function actorFont(cnf) {
27675 return {
27676 fontFamily: cnf.actorFontFamily,
27677 fontSize: cnf.actorFontSize,
27678 fontWeight: cnf.actorFontWeight
27679 };
27680};
27681/**
27682 * Process a message by adding its dimensions to the bound. It returns the Y coordinate of the
27683 * message so it can be drawn later. We do not draw the message at this point so the arrowhead can
27684 * be on top of the activation box.
27685 *
27686 * @param {any} diagram - The parent of the message element
27687 * @param {any} msgModel - The model containing fields describing a message
27688 * @returns {number} LineStarty - The Y coordinate at which the message line starts
27689 */
27690
27691
27692var boundMessage = function boundMessage(diagram, msgModel) {
27693 bounds.bumpVerticalPos(10);
27694 var startx = msgModel.startx,
27695 stopx = msgModel.stopx,
27696 message = msgModel.message;
27697 var lines = _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].splitBreaks(message).length;
27698 var textDims = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].calculateTextDimensions(message, messageFont(conf));
27699 var lineHeight = textDims.height / lines;
27700 msgModel.height += lineHeight;
27701 bounds.bumpVerticalPos(lineHeight);
27702 var lineStarty;
27703 var totalOffset = textDims.height - 10;
27704 var textWidth = textDims.width;
27705
27706 if (startx === stopx) {
27707 lineStarty = bounds.getVerticalPos() + totalOffset;
27708
27709 if (!conf.rightAngles) {
27710 totalOffset += conf.boxMargin;
27711 lineStarty = bounds.getVerticalPos() + totalOffset;
27712 }
27713
27714 totalOffset += 30;
27715 var dx = Math.max(textWidth / 2, conf.width / 2);
27716 bounds.insert(startx - dx, bounds.getVerticalPos() - 10 + totalOffset, stopx + dx, bounds.getVerticalPos() + 30 + totalOffset);
27717 } else {
27718 totalOffset += conf.boxMargin;
27719 lineStarty = bounds.getVerticalPos() + totalOffset;
27720 bounds.insert(startx, lineStarty - 10, stopx, lineStarty);
27721 }
27722
27723 bounds.bumpVerticalPos(totalOffset);
27724 msgModel.height += totalOffset;
27725 msgModel.stopy = msgModel.starty + msgModel.height;
27726 bounds.insert(msgModel.fromBounds, msgModel.starty, msgModel.toBounds, msgModel.stopy);
27727 return lineStarty;
27728};
27729/**
27730 * Draws a message. Note that the bounds have previously been updated by boundMessage.
27731 *
27732 * @param {any} diagram - The parent of the message element
27733 * @param {any} msgModel - The model containing fields describing a message
27734 * @param {float} lineStarty - The Y coordinate at which the message line starts
27735 * @param diagObj
27736 */
27737
27738
27739var drawMessage = function drawMessage(diagram, msgModel, lineStarty, diagObj) {
27740 var startx = msgModel.startx,
27741 stopx = msgModel.stopx,
27742 starty = msgModel.starty,
27743 message = msgModel.message,
27744 type = msgModel.type,
27745 sequenceIndex = msgModel.sequenceIndex,
27746 sequenceVisible = msgModel.sequenceVisible;
27747 var textDims = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].calculateTextDimensions(message, messageFont(conf));
27748 var textObj = _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].getTextObj();
27749 textObj.x = startx;
27750 textObj.y = starty + 10;
27751 textObj.width = stopx - startx;
27752 textObj.class = 'messageText';
27753 textObj.dy = '1em';
27754 textObj.text = message;
27755 textObj.fontFamily = conf.messageFontFamily;
27756 textObj.fontSize = conf.messageFontSize;
27757 textObj.fontWeight = conf.messageFontWeight;
27758 textObj.anchor = conf.messageAlign;
27759 textObj.valign = 'center';
27760 textObj.textMargin = conf.wrapPadding;
27761 textObj.tspan = false;
27762 (0,_svgDraw__WEBPACK_IMPORTED_MODULE_2__.drawText)(diagram, textObj);
27763 var textWidth = textDims.width;
27764 var line;
27765
27766 if (startx === stopx) {
27767 if (conf.rightAngles) {
27768 line = diagram.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));
27769 } else {
27770 line = diagram.append('path').attr('d', 'M ' + startx + ',' + lineStarty + ' C ' + (startx + 60) + ',' + (lineStarty - 10) + ' ' + (startx + 60) + ',' + (lineStarty + 30) + ' ' + startx + ',' + (lineStarty + 20));
27771 }
27772 } else {
27773 line = diagram.append('line');
27774 line.attr('x1', startx);
27775 line.attr('y1', lineStarty);
27776 line.attr('x2', stopx);
27777 line.attr('y2', lineStarty);
27778 } // Make an SVG Container
27779 // Draw the line
27780
27781
27782 if (type === diagObj.db.LINETYPE.DOTTED || type === diagObj.db.LINETYPE.DOTTED_CROSS || type === diagObj.db.LINETYPE.DOTTED_POINT || type === diagObj.db.LINETYPE.DOTTED_OPEN) {
27783 line.style('stroke-dasharray', '3, 3');
27784 line.attr('class', 'messageLine1');
27785 } else {
27786 line.attr('class', 'messageLine0');
27787 }
27788
27789 var url = '';
27790
27791 if (conf.arrowMarkerAbsolute) {
27792 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
27793 url = url.replace(/\(/g, '\\(');
27794 url = url.replace(/\)/g, '\\)');
27795 }
27796
27797 line.attr('stroke-width', 2);
27798 line.attr('stroke', 'none'); // handled by theme/css anyway
27799
27800 line.style('fill', 'none'); // remove any fill colour
27801
27802 if (type === diagObj.db.LINETYPE.SOLID || type === diagObj.db.LINETYPE.DOTTED) {
27803 line.attr('marker-end', 'url(' + url + '#arrowhead)');
27804 }
27805
27806 if (type === diagObj.db.LINETYPE.SOLID_POINT || type === diagObj.db.LINETYPE.DOTTED_POINT) {
27807 line.attr('marker-end', 'url(' + url + '#filled-head)');
27808 }
27809
27810 if (type === diagObj.db.LINETYPE.SOLID_CROSS || type === diagObj.db.LINETYPE.DOTTED_CROSS) {
27811 line.attr('marker-end', 'url(' + url + '#crosshead)');
27812 } // add node number
27813
27814
27815 if (sequenceVisible || conf.showSequenceNumbers) {
27816 line.attr('marker-start', 'url(' + url + '#sequencenumber)');
27817 diagram.append('text').attr('x', startx).attr('y', lineStarty + 4).attr('font-family', 'sans-serif').attr('font-size', '12px').attr('text-anchor', 'middle').attr('class', 'sequenceNumber').text(sequenceIndex);
27818 }
27819};
27820
27821var drawActors = function drawActors(diagram, actors, actorKeys, verticalPos, configuration, messages) {
27822 if (configuration.hideUnusedParticipants === true) {
27823 var newActors = new Set();
27824 messages.forEach(function (message) {
27825 newActors.add(message.from);
27826 newActors.add(message.to);
27827 });
27828 actorKeys = actorKeys.filter(function (actorKey) {
27829 return newActors.has(actorKey);
27830 });
27831 } // Draw the actors
27832
27833
27834 var prevWidth = 0;
27835 var prevMargin = 0;
27836 var maxHeight = 0;
27837
27838 for (var i = 0; i < actorKeys.length; i++) {
27839 var actor = actors[actorKeys[i]]; // Add some rendering data to the object
27840
27841 actor.width = actor.width || conf.width;
27842 actor.height = Math.max(actor.height || conf.height, conf.height);
27843 actor.margin = actor.margin || conf.actorMargin;
27844 actor.x = prevWidth + prevMargin;
27845 actor.y = verticalPos; // Draw the box with the attached line
27846
27847 var height = _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].drawActor(diagram, actor, conf);
27848 maxHeight = Math.max(maxHeight, height);
27849 bounds.insert(actor.x, verticalPos, actor.x + actor.width, actor.height);
27850 prevWidth += actor.width;
27851 prevMargin += actor.margin;
27852 bounds.models.addActor(actor);
27853 } // Add a margin between the actor boxes and the first arrow
27854
27855
27856 bounds.bumpVerticalPos(maxHeight);
27857};
27858var drawActorsPopup = function drawActorsPopup(diagram, actors, actorKeys, doc) {
27859 var maxHeight = 0;
27860 var maxWidth = 0;
27861
27862 for (var i = 0; i < actorKeys.length; i++) {
27863 var actor = actors[actorKeys[i]];
27864 var minMenuWidth = getRequiredPopupWidth(actor);
27865 var menuDimensions = _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].drawPopup(diagram, actor, minMenuWidth, conf, conf.forceMenus, doc);
27866
27867 if (menuDimensions.height > maxHeight) {
27868 maxHeight = menuDimensions.height;
27869 }
27870
27871 if (menuDimensions.width + actor.x > maxWidth) {
27872 maxWidth = menuDimensions.width + actor.x;
27873 }
27874 }
27875
27876 return {
27877 maxHeight: maxHeight,
27878 maxWidth: maxWidth
27879 };
27880};
27881var setConf = function setConf(cnf) {
27882 (0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_5__["default"])(conf, cnf);
27883
27884 if (cnf.fontFamily) {
27885 conf.actorFontFamily = conf.noteFontFamily = conf.messageFontFamily = cnf.fontFamily;
27886 }
27887
27888 if (cnf.fontSize) {
27889 conf.actorFontSize = conf.noteFontSize = conf.messageFontSize = cnf.fontSize;
27890 }
27891
27892 if (cnf.fontWeight) {
27893 conf.actorFontWeight = conf.noteFontWeight = conf.messageFontWeight = cnf.fontWeight;
27894 }
27895};
27896
27897var actorActivations = function actorActivations(actor) {
27898 return bounds.activations.filter(function (activation) {
27899 return activation.actor === actor;
27900 });
27901};
27902
27903var activationBounds = function activationBounds(actor, actors) {
27904 // handle multiple stacked activations for same actor
27905 var actorObj = actors[actor];
27906 var activations = actorActivations(actor);
27907 var left = activations.reduce(function (acc, activation) {
27908 return Math.min(acc, activation.startx);
27909 }, actorObj.x + actorObj.width / 2);
27910 var right = activations.reduce(function (acc, activation) {
27911 return Math.max(acc, activation.stopx);
27912 }, actorObj.x + actorObj.width / 2);
27913 return [left, right];
27914};
27915/**
27916 * @param {any} loopWidths
27917 * @param {any} msg
27918 * @param {any} preMargin
27919 * @param {any} postMargin
27920 * @param {any} addLoopFn
27921 */
27922
27923
27924function adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoopFn) {
27925 bounds.bumpVerticalPos(preMargin);
27926 var heightAdjust = postMargin;
27927
27928 if (msg.id && msg.message && loopWidths[msg.id]) {
27929 var loopWidth = loopWidths[msg.id].width;
27930 var textConf = messageFont(conf);
27931 msg.message = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].wrapLabel("[".concat(msg.message, "]"), loopWidth - 2 * conf.wrapPadding, textConf);
27932 msg.width = loopWidth;
27933 msg.wrap = true; // const lines = common.splitBreaks(msg.message).length;
27934
27935 var textDims = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].calculateTextDimensions(msg.message, textConf);
27936 var totalOffset = Math.max(textDims.height, conf.labelBoxHeight);
27937 heightAdjust = postMargin + totalOffset;
27938 _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug("".concat(totalOffset, " - ").concat(msg.message));
27939 }
27940
27941 addLoopFn(msg);
27942 bounds.bumpVerticalPos(heightAdjust);
27943}
27944/**
27945 * Draws a sequenceDiagram in the tag with id: id based on the graph definition in text.
27946 *
27947 * @param {any} text The text of the diagram
27948 * @param _text
27949 * @param {any} id The id of the diagram which will be used as a DOM element id¨
27950 * @param {any} _version Mermaid version from package.json
27951 * @param {any} diagObj A stanard diagram containing the db and the text and type etc of the diagram
27952 */
27953
27954
27955var draw = function draw(_text, id, _version, diagObj) {
27956 conf = _config__WEBPACK_IMPORTED_MODULE_1__.getConfig().sequence;
27957 var securityLevel = _config__WEBPACK_IMPORTED_MODULE_1__.getConfig().securityLevel; // Handle root and Document for when rendering in sanbox mode
27958
27959 var sandboxElement;
27960
27961 if (securityLevel === 'sandbox') {
27962 sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('#i' + id);
27963 }
27964
27965 var root = securityLevel === 'sandbox' ? (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('body');
27966 var doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document;
27967 bounds.init();
27968 _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug(diagObj.db);
27969 var diagram = securityLevel === 'sandbox' ? root.select("[id=\"".concat(id, "\"]")) : (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)("[id=\"".concat(id, "\"]")); // Fetch data from the parsing
27970
27971 var actors = diagObj.db.getActors();
27972 var actorKeys = diagObj.db.getActorKeys();
27973 var messages = diagObj.db.getMessages();
27974 var title = diagObj.db.getDiagramTitle();
27975 var maxMessageWidthPerActor = getMaxMessageWidthPerActor(actors, messages, diagObj);
27976 conf.height = calculateActorMargins(actors, maxMessageWidthPerActor);
27977 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].insertComputerIcon(diagram);
27978 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].insertDatabaseIcon(diagram);
27979 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].insertClockIcon(diagram);
27980 drawActors(diagram, actors, actorKeys, 0, conf, messages);
27981 var loopWidths = calculateLoopBounds(messages, actors, maxMessageWidthPerActor, diagObj); // The arrow head definition is attached to the svg once
27982
27983 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].insertArrowHead(diagram);
27984 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].insertArrowCrossHead(diagram);
27985 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].insertArrowFilledHead(diagram);
27986 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].insertSequenceNumber(diagram);
27987 /**
27988 * @param {any} msg
27989 * @param {any} verticalPos
27990 */
27991
27992 function activeEnd(msg, verticalPos) {
27993 var activationData = bounds.endActivation(msg);
27994
27995 if (activationData.starty + 18 > verticalPos) {
27996 activationData.starty = verticalPos - 6;
27997 verticalPos += 12;
27998 }
27999
28000 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].drawActivation(diagram, activationData, verticalPos, conf, actorActivations(msg.from.actor).length);
28001 bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos);
28002 } // Draw the messages/signals
28003
28004
28005 var sequenceIndex = 1;
28006 var sequenceIndexStep = 1;
28007 var messagesToDraw = Array();
28008 messages.forEach(function (msg) {
28009 var loopModel, noteModel, msgModel;
28010
28011 switch (msg.type) {
28012 case diagObj.db.LINETYPE.NOTE:
28013 noteModel = msg.noteModel;
28014 drawNote(diagram, noteModel);
28015 break;
28016
28017 case diagObj.db.LINETYPE.ACTIVE_START:
28018 bounds.newActivation(msg, diagram, actors);
28019 break;
28020
28021 case diagObj.db.LINETYPE.ACTIVE_END:
28022 activeEnd(msg, bounds.getVerticalPos());
28023 break;
28024
28025 case diagObj.db.LINETYPE.LOOP_START:
28026 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin, conf.boxMargin + conf.boxTextMargin, function (message) {
28027 return bounds.newLoop(message);
28028 });
28029 break;
28030
28031 case diagObj.db.LINETYPE.LOOP_END:
28032 loopModel = bounds.endLoop();
28033 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].drawLoop(diagram, loopModel, 'loop', conf);
28034 bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
28035 bounds.models.addLoop(loopModel);
28036 break;
28037
28038 case diagObj.db.LINETYPE.RECT_START:
28039 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin, conf.boxMargin, function (message) {
28040 return bounds.newLoop(undefined, message.message);
28041 });
28042 break;
28043
28044 case diagObj.db.LINETYPE.RECT_END:
28045 loopModel = bounds.endLoop();
28046 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].drawBackgroundRect(diagram, loopModel);
28047 bounds.models.addLoop(loopModel);
28048 bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
28049 break;
28050
28051 case diagObj.db.LINETYPE.OPT_START:
28052 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin, conf.boxMargin + conf.boxTextMargin, function (message) {
28053 return bounds.newLoop(message);
28054 });
28055 break;
28056
28057 case diagObj.db.LINETYPE.OPT_END:
28058 loopModel = bounds.endLoop();
28059 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].drawLoop(diagram, loopModel, 'opt', conf);
28060 bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
28061 bounds.models.addLoop(loopModel);
28062 break;
28063
28064 case diagObj.db.LINETYPE.ALT_START:
28065 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin, conf.boxMargin + conf.boxTextMargin, function (message) {
28066 return bounds.newLoop(message);
28067 });
28068 break;
28069
28070 case diagObj.db.LINETYPE.ALT_ELSE:
28071 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin + conf.boxTextMargin, conf.boxMargin, function (message) {
28072 return bounds.addSectionToLoop(message);
28073 });
28074 break;
28075
28076 case diagObj.db.LINETYPE.ALT_END:
28077 loopModel = bounds.endLoop();
28078 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].drawLoop(diagram, loopModel, 'alt', conf);
28079 bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
28080 bounds.models.addLoop(loopModel);
28081 break;
28082
28083 case diagObj.db.LINETYPE.PAR_START:
28084 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin, conf.boxMargin + conf.boxTextMargin, function (message) {
28085 return bounds.newLoop(message);
28086 });
28087 break;
28088
28089 case diagObj.db.LINETYPE.PAR_AND:
28090 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin + conf.boxTextMargin, conf.boxMargin, function (message) {
28091 return bounds.addSectionToLoop(message);
28092 });
28093 break;
28094
28095 case diagObj.db.LINETYPE.PAR_END:
28096 loopModel = bounds.endLoop();
28097 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].drawLoop(diagram, loopModel, 'par', conf);
28098 bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
28099 bounds.models.addLoop(loopModel);
28100 break;
28101
28102 case diagObj.db.LINETYPE.AUTONUMBER:
28103 sequenceIndex = msg.message.start || sequenceIndex;
28104 sequenceIndexStep = msg.message.step || sequenceIndexStep;
28105 if (msg.message.visible) diagObj.db.enableSequenceNumbers();else diagObj.db.disableSequenceNumbers();
28106 break;
28107
28108 case diagObj.db.LINETYPE.CRITICAL_START:
28109 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin, conf.boxMargin + conf.boxTextMargin, function (message) {
28110 return bounds.newLoop(message);
28111 });
28112 break;
28113
28114 case diagObj.db.LINETYPE.CRITICAL_OPTION:
28115 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin + conf.boxTextMargin, conf.boxMargin, function (message) {
28116 return bounds.addSectionToLoop(message);
28117 });
28118 break;
28119
28120 case diagObj.db.LINETYPE.CRITICAL_END:
28121 loopModel = bounds.endLoop();
28122 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].drawLoop(diagram, loopModel, 'critical', conf);
28123 bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
28124 bounds.models.addLoop(loopModel);
28125 break;
28126
28127 case diagObj.db.LINETYPE.BREAK_START:
28128 adjustLoopHeightForWrap(loopWidths, msg, conf.boxMargin, conf.boxMargin + conf.boxTextMargin, function (message) {
28129 return bounds.newLoop(message);
28130 });
28131 break;
28132
28133 case diagObj.db.LINETYPE.BREAK_END:
28134 loopModel = bounds.endLoop();
28135 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].drawLoop(diagram, loopModel, 'break', conf);
28136 bounds.bumpVerticalPos(loopModel.stopy - bounds.getVerticalPos());
28137 bounds.models.addLoop(loopModel);
28138 break;
28139
28140 default:
28141 try {
28142 // lastMsg = msg
28143 msgModel = msg.msgModel;
28144 msgModel.starty = bounds.getVerticalPos();
28145 msgModel.sequenceIndex = sequenceIndex;
28146 msgModel.sequenceVisible = diagObj.db.showSequenceNumbers();
28147 var lineStarty = boundMessage(diagram, msgModel);
28148 messagesToDraw.push({
28149 messageModel: msgModel,
28150 lineStarty: lineStarty
28151 });
28152 bounds.models.addMessage(msgModel);
28153 } catch (e) {
28154 _logger__WEBPACK_IMPORTED_MODULE_6__.log.error('error while drawing message', e);
28155 }
28156
28157 } // Increment sequence counter if msg.type is a line (and not another event like activation or note, etc)
28158
28159
28160 if ([diagObj.db.LINETYPE.SOLID_OPEN, diagObj.db.LINETYPE.DOTTED_OPEN, diagObj.db.LINETYPE.SOLID, diagObj.db.LINETYPE.DOTTED, diagObj.db.LINETYPE.SOLID_CROSS, diagObj.db.LINETYPE.DOTTED_CROSS, diagObj.db.LINETYPE.SOLID_POINT, diagObj.db.LINETYPE.DOTTED_POINT].includes(msg.type)) {
28161 sequenceIndex = sequenceIndex + sequenceIndexStep;
28162 }
28163 });
28164 messagesToDraw.forEach(function (e) {
28165 return drawMessage(diagram, e.messageModel, e.lineStarty, diagObj);
28166 });
28167
28168 if (conf.mirrorActors) {
28169 // Draw actors below diagram
28170 bounds.bumpVerticalPos(conf.boxMargin * 2);
28171 drawActors(diagram, actors, actorKeys, bounds.getVerticalPos(), conf, messages);
28172 bounds.bumpVerticalPos(conf.boxMargin);
28173 (0,_svgDraw__WEBPACK_IMPORTED_MODULE_2__.fixLifeLineHeights)(diagram, bounds.getVerticalPos());
28174 } // only draw popups for the top row of actors.
28175
28176
28177 var requiredBoxSize = drawActorsPopup(diagram, actors, actorKeys, doc);
28178
28179 var _bounds$getBounds = bounds.getBounds(),
28180 box = _bounds$getBounds.bounds; // Adjust line height of actor lines now that the height of the diagram is known
28181
28182
28183 _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug('For line height fix Querying: #' + id + ' .actor-line');
28184 var actorLines = (0,d3__WEBPACK_IMPORTED_MODULE_0__.selectAll)('#' + id + ' .actor-line');
28185 actorLines.attr('y2', box.stopy); // Make sure the height of the diagram supports long menus.
28186
28187 var boxHeight = box.stopy - box.starty;
28188
28189 if (boxHeight < requiredBoxSize.maxHeight) {
28190 boxHeight = requiredBoxSize.maxHeight;
28191 }
28192
28193 var height = boxHeight + 2 * conf.diagramMarginY;
28194
28195 if (conf.mirrorActors) {
28196 height = height - conf.boxMargin + conf.bottomMarginAdj;
28197 } // Make sure the width of the diagram supports wide menus.
28198
28199
28200 var boxWidth = box.stopx - box.startx;
28201
28202 if (boxWidth < requiredBoxSize.maxWidth) {
28203 boxWidth = requiredBoxSize.maxWidth;
28204 }
28205
28206 var width = boxWidth + 2 * conf.diagramMarginX;
28207
28208 if (title) {
28209 diagram.append('text').text(title).attr('x', (box.stopx - box.startx) / 2 - 2 * conf.diagramMarginX).attr('y', -25);
28210 }
28211
28212 (0,_utils__WEBPACK_IMPORTED_MODULE_4__.configureSvgSize)(diagram, height, width, conf.useMaxWidth);
28213 var extraVertForTitle = title ? 40 : 0;
28214 diagram.attr('viewBox', box.startx - conf.diagramMarginX + ' -' + (conf.diagramMarginY + extraVertForTitle) + ' ' + width + ' ' + (height + extraVertForTitle));
28215 (0,_accessibility__WEBPACK_IMPORTED_MODULE_7__["default"])(diagObj.db, diagram, id);
28216 _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug("models:", bounds.models);
28217};
28218/**
28219 * Retrieves the max message width of each actor, supports signals (messages, loops) and notes.
28220 *
28221 * It will enumerate each given message, and will determine its text width, in relation to the actor
28222 * it originates from, and destined to.
28223 *
28224 * @param {any} actors - The actors map
28225 * @param {Array} messages - A list of message objects to iterate
28226 * @param diagObj
28227 * @returns {any}
28228 */
28229
28230var getMaxMessageWidthPerActor = function getMaxMessageWidthPerActor(actors, messages, diagObj) {
28231 var maxMessageWidthPerActor = {};
28232 messages.forEach(function (msg) {
28233 if (actors[msg.to] && actors[msg.from]) {
28234 var actor = actors[msg.to]; // If this is the first actor, and the message is left of it, no need to calculate the margin
28235
28236 if (msg.placement === diagObj.db.PLACEMENT.LEFTOF && !actor.prevActor) {
28237 return;
28238 } // If this is the last actor, and the message is right of it, no need to calculate the margin
28239
28240
28241 if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF && !actor.nextActor) {
28242 return;
28243 }
28244
28245 var isNote = msg.placement !== undefined;
28246 var isMessage = !isNote;
28247 var textFont = isNote ? noteFont(conf) : messageFont(conf);
28248 var wrappedMessage = msg.wrap ? _utils__WEBPACK_IMPORTED_MODULE_4__["default"].wrapLabel(msg.message, conf.width - 2 * conf.wrapPadding, textFont) : msg.message;
28249 var messageDimensions = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].calculateTextDimensions(wrappedMessage, textFont);
28250 var messageWidth = messageDimensions.width + 2 * conf.wrapPadding;
28251 /*
28252 * The following scenarios should be supported:
28253 *
28254 * - There's a message (non-note) between fromActor and toActor
28255 * - If fromActor is on the right and toActor is on the left, we should
28256 * define the toActor's margin
28257 * - If fromActor is on the left and toActor is on the right, we should
28258 * define the fromActor's margin
28259 * - There's a note, in which case fromActor == toActor
28260 * - If the note is to the left of the actor, we should define the previous actor
28261 * margin
28262 * - If the note is on the actor, we should define both the previous and next actor
28263 * margins, each being the half of the note size
28264 * - If the note is on the right of the actor, we should define the current actor
28265 * margin
28266 */
28267
28268 if (isMessage && msg.from === actor.nextActor) {
28269 maxMessageWidthPerActor[msg.to] = Math.max(maxMessageWidthPerActor[msg.to] || 0, messageWidth);
28270 } else if (isMessage && msg.from === actor.prevActor) {
28271 maxMessageWidthPerActor[msg.from] = Math.max(maxMessageWidthPerActor[msg.from] || 0, messageWidth);
28272 } else if (isMessage && msg.from === msg.to) {
28273 maxMessageWidthPerActor[msg.from] = Math.max(maxMessageWidthPerActor[msg.from] || 0, messageWidth / 2);
28274 maxMessageWidthPerActor[msg.to] = Math.max(maxMessageWidthPerActor[msg.to] || 0, messageWidth / 2);
28275 } else if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {
28276 maxMessageWidthPerActor[msg.from] = Math.max(maxMessageWidthPerActor[msg.from] || 0, messageWidth);
28277 } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {
28278 maxMessageWidthPerActor[actor.prevActor] = Math.max(maxMessageWidthPerActor[actor.prevActor] || 0, messageWidth);
28279 } else if (msg.placement === diagObj.db.PLACEMENT.OVER) {
28280 if (actor.prevActor) {
28281 maxMessageWidthPerActor[actor.prevActor] = Math.max(maxMessageWidthPerActor[actor.prevActor] || 0, messageWidth / 2);
28282 }
28283
28284 if (actor.nextActor) {
28285 maxMessageWidthPerActor[msg.from] = Math.max(maxMessageWidthPerActor[msg.from] || 0, messageWidth / 2);
28286 }
28287 }
28288 }
28289 });
28290 _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug('maxMessageWidthPerActor:', maxMessageWidthPerActor);
28291 return maxMessageWidthPerActor;
28292};
28293
28294var getRequiredPopupWidth = function getRequiredPopupWidth(actor) {
28295 var requiredPopupWidth = 0;
28296 var textFont = actorFont(conf);
28297
28298 for (var key in actor.links) {
28299 var labelDimensions = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].calculateTextDimensions(key, textFont);
28300 var labelWidth = labelDimensions.width + 2 * conf.wrapPadding + 2 * conf.boxMargin;
28301
28302 if (requiredPopupWidth < labelWidth) {
28303 requiredPopupWidth = labelWidth;
28304 }
28305 }
28306
28307 return requiredPopupWidth;
28308};
28309/**
28310 * This will calculate the optimal margin for each given actor, for a given actor->messageWidth map.
28311 *
28312 * An actor's margin is determined by the width of the actor, the width of the largest message that
28313 * originates from it, and the configured conf.actorMargin.
28314 *
28315 * @param {any} actors - The actors map to calculate margins for
28316 * @param {any} actorToMessageWidth - A map of actor key -> max message width it holds
28317 */
28318
28319
28320var calculateActorMargins = function calculateActorMargins(actors, actorToMessageWidth) {
28321 var maxHeight = 0;
28322 Object.keys(actors).forEach(function (prop) {
28323 var actor = actors[prop];
28324
28325 if (actor.wrap) {
28326 actor.description = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].wrapLabel(actor.description, conf.width - 2 * conf.wrapPadding, actorFont(conf));
28327 }
28328
28329 var actDims = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].calculateTextDimensions(actor.description, actorFont(conf));
28330 actor.width = actor.wrap ? conf.width : Math.max(conf.width, actDims.width + 2 * conf.wrapPadding);
28331 actor.height = actor.wrap ? Math.max(actDims.height, conf.height) : conf.height;
28332 maxHeight = Math.max(maxHeight, actor.height);
28333 });
28334
28335 for (var actorKey in actorToMessageWidth) {
28336 var actor = actors[actorKey];
28337
28338 if (!actor) {
28339 continue;
28340 }
28341
28342 var nextActor = actors[actor.nextActor]; // No need to space out an actor that doesn't have a next link
28343
28344 if (!nextActor) {
28345 continue;
28346 }
28347
28348 var messageWidth = actorToMessageWidth[actorKey];
28349 var actorWidth = messageWidth + conf.actorMargin - actor.width / 2 - nextActor.width / 2;
28350 actor.margin = Math.max(actorWidth, conf.actorMargin);
28351 }
28352
28353 return Math.max(maxHeight, conf.height);
28354};
28355
28356var buildNoteModel = function buildNoteModel(msg, actors, diagObj) {
28357 var startx = actors[msg.from].x;
28358 var stopx = actors[msg.to].x;
28359 var shouldWrap = msg.wrap && msg.message;
28360 var textDimensions = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].calculateTextDimensions(shouldWrap ? _utils__WEBPACK_IMPORTED_MODULE_4__["default"].wrapLabel(msg.message, conf.width, noteFont(conf)) : msg.message, noteFont(conf));
28361 var noteModel = {
28362 width: shouldWrap ? conf.width : Math.max(conf.width, textDimensions.width + 2 * conf.noteMargin),
28363 height: 0,
28364 startx: actors[msg.from].x,
28365 stopx: 0,
28366 starty: 0,
28367 stopy: 0,
28368 message: msg.message
28369 };
28370
28371 if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {
28372 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);
28373 noteModel.startx = startx + (actors[msg.from].width + conf.actorMargin) / 2;
28374 } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {
28375 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);
28376 noteModel.startx = startx - noteModel.width + (actors[msg.from].width - conf.actorMargin) / 2;
28377 } else if (msg.to === msg.from) {
28378 textDimensions = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].calculateTextDimensions(shouldWrap ? _utils__WEBPACK_IMPORTED_MODULE_4__["default"].wrapLabel(msg.message, Math.max(conf.width, actors[msg.from].width), noteFont(conf)) : msg.message, noteFont(conf));
28379 noteModel.width = shouldWrap ? Math.max(conf.width, actors[msg.from].width) : Math.max(actors[msg.from].width, conf.width, textDimensions.width + 2 * conf.noteMargin);
28380 noteModel.startx = startx + (actors[msg.from].width - noteModel.width) / 2;
28381 } else {
28382 noteModel.width = Math.abs(startx + actors[msg.from].width / 2 - (stopx + actors[msg.to].width / 2)) + conf.actorMargin;
28383 noteModel.startx = startx < stopx ? startx + actors[msg.from].width / 2 - conf.actorMargin / 2 : stopx + actors[msg.to].width / 2 - conf.actorMargin / 2;
28384 }
28385
28386 if (shouldWrap) {
28387 noteModel.message = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].wrapLabel(msg.message, noteModel.width - 2 * conf.wrapPadding, noteFont(conf));
28388 }
28389
28390 _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug("NM:[".concat(noteModel.startx, ",").concat(noteModel.stopx, ",").concat(noteModel.starty, ",").concat(noteModel.stopy, ":").concat(noteModel.width, ",").concat(noteModel.height, "=").concat(msg.message, "]"));
28391 return noteModel;
28392};
28393
28394var buildMessageModel = function buildMessageModel(msg, actors, diagObj) {
28395 var process = false;
28396
28397 if ([diagObj.db.LINETYPE.SOLID_OPEN, diagObj.db.LINETYPE.DOTTED_OPEN, diagObj.db.LINETYPE.SOLID, diagObj.db.LINETYPE.DOTTED, diagObj.db.LINETYPE.SOLID_CROSS, diagObj.db.LINETYPE.DOTTED_CROSS, diagObj.db.LINETYPE.SOLID_POINT, diagObj.db.LINETYPE.DOTTED_POINT].includes(msg.type)) {
28398 process = true;
28399 }
28400
28401 if (!process) {
28402 return {};
28403 }
28404
28405 var fromBounds = activationBounds(msg.from, actors);
28406 var toBounds = activationBounds(msg.to, actors);
28407 var fromIdx = fromBounds[0] <= toBounds[0] ? 1 : 0;
28408 var toIdx = fromBounds[0] < toBounds[0] ? 0 : 1;
28409 var allBounds = fromBounds.concat(toBounds);
28410 var boundedWidth = Math.abs(toBounds[toIdx] - fromBounds[fromIdx]);
28411
28412 if (msg.wrap && msg.message) {
28413 msg.message = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].wrapLabel(msg.message, Math.max(boundedWidth + 2 * conf.wrapPadding, conf.width), messageFont(conf));
28414 }
28415
28416 var msgDims = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].calculateTextDimensions(msg.message, messageFont(conf));
28417 return {
28418 width: Math.max(msg.wrap ? 0 : msgDims.width + 2 * conf.wrapPadding, boundedWidth + 2 * conf.wrapPadding, conf.width),
28419 height: 0,
28420 startx: fromBounds[fromIdx],
28421 stopx: toBounds[toIdx],
28422 starty: 0,
28423 stopy: 0,
28424 message: msg.message,
28425 type: msg.type,
28426 wrap: msg.wrap,
28427 fromBounds: Math.min.apply(null, allBounds),
28428 toBounds: Math.max.apply(null, allBounds)
28429 };
28430};
28431
28432var calculateLoopBounds = function calculateLoopBounds(messages, actors, _maxWidthPerActor, diagObj) {
28433 var loops = {};
28434 var stack = [];
28435 var current, noteModel, msgModel;
28436 messages.forEach(function (msg) {
28437 msg.id = _utils__WEBPACK_IMPORTED_MODULE_4__["default"].random({
28438 length: 10
28439 });
28440
28441 switch (msg.type) {
28442 case diagObj.db.LINETYPE.LOOP_START:
28443 case diagObj.db.LINETYPE.ALT_START:
28444 case diagObj.db.LINETYPE.OPT_START:
28445 case diagObj.db.LINETYPE.PAR_START:
28446 case diagObj.db.LINETYPE.CRITICAL_START:
28447 case diagObj.db.LINETYPE.BREAK_START:
28448 stack.push({
28449 id: msg.id,
28450 msg: msg.message,
28451 from: Number.MAX_SAFE_INTEGER,
28452 to: Number.MIN_SAFE_INTEGER,
28453 width: 0
28454 });
28455 break;
28456
28457 case diagObj.db.LINETYPE.ALT_ELSE:
28458 case diagObj.db.LINETYPE.PAR_AND:
28459 case diagObj.db.LINETYPE.CRITICAL_OPTION:
28460 if (msg.message) {
28461 current = stack.pop();
28462 loops[current.id] = current;
28463 loops[msg.id] = current;
28464 stack.push(current);
28465 }
28466
28467 break;
28468
28469 case diagObj.db.LINETYPE.LOOP_END:
28470 case diagObj.db.LINETYPE.ALT_END:
28471 case diagObj.db.LINETYPE.OPT_END:
28472 case diagObj.db.LINETYPE.PAR_END:
28473 case diagObj.db.LINETYPE.CRITICAL_END:
28474 case diagObj.db.LINETYPE.BREAK_END:
28475 current = stack.pop();
28476 loops[current.id] = current;
28477 break;
28478
28479 case diagObj.db.LINETYPE.ACTIVE_START:
28480 {
28481 var actorRect = actors[msg.from ? msg.from.actor : msg.to.actor];
28482 var stackedSize = actorActivations(msg.from ? msg.from.actor : msg.to.actor).length;
28483 var x = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf.activationWidth / 2;
28484 var toAdd = {
28485 startx: x,
28486 stopx: x + conf.activationWidth,
28487 actor: msg.from.actor,
28488 enabled: true
28489 };
28490 bounds.activations.push(toAdd);
28491 }
28492 break;
28493
28494 case diagObj.db.LINETYPE.ACTIVE_END:
28495 {
28496 var lastActorActivationIdx = bounds.activations.map(function (a) {
28497 return a.actor;
28498 }).lastIndexOf(msg.from.actor);
28499 delete bounds.activations.splice(lastActorActivationIdx, 1)[0];
28500 }
28501 break;
28502 }
28503
28504 var isNote = msg.placement !== undefined;
28505
28506 if (isNote) {
28507 noteModel = buildNoteModel(msg, actors, diagObj);
28508 msg.noteModel = noteModel;
28509 stack.forEach(function (stk) {
28510 current = stk;
28511 current.from = Math.min(current.from, noteModel.startx);
28512 current.to = Math.max(current.to, noteModel.startx + noteModel.width);
28513 current.width = Math.max(current.width, Math.abs(current.from - current.to)) - conf.labelBoxWidth;
28514 });
28515 } else {
28516 msgModel = buildMessageModel(msg, actors, diagObj);
28517 msg.msgModel = msgModel;
28518
28519 if (msgModel.startx && msgModel.stopx && stack.length > 0) {
28520 stack.forEach(function (stk) {
28521 current = stk;
28522
28523 if (msgModel.startx === msgModel.stopx) {
28524 var from = actors[msg.from];
28525 var to = actors[msg.to];
28526 current.from = Math.min(from.x - msgModel.width / 2, from.x - from.width / 2, current.from);
28527 current.to = Math.max(to.x + msgModel.width / 2, to.x + from.width / 2, current.to);
28528 current.width = Math.max(current.width, Math.abs(current.to - current.from)) - conf.labelBoxWidth;
28529 } else {
28530 current.from = Math.min(msgModel.startx, current.from);
28531 current.to = Math.max(msgModel.stopx, current.to);
28532 current.width = Math.max(current.width, msgModel.width) - conf.labelBoxWidth;
28533 }
28534 });
28535 }
28536 }
28537 });
28538 bounds.activations = [];
28539 _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug('Loop type widths:', loops);
28540 return loops;
28541};
28542
28543/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
28544 bounds: bounds,
28545 drawActors: drawActors,
28546 drawActorsPopup: drawActorsPopup,
28547 setConf: setConf,
28548 draw: draw
28549});
28550
28551/***/ }),
28552
28553/***/ "./src/diagrams/sequence/styles.js":
28554/*!*****************************************!*\
28555 !*** ./src/diagrams/sequence/styles.js ***!
28556 \*****************************************/
28557/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
28558
28559"use strict";
28560__webpack_require__.r(__webpack_exports__);
28561/* harmony export */ __webpack_require__.d(__webpack_exports__, {
28562/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
28563/* harmony export */ });
28564var getStyles = function getStyles(options) {
28565 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\n .actorPopupMenu {\n position: absolute;\n }\n\n .actorPopupMenuPanel {\n position: absolute;\n fill: ").concat(options.actorBkg, ";\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));\n}\n .actor-man line {\n stroke: ").concat(options.actorBorder, ";\n fill: ").concat(options.actorBkg, ";\n }\n .actor-man circle, line {\n stroke: ").concat(options.actorBorder, ";\n fill: ").concat(options.actorBkg, ";\n stroke-width: 2px;\n }\n");
28566};
28567
28568/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getStyles);
28569
28570/***/ }),
28571
28572/***/ "./src/diagrams/sequence/svgDraw.js":
28573/*!******************************************!*\
28574 !*** ./src/diagrams/sequence/svgDraw.js ***!
28575 \******************************************/
28576/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
28577
28578"use strict";
28579__webpack_require__.r(__webpack_exports__);
28580/* harmony export */ __webpack_require__.d(__webpack_exports__, {
28581/* harmony export */ "anchorElement": () => (/* binding */ anchorElement),
28582/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
28583/* harmony export */ "drawActivation": () => (/* binding */ drawActivation),
28584/* harmony export */ "drawActor": () => (/* binding */ drawActor),
28585/* harmony export */ "drawBackgroundRect": () => (/* binding */ drawBackgroundRect),
28586/* harmony export */ "drawEmbeddedImage": () => (/* binding */ drawEmbeddedImage),
28587/* harmony export */ "drawImage": () => (/* binding */ drawImage),
28588/* harmony export */ "drawLabel": () => (/* binding */ drawLabel),
28589/* harmony export */ "drawLoop": () => (/* binding */ drawLoop),
28590/* harmony export */ "drawPopup": () => (/* binding */ drawPopup),
28591/* harmony export */ "drawRect": () => (/* binding */ drawRect),
28592/* harmony export */ "drawText": () => (/* binding */ drawText),
28593/* harmony export */ "fixLifeLineHeights": () => (/* binding */ fixLifeLineHeights),
28594/* harmony export */ "getNoteRect": () => (/* binding */ getNoteRect),
28595/* harmony export */ "getTextObj": () => (/* binding */ getTextObj),
28596/* harmony export */ "insertArrowCrossHead": () => (/* binding */ insertArrowCrossHead),
28597/* harmony export */ "insertArrowFilledHead": () => (/* binding */ insertArrowFilledHead),
28598/* harmony export */ "insertArrowHead": () => (/* binding */ insertArrowHead),
28599/* harmony export */ "insertClockIcon": () => (/* binding */ insertClockIcon),
28600/* harmony export */ "insertComputerIcon": () => (/* binding */ insertComputerIcon),
28601/* harmony export */ "insertDatabaseIcon": () => (/* binding */ insertDatabaseIcon),
28602/* harmony export */ "insertSequenceNumber": () => (/* binding */ insertSequenceNumber),
28603/* harmony export */ "popdownMenu": () => (/* binding */ popdownMenu),
28604/* harmony export */ "popupMenu": () => (/* binding */ popupMenu)
28605/* harmony export */ });
28606/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
28607/* harmony import */ var _interactionDb__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../interactionDb */ "./src/interactionDb.js");
28608/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @braintree/sanitize-url */ "./node_modules/@braintree/sanitize-url/dist/index.js");
28609
28610
28611
28612var drawRect = function drawRect(elem, rectData) {
28613 var rectElem = elem.append('rect');
28614 rectElem.attr('x', rectData.x);
28615 rectElem.attr('y', rectData.y);
28616 rectElem.attr('fill', rectData.fill);
28617 rectElem.attr('stroke', rectData.stroke);
28618 rectElem.attr('width', rectData.width);
28619 rectElem.attr('height', rectData.height);
28620 rectElem.attr('rx', rectData.rx);
28621 rectElem.attr('ry', rectData.ry);
28622
28623 if (typeof rectData.class !== 'undefined') {
28624 rectElem.attr('class', rectData.class);
28625 }
28626
28627 return rectElem;
28628}; // const sanitizeUrl = function (s) {
28629// return s
28630// .replace(/&/g, '&amp;')
28631// .replace(/</g, '&lt;')
28632// .replace(/javascript:/g, '');
28633// };
28634
28635var addPopupInteraction = function addPopupInteraction(id, actorCnt) {
28636 (0,_interactionDb__WEBPACK_IMPORTED_MODULE_1__.addFunction)(function () {
28637 var arr = document.querySelectorAll(id); // This will be the case when running in sandboxed mode
28638
28639 if (arr.length === 0) return;
28640 arr[0].addEventListener('mouseover', function () {
28641 popupMenuUpFunc('actor' + actorCnt + '_popup');
28642 });
28643 arr[0].addEventListener('mouseout', function () {
28644 popupMenuDownFunc('actor' + actorCnt + '_popup');
28645 });
28646 });
28647};
28648
28649var drawPopup = function drawPopup(elem, actor, minMenuWidth, textAttrs, forceMenus) {
28650 if (actor.links === undefined || actor.links === null || Object.keys(actor.links).length === 0) {
28651 return {
28652 height: 0,
28653 width: 0
28654 };
28655 }
28656
28657 var links = actor.links;
28658 var actorCnt = actor.actorCnt;
28659 var rectData = actor.rectData;
28660 var displayValue = 'none';
28661
28662 if (forceMenus) {
28663 displayValue = 'block !important';
28664 }
28665
28666 var g = elem.append('g');
28667 g.attr('id', 'actor' + actorCnt + '_popup');
28668 g.attr('class', 'actorPopupMenu');
28669 g.attr('display', displayValue);
28670 addPopupInteraction('#actor' + actorCnt + '_popup', actorCnt);
28671 var actorClass = '';
28672
28673 if (typeof rectData.class !== 'undefined') {
28674 actorClass = ' ' + rectData.class;
28675 }
28676
28677 var menuWidth = rectData.width > minMenuWidth ? rectData.width : minMenuWidth;
28678 var rectElem = g.append('rect');
28679 rectElem.attr('class', 'actorPopupMenuPanel' + actorClass);
28680 rectElem.attr('x', rectData.x);
28681 rectElem.attr('y', rectData.height);
28682 rectElem.attr('fill', rectData.fill);
28683 rectElem.attr('stroke', rectData.stroke);
28684 rectElem.attr('width', menuWidth);
28685 rectElem.attr('height', rectData.height);
28686 rectElem.attr('rx', rectData.rx);
28687 rectElem.attr('ry', rectData.ry);
28688
28689 if (links != null) {
28690 var linkY = 20;
28691
28692 for (var key in links) {
28693 var linkElem = g.append('a');
28694 var sanitizedLink = (0,_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_0__.sanitizeUrl)(links[key]);
28695 linkElem.attr('xlink:href', sanitizedLink);
28696 linkElem.attr('target', '_blank');
28697
28698 _drawMenuItemTextCandidateFunc(textAttrs)(key, linkElem, rectData.x + 10, rectData.height + linkY, menuWidth, 20, {
28699 class: 'actor'
28700 }, textAttrs);
28701
28702 linkY += 30;
28703 }
28704 }
28705
28706 rectElem.attr('height', linkY);
28707 return {
28708 height: rectData.height + linkY,
28709 width: menuWidth
28710 };
28711};
28712var drawImage = function drawImage(elem, x, y, link) {
28713 var imageElem = elem.append('image');
28714 imageElem.attr('x', x);
28715 imageElem.attr('y', y);
28716 var sanitizedLink = (0,_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_0__.sanitizeUrl)(link);
28717 imageElem.attr('xlink:href', sanitizedLink);
28718};
28719var drawEmbeddedImage = function drawEmbeddedImage(elem, x, y, link) {
28720 var imageElem = elem.append('use');
28721 imageElem.attr('x', x);
28722 imageElem.attr('y', y);
28723 var sanitizedLink = (0,_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_0__.sanitizeUrl)(link);
28724 imageElem.attr('xlink:href', '#' + sanitizedLink);
28725};
28726var popupMenu = function popupMenu(popid) {
28727 return "var pu = document.getElementById('" + popid + "'); if (pu != null) { pu.style.display = 'block'; }";
28728};
28729var popdownMenu = function popdownMenu(popid) {
28730 return "var pu = document.getElementById('" + popid + "'); if (pu != null) { pu.style.display = 'none'; }";
28731};
28732
28733var popupMenuUpFunc = function popupMenuUpFunc(popupId) {
28734 var pu = document.getElementById(popupId);
28735
28736 if (pu != null) {
28737 pu.style.display = 'block';
28738 }
28739};
28740
28741var popupMenuDownFunc = function popupMenuDownFunc(popupId) {
28742 var pu = document.getElementById(popupId);
28743
28744 if (pu != null) {
28745 pu.style.display = 'none';
28746 }
28747};
28748
28749var drawText = function drawText(elem, textData) {
28750 var prevTextHeight = 0,
28751 textHeight = 0;
28752 var lines = textData.text.split(_common_common__WEBPACK_IMPORTED_MODULE_2__["default"].lineBreakRegex);
28753 var textElems = [];
28754 var dy = 0;
28755
28756 var yfunc = function yfunc() {
28757 return textData.y;
28758 };
28759
28760 if (typeof textData.valign !== 'undefined' && typeof textData.textMargin !== 'undefined' && textData.textMargin > 0) {
28761 switch (textData.valign) {
28762 case 'top':
28763 case 'start':
28764 yfunc = function yfunc() {
28765 return Math.round(textData.y + textData.textMargin);
28766 };
28767
28768 break;
28769
28770 case 'middle':
28771 case 'center':
28772 yfunc = function yfunc() {
28773 return Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2);
28774 };
28775
28776 break;
28777
28778 case 'bottom':
28779 case 'end':
28780 yfunc = function yfunc() {
28781 return Math.round(textData.y + (prevTextHeight + textHeight + 2 * textData.textMargin) - textData.textMargin);
28782 };
28783
28784 break;
28785 }
28786 }
28787
28788 if (typeof textData.anchor !== 'undefined' && typeof textData.textMargin !== 'undefined' && typeof textData.width !== 'undefined') {
28789 switch (textData.anchor) {
28790 case 'left':
28791 case 'start':
28792 textData.x = Math.round(textData.x + textData.textMargin);
28793 textData.anchor = 'start';
28794 textData.dominantBaseline = 'middle';
28795 textData.alignmentBaseline = 'middle';
28796 break;
28797
28798 case 'middle':
28799 case 'center':
28800 textData.x = Math.round(textData.x + textData.width / 2);
28801 textData.anchor = 'middle';
28802 textData.dominantBaseline = 'middle';
28803 textData.alignmentBaseline = 'middle';
28804 break;
28805
28806 case 'right':
28807 case 'end':
28808 textData.x = Math.round(textData.x + textData.width - textData.textMargin);
28809 textData.anchor = 'end';
28810 textData.dominantBaseline = 'middle';
28811 textData.alignmentBaseline = 'middle';
28812 break;
28813 }
28814 }
28815
28816 for (var i = 0; i < lines.length; i++) {
28817 var line = lines[i];
28818
28819 if (typeof textData.textMargin !== 'undefined' && textData.textMargin === 0 && typeof textData.fontSize !== 'undefined') {
28820 dy = i * textData.fontSize;
28821 }
28822
28823 var textElem = elem.append('text');
28824 textElem.attr('x', textData.x);
28825 textElem.attr('y', yfunc());
28826
28827 if (typeof textData.anchor !== 'undefined') {
28828 textElem.attr('text-anchor', textData.anchor).attr('dominant-baseline', textData.dominantBaseline).attr('alignment-baseline', textData.alignmentBaseline);
28829 }
28830
28831 if (typeof textData.fontFamily !== 'undefined') {
28832 textElem.style('font-family', textData.fontFamily);
28833 }
28834
28835 if (typeof textData.fontSize !== 'undefined') {
28836 textElem.style('font-size', textData.fontSize);
28837 }
28838
28839 if (typeof textData.fontWeight !== 'undefined') {
28840 textElem.style('font-weight', textData.fontWeight);
28841 }
28842
28843 if (typeof textData.fill !== 'undefined') {
28844 textElem.attr('fill', textData.fill);
28845 }
28846
28847 if (typeof textData.class !== 'undefined') {
28848 textElem.attr('class', textData.class);
28849 }
28850
28851 if (typeof textData.dy !== 'undefined') {
28852 textElem.attr('dy', textData.dy);
28853 } else if (dy !== 0) {
28854 textElem.attr('dy', dy);
28855 }
28856
28857 if (textData.tspan) {
28858 var span = textElem.append('tspan');
28859 span.attr('x', textData.x);
28860
28861 if (typeof textData.fill !== 'undefined') {
28862 span.attr('fill', textData.fill);
28863 }
28864
28865 span.text(line);
28866 } else {
28867 textElem.text(line);
28868 }
28869
28870 if (typeof textData.valign !== 'undefined' && typeof textData.textMargin !== 'undefined' && textData.textMargin > 0) {
28871 textHeight += (textElem._groups || textElem)[0][0].getBBox().height;
28872 prevTextHeight = textHeight;
28873 }
28874
28875 textElems.push(textElem);
28876 }
28877
28878 return textElems;
28879};
28880var drawLabel = function drawLabel(elem, txtObject) {
28881 /**
28882 * @param {any} x
28883 * @param {any} y
28884 * @param {any} width
28885 * @param {any} height
28886 * @param {any} cut
28887 * @returns {any}
28888 */
28889 function genPoints(x, y, width, height, cut) {
28890 return x + ',' + y + ' ' + (x + width) + ',' + y + ' ' + (x + width) + ',' + (y + height - cut) + ' ' + (x + width - cut * 1.2) + ',' + (y + height) + ' ' + x + ',' + (y + height);
28891 }
28892
28893 var polygon = elem.append('polygon');
28894 polygon.attr('points', genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7));
28895 polygon.attr('class', 'labelBox');
28896 txtObject.y = txtObject.y + txtObject.height / 2;
28897 drawText(elem, txtObject);
28898 return polygon;
28899};
28900var actorCnt = -1;
28901var fixLifeLineHeights = function fixLifeLineHeights(diagram, bounds) {
28902 if (!diagram.selectAll) return;
28903 diagram.selectAll('.actor-line').attr('class', '200').attr('y2', bounds - 55);
28904};
28905/**
28906 * Draws an actor in the diagram with the attached line
28907 *
28908 * @param {any} elem - The diagram we'll draw to.
28909 * @param {any} actor - The actor to draw.
28910 * @param {any} conf - DrawText implementation discriminator object
28911 */
28912
28913var drawActorTypeParticipant = function drawActorTypeParticipant(elem, actor, conf) {
28914 var center = actor.x + actor.width / 2;
28915 var boxpluslineGroup = elem.append('g');
28916 var g = boxpluslineGroup;
28917
28918 if (actor.y === 0) {
28919 actorCnt++;
28920 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');
28921 g = boxpluslineGroup.append('g');
28922 actor.actorCnt = actorCnt;
28923
28924 if (actor.links != null) {
28925 g.attr('id', 'root-' + actorCnt);
28926 addPopupInteraction('#root-' + actorCnt, actorCnt);
28927 }
28928 }
28929
28930 var rect = getNoteRect();
28931 var cssclass = 'actor';
28932
28933 if (actor.properties != null && actor.properties['class']) {
28934 cssclass = actor.properties['class'];
28935 } else {
28936 rect.fill = '#eaeaea';
28937 }
28938
28939 rect.x = actor.x;
28940 rect.y = actor.y;
28941 rect.width = actor.width;
28942 rect.height = actor.height;
28943 rect.class = cssclass;
28944 rect.rx = 3;
28945 rect.ry = 3;
28946 var rectElem = drawRect(g, rect);
28947 actor.rectData = rect;
28948
28949 if (actor.properties != null && actor.properties['icon']) {
28950 var iconSrc = actor.properties['icon'].trim();
28951
28952 if (iconSrc.charAt(0) === '@') {
28953 drawEmbeddedImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc.substr(1));
28954 } else {
28955 drawImage(g, rect.x + rect.width - 20, rect.y + 10, iconSrc);
28956 }
28957 }
28958
28959 _drawTextCandidateFunc(conf)(actor.description, g, rect.x, rect.y, rect.width, rect.height, {
28960 class: 'actor'
28961 }, conf);
28962
28963 var height = actor.height;
28964
28965 if (rectElem.node) {
28966 var bounds = rectElem.node().getBBox();
28967 actor.height = bounds.height;
28968 height = bounds.height;
28969 }
28970
28971 return height;
28972};
28973
28974var drawActorTypeActor = function drawActorTypeActor(elem, actor, conf) {
28975 var center = actor.x + actor.width / 2;
28976
28977 if (actor.y === 0) {
28978 actorCnt++;
28979 elem.append('line').attr('id', 'actor' + actorCnt).attr('x1', center).attr('y1', 80).attr('x2', center).attr('y2', 2000).attr('class', 'actor-line').attr('stroke-width', '0.5px').attr('stroke', '#999');
28980 }
28981
28982 var actElem = elem.append('g');
28983 actElem.attr('class', 'actor-man');
28984 var rect = getNoteRect();
28985 rect.x = actor.x;
28986 rect.y = actor.y;
28987 rect.fill = '#eaeaea';
28988 rect.width = actor.width;
28989 rect.height = actor.height;
28990 rect.class = 'actor';
28991 rect.rx = 3;
28992 rect.ry = 3; // drawRect(actElem, rect);
28993
28994 actElem.append('line').attr('id', 'actor-man-torso' + actorCnt).attr('x1', center).attr('y1', actor.y + 25).attr('x2', center).attr('y2', actor.y + 45);
28995 actElem.append('line').attr('id', 'actor-man-arms' + actorCnt).attr('x1', center - 18).attr('y1', actor.y + 33).attr('x2', center + 18).attr('y2', actor.y + 33);
28996 actElem.append('line').attr('x1', center - 18).attr('y1', actor.y + 60).attr('x2', center).attr('y2', actor.y + 45);
28997 actElem.append('line').attr('x1', center).attr('y1', actor.y + 45).attr('x2', center + 16).attr('y2', actor.y + 60);
28998 var circle = actElem.append('circle');
28999 circle.attr('cx', actor.x + actor.width / 2);
29000 circle.attr('cy', actor.y + 10);
29001 circle.attr('r', 15);
29002 circle.attr('width', actor.width);
29003 circle.attr('height', actor.height);
29004 var bounds = actElem.node().getBBox();
29005 actor.height = bounds.height;
29006
29007 _drawTextCandidateFunc(conf)(actor.description, actElem, rect.x, rect.y + 35, rect.width, rect.height, {
29008 class: 'actor'
29009 }, conf);
29010
29011 return actor.height;
29012};
29013
29014var drawActor = function drawActor(elem, actor, conf) {
29015 switch (actor.type) {
29016 case 'actor':
29017 return drawActorTypeActor(elem, actor, conf);
29018
29019 case 'participant':
29020 return drawActorTypeParticipant(elem, actor, conf);
29021 }
29022};
29023var anchorElement = function anchorElement(elem) {
29024 return elem.append('g');
29025};
29026/**
29027 * Draws an activation in the diagram
29028 *
29029 * @param {any} elem - Element to append activation rect.
29030 * @param {any} bounds - Activation box bounds.
29031 * @param {any} verticalPos - Precise y cooridnate of bottom activation box edge.
29032 * @param {any} conf - Sequence diagram config object.
29033 * @param {any} actorActivations - Number of activations on the actor.
29034 */
29035
29036var drawActivation = function drawActivation(elem, bounds, verticalPos, conf, actorActivations) {
29037 var rect = getNoteRect();
29038 var g = bounds.anchored;
29039 rect.x = bounds.startx;
29040 rect.y = bounds.starty;
29041 rect.class = 'activation' + actorActivations % 3; // Will evaluate to 0, 1 or 2
29042
29043 rect.width = bounds.stopx - bounds.startx;
29044 rect.height = verticalPos - bounds.starty;
29045 drawRect(g, rect);
29046};
29047/**
29048 * Draws a loop in the diagram
29049 *
29050 * @param {any} elem - Elemenet to append the loop to.
29051 * @param {any} loopModel - LoopModel of the given loop.
29052 * @param {any} labelText - Text within the loop.
29053 * @param {any} conf - Diagrom configuration
29054 * @returns {any}
29055 */
29056
29057var drawLoop = function drawLoop(elem, loopModel, labelText, conf) {
29058 var boxMargin = conf.boxMargin,
29059 boxTextMargin = conf.boxTextMargin,
29060 labelBoxHeight = conf.labelBoxHeight,
29061 labelBoxWidth = conf.labelBoxWidth,
29062 fontFamily = conf.messageFontFamily,
29063 fontSize = conf.messageFontSize,
29064 fontWeight = conf.messageFontWeight;
29065 var g = elem.append('g');
29066
29067 var drawLoopLine = function drawLoopLine(startx, starty, stopx, stopy) {
29068 return g.append('line').attr('x1', startx).attr('y1', starty).attr('x2', stopx).attr('y2', stopy).attr('class', 'loopLine');
29069 };
29070
29071 drawLoopLine(loopModel.startx, loopModel.starty, loopModel.stopx, loopModel.starty);
29072 drawLoopLine(loopModel.stopx, loopModel.starty, loopModel.stopx, loopModel.stopy);
29073 drawLoopLine(loopModel.startx, loopModel.stopy, loopModel.stopx, loopModel.stopy);
29074 drawLoopLine(loopModel.startx, loopModel.starty, loopModel.startx, loopModel.stopy);
29075
29076 if (typeof loopModel.sections !== 'undefined') {
29077 loopModel.sections.forEach(function (item) {
29078 drawLoopLine(loopModel.startx, item.y, loopModel.stopx, item.y).style('stroke-dasharray', '3, 3');
29079 });
29080 }
29081
29082 var txt = getTextObj();
29083 txt.text = labelText;
29084 txt.x = loopModel.startx;
29085 txt.y = loopModel.starty;
29086 txt.fontFamily = fontFamily;
29087 txt.fontSize = fontSize;
29088 txt.fontWeight = fontWeight;
29089 txt.anchor = 'middle';
29090 txt.valign = 'middle';
29091 txt.tspan = false;
29092 txt.width = labelBoxWidth || 50;
29093 txt.height = labelBoxHeight || 20;
29094 txt.textMargin = boxTextMargin;
29095 txt.class = 'labelText';
29096 drawLabel(g, txt);
29097 txt = getTextObj();
29098 txt.text = loopModel.title;
29099 txt.x = loopModel.startx + labelBoxWidth / 2 + (loopModel.stopx - loopModel.startx) / 2;
29100 txt.y = loopModel.starty + boxMargin + boxTextMargin;
29101 txt.anchor = 'middle';
29102 txt.valign = 'middle';
29103 txt.textMargin = boxTextMargin;
29104 txt.class = 'loopText';
29105 txt.fontFamily = fontFamily;
29106 txt.fontSize = fontSize;
29107 txt.fontWeight = fontWeight;
29108 txt.wrap = true;
29109 var textElem = drawText(g, txt);
29110
29111 if (typeof loopModel.sectionTitles !== 'undefined') {
29112 loopModel.sectionTitles.forEach(function (item, idx) {
29113 if (item.message) {
29114 txt.text = item.message;
29115 txt.x = loopModel.startx + (loopModel.stopx - loopModel.startx) / 2;
29116 txt.y = loopModel.sections[idx].y + boxMargin + boxTextMargin;
29117 txt.class = 'loopText';
29118 txt.anchor = 'middle';
29119 txt.valign = 'middle';
29120 txt.tspan = false;
29121 txt.fontFamily = fontFamily;
29122 txt.fontSize = fontSize;
29123 txt.fontWeight = fontWeight;
29124 txt.wrap = loopModel.wrap;
29125 textElem = drawText(g, txt);
29126 var sectionHeight = Math.round(textElem.map(function (te) {
29127 return (te._groups || te)[0][0].getBBox().height;
29128 }).reduce(function (acc, curr) {
29129 return acc + curr;
29130 }));
29131 loopModel.sections[idx].height += sectionHeight - (boxMargin + boxTextMargin);
29132 }
29133 });
29134 }
29135
29136 loopModel.height = Math.round(loopModel.stopy - loopModel.starty);
29137 return g;
29138};
29139/**
29140 * Draws a background rectangle
29141 *
29142 * @param {any} elem Diagram (reference for bounds)
29143 * @param {any} bounds Shape of the rectangle
29144 */
29145
29146var drawBackgroundRect = function drawBackgroundRect(elem, bounds) {
29147 var rectElem = drawRect(elem, {
29148 x: bounds.startx,
29149 y: bounds.starty,
29150 width: bounds.stopx - bounds.startx,
29151 height: bounds.stopy - bounds.starty,
29152 fill: bounds.fill,
29153 class: 'rect'
29154 });
29155 rectElem.lower();
29156};
29157var insertDatabaseIcon = function insertDatabaseIcon(elem) {
29158 elem.append('defs').append('symbol').attr('id', 'database').attr('fill-rule', 'evenodd').attr('clip-rule', 'evenodd').append('path').attr('transform', 'scale(.5)').attr('d', 'M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z');
29159};
29160var insertComputerIcon = function insertComputerIcon(elem) {
29161 elem.append('defs').append('symbol').attr('id', 'computer').attr('width', '24').attr('height', '24').append('path').attr('transform', 'scale(.5)').attr('d', 'M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z');
29162};
29163var insertClockIcon = function insertClockIcon(elem) {
29164 elem.append('defs').append('symbol').attr('id', 'clock').attr('width', '24').attr('height', '24').append('path').attr('transform', 'scale(.5)').attr('d', 'M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z');
29165};
29166/**
29167 * Setup arrow head and define the marker. The result is appended to the svg.
29168 *
29169 * @param elem
29170 */
29171
29172var insertArrowHead = function insertArrowHead(elem) {
29173 elem.append('defs').append('marker').attr('id', 'arrowhead').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'); // this is actual shape for arrowhead
29174};
29175/**
29176 * Setup arrow head and define the marker. The result is appended to the svg.
29177 *
29178 * @param {any} elem
29179 */
29180
29181var insertArrowFilledHead = function insertArrowFilledHead(elem) {
29182 elem.append('defs').append('marker').attr('id', 'filled-head').attr('refX', 18).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');
29183};
29184/**
29185 * Setup node number. The result is appended to the svg.
29186 *
29187 * @param {any} elem
29188 */
29189
29190var insertSequenceNumber = function insertSequenceNumber(elem) {
29191 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');
29192};
29193/**
29194 * Setup arrow head and define the marker. The result is appended to the svg.
29195 *
29196 * @param {any} elem
29197 */
29198
29199var insertArrowCrossHead = function insertArrowCrossHead(elem) {
29200 var defs = elem.append('defs');
29201 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
29202
29203 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
29204
29205 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
29206};
29207var getTextObj = function getTextObj() {
29208 return {
29209 x: 0,
29210 y: 0,
29211 fill: undefined,
29212 anchor: undefined,
29213 style: '#666',
29214 width: undefined,
29215 height: undefined,
29216 textMargin: 0,
29217 rx: 0,
29218 ry: 0,
29219 tspan: true,
29220 valign: undefined
29221 };
29222};
29223var getNoteRect = function getNoteRect() {
29224 return {
29225 x: 0,
29226 y: 0,
29227 fill: '#EDF2AE',
29228 stroke: '#666',
29229 width: 100,
29230 anchor: 'start',
29231 height: 100,
29232 rx: 0,
29233 ry: 0
29234 };
29235};
29236
29237var _drawTextCandidateFunc = function () {
29238 /**
29239 * @param {any} content
29240 * @param {any} g
29241 * @param {any} x
29242 * @param {any} y
29243 * @param {any} width
29244 * @param {any} height
29245 * @param {any} textAttrs
29246 */
29247 function byText(content, g, x, y, width, height, textAttrs) {
29248 var text = g.append('text').attr('x', x + width / 2).attr('y', y + height / 2 + 5).style('text-anchor', 'middle').text(content);
29249
29250 _setTextAttrs(text, textAttrs);
29251 }
29252 /**
29253 * @param {any} content
29254 * @param {any} g
29255 * @param {any} x
29256 * @param {any} y
29257 * @param {any} width
29258 * @param {any} height
29259 * @param {any} textAttrs
29260 * @param {any} conf
29261 */
29262
29263
29264 function byTspan(content, g, x, y, width, height, textAttrs, conf) {
29265 var actorFontSize = conf.actorFontSize,
29266 actorFontFamily = conf.actorFontFamily,
29267 actorFontWeight = conf.actorFontWeight;
29268
29269 var _actorFontSize = actorFontSize && actorFontSize.replace ? actorFontSize.replace('px', '') : actorFontSize;
29270
29271 var lines = content.split(_common_common__WEBPACK_IMPORTED_MODULE_2__["default"].lineBreakRegex);
29272
29273 for (var i = 0; i < lines.length; i++) {
29274 var dy = i * _actorFontSize - _actorFontSize * (lines.length - 1) / 2;
29275 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);
29276 text.append('tspan').attr('x', x + width / 2).attr('dy', dy).text(lines[i]);
29277 text.attr('y', y + height / 2.0).attr('dominant-baseline', 'central').attr('alignment-baseline', 'central');
29278
29279 _setTextAttrs(text, textAttrs);
29280 }
29281 }
29282 /**
29283 * @param {any} content
29284 * @param {any} g
29285 * @param {any} x
29286 * @param {any} y
29287 * @param {any} width
29288 * @param {any} height
29289 * @param {any} textAttrs
29290 * @param {any} conf
29291 */
29292
29293
29294 function byFo(content, g, x, y, width, height, textAttrs, conf) {
29295 var s = g.append('switch');
29296 var f = s.append('foreignObject').attr('x', x).attr('y', y).attr('width', width).attr('height', height);
29297 var text = f.append('xhtml:div').style('display', 'table').style('height', '100%').style('width', '100%');
29298 text.append('div').style('display', 'table-cell').style('text-align', 'center').style('vertical-align', 'middle').text(content);
29299 byTspan(content, s, x, y, width, height, textAttrs, conf);
29300
29301 _setTextAttrs(text, textAttrs);
29302 }
29303 /**
29304 * @param {any} toText
29305 * @param {any} fromTextAttrsDict
29306 */
29307
29308
29309 function _setTextAttrs(toText, fromTextAttrsDict) {
29310 for (var key in fromTextAttrsDict) {
29311 if (fromTextAttrsDict.hasOwnProperty(key)) {
29312 // eslint-disable-line
29313 toText.attr(key, fromTextAttrsDict[key]);
29314 }
29315 }
29316 }
29317
29318 return function (conf) {
29319 return conf.textPlacement === 'fo' ? byFo : conf.textPlacement === 'old' ? byText : byTspan;
29320 };
29321}();
29322
29323var _drawMenuItemTextCandidateFunc = function () {
29324 /**
29325 * @param {any} content
29326 * @param {any} g
29327 * @param {any} x
29328 * @param {any} y
29329 * @param {any} width
29330 * @param {any} height
29331 * @param {any} textAttrs
29332 */
29333 function byText(content, g, x, y, width, height, textAttrs) {
29334 var text = g.append('text').attr('x', x).attr('y', y).style('text-anchor', 'start').text(content);
29335
29336 _setTextAttrs(text, textAttrs);
29337 }
29338 /**
29339 * @param {any} content
29340 * @param {any} g
29341 * @param {any} x
29342 * @param {any} y
29343 * @param {any} width
29344 * @param {any} height
29345 * @param {any} textAttrs
29346 * @param {any} conf
29347 */
29348
29349
29350 function byTspan(content, g, x, y, width, height, textAttrs, conf) {
29351 var actorFontSize = conf.actorFontSize,
29352 actorFontFamily = conf.actorFontFamily,
29353 actorFontWeight = conf.actorFontWeight;
29354 var lines = content.split(_common_common__WEBPACK_IMPORTED_MODULE_2__["default"].lineBreakRegex);
29355
29356 for (var i = 0; i < lines.length; i++) {
29357 var dy = i * actorFontSize - actorFontSize * (lines.length - 1) / 2;
29358 var text = g.append('text').attr('x', x).attr('y', y).style('text-anchor', 'start').style('font-size', actorFontSize).style('font-weight', actorFontWeight).style('font-family', actorFontFamily);
29359 text.append('tspan').attr('x', x).attr('dy', dy).text(lines[i]);
29360 text.attr('y', y + height / 2.0).attr('dominant-baseline', 'central').attr('alignment-baseline', 'central');
29361
29362 _setTextAttrs(text, textAttrs);
29363 }
29364 }
29365 /**
29366 * @param {any} content
29367 * @param {any} g
29368 * @param {any} x
29369 * @param {any} y
29370 * @param {any} width
29371 * @param {any} height
29372 * @param {any} textAttrs
29373 * @param {any} conf
29374 */
29375
29376
29377 function byFo(content, g, x, y, width, height, textAttrs, conf) {
29378 var s = g.append('switch');
29379 var f = s.append('foreignObject').attr('x', x).attr('y', y).attr('width', width).attr('height', height);
29380 var text = f.append('xhtml:div').style('display', 'table').style('height', '100%').style('width', '100%');
29381 text.append('div').style('display', 'table-cell').style('text-align', 'center').style('vertical-align', 'middle').text(content);
29382 byTspan(content, s, x, y, width, height, textAttrs, conf);
29383
29384 _setTextAttrs(text, textAttrs);
29385 }
29386 /**
29387 * @param {any} toText
29388 * @param {any} fromTextAttrsDict
29389 */
29390
29391
29392 function _setTextAttrs(toText, fromTextAttrsDict) {
29393 for (var key in fromTextAttrsDict) {
29394 if (fromTextAttrsDict.hasOwnProperty(key)) {
29395 // eslint-disable-line
29396 toText.attr(key, fromTextAttrsDict[key]);
29397 }
29398 }
29399 }
29400
29401 return function (conf) {
29402 return conf.textPlacement === 'fo' ? byFo : conf.textPlacement === 'old' ? byText : byTspan;
29403 };
29404}();
29405
29406/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
29407 drawRect: drawRect,
29408 drawText: drawText,
29409 drawLabel: drawLabel,
29410 drawActor: drawActor,
29411 drawPopup: drawPopup,
29412 drawImage: drawImage,
29413 drawEmbeddedImage: drawEmbeddedImage,
29414 anchorElement: anchorElement,
29415 drawActivation: drawActivation,
29416 drawLoop: drawLoop,
29417 drawBackgroundRect: drawBackgroundRect,
29418 insertArrowHead: insertArrowHead,
29419 insertArrowFilledHead: insertArrowFilledHead,
29420 insertSequenceNumber: insertSequenceNumber,
29421 insertArrowCrossHead: insertArrowCrossHead,
29422 insertDatabaseIcon: insertDatabaseIcon,
29423 insertComputerIcon: insertComputerIcon,
29424 insertClockIcon: insertClockIcon,
29425 getTextObj: getTextObj,
29426 getNoteRect: getNoteRect,
29427 popupMenu: popupMenu,
29428 popdownMenu: popdownMenu,
29429 fixLifeLineHeights: fixLifeLineHeights,
29430 sanitizeUrl: _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_0__.sanitizeUrl
29431});
29432
29433/***/ }),
29434
29435/***/ "./src/diagrams/state/id-cache.js":
29436/*!****************************************!*\
29437 !*** ./src/diagrams/state/id-cache.js ***!
29438 \****************************************/
29439/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
29440
29441"use strict";
29442__webpack_require__.r(__webpack_exports__);
29443/* harmony export */ __webpack_require__.d(__webpack_exports__, {
29444/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
29445/* harmony export */ "get": () => (/* binding */ get),
29446/* harmony export */ "keys": () => (/* binding */ keys),
29447/* harmony export */ "set": () => (/* binding */ set),
29448/* harmony export */ "size": () => (/* binding */ size)
29449/* harmony export */ });
29450var idCache = {};
29451var set = function set(key, val) {
29452 idCache[key] = val;
29453};
29454var get = function get(k) {
29455 return idCache[k];
29456};
29457var keys = function keys() {
29458 return Object.keys(idCache);
29459};
29460var size = function size() {
29461 return keys().length;
29462};
29463/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
29464 get: get,
29465 set: set,
29466 keys: keys,
29467 size: size
29468});
29469
29470/***/ }),
29471
29472/***/ "./src/diagrams/state/shapes.js":
29473/*!**************************************!*\
29474 !*** ./src/diagrams/state/shapes.js ***!
29475 \**************************************/
29476/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
29477
29478"use strict";
29479__webpack_require__.r(__webpack_exports__);
29480/* harmony export */ __webpack_require__.d(__webpack_exports__, {
29481/* harmony export */ "addTitleAndBox": () => (/* binding */ addTitleAndBox),
29482/* harmony export */ "drawDescrState": () => (/* binding */ drawDescrState),
29483/* harmony export */ "drawDivider": () => (/* binding */ drawDivider),
29484/* harmony export */ "drawEdge": () => (/* binding */ drawEdge),
29485/* harmony export */ "drawNote": () => (/* binding */ drawNote),
29486/* harmony export */ "drawSimpleState": () => (/* binding */ drawSimpleState),
29487/* harmony export */ "drawStartState": () => (/* binding */ drawStartState),
29488/* harmony export */ "drawState": () => (/* binding */ drawState),
29489/* harmony export */ "drawText": () => (/* binding */ drawText)
29490/* harmony export */ });
29491/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
29492/* harmony import */ var _id_cache_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./id-cache.js */ "./src/diagrams/state/id-cache.js");
29493/* harmony import */ var _stateDb__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./stateDb */ "./src/diagrams/state/stateDb.js");
29494/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
29495/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
29496/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ "./src/config.js");
29497/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
29498function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
29499
29500function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
29501
29502function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
29503
29504
29505
29506
29507
29508
29509
29510
29511/**
29512 * Draws a start state as a black circle
29513 *
29514 * @param {any} g
29515 */
29516
29517var drawStartState = function drawStartState(g) {
29518 return g.append('circle') // .style('stroke', 'black')
29519 // .style('fill', 'black')
29520 .attr('class', 'start-state').attr('r', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.sizeUnit).attr('cx', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.sizeUnit).attr('cy', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.sizeUnit);
29521};
29522/**
29523 * Draws a start state as a black circle
29524 *
29525 * @param {any} g
29526 */
29527
29528var drawDivider = function drawDivider(g) {
29529 return g.append('line').style('stroke', 'grey').style('stroke-dasharray', '3').attr('x1', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.textHeight).attr('class', 'divider').attr('x2', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.textHeight * 2).attr('y1', 0).attr('y2', 0);
29530};
29531/**
29532 * Draws a an end state as a black circle
29533 *
29534 * @param {any} g
29535 * @param {any} stateDef
29536 */
29537
29538var drawSimpleState = function drawSimpleState(g, stateDef) {
29539 var state = g.append('text').attr('x', 2 * (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('y', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.textHeight + 2 * (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('font-size', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.fontSize).attr('class', 'state-title').text(stateDef.id);
29540 var classBox = state.node().getBBox();
29541 g.insert('rect', ':first-child').attr('x', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('y', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('width', classBox.width + 2 * (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('height', classBox.height + 2 * (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('rx', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.radius);
29542 return state;
29543};
29544/**
29545 * Draws a state with descriptions
29546 *
29547 * @param {any} g
29548 * @param {any} stateDef
29549 * @returns
29550 */
29551
29552var drawDescrState = function drawDescrState(g, stateDef) {
29553 var addTspan = function addTspan(textEl, txt, isFirst) {
29554 var tSpan = textEl.append('tspan').attr('x', 2 * (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).text(txt);
29555
29556 if (!isFirst) {
29557 tSpan.attr('dy', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.textHeight);
29558 }
29559 };
29560
29561 var title = g.append('text').attr('x', 2 * (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('y', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.textHeight + 1.3 * (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('font-size', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.fontSize).attr('class', 'state-title').text(stateDef.descriptions[0]);
29562 var titleBox = title.node().getBBox();
29563 var titleHeight = titleBox.height;
29564 var description = g.append('text') // text label for the x axis
29565 .attr('x', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('y', titleHeight + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding * 0.4 + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.dividerMargin + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.textHeight).attr('class', 'state-description');
29566 var isFirst = true;
29567 var isSecond = true;
29568 stateDef.descriptions.forEach(function (descr) {
29569 if (!isFirst) {
29570 addTspan(description, descr, isSecond);
29571 isSecond = false;
29572 }
29573
29574 isFirst = false;
29575 });
29576 var descrLine = g.append('line') // text label for the x axis
29577 .attr('x1', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('y1', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding + titleHeight + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.dividerMargin / 2).attr('y2', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding + titleHeight + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.dividerMargin / 2).attr('class', 'descr-divider');
29578 var descrBox = description.node().getBBox();
29579 var width = Math.max(descrBox.width, titleBox.width);
29580 descrLine.attr('x2', width + 3 * (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding); // const classBox = title.node().getBBox();
29581
29582 g.insert('rect', ':first-child').attr('x', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('y', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('width', width + 2 * (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('height', descrBox.height + titleHeight + 2 * (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('rx', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.radius);
29583 return g;
29584};
29585/** Adds the creates a box around the existing content and adds a panel for the id on top of the content. */
29586
29587/**
29588 * Function that creates an title row and a frame around a substate for a composit state diagram.
29589 * The function returns a new d3 svg object with updated width and height properties;
29590 *
29591 * @param {any} g The d3 svg object for the substate to framed
29592 * @param {any} stateDef The info about the
29593 * @param {any} altBkg
29594 */
29595
29596var addTitleAndBox = function addTitleAndBox(g, stateDef, altBkg) {
29597 var pad = (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding;
29598 var dblPad = 2 * (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding;
29599 var orgBox = g.node().getBBox();
29600 var orgWidth = orgBox.width;
29601 var orgX = orgBox.x;
29602 var title = g.append('text').attr('x', 0).attr('y', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.titleShift).attr('font-size', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.fontSize).attr('class', 'state-title').text(stateDef.id);
29603 var titleBox = title.node().getBBox();
29604 var titleWidth = titleBox.width + dblPad;
29605 var width = Math.max(titleWidth, orgWidth); // + dblPad;
29606
29607 if (width === orgWidth) {
29608 width = width + dblPad;
29609 }
29610
29611 var startX; // const lineY = 1 - getConfig().state.textHeight;
29612 // const descrLine = g
29613 // .append('line') // text label for the x axis
29614 // .attr('x1', 0)
29615 // .attr('y1', lineY)
29616 // .attr('y2', lineY)
29617 // .attr('class', 'descr-divider');
29618
29619 var graphBox = g.node().getBBox(); // descrLine.attr('x2', graphBox.width + getConfig().state.padding);
29620
29621 if (stateDef.doc) {// cnsole.warn(
29622 // stateDef.id,
29623 // 'orgX: ',
29624 // orgX,
29625 // 'width: ',
29626 // width,
29627 // 'titleWidth: ',
29628 // titleWidth,
29629 // 'orgWidth: ',
29630 // orgWidth,
29631 // 'width',
29632 // width
29633 // );
29634 }
29635
29636 startX = orgX - pad;
29637
29638 if (titleWidth > orgWidth) {
29639 startX = (orgWidth - width) / 2 + pad;
29640 }
29641
29642 if (Math.abs(orgX - graphBox.x) < pad) {
29643 if (titleWidth > orgWidth) {
29644 startX = orgX - (titleWidth - orgWidth) / 2;
29645 }
29646 }
29647
29648 var lineY = 1 - (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.textHeight; // White color
29649
29650 g.insert('rect', ':first-child').attr('x', startX).attr('y', lineY).attr('class', altBkg ? 'alt-composit' : 'composit').attr('width', width).attr('height', graphBox.height + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.textHeight + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.titleShift + 1).attr('rx', '0');
29651 title.attr('x', startX + pad);
29652 if (titleWidth <= orgWidth) title.attr('x', orgX + (width - dblPad) / 2 - titleWidth / 2 + pad); // Title background
29653
29654 g.insert('rect', ':first-child').attr('x', startX).attr('y', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.titleShift - (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.textHeight - (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('width', width) // Just needs to be higher then the descr line, will be clipped by the white color box
29655 .attr('height', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.textHeight * 3).attr('rx', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.radius); // Full background
29656
29657 g.insert('rect', ':first-child').attr('x', startX).attr('y', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.titleShift - (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.textHeight - (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('width', width).attr('height', graphBox.height + 3 + 2 * (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.textHeight).attr('rx', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.radius);
29658 return g;
29659};
29660
29661var drawEndState = function drawEndState(g) {
29662 g.append('circle') // .style('stroke', 'black')
29663 // .style('fill', 'white')
29664 .attr('class', 'end-state-outer').attr('r', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.sizeUnit + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.miniPadding).attr('cx', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.sizeUnit + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.miniPadding).attr('cy', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.sizeUnit + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.miniPadding);
29665 return g.append('circle') // .style('stroke', 'black')
29666 // .style('fill', 'black')
29667 .attr('class', 'end-state-inner').attr('r', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.sizeUnit).attr('cx', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.sizeUnit + 2).attr('cy', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.sizeUnit + 2);
29668};
29669
29670var drawForkJoinState = function drawForkJoinState(g, stateDef) {
29671 var width = (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.forkWidth;
29672 var height = (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.forkHeight;
29673
29674 if (stateDef.parentId) {
29675 var tmp = width;
29676 width = height;
29677 height = tmp;
29678 }
29679
29680 return g.append('rect').style('stroke', 'black').style('fill', 'black').attr('width', width).attr('height', height).attr('x', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('y', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding);
29681};
29682
29683var drawText = function drawText(elem, textData) {
29684 // Remove and ignore br:s
29685 var nText = textData.text.replace(_common_common__WEBPACK_IMPORTED_MODULE_2__["default"].lineBreakRegex, ' ');
29686 var textElem = elem.append('text');
29687 textElem.attr('x', textData.x);
29688 textElem.attr('y', textData.y);
29689 textElem.style('text-anchor', textData.anchor);
29690 textElem.attr('fill', textData.fill);
29691
29692 if (typeof textData.class !== 'undefined') {
29693 textElem.attr('class', textData.class);
29694 }
29695
29696 var span = textElem.append('tspan');
29697 span.attr('x', textData.x + textData.textMargin * 2);
29698 span.attr('fill', textData.fill);
29699 span.text(nText);
29700 return textElem;
29701};
29702
29703var _drawLongText = function _drawLongText(_text, x, y, g) {
29704 var textHeight = 0;
29705 var textElem = g.append('text');
29706 textElem.style('text-anchor', 'start');
29707 textElem.attr('class', 'noteText');
29708
29709 var text = _text.replace(/\r\n/g, '<br/>');
29710
29711 text = text.replace(/\n/g, '<br/>');
29712 var lines = text.split(_common_common__WEBPACK_IMPORTED_MODULE_2__["default"].lineBreakRegex);
29713 var tHeight = 1.25 * (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.noteMargin;
29714
29715 var _iterator = _createForOfIteratorHelper(lines),
29716 _step;
29717
29718 try {
29719 for (_iterator.s(); !(_step = _iterator.n()).done;) {
29720 var _line = _step.value;
29721
29722 var txt = _line.trim();
29723
29724 if (txt.length > 0) {
29725 var span = textElem.append('tspan');
29726 span.text(txt);
29727
29728 if (tHeight === 0) {
29729 var textBounds = span.node().getBBox();
29730 tHeight += textBounds.height;
29731 }
29732
29733 textHeight += tHeight;
29734 span.attr('x', x + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.noteMargin);
29735 span.attr('y', y + textHeight + 1.25 * (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.noteMargin);
29736 }
29737 }
29738 } catch (err) {
29739 _iterator.e(err);
29740 } finally {
29741 _iterator.f();
29742 }
29743
29744 return {
29745 textWidth: textElem.node().getBBox().width,
29746 textHeight: textHeight
29747 };
29748};
29749/**
29750 * Draws a note to the diagram
29751 *
29752 * @param text - The text of the given note.
29753 * @param g - The element the note is attached to.
29754 */
29755
29756
29757var drawNote = function drawNote(text, g) {
29758 g.attr('class', 'state-note');
29759 var note = g.append('rect').attr('x', 0).attr('y', (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding);
29760 var rectElem = g.append('g');
29761
29762 var _drawLongText2 = _drawLongText(text, 0, 0, rectElem),
29763 textWidth = _drawLongText2.textWidth,
29764 textHeight = _drawLongText2.textHeight;
29765
29766 note.attr('height', textHeight + 2 * (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.noteMargin);
29767 note.attr('width', textWidth + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.noteMargin * 2);
29768 return note;
29769};
29770/**
29771 * Starting point for drawing a state. The function finds out the specifics about the state and
29772 * renders with appropriate function.
29773 *
29774 * @param {any} elem
29775 * @param {any} stateDef
29776 */
29777
29778var drawState = function drawState(elem, stateDef) {
29779 var id = stateDef.id;
29780 var stateInfo = {
29781 id: id,
29782 label: stateDef.id,
29783 width: 0,
29784 height: 0
29785 };
29786 var g = elem.append('g').attr('id', id).attr('class', 'stateGroup');
29787 if (stateDef.type === 'start') drawStartState(g);
29788 if (stateDef.type === 'end') drawEndState(g);
29789 if (stateDef.type === 'fork' || stateDef.type === 'join') drawForkJoinState(g, stateDef);
29790 if (stateDef.type === 'note') drawNote(stateDef.note.text, g);
29791 if (stateDef.type === 'divider') drawDivider(g);
29792 if (stateDef.type === 'default' && stateDef.descriptions.length === 0) drawSimpleState(g, stateDef);
29793 if (stateDef.type === 'default' && stateDef.descriptions.length > 0) drawDescrState(g, stateDef);
29794 var stateBox = g.node().getBBox();
29795 stateInfo.width = stateBox.width + 2 * (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding;
29796 stateInfo.height = stateBox.height + 2 * (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding;
29797 _id_cache_js__WEBPACK_IMPORTED_MODULE_3__["default"].set(id, stateInfo); // stateCnt++;
29798
29799 return stateInfo;
29800};
29801var edgeCount = 0;
29802var drawEdge = function drawEdge(elem, path, relation) {
29803 var getRelationType = function getRelationType(type) {
29804 switch (type) {
29805 case _stateDb__WEBPACK_IMPORTED_MODULE_4__["default"].relationType.AGGREGATION:
29806 return 'aggregation';
29807
29808 case _stateDb__WEBPACK_IMPORTED_MODULE_4__["default"].relationType.EXTENSION:
29809 return 'extension';
29810
29811 case _stateDb__WEBPACK_IMPORTED_MODULE_4__["default"].relationType.COMPOSITION:
29812 return 'composition';
29813
29814 case _stateDb__WEBPACK_IMPORTED_MODULE_4__["default"].relationType.DEPENDENCY:
29815 return 'dependency';
29816 }
29817 };
29818
29819 path.points = path.points.filter(function (p) {
29820 return !Number.isNaN(p.y);
29821 }); // The data for our line
29822
29823 var lineData = path.points; // This is the accessor function we talked about above
29824
29825 var lineFunction = (0,d3__WEBPACK_IMPORTED_MODULE_0__.line)().x(function (d) {
29826 return d.x;
29827 }).y(function (d) {
29828 return d.y;
29829 }).curve(d3__WEBPACK_IMPORTED_MODULE_0__.curveBasis);
29830 var svgPath = elem.append('path').attr('d', lineFunction(lineData)).attr('id', 'edge' + edgeCount).attr('class', 'transition');
29831 var url = '';
29832
29833 if ((0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.arrowMarkerAbsolute) {
29834 url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
29835 url = url.replace(/\(/g, '\\(');
29836 url = url.replace(/\)/g, '\\)');
29837 }
29838
29839 svgPath.attr('marker-end', 'url(' + url + '#' + getRelationType(_stateDb__WEBPACK_IMPORTED_MODULE_4__["default"].relationType.DEPENDENCY) + 'End' + ')');
29840
29841 if (typeof relation.title !== 'undefined') {
29842 var label = elem.append('g').attr('class', 'stateLabel');
29843
29844 var _utils$calcLabelPosit = _utils__WEBPACK_IMPORTED_MODULE_5__["default"].calcLabelPosition(path.points),
29845 x = _utils$calcLabelPosit.x,
29846 y = _utils$calcLabelPosit.y;
29847
29848 var rows = _common_common__WEBPACK_IMPORTED_MODULE_2__["default"].getRows(relation.title);
29849 var titleHeight = 0;
29850 var titleRows = [];
29851 var maxWidth = 0;
29852 var minX = 0;
29853
29854 for (var i = 0; i <= rows.length; i++) {
29855 var title = label.append('text').attr('text-anchor', 'middle').text(rows[i]).attr('x', x).attr('y', y + titleHeight);
29856 var boundstmp = title.node().getBBox();
29857 maxWidth = Math.max(maxWidth, boundstmp.width);
29858 minX = Math.min(minX, boundstmp.x);
29859 _logger__WEBPACK_IMPORTED_MODULE_6__.log.info(boundstmp.x, x, y + titleHeight);
29860
29861 if (titleHeight === 0) {
29862 var titleBox = title.node().getBBox();
29863 titleHeight = titleBox.height;
29864 _logger__WEBPACK_IMPORTED_MODULE_6__.log.info('Title height', titleHeight, y);
29865 }
29866
29867 titleRows.push(title);
29868 }
29869
29870 var boxHeight = titleHeight * rows.length;
29871
29872 if (rows.length > 1) {
29873 var heightAdj = (rows.length - 1) * titleHeight * 0.5;
29874 titleRows.forEach(function (title, i) {
29875 return title.attr('y', y + i * titleHeight - heightAdj);
29876 });
29877 boxHeight = titleHeight * rows.length;
29878 }
29879
29880 var bounds = label.node().getBBox();
29881 label.insert('rect', ':first-child').attr('class', 'box').attr('x', x - maxWidth / 2 - (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding / 2).attr('y', y - boxHeight / 2 - (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding / 2 - 3.5).attr('width', maxWidth + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding).attr('height', boxHeight + (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().state.padding);
29882 _logger__WEBPACK_IMPORTED_MODULE_6__.log.info(bounds); //label.attr('transform', '0 -' + (bounds.y / 2));
29883 // Debug points
29884 // path.points.forEach(point => {
29885 // g.append('circle')
29886 // .style('stroke', 'red')
29887 // .style('fill', 'red')
29888 // .attr('r', 1)
29889 // .attr('cx', point.x)
29890 // .attr('cy', point.y);
29891 // });
29892 // g.append('circle')
29893 // .style('stroke', 'blue')
29894 // .style('fill', 'blue')
29895 // .attr('r', 1)
29896 // .attr('cx', x)
29897 // .attr('cy', y);
29898 }
29899
29900 edgeCount++;
29901};
29902
29903/***/ }),
29904
29905/***/ "./src/diagrams/state/stateDb.js":
29906/*!***************************************!*\
29907 !*** ./src/diagrams/state/stateDb.js ***!
29908 \***************************************/
29909/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
29910
29911"use strict";
29912__webpack_require__.r(__webpack_exports__);
29913/* harmony export */ __webpack_require__.d(__webpack_exports__, {
29914/* harmony export */ "addRelation": () => (/* binding */ addRelation),
29915/* harmony export */ "addState": () => (/* binding */ addState),
29916/* harmony export */ "cleanupLabel": () => (/* binding */ cleanupLabel),
29917/* harmony export */ "clear": () => (/* binding */ clear),
29918/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
29919/* harmony export */ "getRelations": () => (/* binding */ getRelations),
29920/* harmony export */ "getState": () => (/* binding */ getState),
29921/* harmony export */ "getStates": () => (/* binding */ getStates),
29922/* harmony export */ "lineType": () => (/* binding */ lineType),
29923/* harmony export */ "logDocuments": () => (/* binding */ logDocuments),
29924/* harmony export */ "parseDirective": () => (/* binding */ parseDirective),
29925/* harmony export */ "relationType": () => (/* binding */ relationType)
29926/* harmony export */ });
29927/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
29928/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
29929/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
29930/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
29931/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ "./src/config.js");
29932/* harmony import */ var _commonDb__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../commonDb */ "./src/commonDb.js");
29933function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
29934
29935
29936
29937
29938
29939
29940
29941
29942var sanitizeText = function sanitizeText(txt) {
29943 return _common_common__WEBPACK_IMPORTED_MODULE_0__["default"].sanitizeText(txt, _config__WEBPACK_IMPORTED_MODULE_1__.getConfig());
29944};
29945
29946var clone = function clone(o) {
29947 return JSON.parse(JSON.stringify(o));
29948};
29949
29950var rootDoc = [];
29951var parseDirective = function parseDirective(statement, context, type) {
29952 _mermaidAPI__WEBPACK_IMPORTED_MODULE_2__["default"].parseDirective(this, statement, context, type);
29953};
29954
29955var setRootDoc = function setRootDoc(o) {
29956 _logger__WEBPACK_IMPORTED_MODULE_3__.log.info('Setting root doc', o); // rootDoc = { id: 'root', doc: o };
29957
29958 rootDoc = o;
29959};
29960
29961var getRootDoc = function getRootDoc() {
29962 return rootDoc;
29963};
29964
29965var docTranslator = function docTranslator(parent, node, first) {
29966 if (node.stmt === 'relation') {
29967 docTranslator(parent, node.state1, true);
29968 docTranslator(parent, node.state2, false);
29969 } else {
29970 if (node.stmt === 'state') {
29971 if (node.id === '[*]') {
29972 node.id = first ? parent.id + '_start' : parent.id + '_end';
29973 node.start = first;
29974 }
29975 }
29976
29977 if (node.doc) {
29978 var doc = []; // Check for concurrency
29979
29980 var i = 0;
29981 var currentDoc = [];
29982
29983 for (i = 0; i < node.doc.length; i++) {
29984 if (node.doc[i].type === 'divider') {
29985 // debugger;
29986 var newNode = clone(node.doc[i]);
29987 newNode.doc = clone(currentDoc);
29988 doc.push(newNode);
29989 currentDoc = [];
29990 } else {
29991 currentDoc.push(node.doc[i]);
29992 }
29993 } // If any divider was encountered
29994
29995
29996 if (doc.length > 0 && currentDoc.length > 0) {
29997 var _newNode = {
29998 stmt: 'state',
29999 id: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.generateId)(),
30000 type: 'divider',
30001 doc: clone(currentDoc)
30002 };
30003 doc.push(clone(_newNode));
30004 node.doc = doc;
30005 }
30006
30007 node.doc.forEach(function (docNode) {
30008 return docTranslator(node, docNode, true);
30009 });
30010 }
30011 }
30012};
30013
30014var getRootDocV2 = function getRootDocV2() {
30015 docTranslator({
30016 id: 'root'
30017 }, {
30018 id: 'root',
30019 doc: rootDoc
30020 }, true);
30021 return {
30022 id: 'root',
30023 doc: rootDoc
30024 }; // Here
30025};
30026
30027var extract = function extract(_doc) {
30028 // const res = { states: [], relations: [] };
30029 var doc;
30030
30031 if (_doc.doc) {
30032 doc = _doc.doc;
30033 } else {
30034 doc = _doc;
30035 } // let doc = root.doc;
30036 // if (!doc) {
30037 // doc = root;
30038 // }
30039
30040
30041 _logger__WEBPACK_IMPORTED_MODULE_3__.log.info(doc);
30042 clear(true);
30043 _logger__WEBPACK_IMPORTED_MODULE_3__.log.info('Extract', doc);
30044 doc.forEach(function (item) {
30045 if (item.stmt === 'state') {
30046 addState(item.id, item.type, item.doc, item.description, item.note);
30047 }
30048
30049 if (item.stmt === 'relation') {
30050 addRelation(item.state1.id, item.state2.id, item.description);
30051 }
30052 });
30053};
30054
30055var newDoc = function newDoc() {
30056 return {
30057 relations: [],
30058 states: {},
30059 documents: {}
30060 };
30061};
30062
30063var documents = {
30064 root: newDoc()
30065};
30066var currentDocument = documents.root;
30067var startCnt = 0;
30068var endCnt = 0; // eslint-disable-line
30069// let stateCnt = 0;
30070
30071var title = 'State diagram';
30072var description = '';
30073/**
30074 * Function called by parser when a node definition has been found.
30075 *
30076 * @param {any} id
30077 * @param {any} type
30078 * @param {any} doc
30079 * @param {any} descr
30080 * @param {any} note
30081 */
30082
30083var addState = function addState(id, type, doc, descr, note) {
30084 if (typeof currentDocument.states[id] === 'undefined') {
30085 currentDocument.states[id] = {
30086 id: id,
30087 descriptions: [],
30088 type: type,
30089 doc: doc,
30090 note: note
30091 };
30092 } else {
30093 if (!currentDocument.states[id].doc) {
30094 currentDocument.states[id].doc = doc;
30095 }
30096
30097 if (!currentDocument.states[id].type) {
30098 currentDocument.states[id].type = type;
30099 }
30100 }
30101
30102 if (descr) {
30103 _logger__WEBPACK_IMPORTED_MODULE_3__.log.info('Adding state ', id, descr);
30104 if (typeof descr === 'string') addDescription(id, descr.trim());
30105
30106 if (_typeof(descr) === 'object') {
30107 descr.forEach(function (des) {
30108 return addDescription(id, des.trim());
30109 });
30110 }
30111 }
30112
30113 if (note) {
30114 currentDocument.states[id].note = note;
30115 currentDocument.states[id].note.text = _common_common__WEBPACK_IMPORTED_MODULE_0__["default"].sanitizeText(currentDocument.states[id].note.text, _config__WEBPACK_IMPORTED_MODULE_1__.getConfig());
30116 }
30117};
30118var clear = function clear(saveCommon) {
30119 documents = {
30120 root: newDoc()
30121 };
30122 currentDocument = documents.root;
30123 currentDocument = documents.root;
30124 startCnt = 0;
30125 endCnt = 0; // eslint-disable-line
30126
30127 classes = [];
30128
30129 if (!saveCommon) {
30130 (0,_commonDb__WEBPACK_IMPORTED_MODULE_5__.clear)();
30131 }
30132};
30133var getState = function getState(id) {
30134 return currentDocument.states[id];
30135};
30136var getStates = function getStates() {
30137 return currentDocument.states;
30138};
30139var logDocuments = function logDocuments() {
30140 _logger__WEBPACK_IMPORTED_MODULE_3__.log.info('Documents = ', documents);
30141};
30142var getRelations = function getRelations() {
30143 return currentDocument.relations;
30144};
30145var addRelation = function addRelation(_id1, _id2, title) {
30146 var id1 = _id1;
30147 var id2 = _id2;
30148 var type1 = 'default';
30149 var type2 = 'default';
30150
30151 if (_id1 === '[*]') {
30152 startCnt++;
30153 id1 = 'start' + startCnt;
30154 type1 = 'start';
30155 }
30156
30157 if (_id2 === '[*]') {
30158 endCnt++;
30159 id2 = 'end' + startCnt;
30160 type2 = 'end';
30161 }
30162
30163 addState(id1, type1);
30164 addState(id2, type2);
30165 currentDocument.relations.push({
30166 id1: id1,
30167 id2: id2,
30168 title: _common_common__WEBPACK_IMPORTED_MODULE_0__["default"].sanitizeText(title, _config__WEBPACK_IMPORTED_MODULE_1__.getConfig())
30169 });
30170};
30171
30172var addDescription = function addDescription(id, _descr) {
30173 var theState = currentDocument.states[id];
30174 var descr = _descr;
30175
30176 if (descr[0] === ':') {
30177 descr = descr.substr(1).trim();
30178 }
30179
30180 theState.descriptions.push(_common_common__WEBPACK_IMPORTED_MODULE_0__["default"].sanitizeText(descr, _config__WEBPACK_IMPORTED_MODULE_1__.getConfig()));
30181};
30182
30183var cleanupLabel = function cleanupLabel(label) {
30184 if (label.substring(0, 1) === ':') {
30185 return label.substr(2).trim();
30186 } else {
30187 return label.trim();
30188 }
30189};
30190var lineType = {
30191 LINE: 0,
30192 DOTTED_LINE: 1
30193};
30194var dividerCnt = 0;
30195
30196var getDividerId = function getDividerId() {
30197 dividerCnt++;
30198 return 'divider-id-' + dividerCnt;
30199};
30200
30201var classes = [];
30202
30203var getClasses = function getClasses() {
30204 return classes;
30205};
30206
30207var direction = 'TB';
30208
30209var getDirection = function getDirection() {
30210 return direction;
30211};
30212
30213var setDirection = function setDirection(dir) {
30214 direction = dir;
30215};
30216
30217var relationType = {
30218 AGGREGATION: 0,
30219 EXTENSION: 1,
30220 COMPOSITION: 2,
30221 DEPENDENCY: 3
30222};
30223
30224var trimColon = function trimColon(str) {
30225 return str && str[0] === ':' ? str.substr(1).trim() : str.trim();
30226};
30227
30228/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
30229 parseDirective: parseDirective,
30230 getConfig: function getConfig() {
30231 return _config__WEBPACK_IMPORTED_MODULE_1__.getConfig().state;
30232 },
30233 addState: addState,
30234 clear: clear,
30235 getState: getState,
30236 getStates: getStates,
30237 getRelations: getRelations,
30238 getClasses: getClasses,
30239 getDirection: getDirection,
30240 addRelation: addRelation,
30241 getDividerId: getDividerId,
30242 setDirection: setDirection,
30243 cleanupLabel: cleanupLabel,
30244 lineType: lineType,
30245 relationType: relationType,
30246 logDocuments: logDocuments,
30247 getRootDoc: getRootDoc,
30248 setRootDoc: setRootDoc,
30249 getRootDocV2: getRootDocV2,
30250 extract: extract,
30251 trimColon: trimColon,
30252 getAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_5__.getAccTitle,
30253 setAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_5__.setAccTitle,
30254 getAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_5__.getAccDescription,
30255 setAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_5__.setAccDescription
30256});
30257
30258/***/ }),
30259
30260/***/ "./src/diagrams/state/stateRenderer-v2.js":
30261/*!************************************************!*\
30262 !*** ./src/diagrams/state/stateRenderer-v2.js ***!
30263 \************************************************/
30264/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30265
30266"use strict";
30267__webpack_require__.r(__webpack_exports__);
30268/* harmony export */ __webpack_require__.d(__webpack_exports__, {
30269/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
30270/* harmony export */ "draw": () => (/* binding */ draw),
30271/* harmony export */ "getClasses": () => (/* binding */ getClasses),
30272/* harmony export */ "setConf": () => (/* binding */ setConf)
30273/* harmony export */ });
30274/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
30275/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_0__);
30276/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
30277/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config */ "./src/config.js");
30278/* harmony import */ var _dagre_wrapper_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../dagre-wrapper/index.js */ "./src/dagre-wrapper/index.js");
30279/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
30280/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
30281/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
30282/* harmony import */ var _accessibility__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../accessibility */ "./src/accessibility.js");
30283
30284
30285
30286
30287
30288
30289
30290
30291var conf = {};
30292var setConf = function setConf(cnf) {
30293 var keys = Object.keys(cnf);
30294
30295 for (var i = 0; i < keys.length; i++) {
30296 conf[keys[i]] = cnf[keys[i]];
30297 }
30298};
30299var nodeDb = {};
30300/**
30301 * Returns the all the styles from classDef statements in the graph definition.
30302 *
30303 * @param {any} text
30304 * @param diag
30305 * @returns {object} ClassDef styles
30306 */
30307
30308var getClasses = function getClasses(text, diag) {
30309 _logger__WEBPACK_IMPORTED_MODULE_2__.log.trace('Extracting classes');
30310 diag.sb.clear(); // Parse the graph definition
30311
30312 diag.parser.parse(text);
30313 return diag.sb.getClasses();
30314};
30315
30316var setupNode = function setupNode(g, parent, node, altFlag) {
30317 // Add the node
30318 if (node.id !== 'root') {
30319 var shape = 'rect';
30320
30321 if (node.start === true) {
30322 shape = 'start';
30323 }
30324
30325 if (node.start === false) {
30326 shape = 'end';
30327 }
30328
30329 if (node.type !== 'default') {
30330 shape = node.type;
30331 }
30332
30333 if (!nodeDb[node.id]) {
30334 nodeDb[node.id] = {
30335 id: node.id,
30336 shape: shape,
30337 description: _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].sanitizeText(node.id, (0,_config__WEBPACK_IMPORTED_MODULE_4__.getConfig)()),
30338 classes: 'statediagram-state'
30339 };
30340 } // Build of the array of description strings accordinging
30341
30342
30343 if (node.description) {
30344 if (Array.isArray(nodeDb[node.id].description)) {
30345 // There already is an array of strings,add to it
30346 nodeDb[node.id].shape = 'rectWithTitle';
30347 nodeDb[node.id].description.push(node.description);
30348 } else {
30349 if (nodeDb[node.id].description.length > 0) {
30350 // if there is a description already transformit to an array
30351 nodeDb[node.id].shape = 'rectWithTitle';
30352
30353 if (nodeDb[node.id].description === node.id) {
30354 // If the previous description was the is, remove it
30355 nodeDb[node.id].description = [node.description];
30356 } else {
30357 nodeDb[node.id].description = [nodeDb[node.id].description, node.description];
30358 }
30359 } else {
30360 nodeDb[node.id].shape = 'rect';
30361 nodeDb[node.id].description = node.description;
30362 }
30363 }
30364
30365 nodeDb[node.id].description = _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].sanitizeTextOrArray(nodeDb[node.id].description, (0,_config__WEBPACK_IMPORTED_MODULE_4__.getConfig)());
30366 } //
30367
30368
30369 if (nodeDb[node.id].description.length === 1 && nodeDb[node.id].shape === 'rectWithTitle') {
30370 nodeDb[node.id].shape = 'rect';
30371 } // Save data for description and group so that for instance a statement without description overwrites
30372 // one with description
30373 // group
30374
30375
30376 if (!nodeDb[node.id].type && node.doc) {
30377 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Setting cluster for ', node.id, getDir(node));
30378 nodeDb[node.id].type = 'group';
30379 nodeDb[node.id].dir = getDir(node);
30380 nodeDb[node.id].shape = node.type === 'divider' ? 'divider' : 'roundedWithTitle';
30381 nodeDb[node.id].classes = nodeDb[node.id].classes + ' ' + (altFlag ? 'statediagram-cluster statediagram-cluster-alt' : 'statediagram-cluster');
30382 }
30383
30384 var nodeData = {
30385 labelStyle: '',
30386 shape: nodeDb[node.id].shape,
30387 labelText: nodeDb[node.id].description,
30388 // typeof nodeDb[node.id].description === 'object'
30389 // ? nodeDb[node.id].description[0]
30390 // : nodeDb[node.id].description,
30391 classes: nodeDb[node.id].classes,
30392 //classStr,
30393 style: '',
30394 //styles.style,
30395 id: node.id,
30396 dir: nodeDb[node.id].dir,
30397 domId: 'state-' + node.id + '-' + cnt,
30398 type: nodeDb[node.id].type,
30399 padding: 15 //getConfig().flowchart.padding
30400
30401 };
30402
30403 if (node.note) {
30404 // Todo: set random id
30405 var noteData = {
30406 labelStyle: '',
30407 shape: 'note',
30408 labelText: node.note.text,
30409 classes: 'statediagram-note',
30410 //classStr,
30411 style: '',
30412 //styles.style,
30413 id: node.id + '----note-' + cnt,
30414 domId: 'state-' + node.id + '----note-' + cnt,
30415 type: nodeDb[node.id].type,
30416 padding: 15 //getConfig().flowchart.padding
30417
30418 };
30419 var groupData = {
30420 labelStyle: '',
30421 shape: 'noteGroup',
30422 labelText: node.note.text,
30423 classes: nodeDb[node.id].classes,
30424 //classStr,
30425 style: '',
30426 //styles.style,
30427 id: node.id + '----parent',
30428 domId: 'state-' + node.id + '----parent-' + cnt,
30429 type: 'group',
30430 padding: 0 //getConfig().flowchart.padding
30431
30432 };
30433 cnt++;
30434 g.setNode(node.id + '----parent', groupData);
30435 g.setNode(noteData.id, noteData);
30436 g.setNode(node.id, nodeData);
30437 g.setParent(node.id, node.id + '----parent');
30438 g.setParent(noteData.id, node.id + '----parent');
30439 var from = node.id;
30440 var to = noteData.id;
30441
30442 if (node.note.position === 'left of') {
30443 from = noteData.id;
30444 to = node.id;
30445 }
30446
30447 g.setEdge(from, to, {
30448 arrowhead: 'none',
30449 arrowType: '',
30450 style: 'fill:none',
30451 labelStyle: '',
30452 classes: 'transition note-edge',
30453 arrowheadStyle: 'fill: #333',
30454 labelpos: 'c',
30455 labelType: 'text',
30456 thickness: 'normal'
30457 });
30458 } else {
30459 g.setNode(node.id, nodeData);
30460 }
30461 }
30462
30463 if (parent) {
30464 if (parent.id !== 'root') {
30465 _logger__WEBPACK_IMPORTED_MODULE_2__.log.trace('Setting node ', node.id, ' to be child of its parent ', parent.id);
30466 g.setParent(node.id, parent.id);
30467 }
30468 }
30469
30470 if (node.doc) {
30471 _logger__WEBPACK_IMPORTED_MODULE_2__.log.trace('Adding nodes children ');
30472 setupDoc(g, node, node.doc, !altFlag);
30473 }
30474};
30475
30476var cnt = 0;
30477
30478var setupDoc = function setupDoc(g, parent, doc, altFlag) {
30479 // cnt = 0;
30480 _logger__WEBPACK_IMPORTED_MODULE_2__.log.trace('items', doc);
30481 doc.forEach(function (item) {
30482 if (item.stmt === 'state' || item.stmt === 'default') {
30483 setupNode(g, parent, item, altFlag);
30484 } else if (item.stmt === 'relation') {
30485 setupNode(g, parent, item.state1, altFlag);
30486 setupNode(g, parent, item.state2, altFlag);
30487 var edgeData = {
30488 id: 'edge' + cnt,
30489 arrowhead: 'normal',
30490 arrowTypeEnd: 'arrow_barb',
30491 style: 'fill:none',
30492 labelStyle: '',
30493 label: _common_common__WEBPACK_IMPORTED_MODULE_3__["default"].sanitizeText(item.description, (0,_config__WEBPACK_IMPORTED_MODULE_4__.getConfig)()),
30494 arrowheadStyle: 'fill: #333',
30495 labelpos: 'c',
30496 labelType: 'text',
30497 thickness: 'normal',
30498 classes: 'transition'
30499 };
30500 var startId = item.state1.id;
30501 var endId = item.state2.id;
30502 g.setEdge(startId, endId, edgeData, cnt);
30503 cnt++;
30504 }
30505 });
30506};
30507
30508var getDir = function getDir(nodes, defaultDir) {
30509 var dir = defaultDir || 'TB';
30510
30511 if (nodes.doc) {
30512 for (var i = 0; i < nodes.doc.length; i++) {
30513 var node = nodes.doc[i];
30514
30515 if (node.stmt === 'dir') {
30516 dir = node.value;
30517 }
30518 }
30519 }
30520
30521 return dir;
30522};
30523/**
30524 * Draws a flowchart in the tag with id: id based on the graph definition in text.
30525 *
30526 * @param {any} text
30527 * @param {any} id
30528 * @param _version
30529 * @param diag
30530 */
30531
30532
30533var draw = function draw(text, id, _version, diag) {
30534 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info('Drawing state diagram (v2)', id); // diag.sb.clear();
30535
30536 nodeDb = {}; // Fetch the default direction, use TD if none was found
30537
30538 var dir = diag.db.getDirection();
30539
30540 if (typeof dir === 'undefined') {
30541 dir = 'LR';
30542 }
30543
30544 var conf = (0,_config__WEBPACK_IMPORTED_MODULE_4__.getConfig)().state;
30545 var nodeSpacing = conf.nodeSpacing || 50;
30546 var rankSpacing = conf.rankSpacing || 50;
30547 var securityLevel = (0,_config__WEBPACK_IMPORTED_MODULE_4__.getConfig)().securityLevel;
30548 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info(diag.db.getRootDocV2());
30549 diag.db.extract(diag.db.getRootDocV2());
30550 _logger__WEBPACK_IMPORTED_MODULE_2__.log.info(diag.db.getRootDocV2()); // Create the input mermaid.graph
30551
30552 var g = new (graphlib__WEBPACK_IMPORTED_MODULE_0___default().Graph)({
30553 multigraph: true,
30554 compound: true
30555 }).setGraph({
30556 rankdir: getDir(diag.db.getRootDocV2()),
30557 nodesep: nodeSpacing,
30558 ranksep: rankSpacing,
30559 marginx: 8,
30560 marginy: 8
30561 }).setDefaultEdgeLabel(function () {
30562 return {};
30563 });
30564 setupNode(g, undefined, diag.db.getRootDocV2(), true); // Set up an SVG group so that we can translate the final graph.
30565
30566 var sandboxElement;
30567
30568 if (securityLevel === 'sandbox') {
30569 sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)('#i' + id);
30570 }
30571
30572 var root = securityLevel === 'sandbox' ? (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)('body');
30573 var doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document;
30574 var svg = root.select("[id=\"".concat(id, "\"]")); // Run the renderer. This is what draws the final graph.
30575
30576 var element = root.select('#' + id + ' g');
30577 (0,_dagre_wrapper_index_js__WEBPACK_IMPORTED_MODULE_5__.render)(element, g, ['barb'], 'statediagram', id);
30578 var padding = 8;
30579 var bounds = svg.node().getBBox();
30580 var width = bounds.width + padding * 2;
30581 var height = bounds.height + padding * 2; // Zoom in a bit
30582
30583 svg.attr('class', 'statediagram');
30584 var svgBounds = svg.node().getBBox();
30585 (0,_utils__WEBPACK_IMPORTED_MODULE_6__.configureSvgSize)(svg, height, width * 1.75, conf.useMaxWidth); // Ensure the viewBox includes the whole svgBounds area with extra space for padding
30586
30587 var vBox = "".concat(svgBounds.x - padding, " ").concat(svgBounds.y - padding, " ").concat(width, " ").concat(height);
30588 _logger__WEBPACK_IMPORTED_MODULE_2__.log.debug("viewBox ".concat(vBox));
30589 svg.attr('viewBox', vBox); // Add label rects for non html labels
30590 // if (!evaluate(conf.htmlLabels) || true) {
30591
30592 var labels = document.querySelectorAll('[id="' + id + '"] .edgeLabel .label');
30593
30594 for (var k = 0; k < labels.length; k++) {
30595 var label = labels[k]; // Get dimensions of label
30596
30597 var dim = label.getBBox();
30598 var rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
30599 rect.setAttribute('rx', 0);
30600 rect.setAttribute('ry', 0);
30601 rect.setAttribute('width', dim.width);
30602 rect.setAttribute('height', dim.height);
30603 label.insertBefore(rect, label.firstChild); // }
30604 }
30605
30606 (0,_accessibility__WEBPACK_IMPORTED_MODULE_7__["default"])(diag.db, svg, id);
30607};
30608/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
30609 setConf: setConf,
30610 getClasses: getClasses,
30611 draw: draw
30612});
30613
30614/***/ }),
30615
30616/***/ "./src/diagrams/state/stateRenderer.js":
30617/*!*********************************************!*\
30618 !*** ./src/diagrams/state/stateRenderer.js ***!
30619 \*********************************************/
30620/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30621
30622"use strict";
30623__webpack_require__.r(__webpack_exports__);
30624/* harmony export */ __webpack_require__.d(__webpack_exports__, {
30625/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
30626/* harmony export */ "draw": () => (/* binding */ draw),
30627/* harmony export */ "setConf": () => (/* binding */ setConf)
30628/* harmony export */ });
30629/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
30630/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dagre */ "./node_modules/dagre/index.js");
30631/* harmony import */ var dagre__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dagre__WEBPACK_IMPORTED_MODULE_1__);
30632/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
30633/* harmony import */ var graphlib__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(graphlib__WEBPACK_IMPORTED_MODULE_2__);
30634/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../logger */ "./src/logger.js");
30635/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
30636/* harmony import */ var _shapes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./shapes */ "./src/diagrams/state/shapes.js");
30637/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../config */ "./src/config.js");
30638/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
30639/* harmony import */ var _accessibility__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../accessibility */ "./src/accessibility.js");
30640
30641
30642
30643
30644
30645
30646
30647
30648 // TODO Move conf object to main conf in mermaidAPI
30649
30650var conf;
30651var transformationLog = {};
30652var setConf = function setConf() {};
30653/**
30654 * Setup arrow head and define the marker. The result is appended to the svg.
30655 *
30656 * @param {any} elem
30657 */
30658
30659var insertMarkers = function insertMarkers(elem) {
30660 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');
30661};
30662/**
30663 * Draws a flowchart in the tag with id: id based on the graph definition in text.
30664 *
30665 * @param {any} text
30666 * @param {any} id
30667 * @param _version
30668 * @param diagObj
30669 */
30670
30671
30672var draw = function draw(text, id, _version, diagObj) {
30673 conf = (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().state;
30674 var securityLevel = (0,_config__WEBPACK_IMPORTED_MODULE_3__.getConfig)().securityLevel; // Handle root and Document for when rendering in sanbox mode
30675
30676 var sandboxElement;
30677
30678 if (securityLevel === 'sandbox') {
30679 sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('#i' + id);
30680 }
30681
30682 var root = securityLevel === 'sandbox' ? (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('body');
30683 var doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document; // diagObj.db.clear();
30684 // parser.parse(text);
30685
30686 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('Rendering diagram ' + text); // Fetch the default direction, use TD if none was found
30687
30688 var diagram = root.select("[id='".concat(id, "']"));
30689 insertMarkers(diagram); // Layout graph, Create a new directed graph
30690
30691 var graph = new (graphlib__WEBPACK_IMPORTED_MODULE_2___default().Graph)({
30692 multigraph: true,
30693 compound: true,
30694 // acyclicer: 'greedy',
30695 rankdir: 'RL' // ranksep: '20'
30696
30697 }); // Default to assigning a new object as a label for each new edge.
30698
30699 graph.setDefaultEdgeLabel(function () {
30700 return {};
30701 });
30702 var rootDoc = diagObj.db.getRootDoc();
30703 renderDoc(rootDoc, diagram, undefined, false, root, doc, diagObj);
30704 var padding = conf.padding;
30705 var bounds = diagram.node().getBBox();
30706 var width = bounds.width + padding * 2;
30707 var height = bounds.height + padding * 2; // zoom in a bit
30708
30709 var svgWidth = width * 1.75;
30710 (0,_utils__WEBPACK_IMPORTED_MODULE_5__.configureSvgSize)(diagram, height, svgWidth, conf.useMaxWidth);
30711 diagram.attr('viewBox', "".concat(bounds.x - conf.padding, " ").concat(bounds.y - conf.padding, " ") + width + ' ' + height);
30712 (0,_accessibility__WEBPACK_IMPORTED_MODULE_6__["default"])(diagObj.db, diagram, id);
30713};
30714
30715var getLabelWidth = function getLabelWidth(text) {
30716 return text ? text.length * conf.fontSizeFactor : 1;
30717};
30718
30719var renderDoc = function renderDoc(doc, diagram, parentId, altBkg, root, domDocument, diagObj) {
30720 // Layout graph, Create a new directed graph
30721 var graph = new (graphlib__WEBPACK_IMPORTED_MODULE_2___default().Graph)({
30722 compound: true,
30723 multigraph: true
30724 });
30725 var i;
30726 var edgeFreeDoc = true;
30727
30728 for (i = 0; i < doc.length; i++) {
30729 if (doc[i].stmt === 'relation') {
30730 edgeFreeDoc = false;
30731 break;
30732 }
30733 } // Set an object for the graph label
30734
30735
30736 if (parentId) graph.setGraph({
30737 rankdir: 'LR',
30738 multigraph: true,
30739 compound: true,
30740 // acyclicer: 'greedy',
30741 ranker: 'tight-tree',
30742 ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,
30743 nodeSep: edgeFreeDoc ? 1 : 50,
30744 isMultiGraph: true // ranksep: 5,
30745 // nodesep: 1
30746
30747 });else {
30748 graph.setGraph({
30749 rankdir: 'TB',
30750 multigraph: true,
30751 compound: true,
30752 // isCompound: true,
30753 // acyclicer: 'greedy',
30754 // ranker: 'longest-path'
30755 ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,
30756 nodeSep: edgeFreeDoc ? 1 : 50,
30757 ranker: 'tight-tree',
30758 // ranker: 'network-simplex'
30759 isMultiGraph: true
30760 });
30761 } // Default to assigning a new object as a label for each new edge.
30762
30763 graph.setDefaultEdgeLabel(function () {
30764 return {};
30765 });
30766 diagObj.db.extract(doc);
30767 var states = diagObj.db.getStates();
30768 var relations = diagObj.db.getRelations();
30769 var keys = Object.keys(states);
30770 var first = true;
30771
30772 for (var _i = 0; _i < keys.length; _i++) {
30773 var stateDef = states[keys[_i]];
30774
30775 if (parentId) {
30776 stateDef.parentId = parentId;
30777 }
30778
30779 var node = void 0;
30780
30781 if (stateDef.doc) {
30782 var sub = diagram.append('g').attr('id', stateDef.id).attr('class', 'stateGroup');
30783 node = renderDoc(stateDef.doc, sub, stateDef.id, !altBkg, root, domDocument, diagObj);
30784
30785 if (first) {
30786 // first = false;
30787 sub = (0,_shapes__WEBPACK_IMPORTED_MODULE_7__.addTitleAndBox)(sub, stateDef, altBkg);
30788 var boxBounds = sub.node().getBBox();
30789 node.width = boxBounds.width;
30790 node.height = boxBounds.height + conf.padding / 2;
30791 transformationLog[stateDef.id] = {
30792 y: conf.compositTitleSize
30793 };
30794 } else {
30795 // sub = addIdAndBox(sub, stateDef);
30796 var _boxBounds = sub.node().getBBox();
30797
30798 node.width = _boxBounds.width;
30799 node.height = _boxBounds.height; // transformationLog[stateDef.id] = { y: conf.compositTitleSize };
30800 }
30801 } else {
30802 node = (0,_shapes__WEBPACK_IMPORTED_MODULE_7__.drawState)(diagram, stateDef, graph);
30803 }
30804
30805 if (stateDef.note) {
30806 // Draw note note
30807 var noteDef = {
30808 descriptions: [],
30809 id: stateDef.id + '-note',
30810 note: stateDef.note,
30811 type: 'note'
30812 };
30813 var note = (0,_shapes__WEBPACK_IMPORTED_MODULE_7__.drawState)(diagram, noteDef, graph); // graph.setNode(node.id, node);
30814
30815 if (stateDef.note.position === 'left of') {
30816 graph.setNode(node.id + '-note', note);
30817 graph.setNode(node.id, node);
30818 } else {
30819 graph.setNode(node.id, node);
30820 graph.setNode(node.id + '-note', note);
30821 } // graph.setNode(node.id);
30822
30823
30824 graph.setParent(node.id, node.id + '-group');
30825 graph.setParent(node.id + '-note', node.id + '-group');
30826 } else {
30827 // Add nodes to the graph. The first argument is the node id. The second is
30828 // metadata about the node. In this case we're going to add labels to each of
30829 // our nodes.
30830 graph.setNode(node.id, node);
30831 }
30832 }
30833
30834 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('Count=', graph.nodeCount(), graph);
30835 var cnt = 0;
30836 relations.forEach(function (relation) {
30837 cnt++;
30838 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('Setting edge', relation);
30839 graph.setEdge(relation.id1, relation.id2, {
30840 relation: relation,
30841 width: getLabelWidth(relation.title),
30842 height: conf.labelHeight * _common_common__WEBPACK_IMPORTED_MODULE_8__["default"].getRows(relation.title).length,
30843 labelpos: 'c'
30844 }, 'id' + cnt);
30845 });
30846 dagre__WEBPACK_IMPORTED_MODULE_1___default().layout(graph);
30847 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('Graph after layout', graph.nodes());
30848 var svgElem = diagram.node();
30849 graph.nodes().forEach(function (v) {
30850 if (typeof v !== 'undefined' && typeof graph.node(v) !== 'undefined') {
30851 _logger__WEBPACK_IMPORTED_MODULE_4__.log.warn('Node ' + v + ': ' + JSON.stringify(graph.node(v)));
30852 root.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) + ' )');
30853 root.select('#' + svgElem.id + ' #' + v).attr('data-x-shift', graph.node(v).x - graph.node(v).width / 2);
30854 var dividers = domDocument.querySelectorAll('#' + svgElem.id + ' #' + v + ' .divider');
30855 dividers.forEach(function (divider) {
30856 var parent = divider.parentElement;
30857 var pWidth = 0;
30858 var pShift = 0;
30859
30860 if (parent) {
30861 if (parent.parentElement) pWidth = parent.parentElement.getBBox().width;
30862 pShift = parseInt(parent.getAttribute('data-x-shift'), 10);
30863
30864 if (Number.isNaN(pShift)) {
30865 pShift = 0;
30866 }
30867 }
30868
30869 divider.setAttribute('x1', 0 - pShift + 8);
30870 divider.setAttribute('x2', pWidth - pShift - 8);
30871 });
30872 } else {
30873 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('No Node ' + v + ': ' + JSON.stringify(graph.node(v)));
30874 }
30875 });
30876 var stateBox = svgElem.getBBox();
30877 graph.edges().forEach(function (e) {
30878 if (typeof e !== 'undefined' && typeof graph.edge(e) !== 'undefined') {
30879 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(graph.edge(e)));
30880 (0,_shapes__WEBPACK_IMPORTED_MODULE_7__.drawEdge)(diagram, graph.edge(e), graph.edge(e).relation);
30881 }
30882 });
30883 stateBox = svgElem.getBBox();
30884 var stateInfo = {
30885 id: parentId ? parentId : 'root',
30886 label: parentId ? parentId : 'root',
30887 width: 0,
30888 height: 0
30889 };
30890 stateInfo.width = stateBox.width + 2 * conf.padding;
30891 stateInfo.height = stateBox.height + 2 * conf.padding;
30892 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('Doc rendered', stateInfo, graph);
30893 return stateInfo;
30894};
30895
30896/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
30897 setConf: setConf,
30898 draw: draw
30899});
30900
30901/***/ }),
30902
30903/***/ "./src/diagrams/state/styles.js":
30904/*!**************************************!*\
30905 !*** ./src/diagrams/state/styles.js ***!
30906 \**************************************/
30907/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30908
30909"use strict";
30910__webpack_require__.r(__webpack_exports__);
30911/* harmony export */ __webpack_require__.d(__webpack_exports__, {
30912/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
30913/* harmony export */ });
30914var getStyles = function getStyles(options) {
30915 return "\ndefs #statediagram-barbEnd {\n fill: ".concat(options.transitionColor, ";\n stroke: ").concat(options.transitionColor, ";\n }\ng.stateGroup text {\n fill: ").concat(options.nodeBorder, ";\n stroke: none;\n font-size: 10px;\n}\ng.stateGroup text {\n fill: ").concat(options.textColor, ";\n stroke: none;\n font-size: 10px;\n\n}\ng.stateGroup .state-title {\n font-weight: bolder;\n fill: ").concat(options.stateLabelColor, ";\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.transitionColor, ";\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: ").concat(options.noteTextColor, ";\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.labelBackgroundColor, ";\n opacity: 0.5;\n}\n.edgeLabel .label text {\n fill: ").concat(options.transitionLabelColor || options.tertiaryTextColor, ";\n}\n.label div .edgeLabel {\n color: ").concat(options.transitionLabelColor || options.tertiaryTextColor, ";\n}\n\n.stateLabel text {\n fill: ").concat(options.stateLabelColor, ";\n font-size: 10px;\n font-weight: bold;\n}\n\n.node circle.state-start {\n fill: ").concat(options.specialStateColor, ";\n stroke: ").concat(options.specialStateColor, ";\n}\n\n.node .fork-join {\n fill: ").concat(options.specialStateColor, ";\n stroke: ").concat(options.specialStateColor, ";\n}\n\n.node circle.state-end {\n fill: ").concat(options.innerEndBackground, ";\n stroke: ").concat(options.background, ";\n stroke-width: 1.5\n}\n.end-state-inner {\n fill: ").concat(options.compositeBackground || options.background, ";\n // stroke: ").concat(options.background, ";\n stroke-width: 1.5\n}\n\n.node rect {\n fill: ").concat(options.stateBkg || options.mainBkg, ";\n stroke: ").concat(options.stateBorder || options.nodeBorder, ";\n stroke-width: 1px;\n}\n.node polygon {\n fill: ").concat(options.mainBkg, ";\n stroke: ").concat(options.stateBorder || 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.compositeTitleBackground, ";\n stroke: ").concat(options.stateBorder || options.nodeBorder, ";\n stroke-width: 1px;\n}\n\n.cluster-label, .nodeLabel {\n color: ").concat(options.stateLabelColor, ";\n}\n\n.statediagram-cluster rect.outer {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state .divider {\n stroke: ").concat(options.stateBorder || 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.compositeBackground || options.background, ";\n}\n.statediagram-cluster.statediagram-cluster-alt .inner {\n fill: ").concat(options.altBackground ? options.altBackground : '#efefef', ";\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.statediagram .edgeLabel {\n color: red; // ").concat(options.noteTextColor, ";\n}\n\n#dependencyStart, #dependencyEnd {\n fill: ").concat(options.lineColor, ";\n stroke: ").concat(options.lineColor, ";\n stroke-width: 1;\n}\n");
30916};
30917
30918/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getStyles);
30919
30920/***/ }),
30921
30922/***/ "./src/diagrams/user-journey/journeyDb.js":
30923/*!************************************************!*\
30924 !*** ./src/diagrams/user-journey/journeyDb.js ***!
30925 \************************************************/
30926/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30927
30928"use strict";
30929__webpack_require__.r(__webpack_exports__);
30930/* harmony export */ __webpack_require__.d(__webpack_exports__, {
30931/* harmony export */ "addSection": () => (/* binding */ addSection),
30932/* harmony export */ "addTask": () => (/* binding */ addTask),
30933/* harmony export */ "addTaskOrg": () => (/* binding */ addTaskOrg),
30934/* harmony export */ "clear": () => (/* binding */ clear),
30935/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
30936/* harmony export */ "getSections": () => (/* binding */ getSections),
30937/* harmony export */ "getTasks": () => (/* binding */ getTasks),
30938/* harmony export */ "parseDirective": () => (/* binding */ parseDirective)
30939/* harmony export */ });
30940/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mermaidAPI */ "./src/mermaidAPI.js");
30941/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ "./src/config.js");
30942/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/common */ "./src/diagrams/common/common.js");
30943/* harmony import */ var _commonDb__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../commonDb */ "./src/commonDb.js");
30944function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
30945
30946function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
30947
30948function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
30949
30950function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
30951
30952function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
30953
30954function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
30955
30956
30957
30958
30959
30960
30961var sanitizeText = function sanitizeText(txt) {
30962 return _common_common__WEBPACK_IMPORTED_MODULE_0__["default"].sanitizeText(txt, _config__WEBPACK_IMPORTED_MODULE_1__.getConfig());
30963};
30964
30965var title = '';
30966var description = '';
30967var currentSection = '';
30968var sections = [];
30969var tasks = [];
30970var rawTasks = [];
30971var parseDirective = function parseDirective(statement, context, type) {
30972 _mermaidAPI__WEBPACK_IMPORTED_MODULE_2__["default"].parseDirective(this, statement, context, type);
30973};
30974var clear = function clear() {
30975 sections.length = 0;
30976 tasks.length = 0;
30977 currentSection = '';
30978 title = '';
30979 description = '';
30980 rawTasks.length = 0;
30981 (0,_commonDb__WEBPACK_IMPORTED_MODULE_3__.clear)();
30982};
30983var addSection = function addSection(txt) {
30984 currentSection = txt;
30985 sections.push(txt);
30986};
30987var getSections = function getSections() {
30988 return sections;
30989};
30990var getTasks = function getTasks() {
30991 var allItemsProcessed = compileTasks();
30992 var maxDepth = 100;
30993 var iterationCount = 0;
30994
30995 while (!allItemsProcessed && iterationCount < maxDepth) {
30996 allItemsProcessed = compileTasks();
30997 iterationCount++;
30998 }
30999
31000 tasks.push.apply(tasks, rawTasks);
31001 return tasks;
31002};
31003
31004var updateActors = function updateActors() {
31005 var tempActors = [];
31006 tasks.forEach(function (task) {
31007 if (task.people) {
31008 tempActors.push.apply(tempActors, _toConsumableArray(task.people));
31009 }
31010 });
31011 var unique = new Set(tempActors);
31012 return _toConsumableArray(unique).sort();
31013};
31014
31015var addTask = function addTask(descr, taskData) {
31016 var pieces = taskData.substr(1).split(':');
31017 var score = 0;
31018 var peeps = [];
31019
31020 if (pieces.length === 1) {
31021 score = Number(pieces[0]);
31022 peeps = [];
31023 } else {
31024 score = Number(pieces[0]);
31025 peeps = pieces[1].split(',');
31026 }
31027
31028 var peopleList = peeps.map(function (s) {
31029 return s.trim();
31030 });
31031 var rawTask = {
31032 section: currentSection,
31033 type: currentSection,
31034 people: peopleList,
31035 task: descr,
31036 score: score
31037 };
31038 rawTasks.push(rawTask);
31039};
31040var addTaskOrg = function addTaskOrg(descr) {
31041 var newTask = {
31042 section: currentSection,
31043 type: currentSection,
31044 description: descr,
31045 task: descr,
31046 classes: []
31047 };
31048 tasks.push(newTask);
31049};
31050
31051var compileTasks = function compileTasks() {
31052 var compileTask = function compileTask(pos) {
31053 return rawTasks[pos].processed;
31054 };
31055
31056 var allProcessed = true;
31057
31058 for (var i = 0; i < rawTasks.length; i++) {
31059 compileTask(i);
31060 allProcessed = allProcessed && rawTasks[i].processed;
31061 }
31062
31063 return allProcessed;
31064};
31065
31066var getActors = function getActors() {
31067 return updateActors();
31068};
31069
31070/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
31071 parseDirective: parseDirective,
31072 getConfig: function getConfig() {
31073 return _config__WEBPACK_IMPORTED_MODULE_1__.getConfig().journey;
31074 },
31075 clear: clear,
31076 setDiagramTitle: _commonDb__WEBPACK_IMPORTED_MODULE_3__.setDiagramTitle,
31077 getDiagramTitle: _commonDb__WEBPACK_IMPORTED_MODULE_3__.getDiagramTitle,
31078 setAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_3__.setAccTitle,
31079 getAccTitle: _commonDb__WEBPACK_IMPORTED_MODULE_3__.getAccTitle,
31080 setAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_3__.setAccDescription,
31081 getAccDescription: _commonDb__WEBPACK_IMPORTED_MODULE_3__.getAccDescription,
31082 addSection: addSection,
31083 getSections: getSections,
31084 getTasks: getTasks,
31085 addTask: addTask,
31086 addTaskOrg: addTaskOrg,
31087 getActors: getActors
31088});
31089
31090/***/ }),
31091
31092/***/ "./src/diagrams/user-journey/journeyRenderer.js":
31093/*!******************************************************!*\
31094 !*** ./src/diagrams/user-journey/journeyRenderer.js ***!
31095 \******************************************************/
31096/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31097
31098"use strict";
31099__webpack_require__.r(__webpack_exports__);
31100/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31101/* harmony export */ "bounds": () => (/* binding */ bounds),
31102/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
31103/* harmony export */ "draw": () => (/* binding */ draw),
31104/* harmony export */ "drawTasks": () => (/* binding */ drawTasks),
31105/* harmony export */ "setConf": () => (/* binding */ setConf)
31106/* harmony export */ });
31107/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
31108/* harmony import */ var _svgDraw__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./svgDraw */ "./src/diagrams/user-journey/svgDraw.js");
31109/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ "./src/config.js");
31110/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ "./src/utils.js");
31111/* harmony import */ var _accessibility__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../accessibility */ "./src/accessibility.js");
31112
31113
31114
31115
31116
31117var setConf = function setConf(cnf) {
31118 var keys = Object.keys(cnf);
31119 keys.forEach(function (key) {
31120 conf[key] = cnf[key];
31121 });
31122};
31123var actors = {};
31124/** @param {any} diagram */
31125
31126function drawActorLegend(diagram) {
31127 var conf = (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().journey; // Draw the actors
31128
31129 var yPos = 60;
31130 Object.keys(actors).forEach(function (person) {
31131 var colour = actors[person].color;
31132 var circleData = {
31133 cx: 20,
31134 cy: yPos,
31135 r: 7,
31136 fill: colour,
31137 stroke: '#000',
31138 pos: actors[person].position
31139 };
31140 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].drawCircle(diagram, circleData);
31141 var labelData = {
31142 x: 40,
31143 y: yPos + 7,
31144 fill: '#666',
31145 text: person,
31146 textMargin: conf.boxTextMargin | 5
31147 };
31148 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].drawText(diagram, labelData);
31149 yPos += 20;
31150 });
31151}
31152
31153var conf = (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().journey;
31154var LEFT_MARGIN = (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().journey.leftMargin;
31155var draw = function draw(text, id, version, diagObj) {
31156 var conf = (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().journey;
31157 diagObj.db.clear();
31158 diagObj.parser.parse(text + '\n');
31159 var securityLevel = (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().securityLevel; // Handle root and Document for when rendering in sanbox mode
31160
31161 var sandboxElement;
31162
31163 if (securityLevel === 'sandbox') {
31164 sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('#i' + id);
31165 }
31166
31167 var root = securityLevel === 'sandbox' ? (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('body'); // const doc = securityLevel === 'sandbox' ? sandboxElement.nodes()[0].contentDocument : document;
31168
31169 bounds.init();
31170 var diagram = root.select('#' + id);
31171 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].initGraphics(diagram);
31172 var tasks = diagObj.db.getTasks();
31173 var title = diagObj.db.getDiagramTitle();
31174 var actorNames = diagObj.db.getActors();
31175
31176 for (var member in actors) {
31177 delete actors[member];
31178 }
31179
31180 var actorPos = 0;
31181 actorNames.forEach(function (actorName) {
31182 actors[actorName] = {
31183 color: conf.actorColours[actorPos % conf.actorColours.length],
31184 position: actorPos
31185 };
31186 actorPos++;
31187 });
31188 drawActorLegend(diagram);
31189 bounds.insert(0, 0, LEFT_MARGIN, Object.keys(actors).length * 50);
31190 drawTasks(diagram, tasks, 0);
31191 var box = bounds.getBounds();
31192
31193 if (title) {
31194 diagram.append('text').text(title).attr('x', LEFT_MARGIN).attr('font-size', '4ex').attr('font-weight', 'bold').attr('y', 25);
31195 }
31196
31197 var height = box.stopy - box.starty + 2 * conf.diagramMarginY;
31198 var width = LEFT_MARGIN + box.stopx + 2 * conf.diagramMarginX;
31199 (0,_utils__WEBPACK_IMPORTED_MODULE_3__.configureSvgSize)(diagram, height, width, conf.useMaxWidth); // Draw activity line
31200
31201 diagram.append('line').attr('x1', LEFT_MARGIN).attr('y1', conf.height * 4) // One section head + one task + margins
31202 .attr('x2', width - LEFT_MARGIN - 4) // Subtract stroke width so arrow point is retained
31203 .attr('y2', conf.height * 4).attr('stroke-width', 4).attr('stroke', 'black').attr('marker-end', 'url(#arrowhead)');
31204 var extraVertForTitle = title ? 70 : 0;
31205 diagram.attr('viewBox', "".concat(box.startx, " -25 ").concat(width, " ").concat(height + extraVertForTitle));
31206 diagram.attr('preserveAspectRatio', 'xMinYMin meet');
31207 diagram.attr('height', height + extraVertForTitle + 25);
31208 (0,_accessibility__WEBPACK_IMPORTED_MODULE_4__["default"])(diagObj.db, diagram, id);
31209};
31210var bounds = {
31211 data: {
31212 startx: undefined,
31213 stopx: undefined,
31214 starty: undefined,
31215 stopy: undefined
31216 },
31217 verticalPos: 0,
31218 sequenceItems: [],
31219 init: function init() {
31220 this.sequenceItems = [];
31221 this.data = {
31222 startx: undefined,
31223 stopx: undefined,
31224 starty: undefined,
31225 stopy: undefined
31226 };
31227 this.verticalPos = 0;
31228 },
31229 updateVal: function updateVal(obj, key, val, fun) {
31230 if (typeof obj[key] === 'undefined') {
31231 obj[key] = val;
31232 } else {
31233 obj[key] = fun(val, obj[key]);
31234 }
31235 },
31236 updateBounds: function updateBounds(startx, starty, stopx, stopy) {
31237 var conf = (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().journey;
31238
31239 var _self = this;
31240
31241 var cnt = 0;
31242 /** @param {any} type */
31243
31244 function updateFn(type) {
31245 return function updateItemBounds(item) {
31246 cnt++; // The loop sequenceItems is a stack so the biggest margins in the beginning of the sequenceItems
31247
31248 var n = _self.sequenceItems.length - cnt + 1;
31249
31250 _self.updateVal(item, 'starty', starty - n * conf.boxMargin, Math.min);
31251
31252 _self.updateVal(item, 'stopy', stopy + n * conf.boxMargin, Math.max);
31253
31254 _self.updateVal(bounds.data, 'startx', startx - n * conf.boxMargin, Math.min);
31255
31256 _self.updateVal(bounds.data, 'stopx', stopx + n * conf.boxMargin, Math.max);
31257
31258 if (!(type === 'activation')) {
31259 _self.updateVal(item, 'startx', startx - n * conf.boxMargin, Math.min);
31260
31261 _self.updateVal(item, 'stopx', stopx + n * conf.boxMargin, Math.max);
31262
31263 _self.updateVal(bounds.data, 'starty', starty - n * conf.boxMargin, Math.min);
31264
31265 _self.updateVal(bounds.data, 'stopy', stopy + n * conf.boxMargin, Math.max);
31266 }
31267 };
31268 }
31269
31270 this.sequenceItems.forEach(updateFn());
31271 },
31272 insert: function insert(startx, starty, stopx, stopy) {
31273 var _startx = Math.min(startx, stopx);
31274
31275 var _stopx = Math.max(startx, stopx);
31276
31277 var _starty = Math.min(starty, stopy);
31278
31279 var _stopy = Math.max(starty, stopy);
31280
31281 this.updateVal(bounds.data, 'startx', _startx, Math.min);
31282 this.updateVal(bounds.data, 'starty', _starty, Math.min);
31283 this.updateVal(bounds.data, 'stopx', _stopx, Math.max);
31284 this.updateVal(bounds.data, 'stopy', _stopy, Math.max);
31285 this.updateBounds(_startx, _starty, _stopx, _stopy);
31286 },
31287 bumpVerticalPos: function bumpVerticalPos(bump) {
31288 this.verticalPos = this.verticalPos + bump;
31289 this.data.stopy = this.verticalPos;
31290 },
31291 getVerticalPos: function getVerticalPos() {
31292 return this.verticalPos;
31293 },
31294 getBounds: function getBounds() {
31295 return this.data;
31296 }
31297};
31298var fills = conf.sectionFills;
31299var textColours = conf.sectionColours;
31300var drawTasks = function drawTasks(diagram, tasks, verticalPos) {
31301 var conf = (0,_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)().journey;
31302 var lastSection = '';
31303 var sectionVHeight = conf.height * 2 + conf.diagramMarginY;
31304 var taskPos = verticalPos + sectionVHeight;
31305 var sectionNumber = 0;
31306 var fill = '#CCC';
31307 var colour = 'black';
31308 var num = 0; // Draw the tasks
31309
31310 for (var i = 0; i < tasks.length; i++) {
31311 var task = tasks[i];
31312
31313 if (lastSection !== task.section) {
31314 fill = fills[sectionNumber % fills.length];
31315 num = sectionNumber % fills.length;
31316 colour = textColours[sectionNumber % textColours.length];
31317 var section = {
31318 x: i * conf.taskMargin + i * conf.width + LEFT_MARGIN,
31319 y: 50,
31320 text: task.section,
31321 fill: fill,
31322 num: num,
31323 colour: colour
31324 };
31325 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].drawSection(diagram, section, conf);
31326 lastSection = task.section;
31327 sectionNumber++;
31328 } // Collect the actors involved in the task
31329
31330
31331 var taskActors = task.people.reduce(function (acc, actorName) {
31332 if (actors[actorName]) {
31333 acc[actorName] = actors[actorName];
31334 }
31335
31336 return acc;
31337 }, {}); // Add some rendering data to the object
31338
31339 task.x = i * conf.taskMargin + i * conf.width + LEFT_MARGIN;
31340 task.y = taskPos;
31341 task.width = conf.diagramMarginX;
31342 task.height = conf.diagramMarginY;
31343 task.colour = colour;
31344 task.fill = fill;
31345 task.num = num;
31346 task.actors = taskActors; // Draw the box with the attached line
31347
31348 _svgDraw__WEBPACK_IMPORTED_MODULE_2__["default"].drawTask(diagram, task, conf);
31349 bounds.insert(task.x, task.y, task.x + task.width + conf.taskMargin, 300 + 5 * 30); // stopy is the length of the descenders.
31350 }
31351};
31352/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
31353 setConf: setConf,
31354 draw: draw
31355});
31356
31357/***/ }),
31358
31359/***/ "./src/diagrams/user-journey/styles.js":
31360/*!*********************************************!*\
31361 !*** ./src/diagrams/user-journey/styles.js ***!
31362 \*********************************************/
31363/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31364
31365"use strict";
31366__webpack_require__.r(__webpack_exports__);
31367/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31368/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
31369/* harmony export */ });
31370var getStyles = function getStyles(options) {
31371 return ".label {\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\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 ").concat(options.faceColor ? "fill: ".concat(options.faceColor) : '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, sans-serif;\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\n .actor-0 {\n ").concat(options.actor0 ? "fill: ".concat(options.actor0) : '', ";\n }\n .actor-1 {\n ").concat(options.actor1 ? "fill: ".concat(options.actor1) : '', ";\n }\n .actor-2 {\n ").concat(options.actor2 ? "fill: ".concat(options.actor2) : '', ";\n }\n .actor-3 {\n ").concat(options.actor3 ? "fill: ".concat(options.actor3) : '', ";\n }\n .actor-4 {\n ").concat(options.actor4 ? "fill: ".concat(options.actor4) : '', ";\n }\n .actor-5 {\n ").concat(options.actor5 ? "fill: ".concat(options.actor5) : '', ";\n }\n\n }\n");
31372};
31373
31374/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getStyles);
31375
31376/***/ }),
31377
31378/***/ "./src/diagrams/user-journey/svgDraw.js":
31379/*!**********************************************!*\
31380 !*** ./src/diagrams/user-journey/svgDraw.js ***!
31381 \**********************************************/
31382/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31383
31384"use strict";
31385__webpack_require__.r(__webpack_exports__);
31386/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31387/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
31388/* harmony export */ "drawBackgroundRect": () => (/* binding */ drawBackgroundRect),
31389/* harmony export */ "drawCircle": () => (/* binding */ drawCircle),
31390/* harmony export */ "drawFace": () => (/* binding */ drawFace),
31391/* harmony export */ "drawLabel": () => (/* binding */ drawLabel),
31392/* harmony export */ "drawRect": () => (/* binding */ drawRect),
31393/* harmony export */ "drawSection": () => (/* binding */ drawSection),
31394/* harmony export */ "drawTask": () => (/* binding */ drawTask),
31395/* harmony export */ "drawText": () => (/* binding */ drawText),
31396/* harmony export */ "getNoteRect": () => (/* binding */ getNoteRect),
31397/* harmony export */ "getTextObj": () => (/* binding */ getTextObj)
31398/* harmony export */ });
31399/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
31400
31401var drawRect = function drawRect(elem, rectData) {
31402 var rectElem = elem.append('rect');
31403 rectElem.attr('x', rectData.x);
31404 rectElem.attr('y', rectData.y);
31405 rectElem.attr('fill', rectData.fill);
31406 rectElem.attr('stroke', rectData.stroke);
31407 rectElem.attr('width', rectData.width);
31408 rectElem.attr('height', rectData.height);
31409 rectElem.attr('rx', rectData.rx);
31410 rectElem.attr('ry', rectData.ry);
31411
31412 if (typeof rectData.class !== 'undefined') {
31413 rectElem.attr('class', rectData.class);
31414 }
31415
31416 return rectElem;
31417};
31418var drawFace = function drawFace(element, faceData) {
31419 var radius = 15;
31420 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');
31421 var face = element.append('g'); //left eye
31422
31423 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
31424
31425 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');
31426 /** @param {any} face */
31427
31428 function smile(face) {
31429 var arc = (0,d3__WEBPACK_IMPORTED_MODULE_0__.arc)().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); //mouth
31430
31431 face.append('path').attr('class', 'mouth').attr('d', arc).attr('transform', 'translate(' + faceData.cx + ',' + (faceData.cy + 2) + ')');
31432 }
31433 /** @param {any} face */
31434
31435
31436 function sad(face) {
31437 var arc = (0,d3__WEBPACK_IMPORTED_MODULE_0__.arc)().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); //mouth
31438
31439 face.append('path').attr('class', 'mouth').attr('d', arc).attr('transform', 'translate(' + faceData.cx + ',' + (faceData.cy + 7) + ')');
31440 }
31441 /** @param {any} face */
31442
31443
31444 function ambivalent(face) {
31445 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');
31446 }
31447
31448 if (faceData.score > 3) {
31449 smile(face);
31450 } else if (faceData.score < 3) {
31451 sad(face);
31452 } else {
31453 ambivalent(face);
31454 }
31455
31456 return circleElement;
31457};
31458var drawCircle = function drawCircle(element, circleData) {
31459 var circleElement = element.append('circle');
31460 circleElement.attr('cx', circleData.cx);
31461 circleElement.attr('cy', circleData.cy);
31462 circleElement.attr('class', 'actor-' + circleData.pos);
31463 circleElement.attr('fill', circleData.fill);
31464 circleElement.attr('stroke', circleData.stroke);
31465 circleElement.attr('r', circleData.r);
31466
31467 if (typeof circleElement.class !== 'undefined') {
31468 circleElement.attr('class', circleElement.class);
31469 }
31470
31471 if (typeof circleData.title !== 'undefined') {
31472 circleElement.append('title').text(circleData.title);
31473 }
31474
31475 return circleElement;
31476};
31477var drawText = function drawText(elem, textData) {
31478 // Remove and ignore br:s
31479 var nText = textData.text.replace(/<br\s*\/?>/gi, ' ');
31480 var textElem = elem.append('text');
31481 textElem.attr('x', textData.x);
31482 textElem.attr('y', textData.y);
31483 textElem.attr('class', 'legend');
31484 textElem.style('text-anchor', textData.anchor);
31485
31486 if (typeof textData.class !== 'undefined') {
31487 textElem.attr('class', textData.class);
31488 }
31489
31490 var span = textElem.append('tspan');
31491 span.attr('x', textData.x + textData.textMargin * 2);
31492 span.text(nText);
31493 return textElem;
31494};
31495var drawLabel = function drawLabel(elem, txtObject) {
31496 /**
31497 * @param {any} x
31498 * @param {any} y
31499 * @param {any} width
31500 * @param {any} height
31501 * @param {any} cut
31502 */
31503 function genPoints(x, y, width, height, cut) {
31504 return x + ',' + y + ' ' + (x + width) + ',' + y + ' ' + (x + width) + ',' + (y + height - cut) + ' ' + (x + width - cut * 1.2) + ',' + (y + height) + ' ' + x + ',' + (y + height);
31505 }
31506
31507 var polygon = elem.append('polygon');
31508 polygon.attr('points', genPoints(txtObject.x, txtObject.y, 50, 20, 7));
31509 polygon.attr('class', 'labelBox');
31510 txtObject.y = txtObject.y + txtObject.labelMargin;
31511 txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
31512 drawText(elem, txtObject);
31513};
31514var drawSection = function drawSection(elem, section, conf) {
31515 var g = elem.append('g');
31516 var rect = getNoteRect();
31517 rect.x = section.x;
31518 rect.y = section.y;
31519 rect.fill = section.fill;
31520 rect.width = conf.width;
31521 rect.height = conf.height;
31522 rect.class = 'journey-section section-type-' + section.num;
31523 rect.rx = 3;
31524 rect.ry = 3;
31525 drawRect(g, rect);
31526
31527 _drawTextCandidateFunc(conf)(section.text, g, rect.x, rect.y, rect.width, rect.height, {
31528 class: 'journey-section section-type-' + section.num
31529 }, conf, section.colour);
31530};
31531var taskCount = -1;
31532/**
31533 * Draws an actor in the diagram with the attaced line
31534 *
31535 * @param {any} elem The HTML element
31536 * @param {any} task The task to render
31537 * @param {any} conf The global configuration
31538 */
31539
31540var drawTask = function drawTask(elem, task, conf) {
31541 var center = task.x + conf.width / 2;
31542 var g = elem.append('g');
31543 taskCount++;
31544 var maxHeight = 300 + 5 * 30;
31545 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');
31546 drawFace(g, {
31547 cx: center,
31548 cy: 300 + (5 - task.score) * 30,
31549 score: task.score
31550 });
31551 var rect = getNoteRect();
31552 rect.x = task.x;
31553 rect.y = task.y;
31554 rect.fill = task.fill;
31555 rect.width = conf.width;
31556 rect.height = conf.height;
31557 rect.class = 'task task-type-' + task.num;
31558 rect.rx = 3;
31559 rect.ry = 3;
31560 drawRect(g, rect);
31561 var xPos = task.x + 14;
31562 task.people.forEach(function (person) {
31563 var colour = task.actors[person].color;
31564 var circle = {
31565 cx: xPos,
31566 cy: task.y,
31567 r: 7,
31568 fill: colour,
31569 stroke: '#000',
31570 title: person,
31571 pos: task.actors[person].position
31572 };
31573 drawCircle(g, circle);
31574 xPos += 10;
31575 });
31576
31577 _drawTextCandidateFunc(conf)(task.task, g, rect.x, rect.y, rect.width, rect.height, {
31578 class: 'task'
31579 }, conf, task.colour);
31580};
31581/**
31582 * Draws a background rectangle
31583 *
31584 * @param {any} elem The html element
31585 * @param {any} bounds The bounds of the drawing
31586 */
31587
31588var drawBackgroundRect = function drawBackgroundRect(elem, bounds) {
31589 var rectElem = drawRect(elem, {
31590 x: bounds.startx,
31591 y: bounds.starty,
31592 width: bounds.stopx - bounds.startx,
31593 height: bounds.stopy - bounds.starty,
31594 fill: bounds.fill,
31595 class: 'rect'
31596 });
31597 rectElem.lower();
31598};
31599var getTextObj = function getTextObj() {
31600 return {
31601 x: 0,
31602 y: 0,
31603 fill: undefined,
31604 'text-anchor': 'start',
31605 width: 100,
31606 height: 100,
31607 textMargin: 0,
31608 rx: 0,
31609 ry: 0
31610 };
31611};
31612var getNoteRect = function getNoteRect() {
31613 return {
31614 x: 0,
31615 y: 0,
31616 width: 100,
31617 anchor: 'start',
31618 height: 100,
31619 rx: 0,
31620 ry: 0
31621 };
31622};
31623
31624var _drawTextCandidateFunc = function () {
31625 /**
31626 * @param {any} content
31627 * @param {any} g
31628 * @param {any} x
31629 * @param {any} y
31630 * @param {any} width
31631 * @param {any} height
31632 * @param {any} textAttrs
31633 * @param {any} colour
31634 */
31635 function byText(content, g, x, y, width, height, textAttrs, colour) {
31636 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);
31637
31638 _setTextAttrs(text, textAttrs);
31639 }
31640 /**
31641 * @param {any} content
31642 * @param {any} g
31643 * @param {any} x
31644 * @param {any} y
31645 * @param {any} width
31646 * @param {any} height
31647 * @param {any} textAttrs
31648 * @param {any} conf
31649 * @param {any} colour
31650 */
31651
31652
31653 function byTspan(content, g, x, y, width, height, textAttrs, conf, colour) {
31654 var taskFontSize = conf.taskFontSize,
31655 taskFontFamily = conf.taskFontFamily;
31656 var lines = content.split(/<br\s*\/?>/gi);
31657
31658 for (var i = 0; i < lines.length; i++) {
31659 var dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;
31660 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);
31661 text.append('tspan').attr('x', x + width / 2).attr('dy', dy).text(lines[i]);
31662 text.attr('y', y + height / 2.0).attr('dominant-baseline', 'central').attr('alignment-baseline', 'central');
31663
31664 _setTextAttrs(text, textAttrs);
31665 }
31666 }
31667 /**
31668 * @param {any} content
31669 * @param {any} g
31670 * @param {any} x
31671 * @param {any} y
31672 * @param {any} width
31673 * @param {any} height
31674 * @param {any} textAttrs
31675 * @param {any} conf
31676 */
31677
31678
31679 function byFo(content, g, x, y, width, height, textAttrs, conf) {
31680 var body = g.append('switch');
31681 var f = body.append('foreignObject').attr('x', x).attr('y', y).attr('width', width).attr('height', height).attr('position', 'fixed');
31682 var text = f.append('xhtml:div').style('display', 'table').style('height', '100%').style('width', '100%');
31683 text.append('div').attr('class', 'label').style('display', 'table-cell').style('text-align', 'center').style('vertical-align', 'middle').text(content);
31684 byTspan(content, body, x, y, width, height, textAttrs, conf);
31685
31686 _setTextAttrs(text, textAttrs);
31687 }
31688 /**
31689 * @param {any} toText
31690 * @param {any} fromTextAttrsDict
31691 */
31692
31693
31694 function _setTextAttrs(toText, fromTextAttrsDict) {
31695 for (var key in fromTextAttrsDict) {
31696 if (key in fromTextAttrsDict) {
31697 // eslint-disable-line
31698 // noinspection JSUnfilteredForInLoop
31699 toText.attr(key, fromTextAttrsDict[key]);
31700 }
31701 }
31702 }
31703
31704 return function (conf) {
31705 return conf.textPlacement === 'fo' ? byFo : conf.textPlacement === 'old' ? byText : byTspan;
31706 };
31707}();
31708
31709var initGraphics = function initGraphics(graphics) {
31710 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
31711};
31712
31713/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
31714 drawRect: drawRect,
31715 drawCircle: drawCircle,
31716 drawSection: drawSection,
31717 drawText: drawText,
31718 drawLabel: drawLabel,
31719 drawTask: drawTask,
31720 drawBackgroundRect: drawBackgroundRect,
31721 getTextObj: getTextObj,
31722 getNoteRect: getNoteRect,
31723 initGraphics: initGraphics
31724});
31725
31726/***/ }),
31727
31728/***/ "./src/errorRenderer.js":
31729/*!******************************!*\
31730 !*** ./src/errorRenderer.js ***!
31731 \******************************/
31732/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31733
31734"use strict";
31735__webpack_require__.r(__webpack_exports__);
31736/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31737/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
31738/* harmony export */ "draw": () => (/* binding */ draw),
31739/* harmony export */ "setConf": () => (/* binding */ setConf)
31740/* harmony export */ });
31741/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
31742/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
31743/** Created by knut on 14-12-11. */
31744
31745
31746var conf = {};
31747/**
31748 * Merges the value of `conf` with the passed `cnf`
31749 *
31750 * @param {object} cnf Config to merge
31751 */
31752
31753var setConf = function setConf(cnf) {
31754 var keys = Object.keys(cnf);
31755 keys.forEach(function (key) {
31756 conf[key] = cnf[key];
31757 });
31758};
31759/**
31760 * Draws a an info picture in the tag with id: id based on the graph definition in text.
31761 *
31762 * @param {string} id The text for the error
31763 * @param {string} ver The version
31764 */
31765
31766var draw = function draw(id, ver) {
31767 try {
31768 _logger__WEBPACK_IMPORTED_MODULE_1__.log.debug('Renering svg for syntax error\n');
31769 var svg = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('#' + id);
31770 var g = svg.append('g');
31771 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');
31772 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');
31773 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');
31774 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');
31775 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');
31776 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');
31777 g.append('text') // text label for the x axis
31778 .attr('class', 'error-text').attr('x', 1240).attr('y', 250).attr('font-size', '150px').style('text-anchor', 'middle').text('Syntax error in graph');
31779 g.append('text') // text label for the x axis
31780 .attr('class', 'error-text').attr('x', 1050).attr('y', 400).attr('font-size', '100px').style('text-anchor', 'middle').text('mermaid version ' + ver);
31781 svg.attr('height', 100);
31782 svg.attr('width', 400);
31783 svg.attr('viewBox', '768 0 512 512');
31784 } catch (e) {
31785 _logger__WEBPACK_IMPORTED_MODULE_1__.log.error('Error while rendering info diagram');
31786 _logger__WEBPACK_IMPORTED_MODULE_1__.log.error(e.message);
31787 }
31788};
31789/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
31790 setConf: setConf,
31791 draw: draw
31792});
31793
31794/***/ }),
31795
31796/***/ "./src/interactionDb.js":
31797/*!******************************!*\
31798 !*** ./src/interactionDb.js ***!
31799 \******************************/
31800/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31801
31802"use strict";
31803__webpack_require__.r(__webpack_exports__);
31804/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31805/* harmony export */ "addFunction": () => (/* binding */ addFunction),
31806/* harmony export */ "attachFunctions": () => (/* binding */ attachFunctions)
31807/* harmony export */ });
31808var interactionFunctions = [];
31809var addFunction = function addFunction(func) {
31810 interactionFunctions.push(func);
31811};
31812var attachFunctions = function attachFunctions() {
31813 interactionFunctions.forEach(function (f) {
31814 f();
31815 });
31816 interactionFunctions = [];
31817};
31818
31819/***/ }),
31820
31821/***/ "./src/logger.js":
31822/*!***********************!*\
31823 !*** ./src/logger.js ***!
31824 \***********************/
31825/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31826
31827"use strict";
31828__webpack_require__.r(__webpack_exports__);
31829/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31830/* harmony export */ "LEVELS": () => (/* binding */ LEVELS),
31831/* harmony export */ "log": () => (/* binding */ log),
31832/* harmony export */ "setLogLevel": () => (/* binding */ setLogLevel)
31833/* harmony export */ });
31834/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-mini */ "./node_modules/moment-mini/moment.min.js");
31835/* harmony import */ var moment_mini__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_mini__WEBPACK_IMPORTED_MODULE_0__);
31836
31837/** @typedef {'debug' | 'info' | 'warn' | 'error' | 'fatal'} LogLevel A log level */
31838
31839/** @type {Object<LogLevel, number>} */
31840
31841var LEVELS = {
31842 debug: 1,
31843 info: 2,
31844 warn: 3,
31845 error: 4,
31846 fatal: 5
31847};
31848var log = {
31849 debug: function debug() {},
31850 info: function info() {},
31851 warn: function warn() {},
31852 error: function error() {},
31853 fatal: function fatal() {}
31854};
31855/**
31856 * Sets a log level
31857 *
31858 * @param {LogLevel} [level="fatal"] The level to set the logging to. Default is `"fatal"`
31859 */
31860
31861var setLogLevel = function setLogLevel() {
31862 var level = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'fatal';
31863
31864 if (isNaN(level)) {
31865 level = level.toLowerCase();
31866
31867 if (LEVELS[level] !== undefined) {
31868 level = LEVELS[level];
31869 }
31870 }
31871
31872 log.trace = function () {};
31873
31874 log.debug = function () {};
31875
31876 log.info = function () {};
31877
31878 log.warn = function () {};
31879
31880 log.error = function () {};
31881
31882 log.fatal = function () {};
31883
31884 if (level <= LEVELS.fatal) {
31885 log.fatal = console.error ? console.error.bind(console, format('FATAL'), 'color: orange') : console.log.bind(console, '\x1b[35m', format('FATAL'));
31886 }
31887
31888 if (level <= LEVELS.error) {
31889 log.error = console.error ? console.error.bind(console, format('ERROR'), 'color: orange') : console.log.bind(console, '\x1b[31m', format('ERROR'));
31890 }
31891
31892 if (level <= LEVELS.warn) {
31893 log.warn = console.warn ? console.warn.bind(console, format('WARN'), 'color: orange') : console.log.bind(console, "\x1B[33m", format('WARN'));
31894 }
31895
31896 if (level <= LEVELS.info) {
31897 log.info = console.info // ? console.info.bind(console, '\x1b[34m', format('INFO'), 'color: blue')
31898 ? console.info.bind(console, format('INFO'), 'color: lightblue') : console.log.bind(console, '\x1b[34m', format('INFO'));
31899 }
31900
31901 if (level <= LEVELS.debug) {
31902 log.debug = console.debug ? console.debug.bind(console, format('DEBUG'), 'color: lightgreen') : console.log.bind(console, '\x1b[32m', format('DEBUG'));
31903 }
31904};
31905/**
31906 * Returns a format with the timestamp and the log level
31907 *
31908 * @param {LogLevel} level The level for the log format
31909 * @returns {string} The format with the timestamp and log level
31910 */
31911
31912var format = function format(level) {
31913 var time = moment_mini__WEBPACK_IMPORTED_MODULE_0___default()().format('ss.SSS');
31914 return "%c".concat(time, " : ").concat(level, " : ");
31915};
31916
31917/***/ }),
31918
31919/***/ "./src/mermaid.js":
31920/*!************************!*\
31921 !*** ./src/mermaid.js ***!
31922 \************************/
31923/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31924
31925"use strict";
31926__webpack_require__.r(__webpack_exports__);
31927/* harmony export */ __webpack_require__.d(__webpack_exports__, {
31928/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
31929/* harmony export */ });
31930/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
31931/* harmony import */ var _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mermaidAPI */ "./src/mermaidAPI.js");
31932/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/utils.js");
31933/**
31934 * Web page integration module for the mermaid framework. It uses the mermaidAPI for mermaid
31935 * functionality and to render the diagrams to svg code.
31936 */
31937
31938
31939
31940/**
31941 * ## init
31942 *
31943 * Function that goes through the document to find the chart definitions in there and render them.
31944 *
31945 * The function tags the processed attributes with the attribute data-processed and ignores found
31946 * elements with the attribute already set. This way the init function can be triggered several times.
31947 *
31948 * Optionally, `init` can accept in the second argument one of the following:
31949 *
31950 * - A DOM Node
31951 * - An array of DOM nodes (as would come from a jQuery selector)
31952 * - A W3C selector, a la `.mermaid`
31953 *
31954 * ```mermaid
31955 * graph LR;
31956 * a(Find elements)-->b{Processed}
31957 * b-->|Yes|c(Leave element)
31958 * b-->|No |d(Transform)
31959 * ```
31960 *
31961 * Renders the mermaid diagrams
31962 */
31963
31964var init = function init() {
31965 try {
31966 initThrowsErrors.apply(void 0, arguments);
31967 } catch (e) {
31968 _logger__WEBPACK_IMPORTED_MODULE_0__.log.warn('Syntax Error rendering');
31969 _logger__WEBPACK_IMPORTED_MODULE_0__.log.warn(e.str);
31970
31971 if (this.parseError) {
31972 this.parseError(e);
31973 }
31974 }
31975};
31976
31977var initThrowsErrors = function initThrowsErrors() {
31978 var conf = _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].getConfig(); // console.log('Starting rendering diagrams (init) - mermaid.init', conf);
31979
31980 var nodes;
31981
31982 if (arguments.length >= 2) {
31983 /*! sequence config was passed as #1 */
31984 if (typeof arguments[0] !== 'undefined') {
31985 mermaid.sequenceConfig = arguments[0];
31986 }
31987
31988 nodes = arguments[1];
31989 } else {
31990 nodes = arguments[0];
31991 } // if last argument is a function this is the callback function
31992
31993
31994 var callback;
31995
31996 if (typeof arguments[arguments.length - 1] === 'function') {
31997 callback = arguments[arguments.length - 1];
31998 _logger__WEBPACK_IMPORTED_MODULE_0__.log.debug('Callback function found');
31999 } else {
32000 if (typeof conf.mermaid !== 'undefined') {
32001 if (typeof conf.mermaid.callback === 'function') {
32002 callback = conf.mermaid.callback;
32003 _logger__WEBPACK_IMPORTED_MODULE_0__.log.debug('Callback function found');
32004 } else {
32005 _logger__WEBPACK_IMPORTED_MODULE_0__.log.debug('No Callback function found');
32006 }
32007 }
32008 }
32009
32010 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
32011
32012 _logger__WEBPACK_IMPORTED_MODULE_0__.log.debug('Start On Load before: ' + mermaid.startOnLoad);
32013
32014 if (typeof mermaid.startOnLoad !== 'undefined') {
32015 _logger__WEBPACK_IMPORTED_MODULE_0__.log.debug('Start On Load inner: ' + mermaid.startOnLoad);
32016 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].updateSiteConfig({
32017 startOnLoad: mermaid.startOnLoad
32018 });
32019 }
32020
32021 if (typeof mermaid.ganttConfig !== 'undefined') {
32022 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].updateSiteConfig({
32023 gantt: mermaid.ganttConfig
32024 });
32025 }
32026
32027 var idGenerator = new _utils__WEBPACK_IMPORTED_MODULE_2__["default"].initIdGenerator(conf.deterministicIds, conf.deterministicIDSeed);
32028 var txt;
32029
32030 var _loop = function _loop(i) {
32031 // element is the current div with mermaid class
32032 var element = nodes[i];
32033 /*! Check if previously processed */
32034
32035 if (!element.getAttribute('data-processed')) {
32036 element.setAttribute('data-processed', true);
32037 } else {
32038 return "continue";
32039 }
32040
32041 var id = "mermaid-".concat(idGenerator.next()); // Fetch the graph definition including tags
32042
32043 txt = element.innerHTML; // transforms the html to pure text
32044
32045 txt = _utils__WEBPACK_IMPORTED_MODULE_2__["default"].entityDecode(txt).trim().replace(/<br\s*\/?>/gi, '<br/>');
32046 var init = _utils__WEBPACK_IMPORTED_MODULE_2__["default"].detectInit(txt);
32047
32048 if (init) {
32049 _logger__WEBPACK_IMPORTED_MODULE_0__.log.debug('Detected early reinit: ', init);
32050 }
32051
32052 try {
32053 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].render(id, txt, function (svgCode, bindFunctions) {
32054 element.innerHTML = svgCode;
32055
32056 if (typeof callback !== 'undefined') {
32057 callback(id);
32058 }
32059
32060 if (bindFunctions) bindFunctions(element);
32061 }, element);
32062 } catch (error) {
32063 _logger__WEBPACK_IMPORTED_MODULE_0__.log.warn('Catching Error (bootstrap)');
32064 throw {
32065 error: error,
32066 message: error.str
32067 };
32068 }
32069 };
32070
32071 for (var i = 0; i < nodes.length; i++) {
32072 var _ret = _loop(i);
32073
32074 if (_ret === "continue") continue;
32075 }
32076};
32077
32078var initialize = function initialize(config) {
32079 // mermaidAPI.reset();
32080 if (typeof config.mermaid !== 'undefined') {
32081 if (typeof config.mermaid.startOnLoad !== 'undefined') {
32082 mermaid.startOnLoad = config.mermaid.startOnLoad;
32083 }
32084
32085 if (typeof config.mermaid.htmlLabels !== 'undefined') {
32086 mermaid.htmlLabels = config.mermaid.htmlLabels === 'false' || config.mermaid.htmlLabels === false ? false : true;
32087 }
32088 }
32089
32090 _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].initialize(config); // mermaidAPI.reset();
32091};
32092/**
32093 * ##contentLoaded Callback function that is called when page is loaded. This functions fetches
32094 * configuration for mermaid rendering and calls init for rendering the mermaid diagrams on the page.
32095 */
32096
32097
32098var contentLoaded = function contentLoaded() {
32099 var config;
32100
32101 if (mermaid.startOnLoad) {
32102 // No config found, do check API config
32103 config = _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].getConfig();
32104
32105 if (config.startOnLoad) {
32106 mermaid.init();
32107 }
32108 } else {
32109 if (typeof mermaid.startOnLoad === 'undefined') {
32110 _logger__WEBPACK_IMPORTED_MODULE_0__.log.debug('In start, no config');
32111 config = _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].getConfig();
32112
32113 if (config.startOnLoad) {
32114 mermaid.init();
32115 }
32116 }
32117 }
32118};
32119
32120if (typeof document !== 'undefined') {
32121 /*!
32122 * Wait for document loaded before starting the execution
32123 */
32124 window.addEventListener('load', function () {
32125 contentLoaded();
32126 }, false);
32127}
32128/**
32129 * ## setParseErrorHandler Alternative to directly setting parseError using:
32130 *
32131 * ```js
32132 * mermaid.parseError = function(err,hash){=
32133 * forExampleDisplayErrorInGui(err); // do something with the error
32134 * };
32135 * ```
32136 *
32137 * This is provided for environments where the mermaid object can't directly have a new member added
32138 * to it (eg. dart interop wrapper). (Initially there is no parseError member of mermaid).
32139 *
32140 * @param {function (err, hash)} newParseErrorHandler New parseError() callback.
32141 */
32142
32143
32144var setParseErrorHandler = function setParseErrorHandler(newParseErrorHandler) {
32145 mermaid.parseError = newParseErrorHandler;
32146};
32147
32148var mermaid = {
32149 startOnLoad: true,
32150 htmlLabels: true,
32151 diagrams: {},
32152 mermaidAPI: _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"],
32153 parse: _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"] != undefined ? _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].parse : null,
32154 render: _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"] != undefined ? _mermaidAPI__WEBPACK_IMPORTED_MODULE_1__["default"].render : null,
32155 init: init,
32156 initThrowsErrors: initThrowsErrors,
32157 initialize: initialize,
32158 contentLoaded: contentLoaded,
32159 setParseErrorHandler: setParseErrorHandler
32160};
32161/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mermaid);
32162
32163/***/ }),
32164
32165/***/ "./src/mermaidAPI.js":
32166/*!***************************!*\
32167 !*** ./src/mermaidAPI.js ***!
32168 \***************************/
32169/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32170
32171"use strict";
32172__webpack_require__.r(__webpack_exports__);
32173/* harmony export */ __webpack_require__.d(__webpack_exports__, {
32174/* harmony export */ "decodeEntities": () => (/* binding */ decodeEntities),
32175/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
32176/* harmony export */ "encodeEntities": () => (/* binding */ encodeEntities)
32177/* harmony export */ });
32178/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
32179/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Serializer.js");
32180/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Parser.js");
32181/* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../package.json */ "./package.json");
32182/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./config */ "./src/config.js");
32183/* harmony import */ var _diagram_api_diagram_orchestration__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./diagram-api/diagram-orchestration */ "./src/diagram-api/diagram-orchestration.js");
32184/* harmony import */ var _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./diagrams/class/classDb */ "./src/diagrams/class/classDb.js");
32185/* harmony import */ var _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./diagrams/flowchart/flowDb */ "./src/diagrams/flowchart/flowDb.js");
32186/* harmony import */ var _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./diagrams/flowchart/flowRenderer */ "./src/diagrams/flowchart/flowRenderer.js");
32187/* harmony import */ var _diagrams_flowchart_flowRenderer_v2__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./diagrams/flowchart/flowRenderer-v2 */ "./src/diagrams/flowchart/flowRenderer-v2.js");
32188/* harmony import */ var _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./diagrams/gantt/ganttDb */ "./src/diagrams/gantt/ganttDb.js");
32189/* harmony import */ var _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./diagrams/gantt/ganttRenderer */ "./src/diagrams/gantt/ganttRenderer.js");
32190/* harmony import */ var _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./diagrams/sequence/sequenceRenderer */ "./src/diagrams/sequence/sequenceRenderer.js");
32191/* harmony import */ var _diagrams_state_stateRenderer__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./diagrams/state/stateRenderer */ "./src/diagrams/state/stateRenderer.js");
32192/* harmony import */ var _diagrams_state_stateRenderer_v2__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./diagrams/state/stateRenderer-v2 */ "./src/diagrams/state/stateRenderer-v2.js");
32193/* harmony import */ var _diagrams_user_journey_journeyRenderer__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./diagrams/user-journey/journeyRenderer */ "./src/diagrams/user-journey/journeyRenderer.js");
32194/* harmony import */ var _Diagram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Diagram */ "./src/Diagram.js");
32195/* harmony import */ var _errorRenderer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./errorRenderer */ "./src/errorRenderer.js");
32196/* harmony import */ var _interactionDb__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./interactionDb */ "./src/interactionDb.js");
32197/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
32198/* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./styles */ "./src/styles.js");
32199/* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./themes */ "./src/themes/index.js");
32200/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils */ "./src/utils.js");
32201/* harmony import */ var _assignWithDepth__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./assignWithDepth */ "./src/assignWithDepth.js");
32202/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dompurify */ "./node_modules/dompurify/dist/purify.js");
32203/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dompurify__WEBPACK_IMPORTED_MODULE_1__);
32204/* harmony import */ var _mermaid__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mermaid */ "./src/mermaid.js");
32205function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
32206
32207/**
32208 * Edit this
32209 * Page[[N|Solid](img/GitHub-Mark-32px.png)](https://github.com/mermaid-js/mermaid/blob/develop/src/mermaidAPI.js)
32210 *
32211 * This is the API to be used when optionally handling the integration with the web page, instead of
32212 * using the default integration provided by mermaid.js.
32213 *
32214 * The core of this api is the [**render**](Setup.md?id=render) function which, given a graph
32215 * definition as text, renders the graph/diagram and returns an svg element for the graph.
32216 *
32217 * It is is then up to the user of the API to make use of the svg, either insert it somewhere in the
32218 * page or do something completely different.
32219 *
32220 * In addition to the render function, a number of behavioral configuration options are available.
32221 *
32222 * @name mermaidAPI
32223 */
32224
32225
32226
32227
32228
32229
32230
32231
32232
32233
32234
32235
32236
32237
32238
32239
32240
32241
32242
32243
32244
32245
32246
32247
32248
32249/**
32250 * @param text
32251 * @param dia
32252 * @returns {any}
32253 */
32254
32255function parse(text, dia) {
32256 var parseEncounteredException = false;
32257
32258 try {
32259 var diag = dia ? dia : new _Diagram__WEBPACK_IMPORTED_MODULE_2__["default"](text);
32260 diag.db.clear();
32261 return diag.parse(text);
32262 } catch (error) {
32263 parseEncounteredException = true; // Is this the correct way to access mermiad's parseError()
32264 // method ? (or global.mermaid.parseError()) ?
32265
32266 if (_mermaid__WEBPACK_IMPORTED_MODULE_3__["default"].parseError) {
32267 if (error.str != undefined) {
32268 // handle case where error string and hash were
32269 // wrapped in object like`const error = { str, hash };`
32270 _mermaid__WEBPACK_IMPORTED_MODULE_3__["default"].parseError(error.str, error.hash);
32271 } else {
32272 // assume it is just error string and pass it on
32273 _mermaid__WEBPACK_IMPORTED_MODULE_3__["default"].parseError(error);
32274 }
32275 } else {
32276 // No mermaid.parseError() handler defined, so re-throw it
32277 throw error;
32278 }
32279 }
32280
32281 return !parseEncounteredException;
32282}
32283
32284var encodeEntities = function encodeEntities(text) {
32285 var txt = text;
32286 txt = txt.replace(/style.*:\S*#.*;/g, function (s) {
32287 var innerTxt = s.substring(0, s.length - 1);
32288 return innerTxt;
32289 });
32290 txt = txt.replace(/classDef.*:\S*#.*;/g, function (s) {
32291 var innerTxt = s.substring(0, s.length - 1);
32292 return innerTxt;
32293 });
32294 txt = txt.replace(/#\w+;/g, function (s) {
32295 var innerTxt = s.substring(1, s.length - 1);
32296 var isInt = /^\+?\d+$/.test(innerTxt);
32297
32298 if (isInt) {
32299 return 'fl°°' + innerTxt + '¶ß';
32300 } else {
32301 return 'fl°' + innerTxt + '¶ß';
32302 }
32303 });
32304 return txt;
32305};
32306var decodeEntities = function decodeEntities(text) {
32307 var txt = text;
32308 txt = txt.replace(/fl°°/g, function () {
32309 return '&#';
32310 });
32311 txt = txt.replace(/fl°/g, function () {
32312 return '&';
32313 });
32314 txt = txt.replace(/¶ß/g, function () {
32315 return ';';
32316 });
32317 return txt;
32318};
32319/**
32320 * Function that renders an svg with a graph from a chart definition. Usage example below.
32321 *
32322 * ```javascript
32323 * mermaidAPI.initialize({
32324 * startOnLoad: true,
32325 * });
32326 * $(function () {
32327 * const graphDefinition = 'graph TB\na-->b';
32328 * const cb = function (svgGraph) {
32329 * console.log(svgGraph);
32330 * };
32331 * mermaidAPI.render('id1', graphDefinition, cb);
32332 * });
32333 * ```
32334 *
32335 * @param {any} id The id of the element to be rendered
32336 * @param {any} _txt The graph definition
32337 * @param {any} cb Callback which is called after rendering is finished with the svg code as inparam.
32338 * @param {any} container Selector to element in which a div with the graph temporarily will be
32339 * inserted. In one is provided a hidden div will be inserted in the body of the page instead. The
32340 * element will be removed when rendering is completed.
32341 * @returns {any}
32342 */
32343
32344var render = function render(id, _txt, cb, container) {
32345 _config__WEBPACK_IMPORTED_MODULE_4__.reset();
32346
32347 var txt = _txt.replace(/\r\n?/g, '\n'); // parser problems on CRLF ignore all CR and leave LF;;
32348
32349
32350 var graphInit = _utils__WEBPACK_IMPORTED_MODULE_5__["default"].detectInit(txt);
32351
32352 if (graphInit) {
32353 (0,_utils__WEBPACK_IMPORTED_MODULE_5__.directiveSanitizer)(graphInit);
32354 _config__WEBPACK_IMPORTED_MODULE_4__.addDirective(graphInit);
32355 }
32356
32357 var cnf = _config__WEBPACK_IMPORTED_MODULE_4__.getConfig();
32358 _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug(cnf); // Check the maximum allowed text size
32359
32360 if (_txt.length > cnf.maxTextSize) {
32361 txt = 'graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa';
32362 }
32363
32364 var root = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('body'); // In regular execution the container will be the div with a mermaid class
32365
32366 if (typeof container !== 'undefined') {
32367 if (cnf.securityLevel === 'sandbox') {
32368 // IF we are in sandboxed mode, we do everyting mermaid related
32369 // in a sandboxed div
32370 var iframe = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('body').append('iframe').attr('id', 'i' + id).attr('style', 'width: 100%; height: 100%;').attr('sandbox', '');
32371 root = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(iframe.nodes()[0].contentDocument.body);
32372 root.node().style.margin = 0;
32373 } // A container was provided by the caller
32374
32375
32376 container.innerHTML = '';
32377
32378 if (cnf.securityLevel === 'sandbox') {
32379 // IF we are in sandboxed mode, we do everyting mermaid related
32380 // in a sandboxed div
32381 var _iframe = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(container).append('iframe').attr('id', 'i' + id).attr('style', 'width: 100%; height: 100%;').attr('sandbox', ''); // const iframeBody = ;
32382
32383
32384 root = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(_iframe.nodes()[0].contentDocument.body);
32385 root.node().style.margin = 0;
32386 } else {
32387 root = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(container);
32388 }
32389
32390 root.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').attr('xmlns:xlink', 'http://www.w3.org/1999/xlink').append('g');
32391 } else {
32392 // No container was provided
32393 // If there is an existsing element with the id, we remove it
32394 // this likely a previously rendered diagram
32395 var existingSvg = document.getElementById(id);
32396
32397 if (existingSvg) {
32398 existingSvg.remove();
32399 } // Remove previous tpm element if it exists
32400
32401
32402 var _element;
32403
32404 if (cnf.securityLevel !== 'sandbox') {
32405 _element = document.querySelector('#' + 'd' + id);
32406 } else {
32407 _element = document.querySelector('#' + 'i' + id);
32408 }
32409
32410 if (_element) {
32411 _element.remove();
32412 } // Add the tmp div used for rendering with the id `d${id}`
32413 // d+id it will contain a svg with the id "id"
32414
32415
32416 if (cnf.securityLevel === 'sandbox') {
32417 // IF we are in sandboxed mode, we do everyting mermaid related
32418 // in a sandboxed div
32419 var _iframe2 = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('body').append('iframe').attr('id', 'i' + id).attr('style', 'width: 100%; height: 100%;').attr('sandbox', '');
32420
32421 root = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(_iframe2.nodes()[0].contentDocument.body);
32422 root.node().style.margin = 0;
32423 } else {
32424 root = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)('body');
32425 } // This is the temporary div
32426
32427
32428 root.append('div').attr('id', 'd' + id) // this is the seed of the svg to be rendered
32429 .append('svg').attr('id', id).attr('width', '100%').attr('xmlns', 'http://www.w3.org/2000/svg').append('g');
32430 }
32431
32432 txt = encodeEntities(txt); // Important that we do not create the diagram until after the directives have been included
32433
32434 var diag = new _Diagram__WEBPACK_IMPORTED_MODULE_2__["default"](txt); // Get the tmp element containing the the svg
32435
32436 var element = root.select('#d' + id).node();
32437 var graphType = diag.type; // insert inline style into svg
32438
32439 var svg = element.firstChild;
32440 var firstChild = svg.firstChild;
32441 var userStyles = ''; // user provided theme CSS
32442 // If you add more configuration driven data into the user styles make sure that the value is
32443 // sanitized bye the santiizeCSS function
32444
32445 if (cnf.themeCSS !== undefined) {
32446 userStyles += "\n".concat(cnf.themeCSS);
32447 } // user provided theme CSS
32448
32449
32450 if (cnf.fontFamily !== undefined) {
32451 userStyles += "\n:root { --mermaid-font-family: ".concat(cnf.fontFamily, "}");
32452 } // user provided theme CSS
32453
32454
32455 if (cnf.altFontFamily !== undefined) {
32456 userStyles += "\n:root { --mermaid-alt-font-family: ".concat(cnf.altFontFamily, "}");
32457 } // classDef
32458
32459
32460 if (graphType === 'flowchart' || graphType === 'flowchart-v2' || graphType === 'graph') {
32461 var classes = _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_7__["default"].getClasses(txt, diag);
32462 var htmlLabels = cnf.htmlLabels || cnf.flowchart.htmlLabels;
32463
32464 for (var className in classes) {
32465 if (htmlLabels) {
32466 userStyles += "\n.".concat(className, " > * { ").concat(classes[className].styles.join(' !important; '), " !important; }");
32467 userStyles += "\n.".concat(className, " span { ").concat(classes[className].styles.join(' !important; '), " !important; }");
32468 } else {
32469 userStyles += "\n.".concat(className, " path { ").concat(classes[className].styles.join(' !important; '), " !important; }");
32470 userStyles += "\n.".concat(className, " rect { ").concat(classes[className].styles.join(' !important; '), " !important; }");
32471 userStyles += "\n.".concat(className, " polygon { ").concat(classes[className].styles.join(' !important; '), " !important; }");
32472 userStyles += "\n.".concat(className, " ellipse { ").concat(classes[className].styles.join(' !important; '), " !important; }");
32473 userStyles += "\n.".concat(className, " circle { ").concat(classes[className].styles.join(' !important; '), " !important; }");
32474
32475 if (classes[className].textStyles) {
32476 userStyles += "\n.".concat(className, " tspan { ").concat(classes[className].textStyles.join(' !important; '), " !important; }");
32477 }
32478 }
32479 }
32480 }
32481
32482 var stylis = function stylis(selector, styles) {
32483 return (0,stylis__WEBPACK_IMPORTED_MODULE_8__.serialize)((0,stylis__WEBPACK_IMPORTED_MODULE_9__.compile)("".concat(selector, "{").concat(styles, "}")), stylis__WEBPACK_IMPORTED_MODULE_8__.stringify);
32484 };
32485
32486 var rules = stylis("#".concat(id), (0,_styles__WEBPACK_IMPORTED_MODULE_10__["default"])(graphType, userStyles, cnf.themeVariables));
32487 var style1 = document.createElement('style');
32488 style1.innerHTML = "#".concat(id, " ") + rules;
32489 svg.insertBefore(style1, firstChild);
32490
32491 try {
32492 diag.renderer.draw(txt, id, _package_json__WEBPACK_IMPORTED_MODULE_11__.version, diag);
32493 } catch (e) {
32494 _errorRenderer__WEBPACK_IMPORTED_MODULE_12__["default"].draw(id, _package_json__WEBPACK_IMPORTED_MODULE_11__.version);
32495 throw e;
32496 }
32497
32498 root.select("[id=\"".concat(id, "\"]")).selectAll('foreignobject > *').attr('xmlns', 'http://www.w3.org/1999/xhtml'); // Fix for when the base tag is used
32499
32500 var svgCode = root.select('#d' + id).node().innerHTML;
32501 _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug('cnf.arrowMarkerAbsolute', cnf.arrowMarkerAbsolute);
32502
32503 if ((!cnf.arrowMarkerAbsolute || cnf.arrowMarkerAbsolute === 'false') && cnf.arrowMarkerAbsolute !== 'sandbox') {
32504 svgCode = svgCode.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#', 'g');
32505 }
32506
32507 svgCode = decodeEntities(svgCode); // Fix for when the br tag is used
32508
32509 svgCode = svgCode.replace(/<br>/g, '<br/>');
32510
32511 if (cnf.securityLevel === 'sandbox') {
32512 var svgEl = root.select('#d' + id + ' svg').node();
32513 var width = '100%';
32514 var height = '100%';
32515
32516 if (svgEl) {
32517 height = svgEl.viewBox.baseVal.height + 'px';
32518 }
32519
32520 svgCode = "<iframe style=\"width:".concat(width, ";height:").concat(height, ";border:0;margin:0;\" src=\"data:text/html;base64,").concat(btoa('<body style="margin:0">' + svgCode + '</body>'), "\" sandbox=\"allow-top-navigation-by-user-activation allow-popups\">\n The \u201Ciframe\u201D tag is not supported by your browser.\n</iframe>");
32521 } else {
32522 if (cnf.securityLevel !== 'loose') {
32523 svgCode = dompurify__WEBPACK_IMPORTED_MODULE_1___default().sanitize(svgCode, {
32524 ADD_TAGS: ['foreignobject'],
32525 ADD_ATTR: ['dominant-baseline']
32526 });
32527 }
32528 }
32529
32530 if (typeof cb !== 'undefined') {
32531 switch (graphType) {
32532 case 'flowchart':
32533 case 'flowchart-v2':
32534 cb(svgCode, _diagrams_flowchart_flowDb__WEBPACK_IMPORTED_MODULE_13__["default"].bindFunctions);
32535 break;
32536
32537 case 'gantt':
32538 cb(svgCode, _diagrams_gantt_ganttDb__WEBPACK_IMPORTED_MODULE_14__["default"].bindFunctions);
32539 break;
32540
32541 case 'class':
32542 case 'classDiagram':
32543 cb(svgCode, _diagrams_class_classDb__WEBPACK_IMPORTED_MODULE_15__["default"].bindFunctions);
32544 break;
32545
32546 default:
32547 cb(svgCode);
32548 }
32549 } else {
32550 _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug('CB = undefined!');
32551 }
32552
32553 (0,_interactionDb__WEBPACK_IMPORTED_MODULE_16__.attachFunctions)();
32554 var tmpElementSelector = cnf.securityLevel === 'sandbox' ? '#i' + id : '#d' + id;
32555 var node = (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(tmpElementSelector).node();
32556
32557 if (node !== null && typeof node.remove === 'function') {
32558 (0,d3__WEBPACK_IMPORTED_MODULE_0__.select)(tmpElementSelector).node().remove();
32559 }
32560
32561 return svgCode;
32562};
32563
32564var currentDirective = {};
32565
32566var parseDirective = function parseDirective(p, statement, context, type) {
32567 try {
32568 if (statement !== undefined) {
32569 statement = statement.trim();
32570
32571 switch (context) {
32572 case 'open_directive':
32573 currentDirective = {};
32574 break;
32575
32576 case 'type_directive':
32577 currentDirective.type = statement.toLowerCase();
32578 break;
32579
32580 case 'arg_directive':
32581 currentDirective.args = JSON.parse(statement);
32582 break;
32583
32584 case 'close_directive':
32585 handleDirective(p, currentDirective, type);
32586 currentDirective = null;
32587 break;
32588 }
32589 }
32590 } catch (error) {
32591 _logger__WEBPACK_IMPORTED_MODULE_6__.log.error("Error while rendering sequenceDiagram directive: ".concat(statement, " jison context: ").concat(context));
32592 _logger__WEBPACK_IMPORTED_MODULE_6__.log.error(error.message);
32593 }
32594};
32595
32596var handleDirective = function handleDirective(p, directive, type) {
32597 _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug("Directive type=".concat(directive.type, " with args:"), directive.args);
32598
32599 switch (directive.type) {
32600 case 'init':
32601 case 'initialize':
32602 {
32603 ['config'].forEach(function (prop) {
32604 if (typeof directive.args[prop] !== 'undefined') {
32605 if (type === 'flowchart-v2') {
32606 type = 'flowchart';
32607 }
32608
32609 directive.args[type] = directive.args[prop];
32610 delete directive.args[prop];
32611 }
32612 });
32613 _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug('sanitize in handleDirective', directive.args);
32614 (0,_utils__WEBPACK_IMPORTED_MODULE_5__.directiveSanitizer)(directive.args);
32615 _logger__WEBPACK_IMPORTED_MODULE_6__.log.debug('sanitize in handleDirective (done)', directive.args);
32616 _config__WEBPACK_IMPORTED_MODULE_4__.addDirective(directive.args);
32617 break;
32618 }
32619
32620 case 'wrap':
32621 case 'nowrap':
32622 if (p && p['setWrap']) {
32623 p.setWrap(directive.type === 'wrap');
32624 }
32625
32626 break;
32627
32628 case 'themeCss':
32629 _logger__WEBPACK_IMPORTED_MODULE_6__.log.warn('themeCss encountered');
32630 break;
32631
32632 default:
32633 _logger__WEBPACK_IMPORTED_MODULE_6__.log.warn("Unhandled directive: source: '%%{".concat(directive.type, ": ").concat(JSON.stringify(directive.args ? directive.args : {}), "}%%"), directive);
32634 break;
32635 }
32636};
32637/** @param {any} conf */
32638
32639
32640function updateRendererConfigs(conf) {
32641 // Todo remove, all diagrams should get config on demand from the config object, no need for this
32642 _diagrams_flowchart_flowRenderer__WEBPACK_IMPORTED_MODULE_7__["default"].setConf(conf.flowchart);
32643 _diagrams_flowchart_flowRenderer_v2__WEBPACK_IMPORTED_MODULE_17__["default"].setConf(conf.flowchart);
32644
32645 if (typeof conf['sequenceDiagram'] !== 'undefined') {
32646 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_18__["default"].setConf((0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_19__["default"])(conf.sequence, conf['sequenceDiagram']));
32647 }
32648
32649 _diagrams_sequence_sequenceRenderer__WEBPACK_IMPORTED_MODULE_18__["default"].setConf(conf.sequence);
32650 _diagrams_gantt_ganttRenderer__WEBPACK_IMPORTED_MODULE_20__["default"].setConf(conf.gantt); // classRenderer.setConf(conf.class);
32651
32652 _diagrams_state_stateRenderer__WEBPACK_IMPORTED_MODULE_21__["default"].setConf(conf.state);
32653 _diagrams_state_stateRenderer_v2__WEBPACK_IMPORTED_MODULE_22__["default"].setConf(conf.state); // infoRenderer.setConf(conf.class);
32654
32655 _diagrams_user_journey_journeyRenderer__WEBPACK_IMPORTED_MODULE_23__["default"].setConf(conf.journey);
32656 _errorRenderer__WEBPACK_IMPORTED_MODULE_12__["default"].setConf(conf.class);
32657}
32658/** @param {any} options */
32659
32660
32661function initialize(options) {
32662 // Handle legacy location of font-family configuration
32663 if (options && options.fontFamily) {
32664 if (!options.themeVariables) {
32665 options.themeVariables = {
32666 fontFamily: options.fontFamily
32667 };
32668 } else {
32669 if (!options.themeVariables.fontFamily) {
32670 options.themeVariables = {
32671 fontFamily: options.fontFamily
32672 };
32673 }
32674 }
32675 } // Set default options
32676
32677
32678 _config__WEBPACK_IMPORTED_MODULE_4__.saveConfigFromInitialize(options);
32679
32680 if (options && options.theme && _themes__WEBPACK_IMPORTED_MODULE_24__["default"][options.theme]) {
32681 // Todo merge with user options
32682 options.themeVariables = _themes__WEBPACK_IMPORTED_MODULE_24__["default"][options.theme].getThemeVariables(options.themeVariables);
32683 } else {
32684 if (options) options.themeVariables = _themes__WEBPACK_IMPORTED_MODULE_24__["default"]["default"].getThemeVariables(options.themeVariables);
32685 }
32686
32687 var config = _typeof(options) === 'object' ? _config__WEBPACK_IMPORTED_MODULE_4__.setSiteConfig(options) : _config__WEBPACK_IMPORTED_MODULE_4__.getSiteConfig();
32688 updateRendererConfigs(config);
32689 (0,_logger__WEBPACK_IMPORTED_MODULE_6__.setLogLevel)(config.logLevel);
32690 (0,_diagram_api_diagram_orchestration__WEBPACK_IMPORTED_MODULE_25__["default"])();
32691}
32692
32693var mermaidAPI = Object.freeze({
32694 render: render,
32695 parse: parse,
32696 parseDirective: parseDirective,
32697 initialize: initialize,
32698 getConfig: _config__WEBPACK_IMPORTED_MODULE_4__.getConfig,
32699 setConfig: _config__WEBPACK_IMPORTED_MODULE_4__.setConfig,
32700 getSiteConfig: _config__WEBPACK_IMPORTED_MODULE_4__.getSiteConfig,
32701 updateSiteConfig: _config__WEBPACK_IMPORTED_MODULE_4__.updateSiteConfig,
32702 reset: function reset() {
32703 _config__WEBPACK_IMPORTED_MODULE_4__.reset();
32704 },
32705 globalReset: function globalReset() {
32706 _config__WEBPACK_IMPORTED_MODULE_4__.reset(_config__WEBPACK_IMPORTED_MODULE_4__.defaultConfig);
32707 updateRendererConfigs(_config__WEBPACK_IMPORTED_MODULE_4__.getConfig());
32708 },
32709 defaultConfig: _config__WEBPACK_IMPORTED_MODULE_4__.defaultConfig
32710});
32711(0,_logger__WEBPACK_IMPORTED_MODULE_6__.setLogLevel)(_config__WEBPACK_IMPORTED_MODULE_4__.getConfig().logLevel);
32712_config__WEBPACK_IMPORTED_MODULE_4__.reset(_config__WEBPACK_IMPORTED_MODULE_4__.getConfig());
32713/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mermaidAPI);
32714/**
32715 * ## mermaidAPI configuration defaults
32716 *
32717 * ```html
32718 * <script>
32719 * var config = {
32720 * theme: 'default',
32721 * logLevel: 'fatal',
32722 * securityLevel: 'strict',
32723 * startOnLoad: true,
32724 * arrowMarkerAbsolute: false,
32725 *
32726 * er: {
32727 * diagramPadding: 20,
32728 * layoutDirection: 'TB',
32729 * minEntityWidth: 100,
32730 * minEntityHeight: 75,
32731 * entityPadding: 15,
32732 * stroke: 'gray',
32733 * fill: 'honeydew',
32734 * fontSize: 12,
32735 * useMaxWidth: true,
32736 * },
32737 * flowchart: {
32738 * diagramPadding: 8,
32739 * htmlLabels: true,
32740 * curve: 'basis',
32741 * },
32742 * sequence: {
32743 * diagramMarginX: 50,
32744 * diagramMarginY: 10,
32745 * actorMargin: 50,
32746 * width: 150,
32747 * height: 65,
32748 * boxMargin: 10,
32749 * boxTextMargin: 5,
32750 * noteMargin: 10,
32751 * messageMargin: 35,
32752 * messageAlign: 'center',
32753 * mirrorActors: true,
32754 * bottomMarginAdj: 1,
32755 * useMaxWidth: true,
32756 * rightAngles: false,
32757 * showSequenceNumbers: false,
32758 * },
32759 * gantt: {
32760 * titleTopMargin: 25,
32761 * barHeight: 20,
32762 * barGap: 4,
32763 * topPadding: 50,
32764 * leftPadding: 75,
32765 * gridLineStartPadding: 35,
32766 * fontSize: 11,
32767 * fontFamily: '"Open Sans", sans-serif',
32768 * numberSectionStyles: 4,
32769 * axisFormat: '%Y-%m-%d',
32770 * topAxis: false,
32771 * },
32772 * };
32773 * mermaid.initialize(config);
32774 * </script>
32775 * ```
32776 */
32777
32778/***/ }),
32779
32780/***/ "./src/styles.js":
32781/*!***********************!*\
32782 !*** ./src/styles.js ***!
32783 \***********************/
32784/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32785
32786"use strict";
32787__webpack_require__.r(__webpack_exports__);
32788/* harmony export */ __webpack_require__.d(__webpack_exports__, {
32789/* harmony export */ "calcThemeVariables": () => (/* binding */ calcThemeVariables),
32790/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
32791/* harmony export */ });
32792/* harmony import */ var _diagrams_class_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./diagrams/class/styles */ "./src/diagrams/class/styles.js");
32793/* harmony import */ var _diagrams_er_styles__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./diagrams/er/styles */ "./src/diagrams/er/styles.js");
32794/* harmony import */ var _diagrams_flowchart_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./diagrams/flowchart/styles */ "./src/diagrams/flowchart/styles.js");
32795/* harmony import */ var _diagrams_gantt_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./diagrams/gantt/styles */ "./src/diagrams/gantt/styles.js");
32796/* harmony import */ var _diagrams_git_styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./diagrams/git/styles */ "./src/diagrams/git/styles.js");
32797/* harmony import */ var _diagrams_info_styles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./diagrams/info/styles */ "./src/diagrams/info/styles.js");
32798/* harmony import */ var _diagrams_pie_styles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./diagrams/pie/styles */ "./src/diagrams/pie/styles.js");
32799/* harmony import */ var _diagrams_requirement_styles__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./diagrams/requirement/styles */ "./src/diagrams/requirement/styles.js");
32800/* harmony import */ var _diagrams_sequence_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./diagrams/sequence/styles */ "./src/diagrams/sequence/styles.js");
32801/* harmony import */ var _diagrams_state_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./diagrams/state/styles */ "./src/diagrams/state/styles.js");
32802/* harmony import */ var _diagrams_user_journey_styles__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./diagrams/user-journey/styles */ "./src/diagrams/user-journey/styles.js");
32803/* harmony import */ var _diagrams_c4_styles__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./diagrams/c4/styles */ "./src/diagrams/c4/styles.js");
32804/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
32805
32806
32807
32808
32809
32810
32811
32812
32813
32814
32815
32816
32817
32818var themes = {
32819 flowchart: _diagrams_flowchart_styles__WEBPACK_IMPORTED_MODULE_0__["default"],
32820 'flowchart-v2': _diagrams_flowchart_styles__WEBPACK_IMPORTED_MODULE_0__["default"],
32821 sequence: _diagrams_sequence_styles__WEBPACK_IMPORTED_MODULE_1__["default"],
32822 gantt: _diagrams_gantt_styles__WEBPACK_IMPORTED_MODULE_2__["default"],
32823 classDiagram: _diagrams_class_styles__WEBPACK_IMPORTED_MODULE_3__["default"],
32824 'classDiagram-v2': _diagrams_class_styles__WEBPACK_IMPORTED_MODULE_3__["default"],
32825 class: _diagrams_class_styles__WEBPACK_IMPORTED_MODULE_3__["default"],
32826 stateDiagram: _diagrams_state_styles__WEBPACK_IMPORTED_MODULE_4__["default"],
32827 state: _diagrams_state_styles__WEBPACK_IMPORTED_MODULE_4__["default"],
32828 gitGraph: _diagrams_git_styles__WEBPACK_IMPORTED_MODULE_5__["default"],
32829 info: _diagrams_info_styles__WEBPACK_IMPORTED_MODULE_6__["default"],
32830 pie: _diagrams_pie_styles__WEBPACK_IMPORTED_MODULE_7__["default"],
32831 er: _diagrams_er_styles__WEBPACK_IMPORTED_MODULE_8__["default"],
32832 journey: _diagrams_user_journey_styles__WEBPACK_IMPORTED_MODULE_9__["default"],
32833 requirement: _diagrams_requirement_styles__WEBPACK_IMPORTED_MODULE_10__["default"],
32834 c4: _diagrams_c4_styles__WEBPACK_IMPORTED_MODULE_11__["default"]
32835};
32836var calcThemeVariables = function calcThemeVariables(theme, userOverRides) {
32837 _logger__WEBPACK_IMPORTED_MODULE_12__.log.info('userOverides', userOverRides);
32838 return theme.calcColors(userOverRides);
32839};
32840
32841var getStyles = function getStyles(type, userStyles, options) {
32842 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 stroke: ").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");
32843};
32844
32845/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getStyles);
32846
32847/***/ }),
32848
32849/***/ "./src/themes/index.js":
32850/*!*****************************!*\
32851 !*** ./src/themes/index.js ***!
32852 \*****************************/
32853/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32854
32855"use strict";
32856__webpack_require__.r(__webpack_exports__);
32857/* harmony export */ __webpack_require__.d(__webpack_exports__, {
32858/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
32859/* harmony export */ });
32860/* harmony import */ var _theme_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./theme-base */ "./src/themes/theme-base.js");
32861/* harmony import */ var _theme_dark__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-dark */ "./src/themes/theme-dark.js");
32862/* harmony import */ var _theme_default__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./theme-default */ "./src/themes/theme-default.js");
32863/* harmony import */ var _theme_forest__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./theme-forest */ "./src/themes/theme-forest.js");
32864/* harmony import */ var _theme_neutral__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./theme-neutral */ "./src/themes/theme-neutral.js");
32865
32866
32867
32868
32869
32870/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
32871 base: {
32872 getThemeVariables: _theme_base__WEBPACK_IMPORTED_MODULE_0__.getThemeVariables
32873 },
32874 dark: {
32875 getThemeVariables: _theme_dark__WEBPACK_IMPORTED_MODULE_1__.getThemeVariables
32876 },
32877 default: {
32878 getThemeVariables: _theme_default__WEBPACK_IMPORTED_MODULE_2__.getThemeVariables
32879 },
32880 forest: {
32881 getThemeVariables: _theme_forest__WEBPACK_IMPORTED_MODULE_3__.getThemeVariables
32882 },
32883 neutral: {
32884 getThemeVariables: _theme_neutral__WEBPACK_IMPORTED_MODULE_4__.getThemeVariables
32885 }
32886});
32887
32888/***/ }),
32889
32890/***/ "./src/themes/theme-base.js":
32891/*!**********************************!*\
32892 !*** ./src/themes/theme-base.js ***!
32893 \**********************************/
32894/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32895
32896"use strict";
32897__webpack_require__.r(__webpack_exports__);
32898/* harmony export */ __webpack_require__.d(__webpack_exports__, {
32899/* harmony export */ "getThemeVariables": () => (/* binding */ getThemeVariables)
32900/* harmony export */ });
32901/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/adjust.js");
32902/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/invert.js");
32903/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/darken.js");
32904/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/lighten.js");
32905/* harmony import */ var _theme_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-helpers */ "./src/themes/theme-helpers.js");
32906function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
32907
32908function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
32909
32910function _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); } }
32911
32912function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
32913
32914
32915
32916
32917var Theme = /*#__PURE__*/function () {
32918 function Theme() {
32919 _classCallCheck(this, Theme);
32920
32921 /** # Base variables */
32922
32923 /**
32924 * - Background - used to know what the background color is of the diagram. This is used for
32925 * deducing colors for instance line color. Default value is #f4f4f4.
32926 */
32927 this.background = '#f4f4f4';
32928 this.darkMode = false;
32929 this.primaryColor = '#fff4dd';
32930 this.noteBkgColor = '#fff5ad';
32931 this.noteTextColor = '#333'; // dark
32932
32933 this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
32934 this.fontSize = '16px';
32935 }
32936
32937 _createClass(Theme, [{
32938 key: "updateColors",
32939 value: function updateColors() {
32940 // The || is to make sure that if the variable has been defined by a user override that value is to be used
32941
32942 /* Main */
32943 this.primaryTextColor = this.primaryTextColor || (this.darkMode ? '#eee' : '#333'); // invert(this.primaryColor);
32944
32945 this.secondaryColor = this.secondaryColor || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
32946 h: -120
32947 });
32948 this.tertiaryColor = this.tertiaryColor || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
32949 h: 180,
32950 l: 5
32951 });
32952 this.primaryBorderColor = this.primaryBorderColor || (0,_theme_helpers__WEBPACK_IMPORTED_MODULE_1__.mkBorder)(this.primaryColor, this.darkMode);
32953 this.secondaryBorderColor = this.secondaryBorderColor || (0,_theme_helpers__WEBPACK_IMPORTED_MODULE_1__.mkBorder)(this.secondaryColor, this.darkMode);
32954 this.tertiaryBorderColor = this.tertiaryBorderColor || (0,_theme_helpers__WEBPACK_IMPORTED_MODULE_1__.mkBorder)(this.tertiaryColor, this.darkMode);
32955 this.noteBorderColor = this.noteBorderColor || (0,_theme_helpers__WEBPACK_IMPORTED_MODULE_1__.mkBorder)(this.noteBkgColor, this.darkMode);
32956 this.noteBkgColor = this.noteBkgColor || '#fff5ad';
32957 this.noteTextColor = this.noteTextColor || '#333';
32958 this.secondaryTextColor = this.secondaryTextColor || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.secondaryColor);
32959 this.tertiaryTextColor = this.tertiaryTextColor || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.tertiaryColor);
32960 this.lineColor = this.lineColor || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.background);
32961 this.textColor = this.textColor || this.primaryTextColor;
32962 /* Flowchart variables */
32963
32964 this.nodeBkg = this.nodeBkg || this.primaryColor;
32965 this.mainBkg = this.mainBkg || this.primaryColor;
32966 this.nodeBorder = this.nodeBorder || this.primaryBorderColor;
32967 this.clusterBkg = this.clusterBkg || this.tertiaryColor;
32968 this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;
32969 this.defaultLinkColor = this.defaultLinkColor || this.lineColor;
32970 this.titleColor = this.titleColor || this.tertiaryTextColor;
32971 this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.secondaryColor, 30) : this.secondaryColor);
32972 this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;
32973 /* Sequence Diagram variables */
32974 // this.actorBorder = lighten(this.border1, 0.5);
32975
32976 this.actorBorder = this.actorBorder || this.primaryBorderColor;
32977 this.actorBkg = this.actorBkg || this.mainBkg;
32978 this.actorTextColor = this.actorTextColor || this.primaryTextColor;
32979 this.actorLineColor = this.actorLineColor || 'grey';
32980 this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;
32981 this.signalColor = this.signalColor || this.textColor;
32982 this.signalTextColor = this.signalTextColor || this.textColor;
32983 this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;
32984 this.labelTextColor = this.labelTextColor || this.actorTextColor;
32985 this.loopTextColor = this.loopTextColor || this.actorTextColor;
32986 this.activationBorderColor = this.activationBorderColor || (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.secondaryColor, 10);
32987 this.activationBkgColor = this.activationBkgColor || this.secondaryColor;
32988 this.sequenceNumberColor = this.sequenceNumberColor || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.lineColor);
32989 /* Gantt chart variables */
32990
32991 this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;
32992 this.altSectionBkgColor = this.altSectionBkgColor || 'white';
32993 this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;
32994 this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;
32995 this.excludeBkgColor = this.excludeBkgColor || '#eeeeee';
32996 this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;
32997 this.taskBkgColor = this.taskBkgColor || this.primaryColor;
32998 this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;
32999 this.activeTaskBkgColor = this.activeTaskBkgColor || (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.primaryColor, 23);
33000 this.gridColor = this.gridColor || 'lightgrey';
33001 this.doneTaskBkgColor = this.doneTaskBkgColor || 'lightgrey';
33002 this.doneTaskBorderColor = this.doneTaskBorderColor || 'grey';
33003 this.critBorderColor = this.critBorderColor || '#ff8888';
33004 this.critBkgColor = this.critBkgColor || 'red';
33005 this.todayLineColor = this.todayLineColor || 'red';
33006 this.taskTextColor = this.taskTextColor || this.textColor;
33007 this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;
33008 this.taskTextLightColor = this.taskTextLightColor || this.textColor;
33009 this.taskTextColor = this.taskTextColor || this.primaryTextColor;
33010 this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;
33011 this.taskTextClickableColor = this.taskTextClickableColor || '#003163';
33012 /* Sequence Diagram variables */
33013
33014 this.personBorder = this.personBorder || this.primaryBorderColor;
33015 this.personBkg = this.personBkg || this.mainBkg;
33016 /* state colors */
33017
33018 this.transitionColor = this.transitionColor || this.lineColor;
33019 this.transitionLabelColor = this.transitionLabelColor || this.textColor;
33020 /* The color of the text tables of the states*/
33021
33022 this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
33023 this.stateBkg = this.stateBkg || this.mainBkg;
33024 this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
33025 this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
33026 this.altBackground = this.altBackground || this.tertiaryColor;
33027 this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
33028 this.compositeBorder = this.compositeBorder || this.nodeBorder;
33029 this.innerEndBackground = this.nodeBorder;
33030 this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
33031 this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
33032 this.transitionColor = this.transitionColor || this.lineColor;
33033 this.specialStateColor = this.lineColor;
33034 /* class */
33035
33036 this.classText = this.classText || this.textColor;
33037 /* user-journey */
33038
33039 this.fillType0 = this.fillType0 || this.primaryColor;
33040 this.fillType1 = this.fillType1 || this.secondaryColor;
33041 this.fillType2 = this.fillType2 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33042 h: 64
33043 });
33044 this.fillType3 = this.fillType3 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.secondaryColor, {
33045 h: 64
33046 });
33047 this.fillType4 = this.fillType4 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33048 h: -64
33049 });
33050 this.fillType5 = this.fillType5 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.secondaryColor, {
33051 h: -64
33052 });
33053 this.fillType6 = this.fillType6 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33054 h: 128
33055 });
33056 this.fillType7 = this.fillType7 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.secondaryColor, {
33057 h: 128
33058 });
33059 /* pie */
33060
33061 this.pie1 = this.pie1 || this.primaryColor;
33062 this.pie2 = this.pie2 || this.secondaryColor;
33063 this.pie3 = this.pie3 || this.tertiaryColor;
33064 this.pie4 = this.pie4 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33065 l: -10
33066 });
33067 this.pie5 = this.pie5 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.secondaryColor, {
33068 l: -10
33069 });
33070 this.pie6 = this.pie6 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.tertiaryColor, {
33071 l: -10
33072 });
33073 this.pie7 = this.pie7 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33074 h: +60,
33075 l: -10
33076 });
33077 this.pie8 = this.pie8 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33078 h: -60,
33079 l: -10
33080 });
33081 this.pie9 = this.pie9 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33082 h: 120,
33083 l: 0
33084 });
33085 this.pie10 = this.pie10 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33086 h: +60,
33087 l: -20
33088 });
33089 this.pie11 = this.pie11 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33090 h: -60,
33091 l: -20
33092 });
33093 this.pie12 = this.pie12 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33094 h: 120,
33095 l: -10
33096 });
33097 this.pieTitleTextSize = this.pieTitleTextSize || '25px';
33098 this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
33099 this.pieSectionTextSize = this.pieSectionTextSize || '17px';
33100 this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
33101 this.pieLegendTextSize = this.pieLegendTextSize || '17px';
33102 this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
33103 this.pieStrokeColor = this.pieStrokeColor || 'black';
33104 this.pieStrokeWidth = this.pieStrokeWidth || '2px';
33105 this.pieOpacity = this.pieOpacity || '0.7';
33106 /* requirement-diagram */
33107
33108 this.requirementBackground = this.requirementBackground || this.primaryColor;
33109 this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
33110 this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
33111 this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
33112 this.relationColor = this.relationColor || this.lineColor;
33113 this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.secondaryColor, 30) : this.secondaryColor);
33114 this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
33115 /* git */
33116
33117 this.git0 = this.git0 || this.primaryColor;
33118 this.git1 = this.git1 || this.secondaryColor;
33119 this.git2 = this.git2 || this.tertiaryColor;
33120 this.git3 = this.git3 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33121 h: -30
33122 });
33123 this.git4 = this.git4 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33124 h: -60
33125 });
33126 this.git5 = this.git5 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33127 h: -90
33128 });
33129 this.git6 = this.git6 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33130 h: +60
33131 });
33132 this.git7 = this.git7 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33133 h: +120
33134 });
33135
33136 if (this.darkMode) {
33137 this.git0 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.git0, 25);
33138 this.git1 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.git1, 25);
33139 this.git2 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.git2, 25);
33140 this.git3 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.git3, 25);
33141 this.git4 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.git4, 25);
33142 this.git5 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.git5, 25);
33143 this.git6 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.git6, 25);
33144 this.git7 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.git7, 25);
33145 } else {
33146 this.git0 = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git0, 25);
33147 this.git1 = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git1, 25);
33148 this.git2 = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git2, 25);
33149 this.git3 = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git3, 25);
33150 this.git4 = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git4, 25);
33151 this.git5 = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git5, 25);
33152 this.git6 = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git6, 25);
33153 this.git7 = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git7, 25);
33154 }
33155
33156 this.gitInv0 = this.gitInv0 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git0);
33157 this.gitInv1 = this.gitInv1 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git1);
33158 this.gitInv2 = this.gitInv2 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git2);
33159 this.gitInv3 = this.gitInv3 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git3);
33160 this.gitInv4 = this.gitInv4 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git4);
33161 this.gitInv5 = this.gitInv5 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git5);
33162 this.gitInv6 = this.gitInv6 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git6);
33163 this.gitInv7 = this.gitInv7 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git7);
33164 this.branchLabelColor = this.branchLabelColor || (this.darkMode ? 'black' : this.labelTextColor);
33165 this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor;
33166 this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor;
33167 this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor;
33168 this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor;
33169 this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor;
33170 this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor;
33171 this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor;
33172 this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor;
33173 this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
33174 this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
33175 this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
33176 this.tagLabelFontSize = this.tagLabelFontSize || '10px';
33177 this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
33178 this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
33179 this.commitLabelFontSize = this.commitLabelFontSize || '10px';
33180 }
33181 }, {
33182 key: "calculate",
33183 value: function calculate(overrides) {
33184 var _this = this;
33185
33186 if (_typeof(overrides) !== 'object') {
33187 // Calculate colors form base colors
33188 this.updateColors();
33189 return;
33190 }
33191
33192 var keys = Object.keys(overrides); // Copy values from overrides, this is mainly for base colors
33193
33194 keys.forEach(function (k) {
33195 _this[k] = overrides[k];
33196 }); // Calculate colors form base colors
33197
33198 this.updateColors(); // Copy values from overrides again in case of an override of derived value
33199
33200 keys.forEach(function (k) {
33201 _this[k] = overrides[k];
33202 });
33203 }
33204 }]);
33205
33206 return Theme;
33207}();
33208
33209var getThemeVariables = function getThemeVariables(userOverrides) {
33210 var theme = new Theme();
33211 theme.calculate(userOverrides);
33212 return theme;
33213};
33214
33215/***/ }),
33216
33217/***/ "./src/themes/theme-dark.js":
33218/*!**********************************!*\
33219 !*** ./src/themes/theme-dark.js ***!
33220 \**********************************/
33221/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33222
33223"use strict";
33224__webpack_require__.r(__webpack_exports__);
33225/* harmony export */ __webpack_require__.d(__webpack_exports__, {
33226/* harmony export */ "getThemeVariables": () => (/* binding */ getThemeVariables)
33227/* harmony export */ });
33228/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/lighten.js");
33229/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/adjust.js");
33230/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/invert.js");
33231/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/rgba.js");
33232/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/darken.js");
33233/* harmony import */ var _theme_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./theme-helpers */ "./src/themes/theme-helpers.js");
33234function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
33235
33236function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
33237
33238function _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); } }
33239
33240function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
33241
33242
33243
33244
33245var Theme = /*#__PURE__*/function () {
33246 function Theme() {
33247 _classCallCheck(this, Theme);
33248
33249 this.background = '#333';
33250 this.primaryColor = '#1f2020';
33251 this.secondaryColor = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, 16);
33252 this.tertiaryColor = (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
33253 h: -160
33254 });
33255 this.primaryBorderColor = (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.background);
33256 this.secondaryBorderColor = (0,_theme_helpers__WEBPACK_IMPORTED_MODULE_3__.mkBorder)(this.secondaryColor, this.darkMode);
33257 this.tertiaryBorderColor = (0,_theme_helpers__WEBPACK_IMPORTED_MODULE_3__.mkBorder)(this.tertiaryColor, this.darkMode);
33258 this.primaryTextColor = (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.primaryColor);
33259 this.secondaryTextColor = (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.secondaryColor);
33260 this.tertiaryTextColor = (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.tertiaryColor);
33261 this.lineColor = (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.background);
33262 this.textColor = (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.background);
33263 this.mainBkg = '#1f2020';
33264 this.secondBkg = 'calculated';
33265 this.mainContrastColor = 'lightgrey';
33266 this.darkTextColor = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])((0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])('#323D47'), 10);
33267 this.lineColor = 'calculated';
33268 this.border1 = '#81B1DB';
33269 this.border2 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(255, 255, 255, 0.25);
33270 this.arrowheadColor = 'calculated';
33271 this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
33272 this.fontSize = '16px';
33273 this.labelBackground = '#181818';
33274 this.textColor = '#ccc';
33275 /* Flowchart variables */
33276
33277 this.nodeBkg = 'calculated';
33278 this.nodeBorder = 'calculated';
33279 this.clusterBkg = 'calculated';
33280 this.clusterBorder = 'calculated';
33281 this.defaultLinkColor = 'calculated';
33282 this.titleColor = '#F9FFFE';
33283 this.edgeLabelBackground = 'calculated';
33284 /* Sequence Diagram variables */
33285
33286 this.actorBorder = 'calculated';
33287 this.actorBkg = 'calculated';
33288 this.actorTextColor = 'calculated';
33289 this.actorLineColor = 'calculated';
33290 this.signalColor = 'calculated';
33291 this.signalTextColor = 'calculated';
33292 this.labelBoxBkgColor = 'calculated';
33293 this.labelBoxBorderColor = 'calculated';
33294 this.labelTextColor = 'calculated';
33295 this.loopTextColor = 'calculated';
33296 this.noteBorderColor = 'calculated';
33297 this.noteBkgColor = '#fff5ad';
33298 this.noteTextColor = 'calculated';
33299 this.activationBorderColor = 'calculated';
33300 this.activationBkgColor = 'calculated';
33301 this.sequenceNumberColor = 'black';
33302 /* Gantt chart variables */
33303
33304 this.sectionBkgColor = (0,khroma__WEBPACK_IMPORTED_MODULE_5__["default"])('#EAE8D9', 30);
33305 this.altSectionBkgColor = 'calculated';
33306 this.sectionBkgColor2 = '#EAE8D9';
33307 this.taskBorderColor = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(255, 255, 255, 70);
33308 this.taskBkgColor = 'calculated';
33309 this.taskTextColor = 'calculated';
33310 this.taskTextLightColor = 'calculated';
33311 this.taskTextOutsideColor = 'calculated';
33312 this.taskTextClickableColor = '#003163';
33313 this.activeTaskBorderColor = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(255, 255, 255, 50);
33314 this.activeTaskBkgColor = '#81B1DB';
33315 this.gridColor = 'calculated';
33316 this.doneTaskBkgColor = 'calculated';
33317 this.doneTaskBorderColor = 'grey';
33318 this.critBorderColor = '#E83737';
33319 this.critBkgColor = '#E83737';
33320 this.taskTextDarkColor = 'calculated';
33321 this.todayLineColor = '#DB5757';
33322 /* C4 Context Diagram variables */
33323
33324 this.personBorder = 'calculated';
33325 this.personBkg = 'calculated';
33326 /* state colors */
33327
33328 this.labelColor = 'calculated';
33329 this.errorBkgColor = '#a44141';
33330 this.errorTextColor = '#ddd';
33331 }
33332
33333 _createClass(Theme, [{
33334 key: "updateColors",
33335 value: function updateColors() {
33336 this.secondBkg = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.mainBkg, 16);
33337 this.lineColor = this.mainContrastColor;
33338 this.arrowheadColor = this.mainContrastColor;
33339 /* Flowchart variables */
33340
33341 this.nodeBkg = this.mainBkg;
33342 this.nodeBorder = this.border1;
33343 this.clusterBkg = this.secondBkg;
33344 this.clusterBorder = this.border2;
33345 this.defaultLinkColor = this.lineColor;
33346 this.edgeLabelBackground = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.labelBackground, 25);
33347 /* Sequence Diagram variables */
33348
33349 this.actorBorder = this.border1;
33350 this.actorBkg = this.mainBkg;
33351 this.actorTextColor = this.mainContrastColor;
33352 this.actorLineColor = this.mainContrastColor;
33353 this.signalColor = this.mainContrastColor;
33354 this.signalTextColor = this.mainContrastColor;
33355 this.labelBoxBkgColor = this.actorBkg;
33356 this.labelBoxBorderColor = this.actorBorder;
33357 this.labelTextColor = this.mainContrastColor;
33358 this.loopTextColor = this.mainContrastColor;
33359 this.noteBorderColor = this.secondaryBorderColor;
33360 this.noteBkgColor = this.secondBkg;
33361 this.noteTextColor = this.secondaryTextColor;
33362 this.activationBorderColor = this.border1;
33363 this.activationBkgColor = this.secondBkg;
33364 /* Gantt chart variables */
33365
33366 this.altSectionBkgColor = this.background;
33367 this.taskBkgColor = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.mainBkg, 23);
33368 this.taskTextColor = this.darkTextColor;
33369 this.taskTextLightColor = this.mainContrastColor;
33370 this.taskTextOutsideColor = this.taskTextLightColor;
33371 this.gridColor = this.mainContrastColor;
33372 this.doneTaskBkgColor = this.mainContrastColor;
33373 this.taskTextDarkColor = this.darkTextColor;
33374 /* state colors */
33375
33376 this.transitionColor = this.transitionColor || this.lineColor;
33377 this.transitionLabelColor = this.transitionLabelColor || this.textColor;
33378 this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
33379 this.stateBkg = this.stateBkg || this.mainBkg;
33380 this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
33381 this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
33382 this.altBackground = this.altBackground || '#555';
33383 this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
33384 this.compositeBorder = this.compositeBorder || this.nodeBorder;
33385 this.innerEndBackground = this.primaryBorderColor;
33386 this.specialStateColor = '#f4f4f4'; // this.lineColor;
33387
33388 this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
33389 this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
33390 this.fillType0 = this.primaryColor;
33391 this.fillType1 = this.secondaryColor;
33392 this.fillType2 = (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
33393 h: 64
33394 });
33395 this.fillType3 = (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.secondaryColor, {
33396 h: 64
33397 });
33398 this.fillType4 = (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
33399 h: -64
33400 });
33401 this.fillType5 = (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.secondaryColor, {
33402 h: -64
33403 });
33404 this.fillType6 = (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
33405 h: 128
33406 });
33407 this.fillType7 = (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.secondaryColor, {
33408 h: 128
33409 });
33410 /* pie */
33411
33412 this.pie1 = this.pie1 || '#0b0000';
33413 this.pie2 = this.pie2 || '#4d1037';
33414 this.pie3 = this.pie3 || '#3f5258';
33415 this.pie4 = this.pie4 || '#4f2f1b';
33416 this.pie5 = this.pie5 || '#6e0a0a';
33417 this.pie6 = this.pie6 || '#3b0048';
33418 this.pie7 = this.pie7 || '#995a01';
33419 this.pie8 = this.pie8 || '#154706';
33420 this.pie9 = this.pie9 || '#161722';
33421 this.pie10 = this.pie10 || '#00296f';
33422 this.pie11 = this.pie11 || '#01629c';
33423 this.pie12 = this.pie12 || '#010029';
33424 this.pieTitleTextSize = this.pieTitleTextSize || '25px';
33425 this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
33426 this.pieSectionTextSize = this.pieSectionTextSize || '17px';
33427 this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
33428 this.pieLegendTextSize = this.pieLegendTextSize || '17px';
33429 this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
33430 this.pieStrokeColor = this.pieStrokeColor || 'black';
33431 this.pieStrokeWidth = this.pieStrokeWidth || '2px';
33432 this.pieOpacity = this.pieOpacity || '0.7';
33433 /* class */
33434
33435 this.classText = this.primaryTextColor;
33436 /* requirement-diagram */
33437
33438 this.requirementBackground = this.requirementBackground || this.primaryColor;
33439 this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
33440 this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
33441 this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
33442 this.relationColor = this.relationColor || this.lineColor;
33443 this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? (0,khroma__WEBPACK_IMPORTED_MODULE_5__["default"])(this.secondaryColor, 30) : this.secondaryColor);
33444 this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
33445 /* git */
33446
33447 this.git0 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.secondaryColor, 20);
33448 this.git1 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.pie2 || this.secondaryColor, 20);
33449 this.git2 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.pie3 || this.tertiaryColor, 20);
33450 this.git3 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.pie4 || (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
33451 h: -30
33452 }), 20);
33453 this.git4 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.pie5 || (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
33454 h: -60
33455 }), 20);
33456 this.git5 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.pie6 || (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
33457 h: -90
33458 }), 10);
33459 this.git6 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.pie7 || (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
33460 h: +60
33461 }), 10);
33462 this.git7 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.pie8 || (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
33463 h: +120
33464 }), 20);
33465 this.gitInv0 = this.gitInv0 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git0);
33466 this.gitInv1 = this.gitInv1 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git1);
33467 this.gitInv2 = this.gitInv2 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git2);
33468 this.gitInv3 = this.gitInv3 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git3);
33469 this.gitInv4 = this.gitInv4 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git4);
33470 this.gitInv5 = this.gitInv5 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git5);
33471 this.gitInv6 = this.gitInv6 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git6);
33472 this.gitInv7 = this.gitInv7 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git7);
33473 this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
33474 this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
33475 this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
33476 this.tagLabelFontSize = this.tagLabelFontSize || '10px';
33477 this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
33478 this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
33479 this.commitLabelFontSize = this.commitLabelFontSize || '10px';
33480 }
33481 }, {
33482 key: "calculate",
33483 value: function calculate(overrides) {
33484 var _this = this;
33485
33486 if (_typeof(overrides) !== 'object') {
33487 // Calculate colors form base colors
33488 this.updateColors();
33489 return;
33490 }
33491
33492 var keys = Object.keys(overrides); // Copy values from overrides, this is mainly for base colors
33493
33494 keys.forEach(function (k) {
33495 _this[k] = overrides[k];
33496 }); // Calculate colors form base colors
33497
33498 this.updateColors(); // Copy values from overrides again in case of an override of derived value
33499
33500 keys.forEach(function (k) {
33501 _this[k] = overrides[k];
33502 });
33503 }
33504 }]);
33505
33506 return Theme;
33507}();
33508
33509var getThemeVariables = function getThemeVariables(userOverrides) {
33510 var theme = new Theme();
33511 theme.calculate(userOverrides);
33512 return theme;
33513};
33514
33515/***/ }),
33516
33517/***/ "./src/themes/theme-default.js":
33518/*!*************************************!*\
33519 !*** ./src/themes/theme-default.js ***!
33520 \*************************************/
33521/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33522
33523"use strict";
33524__webpack_require__.r(__webpack_exports__);
33525/* harmony export */ __webpack_require__.d(__webpack_exports__, {
33526/* harmony export */ "getThemeVariables": () => (/* binding */ getThemeVariables)
33527/* harmony export */ });
33528/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/adjust.js");
33529/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/invert.js");
33530/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/rgba.js");
33531/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/lighten.js");
33532/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/darken.js");
33533/* harmony import */ var _theme_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-helpers */ "./src/themes/theme-helpers.js");
33534function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
33535
33536function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
33537
33538function _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); } }
33539
33540function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
33541
33542
33543
33544
33545var Theme = /*#__PURE__*/function () {
33546 function Theme() {
33547 _classCallCheck(this, Theme);
33548
33549 /* Base variables */
33550 this.background = '#f4f4f4';
33551 this.primaryColor = '#ECECFF';
33552 this.secondaryColor = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33553 h: 120
33554 });
33555 this.secondaryColor = '#ffffde';
33556 this.tertiaryColor = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33557 h: -160
33558 });
33559 this.primaryBorderColor = (0,_theme_helpers__WEBPACK_IMPORTED_MODULE_1__.mkBorder)(this.primaryColor, this.darkMode);
33560 this.secondaryBorderColor = (0,_theme_helpers__WEBPACK_IMPORTED_MODULE_1__.mkBorder)(this.secondaryColor, this.darkMode);
33561 this.tertiaryBorderColor = (0,_theme_helpers__WEBPACK_IMPORTED_MODULE_1__.mkBorder)(this.tertiaryColor, this.darkMode); // this.noteBorderColor = mkBorder(this.noteBkgColor, this.darkMode);
33562
33563 this.primaryTextColor = (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.primaryColor);
33564 this.secondaryTextColor = (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.secondaryColor);
33565 this.tertiaryTextColor = (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.tertiaryColor);
33566 this.lineColor = (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.background);
33567 this.textColor = (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.background);
33568 this.background = 'white';
33569 this.mainBkg = '#ECECFF';
33570 this.secondBkg = '#ffffde';
33571 this.lineColor = '#333333';
33572 this.border1 = '#9370DB';
33573 this.border2 = '#aaaa33';
33574 this.arrowheadColor = '#333333';
33575 this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
33576 this.fontSize = '16px';
33577 this.labelBackground = '#e8e8e8';
33578 this.textColor = '#333';
33579 /* Flowchart variables */
33580
33581 this.nodeBkg = 'calculated';
33582 this.nodeBorder = 'calculated';
33583 this.clusterBkg = 'calculated';
33584 this.clusterBorder = 'calculated';
33585 this.defaultLinkColor = 'calculated';
33586 this.titleColor = 'calculated';
33587 this.edgeLabelBackground = 'calculated';
33588 /* Sequence Diagram variables */
33589
33590 this.actorBorder = 'calculated';
33591 this.actorBkg = 'calculated';
33592 this.actorTextColor = 'black';
33593 this.actorLineColor = 'grey';
33594 this.signalColor = 'calculated';
33595 this.signalTextColor = 'calculated';
33596 this.labelBoxBkgColor = 'calculated';
33597 this.labelBoxBorderColor = 'calculated';
33598 this.labelTextColor = 'calculated';
33599 this.loopTextColor = 'calculated';
33600 this.noteBorderColor = 'calculated';
33601 this.noteBkgColor = '#fff5ad';
33602 this.noteTextColor = 'calculated';
33603 this.activationBorderColor = '#666';
33604 this.activationBkgColor = '#f4f4f4';
33605 this.sequenceNumberColor = 'white';
33606 /* Gantt chart variables */
33607
33608 this.sectionBkgColor = 'calculated';
33609 this.altSectionBkgColor = 'calculated';
33610 this.sectionBkgColor2 = 'calculated';
33611 this.excludeBkgColor = '#eeeeee';
33612 this.taskBorderColor = 'calculated';
33613 this.taskBkgColor = 'calculated';
33614 this.taskTextLightColor = 'calculated';
33615 this.taskTextColor = this.taskTextLightColor;
33616 this.taskTextDarkColor = 'calculated';
33617 this.taskTextOutsideColor = this.taskTextDarkColor;
33618 this.taskTextClickableColor = 'calculated';
33619 this.activeTaskBorderColor = 'calculated';
33620 this.activeTaskBkgColor = 'calculated';
33621 this.gridColor = 'calculated';
33622 this.doneTaskBkgColor = 'calculated';
33623 this.doneTaskBorderColor = 'calculated';
33624 this.critBorderColor = 'calculated';
33625 this.critBkgColor = 'calculated';
33626 this.todayLineColor = 'calculated';
33627 this.sectionBkgColor = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(102, 102, 255, 0.49);
33628 this.altSectionBkgColor = 'white';
33629 this.sectionBkgColor2 = '#fff400';
33630 this.taskBorderColor = '#534fbc';
33631 this.taskBkgColor = '#8a90dd';
33632 this.taskTextLightColor = 'white';
33633 this.taskTextColor = 'calculated';
33634 this.taskTextDarkColor = 'black';
33635 this.taskTextOutsideColor = 'calculated';
33636 this.taskTextClickableColor = '#003163';
33637 this.activeTaskBorderColor = '#534fbc';
33638 this.activeTaskBkgColor = '#bfc7ff';
33639 this.gridColor = 'lightgrey';
33640 this.doneTaskBkgColor = 'lightgrey';
33641 this.doneTaskBorderColor = 'grey';
33642 this.critBorderColor = '#ff8888';
33643 this.critBkgColor = 'red';
33644 this.todayLineColor = 'red';
33645 /* C4 Context Diagram variables */
33646
33647 this.personBorder = 'calculated';
33648 this.personBkg = 'calculated';
33649 /* state colors */
33650
33651 this.labelColor = 'black';
33652 this.errorBkgColor = '#552222';
33653 this.errorTextColor = '#552222';
33654 this.updateColors();
33655 }
33656
33657 _createClass(Theme, [{
33658 key: "updateColors",
33659 value: function updateColors() {
33660 /* Flowchart variables */
33661 this.nodeBkg = this.mainBkg;
33662 this.nodeBorder = this.border1; // border 1
33663
33664 this.clusterBkg = this.secondBkg;
33665 this.clusterBorder = this.border2;
33666 this.defaultLinkColor = this.lineColor;
33667 this.titleColor = this.textColor;
33668 this.edgeLabelBackground = this.labelBackground;
33669 /* Sequence Diagram variables */
33670 // this.actorBorder = lighten(this.border1, 0.5);
33671
33672 this.actorBorder = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.border1, 23);
33673 this.actorBkg = this.mainBkg;
33674 this.labelBoxBkgColor = this.actorBkg;
33675 this.signalColor = this.textColor;
33676 this.signalTextColor = this.textColor;
33677 this.labelBoxBorderColor = this.actorBorder;
33678 this.labelTextColor = this.actorTextColor;
33679 this.loopTextColor = this.actorTextColor;
33680 this.noteBorderColor = this.border2;
33681 this.noteTextColor = this.actorTextColor;
33682 /* Gantt chart variables */
33683
33684 this.taskTextColor = this.taskTextLightColor;
33685 this.taskTextOutsideColor = this.taskTextDarkColor;
33686 /* state colors */
33687
33688 this.transitionColor = this.transitionColor || this.lineColor;
33689 this.transitionLabelColor = this.transitionLabelColor || this.textColor;
33690 this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
33691 this.stateBkg = this.stateBkg || this.mainBkg;
33692 this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
33693 this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
33694 this.altBackground = this.altBackground || '#f0f0f0';
33695 this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
33696 this.compositeBorder = this.compositeBorder || this.nodeBorder;
33697 this.innerEndBackground = this.nodeBorder;
33698 this.specialStateColor = this.lineColor;
33699 this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
33700 this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
33701 this.transitionColor = this.transitionColor || this.lineColor;
33702 /* class */
33703
33704 this.classText = this.primaryTextColor;
33705 /* journey */
33706
33707 this.fillType0 = this.primaryColor;
33708 this.fillType1 = this.secondaryColor;
33709 this.fillType2 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33710 h: 64
33711 });
33712 this.fillType3 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.secondaryColor, {
33713 h: 64
33714 });
33715 this.fillType4 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33716 h: -64
33717 });
33718 this.fillType5 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.secondaryColor, {
33719 h: -64
33720 });
33721 this.fillType6 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33722 h: 128
33723 });
33724 this.fillType7 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.secondaryColor, {
33725 h: 128
33726 });
33727 /* pie */
33728
33729 this.pie1 = this.pie1 || this.primaryColor;
33730 this.pie2 = this.pie2 || this.secondaryColor;
33731 this.pie3 = this.pie3 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.tertiaryColor, {
33732 l: -40
33733 });
33734 this.pie4 = this.pie4 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33735 l: -10
33736 });
33737 this.pie5 = this.pie5 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.secondaryColor, {
33738 l: -30
33739 });
33740 this.pie6 = this.pie6 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.tertiaryColor, {
33741 l: -20
33742 });
33743 this.pie7 = this.pie7 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33744 h: +60,
33745 l: -20
33746 });
33747 this.pie8 = this.pie8 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33748 h: -60,
33749 l: -40
33750 });
33751 this.pie9 = this.pie9 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33752 h: 120,
33753 l: -40
33754 });
33755 this.pie10 = this.pie10 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33756 h: +60,
33757 l: -40
33758 });
33759 this.pie11 = this.pie11 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33760 h: -90,
33761 l: -40
33762 });
33763 this.pie12 = this.pie12 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33764 h: 120,
33765 l: -30
33766 });
33767 this.pieTitleTextSize = this.pieTitleTextSize || '25px';
33768 this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
33769 this.pieSectionTextSize = this.pieSectionTextSize || '17px';
33770 this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
33771 this.pieLegendTextSize = this.pieLegendTextSize || '17px';
33772 this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
33773 this.pieStrokeColor = this.pieStrokeColor || 'black';
33774 this.pieStrokeWidth = this.pieStrokeWidth || '2px';
33775 this.pieOpacity = this.pieOpacity || '0.7';
33776 /* requirement-diagram */
33777
33778 this.requirementBackground = this.requirementBackground || this.primaryColor;
33779 this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
33780 this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
33781 this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
33782 this.relationColor = this.relationColor || this.lineColor;
33783 this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;
33784 this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
33785 /* git */
33786
33787 this.git0 = this.git0 || this.primaryColor;
33788 this.git1 = this.git1 || this.secondaryColor;
33789 this.git2 = this.git2 || this.tertiaryColor;
33790 this.git3 = this.git3 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33791 h: -30
33792 });
33793 this.git4 = this.git4 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33794 h: -60
33795 });
33796 this.git5 = this.git5 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33797 h: -90
33798 });
33799 this.git6 = this.git6 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33800 h: +60
33801 });
33802 this.git7 = this.git7 || (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.primaryColor, {
33803 h: +120
33804 });
33805
33806 if (this.darkMode) {
33807 this.git0 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.git0, 25);
33808 this.git1 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.git1, 25);
33809 this.git2 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.git2, 25);
33810 this.git3 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.git3, 25);
33811 this.git4 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.git4, 25);
33812 this.git5 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.git5, 25);
33813 this.git6 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.git6, 25);
33814 this.git7 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.git7, 25);
33815 } else {
33816 this.git0 = (0,khroma__WEBPACK_IMPORTED_MODULE_5__["default"])(this.git0, 25);
33817 this.git1 = (0,khroma__WEBPACK_IMPORTED_MODULE_5__["default"])(this.git1, 25);
33818 this.git2 = (0,khroma__WEBPACK_IMPORTED_MODULE_5__["default"])(this.git2, 25);
33819 this.git3 = (0,khroma__WEBPACK_IMPORTED_MODULE_5__["default"])(this.git3, 25);
33820 this.git4 = (0,khroma__WEBPACK_IMPORTED_MODULE_5__["default"])(this.git4, 25);
33821 this.git5 = (0,khroma__WEBPACK_IMPORTED_MODULE_5__["default"])(this.git5, 25);
33822 this.git6 = (0,khroma__WEBPACK_IMPORTED_MODULE_5__["default"])(this.git6, 25);
33823 this.git7 = (0,khroma__WEBPACK_IMPORTED_MODULE_5__["default"])(this.git7, 25);
33824 }
33825
33826 this.gitInv0 = this.gitInv0 || (0,khroma__WEBPACK_IMPORTED_MODULE_5__["default"])((0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git0), 25);
33827 this.gitInv1 = this.gitInv1 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git1);
33828 this.gitInv2 = this.gitInv2 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git2);
33829 this.gitInv3 = this.gitInv3 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git3);
33830 this.gitInv4 = this.gitInv4 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git4);
33831 this.gitInv5 = this.gitInv5 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git5);
33832 this.gitInv6 = this.gitInv6 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git6);
33833 this.gitInv7 = this.gitInv7 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git7);
33834 this.gitBranchLabel0 = this.gitBranchLabel0 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.labelTextColor);
33835 this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;
33836 this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;
33837 this.gitBranchLabel3 = this.gitBranchLabel3 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.labelTextColor);
33838 this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;
33839 this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;
33840 this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;
33841 this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;
33842 this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
33843 this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
33844 this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
33845 this.tagLabelFontSize = this.tagLabelFontSize || '10px';
33846 this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
33847 this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
33848 this.commitLabelFontSize = this.commitLabelFontSize || '10px';
33849 }
33850 }, {
33851 key: "calculate",
33852 value: function calculate(overrides) {
33853 var _this = this;
33854
33855 if (_typeof(overrides) !== 'object') {
33856 // Calculate colors form base colors
33857 this.updateColors();
33858 return;
33859 }
33860
33861 var keys = Object.keys(overrides); // Copy values from overrides, this is mainly for base colors
33862
33863 keys.forEach(function (k) {
33864 _this[k] = overrides[k];
33865 }); // Calculate colors form base colors
33866
33867 this.updateColors(); // Copy values from overrides again in case of an override of derived value
33868
33869 keys.forEach(function (k) {
33870 _this[k] = overrides[k];
33871 });
33872 }
33873 }]);
33874
33875 return Theme;
33876}();
33877
33878var getThemeVariables = function getThemeVariables(userOverrides) {
33879 var theme = new Theme();
33880 theme.calculate(userOverrides);
33881 return theme;
33882};
33883
33884/***/ }),
33885
33886/***/ "./src/themes/theme-forest.js":
33887/*!************************************!*\
33888 !*** ./src/themes/theme-forest.js ***!
33889 \************************************/
33890/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33891
33892"use strict";
33893__webpack_require__.r(__webpack_exports__);
33894/* harmony export */ __webpack_require__.d(__webpack_exports__, {
33895/* harmony export */ "getThemeVariables": () => (/* binding */ getThemeVariables)
33896/* harmony export */ });
33897/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/lighten.js");
33898/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/invert.js");
33899/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/darken.js");
33900/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/adjust.js");
33901/* harmony import */ var _theme_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./theme-helpers */ "./src/themes/theme-helpers.js");
33902function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
33903
33904function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
33905
33906function _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); } }
33907
33908function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
33909
33910
33911
33912
33913var Theme = /*#__PURE__*/function () {
33914 function Theme() {
33915 _classCallCheck(this, Theme);
33916
33917 /* Base vales */
33918 this.background = '#f4f4f4';
33919 this.primaryColor = '#cde498';
33920 this.secondaryColor = '#cdffb2';
33921 this.background = 'white';
33922 this.mainBkg = '#cde498';
33923 this.secondBkg = '#cdffb2';
33924 this.lineColor = 'green';
33925 this.border1 = '#13540c';
33926 this.border2 = '#6eaa49';
33927 this.arrowheadColor = 'green';
33928 this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
33929 this.fontSize = '16px';
33930 this.tertiaryColor = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])('#cde498', 10);
33931 this.primaryBorderColor = (0,_theme_helpers__WEBPACK_IMPORTED_MODULE_1__.mkBorder)(this.primaryColor, this.darkMode);
33932 this.secondaryBorderColor = (0,_theme_helpers__WEBPACK_IMPORTED_MODULE_1__.mkBorder)(this.secondaryColor, this.darkMode);
33933 this.tertiaryBorderColor = (0,_theme_helpers__WEBPACK_IMPORTED_MODULE_1__.mkBorder)(this.tertiaryColor, this.darkMode);
33934 this.primaryTextColor = (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.primaryColor);
33935 this.secondaryTextColor = (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.secondaryColor);
33936 this.tertiaryTextColor = (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.primaryColor);
33937 this.lineColor = (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.background);
33938 this.textColor = (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.background);
33939 /* Flowchart variables */
33940
33941 this.nodeBkg = 'calculated';
33942 this.nodeBorder = 'calculated';
33943 this.clusterBkg = 'calculated';
33944 this.clusterBorder = 'calculated';
33945 this.defaultLinkColor = 'calculated';
33946 this.titleColor = '#333';
33947 this.edgeLabelBackground = '#e8e8e8';
33948 /* Sequence Diagram variables */
33949
33950 this.actorBorder = 'calculated';
33951 this.actorBkg = 'calculated';
33952 this.actorTextColor = 'black';
33953 this.actorLineColor = 'grey';
33954 this.signalColor = '#333';
33955 this.signalTextColor = '#333';
33956 this.labelBoxBkgColor = 'calculated';
33957 this.labelBoxBorderColor = '#326932';
33958 this.labelTextColor = 'calculated';
33959 this.loopTextColor = 'calculated';
33960 this.noteBorderColor = 'calculated';
33961 this.noteBkgColor = '#fff5ad';
33962 this.noteTextColor = 'calculated';
33963 this.activationBorderColor = '#666';
33964 this.activationBkgColor = '#f4f4f4';
33965 this.sequenceNumberColor = 'white';
33966 /* Gantt chart variables */
33967
33968 this.sectionBkgColor = '#6eaa49';
33969 this.altSectionBkgColor = 'white';
33970 this.sectionBkgColor2 = '#6eaa49';
33971 this.excludeBkgColor = '#eeeeee';
33972 this.taskBorderColor = 'calculated';
33973 this.taskBkgColor = '#487e3a';
33974 this.taskTextLightColor = 'white';
33975 this.taskTextColor = 'calculated';
33976 this.taskTextDarkColor = 'black';
33977 this.taskTextOutsideColor = 'calculated';
33978 this.taskTextClickableColor = '#003163';
33979 this.activeTaskBorderColor = 'calculated';
33980 this.activeTaskBkgColor = 'calculated';
33981 this.gridColor = 'lightgrey';
33982 this.doneTaskBkgColor = 'lightgrey';
33983 this.doneTaskBorderColor = 'grey';
33984 this.critBorderColor = '#ff8888';
33985 this.critBkgColor = 'red';
33986 this.todayLineColor = 'red';
33987 /* C4 Context Diagram variables */
33988
33989 this.personBorder = 'calculated';
33990 this.personBkg = 'calculated';
33991 /* state colors */
33992
33993 this.labelColor = 'black';
33994 this.errorBkgColor = '#552222';
33995 this.errorTextColor = '#552222';
33996 }
33997
33998 _createClass(Theme, [{
33999 key: "updateColors",
34000 value: function updateColors() {
34001 /* Flowchart variables */
34002 this.nodeBkg = this.mainBkg;
34003 this.nodeBorder = this.border1;
34004 this.clusterBkg = this.secondBkg;
34005 this.clusterBorder = this.border2;
34006 this.defaultLinkColor = this.lineColor;
34007 /* Sequence Diagram variables */
34008
34009 this.actorBorder = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.mainBkg, 20);
34010 this.actorBkg = this.mainBkg;
34011 this.labelBoxBkgColor = this.actorBkg;
34012 this.labelTextColor = this.actorTextColor;
34013 this.loopTextColor = this.actorTextColor;
34014 this.noteBorderColor = this.border2;
34015 this.noteTextColor = this.actorTextColor;
34016 /* Gantt chart variables */
34017
34018 this.taskBorderColor = this.border1;
34019 this.taskTextColor = this.taskTextLightColor;
34020 this.taskTextOutsideColor = this.taskTextDarkColor;
34021 this.activeTaskBorderColor = this.taskBorderColor;
34022 this.activeTaskBkgColor = this.mainBkg;
34023 /* state colors */
34024
34025 this.transitionColor = this.transitionColor || this.lineColor;
34026 this.transitionLabelColor = this.transitionLabelColor || this.textColor;
34027 this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
34028 this.stateBkg = this.stateBkg || this.mainBkg;
34029 this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
34030 this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
34031 this.altBackground = this.altBackground || '#f0f0f0';
34032 this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
34033 this.compositeBorder = this.compositeBorder || this.nodeBorder;
34034 this.innerEndBackground = this.primaryBorderColor;
34035 this.specialStateColor = this.lineColor;
34036 this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
34037 this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
34038 this.transitionColor = this.transitionColor || this.lineColor;
34039 /* class */
34040
34041 this.classText = this.primaryTextColor;
34042 /* journey */
34043
34044 this.fillType0 = this.primaryColor;
34045 this.fillType1 = this.secondaryColor;
34046 this.fillType2 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.primaryColor, {
34047 h: 64
34048 });
34049 this.fillType3 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.secondaryColor, {
34050 h: 64
34051 });
34052 this.fillType4 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.primaryColor, {
34053 h: -64
34054 });
34055 this.fillType5 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.secondaryColor, {
34056 h: -64
34057 });
34058 this.fillType6 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.primaryColor, {
34059 h: 128
34060 });
34061 this.fillType7 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.secondaryColor, {
34062 h: 128
34063 });
34064 /* pie */
34065
34066 this.pie1 = this.pie1 || this.primaryColor;
34067 this.pie2 = this.pie2 || this.secondaryColor;
34068 this.pie3 = this.pie3 || this.tertiaryColor;
34069 this.pie4 = this.pie4 || (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.primaryColor, {
34070 l: -30
34071 });
34072 this.pie5 = this.pie5 || (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.secondaryColor, {
34073 l: -30
34074 });
34075 this.pie6 = this.pie6 || (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.tertiaryColor, {
34076 h: +40,
34077 l: -40
34078 });
34079 this.pie7 = this.pie7 || (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.primaryColor, {
34080 h: +60,
34081 l: -10
34082 });
34083 this.pie8 = this.pie8 || (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.primaryColor, {
34084 h: -60,
34085 l: -10
34086 });
34087 this.pie9 = this.pie9 || (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.primaryColor, {
34088 h: 120,
34089 l: 0
34090 });
34091 this.pie10 = this.pie10 || (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.primaryColor, {
34092 h: +60,
34093 l: -50
34094 });
34095 this.pie11 = this.pie11 || (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.primaryColor, {
34096 h: -60,
34097 l: -50
34098 });
34099 this.pie12 = this.pie12 || (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.primaryColor, {
34100 h: 120,
34101 l: -50
34102 });
34103 this.pieTitleTextSize = this.pieTitleTextSize || '25px';
34104 this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
34105 this.pieSectionTextSize = this.pieSectionTextSize || '17px';
34106 this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
34107 this.pieLegendTextSize = this.pieLegendTextSize || '17px';
34108 this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
34109 this.pieStrokeColor = this.pieStrokeColor || 'black';
34110 this.pieStrokeWidth = this.pieStrokeWidth || '2px';
34111 this.pieOpacity = this.pieOpacity || '0.7';
34112 /* requirement-diagram */
34113
34114 this.requirementBackground = this.requirementBackground || this.primaryColor;
34115 this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
34116 this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
34117 this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
34118 this.relationColor = this.relationColor || this.lineColor;
34119 this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;
34120 this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
34121 /* git */
34122
34123 this.git0 = this.git0 || this.primaryColor;
34124 this.git1 = this.git1 || this.secondaryColor;
34125 this.git2 = this.git2 || this.tertiaryColor;
34126 this.git3 = this.git3 || (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.primaryColor, {
34127 h: -30
34128 });
34129 this.git4 = this.git4 || (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.primaryColor, {
34130 h: -60
34131 });
34132 this.git5 = this.git5 || (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.primaryColor, {
34133 h: -90
34134 });
34135 this.git6 = this.git6 || (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.primaryColor, {
34136 h: +60
34137 });
34138 this.git7 = this.git7 || (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.primaryColor, {
34139 h: +120
34140 });
34141
34142 if (this.darkMode) {
34143 this.git0 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.git0, 25);
34144 this.git1 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.git1, 25);
34145 this.git2 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.git2, 25);
34146 this.git3 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.git3, 25);
34147 this.git4 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.git4, 25);
34148 this.git5 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.git5, 25);
34149 this.git6 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.git6, 25);
34150 this.git7 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.git7, 25);
34151 } else {
34152 this.git0 = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git0, 25);
34153 this.git1 = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git1, 25);
34154 this.git2 = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git2, 25);
34155 this.git3 = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git3, 25);
34156 this.git4 = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git4, 25);
34157 this.git5 = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git5, 25);
34158 this.git6 = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git6, 25);
34159 this.git7 = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git7, 25);
34160 }
34161
34162 this.gitInv0 = this.gitInv0 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git0);
34163 this.gitInv1 = this.gitInv1 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git1);
34164 this.gitInv2 = this.gitInv2 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git2);
34165 this.gitInv3 = this.gitInv3 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git3);
34166 this.gitInv4 = this.gitInv4 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git4);
34167 this.gitInv5 = this.gitInv5 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git5);
34168 this.gitInv6 = this.gitInv6 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git6);
34169 this.gitInv7 = this.gitInv7 || (0,khroma__WEBPACK_IMPORTED_MODULE_2__["default"])(this.git7);
34170 this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
34171 this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
34172 this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
34173 this.tagLabelFontSize = this.tagLabelFontSize || '10px';
34174 this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
34175 this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
34176 this.commitLabelFontSize = this.commitLabelFontSize || '10px';
34177 }
34178 }, {
34179 key: "calculate",
34180 value: function calculate(overrides) {
34181 var _this = this;
34182
34183 if (_typeof(overrides) !== 'object') {
34184 // Calculate colors form base colors
34185 this.updateColors();
34186 return;
34187 }
34188
34189 var keys = Object.keys(overrides); // Copy values from overrides, this is mainly for base colors
34190
34191 keys.forEach(function (k) {
34192 _this[k] = overrides[k];
34193 }); // Calculate colors form base colors
34194
34195 this.updateColors(); // Copy values from overrides again in case of an override of derived value
34196
34197 keys.forEach(function (k) {
34198 _this[k] = overrides[k];
34199 });
34200 }
34201 }]);
34202
34203 return Theme;
34204}();
34205
34206var getThemeVariables = function getThemeVariables(userOverrides) {
34207 var theme = new Theme();
34208 theme.calculate(userOverrides);
34209 return theme;
34210};
34211
34212/***/ }),
34213
34214/***/ "./src/themes/theme-helpers.js":
34215/*!*************************************!*\
34216 !*** ./src/themes/theme-helpers.js ***!
34217 \*************************************/
34218/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
34219
34220"use strict";
34221__webpack_require__.r(__webpack_exports__);
34222/* harmony export */ __webpack_require__.d(__webpack_exports__, {
34223/* harmony export */ "mkBorder": () => (/* binding */ mkBorder)
34224/* harmony export */ });
34225/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/adjust.js");
34226
34227var mkBorder = function mkBorder(col, darkMode) {
34228 return darkMode ? (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(col, {
34229 s: -40,
34230 l: 10
34231 }) : (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(col, {
34232 s: -40,
34233 l: -10
34234 });
34235};
34236
34237/***/ }),
34238
34239/***/ "./src/themes/theme-neutral.js":
34240/*!*************************************!*\
34241 !*** ./src/themes/theme-neutral.js ***!
34242 \*************************************/
34243/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
34244
34245"use strict";
34246__webpack_require__.r(__webpack_exports__);
34247/* harmony export */ __webpack_require__.d(__webpack_exports__, {
34248/* harmony export */ "getThemeVariables": () => (/* binding */ getThemeVariables)
34249/* harmony export */ });
34250/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/lighten.js");
34251/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/adjust.js");
34252/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/invert.js");
34253/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! khroma */ "./node_modules/khroma/dist/methods/darken.js");
34254/* harmony import */ var _theme_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./theme-helpers */ "./src/themes/theme-helpers.js");
34255function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
34256
34257function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
34258
34259function _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); } }
34260
34261function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
34262
34263
34264 // const Color = require ( 'khroma/dist/color' ).default
34265// Color.format.hex.stringify(Color.parse('hsl(210, 66.6666666667%, 95%)')); // => "#EAF2FB"
34266
34267var Theme = /*#__PURE__*/function () {
34268 function Theme() {
34269 _classCallCheck(this, Theme);
34270
34271 this.primaryColor = '#eee';
34272 this.contrast = '#707070';
34273 this.secondaryColor = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.contrast, 55);
34274 this.background = '#ffffff'; // this.secondaryColor = adjust(this.primaryColor, { h: 120 });
34275
34276 this.tertiaryColor = (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
34277 h: -160
34278 });
34279 this.primaryBorderColor = (0,_theme_helpers__WEBPACK_IMPORTED_MODULE_2__.mkBorder)(this.primaryColor, this.darkMode);
34280 this.secondaryBorderColor = (0,_theme_helpers__WEBPACK_IMPORTED_MODULE_2__.mkBorder)(this.secondaryColor, this.darkMode);
34281 this.tertiaryBorderColor = (0,_theme_helpers__WEBPACK_IMPORTED_MODULE_2__.mkBorder)(this.tertiaryColor, this.darkMode); // this.noteBorderColor = mkBorder(this.noteBkgColor, this.darkMode);
34282
34283 this.primaryTextColor = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.primaryColor);
34284 this.secondaryTextColor = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.secondaryColor);
34285 this.tertiaryTextColor = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.tertiaryColor);
34286 this.lineColor = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.background);
34287 this.textColor = (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.background); // this.altBackground = lighten(this.contrast, 55);
34288
34289 this.mainBkg = '#eee';
34290 this.secondBkg = 'calculated';
34291 this.lineColor = '#666';
34292 this.border1 = '#999';
34293 this.border2 = 'calculated';
34294 this.note = '#ffa';
34295 this.text = '#333';
34296 this.critical = '#d42';
34297 this.done = '#bbb';
34298 this.arrowheadColor = '#333333';
34299 this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
34300 this.fontSize = '16px';
34301 /* Flowchart variables */
34302
34303 this.nodeBkg = 'calculated';
34304 this.nodeBorder = 'calculated';
34305 this.clusterBkg = 'calculated';
34306 this.clusterBorder = 'calculated';
34307 this.defaultLinkColor = 'calculated';
34308 this.titleColor = 'calculated';
34309 this.edgeLabelBackground = 'white';
34310 /* Sequence Diagram variables */
34311
34312 this.actorBorder = 'calculated';
34313 this.actorBkg = 'calculated';
34314 this.actorTextColor = 'calculated';
34315 this.actorLineColor = 'calculated';
34316 this.signalColor = 'calculated';
34317 this.signalTextColor = 'calculated';
34318 this.labelBoxBkgColor = 'calculated';
34319 this.labelBoxBorderColor = 'calculated';
34320 this.labelTextColor = 'calculated';
34321 this.loopTextColor = 'calculated';
34322 this.noteBorderColor = 'calculated';
34323 this.noteBkgColor = 'calculated';
34324 this.noteTextColor = 'calculated';
34325 this.activationBorderColor = '#666';
34326 this.activationBkgColor = '#f4f4f4';
34327 this.sequenceNumberColor = 'white';
34328 /* Gantt chart variables */
34329
34330 this.sectionBkgColor = 'calculated';
34331 this.altSectionBkgColor = 'white';
34332 this.sectionBkgColor2 = 'calculated';
34333 this.excludeBkgColor = '#eeeeee';
34334 this.taskBorderColor = 'calculated';
34335 this.taskBkgColor = 'calculated';
34336 this.taskTextLightColor = 'white';
34337 this.taskTextColor = 'calculated';
34338 this.taskTextDarkColor = 'calculated';
34339 this.taskTextOutsideColor = 'calculated';
34340 this.taskTextClickableColor = '#003163';
34341 this.activeTaskBorderColor = 'calculated';
34342 this.activeTaskBkgColor = 'calculated';
34343 this.gridColor = 'calculated';
34344 this.doneTaskBkgColor = 'calculated';
34345 this.doneTaskBorderColor = 'calculated';
34346 this.critBkgColor = 'calculated';
34347 this.critBorderColor = 'calculated';
34348 this.todayLineColor = 'calculated';
34349 /* C4 Context Diagram variables */
34350
34351 this.personBorder = 'calculated';
34352 this.personBkg = 'calculated';
34353 /* state colors */
34354
34355 this.labelColor = 'black';
34356 this.errorBkgColor = '#552222';
34357 this.errorTextColor = '#552222';
34358 }
34359
34360 _createClass(Theme, [{
34361 key: "updateColors",
34362 value: function updateColors() {
34363 this.secondBkg = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.contrast, 55);
34364 this.border2 = this.contrast;
34365 /* Flowchart variables */
34366
34367 this.nodeBkg = this.mainBkg;
34368 this.nodeBorder = this.border1;
34369 this.clusterBkg = this.secondBkg;
34370 this.clusterBorder = this.border2;
34371 this.defaultLinkColor = this.lineColor;
34372 this.titleColor = this.text;
34373 /* Sequence Diagram variables */
34374
34375 this.actorBorder = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.border1, 23);
34376 this.actorBkg = this.mainBkg;
34377 this.actorTextColor = this.text;
34378 this.actorLineColor = this.lineColor;
34379 this.signalColor = this.text;
34380 this.signalTextColor = this.text;
34381 this.labelBoxBkgColor = this.actorBkg;
34382 this.labelBoxBorderColor = this.actorBorder;
34383 this.labelTextColor = this.text;
34384 this.loopTextColor = this.text;
34385 this.noteBorderColor = '#999';
34386 this.noteBkgColor = '#666';
34387 this.noteTextColor = '#fff';
34388 /* Gantt chart variables */
34389
34390 this.sectionBkgColor = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.contrast, 30);
34391 this.sectionBkgColor2 = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.contrast, 30);
34392 this.taskBorderColor = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.contrast, 10);
34393 this.taskBkgColor = this.contrast;
34394 this.taskTextColor = this.taskTextLightColor;
34395 this.taskTextDarkColor = this.text;
34396 this.taskTextOutsideColor = this.taskTextDarkColor;
34397 this.activeTaskBorderColor = this.taskBorderColor;
34398 this.activeTaskBkgColor = this.mainBkg;
34399 this.gridColor = (0,khroma__WEBPACK_IMPORTED_MODULE_0__["default"])(this.border1, 30);
34400 this.doneTaskBkgColor = this.done;
34401 this.doneTaskBorderColor = this.lineColor;
34402 this.critBkgColor = this.critical;
34403 this.critBorderColor = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.critBkgColor, 10);
34404 this.todayLineColor = this.critBkgColor;
34405 /* state colors */
34406
34407 this.transitionColor = this.transitionColor || '#000';
34408 this.transitionLabelColor = this.transitionLabelColor || this.textColor;
34409 this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
34410 this.stateBkg = this.stateBkg || this.mainBkg;
34411 this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
34412 this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
34413 this.altBackground = this.altBackground || '#f4f4f4';
34414 this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
34415 this.stateBorder = this.stateBorder || '#000';
34416 this.innerEndBackground = this.primaryBorderColor;
34417 this.specialStateColor = '#222';
34418 this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
34419 this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
34420 /* class */
34421
34422 this.classText = this.primaryTextColor;
34423 /* journey */
34424
34425 this.fillType0 = this.primaryColor;
34426 this.fillType1 = this.secondaryColor;
34427 this.fillType2 = (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
34428 h: 64
34429 });
34430 this.fillType3 = (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.secondaryColor, {
34431 h: 64
34432 });
34433 this.fillType4 = (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
34434 h: -64
34435 });
34436 this.fillType5 = (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.secondaryColor, {
34437 h: -64
34438 });
34439 this.fillType6 = (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
34440 h: 128
34441 });
34442 this.fillType7 = (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.secondaryColor, {
34443 h: 128
34444 }); // /* pie */
34445
34446 this.pie1 = this.pie1 || '#F4F4F4';
34447 this.pie2 = this.pie2 || '#555';
34448 this.pie3 = this.pie3 || '#BBB';
34449 this.pie4 = this.pie4 || '#777';
34450 this.pie5 = this.pie5 || '#999';
34451 this.pie6 = this.pie6 || '#DDD';
34452 this.pie7 = this.pie7 || '#FFF';
34453 this.pie8 = this.pie8 || '#DDD';
34454 this.pie9 = this.pie9 || '#BBB';
34455 this.pie10 = this.pie10 || '#999';
34456 this.pie11 = this.pie11 || '#777';
34457 this.pie12 = this.pie12 || '#555';
34458 this.pieTitleTextSize = this.pieTitleTextSize || '25px';
34459 this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
34460 this.pieSectionTextSize = this.pieSectionTextSize || '17px';
34461 this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
34462 this.pieLegendTextSize = this.pieLegendTextSize || '17px';
34463 this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
34464 this.pieStrokeColor = this.pieStrokeColor || 'black';
34465 this.pieStrokeWidth = this.pieStrokeWidth || '2px';
34466 this.pieOpacity = this.pieOpacity || '0.7'; // this.pie1 = this.pie1 || '#212529';
34467 // this.pie2 = this.pie2 || '#343A40';
34468 // this.pie3 = this.pie3 || '#495057';
34469 // this.pie4 = this.pie4 || '#6C757D';
34470 // this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -10 });
34471 // this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -10 });
34472 // this.pie7 = this.pie7 || adjust(this.primaryColor, { h: +60, l: -10 });
34473 // this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 });
34474 // this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 });
34475 // this.pie10 = this.pie10 || adjust(this.primaryColor, { h: +60, l: -20 });
34476 // this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -20 });
34477 // this.pie12 = this.pie12 || adjust(this.primaryColor, { h: 120, l: -10 });
34478
34479 /* requirement-diagram */
34480
34481 this.requirementBackground = this.requirementBackground || this.primaryColor;
34482 this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
34483 this.requirementBorderSize = this.requirementBorderSize || this.primaryBorderColor;
34484 this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
34485 this.relationColor = this.relationColor || this.lineColor;
34486 this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;
34487 this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
34488 /* git */
34489
34490 this.git0 = (0,khroma__WEBPACK_IMPORTED_MODULE_4__["default"])(this.pie1, 25) || this.primaryColor;
34491 this.git1 = this.pie2 || this.secondaryColor;
34492 this.git2 = this.pie3 || this.tertiaryColor;
34493 this.git3 = this.pie4 || (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
34494 h: -30
34495 });
34496 this.git4 = this.pie5 || (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
34497 h: -60
34498 });
34499 this.git5 = this.pie6 || (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
34500 h: -90
34501 });
34502 this.git6 = this.pie7 || (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
34503 h: +60
34504 });
34505 this.git7 = this.pie8 || (0,khroma__WEBPACK_IMPORTED_MODULE_1__["default"])(this.primaryColor, {
34506 h: +120
34507 });
34508 this.gitInv0 = this.gitInv0 || (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git0);
34509 this.gitInv1 = this.gitInv1 || (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git1);
34510 this.gitInv2 = this.gitInv2 || (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git2);
34511 this.gitInv3 = this.gitInv3 || (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git3);
34512 this.gitInv4 = this.gitInv4 || (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git4);
34513 this.gitInv5 = this.gitInv5 || (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git5);
34514 this.gitInv6 = this.gitInv6 || (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git6);
34515 this.gitInv7 = this.gitInv7 || (0,khroma__WEBPACK_IMPORTED_MODULE_3__["default"])(this.git7);
34516 this.branchLabelColor = this.branchLabelColor || this.labelTextColor;
34517 this.gitBranchLabel0 = this.branchLabelColor;
34518 this.gitBranchLabel1 = 'white';
34519 this.gitBranchLabel2 = this.branchLabelColor;
34520 this.gitBranchLabel3 = 'white';
34521 this.gitBranchLabel4 = this.branchLabelColor;
34522 this.gitBranchLabel5 = this.branchLabelColor;
34523 this.gitBranchLabel6 = this.branchLabelColor;
34524 this.gitBranchLabel7 = this.branchLabelColor;
34525 this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
34526 this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
34527 this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
34528 this.tagLabelFontSize = this.tagLabelFontSize || '10px';
34529 this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
34530 this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
34531 this.commitLabelFontSize = this.commitLabelFontSize || '10px';
34532 }
34533 }, {
34534 key: "calculate",
34535 value: function calculate(overrides) {
34536 var _this = this;
34537
34538 if (_typeof(overrides) !== 'object') {
34539 // Calculate colors form base colors
34540 this.updateColors();
34541 return;
34542 }
34543
34544 var keys = Object.keys(overrides); // Copy values from overrides, this is mainly for base colors
34545
34546 keys.forEach(function (k) {
34547 _this[k] = overrides[k];
34548 }); // Calculate colors form base colors
34549
34550 this.updateColors(); // Copy values from overrides again in case of an override of derived value
34551
34552 keys.forEach(function (k) {
34553 _this[k] = overrides[k];
34554 });
34555 }
34556 }]);
34557
34558 return Theme;
34559}();
34560
34561var getThemeVariables = function getThemeVariables(userOverrides) {
34562 var theme = new Theme();
34563 theme.calculate(userOverrides);
34564 return theme;
34565};
34566
34567/***/ }),
34568
34569/***/ "./src/utils.js":
34570/*!**********************!*\
34571 !*** ./src/utils.js ***!
34572 \**********************/
34573/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
34574
34575"use strict";
34576__webpack_require__.r(__webpack_exports__);
34577/* harmony export */ __webpack_require__.d(__webpack_exports__, {
34578/* harmony export */ "calculateSvgSizeAttrs": () => (/* binding */ calculateSvgSizeAttrs),
34579/* harmony export */ "calculateTextDimensions": () => (/* binding */ calculateTextDimensions),
34580/* harmony export */ "calculateTextHeight": () => (/* binding */ calculateTextHeight),
34581/* harmony export */ "calculateTextWidth": () => (/* binding */ calculateTextWidth),
34582/* harmony export */ "configureSvgSize": () => (/* binding */ configureSvgSize),
34583/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
34584/* harmony export */ "detectDirective": () => (/* binding */ detectDirective),
34585/* harmony export */ "detectInit": () => (/* binding */ detectInit),
34586/* harmony export */ "directiveSanitizer": () => (/* binding */ directiveSanitizer),
34587/* harmony export */ "drawSimpleText": () => (/* binding */ drawSimpleText),
34588/* harmony export */ "entityDecode": () => (/* binding */ entityDecode),
34589/* harmony export */ "formatUrl": () => (/* binding */ formatUrl),
34590/* harmony export */ "generateId": () => (/* binding */ generateId),
34591/* harmony export */ "getStylesFromArray": () => (/* binding */ getStylesFromArray),
34592/* harmony export */ "getTextObj": () => (/* binding */ getTextObj),
34593/* harmony export */ "initIdGenerator": () => (/* binding */ initIdGenerator),
34594/* harmony export */ "interpolateToCurve": () => (/* binding */ interpolateToCurve),
34595/* harmony export */ "isSubstringInArray": () => (/* binding */ isSubstringInArray),
34596/* harmony export */ "random": () => (/* binding */ random),
34597/* harmony export */ "runFunc": () => (/* binding */ runFunc),
34598/* harmony export */ "sanitizeCss": () => (/* binding */ sanitizeCss),
34599/* harmony export */ "setupGraphViewbox": () => (/* binding */ setupGraphViewbox),
34600/* harmony export */ "wrapLabel": () => (/* binding */ wrapLabel)
34601/* harmony export */ });
34602/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @braintree/sanitize-url */ "./node_modules/@braintree/sanitize-url/dist/index.js");
34603/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
34604/* harmony import */ var _diagrams_common_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./diagrams/common/common */ "./src/diagrams/common/common.js");
34605/* harmony import */ var _defaultConfig__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./defaultConfig */ "./src/defaultConfig.js");
34606/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./logger */ "./src/logger.js");
34607/* harmony import */ var _diagram_api_detectType__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./diagram-api/detectType */ "./src/diagram-api/detectType.js");
34608/* harmony import */ var _assignWithDepth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./assignWithDepth */ "./src/assignWithDepth.js");
34609var _this = undefined;
34610
34611function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
34612
34613function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
34614
34615function _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); } }
34616
34617function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
34618
34619function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
34620
34621function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
34622
34623function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
34624
34625function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
34626
34627function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
34628
34629function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
34630
34631function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
34632
34633
34634
34635
34636
34637
34638
34639 // Effectively an enum of the supported curve types, accessible by name
34640
34641var d3CurveTypes = {
34642 curveBasis: d3__WEBPACK_IMPORTED_MODULE_1__.curveBasis,
34643 curveBasisClosed: d3__WEBPACK_IMPORTED_MODULE_1__.curveBasisClosed,
34644 curveBasisOpen: d3__WEBPACK_IMPORTED_MODULE_1__.curveBasisOpen,
34645 curveLinear: d3__WEBPACK_IMPORTED_MODULE_1__.curveLinear,
34646 curveLinearClosed: d3__WEBPACK_IMPORTED_MODULE_1__.curveLinearClosed,
34647 curveMonotoneX: d3__WEBPACK_IMPORTED_MODULE_1__.curveMonotoneX,
34648 curveMonotoneY: d3__WEBPACK_IMPORTED_MODULE_1__.curveMonotoneY,
34649 curveNatural: d3__WEBPACK_IMPORTED_MODULE_1__.curveNatural,
34650 curveStep: d3__WEBPACK_IMPORTED_MODULE_1__.curveStep,
34651 curveStepAfter: d3__WEBPACK_IMPORTED_MODULE_1__.curveStepAfter,
34652 curveStepBefore: d3__WEBPACK_IMPORTED_MODULE_1__.curveStepBefore
34653};
34654var directive = /[%]{2}[{]\s*(?:(?:(\w+)\s*:|(\w+))\s*(?:(?:(\w+))|((?:(?![}][%]{2}).|\r?\n)*))?\s*)(?:[}][%]{2})?/gi;
34655var directiveWithoutOpen = /\s*(?:(?:(\w+)(?=:):|(\w+))\s*(?:(?:(\w+))|((?:(?![}][%]{2}).|\r?\n)*))?\s*)(?:[}][%]{2})?/gi;
34656var anyComment = /\s*%%.*\n/gm;
34657/**
34658 * @function detectInit Detects the init config object from the text
34659 *
34660 * ```mermaid
34661 * %%{init: {"theme": "debug", "logLevel": 1 }}%%
34662 * graph LR
34663 * a-->b
34664 * b-->c
34665 * c-->d
34666 * d-->e
34667 * e-->f
34668 * f-->g
34669 * g-->h
34670 * ```
34671 *
34672 * Or
34673 *
34674 * ```mermaid
34675 * %%{initialize: {"theme": "dark", logLevel: "debug" }}%%
34676 * graph LR
34677 * a-->b
34678 * b-->c
34679 * c-->d
34680 * d-->e
34681 * e-->f
34682 * f-->g
34683 * g-->h
34684 * ```
34685 * @param {string} text The text defining the graph
34686 * @param {any} cnf
34687 * @returns {object} The json object representing the init passed to mermaid.initialize()
34688 */
34689
34690var detectInit = function detectInit(text, cnf) {
34691 var inits = detectDirective(text, /(?:init\b)|(?:initialize\b)/);
34692 var results = {};
34693
34694 if (Array.isArray(inits)) {
34695 var args = inits.map(function (init) {
34696 return init.args;
34697 });
34698 directiveSanitizer(args);
34699 results = (0,_assignWithDepth__WEBPACK_IMPORTED_MODULE_2__["default"])(results, _toConsumableArray(args));
34700 } else {
34701 results = inits.args;
34702 }
34703
34704 if (results) {
34705 var type = (0,_diagram_api_detectType__WEBPACK_IMPORTED_MODULE_3__["default"])(text, cnf);
34706 ['config'].forEach(function (prop) {
34707 if (typeof results[prop] !== 'undefined') {
34708 if (type === 'flowchart-v2') {
34709 type = 'flowchart';
34710 }
34711
34712 results[type] = results[prop];
34713 delete results[prop];
34714 }
34715 });
34716 } // Todo: refactor this, these results are never used
34717
34718
34719 return results;
34720};
34721/**
34722 * @function detectDirective Detects the directive from the text. Text can be single line or
34723 * multiline. If type is null or omitted the first directive encountered in text will be returned
34724 *
34725 * ```mermaid
34726 * graph LR
34727 * %%{somedirective}%%
34728 * a-->b
34729 * b-->c
34730 * c-->d
34731 * d-->e
34732 * e-->f
34733 * f-->g
34734 * g-->h
34735 * ```
34736 * @param {string} text The text defining the graph
34737 * @param {string | RegExp} type The directive to return (default: null)
34738 * @returns {object | Array} An object or Array representing the directive(s): { type: string, args:
34739 * object|null } matched by the input type if a single directive was found, that directive object
34740 * will be returned.
34741 */
34742
34743var detectDirective = function detectDirective(text) {
34744 var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
34745
34746 try {
34747 var commentWithoutDirectives = new RegExp("[%]{2}(?![{]".concat(directiveWithoutOpen.source, ")(?=[}][%]{2}).*\n"), 'ig');
34748 text = text.trim().replace(commentWithoutDirectives, '').replace(/'/gm, '"');
34749 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug("Detecting diagram directive".concat(type !== null ? ' type:' + type : '', " based on the text:").concat(text));
34750 var match,
34751 result = [];
34752
34753 while ((match = directive.exec(text)) !== null) {
34754 // This is necessary to avoid infinite loops with zero-width matches
34755 if (match.index === directive.lastIndex) {
34756 directive.lastIndex++;
34757 }
34758
34759 if (match && !type || type && match[1] && match[1].match(type) || type && match[2] && match[2].match(type)) {
34760 var _type = match[1] ? match[1] : match[2];
34761
34762 var args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;
34763 result.push({
34764 type: _type,
34765 args: args
34766 });
34767 }
34768 }
34769
34770 if (result.length === 0) {
34771 result.push({
34772 type: text,
34773 args: null
34774 });
34775 }
34776
34777 return result.length === 1 ? result[0] : result;
34778 } catch (error) {
34779 _logger__WEBPACK_IMPORTED_MODULE_4__.log.error("ERROR: ".concat(error.message, " - Unable to parse directive\n ").concat(type !== null ? ' type:' + type : '', " based on the text:").concat(text));
34780 return {
34781 type: null,
34782 args: null
34783 };
34784 }
34785};
34786/**
34787 * Caches results of functions based on input
34788 *
34789 * @param {Function} fn Function to run
34790 * @param {Function} resolver Function that resolves to an ID given arguments the `fn` takes
34791 * @returns {Function} An optimized caching function
34792 */
34793
34794var memoize = function memoize(fn, resolver) {
34795 var cache = {};
34796 return function () {
34797 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
34798 args[_key] = arguments[_key];
34799 }
34800
34801 var n = resolver ? resolver.apply(_this, args) : args[0];
34802
34803 if (n in cache) {
34804 return cache[n];
34805 } else {
34806 var result = fn.apply(void 0, args);
34807 cache[n] = result;
34808 return result;
34809 }
34810 };
34811};
34812/**
34813 * @function isSubstringInArray Detects whether a substring in present in a given array
34814 * @param {string} str The substring to detect
34815 * @param {Array} arr The array to search
34816 * @returns {number} The array index containing the substring or -1 if not present
34817 */
34818
34819
34820var isSubstringInArray = function isSubstringInArray(str, arr) {
34821 for (var i = 0; i < arr.length; i++) {
34822 if (arr[i].match(str)) return i;
34823 }
34824
34825 return -1;
34826};
34827/**
34828 * Returns a d3 curve given a curve name
34829 *
34830 * @param {string | undefined} interpolate The interpolation name
34831 * @param {any} defaultCurve The default curve to return
34832 * @returns {import('d3-shape').CurveFactory} The curve factory to use
34833 */
34834
34835var interpolateToCurve = function interpolateToCurve(interpolate, defaultCurve) {
34836 if (!interpolate) {
34837 return defaultCurve;
34838 }
34839
34840 var curveName = "curve".concat(interpolate.charAt(0).toUpperCase() + interpolate.slice(1));
34841 return d3CurveTypes[curveName] || defaultCurve;
34842};
34843/**
34844 * Formats a URL string
34845 *
34846 * @param {string} linkStr String of the URL
34847 * @param {{ securityLevel: string }} config Configuration passed to MermaidJS
34848 * @returns {string | undefined} The formatted URL
34849 */
34850
34851var formatUrl = function formatUrl(linkStr, config) {
34852 var url = linkStr.trim();
34853
34854 if (url) {
34855 if (config.securityLevel !== 'loose') {
34856 return (0,_braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_0__.sanitizeUrl)(url);
34857 }
34858
34859 return url;
34860 }
34861};
34862/**
34863 * Runs a function
34864 *
34865 * @param {string} functionName A dot seperated path to the function relative to the `window`
34866 * @param {...any} params Parameters to pass to the function
34867 */
34868
34869var runFunc = function runFunc(functionName) {
34870 var _obj;
34871
34872 var arrPaths = functionName.split('.');
34873 var len = arrPaths.length - 1;
34874 var fnName = arrPaths[len];
34875 var obj = window;
34876
34877 for (var i = 0; i < len; i++) {
34878 obj = obj[arrPaths[i]];
34879 if (!obj) return;
34880 }
34881
34882 for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
34883 params[_key2 - 1] = arguments[_key2];
34884 }
34885
34886 (_obj = obj)[fnName].apply(_obj, params);
34887};
34888/**
34889 * @typedef {object} Point A (x, y) point
34890 * @property {number} x The x value
34891 * @property {number} y The y value
34892 */
34893
34894/**
34895 * Finds the distance between two points using the Distance Formula
34896 *
34897 * @param {Point} p1 The first point
34898 * @param {Point} p2 The second point
34899 * @returns {number} The distance
34900 */
34901
34902var distance = function distance(p1, p2) {
34903 return p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0;
34904};
34905/**
34906 * @param {Point[]} points List of points
34907 * @returns {Point}
34908 * @todo Give this a description
34909 */
34910
34911
34912var traverseEdge = function traverseEdge(points) {
34913 var prevPoint;
34914 var totalDistance = 0;
34915 points.forEach(function (point) {
34916 totalDistance += distance(point, prevPoint);
34917 prevPoint = point;
34918 }); // Traverse half of total distance along points
34919
34920 var remainingDistance = totalDistance / 2;
34921 var center = undefined;
34922 prevPoint = undefined;
34923 points.forEach(function (point) {
34924 if (prevPoint && !center) {
34925 var vectorDistance = distance(point, prevPoint);
34926
34927 if (vectorDistance < remainingDistance) {
34928 remainingDistance -= vectorDistance;
34929 } else {
34930 // The point is remainingDistance from prevPoint in the vector between prevPoint and point
34931 // Calculate the coordinates
34932 var distanceRatio = remainingDistance / vectorDistance;
34933 if (distanceRatio <= 0) center = prevPoint;
34934 if (distanceRatio >= 1) center = {
34935 x: point.x,
34936 y: point.y
34937 };
34938
34939 if (distanceRatio > 0 && distanceRatio < 1) {
34940 center = {
34941 x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,
34942 y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y
34943 };
34944 }
34945 }
34946 }
34947
34948 prevPoint = point;
34949 });
34950 return center;
34951};
34952/**
34953 * Alias for `traverseEdge`
34954 *
34955 * @param {Point[]} points List of points
34956 * @returns {Point} Return result of `transverseEdge`
34957 */
34958
34959
34960var calcLabelPosition = function calcLabelPosition(points) {
34961 if (points.length === 1) {
34962 return points[0];
34963 }
34964
34965 return traverseEdge(points);
34966};
34967
34968var calcCardinalityPosition = function calcCardinalityPosition(isRelationTypePresent, points, initialPosition) {
34969 var prevPoint;
34970 var totalDistance = 0; // eslint-disable-line
34971
34972 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('our points', points);
34973
34974 if (points[0] !== initialPosition) {
34975 points = points.reverse();
34976 }
34977
34978 points.forEach(function (point) {
34979 totalDistance += distance(point, prevPoint);
34980 prevPoint = point;
34981 }); // Traverse only 25 total distance along points to find cardinality point
34982
34983 var distanceToCardinalityPoint = 25;
34984 var remainingDistance = distanceToCardinalityPoint;
34985 var center;
34986 prevPoint = undefined;
34987 points.forEach(function (point) {
34988 if (prevPoint && !center) {
34989 var vectorDistance = distance(point, prevPoint);
34990
34991 if (vectorDistance < remainingDistance) {
34992 remainingDistance -= vectorDistance;
34993 } else {
34994 // The point is remainingDistance from prevPoint in the vector between prevPoint and point
34995 // Calculate the coordinates
34996 var distanceRatio = remainingDistance / vectorDistance;
34997 if (distanceRatio <= 0) center = prevPoint;
34998 if (distanceRatio >= 1) center = {
34999 x: point.x,
35000 y: point.y
35001 };
35002
35003 if (distanceRatio > 0 && distanceRatio < 1) {
35004 center = {
35005 x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,
35006 y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y
35007 };
35008 }
35009 }
35010 }
35011
35012 prevPoint = point;
35013 }); // if relation is present (Arrows will be added), change cardinality point off-set distance (d)
35014
35015 var d = isRelationTypePresent ? 10 : 5; //Calculate Angle for x and y axis
35016
35017 var angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);
35018 var cardinalityPosition = {
35019 x: 0,
35020 y: 0
35021 }; //Calculation cardinality position using angle, center point on the line/curve but pendicular and with offset-distance
35022
35023 cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;
35024 cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;
35025 return cardinalityPosition;
35026};
35027/**
35028 * Position ['start_left', 'start_right', 'end_left', 'end_right']
35029 *
35030 * @param {any} terminalMarkerSize
35031 * @param {any} position
35032 * @param {any} _points
35033 * @returns {any}
35034 */
35035
35036
35037var calcTerminalLabelPosition = function calcTerminalLabelPosition(terminalMarkerSize, position, _points) {
35038 // Todo looking to faster cloning method
35039 var points = JSON.parse(JSON.stringify(_points));
35040 var prevPoint;
35041 var totalDistance = 0; // eslint-disable-line
35042
35043 _logger__WEBPACK_IMPORTED_MODULE_4__.log.info('our points', points);
35044
35045 if (position !== 'start_left' && position !== 'start_right') {
35046 points = points.reverse();
35047 }
35048
35049 points.forEach(function (point) {
35050 totalDistance += distance(point, prevPoint);
35051 prevPoint = point;
35052 }); // Traverse only 25 total distance along points to find cardinality point
35053
35054 var distanceToCardinalityPoint = 25 + terminalMarkerSize;
35055 var remainingDistance = distanceToCardinalityPoint;
35056 var center;
35057 prevPoint = undefined;
35058 points.forEach(function (point) {
35059 if (prevPoint && !center) {
35060 var vectorDistance = distance(point, prevPoint);
35061
35062 if (vectorDistance < remainingDistance) {
35063 remainingDistance -= vectorDistance;
35064 } else {
35065 // The point is remainingDistance from prevPoint in the vector between prevPoint and point
35066 // Calculate the coordinates
35067 var distanceRatio = remainingDistance / vectorDistance;
35068 if (distanceRatio <= 0) center = prevPoint;
35069 if (distanceRatio >= 1) center = {
35070 x: point.x,
35071 y: point.y
35072 };
35073
35074 if (distanceRatio > 0 && distanceRatio < 1) {
35075 center = {
35076 x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,
35077 y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y
35078 };
35079 }
35080 }
35081 }
35082
35083 prevPoint = point;
35084 }); // if relation is present (Arrows will be added), change cardinality point off-set distance (d)
35085
35086 var d = 10 + terminalMarkerSize * 0.5; //Calculate Angle for x and y axis
35087
35088 var angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);
35089 var cardinalityPosition = {
35090 x: 0,
35091 y: 0
35092 }; //Calculation cardinality position using angle, center point on the line/curve but pendicular and with offset-distance
35093
35094 cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;
35095 cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;
35096
35097 if (position === 'start_left') {
35098 cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center.x) / 2;
35099 cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center.y) / 2;
35100 }
35101
35102 if (position === 'end_right') {
35103 cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center.x) / 2 - 5;
35104 cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center.y) / 2 - 5;
35105 }
35106
35107 if (position === 'end_left') {
35108 cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2 - 5;
35109 cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5;
35110 }
35111
35112 return cardinalityPosition;
35113};
35114/**
35115 * Gets styles from an array of declarations
35116 *
35117 * @param {string[]} arr Declarations
35118 * @returns {{ style: string; labelStyle: string }} The styles grouped as strings
35119 */
35120
35121
35122var getStylesFromArray = function getStylesFromArray(arr) {
35123 var style = '';
35124 var labelStyle = '';
35125
35126 for (var i = 0; i < arr.length; i++) {
35127 if (typeof arr[i] !== 'undefined') {
35128 // add text properties to label style definition
35129 if (arr[i].startsWith('color:') || arr[i].startsWith('text-align:')) {
35130 labelStyle = labelStyle + arr[i] + ';';
35131 } else {
35132 style = style + arr[i] + ';';
35133 }
35134 }
35135 }
35136
35137 return {
35138 style: style,
35139 labelStyle: labelStyle
35140 };
35141};
35142var cnt = 0;
35143var generateId = function generateId() {
35144 cnt++;
35145 return 'id-' + Math.random().toString(36).substr(2, 12) + '-' + cnt;
35146};
35147/**
35148 * @param {any} length
35149 * @returns {any}
35150 */
35151
35152function makeid(length) {
35153 var result = '';
35154 var characters = '0123456789abcdef';
35155 var charactersLength = characters.length;
35156
35157 for (var i = 0; i < length; i++) {
35158 result += characters.charAt(Math.floor(Math.random() * charactersLength));
35159 }
35160
35161 return result;
35162}
35163
35164var random = function random(options) {
35165 return makeid(options.length);
35166};
35167var getTextObj = function getTextObj() {
35168 return {
35169 x: 0,
35170 y: 0,
35171 fill: undefined,
35172 anchor: 'start',
35173 style: '#666',
35174 width: 100,
35175 height: 100,
35176 textMargin: 0,
35177 rx: 0,
35178 ry: 0,
35179 valign: undefined
35180 };
35181};
35182/**
35183 * Adds text to an element
35184 *
35185 * @param {SVGElement} elem Element to add text to
35186 * @param {{
35187 * text: string;
35188 * x: number;
35189 * y: number;
35190 * anchor: 'start' | 'middle' | 'end';
35191 * fontFamily: string;
35192 * fontSize: string | number;
35193 * fontWeight: string | number;
35194 * fill: string;
35195 * class: string | undefined;
35196 * textMargin: number;
35197 * }} textData
35198 * @returns {SVGTextElement} Text element with given styling and content
35199 */
35200
35201var drawSimpleText = function drawSimpleText(elem, textData) {
35202 // Remove and ignore br:s
35203 var nText = textData.text.replace(_diagrams_common_common__WEBPACK_IMPORTED_MODULE_5__["default"].lineBreakRegex, ' ');
35204 var textElem = elem.append('text');
35205 textElem.attr('x', textData.x);
35206 textElem.attr('y', textData.y);
35207 textElem.style('text-anchor', textData.anchor);
35208 textElem.style('font-family', textData.fontFamily);
35209 textElem.style('font-size', textData.fontSize);
35210 textElem.style('font-weight', textData.fontWeight);
35211 textElem.attr('fill', textData.fill);
35212
35213 if (typeof textData.class !== 'undefined') {
35214 textElem.attr('class', textData.class);
35215 }
35216
35217 var span = textElem.append('tspan');
35218 span.attr('x', textData.x + textData.textMargin * 2);
35219 span.attr('fill', textData.fill);
35220 span.text(nText);
35221 return textElem;
35222};
35223var wrapLabel = memoize(function (label, maxWidth, config) {
35224 if (!label) {
35225 return label;
35226 }
35227
35228 config = Object.assign({
35229 fontSize: 12,
35230 fontWeight: 400,
35231 fontFamily: 'Arial',
35232 joinWith: '<br/>'
35233 }, config);
35234
35235 if (_diagrams_common_common__WEBPACK_IMPORTED_MODULE_5__["default"].lineBreakRegex.test(label)) {
35236 return label;
35237 }
35238
35239 var words = label.split(' ');
35240 var completedLines = [];
35241 var nextLine = '';
35242 words.forEach(function (word, index) {
35243 var wordLength = calculateTextWidth("".concat(word, " "), config);
35244 var nextLineLength = calculateTextWidth(nextLine, config);
35245
35246 if (wordLength > maxWidth) {
35247 var _breakString = breakString(word, maxWidth, '-', config),
35248 hyphenatedStrings = _breakString.hyphenatedStrings,
35249 remainingWord = _breakString.remainingWord;
35250
35251 completedLines.push.apply(completedLines, [nextLine].concat(_toConsumableArray(hyphenatedStrings)));
35252 nextLine = remainingWord;
35253 } else if (nextLineLength + wordLength >= maxWidth) {
35254 completedLines.push(nextLine);
35255 nextLine = word;
35256 } else {
35257 nextLine = [nextLine, word].filter(Boolean).join(' ');
35258 }
35259
35260 var currentWord = index + 1;
35261 var isLastWord = currentWord === words.length;
35262
35263 if (isLastWord) {
35264 completedLines.push(nextLine);
35265 }
35266 });
35267 return completedLines.filter(function (line) {
35268 return line !== '';
35269 }).join(config.joinWith);
35270}, function (label, maxWidth, config) {
35271 return "".concat(label, "-").concat(maxWidth, "-").concat(config.fontSize, "-").concat(config.fontWeight, "-").concat(config.fontFamily, "-").concat(config.joinWith);
35272});
35273var breakString = memoize(function (word, maxWidth) {
35274 var hyphenCharacter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '-';
35275 var config = arguments.length > 3 ? arguments[3] : undefined;
35276 config = Object.assign({
35277 fontSize: 12,
35278 fontWeight: 400,
35279 fontFamily: 'Arial',
35280 margin: 0
35281 }, config);
35282 var characters = word.split('');
35283 var lines = [];
35284 var currentLine = '';
35285 characters.forEach(function (character, index) {
35286 var nextLine = "".concat(currentLine).concat(character);
35287 var lineWidth = calculateTextWidth(nextLine, config);
35288
35289 if (lineWidth >= maxWidth) {
35290 var currentCharacter = index + 1;
35291 var isLastLine = characters.length === currentCharacter;
35292 var hyphenatedNextLine = "".concat(nextLine).concat(hyphenCharacter);
35293 lines.push(isLastLine ? nextLine : hyphenatedNextLine);
35294 currentLine = '';
35295 } else {
35296 currentLine = nextLine;
35297 }
35298 });
35299 return {
35300 hyphenatedStrings: lines,
35301 remainingWord: currentLine
35302 };
35303}, function (word, maxWidth) {
35304 var hyphenCharacter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '-';
35305 var config = arguments.length > 3 ? arguments[3] : undefined;
35306 return "".concat(word, "-").concat(maxWidth, "-").concat(hyphenCharacter, "-").concat(config.fontSize, "-").concat(config.fontWeight, "-").concat(config.fontFamily);
35307});
35308/**
35309 * This calculates the text's height, taking into account the wrap breaks and both the statically
35310 * configured height, width, and the length of the text (in pixels).
35311 *
35312 * If the wrapped text text has greater height, we extend the height, so it's value won't overflow.
35313 *
35314 * @param {any} text The text to measure
35315 * @param {any} config - The config for fontSize, fontFamily, and fontWeight all impacting the resulting size
35316 * @returns {any} - The height for the given text
35317 */
35318
35319var calculateTextHeight = function calculateTextHeight(text, config) {
35320 config = Object.assign({
35321 fontSize: 12,
35322 fontWeight: 400,
35323 fontFamily: 'Arial',
35324 margin: 15
35325 }, config);
35326 return calculateTextDimensions(text, config).height;
35327};
35328/**
35329 * This calculates the width of the given text, font size and family.
35330 *
35331 * @param {any} text - The text to calculate the width of
35332 * @param {any} config - The config for fontSize, fontFamily, and fontWeight all impacting the resulting size
35333 * @returns {any} - The width for the given text
35334 */
35335
35336var calculateTextWidth = function calculateTextWidth(text, config) {
35337 config = Object.assign({
35338 fontSize: 12,
35339 fontWeight: 400,
35340 fontFamily: 'Arial'
35341 }, config);
35342 return calculateTextDimensions(text, config).width;
35343};
35344/**
35345 * This calculates the dimensions of the given text, font size, font family, font weight, and margins.
35346 *
35347 * @param {any} text - The text to calculate the width of
35348 * @param {any} config - The config for fontSize, fontFamily, fontWeight, and margin all impacting
35349 * the resulting size
35350 * @returns - The width for the given text
35351 */
35352
35353var calculateTextDimensions = memoize(function (text, config) {
35354 config = Object.assign({
35355 fontSize: 12,
35356 fontWeight: 400,
35357 fontFamily: 'Arial'
35358 }, config);
35359 var _config = config,
35360 fontSize = _config.fontSize,
35361 fontFamily = _config.fontFamily,
35362 fontWeight = _config.fontWeight;
35363
35364 if (!text) {
35365 return {
35366 width: 0,
35367 height: 0
35368 };
35369 } // We can't really know if the user supplied font family will render on the user agent;
35370 // thus, we'll take the max width between the user supplied font family, and a default
35371 // of sans-serif.
35372
35373
35374 var fontFamilies = ['sans-serif', fontFamily];
35375 var lines = text.split(_diagrams_common_common__WEBPACK_IMPORTED_MODULE_5__["default"].lineBreakRegex);
35376 var dims = [];
35377 var body = (0,d3__WEBPACK_IMPORTED_MODULE_1__.select)('body'); // We don't want to leak DOM elements - if a removal operation isn't available
35378 // for any reason, do not continue.
35379
35380 if (!body.remove) {
35381 return {
35382 width: 0,
35383 height: 0,
35384 lineHeight: 0
35385 };
35386 }
35387
35388 var g = body.append('svg');
35389
35390 for (var _i = 0, _fontFamilies = fontFamilies; _i < _fontFamilies.length; _i++) {
35391 var _fontFamily = _fontFamilies[_i];
35392 var cheight = 0;
35393 var dim = {
35394 width: 0,
35395 height: 0,
35396 lineHeight: 0
35397 };
35398
35399 var _iterator = _createForOfIteratorHelper(lines),
35400 _step;
35401
35402 try {
35403 for (_iterator.s(); !(_step = _iterator.n()).done;) {
35404 var line = _step.value;
35405 var textObj = getTextObj();
35406 textObj.text = line;
35407 var textElem = drawSimpleText(g, textObj).style('font-size', fontSize).style('font-weight', fontWeight).style('font-family', _fontFamily);
35408 var bBox = (textElem._groups || textElem)[0][0].getBBox();
35409 dim.width = Math.round(Math.max(dim.width, bBox.width));
35410 cheight = Math.round(bBox.height);
35411 dim.height += cheight;
35412 dim.lineHeight = Math.round(Math.max(dim.lineHeight, cheight));
35413 }
35414 } catch (err) {
35415 _iterator.e(err);
35416 } finally {
35417 _iterator.f();
35418 }
35419
35420 dims.push(dim);
35421 }
35422
35423 g.remove();
35424 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;
35425 return dims[index];
35426}, function (text, config) {
35427 return "".concat(text, "-").concat(config.fontSize, "-").concat(config.fontWeight, "-").concat(config.fontFamily);
35428});
35429/**
35430 * Applys d3 attributes
35431 *
35432 * @param {any} d3Elem D3 Element to apply the attributes onto
35433 * @param {[string, string][]} attrs Object.keys equivalent format of key to value mapping of attributes
35434 */
35435
35436var d3Attrs = function d3Attrs(d3Elem, attrs) {
35437 var _iterator2 = _createForOfIteratorHelper(attrs),
35438 _step2;
35439
35440 try {
35441 for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
35442 var attr = _step2.value;
35443 d3Elem.attr(attr[0], attr[1]);
35444 }
35445 } catch (err) {
35446 _iterator2.e(err);
35447 } finally {
35448 _iterator2.f();
35449 }
35450};
35451/**
35452 * Gives attributes for an SVG's size given arguments
35453 *
35454 * @param {number} height The height of the SVG
35455 * @param {number} width The width of the SVG
35456 * @param {boolean} useMaxWidth Whether or not to use max-width and set width to 100%
35457 * @returns {Map<'height' | 'width' | 'style', string>} Attributes for the SVG
35458 */
35459
35460
35461var calculateSvgSizeAttrs = function calculateSvgSizeAttrs(height, width, useMaxWidth) {
35462 var attrs = new Map();
35463 attrs.set('height', height);
35464
35465 if (useMaxWidth) {
35466 attrs.set('width', '100%');
35467 attrs.set('style', "max-width: ".concat(width, "px;"));
35468 } else {
35469 attrs.set('width', width);
35470 }
35471
35472 return attrs;
35473};
35474/**
35475 * Applies attributes from `calculateSvgSizeAttrs`
35476 *
35477 * @param {SVGSVGElement} svgElem The SVG Element to configure
35478 * @param {number} height The height of the SVG
35479 * @param {number} width The width of the SVG
35480 * @param {boolean} useMaxWidth Whether or not to use max-width and set width to 100%
35481 */
35482
35483var configureSvgSize = function configureSvgSize(svgElem, height, width, useMaxWidth) {
35484 var attrs = calculateSvgSizeAttrs(height, width, useMaxWidth);
35485 d3Attrs(svgElem, attrs);
35486};
35487var setupGraphViewbox = function setupGraphViewbox(graph, svgElem, padding, useMaxWidth) {
35488 var svgBounds = svgElem.node().getBBox();
35489 var sWidth = svgBounds.width;
35490 var sHeight = svgBounds.height;
35491 var width = graph._label.width;
35492 var height = graph._label.height;
35493 var tx = 0;
35494 var ty = 0;
35495
35496 if (sWidth > width) {
35497 tx = (sWidth - width) / 2 + padding;
35498 width = sWidth + padding * 2;
35499 } else {
35500 if (Math.abs(sWidth - width) >= 2 * padding + 1) {
35501 width = width - padding;
35502 }
35503 }
35504
35505 if (sHeight > height) {
35506 ty = (sHeight - height) / 2 + padding;
35507 height = sHeight + padding * 2;
35508 }
35509
35510 configureSvgSize(svgElem, height, width, useMaxWidth); // Ensure the viewBox includes the whole svgBounds area with extra space for padding
35511
35512 var vBox = "0 0 ".concat(width, " ").concat(height);
35513 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('Graph.label', graph._label, 'swidth', sWidth, 'sheight', sHeight, 'width', width, 'height', height, 'tx', tx, 'ty', ty, 'vBox', vBox);
35514 svgElem.attr('viewBox', vBox);
35515 svgElem.select('g').attr('transform', "translate(".concat(tx, ", ").concat(ty, ")"));
35516};
35517var initIdGenerator = /*#__PURE__*/function () {
35518 function iterator(deterministic, seed) {
35519 _classCallCheck(this, iterator);
35520
35521 this.deterministic = deterministic;
35522 this.seed = seed;
35523 this.count = seed ? seed.length : 0;
35524 }
35525
35526 _createClass(iterator, [{
35527 key: "next",
35528 value: function next() {
35529 if (!this.deterministic) return Date.now();
35530 return this.count++;
35531 }
35532 }]);
35533
35534 return iterator;
35535}();
35536var decoder;
35537/**
35538 * Decodes HTML, source: {@link https://github.com/shrpne/entity-decode/blob/v2.0.1/browser.js}
35539 *
35540 * @param {string} html HTML as a string
35541 * @returns Unescaped HTML
35542 */
35543
35544var entityDecode = function entityDecode(html) {
35545 decoder = decoder || document.createElement('div'); // Escape HTML before decoding for HTML Entities
35546
35547 html = escape(html).replace(/%26/g, '&').replace(/%23/g, '#').replace(/%3B/g, ';'); // decoding
35548
35549 decoder.innerHTML = html;
35550 return unescape(decoder.textContent);
35551};
35552/**
35553 * Sanitizes directive objects
35554 *
35555 * @param {object} args Directive's JSON
35556 */
35557
35558var directiveSanitizer = function directiveSanitizer(args) {
35559 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('directiveSanitizer called with', args);
35560
35561 if (_typeof(args) === 'object') {
35562 // check for array
35563 if (args.length) {
35564 args.forEach(function (arg) {
35565 return directiveSanitizer(arg);
35566 });
35567 } else {
35568 // This is an object
35569 Object.keys(args).forEach(function (key) {
35570 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('Checking key', key);
35571
35572 if (key.indexOf('__') === 0) {
35573 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('sanitize deleting __ option', key);
35574 delete args[key];
35575 }
35576
35577 if (key.indexOf('proto') >= 0) {
35578 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('sanitize deleting proto option', key);
35579 delete args[key];
35580 }
35581
35582 if (key.indexOf('constr') >= 0) {
35583 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('sanitize deleting constr option', key);
35584 delete args[key];
35585 }
35586
35587 if (key.indexOf('themeCSS') >= 0) {
35588 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('sanitizing themeCss option');
35589 args[key] = sanitizeCss(args[key]);
35590 }
35591
35592 if (key.indexOf('fontFamily') >= 0) {
35593 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('sanitizing fontFamily option');
35594 args[key] = sanitizeCss(args[key]);
35595 }
35596
35597 if (key.indexOf('altFontFamily') >= 0) {
35598 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('sanitizing altFontFamily option');
35599 args[key] = sanitizeCss(args[key]);
35600 }
35601
35602 if (_defaultConfig__WEBPACK_IMPORTED_MODULE_6__.configKeys.indexOf(key) < 0) {
35603 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('sanitize deleting option', key);
35604 delete args[key];
35605 } else {
35606 if (_typeof(args[key]) === 'object') {
35607 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('sanitize deleting object', key);
35608 directiveSanitizer(args[key]);
35609 }
35610 }
35611 });
35612 }
35613 }
35614
35615 if (args.themeVariables) {
35616 var kArr = Object.keys(args.themeVariables);
35617
35618 for (var i = 0; i < kArr.length; i++) {
35619 var k = kArr[i];
35620 var val = args.themeVariables[k];
35621
35622 if (val && val.match && !val.match(/^[a-zA-Z0-9#,";()%. ]+$/)) {
35623 args.themeVariables[k] = '';
35624 }
35625 }
35626 }
35627
35628 _logger__WEBPACK_IMPORTED_MODULE_4__.log.debug('After sanitization', args);
35629};
35630var sanitizeCss = function sanitizeCss(str) {
35631 var startCnt = 0;
35632 var endCnt = 0;
35633
35634 for (var i = 0; i < str.length; i++) {
35635 if (startCnt < endCnt) {
35636 return '{ /* ERROR: Unbalanced CSS */ }';
35637 }
35638
35639 if (str[i] === '{') {
35640 startCnt++;
35641 } else if (str[i] === '}') {
35642 endCnt++;
35643 }
35644 }
35645
35646 if (startCnt !== endCnt) {
35647 return '{ /* ERROR: Unbalanced CSS */ }';
35648 } // Todo add more checks here
35649
35650
35651 return str;
35652};
35653/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
35654 assignWithDepth: _assignWithDepth__WEBPACK_IMPORTED_MODULE_2__["default"],
35655 wrapLabel: wrapLabel,
35656 calculateTextHeight: calculateTextHeight,
35657 calculateTextWidth: calculateTextWidth,
35658 calculateTextDimensions: calculateTextDimensions,
35659 calculateSvgSizeAttrs: calculateSvgSizeAttrs,
35660 configureSvgSize: configureSvgSize,
35661 setupGraphViewbox: setupGraphViewbox,
35662 detectInit: detectInit,
35663 detectDirective: detectDirective,
35664 isSubstringInArray: isSubstringInArray,
35665 interpolateToCurve: interpolateToCurve,
35666 calcLabelPosition: calcLabelPosition,
35667 calcCardinalityPosition: calcCardinalityPosition,
35668 calcTerminalLabelPosition: calcTerminalLabelPosition,
35669 formatUrl: formatUrl,
35670 getStylesFromArray: getStylesFromArray,
35671 generateId: generateId,
35672 random: random,
35673 memoize: memoize,
35674 runFunc: runFunc,
35675 entityDecode: entityDecode,
35676 initIdGenerator: initIdGenerator,
35677 directiveSanitizer: directiveSanitizer,
35678 sanitizeCss: sanitizeCss
35679});
35680
35681/***/ }),
35682
35683/***/ "./node_modules/dagre-d3/index.js":
35684/*!****************************************!*\
35685 !*** ./node_modules/dagre-d3/index.js ***!
35686 \****************************************/
35687/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
35688
35689/**
35690 * @license
35691 * Copyright (c) 2012-2013 Chris Pettitt
35692 *
35693 * Permission is hereby granted, free of charge, to any person obtaining a copy
35694 * of this software and associated documentation files (the "Software"), to deal
35695 * in the Software without restriction, including without limitation the rights
35696 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
35697 * copies of the Software, and to permit persons to whom the Software is
35698 * furnished to do so, subject to the following conditions:
35699 *
35700 * The above copyright notice and this permission notice shall be included in
35701 * all copies or substantial portions of the Software.
35702 *
35703 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
35704 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
35705 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
35706 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
35707 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
35708 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
35709 * THE SOFTWARE.
35710 */
35711module.exports = {
35712 graphlib: __webpack_require__(/*! ./lib/graphlib */ "./node_modules/dagre-d3/lib/graphlib.js"),
35713 dagre: __webpack_require__(/*! ./lib/dagre */ "./node_modules/dagre-d3/lib/dagre.js"),
35714 intersect: __webpack_require__(/*! ./lib/intersect */ "./node_modules/dagre-d3/lib/intersect/index.js"),
35715 render: __webpack_require__(/*! ./lib/render */ "./node_modules/dagre-d3/lib/render.js"),
35716 util: __webpack_require__(/*! ./lib/util */ "./node_modules/dagre-d3/lib/util.js"),
35717 version: __webpack_require__(/*! ./lib/version */ "./node_modules/dagre-d3/lib/version.js")
35718};
35719
35720
35721/***/ }),
35722
35723/***/ "./node_modules/dagre-d3/lib/arrows.js":
35724/*!*********************************************!*\
35725 !*** ./node_modules/dagre-d3/lib/arrows.js ***!
35726 \*********************************************/
35727/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
35728
35729var util = __webpack_require__(/*! ./util */ "./node_modules/dagre-d3/lib/util.js");
35730
35731module.exports = {
35732 "default": normal,
35733 "normal": normal,
35734 "vee": vee,
35735 "undirected": undirected
35736};
35737
35738function normal(parent, id, edge, type) {
35739 var marker = parent.append("marker")
35740 .attr("id", id)
35741 .attr("viewBox", "0 0 10 10")
35742 .attr("refX", 9)
35743 .attr("refY", 5)
35744 .attr("markerUnits", "strokeWidth")
35745 .attr("markerWidth", 8)
35746 .attr("markerHeight", 6)
35747 .attr("orient", "auto");
35748
35749 var path = marker.append("path")
35750 .attr("d", "M 0 0 L 10 5 L 0 10 z")
35751 .style("stroke-width", 1)
35752 .style("stroke-dasharray", "1,0");
35753 util.applyStyle(path, edge[type + "Style"]);
35754 if (edge[type + "Class"]) {
35755 path.attr("class", edge[type + "Class"]);
35756 }
35757}
35758
35759function vee(parent, id, edge, type) {
35760 var marker = parent.append("marker")
35761 .attr("id", id)
35762 .attr("viewBox", "0 0 10 10")
35763 .attr("refX", 9)
35764 .attr("refY", 5)
35765 .attr("markerUnits", "strokeWidth")
35766 .attr("markerWidth", 8)
35767 .attr("markerHeight", 6)
35768 .attr("orient", "auto");
35769
35770 var path = marker.append("path")
35771 .attr("d", "M 0 0 L 10 5 L 0 10 L 4 5 z")
35772 .style("stroke-width", 1)
35773 .style("stroke-dasharray", "1,0");
35774 util.applyStyle(path, edge[type + "Style"]);
35775 if (edge[type + "Class"]) {
35776 path.attr("class", edge[type + "Class"]);
35777 }
35778}
35779
35780function undirected(parent, id, edge, type) {
35781 var marker = parent.append("marker")
35782 .attr("id", id)
35783 .attr("viewBox", "0 0 10 10")
35784 .attr("refX", 9)
35785 .attr("refY", 5)
35786 .attr("markerUnits", "strokeWidth")
35787 .attr("markerWidth", 8)
35788 .attr("markerHeight", 6)
35789 .attr("orient", "auto");
35790
35791 var path = marker.append("path")
35792 .attr("d", "M 0 5 L 10 5")
35793 .style("stroke-width", 1)
35794 .style("stroke-dasharray", "1,0");
35795 util.applyStyle(path, edge[type + "Style"]);
35796 if (edge[type + "Class"]) {
35797 path.attr("class", edge[type + "Class"]);
35798 }
35799}
35800
35801
35802/***/ }),
35803
35804/***/ "./node_modules/dagre-d3/lib/create-clusters.js":
35805/*!******************************************************!*\
35806 !*** ./node_modules/dagre-d3/lib/create-clusters.js ***!
35807 \******************************************************/
35808/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
35809
35810var util = __webpack_require__(/*! ./util */ "./node_modules/dagre-d3/lib/util.js");
35811var d3 = __webpack_require__(/*! ./d3 */ "./node_modules/dagre-d3/lib/d3.js");
35812var addLabel = __webpack_require__(/*! ./label/add-label */ "./node_modules/dagre-d3/lib/label/add-label.js");
35813
35814module.exports = createClusters;
35815
35816function createClusters(selection, g) {
35817 var clusters = g.nodes().filter(function(v) { return util.isSubgraph(g, v); });
35818 var svgClusters = selection.selectAll("g.cluster")
35819 .data(clusters, function(v) { return v; });
35820
35821 svgClusters.selectAll("*").remove();
35822 svgClusters.enter().append("g")
35823 .attr("class", "cluster")
35824 .attr("id",function(v){
35825 var node = g.node(v);
35826 return node.id;
35827 })
35828 .style("opacity", 0);
35829
35830 svgClusters = selection.selectAll("g.cluster");
35831
35832 util.applyTransition(svgClusters, g)
35833 .style("opacity", 1);
35834
35835 svgClusters.each(function(v) {
35836 var node = g.node(v);
35837 var thisGroup = d3.select(this);
35838 d3.select(this).append("rect");
35839 var labelGroup = thisGroup.append("g").attr("class", "label");
35840 addLabel(labelGroup, node, node.clusterLabelPos);
35841 });
35842
35843 svgClusters.selectAll("rect").each(function(c) {
35844 var node = g.node(c);
35845 var domCluster = d3.select(this);
35846 util.applyStyle(domCluster, node.style);
35847 });
35848
35849 var exitSelection;
35850
35851 if (svgClusters.exit) {
35852 exitSelection = svgClusters.exit();
35853 } else {
35854 exitSelection = svgClusters.selectAll(null); // empty selection
35855 }
35856
35857 util.applyTransition(exitSelection, g)
35858 .style("opacity", 0)
35859 .remove();
35860
35861 return svgClusters;
35862}
35863
35864
35865/***/ }),
35866
35867/***/ "./node_modules/dagre-d3/lib/create-edge-labels.js":
35868/*!*********************************************************!*\
35869 !*** ./node_modules/dagre-d3/lib/create-edge-labels.js ***!
35870 \*********************************************************/
35871/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
35872
35873"use strict";
35874
35875
35876var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre-d3/lib/lodash.js");
35877var addLabel = __webpack_require__(/*! ./label/add-label */ "./node_modules/dagre-d3/lib/label/add-label.js");
35878var util = __webpack_require__(/*! ./util */ "./node_modules/dagre-d3/lib/util.js");
35879var d3 = __webpack_require__(/*! ./d3 */ "./node_modules/dagre-d3/lib/d3.js");
35880
35881module.exports = createEdgeLabels;
35882
35883function createEdgeLabels(selection, g) {
35884 var svgEdgeLabels = selection.selectAll("g.edgeLabel")
35885 .data(g.edges(), function(e) { return util.edgeToId(e); })
35886 .classed("update", true);
35887
35888 svgEdgeLabels.exit().remove();
35889 svgEdgeLabels.enter().append("g")
35890 .classed("edgeLabel", true)
35891 .style("opacity", 0);
35892
35893 svgEdgeLabels = selection.selectAll("g.edgeLabel");
35894
35895 svgEdgeLabels.each(function(e) {
35896 var root = d3.select(this);
35897 root.select(".label").remove();
35898 var edge = g.edge(e);
35899 var label = addLabel(root, g.edge(e), 0, 0).classed("label", true);
35900 var bbox = label.node().getBBox();
35901
35902 if (edge.labelId) { label.attr("id", edge.labelId); }
35903 if (!_.has(edge, "width")) { edge.width = bbox.width; }
35904 if (!_.has(edge, "height")) { edge.height = bbox.height; }
35905 });
35906
35907 var exitSelection;
35908
35909 if (svgEdgeLabels.exit) {
35910 exitSelection = svgEdgeLabels.exit();
35911 } else {
35912 exitSelection = svgEdgeLabels.selectAll(null); // empty selection
35913 }
35914
35915 util.applyTransition(exitSelection, g)
35916 .style("opacity", 0)
35917 .remove();
35918
35919 return svgEdgeLabels;
35920}
35921
35922
35923/***/ }),
35924
35925/***/ "./node_modules/dagre-d3/lib/create-edge-paths.js":
35926/*!********************************************************!*\
35927 !*** ./node_modules/dagre-d3/lib/create-edge-paths.js ***!
35928 \********************************************************/
35929/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
35930
35931"use strict";
35932
35933
35934var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre-d3/lib/lodash.js");
35935var intersectNode = __webpack_require__(/*! ./intersect/intersect-node */ "./node_modules/dagre-d3/lib/intersect/intersect-node.js");
35936var util = __webpack_require__(/*! ./util */ "./node_modules/dagre-d3/lib/util.js");
35937var d3 = __webpack_require__(/*! ./d3 */ "./node_modules/dagre-d3/lib/d3.js");
35938module.exports = createEdgePaths;
35939
35940function createEdgePaths(selection, g, arrows) {
35941 var previousPaths = selection.selectAll("g.edgePath")
35942 .data(g.edges(), function(e) { return util.edgeToId(e); })
35943 .classed("update", true);
35944
35945 var newPaths = enter(previousPaths, g);
35946 exit(previousPaths, g);
35947
35948 var svgPaths = previousPaths.merge !== undefined ? previousPaths.merge(newPaths) : previousPaths;
35949 util.applyTransition(svgPaths, g)
35950 .style("opacity", 1);
35951
35952 // Save DOM element in the path group, and set ID and class
35953 svgPaths.each(function(e) {
35954 var domEdge = d3.select(this);
35955 var edge = g.edge(e);
35956 edge.elem = this;
35957
35958 if (edge.id) {
35959 domEdge.attr("id", edge.id);
35960 }
35961
35962 util.applyClass(domEdge, edge["class"],
35963 (domEdge.classed("update") ? "update " : "") + "edgePath");
35964 });
35965
35966 svgPaths.selectAll("path.path")
35967 .each(function(e) {
35968 var edge = g.edge(e);
35969 edge.arrowheadId = _.uniqueId("arrowhead");
35970
35971 var domEdge = d3.select(this)
35972 .attr("marker-end", function() {
35973 return "url(" + makeFragmentRef(location.href, edge.arrowheadId) + ")";
35974 })
35975 .style("fill", "none");
35976
35977 util.applyTransition(domEdge, g)
35978 .attr("d", function(e) { return calcPoints(g, e); });
35979
35980 util.applyStyle(domEdge, edge.style);
35981 });
35982
35983 svgPaths.selectAll("defs *").remove();
35984 svgPaths.selectAll("defs")
35985 .each(function(e) {
35986 var edge = g.edge(e);
35987 var arrowhead = arrows[edge.arrowhead];
35988 arrowhead(d3.select(this), edge.arrowheadId, edge, "arrowhead");
35989 });
35990
35991 return svgPaths;
35992}
35993
35994function makeFragmentRef(url, fragmentId) {
35995 var baseUrl = url.split("#")[0];
35996 return baseUrl + "#" + fragmentId;
35997}
35998
35999function calcPoints(g, e) {
36000 var edge = g.edge(e);
36001 var tail = g.node(e.v);
36002 var head = g.node(e.w);
36003 var points = edge.points.slice(1, edge.points.length - 1);
36004 points.unshift(intersectNode(tail, points[0]));
36005 points.push(intersectNode(head, points[points.length - 1]));
36006
36007 return createLine(edge, points);
36008}
36009
36010function createLine(edge, points) {
36011 var line = (d3.line || d3.svg.line)()
36012 .x(function(d) { return d.x; })
36013 .y(function(d) { return d.y; });
36014
36015 (line.curve || line.interpolate)(edge.curve);
36016
36017 return line(points);
36018}
36019
36020function getCoords(elem) {
36021 var bbox = elem.getBBox();
36022 var matrix = elem.ownerSVGElement.getScreenCTM()
36023 .inverse()
36024 .multiply(elem.getScreenCTM())
36025 .translate(bbox.width / 2, bbox.height / 2);
36026 return { x: matrix.e, y: matrix.f };
36027}
36028
36029function enter(svgPaths, g) {
36030 var svgPathsEnter = svgPaths.enter().append("g")
36031 .attr("class", "edgePath")
36032 .style("opacity", 0);
36033 svgPathsEnter.append("path")
36034 .attr("class", "path")
36035 .attr("d", function(e) {
36036 var edge = g.edge(e);
36037 var sourceElem = g.node(e.v).elem;
36038 var points = _.range(edge.points.length).map(function() { return getCoords(sourceElem); });
36039 return createLine(edge, points);
36040 });
36041 svgPathsEnter.append("defs");
36042 return svgPathsEnter;
36043}
36044
36045function exit(svgPaths, g) {
36046 var svgPathExit = svgPaths.exit();
36047 util.applyTransition(svgPathExit, g)
36048 .style("opacity", 0)
36049 .remove();
36050}
36051
36052
36053/***/ }),
36054
36055/***/ "./node_modules/dagre-d3/lib/create-nodes.js":
36056/*!***************************************************!*\
36057 !*** ./node_modules/dagre-d3/lib/create-nodes.js ***!
36058 \***************************************************/
36059/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
36060
36061"use strict";
36062
36063
36064var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre-d3/lib/lodash.js");
36065var addLabel = __webpack_require__(/*! ./label/add-label */ "./node_modules/dagre-d3/lib/label/add-label.js");
36066var util = __webpack_require__(/*! ./util */ "./node_modules/dagre-d3/lib/util.js");
36067var d3 = __webpack_require__(/*! ./d3 */ "./node_modules/dagre-d3/lib/d3.js");
36068
36069module.exports = createNodes;
36070
36071function createNodes(selection, g, shapes) {
36072 var simpleNodes = g.nodes().filter(function(v) { return !util.isSubgraph(g, v); });
36073 var svgNodes = selection.selectAll("g.node")
36074 .data(simpleNodes, function(v) { return v; })
36075 .classed("update", true);
36076
36077 svgNodes.exit().remove();
36078
36079 svgNodes.enter().append("g")
36080 .attr("class", "node")
36081 .style("opacity", 0);
36082
36083 svgNodes = selection.selectAll("g.node");
36084
36085 svgNodes.each(function(v) {
36086 var node = g.node(v);
36087 var thisGroup = d3.select(this);
36088 util.applyClass(thisGroup, node["class"],
36089 (thisGroup.classed("update") ? "update " : "") + "node");
36090
36091 thisGroup.select("g.label").remove();
36092 var labelGroup = thisGroup.append("g").attr("class", "label");
36093 var labelDom = addLabel(labelGroup, node);
36094 var shape = shapes[node.shape];
36095 var bbox = _.pick(labelDom.node().getBBox(), "width", "height");
36096
36097 node.elem = this;
36098
36099 if (node.id) { thisGroup.attr("id", node.id); }
36100 if (node.labelId) { labelGroup.attr("id", node.labelId); }
36101
36102 if (_.has(node, "width")) { bbox.width = node.width; }
36103 if (_.has(node, "height")) { bbox.height = node.height; }
36104
36105 bbox.width += node.paddingLeft + node.paddingRight;
36106 bbox.height += node.paddingTop + node.paddingBottom;
36107 labelGroup.attr("transform", "translate(" +
36108 ((node.paddingLeft - node.paddingRight) / 2) + "," +
36109 ((node.paddingTop - node.paddingBottom) / 2) + ")");
36110
36111 var root = d3.select(this);
36112 root.select(".label-container").remove();
36113 var shapeSvg = shape(root, bbox, node).classed("label-container", true);
36114 util.applyStyle(shapeSvg, node.style);
36115
36116 var shapeBBox = shapeSvg.node().getBBox();
36117 node.width = shapeBBox.width;
36118 node.height = shapeBBox.height;
36119 });
36120
36121 var exitSelection;
36122
36123 if (svgNodes.exit) {
36124 exitSelection = svgNodes.exit();
36125 } else {
36126 exitSelection = svgNodes.selectAll(null); // empty selection
36127 }
36128
36129 util.applyTransition(exitSelection, g)
36130 .style("opacity", 0)
36131 .remove();
36132
36133 return svgNodes;
36134}
36135
36136
36137/***/ }),
36138
36139/***/ "./node_modules/dagre-d3/lib/d3.js":
36140/*!*****************************************!*\
36141 !*** ./node_modules/dagre-d3/lib/d3.js ***!
36142 \*****************************************/
36143/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
36144
36145// Stub to get D3 either via NPM or from the global object
36146var d3;
36147
36148if (!d3) {
36149 if (true) {
36150 try {
36151 d3 = __webpack_require__(/*! d3 */ "./node_modules/d3/src/index.js");
36152 }
36153 catch (e) {
36154 // continue regardless of error
36155 }
36156 }
36157}
36158
36159if (!d3) {
36160 d3 = window.d3;
36161}
36162
36163module.exports = d3;
36164
36165
36166/***/ }),
36167
36168/***/ "./node_modules/dagre-d3/lib/dagre.js":
36169/*!********************************************!*\
36170 !*** ./node_modules/dagre-d3/lib/dagre.js ***!
36171 \********************************************/
36172/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
36173
36174/* global window */
36175
36176var dagre;
36177
36178if (true) {
36179 try {
36180 dagre = __webpack_require__(/*! dagre */ "./node_modules/dagre/index.js");
36181 } catch (e) {
36182 // continue regardless of error
36183 }
36184}
36185
36186if (!dagre) {
36187 dagre = window.dagre;
36188}
36189
36190module.exports = dagre;
36191
36192
36193/***/ }),
36194
36195/***/ "./node_modules/dagre-d3/lib/graphlib.js":
36196/*!***********************************************!*\
36197 !*** ./node_modules/dagre-d3/lib/graphlib.js ***!
36198 \***********************************************/
36199/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
36200
36201/* global window */
36202
36203var graphlib;
36204
36205if (true) {
36206 try {
36207 graphlib = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
36208 }
36209 catch (e) {
36210 // continue regardless of error
36211 }
36212}
36213
36214if (!graphlib) {
36215 graphlib = window.graphlib;
36216}
36217
36218module.exports = graphlib;
36219
36220
36221/***/ }),
36222
36223/***/ "./node_modules/dagre-d3/lib/intersect/index.js":
36224/*!******************************************************!*\
36225 !*** ./node_modules/dagre-d3/lib/intersect/index.js ***!
36226 \******************************************************/
36227/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
36228
36229module.exports = {
36230 node: __webpack_require__(/*! ./intersect-node */ "./node_modules/dagre-d3/lib/intersect/intersect-node.js"),
36231 circle: __webpack_require__(/*! ./intersect-circle */ "./node_modules/dagre-d3/lib/intersect/intersect-circle.js"),
36232 ellipse: __webpack_require__(/*! ./intersect-ellipse */ "./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js"),
36233 polygon: __webpack_require__(/*! ./intersect-polygon */ "./node_modules/dagre-d3/lib/intersect/intersect-polygon.js"),
36234 rect: __webpack_require__(/*! ./intersect-rect */ "./node_modules/dagre-d3/lib/intersect/intersect-rect.js")
36235};
36236
36237
36238/***/ }),
36239
36240/***/ "./node_modules/dagre-d3/lib/intersect/intersect-circle.js":
36241/*!*****************************************************************!*\
36242 !*** ./node_modules/dagre-d3/lib/intersect/intersect-circle.js ***!
36243 \*****************************************************************/
36244/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
36245
36246var intersectEllipse = __webpack_require__(/*! ./intersect-ellipse */ "./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js");
36247
36248module.exports = intersectCircle;
36249
36250function intersectCircle(node, rx, point) {
36251 return intersectEllipse(node, rx, rx, point);
36252}
36253
36254
36255/***/ }),
36256
36257/***/ "./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js":
36258/*!******************************************************************!*\
36259 !*** ./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js ***!
36260 \******************************************************************/
36261/***/ ((module) => {
36262
36263module.exports = intersectEllipse;
36264
36265function intersectEllipse(node, rx, ry, point) {
36266 // Formulae from: http://mathworld.wolfram.com/Ellipse-LineIntersection.html
36267
36268 var cx = node.x;
36269 var cy = node.y;
36270
36271 var px = cx - point.x;
36272 var py = cy - point.y;
36273
36274 var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);
36275
36276 var dx = Math.abs(rx * ry * px / det);
36277 if (point.x < cx) {
36278 dx = -dx;
36279 }
36280 var dy = Math.abs(rx * ry * py / det);
36281 if (point.y < cy) {
36282 dy = -dy;
36283 }
36284
36285 return {x: cx + dx, y: cy + dy};
36286}
36287
36288
36289
36290/***/ }),
36291
36292/***/ "./node_modules/dagre-d3/lib/intersect/intersect-line.js":
36293/*!***************************************************************!*\
36294 !*** ./node_modules/dagre-d3/lib/intersect/intersect-line.js ***!
36295 \***************************************************************/
36296/***/ ((module) => {
36297
36298module.exports = intersectLine;
36299
36300/*
36301 * Returns the point at which two lines, p and q, intersect or returns
36302 * undefined if they do not intersect.
36303 */
36304function intersectLine(p1, p2, q1, q2) {
36305 // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994,
36306 // p7 and p473.
36307
36308 var a1, a2, b1, b2, c1, c2;
36309 var r1, r2 , r3, r4;
36310 var denom, offset, num;
36311 var x, y;
36312
36313 // Compute a1, b1, c1, where line joining points 1 and 2 is F(x,y) = a1 x +
36314 // b1 y + c1 = 0.
36315 a1 = p2.y - p1.y;
36316 b1 = p1.x - p2.x;
36317 c1 = (p2.x * p1.y) - (p1.x * p2.y);
36318
36319 // Compute r3 and r4.
36320 r3 = ((a1 * q1.x) + (b1 * q1.y) + c1);
36321 r4 = ((a1 * q2.x) + (b1 * q2.y) + c1);
36322
36323 // Check signs of r3 and r4. If both point 3 and point 4 lie on
36324 // same side of line 1, the line segments do not intersect.
36325 if ((r3 !== 0) && (r4 !== 0) && sameSign(r3, r4)) {
36326 return /*DONT_INTERSECT*/;
36327 }
36328
36329 // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0
36330 a2 = q2.y - q1.y;
36331 b2 = q1.x - q2.x;
36332 c2 = (q2.x * q1.y) - (q1.x * q2.y);
36333
36334 // Compute r1 and r2
36335 r1 = (a2 * p1.x) + (b2 * p1.y) + c2;
36336 r2 = (a2 * p2.x) + (b2 * p2.y) + c2;
36337
36338 // Check signs of r1 and r2. If both point 1 and point 2 lie
36339 // on same side of second line segment, the line segments do
36340 // not intersect.
36341 if ((r1 !== 0) && (r2 !== 0) && (sameSign(r1, r2))) {
36342 return /*DONT_INTERSECT*/;
36343 }
36344
36345 // Line segments intersect: compute intersection point.
36346 denom = (a1 * b2) - (a2 * b1);
36347 if (denom === 0) {
36348 return /*COLLINEAR*/;
36349 }
36350
36351 offset = Math.abs(denom / 2);
36352
36353 // The denom/2 is to get rounding instead of truncating. It
36354 // is added or subtracted to the numerator, depending upon the
36355 // sign of the numerator.
36356 num = (b1 * c2) - (b2 * c1);
36357 x = (num < 0) ? ((num - offset) / denom) : ((num + offset) / denom);
36358
36359 num = (a2 * c1) - (a1 * c2);
36360 y = (num < 0) ? ((num - offset) / denom) : ((num + offset) / denom);
36361
36362 return { x: x, y: y };
36363}
36364
36365function sameSign(r1, r2) {
36366 return r1 * r2 > 0;
36367}
36368
36369
36370/***/ }),
36371
36372/***/ "./node_modules/dagre-d3/lib/intersect/intersect-node.js":
36373/*!***************************************************************!*\
36374 !*** ./node_modules/dagre-d3/lib/intersect/intersect-node.js ***!
36375 \***************************************************************/
36376/***/ ((module) => {
36377
36378module.exports = intersectNode;
36379
36380function intersectNode(node, point) {
36381 return node.intersect(point);
36382}
36383
36384
36385/***/ }),
36386
36387/***/ "./node_modules/dagre-d3/lib/intersect/intersect-polygon.js":
36388/*!******************************************************************!*\
36389 !*** ./node_modules/dagre-d3/lib/intersect/intersect-polygon.js ***!
36390 \******************************************************************/
36391/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
36392
36393/* eslint "no-console": off */
36394
36395var intersectLine = __webpack_require__(/*! ./intersect-line */ "./node_modules/dagre-d3/lib/intersect/intersect-line.js");
36396
36397module.exports = intersectPolygon;
36398
36399/*
36400 * Returns the point ({x, y}) at which the point argument intersects with the
36401 * node argument assuming that it has the shape specified by polygon.
36402 */
36403function intersectPolygon(node, polyPoints, point) {
36404 var x1 = node.x;
36405 var y1 = node.y;
36406
36407 var intersections = [];
36408
36409 var minX = Number.POSITIVE_INFINITY;
36410 var minY = Number.POSITIVE_INFINITY;
36411 polyPoints.forEach(function(entry) {
36412 minX = Math.min(minX, entry.x);
36413 minY = Math.min(minY, entry.y);
36414 });
36415
36416 var left = x1 - node.width / 2 - minX;
36417 var top = y1 - node.height / 2 - minY;
36418
36419 for (var i = 0; i < polyPoints.length; i++) {
36420 var p1 = polyPoints[i];
36421 var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];
36422 var intersect = intersectLine(node, point,
36423 {x: left + p1.x, y: top + p1.y}, {x: left + p2.x, y: top + p2.y});
36424 if (intersect) {
36425 intersections.push(intersect);
36426 }
36427 }
36428
36429 if (!intersections.length) {
36430 console.log("NO INTERSECTION FOUND, RETURN NODE CENTER", node);
36431 return node;
36432 }
36433
36434 if (intersections.length > 1) {
36435 // More intersections, find the one nearest to edge end point
36436 intersections.sort(function(p, q) {
36437 var pdx = p.x - point.x;
36438 var pdy = p.y - point.y;
36439 var distp = Math.sqrt(pdx * pdx + pdy * pdy);
36440
36441 var qdx = q.x - point.x;
36442 var qdy = q.y - point.y;
36443 var distq = Math.sqrt(qdx * qdx + qdy * qdy);
36444
36445 return (distp < distq) ? -1 : (distp === distq ? 0 : 1);
36446 });
36447 }
36448 return intersections[0];
36449}
36450
36451
36452/***/ }),
36453
36454/***/ "./node_modules/dagre-d3/lib/intersect/intersect-rect.js":
36455/*!***************************************************************!*\
36456 !*** ./node_modules/dagre-d3/lib/intersect/intersect-rect.js ***!
36457 \***************************************************************/
36458/***/ ((module) => {
36459
36460module.exports = intersectRect;
36461
36462function intersectRect(node, point) {
36463 var x = node.x;
36464 var y = node.y;
36465
36466 // Rectangle intersection algorithm from:
36467 // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes
36468 var dx = point.x - x;
36469 var dy = point.y - y;
36470 var w = node.width / 2;
36471 var h = node.height / 2;
36472
36473 var sx, sy;
36474 if (Math.abs(dy) * w > Math.abs(dx) * h) {
36475 // Intersection is top or bottom of rect.
36476 if (dy < 0) {
36477 h = -h;
36478 }
36479 sx = dy === 0 ? 0 : h * dx / dy;
36480 sy = h;
36481 } else {
36482 // Intersection is left or right of rect.
36483 if (dx < 0) {
36484 w = -w;
36485 }
36486 sx = w;
36487 sy = dx === 0 ? 0 : w * dy / dx;
36488 }
36489
36490 return {x: x + sx, y: y + sy};
36491}
36492
36493
36494/***/ }),
36495
36496/***/ "./node_modules/dagre-d3/lib/label/add-html-label.js":
36497/*!***********************************************************!*\
36498 !*** ./node_modules/dagre-d3/lib/label/add-html-label.js ***!
36499 \***********************************************************/
36500/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
36501
36502var util = __webpack_require__(/*! ../util */ "./node_modules/dagre-d3/lib/util.js");
36503
36504module.exports = addHtmlLabel;
36505
36506function addHtmlLabel(root, node) {
36507 var fo = root
36508 .append("foreignObject")
36509 .attr("width", "100000");
36510
36511 var div = fo
36512 .append("xhtml:div");
36513 div.attr("xmlns", "http://www.w3.org/1999/xhtml");
36514
36515 var label = node.label;
36516 switch(typeof label) {
36517 case "function":
36518 div.insert(label);
36519 break;
36520 case "object":
36521 // Currently we assume this is a DOM object.
36522 div.insert(function() { return label; });
36523 break;
36524 default: div.html(label);
36525 }
36526
36527 util.applyStyle(div, node.labelStyle);
36528 div.style("display", "inline-block");
36529 // Fix for firefox
36530 div.style("white-space", "nowrap");
36531
36532 var client = div.node().getBoundingClientRect();
36533 fo
36534 .attr("width", client.width)
36535 .attr("height", client.height);
36536
36537 return fo;
36538}
36539
36540
36541/***/ }),
36542
36543/***/ "./node_modules/dagre-d3/lib/label/add-label.js":
36544/*!******************************************************!*\
36545 !*** ./node_modules/dagre-d3/lib/label/add-label.js ***!
36546 \******************************************************/
36547/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
36548
36549var addTextLabel = __webpack_require__(/*! ./add-text-label */ "./node_modules/dagre-d3/lib/label/add-text-label.js");
36550var addHtmlLabel = __webpack_require__(/*! ./add-html-label */ "./node_modules/dagre-d3/lib/label/add-html-label.js");
36551var addSVGLabel = __webpack_require__(/*! ./add-svg-label */ "./node_modules/dagre-d3/lib/label/add-svg-label.js");
36552
36553module.exports = addLabel;
36554
36555function addLabel(root, node, location) {
36556 var label = node.label;
36557 var labelSvg = root.append("g");
36558
36559 // Allow the label to be a string, a function that returns a DOM element, or
36560 // a DOM element itself.
36561 if (node.labelType === "svg") {
36562 addSVGLabel(labelSvg, node);
36563 } else if (typeof label !== "string" || node.labelType === "html") {
36564 addHtmlLabel(labelSvg, node);
36565 } else {
36566 addTextLabel(labelSvg, node);
36567 }
36568
36569 var labelBBox = labelSvg.node().getBBox();
36570 var y;
36571 switch(location) {
36572 case "top":
36573 y = (-node.height / 2);
36574 break;
36575 case "bottom":
36576 y = (node.height / 2) - labelBBox.height;
36577 break;
36578 default:
36579 y = (-labelBBox.height / 2);
36580 }
36581 labelSvg.attr(
36582 "transform",
36583 "translate(" + (-labelBBox.width / 2) + "," + y + ")");
36584
36585 return labelSvg;
36586}
36587
36588
36589/***/ }),
36590
36591/***/ "./node_modules/dagre-d3/lib/label/add-svg-label.js":
36592/*!**********************************************************!*\
36593 !*** ./node_modules/dagre-d3/lib/label/add-svg-label.js ***!
36594 \**********************************************************/
36595/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
36596
36597var util = __webpack_require__(/*! ../util */ "./node_modules/dagre-d3/lib/util.js");
36598
36599module.exports = addSVGLabel;
36600
36601function addSVGLabel(root, node) {
36602 var domNode = root;
36603
36604 domNode.node().appendChild(node.label);
36605
36606 util.applyStyle(domNode, node.labelStyle);
36607
36608 return domNode;
36609}
36610
36611
36612/***/ }),
36613
36614/***/ "./node_modules/dagre-d3/lib/label/add-text-label.js":
36615/*!***********************************************************!*\
36616 !*** ./node_modules/dagre-d3/lib/label/add-text-label.js ***!
36617 \***********************************************************/
36618/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
36619
36620var util = __webpack_require__(/*! ../util */ "./node_modules/dagre-d3/lib/util.js");
36621
36622module.exports = addTextLabel;
36623
36624/*
36625 * Attaches a text label to the specified root. Handles escape sequences.
36626 */
36627function addTextLabel(root, node) {
36628 var domNode = root.append("text");
36629
36630 var lines = processEscapeSequences(node.label).split("\n");
36631 for (var i = 0; i < lines.length; i++) {
36632 domNode.append("tspan")
36633 .attr("xml:space", "preserve")
36634 .attr("dy", "1em")
36635 .attr("x", "1")
36636 .text(lines[i]);
36637 }
36638
36639 util.applyStyle(domNode, node.labelStyle);
36640
36641 return domNode;
36642}
36643
36644function processEscapeSequences(text) {
36645 var newText = "";
36646 var escaped = false;
36647 var ch;
36648 for (var i = 0; i < text.length; ++i) {
36649 ch = text[i];
36650 if (escaped) {
36651 switch(ch) {
36652 case "n": newText += "\n"; break;
36653 default: newText += ch;
36654 }
36655 escaped = false;
36656 } else if (ch === "\\") {
36657 escaped = true;
36658 } else {
36659 newText += ch;
36660 }
36661 }
36662 return newText;
36663}
36664
36665
36666/***/ }),
36667
36668/***/ "./node_modules/dagre-d3/lib/lodash.js":
36669/*!*********************************************!*\
36670 !*** ./node_modules/dagre-d3/lib/lodash.js ***!
36671 \*********************************************/
36672/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
36673
36674/* global window */
36675
36676var lodash;
36677
36678if (true) {
36679 try {
36680 lodash = {
36681 defaults: __webpack_require__(/*! lodash/defaults */ "./node_modules/lodash/defaults.js"),
36682 each: __webpack_require__(/*! lodash/each */ "./node_modules/lodash/each.js"),
36683 isFunction: __webpack_require__(/*! lodash/isFunction */ "./node_modules/lodash/isFunction.js"),
36684 isPlainObject: __webpack_require__(/*! lodash/isPlainObject */ "./node_modules/lodash/isPlainObject.js"),
36685 pick: __webpack_require__(/*! lodash/pick */ "./node_modules/lodash/pick.js"),
36686 has: __webpack_require__(/*! lodash/has */ "./node_modules/lodash/has.js"),
36687 range: __webpack_require__(/*! lodash/range */ "./node_modules/lodash/range.js"),
36688 uniqueId: __webpack_require__(/*! lodash/uniqueId */ "./node_modules/lodash/uniqueId.js")
36689 };
36690 }
36691 catch (e) {
36692 // continue regardless of error
36693 }
36694}
36695
36696if (!lodash) {
36697 lodash = window._;
36698}
36699
36700module.exports = lodash;
36701
36702
36703/***/ }),
36704
36705/***/ "./node_modules/dagre-d3/lib/position-clusters.js":
36706/*!********************************************************!*\
36707 !*** ./node_modules/dagre-d3/lib/position-clusters.js ***!
36708 \********************************************************/
36709/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
36710
36711"use strict";
36712
36713
36714var util = __webpack_require__(/*! ./util */ "./node_modules/dagre-d3/lib/util.js");
36715var d3 = __webpack_require__(/*! ./d3 */ "./node_modules/dagre-d3/lib/d3.js");
36716
36717module.exports = positionClusters;
36718
36719function positionClusters(selection, g) {
36720 var created = selection.filter(function() { return !d3.select(this).classed("update"); });
36721
36722 function translate(v) {
36723 var node = g.node(v);
36724 return "translate(" + node.x + "," + node.y + ")";
36725 }
36726
36727 created.attr("transform", translate);
36728
36729 util.applyTransition(selection, g)
36730 .style("opacity", 1)
36731 .attr("transform", translate);
36732
36733 util.applyTransition(created.selectAll("rect"), g)
36734 .attr("width", function(v) { return g.node(v).width; })
36735 .attr("height", function(v) { return g.node(v).height; })
36736 .attr("x", function(v) {
36737 var node = g.node(v);
36738 return -node.width / 2;
36739 })
36740 .attr("y", function(v) {
36741 var node = g.node(v);
36742 return -node.height / 2;
36743 });
36744}
36745
36746
36747/***/ }),
36748
36749/***/ "./node_modules/dagre-d3/lib/position-edge-labels.js":
36750/*!***********************************************************!*\
36751 !*** ./node_modules/dagre-d3/lib/position-edge-labels.js ***!
36752 \***********************************************************/
36753/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
36754
36755"use strict";
36756
36757
36758var util = __webpack_require__(/*! ./util */ "./node_modules/dagre-d3/lib/util.js");
36759var d3 = __webpack_require__(/*! ./d3 */ "./node_modules/dagre-d3/lib/d3.js");
36760var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre-d3/lib/lodash.js");
36761
36762module.exports = positionEdgeLabels;
36763
36764function positionEdgeLabels(selection, g) {
36765 var created = selection.filter(function() { return !d3.select(this).classed("update"); });
36766
36767 function translate(e) {
36768 var edge = g.edge(e);
36769 return _.has(edge, "x") ? "translate(" + edge.x + "," + edge.y + ")" : "";
36770 }
36771
36772 created.attr("transform", translate);
36773
36774 util.applyTransition(selection, g)
36775 .style("opacity", 1)
36776 .attr("transform", translate);
36777}
36778
36779
36780/***/ }),
36781
36782/***/ "./node_modules/dagre-d3/lib/position-nodes.js":
36783/*!*****************************************************!*\
36784 !*** ./node_modules/dagre-d3/lib/position-nodes.js ***!
36785 \*****************************************************/
36786/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
36787
36788"use strict";
36789
36790
36791var util = __webpack_require__(/*! ./util */ "./node_modules/dagre-d3/lib/util.js");
36792var d3 = __webpack_require__(/*! ./d3 */ "./node_modules/dagre-d3/lib/d3.js");
36793
36794module.exports = positionNodes;
36795
36796function positionNodes(selection, g) {
36797 var created = selection.filter(function() { return !d3.select(this).classed("update"); });
36798
36799 function translate(v) {
36800 var node = g.node(v);
36801 return "translate(" + node.x + "," + node.y + ")";
36802 }
36803
36804 created.attr("transform", translate);
36805
36806 util.applyTransition(selection, g)
36807 .style("opacity", 1)
36808 .attr("transform", translate);
36809}
36810
36811
36812/***/ }),
36813
36814/***/ "./node_modules/dagre-d3/lib/render.js":
36815/*!*********************************************!*\
36816 !*** ./node_modules/dagre-d3/lib/render.js ***!
36817 \*********************************************/
36818/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
36819
36820var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre-d3/lib/lodash.js");
36821var d3 = __webpack_require__(/*! ./d3 */ "./node_modules/dagre-d3/lib/d3.js");
36822var layout = (__webpack_require__(/*! ./dagre */ "./node_modules/dagre-d3/lib/dagre.js").layout);
36823
36824module.exports = render;
36825
36826// This design is based on http://bost.ocks.org/mike/chart/.
36827function render() {
36828 var createNodes = __webpack_require__(/*! ./create-nodes */ "./node_modules/dagre-d3/lib/create-nodes.js");
36829 var createClusters = __webpack_require__(/*! ./create-clusters */ "./node_modules/dagre-d3/lib/create-clusters.js");
36830 var createEdgeLabels = __webpack_require__(/*! ./create-edge-labels */ "./node_modules/dagre-d3/lib/create-edge-labels.js");
36831 var createEdgePaths = __webpack_require__(/*! ./create-edge-paths */ "./node_modules/dagre-d3/lib/create-edge-paths.js");
36832 var positionNodes = __webpack_require__(/*! ./position-nodes */ "./node_modules/dagre-d3/lib/position-nodes.js");
36833 var positionEdgeLabels = __webpack_require__(/*! ./position-edge-labels */ "./node_modules/dagre-d3/lib/position-edge-labels.js");
36834 var positionClusters = __webpack_require__(/*! ./position-clusters */ "./node_modules/dagre-d3/lib/position-clusters.js");
36835 var shapes = __webpack_require__(/*! ./shapes */ "./node_modules/dagre-d3/lib/shapes.js");
36836 var arrows = __webpack_require__(/*! ./arrows */ "./node_modules/dagre-d3/lib/arrows.js");
36837
36838 var fn = function(svg, g) {
36839 preProcessGraph(g);
36840
36841 var outputGroup = createOrSelectGroup(svg, "output");
36842 var clustersGroup = createOrSelectGroup(outputGroup, "clusters");
36843 var edgePathsGroup = createOrSelectGroup(outputGroup, "edgePaths");
36844 var edgeLabels = createEdgeLabels(createOrSelectGroup(outputGroup, "edgeLabels"), g);
36845 var nodes = createNodes(createOrSelectGroup(outputGroup, "nodes"), g, shapes);
36846
36847 layout(g);
36848
36849 positionNodes(nodes, g);
36850 positionEdgeLabels(edgeLabels, g);
36851 createEdgePaths(edgePathsGroup, g, arrows);
36852
36853 var clusters = createClusters(clustersGroup, g);
36854 positionClusters(clusters, g);
36855
36856 postProcessGraph(g);
36857 };
36858
36859 fn.createNodes = function(value) {
36860 if (!arguments.length) return createNodes;
36861 createNodes = value;
36862 return fn;
36863 };
36864
36865 fn.createClusters = function(value) {
36866 if (!arguments.length) return createClusters;
36867 createClusters = value;
36868 return fn;
36869 };
36870
36871 fn.createEdgeLabels = function(value) {
36872 if (!arguments.length) return createEdgeLabels;
36873 createEdgeLabels = value;
36874 return fn;
36875 };
36876
36877 fn.createEdgePaths = function(value) {
36878 if (!arguments.length) return createEdgePaths;
36879 createEdgePaths = value;
36880 return fn;
36881 };
36882
36883 fn.shapes = function(value) {
36884 if (!arguments.length) return shapes;
36885 shapes = value;
36886 return fn;
36887 };
36888
36889 fn.arrows = function(value) {
36890 if (!arguments.length) return arrows;
36891 arrows = value;
36892 return fn;
36893 };
36894
36895 return fn;
36896}
36897
36898var NODE_DEFAULT_ATTRS = {
36899 paddingLeft: 10,
36900 paddingRight: 10,
36901 paddingTop: 10,
36902 paddingBottom: 10,
36903 rx: 0,
36904 ry: 0,
36905 shape: "rect"
36906};
36907
36908var EDGE_DEFAULT_ATTRS = {
36909 arrowhead: "normal",
36910 curve: d3.curveLinear
36911};
36912
36913function preProcessGraph(g) {
36914 g.nodes().forEach(function(v) {
36915 var node = g.node(v);
36916 if (!_.has(node, "label") && !g.children(v).length) { node.label = v; }
36917
36918 if (_.has(node, "paddingX")) {
36919 _.defaults(node, {
36920 paddingLeft: node.paddingX,
36921 paddingRight: node.paddingX
36922 });
36923 }
36924
36925 if (_.has(node, "paddingY")) {
36926 _.defaults(node, {
36927 paddingTop: node.paddingY,
36928 paddingBottom: node.paddingY
36929 });
36930 }
36931
36932 if (_.has(node, "padding")) {
36933 _.defaults(node, {
36934 paddingLeft: node.padding,
36935 paddingRight: node.padding,
36936 paddingTop: node.padding,
36937 paddingBottom: node.padding
36938 });
36939 }
36940
36941 _.defaults(node, NODE_DEFAULT_ATTRS);
36942
36943 _.each(["paddingLeft", "paddingRight", "paddingTop", "paddingBottom"], function(k) {
36944 node[k] = Number(node[k]);
36945 });
36946
36947 // Save dimensions for restore during post-processing
36948 if (_.has(node, "width")) { node._prevWidth = node.width; }
36949 if (_.has(node, "height")) { node._prevHeight = node.height; }
36950 });
36951
36952 g.edges().forEach(function(e) {
36953 var edge = g.edge(e);
36954 if (!_.has(edge, "label")) { edge.label = ""; }
36955 _.defaults(edge, EDGE_DEFAULT_ATTRS);
36956 });
36957}
36958
36959function postProcessGraph(g) {
36960 _.each(g.nodes(), function(v) {
36961 var node = g.node(v);
36962
36963 // Restore original dimensions
36964 if (_.has(node, "_prevWidth")) {
36965 node.width = node._prevWidth;
36966 } else {
36967 delete node.width;
36968 }
36969
36970 if (_.has(node, "_prevHeight")) {
36971 node.height = node._prevHeight;
36972 } else {
36973 delete node.height;
36974 }
36975
36976 delete node._prevWidth;
36977 delete node._prevHeight;
36978 });
36979}
36980
36981function createOrSelectGroup(root, name) {
36982 var selection = root.select("g." + name);
36983 if (selection.empty()) {
36984 selection = root.append("g").attr("class", name);
36985 }
36986 return selection;
36987}
36988
36989
36990/***/ }),
36991
36992/***/ "./node_modules/dagre-d3/lib/shapes.js":
36993/*!*********************************************!*\
36994 !*** ./node_modules/dagre-d3/lib/shapes.js ***!
36995 \*********************************************/
36996/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
36997
36998"use strict";
36999
37000
37001var intersectRect = __webpack_require__(/*! ./intersect/intersect-rect */ "./node_modules/dagre-d3/lib/intersect/intersect-rect.js");
37002var intersectEllipse = __webpack_require__(/*! ./intersect/intersect-ellipse */ "./node_modules/dagre-d3/lib/intersect/intersect-ellipse.js");
37003var intersectCircle = __webpack_require__(/*! ./intersect/intersect-circle */ "./node_modules/dagre-d3/lib/intersect/intersect-circle.js");
37004var intersectPolygon = __webpack_require__(/*! ./intersect/intersect-polygon */ "./node_modules/dagre-d3/lib/intersect/intersect-polygon.js");
37005
37006module.exports = {
37007 rect: rect,
37008 ellipse: ellipse,
37009 circle: circle,
37010 diamond: diamond
37011};
37012
37013function rect(parent, bbox, node) {
37014 var shapeSvg = parent.insert("rect", ":first-child")
37015 .attr("rx", node.rx)
37016 .attr("ry", node.ry)
37017 .attr("x", -bbox.width / 2)
37018 .attr("y", -bbox.height / 2)
37019 .attr("width", bbox.width)
37020 .attr("height", bbox.height);
37021
37022 node.intersect = function(point) {
37023 return intersectRect(node, point);
37024 };
37025
37026 return shapeSvg;
37027}
37028
37029function ellipse(parent, bbox, node) {
37030 var rx = bbox.width / 2;
37031 var ry = bbox.height / 2;
37032 var shapeSvg = parent.insert("ellipse", ":first-child")
37033 .attr("x", -bbox.width / 2)
37034 .attr("y", -bbox.height / 2)
37035 .attr("rx", rx)
37036 .attr("ry", ry);
37037
37038 node.intersect = function(point) {
37039 return intersectEllipse(node, rx, ry, point);
37040 };
37041
37042 return shapeSvg;
37043}
37044
37045function circle(parent, bbox, node) {
37046 var r = Math.max(bbox.width, bbox.height) / 2;
37047 var shapeSvg = parent.insert("circle", ":first-child")
37048 .attr("x", -bbox.width / 2)
37049 .attr("y", -bbox.height / 2)
37050 .attr("r", r);
37051
37052 node.intersect = function(point) {
37053 return intersectCircle(node, r, point);
37054 };
37055
37056 return shapeSvg;
37057}
37058
37059// Circumscribe an ellipse for the bounding box with a diamond shape. I derived
37060// the function to calculate the diamond shape from:
37061// http://mathforum.org/kb/message.jspa?messageID=3750236
37062function diamond(parent, bbox, node) {
37063 var w = (bbox.width * Math.SQRT2) / 2;
37064 var h = (bbox.height * Math.SQRT2) / 2;
37065 var points = [
37066 { x: 0, y: -h },
37067 { x: -w, y: 0 },
37068 { x: 0, y: h },
37069 { x: w, y: 0 }
37070 ];
37071 var shapeSvg = parent.insert("polygon", ":first-child")
37072 .attr("points", points.map(function(p) { return p.x + "," + p.y; }).join(" "));
37073
37074 node.intersect = function(p) {
37075 return intersectPolygon(node, points, p);
37076 };
37077
37078 return shapeSvg;
37079}
37080
37081
37082/***/ }),
37083
37084/***/ "./node_modules/dagre-d3/lib/util.js":
37085/*!*******************************************!*\
37086 !*** ./node_modules/dagre-d3/lib/util.js ***!
37087 \*******************************************/
37088/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
37089
37090var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre-d3/lib/lodash.js");
37091
37092// Public utility functions
37093module.exports = {
37094 isSubgraph: isSubgraph,
37095 edgeToId: edgeToId,
37096 applyStyle: applyStyle,
37097 applyClass: applyClass,
37098 applyTransition: applyTransition
37099};
37100
37101/*
37102 * Returns true if the specified node in the graph is a subgraph node. A
37103 * subgraph node is one that contains other nodes.
37104 */
37105function isSubgraph(g, v) {
37106 return !!g.children(v).length;
37107}
37108
37109function edgeToId(e) {
37110 return escapeId(e.v) + ":" + escapeId(e.w) + ":" + escapeId(e.name);
37111}
37112
37113var ID_DELIM = /:/g;
37114function escapeId(str) {
37115 return str ? String(str).replace(ID_DELIM, "\\:") : "";
37116}
37117
37118function applyStyle(dom, styleFn) {
37119 if (styleFn) {
37120 dom.attr("style", styleFn);
37121 }
37122}
37123
37124function applyClass(dom, classFn, otherClasses) {
37125 if (classFn) {
37126 dom
37127 .attr("class", classFn)
37128 .attr("class", otherClasses + " " + dom.attr("class"));
37129 }
37130}
37131
37132function applyTransition(selection, g) {
37133 var graph = g.graph();
37134
37135 if (_.isPlainObject(graph)) {
37136 var transition = graph.transition;
37137 if (_.isFunction(transition)) {
37138 return transition(selection);
37139 }
37140 }
37141
37142 return selection;
37143}
37144
37145
37146/***/ }),
37147
37148/***/ "./node_modules/dagre-d3/lib/version.js":
37149/*!**********************************************!*\
37150 !*** ./node_modules/dagre-d3/lib/version.js ***!
37151 \**********************************************/
37152/***/ ((module) => {
37153
37154module.exports = "0.6.4";
37155
37156
37157/***/ }),
37158
37159/***/ "./node_modules/dagre/index.js":
37160/*!*************************************!*\
37161 !*** ./node_modules/dagre/index.js ***!
37162 \*************************************/
37163/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
37164
37165/*
37166Copyright (c) 2012-2014 Chris Pettitt
37167
37168Permission is hereby granted, free of charge, to any person obtaining a copy
37169of this software and associated documentation files (the "Software"), to deal
37170in the Software without restriction, including without limitation the rights
37171to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
37172copies of the Software, and to permit persons to whom the Software is
37173furnished to do so, subject to the following conditions:
37174
37175The above copyright notice and this permission notice shall be included in
37176all copies or substantial portions of the Software.
37177
37178THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
37179IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
37180FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
37181AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
37182LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
37183OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
37184THE SOFTWARE.
37185*/
37186
37187module.exports = {
37188 graphlib: __webpack_require__(/*! ./lib/graphlib */ "./node_modules/dagre/lib/graphlib.js"),
37189
37190 layout: __webpack_require__(/*! ./lib/layout */ "./node_modules/dagre/lib/layout.js"),
37191 debug: __webpack_require__(/*! ./lib/debug */ "./node_modules/dagre/lib/debug.js"),
37192 util: {
37193 time: (__webpack_require__(/*! ./lib/util */ "./node_modules/dagre/lib/util.js").time),
37194 notime: (__webpack_require__(/*! ./lib/util */ "./node_modules/dagre/lib/util.js").notime)
37195 },
37196 version: __webpack_require__(/*! ./lib/version */ "./node_modules/dagre/lib/version.js")
37197};
37198
37199
37200/***/ }),
37201
37202/***/ "./node_modules/dagre/lib/acyclic.js":
37203/*!*******************************************!*\
37204 !*** ./node_modules/dagre/lib/acyclic.js ***!
37205 \*******************************************/
37206/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
37207
37208"use strict";
37209
37210
37211var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
37212var greedyFAS = __webpack_require__(/*! ./greedy-fas */ "./node_modules/dagre/lib/greedy-fas.js");
37213
37214module.exports = {
37215 run: run,
37216 undo: undo
37217};
37218
37219function run(g) {
37220 var fas = (g.graph().acyclicer === "greedy"
37221 ? greedyFAS(g, weightFn(g))
37222 : dfsFAS(g));
37223 _.forEach(fas, function(e) {
37224 var label = g.edge(e);
37225 g.removeEdge(e);
37226 label.forwardName = e.name;
37227 label.reversed = true;
37228 g.setEdge(e.w, e.v, label, _.uniqueId("rev"));
37229 });
37230
37231 function weightFn(g) {
37232 return function(e) {
37233 return g.edge(e).weight;
37234 };
37235 }
37236}
37237
37238function dfsFAS(g) {
37239 var fas = [];
37240 var stack = {};
37241 var visited = {};
37242
37243 function dfs(v) {
37244 if (_.has(visited, v)) {
37245 return;
37246 }
37247 visited[v] = true;
37248 stack[v] = true;
37249 _.forEach(g.outEdges(v), function(e) {
37250 if (_.has(stack, e.w)) {
37251 fas.push(e);
37252 } else {
37253 dfs(e.w);
37254 }
37255 });
37256 delete stack[v];
37257 }
37258
37259 _.forEach(g.nodes(), dfs);
37260 return fas;
37261}
37262
37263function undo(g) {
37264 _.forEach(g.edges(), function(e) {
37265 var label = g.edge(e);
37266 if (label.reversed) {
37267 g.removeEdge(e);
37268
37269 var forwardName = label.forwardName;
37270 delete label.reversed;
37271 delete label.forwardName;
37272 g.setEdge(e.w, e.v, label, forwardName);
37273 }
37274 });
37275}
37276
37277
37278/***/ }),
37279
37280/***/ "./node_modules/dagre/lib/add-border-segments.js":
37281/*!*******************************************************!*\
37282 !*** ./node_modules/dagre/lib/add-border-segments.js ***!
37283 \*******************************************************/
37284/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
37285
37286var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
37287var util = __webpack_require__(/*! ./util */ "./node_modules/dagre/lib/util.js");
37288
37289module.exports = addBorderSegments;
37290
37291function addBorderSegments(g) {
37292 function dfs(v) {
37293 var children = g.children(v);
37294 var node = g.node(v);
37295 if (children.length) {
37296 _.forEach(children, dfs);
37297 }
37298
37299 if (_.has(node, "minRank")) {
37300 node.borderLeft = [];
37301 node.borderRight = [];
37302 for (var rank = node.minRank, maxRank = node.maxRank + 1;
37303 rank < maxRank;
37304 ++rank) {
37305 addBorderNode(g, "borderLeft", "_bl", v, node, rank);
37306 addBorderNode(g, "borderRight", "_br", v, node, rank);
37307 }
37308 }
37309 }
37310
37311 _.forEach(g.children(), dfs);
37312}
37313
37314function addBorderNode(g, prop, prefix, sg, sgNode, rank) {
37315 var label = { width: 0, height: 0, rank: rank, borderType: prop };
37316 var prev = sgNode[prop][rank - 1];
37317 var curr = util.addDummyNode(g, "border", label, prefix);
37318 sgNode[prop][rank] = curr;
37319 g.setParent(curr, sg);
37320 if (prev) {
37321 g.setEdge(prev, curr, { weight: 1 });
37322 }
37323}
37324
37325
37326/***/ }),
37327
37328/***/ "./node_modules/dagre/lib/coordinate-system.js":
37329/*!*****************************************************!*\
37330 !*** ./node_modules/dagre/lib/coordinate-system.js ***!
37331 \*****************************************************/
37332/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
37333
37334"use strict";
37335
37336
37337var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
37338
37339module.exports = {
37340 adjust: adjust,
37341 undo: undo
37342};
37343
37344function adjust(g) {
37345 var rankDir = g.graph().rankdir.toLowerCase();
37346 if (rankDir === "lr" || rankDir === "rl") {
37347 swapWidthHeight(g);
37348 }
37349}
37350
37351function undo(g) {
37352 var rankDir = g.graph().rankdir.toLowerCase();
37353 if (rankDir === "bt" || rankDir === "rl") {
37354 reverseY(g);
37355 }
37356
37357 if (rankDir === "lr" || rankDir === "rl") {
37358 swapXY(g);
37359 swapWidthHeight(g);
37360 }
37361}
37362
37363function swapWidthHeight(g) {
37364 _.forEach(g.nodes(), function(v) { swapWidthHeightOne(g.node(v)); });
37365 _.forEach(g.edges(), function(e) { swapWidthHeightOne(g.edge(e)); });
37366}
37367
37368function swapWidthHeightOne(attrs) {
37369 var w = attrs.width;
37370 attrs.width = attrs.height;
37371 attrs.height = w;
37372}
37373
37374function reverseY(g) {
37375 _.forEach(g.nodes(), function(v) { reverseYOne(g.node(v)); });
37376
37377 _.forEach(g.edges(), function(e) {
37378 var edge = g.edge(e);
37379 _.forEach(edge.points, reverseYOne);
37380 if (_.has(edge, "y")) {
37381 reverseYOne(edge);
37382 }
37383 });
37384}
37385
37386function reverseYOne(attrs) {
37387 attrs.y = -attrs.y;
37388}
37389
37390function swapXY(g) {
37391 _.forEach(g.nodes(), function(v) { swapXYOne(g.node(v)); });
37392
37393 _.forEach(g.edges(), function(e) {
37394 var edge = g.edge(e);
37395 _.forEach(edge.points, swapXYOne);
37396 if (_.has(edge, "x")) {
37397 swapXYOne(edge);
37398 }
37399 });
37400}
37401
37402function swapXYOne(attrs) {
37403 var x = attrs.x;
37404 attrs.x = attrs.y;
37405 attrs.y = x;
37406}
37407
37408
37409/***/ }),
37410
37411/***/ "./node_modules/dagre/lib/data/list.js":
37412/*!*********************************************!*\
37413 !*** ./node_modules/dagre/lib/data/list.js ***!
37414 \*********************************************/
37415/***/ ((module) => {
37416
37417/*
37418 * Simple doubly linked list implementation derived from Cormen, et al.,
37419 * "Introduction to Algorithms".
37420 */
37421
37422module.exports = List;
37423
37424function List() {
37425 var sentinel = {};
37426 sentinel._next = sentinel._prev = sentinel;
37427 this._sentinel = sentinel;
37428}
37429
37430List.prototype.dequeue = function() {
37431 var sentinel = this._sentinel;
37432 var entry = sentinel._prev;
37433 if (entry !== sentinel) {
37434 unlink(entry);
37435 return entry;
37436 }
37437};
37438
37439List.prototype.enqueue = function(entry) {
37440 var sentinel = this._sentinel;
37441 if (entry._prev && entry._next) {
37442 unlink(entry);
37443 }
37444 entry._next = sentinel._next;
37445 sentinel._next._prev = entry;
37446 sentinel._next = entry;
37447 entry._prev = sentinel;
37448};
37449
37450List.prototype.toString = function() {
37451 var strs = [];
37452 var sentinel = this._sentinel;
37453 var curr = sentinel._prev;
37454 while (curr !== sentinel) {
37455 strs.push(JSON.stringify(curr, filterOutLinks));
37456 curr = curr._prev;
37457 }
37458 return "[" + strs.join(", ") + "]";
37459};
37460
37461function unlink(entry) {
37462 entry._prev._next = entry._next;
37463 entry._next._prev = entry._prev;
37464 delete entry._next;
37465 delete entry._prev;
37466}
37467
37468function filterOutLinks(k, v) {
37469 if (k !== "_next" && k !== "_prev") {
37470 return v;
37471 }
37472}
37473
37474
37475/***/ }),
37476
37477/***/ "./node_modules/dagre/lib/debug.js":
37478/*!*****************************************!*\
37479 !*** ./node_modules/dagre/lib/debug.js ***!
37480 \*****************************************/
37481/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
37482
37483var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
37484var util = __webpack_require__(/*! ./util */ "./node_modules/dagre/lib/util.js");
37485var Graph = (__webpack_require__(/*! ./graphlib */ "./node_modules/dagre/lib/graphlib.js").Graph);
37486
37487module.exports = {
37488 debugOrdering: debugOrdering
37489};
37490
37491/* istanbul ignore next */
37492function debugOrdering(g) {
37493 var layerMatrix = util.buildLayerMatrix(g);
37494
37495 var h = new Graph({ compound: true, multigraph: true }).setGraph({});
37496
37497 _.forEach(g.nodes(), function(v) {
37498 h.setNode(v, { label: v });
37499 h.setParent(v, "layer" + g.node(v).rank);
37500 });
37501
37502 _.forEach(g.edges(), function(e) {
37503 h.setEdge(e.v, e.w, {}, e.name);
37504 });
37505
37506 _.forEach(layerMatrix, function(layer, i) {
37507 var layerV = "layer" + i;
37508 h.setNode(layerV, { rank: "same" });
37509 _.reduce(layer, function(u, v) {
37510 h.setEdge(u, v, { style: "invis" });
37511 return v;
37512 });
37513 });
37514
37515 return h;
37516}
37517
37518
37519/***/ }),
37520
37521/***/ "./node_modules/dagre/lib/graphlib.js":
37522/*!********************************************!*\
37523 !*** ./node_modules/dagre/lib/graphlib.js ***!
37524 \********************************************/
37525/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
37526
37527/* global window */
37528
37529var graphlib;
37530
37531if (true) {
37532 try {
37533 graphlib = __webpack_require__(/*! graphlib */ "./node_modules/graphlib/index.js");
37534 } catch (e) {
37535 // continue regardless of error
37536 }
37537}
37538
37539if (!graphlib) {
37540 graphlib = window.graphlib;
37541}
37542
37543module.exports = graphlib;
37544
37545
37546/***/ }),
37547
37548/***/ "./node_modules/dagre/lib/greedy-fas.js":
37549/*!**********************************************!*\
37550 !*** ./node_modules/dagre/lib/greedy-fas.js ***!
37551 \**********************************************/
37552/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
37553
37554var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
37555var Graph = (__webpack_require__(/*! ./graphlib */ "./node_modules/dagre/lib/graphlib.js").Graph);
37556var List = __webpack_require__(/*! ./data/list */ "./node_modules/dagre/lib/data/list.js");
37557
37558/*
37559 * A greedy heuristic for finding a feedback arc set for a graph. A feedback
37560 * arc set is a set of edges that can be removed to make a graph acyclic.
37561 * The algorithm comes from: P. Eades, X. Lin, and W. F. Smyth, "A fast and
37562 * effective heuristic for the feedback arc set problem." This implementation
37563 * adjusts that from the paper to allow for weighted edges.
37564 */
37565module.exports = greedyFAS;
37566
37567var DEFAULT_WEIGHT_FN = _.constant(1);
37568
37569function greedyFAS(g, weightFn) {
37570 if (g.nodeCount() <= 1) {
37571 return [];
37572 }
37573 var state = buildState(g, weightFn || DEFAULT_WEIGHT_FN);
37574 var results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx);
37575
37576 // Expand multi-edges
37577 return _.flatten(_.map(results, function(e) {
37578 return g.outEdges(e.v, e.w);
37579 }), true);
37580}
37581
37582function doGreedyFAS(g, buckets, zeroIdx) {
37583 var results = [];
37584 var sources = buckets[buckets.length - 1];
37585 var sinks = buckets[0];
37586
37587 var entry;
37588 while (g.nodeCount()) {
37589 while ((entry = sinks.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }
37590 while ((entry = sources.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }
37591 if (g.nodeCount()) {
37592 for (var i = buckets.length - 2; i > 0; --i) {
37593 entry = buckets[i].dequeue();
37594 if (entry) {
37595 results = results.concat(removeNode(g, buckets, zeroIdx, entry, true));
37596 break;
37597 }
37598 }
37599 }
37600 }
37601
37602 return results;
37603}
37604
37605function removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {
37606 var results = collectPredecessors ? [] : undefined;
37607
37608 _.forEach(g.inEdges(entry.v), function(edge) {
37609 var weight = g.edge(edge);
37610 var uEntry = g.node(edge.v);
37611
37612 if (collectPredecessors) {
37613 results.push({ v: edge.v, w: edge.w });
37614 }
37615
37616 uEntry.out -= weight;
37617 assignBucket(buckets, zeroIdx, uEntry);
37618 });
37619
37620 _.forEach(g.outEdges(entry.v), function(edge) {
37621 var weight = g.edge(edge);
37622 var w = edge.w;
37623 var wEntry = g.node(w);
37624 wEntry["in"] -= weight;
37625 assignBucket(buckets, zeroIdx, wEntry);
37626 });
37627
37628 g.removeNode(entry.v);
37629
37630 return results;
37631}
37632
37633function buildState(g, weightFn) {
37634 var fasGraph = new Graph();
37635 var maxIn = 0;
37636 var maxOut = 0;
37637
37638 _.forEach(g.nodes(), function(v) {
37639 fasGraph.setNode(v, { v: v, "in": 0, out: 0 });
37640 });
37641
37642 // Aggregate weights on nodes, but also sum the weights across multi-edges
37643 // into a single edge for the fasGraph.
37644 _.forEach(g.edges(), function(e) {
37645 var prevWeight = fasGraph.edge(e.v, e.w) || 0;
37646 var weight = weightFn(e);
37647 var edgeWeight = prevWeight + weight;
37648 fasGraph.setEdge(e.v, e.w, edgeWeight);
37649 maxOut = Math.max(maxOut, fasGraph.node(e.v).out += weight);
37650 maxIn = Math.max(maxIn, fasGraph.node(e.w)["in"] += weight);
37651 });
37652
37653 var buckets = _.range(maxOut + maxIn + 3).map(function() { return new List(); });
37654 var zeroIdx = maxIn + 1;
37655
37656 _.forEach(fasGraph.nodes(), function(v) {
37657 assignBucket(buckets, zeroIdx, fasGraph.node(v));
37658 });
37659
37660 return { graph: fasGraph, buckets: buckets, zeroIdx: zeroIdx };
37661}
37662
37663function assignBucket(buckets, zeroIdx, entry) {
37664 if (!entry.out) {
37665 buckets[0].enqueue(entry);
37666 } else if (!entry["in"]) {
37667 buckets[buckets.length - 1].enqueue(entry);
37668 } else {
37669 buckets[entry.out - entry["in"] + zeroIdx].enqueue(entry);
37670 }
37671}
37672
37673
37674/***/ }),
37675
37676/***/ "./node_modules/dagre/lib/layout.js":
37677/*!******************************************!*\
37678 !*** ./node_modules/dagre/lib/layout.js ***!
37679 \******************************************/
37680/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
37681
37682"use strict";
37683
37684
37685var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
37686var acyclic = __webpack_require__(/*! ./acyclic */ "./node_modules/dagre/lib/acyclic.js");
37687var normalize = __webpack_require__(/*! ./normalize */ "./node_modules/dagre/lib/normalize.js");
37688var rank = __webpack_require__(/*! ./rank */ "./node_modules/dagre/lib/rank/index.js");
37689var normalizeRanks = (__webpack_require__(/*! ./util */ "./node_modules/dagre/lib/util.js").normalizeRanks);
37690var parentDummyChains = __webpack_require__(/*! ./parent-dummy-chains */ "./node_modules/dagre/lib/parent-dummy-chains.js");
37691var removeEmptyRanks = (__webpack_require__(/*! ./util */ "./node_modules/dagre/lib/util.js").removeEmptyRanks);
37692var nestingGraph = __webpack_require__(/*! ./nesting-graph */ "./node_modules/dagre/lib/nesting-graph.js");
37693var addBorderSegments = __webpack_require__(/*! ./add-border-segments */ "./node_modules/dagre/lib/add-border-segments.js");
37694var coordinateSystem = __webpack_require__(/*! ./coordinate-system */ "./node_modules/dagre/lib/coordinate-system.js");
37695var order = __webpack_require__(/*! ./order */ "./node_modules/dagre/lib/order/index.js");
37696var position = __webpack_require__(/*! ./position */ "./node_modules/dagre/lib/position/index.js");
37697var util = __webpack_require__(/*! ./util */ "./node_modules/dagre/lib/util.js");
37698var Graph = (__webpack_require__(/*! ./graphlib */ "./node_modules/dagre/lib/graphlib.js").Graph);
37699
37700module.exports = layout;
37701
37702function layout(g, opts) {
37703 var time = opts && opts.debugTiming ? util.time : util.notime;
37704 time("layout", function() {
37705 var layoutGraph =
37706 time(" buildLayoutGraph", function() { return buildLayoutGraph(g); });
37707 time(" runLayout", function() { runLayout(layoutGraph, time); });
37708 time(" updateInputGraph", function() { updateInputGraph(g, layoutGraph); });
37709 });
37710}
37711
37712function runLayout(g, time) {
37713 time(" makeSpaceForEdgeLabels", function() { makeSpaceForEdgeLabels(g); });
37714 time(" removeSelfEdges", function() { removeSelfEdges(g); });
37715 time(" acyclic", function() { acyclic.run(g); });
37716 time(" nestingGraph.run", function() { nestingGraph.run(g); });
37717 time(" rank", function() { rank(util.asNonCompoundGraph(g)); });
37718 time(" injectEdgeLabelProxies", function() { injectEdgeLabelProxies(g); });
37719 time(" removeEmptyRanks", function() { removeEmptyRanks(g); });
37720 time(" nestingGraph.cleanup", function() { nestingGraph.cleanup(g); });
37721 time(" normalizeRanks", function() { normalizeRanks(g); });
37722 time(" assignRankMinMax", function() { assignRankMinMax(g); });
37723 time(" removeEdgeLabelProxies", function() { removeEdgeLabelProxies(g); });
37724 time(" normalize.run", function() { normalize.run(g); });
37725 time(" parentDummyChains", function() { parentDummyChains(g); });
37726 time(" addBorderSegments", function() { addBorderSegments(g); });
37727 time(" order", function() { order(g); });
37728 time(" insertSelfEdges", function() { insertSelfEdges(g); });
37729 time(" adjustCoordinateSystem", function() { coordinateSystem.adjust(g); });
37730 time(" position", function() { position(g); });
37731 time(" positionSelfEdges", function() { positionSelfEdges(g); });
37732 time(" removeBorderNodes", function() { removeBorderNodes(g); });
37733 time(" normalize.undo", function() { normalize.undo(g); });
37734 time(" fixupEdgeLabelCoords", function() { fixupEdgeLabelCoords(g); });
37735 time(" undoCoordinateSystem", function() { coordinateSystem.undo(g); });
37736 time(" translateGraph", function() { translateGraph(g); });
37737 time(" assignNodeIntersects", function() { assignNodeIntersects(g); });
37738 time(" reversePoints", function() { reversePointsForReversedEdges(g); });
37739 time(" acyclic.undo", function() { acyclic.undo(g); });
37740}
37741
37742/*
37743 * Copies final layout information from the layout graph back to the input
37744 * graph. This process only copies whitelisted attributes from the layout graph
37745 * to the input graph, so it serves as a good place to determine what
37746 * attributes can influence layout.
37747 */
37748function updateInputGraph(inputGraph, layoutGraph) {
37749 _.forEach(inputGraph.nodes(), function(v) {
37750 var inputLabel = inputGraph.node(v);
37751 var layoutLabel = layoutGraph.node(v);
37752
37753 if (inputLabel) {
37754 inputLabel.x = layoutLabel.x;
37755 inputLabel.y = layoutLabel.y;
37756
37757 if (layoutGraph.children(v).length) {
37758 inputLabel.width = layoutLabel.width;
37759 inputLabel.height = layoutLabel.height;
37760 }
37761 }
37762 });
37763
37764 _.forEach(inputGraph.edges(), function(e) {
37765 var inputLabel = inputGraph.edge(e);
37766 var layoutLabel = layoutGraph.edge(e);
37767
37768 inputLabel.points = layoutLabel.points;
37769 if (_.has(layoutLabel, "x")) {
37770 inputLabel.x = layoutLabel.x;
37771 inputLabel.y = layoutLabel.y;
37772 }
37773 });
37774
37775 inputGraph.graph().width = layoutGraph.graph().width;
37776 inputGraph.graph().height = layoutGraph.graph().height;
37777}
37778
37779var graphNumAttrs = ["nodesep", "edgesep", "ranksep", "marginx", "marginy"];
37780var graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: "tb" };
37781var graphAttrs = ["acyclicer", "ranker", "rankdir", "align"];
37782var nodeNumAttrs = ["width", "height"];
37783var nodeDefaults = { width: 0, height: 0 };
37784var edgeNumAttrs = ["minlen", "weight", "width", "height", "labeloffset"];
37785var edgeDefaults = {
37786 minlen: 1, weight: 1, width: 0, height: 0,
37787 labeloffset: 10, labelpos: "r"
37788};
37789var edgeAttrs = ["labelpos"];
37790
37791/*
37792 * Constructs a new graph from the input graph, which can be used for layout.
37793 * This process copies only whitelisted attributes from the input graph to the
37794 * layout graph. Thus this function serves as a good place to determine what
37795 * attributes can influence layout.
37796 */
37797function buildLayoutGraph(inputGraph) {
37798 var g = new Graph({ multigraph: true, compound: true });
37799 var graph = canonicalize(inputGraph.graph());
37800
37801 g.setGraph(_.merge({},
37802 graphDefaults,
37803 selectNumberAttrs(graph, graphNumAttrs),
37804 _.pick(graph, graphAttrs)));
37805
37806 _.forEach(inputGraph.nodes(), function(v) {
37807 var node = canonicalize(inputGraph.node(v));
37808 g.setNode(v, _.defaults(selectNumberAttrs(node, nodeNumAttrs), nodeDefaults));
37809 g.setParent(v, inputGraph.parent(v));
37810 });
37811
37812 _.forEach(inputGraph.edges(), function(e) {
37813 var edge = canonicalize(inputGraph.edge(e));
37814 g.setEdge(e, _.merge({},
37815 edgeDefaults,
37816 selectNumberAttrs(edge, edgeNumAttrs),
37817 _.pick(edge, edgeAttrs)));
37818 });
37819
37820 return g;
37821}
37822
37823/*
37824 * This idea comes from the Gansner paper: to account for edge labels in our
37825 * layout we split each rank in half by doubling minlen and halving ranksep.
37826 * Then we can place labels at these mid-points between nodes.
37827 *
37828 * We also add some minimal padding to the width to push the label for the edge
37829 * away from the edge itself a bit.
37830 */
37831function makeSpaceForEdgeLabels(g) {
37832 var graph = g.graph();
37833 graph.ranksep /= 2;
37834 _.forEach(g.edges(), function(e) {
37835 var edge = g.edge(e);
37836 edge.minlen *= 2;
37837 if (edge.labelpos.toLowerCase() !== "c") {
37838 if (graph.rankdir === "TB" || graph.rankdir === "BT") {
37839 edge.width += edge.labeloffset;
37840 } else {
37841 edge.height += edge.labeloffset;
37842 }
37843 }
37844 });
37845}
37846
37847/*
37848 * Creates temporary dummy nodes that capture the rank in which each edge's
37849 * label is going to, if it has one of non-zero width and height. We do this
37850 * so that we can safely remove empty ranks while preserving balance for the
37851 * label's position.
37852 */
37853function injectEdgeLabelProxies(g) {
37854 _.forEach(g.edges(), function(e) {
37855 var edge = g.edge(e);
37856 if (edge.width && edge.height) {
37857 var v = g.node(e.v);
37858 var w = g.node(e.w);
37859 var label = { rank: (w.rank - v.rank) / 2 + v.rank, e: e };
37860 util.addDummyNode(g, "edge-proxy", label, "_ep");
37861 }
37862 });
37863}
37864
37865function assignRankMinMax(g) {
37866 var maxRank = 0;
37867 _.forEach(g.nodes(), function(v) {
37868 var node = g.node(v);
37869 if (node.borderTop) {
37870 node.minRank = g.node(node.borderTop).rank;
37871 node.maxRank = g.node(node.borderBottom).rank;
37872 maxRank = _.max(maxRank, node.maxRank);
37873 }
37874 });
37875 g.graph().maxRank = maxRank;
37876}
37877
37878function removeEdgeLabelProxies(g) {
37879 _.forEach(g.nodes(), function(v) {
37880 var node = g.node(v);
37881 if (node.dummy === "edge-proxy") {
37882 g.edge(node.e).labelRank = node.rank;
37883 g.removeNode(v);
37884 }
37885 });
37886}
37887
37888function translateGraph(g) {
37889 var minX = Number.POSITIVE_INFINITY;
37890 var maxX = 0;
37891 var minY = Number.POSITIVE_INFINITY;
37892 var maxY = 0;
37893 var graphLabel = g.graph();
37894 var marginX = graphLabel.marginx || 0;
37895 var marginY = graphLabel.marginy || 0;
37896
37897 function getExtremes(attrs) {
37898 var x = attrs.x;
37899 var y = attrs.y;
37900 var w = attrs.width;
37901 var h = attrs.height;
37902 minX = Math.min(minX, x - w / 2);
37903 maxX = Math.max(maxX, x + w / 2);
37904 minY = Math.min(minY, y - h / 2);
37905 maxY = Math.max(maxY, y + h / 2);
37906 }
37907
37908 _.forEach(g.nodes(), function(v) { getExtremes(g.node(v)); });
37909 _.forEach(g.edges(), function(e) {
37910 var edge = g.edge(e);
37911 if (_.has(edge, "x")) {
37912 getExtremes(edge);
37913 }
37914 });
37915
37916 minX -= marginX;
37917 minY -= marginY;
37918
37919 _.forEach(g.nodes(), function(v) {
37920 var node = g.node(v);
37921 node.x -= minX;
37922 node.y -= minY;
37923 });
37924
37925 _.forEach(g.edges(), function(e) {
37926 var edge = g.edge(e);
37927 _.forEach(edge.points, function(p) {
37928 p.x -= minX;
37929 p.y -= minY;
37930 });
37931 if (_.has(edge, "x")) { edge.x -= minX; }
37932 if (_.has(edge, "y")) { edge.y -= minY; }
37933 });
37934
37935 graphLabel.width = maxX - minX + marginX;
37936 graphLabel.height = maxY - minY + marginY;
37937}
37938
37939function assignNodeIntersects(g) {
37940 _.forEach(g.edges(), function(e) {
37941 var edge = g.edge(e);
37942 var nodeV = g.node(e.v);
37943 var nodeW = g.node(e.w);
37944 var p1, p2;
37945 if (!edge.points) {
37946 edge.points = [];
37947 p1 = nodeW;
37948 p2 = nodeV;
37949 } else {
37950 p1 = edge.points[0];
37951 p2 = edge.points[edge.points.length - 1];
37952 }
37953 edge.points.unshift(util.intersectRect(nodeV, p1));
37954 edge.points.push(util.intersectRect(nodeW, p2));
37955 });
37956}
37957
37958function fixupEdgeLabelCoords(g) {
37959 _.forEach(g.edges(), function(e) {
37960 var edge = g.edge(e);
37961 if (_.has(edge, "x")) {
37962 if (edge.labelpos === "l" || edge.labelpos === "r") {
37963 edge.width -= edge.labeloffset;
37964 }
37965 switch (edge.labelpos) {
37966 case "l": edge.x -= edge.width / 2 + edge.labeloffset; break;
37967 case "r": edge.x += edge.width / 2 + edge.labeloffset; break;
37968 }
37969 }
37970 });
37971}
37972
37973function reversePointsForReversedEdges(g) {
37974 _.forEach(g.edges(), function(e) {
37975 var edge = g.edge(e);
37976 if (edge.reversed) {
37977 edge.points.reverse();
37978 }
37979 });
37980}
37981
37982function removeBorderNodes(g) {
37983 _.forEach(g.nodes(), function(v) {
37984 if (g.children(v).length) {
37985 var node = g.node(v);
37986 var t = g.node(node.borderTop);
37987 var b = g.node(node.borderBottom);
37988 var l = g.node(_.last(node.borderLeft));
37989 var r = g.node(_.last(node.borderRight));
37990
37991 node.width = Math.abs(r.x - l.x);
37992 node.height = Math.abs(b.y - t.y);
37993 node.x = l.x + node.width / 2;
37994 node.y = t.y + node.height / 2;
37995 }
37996 });
37997
37998 _.forEach(g.nodes(), function(v) {
37999 if (g.node(v).dummy === "border") {
38000 g.removeNode(v);
38001 }
38002 });
38003}
38004
38005function removeSelfEdges(g) {
38006 _.forEach(g.edges(), function(e) {
38007 if (e.v === e.w) {
38008 var node = g.node(e.v);
38009 if (!node.selfEdges) {
38010 node.selfEdges = [];
38011 }
38012 node.selfEdges.push({ e: e, label: g.edge(e) });
38013 g.removeEdge(e);
38014 }
38015 });
38016}
38017
38018function insertSelfEdges(g) {
38019 var layers = util.buildLayerMatrix(g);
38020 _.forEach(layers, function(layer) {
38021 var orderShift = 0;
38022 _.forEach(layer, function(v, i) {
38023 var node = g.node(v);
38024 node.order = i + orderShift;
38025 _.forEach(node.selfEdges, function(selfEdge) {
38026 util.addDummyNode(g, "selfedge", {
38027 width: selfEdge.label.width,
38028 height: selfEdge.label.height,
38029 rank: node.rank,
38030 order: i + (++orderShift),
38031 e: selfEdge.e,
38032 label: selfEdge.label
38033 }, "_se");
38034 });
38035 delete node.selfEdges;
38036 });
38037 });
38038}
38039
38040function positionSelfEdges(g) {
38041 _.forEach(g.nodes(), function(v) {
38042 var node = g.node(v);
38043 if (node.dummy === "selfedge") {
38044 var selfNode = g.node(node.e.v);
38045 var x = selfNode.x + selfNode.width / 2;
38046 var y = selfNode.y;
38047 var dx = node.x - x;
38048 var dy = selfNode.height / 2;
38049 g.setEdge(node.e, node.label);
38050 g.removeNode(v);
38051 node.label.points = [
38052 { x: x + 2 * dx / 3, y: y - dy },
38053 { x: x + 5 * dx / 6, y: y - dy },
38054 { x: x + dx , y: y },
38055 { x: x + 5 * dx / 6, y: y + dy },
38056 { x: x + 2 * dx / 3, y: y + dy }
38057 ];
38058 node.label.x = node.x;
38059 node.label.y = node.y;
38060 }
38061 });
38062}
38063
38064function selectNumberAttrs(obj, attrs) {
38065 return _.mapValues(_.pick(obj, attrs), Number);
38066}
38067
38068function canonicalize(attrs) {
38069 var newAttrs = {};
38070 _.forEach(attrs, function(v, k) {
38071 newAttrs[k.toLowerCase()] = v;
38072 });
38073 return newAttrs;
38074}
38075
38076
38077/***/ }),
38078
38079/***/ "./node_modules/dagre/lib/lodash.js":
38080/*!******************************************!*\
38081 !*** ./node_modules/dagre/lib/lodash.js ***!
38082 \******************************************/
38083/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
38084
38085/* global window */
38086
38087var lodash;
38088
38089if (true) {
38090 try {
38091 lodash = {
38092 cloneDeep: __webpack_require__(/*! lodash/cloneDeep */ "./node_modules/lodash/cloneDeep.js"),
38093 constant: __webpack_require__(/*! lodash/constant */ "./node_modules/lodash/constant.js"),
38094 defaults: __webpack_require__(/*! lodash/defaults */ "./node_modules/lodash/defaults.js"),
38095 each: __webpack_require__(/*! lodash/each */ "./node_modules/lodash/each.js"),
38096 filter: __webpack_require__(/*! lodash/filter */ "./node_modules/lodash/filter.js"),
38097 find: __webpack_require__(/*! lodash/find */ "./node_modules/lodash/find.js"),
38098 flatten: __webpack_require__(/*! lodash/flatten */ "./node_modules/lodash/flatten.js"),
38099 forEach: __webpack_require__(/*! lodash/forEach */ "./node_modules/lodash/forEach.js"),
38100 forIn: __webpack_require__(/*! lodash/forIn */ "./node_modules/lodash/forIn.js"),
38101 has: __webpack_require__(/*! lodash/has */ "./node_modules/lodash/has.js"),
38102 isUndefined: __webpack_require__(/*! lodash/isUndefined */ "./node_modules/lodash/isUndefined.js"),
38103 last: __webpack_require__(/*! lodash/last */ "./node_modules/lodash/last.js"),
38104 map: __webpack_require__(/*! lodash/map */ "./node_modules/lodash/map.js"),
38105 mapValues: __webpack_require__(/*! lodash/mapValues */ "./node_modules/lodash/mapValues.js"),
38106 max: __webpack_require__(/*! lodash/max */ "./node_modules/lodash/max.js"),
38107 merge: __webpack_require__(/*! lodash/merge */ "./node_modules/lodash/merge.js"),
38108 min: __webpack_require__(/*! lodash/min */ "./node_modules/lodash/min.js"),
38109 minBy: __webpack_require__(/*! lodash/minBy */ "./node_modules/lodash/minBy.js"),
38110 now: __webpack_require__(/*! lodash/now */ "./node_modules/lodash/now.js"),
38111 pick: __webpack_require__(/*! lodash/pick */ "./node_modules/lodash/pick.js"),
38112 range: __webpack_require__(/*! lodash/range */ "./node_modules/lodash/range.js"),
38113 reduce: __webpack_require__(/*! lodash/reduce */ "./node_modules/lodash/reduce.js"),
38114 sortBy: __webpack_require__(/*! lodash/sortBy */ "./node_modules/lodash/sortBy.js"),
38115 uniqueId: __webpack_require__(/*! lodash/uniqueId */ "./node_modules/lodash/uniqueId.js"),
38116 values: __webpack_require__(/*! lodash/values */ "./node_modules/lodash/values.js"),
38117 zipObject: __webpack_require__(/*! lodash/zipObject */ "./node_modules/lodash/zipObject.js"),
38118 };
38119 } catch (e) {
38120 // continue regardless of error
38121 }
38122}
38123
38124if (!lodash) {
38125 lodash = window._;
38126}
38127
38128module.exports = lodash;
38129
38130
38131/***/ }),
38132
38133/***/ "./node_modules/dagre/lib/nesting-graph.js":
38134/*!*************************************************!*\
38135 !*** ./node_modules/dagre/lib/nesting-graph.js ***!
38136 \*************************************************/
38137/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
38138
38139var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
38140var util = __webpack_require__(/*! ./util */ "./node_modules/dagre/lib/util.js");
38141
38142module.exports = {
38143 run: run,
38144 cleanup: cleanup
38145};
38146
38147/*
38148 * A nesting graph creates dummy nodes for the tops and bottoms of subgraphs,
38149 * adds appropriate edges to ensure that all cluster nodes are placed between
38150 * these boundries, and ensures that the graph is connected.
38151 *
38152 * In addition we ensure, through the use of the minlen property, that nodes
38153 * and subgraph border nodes to not end up on the same rank.
38154 *
38155 * Preconditions:
38156 *
38157 * 1. Input graph is a DAG
38158 * 2. Nodes in the input graph has a minlen attribute
38159 *
38160 * Postconditions:
38161 *
38162 * 1. Input graph is connected.
38163 * 2. Dummy nodes are added for the tops and bottoms of subgraphs.
38164 * 3. The minlen attribute for nodes is adjusted to ensure nodes do not
38165 * get placed on the same rank as subgraph border nodes.
38166 *
38167 * The nesting graph idea comes from Sander, "Layout of Compound Directed
38168 * Graphs."
38169 */
38170function run(g) {
38171 var root = util.addDummyNode(g, "root", {}, "_root");
38172 var depths = treeDepths(g);
38173 var height = _.max(_.values(depths)) - 1; // Note: depths is an Object not an array
38174 var nodeSep = 2 * height + 1;
38175
38176 g.graph().nestingRoot = root;
38177
38178 // Multiply minlen by nodeSep to align nodes on non-border ranks.
38179 _.forEach(g.edges(), function(e) { g.edge(e).minlen *= nodeSep; });
38180
38181 // Calculate a weight that is sufficient to keep subgraphs vertically compact
38182 var weight = sumWeights(g) + 1;
38183
38184 // Create border nodes and link them up
38185 _.forEach(g.children(), function(child) {
38186 dfs(g, root, nodeSep, weight, height, depths, child);
38187 });
38188
38189 // Save the multiplier for node layers for later removal of empty border
38190 // layers.
38191 g.graph().nodeRankFactor = nodeSep;
38192}
38193
38194function dfs(g, root, nodeSep, weight, height, depths, v) {
38195 var children = g.children(v);
38196 if (!children.length) {
38197 if (v !== root) {
38198 g.setEdge(root, v, { weight: 0, minlen: nodeSep });
38199 }
38200 return;
38201 }
38202
38203 var top = util.addBorderNode(g, "_bt");
38204 var bottom = util.addBorderNode(g, "_bb");
38205 var label = g.node(v);
38206
38207 g.setParent(top, v);
38208 label.borderTop = top;
38209 g.setParent(bottom, v);
38210 label.borderBottom = bottom;
38211
38212 _.forEach(children, function(child) {
38213 dfs(g, root, nodeSep, weight, height, depths, child);
38214
38215 var childNode = g.node(child);
38216 var childTop = childNode.borderTop ? childNode.borderTop : child;
38217 var childBottom = childNode.borderBottom ? childNode.borderBottom : child;
38218 var thisWeight = childNode.borderTop ? weight : 2 * weight;
38219 var minlen = childTop !== childBottom ? 1 : height - depths[v] + 1;
38220
38221 g.setEdge(top, childTop, {
38222 weight: thisWeight,
38223 minlen: minlen,
38224 nestingEdge: true
38225 });
38226
38227 g.setEdge(childBottom, bottom, {
38228 weight: thisWeight,
38229 minlen: minlen,
38230 nestingEdge: true
38231 });
38232 });
38233
38234 if (!g.parent(v)) {
38235 g.setEdge(root, top, { weight: 0, minlen: height + depths[v] });
38236 }
38237}
38238
38239function treeDepths(g) {
38240 var depths = {};
38241 function dfs(v, depth) {
38242 var children = g.children(v);
38243 if (children && children.length) {
38244 _.forEach(children, function(child) {
38245 dfs(child, depth + 1);
38246 });
38247 }
38248 depths[v] = depth;
38249 }
38250 _.forEach(g.children(), function(v) { dfs(v, 1); });
38251 return depths;
38252}
38253
38254function sumWeights(g) {
38255 return _.reduce(g.edges(), function(acc, e) {
38256 return acc + g.edge(e).weight;
38257 }, 0);
38258}
38259
38260function cleanup(g) {
38261 var graphLabel = g.graph();
38262 g.removeNode(graphLabel.nestingRoot);
38263 delete graphLabel.nestingRoot;
38264 _.forEach(g.edges(), function(e) {
38265 var edge = g.edge(e);
38266 if (edge.nestingEdge) {
38267 g.removeEdge(e);
38268 }
38269 });
38270}
38271
38272
38273/***/ }),
38274
38275/***/ "./node_modules/dagre/lib/normalize.js":
38276/*!*********************************************!*\
38277 !*** ./node_modules/dagre/lib/normalize.js ***!
38278 \*********************************************/
38279/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
38280
38281"use strict";
38282
38283
38284var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
38285var util = __webpack_require__(/*! ./util */ "./node_modules/dagre/lib/util.js");
38286
38287module.exports = {
38288 run: run,
38289 undo: undo
38290};
38291
38292/*
38293 * Breaks any long edges in the graph into short segments that span 1 layer
38294 * each. This operation is undoable with the denormalize function.
38295 *
38296 * Pre-conditions:
38297 *
38298 * 1. The input graph is a DAG.
38299 * 2. Each node in the graph has a "rank" property.
38300 *
38301 * Post-condition:
38302 *
38303 * 1. All edges in the graph have a length of 1.
38304 * 2. Dummy nodes are added where edges have been split into segments.
38305 * 3. The graph is augmented with a "dummyChains" attribute which contains
38306 * the first dummy in each chain of dummy nodes produced.
38307 */
38308function run(g) {
38309 g.graph().dummyChains = [];
38310 _.forEach(g.edges(), function(edge) { normalizeEdge(g, edge); });
38311}
38312
38313function normalizeEdge(g, e) {
38314 var v = e.v;
38315 var vRank = g.node(v).rank;
38316 var w = e.w;
38317 var wRank = g.node(w).rank;
38318 var name = e.name;
38319 var edgeLabel = g.edge(e);
38320 var labelRank = edgeLabel.labelRank;
38321
38322 if (wRank === vRank + 1) return;
38323
38324 g.removeEdge(e);
38325
38326 var dummy, attrs, i;
38327 for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) {
38328 edgeLabel.points = [];
38329 attrs = {
38330 width: 0, height: 0,
38331 edgeLabel: edgeLabel, edgeObj: e,
38332 rank: vRank
38333 };
38334 dummy = util.addDummyNode(g, "edge", attrs, "_d");
38335 if (vRank === labelRank) {
38336 attrs.width = edgeLabel.width;
38337 attrs.height = edgeLabel.height;
38338 attrs.dummy = "edge-label";
38339 attrs.labelpos = edgeLabel.labelpos;
38340 }
38341 g.setEdge(v, dummy, { weight: edgeLabel.weight }, name);
38342 if (i === 0) {
38343 g.graph().dummyChains.push(dummy);
38344 }
38345 v = dummy;
38346 }
38347
38348 g.setEdge(v, w, { weight: edgeLabel.weight }, name);
38349}
38350
38351function undo(g) {
38352 _.forEach(g.graph().dummyChains, function(v) {
38353 var node = g.node(v);
38354 var origLabel = node.edgeLabel;
38355 var w;
38356 g.setEdge(node.edgeObj, origLabel);
38357 while (node.dummy) {
38358 w = g.successors(v)[0];
38359 g.removeNode(v);
38360 origLabel.points.push({ x: node.x, y: node.y });
38361 if (node.dummy === "edge-label") {
38362 origLabel.x = node.x;
38363 origLabel.y = node.y;
38364 origLabel.width = node.width;
38365 origLabel.height = node.height;
38366 }
38367 v = w;
38368 node = g.node(v);
38369 }
38370 });
38371}
38372
38373
38374/***/ }),
38375
38376/***/ "./node_modules/dagre/lib/order/add-subgraph-constraints.js":
38377/*!******************************************************************!*\
38378 !*** ./node_modules/dagre/lib/order/add-subgraph-constraints.js ***!
38379 \******************************************************************/
38380/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
38381
38382var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
38383
38384module.exports = addSubgraphConstraints;
38385
38386function addSubgraphConstraints(g, cg, vs) {
38387 var prev = {},
38388 rootPrev;
38389
38390 _.forEach(vs, function(v) {
38391 var child = g.parent(v),
38392 parent,
38393 prevChild;
38394 while (child) {
38395 parent = g.parent(child);
38396 if (parent) {
38397 prevChild = prev[parent];
38398 prev[parent] = child;
38399 } else {
38400 prevChild = rootPrev;
38401 rootPrev = child;
38402 }
38403 if (prevChild && prevChild !== child) {
38404 cg.setEdge(prevChild, child);
38405 return;
38406 }
38407 child = parent;
38408 }
38409 });
38410
38411 /*
38412 function dfs(v) {
38413 var children = v ? g.children(v) : g.children();
38414 if (children.length) {
38415 var min = Number.POSITIVE_INFINITY,
38416 subgraphs = [];
38417 _.each(children, function(child) {
38418 var childMin = dfs(child);
38419 if (g.children(child).length) {
38420 subgraphs.push({ v: child, order: childMin });
38421 }
38422 min = Math.min(min, childMin);
38423 });
38424 _.reduce(_.sortBy(subgraphs, "order"), function(prev, curr) {
38425 cg.setEdge(prev.v, curr.v);
38426 return curr;
38427 });
38428 return min;
38429 }
38430 return g.node(v).order;
38431 }
38432 dfs(undefined);
38433 */
38434}
38435
38436
38437/***/ }),
38438
38439/***/ "./node_modules/dagre/lib/order/barycenter.js":
38440/*!****************************************************!*\
38441 !*** ./node_modules/dagre/lib/order/barycenter.js ***!
38442 \****************************************************/
38443/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
38444
38445var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
38446
38447module.exports = barycenter;
38448
38449function barycenter(g, movable) {
38450 return _.map(movable, function(v) {
38451 var inV = g.inEdges(v);
38452 if (!inV.length) {
38453 return { v: v };
38454 } else {
38455 var result = _.reduce(inV, function(acc, e) {
38456 var edge = g.edge(e),
38457 nodeU = g.node(e.v);
38458 return {
38459 sum: acc.sum + (edge.weight * nodeU.order),
38460 weight: acc.weight + edge.weight
38461 };
38462 }, { sum: 0, weight: 0 });
38463
38464 return {
38465 v: v,
38466 barycenter: result.sum / result.weight,
38467 weight: result.weight
38468 };
38469 }
38470 });
38471}
38472
38473
38474
38475/***/ }),
38476
38477/***/ "./node_modules/dagre/lib/order/build-layer-graph.js":
38478/*!***********************************************************!*\
38479 !*** ./node_modules/dagre/lib/order/build-layer-graph.js ***!
38480 \***********************************************************/
38481/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
38482
38483var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
38484var Graph = (__webpack_require__(/*! ../graphlib */ "./node_modules/dagre/lib/graphlib.js").Graph);
38485
38486module.exports = buildLayerGraph;
38487
38488/*
38489 * Constructs a graph that can be used to sort a layer of nodes. The graph will
38490 * contain all base and subgraph nodes from the request layer in their original
38491 * hierarchy and any edges that are incident on these nodes and are of the type
38492 * requested by the "relationship" parameter.
38493 *
38494 * Nodes from the requested rank that do not have parents are assigned a root
38495 * node in the output graph, which is set in the root graph attribute. This
38496 * makes it easy to walk the hierarchy of movable nodes during ordering.
38497 *
38498 * Pre-conditions:
38499 *
38500 * 1. Input graph is a DAG
38501 * 2. Base nodes in the input graph have a rank attribute
38502 * 3. Subgraph nodes in the input graph has minRank and maxRank attributes
38503 * 4. Edges have an assigned weight
38504 *
38505 * Post-conditions:
38506 *
38507 * 1. Output graph has all nodes in the movable rank with preserved
38508 * hierarchy.
38509 * 2. Root nodes in the movable layer are made children of the node
38510 * indicated by the root attribute of the graph.
38511 * 3. Non-movable nodes incident on movable nodes, selected by the
38512 * relationship parameter, are included in the graph (without hierarchy).
38513 * 4. Edges incident on movable nodes, selected by the relationship
38514 * parameter, are added to the output graph.
38515 * 5. The weights for copied edges are aggregated as need, since the output
38516 * graph is not a multi-graph.
38517 */
38518function buildLayerGraph(g, rank, relationship) {
38519 var root = createRootNode(g),
38520 result = new Graph({ compound: true }).setGraph({ root: root })
38521 .setDefaultNodeLabel(function(v) { return g.node(v); });
38522
38523 _.forEach(g.nodes(), function(v) {
38524 var node = g.node(v),
38525 parent = g.parent(v);
38526
38527 if (node.rank === rank || node.minRank <= rank && rank <= node.maxRank) {
38528 result.setNode(v);
38529 result.setParent(v, parent || root);
38530
38531 // This assumes we have only short edges!
38532 _.forEach(g[relationship](v), function(e) {
38533 var u = e.v === v ? e.w : e.v,
38534 edge = result.edge(u, v),
38535 weight = !_.isUndefined(edge) ? edge.weight : 0;
38536 result.setEdge(u, v, { weight: g.edge(e).weight + weight });
38537 });
38538
38539 if (_.has(node, "minRank")) {
38540 result.setNode(v, {
38541 borderLeft: node.borderLeft[rank],
38542 borderRight: node.borderRight[rank]
38543 });
38544 }
38545 }
38546 });
38547
38548 return result;
38549}
38550
38551function createRootNode(g) {
38552 var v;
38553 while (g.hasNode((v = _.uniqueId("_root"))));
38554 return v;
38555}
38556
38557
38558/***/ }),
38559
38560/***/ "./node_modules/dagre/lib/order/cross-count.js":
38561/*!*****************************************************!*\
38562 !*** ./node_modules/dagre/lib/order/cross-count.js ***!
38563 \*****************************************************/
38564/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
38565
38566"use strict";
38567
38568
38569var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
38570
38571module.exports = crossCount;
38572
38573/*
38574 * A function that takes a layering (an array of layers, each with an array of
38575 * ordererd nodes) and a graph and returns a weighted crossing count.
38576 *
38577 * Pre-conditions:
38578 *
38579 * 1. Input graph must be simple (not a multigraph), directed, and include
38580 * only simple edges.
38581 * 2. Edges in the input graph must have assigned weights.
38582 *
38583 * Post-conditions:
38584 *
38585 * 1. The graph and layering matrix are left unchanged.
38586 *
38587 * This algorithm is derived from Barth, et al., "Bilayer Cross Counting."
38588 */
38589function crossCount(g, layering) {
38590 var cc = 0;
38591 for (var i = 1; i < layering.length; ++i) {
38592 cc += twoLayerCrossCount(g, layering[i-1], layering[i]);
38593 }
38594 return cc;
38595}
38596
38597function twoLayerCrossCount(g, northLayer, southLayer) {
38598 // Sort all of the edges between the north and south layers by their position
38599 // in the north layer and then the south. Map these edges to the position of
38600 // their head in the south layer.
38601 var southPos = _.zipObject(southLayer,
38602 _.map(southLayer, function (v, i) { return i; }));
38603 var southEntries = _.flatten(_.map(northLayer, function(v) {
38604 return _.sortBy(_.map(g.outEdges(v), function(e) {
38605 return { pos: southPos[e.w], weight: g.edge(e).weight };
38606 }), "pos");
38607 }), true);
38608
38609 // Build the accumulator tree
38610 var firstIndex = 1;
38611 while (firstIndex < southLayer.length) firstIndex <<= 1;
38612 var treeSize = 2 * firstIndex - 1;
38613 firstIndex -= 1;
38614 var tree = _.map(new Array(treeSize), function() { return 0; });
38615
38616 // Calculate the weighted crossings
38617 var cc = 0;
38618 _.forEach(southEntries.forEach(function(entry) {
38619 var index = entry.pos + firstIndex;
38620 tree[index] += entry.weight;
38621 var weightSum = 0;
38622 while (index > 0) {
38623 if (index % 2) {
38624 weightSum += tree[index + 1];
38625 }
38626 index = (index - 1) >> 1;
38627 tree[index] += entry.weight;
38628 }
38629 cc += entry.weight * weightSum;
38630 }));
38631
38632 return cc;
38633}
38634
38635
38636/***/ }),
38637
38638/***/ "./node_modules/dagre/lib/order/index.js":
38639/*!***********************************************!*\
38640 !*** ./node_modules/dagre/lib/order/index.js ***!
38641 \***********************************************/
38642/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
38643
38644"use strict";
38645
38646
38647var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
38648var initOrder = __webpack_require__(/*! ./init-order */ "./node_modules/dagre/lib/order/init-order.js");
38649var crossCount = __webpack_require__(/*! ./cross-count */ "./node_modules/dagre/lib/order/cross-count.js");
38650var sortSubgraph = __webpack_require__(/*! ./sort-subgraph */ "./node_modules/dagre/lib/order/sort-subgraph.js");
38651var buildLayerGraph = __webpack_require__(/*! ./build-layer-graph */ "./node_modules/dagre/lib/order/build-layer-graph.js");
38652var addSubgraphConstraints = __webpack_require__(/*! ./add-subgraph-constraints */ "./node_modules/dagre/lib/order/add-subgraph-constraints.js");
38653var Graph = (__webpack_require__(/*! ../graphlib */ "./node_modules/dagre/lib/graphlib.js").Graph);
38654var util = __webpack_require__(/*! ../util */ "./node_modules/dagre/lib/util.js");
38655
38656module.exports = order;
38657
38658/*
38659 * Applies heuristics to minimize edge crossings in the graph and sets the best
38660 * order solution as an order attribute on each node.
38661 *
38662 * Pre-conditions:
38663 *
38664 * 1. Graph must be DAG
38665 * 2. Graph nodes must be objects with a "rank" attribute
38666 * 3. Graph edges must have the "weight" attribute
38667 *
38668 * Post-conditions:
38669 *
38670 * 1. Graph nodes will have an "order" attribute based on the results of the
38671 * algorithm.
38672 */
38673function order(g) {
38674 var maxRank = util.maxRank(g),
38675 downLayerGraphs = buildLayerGraphs(g, _.range(1, maxRank + 1), "inEdges"),
38676 upLayerGraphs = buildLayerGraphs(g, _.range(maxRank - 1, -1, -1), "outEdges");
38677
38678 var layering = initOrder(g);
38679 assignOrder(g, layering);
38680
38681 var bestCC = Number.POSITIVE_INFINITY,
38682 best;
38683
38684 for (var i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {
38685 sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2);
38686
38687 layering = util.buildLayerMatrix(g);
38688 var cc = crossCount(g, layering);
38689 if (cc < bestCC) {
38690 lastBest = 0;
38691 best = _.cloneDeep(layering);
38692 bestCC = cc;
38693 }
38694 }
38695
38696 assignOrder(g, best);
38697}
38698
38699function buildLayerGraphs(g, ranks, relationship) {
38700 return _.map(ranks, function(rank) {
38701 return buildLayerGraph(g, rank, relationship);
38702 });
38703}
38704
38705function sweepLayerGraphs(layerGraphs, biasRight) {
38706 var cg = new Graph();
38707 _.forEach(layerGraphs, function(lg) {
38708 var root = lg.graph().root;
38709 var sorted = sortSubgraph(lg, root, cg, biasRight);
38710 _.forEach(sorted.vs, function(v, i) {
38711 lg.node(v).order = i;
38712 });
38713 addSubgraphConstraints(lg, cg, sorted.vs);
38714 });
38715}
38716
38717function assignOrder(g, layering) {
38718 _.forEach(layering, function(layer) {
38719 _.forEach(layer, function(v, i) {
38720 g.node(v).order = i;
38721 });
38722 });
38723}
38724
38725
38726/***/ }),
38727
38728/***/ "./node_modules/dagre/lib/order/init-order.js":
38729/*!****************************************************!*\
38730 !*** ./node_modules/dagre/lib/order/init-order.js ***!
38731 \****************************************************/
38732/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
38733
38734"use strict";
38735
38736
38737var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
38738
38739module.exports = initOrder;
38740
38741/*
38742 * Assigns an initial order value for each node by performing a DFS search
38743 * starting from nodes in the first rank. Nodes are assigned an order in their
38744 * rank as they are first visited.
38745 *
38746 * This approach comes from Gansner, et al., "A Technique for Drawing Directed
38747 * Graphs."
38748 *
38749 * Returns a layering matrix with an array per layer and each layer sorted by
38750 * the order of its nodes.
38751 */
38752function initOrder(g) {
38753 var visited = {};
38754 var simpleNodes = _.filter(g.nodes(), function(v) {
38755 return !g.children(v).length;
38756 });
38757 var maxRank = _.max(_.map(simpleNodes, function(v) { return g.node(v).rank; }));
38758 var layers = _.map(_.range(maxRank + 1), function() { return []; });
38759
38760 function dfs(v) {
38761 if (_.has(visited, v)) return;
38762 visited[v] = true;
38763 var node = g.node(v);
38764 layers[node.rank].push(v);
38765 _.forEach(g.successors(v), dfs);
38766 }
38767
38768 var orderedVs = _.sortBy(simpleNodes, function(v) { return g.node(v).rank; });
38769 _.forEach(orderedVs, dfs);
38770
38771 return layers;
38772}
38773
38774
38775/***/ }),
38776
38777/***/ "./node_modules/dagre/lib/order/resolve-conflicts.js":
38778/*!***********************************************************!*\
38779 !*** ./node_modules/dagre/lib/order/resolve-conflicts.js ***!
38780 \***********************************************************/
38781/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
38782
38783"use strict";
38784
38785
38786var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
38787
38788module.exports = resolveConflicts;
38789
38790/*
38791 * Given a list of entries of the form {v, barycenter, weight} and a
38792 * constraint graph this function will resolve any conflicts between the
38793 * constraint graph and the barycenters for the entries. If the barycenters for
38794 * an entry would violate a constraint in the constraint graph then we coalesce
38795 * the nodes in the conflict into a new node that respects the contraint and
38796 * aggregates barycenter and weight information.
38797 *
38798 * This implementation is based on the description in Forster, "A Fast and
38799 * Simple Hueristic for Constrained Two-Level Crossing Reduction," thought it
38800 * differs in some specific details.
38801 *
38802 * Pre-conditions:
38803 *
38804 * 1. Each entry has the form {v, barycenter, weight}, or if the node has
38805 * no barycenter, then {v}.
38806 *
38807 * Returns:
38808 *
38809 * A new list of entries of the form {vs, i, barycenter, weight}. The list
38810 * `vs` may either be a singleton or it may be an aggregation of nodes
38811 * ordered such that they do not violate constraints from the constraint
38812 * graph. The property `i` is the lowest original index of any of the
38813 * elements in `vs`.
38814 */
38815function resolveConflicts(entries, cg) {
38816 var mappedEntries = {};
38817 _.forEach(entries, function(entry, i) {
38818 var tmp = mappedEntries[entry.v] = {
38819 indegree: 0,
38820 "in": [],
38821 out: [],
38822 vs: [entry.v],
38823 i: i
38824 };
38825 if (!_.isUndefined(entry.barycenter)) {
38826 tmp.barycenter = entry.barycenter;
38827 tmp.weight = entry.weight;
38828 }
38829 });
38830
38831 _.forEach(cg.edges(), function(e) {
38832 var entryV = mappedEntries[e.v];
38833 var entryW = mappedEntries[e.w];
38834 if (!_.isUndefined(entryV) && !_.isUndefined(entryW)) {
38835 entryW.indegree++;
38836 entryV.out.push(mappedEntries[e.w]);
38837 }
38838 });
38839
38840 var sourceSet = _.filter(mappedEntries, function(entry) {
38841 return !entry.indegree;
38842 });
38843
38844 return doResolveConflicts(sourceSet);
38845}
38846
38847function doResolveConflicts(sourceSet) {
38848 var entries = [];
38849
38850 function handleIn(vEntry) {
38851 return function(uEntry) {
38852 if (uEntry.merged) {
38853 return;
38854 }
38855 if (_.isUndefined(uEntry.barycenter) ||
38856 _.isUndefined(vEntry.barycenter) ||
38857 uEntry.barycenter >= vEntry.barycenter) {
38858 mergeEntries(vEntry, uEntry);
38859 }
38860 };
38861 }
38862
38863 function handleOut(vEntry) {
38864 return function(wEntry) {
38865 wEntry["in"].push(vEntry);
38866 if (--wEntry.indegree === 0) {
38867 sourceSet.push(wEntry);
38868 }
38869 };
38870 }
38871
38872 while (sourceSet.length) {
38873 var entry = sourceSet.pop();
38874 entries.push(entry);
38875 _.forEach(entry["in"].reverse(), handleIn(entry));
38876 _.forEach(entry.out, handleOut(entry));
38877 }
38878
38879 return _.map(_.filter(entries, function(entry) { return !entry.merged; }),
38880 function(entry) {
38881 return _.pick(entry, ["vs", "i", "barycenter", "weight"]);
38882 });
38883
38884}
38885
38886function mergeEntries(target, source) {
38887 var sum = 0;
38888 var weight = 0;
38889
38890 if (target.weight) {
38891 sum += target.barycenter * target.weight;
38892 weight += target.weight;
38893 }
38894
38895 if (source.weight) {
38896 sum += source.barycenter * source.weight;
38897 weight += source.weight;
38898 }
38899
38900 target.vs = source.vs.concat(target.vs);
38901 target.barycenter = sum / weight;
38902 target.weight = weight;
38903 target.i = Math.min(source.i, target.i);
38904 source.merged = true;
38905}
38906
38907
38908/***/ }),
38909
38910/***/ "./node_modules/dagre/lib/order/sort-subgraph.js":
38911/*!*******************************************************!*\
38912 !*** ./node_modules/dagre/lib/order/sort-subgraph.js ***!
38913 \*******************************************************/
38914/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
38915
38916var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
38917var barycenter = __webpack_require__(/*! ./barycenter */ "./node_modules/dagre/lib/order/barycenter.js");
38918var resolveConflicts = __webpack_require__(/*! ./resolve-conflicts */ "./node_modules/dagre/lib/order/resolve-conflicts.js");
38919var sort = __webpack_require__(/*! ./sort */ "./node_modules/dagre/lib/order/sort.js");
38920
38921module.exports = sortSubgraph;
38922
38923function sortSubgraph(g, v, cg, biasRight) {
38924 var movable = g.children(v);
38925 var node = g.node(v);
38926 var bl = node ? node.borderLeft : undefined;
38927 var br = node ? node.borderRight: undefined;
38928 var subgraphs = {};
38929
38930 if (bl) {
38931 movable = _.filter(movable, function(w) {
38932 return w !== bl && w !== br;
38933 });
38934 }
38935
38936 var barycenters = barycenter(g, movable);
38937 _.forEach(barycenters, function(entry) {
38938 if (g.children(entry.v).length) {
38939 var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight);
38940 subgraphs[entry.v] = subgraphResult;
38941 if (_.has(subgraphResult, "barycenter")) {
38942 mergeBarycenters(entry, subgraphResult);
38943 }
38944 }
38945 });
38946
38947 var entries = resolveConflicts(barycenters, cg);
38948 expandSubgraphs(entries, subgraphs);
38949
38950 var result = sort(entries, biasRight);
38951
38952 if (bl) {
38953 result.vs = _.flatten([bl, result.vs, br], true);
38954 if (g.predecessors(bl).length) {
38955 var blPred = g.node(g.predecessors(bl)[0]),
38956 brPred = g.node(g.predecessors(br)[0]);
38957 if (!_.has(result, "barycenter")) {
38958 result.barycenter = 0;
38959 result.weight = 0;
38960 }
38961 result.barycenter = (result.barycenter * result.weight +
38962 blPred.order + brPred.order) / (result.weight + 2);
38963 result.weight += 2;
38964 }
38965 }
38966
38967 return result;
38968}
38969
38970function expandSubgraphs(entries, subgraphs) {
38971 _.forEach(entries, function(entry) {
38972 entry.vs = _.flatten(entry.vs.map(function(v) {
38973 if (subgraphs[v]) {
38974 return subgraphs[v].vs;
38975 }
38976 return v;
38977 }), true);
38978 });
38979}
38980
38981function mergeBarycenters(target, other) {
38982 if (!_.isUndefined(target.barycenter)) {
38983 target.barycenter = (target.barycenter * target.weight +
38984 other.barycenter * other.weight) /
38985 (target.weight + other.weight);
38986 target.weight += other.weight;
38987 } else {
38988 target.barycenter = other.barycenter;
38989 target.weight = other.weight;
38990 }
38991}
38992
38993
38994/***/ }),
38995
38996/***/ "./node_modules/dagre/lib/order/sort.js":
38997/*!**********************************************!*\
38998 !*** ./node_modules/dagre/lib/order/sort.js ***!
38999 \**********************************************/
39000/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
39001
39002var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
39003var util = __webpack_require__(/*! ../util */ "./node_modules/dagre/lib/util.js");
39004
39005module.exports = sort;
39006
39007function sort(entries, biasRight) {
39008 var parts = util.partition(entries, function(entry) {
39009 return _.has(entry, "barycenter");
39010 });
39011 var sortable = parts.lhs,
39012 unsortable = _.sortBy(parts.rhs, function(entry) { return -entry.i; }),
39013 vs = [],
39014 sum = 0,
39015 weight = 0,
39016 vsIndex = 0;
39017
39018 sortable.sort(compareWithBias(!!biasRight));
39019
39020 vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
39021
39022 _.forEach(sortable, function (entry) {
39023 vsIndex += entry.vs.length;
39024 vs.push(entry.vs);
39025 sum += entry.barycenter * entry.weight;
39026 weight += entry.weight;
39027 vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
39028 });
39029
39030 var result = { vs: _.flatten(vs, true) };
39031 if (weight) {
39032 result.barycenter = sum / weight;
39033 result.weight = weight;
39034 }
39035 return result;
39036}
39037
39038function consumeUnsortable(vs, unsortable, index) {
39039 var last;
39040 while (unsortable.length && (last = _.last(unsortable)).i <= index) {
39041 unsortable.pop();
39042 vs.push(last.vs);
39043 index++;
39044 }
39045 return index;
39046}
39047
39048function compareWithBias(bias) {
39049 return function(entryV, entryW) {
39050 if (entryV.barycenter < entryW.barycenter) {
39051 return -1;
39052 } else if (entryV.barycenter > entryW.barycenter) {
39053 return 1;
39054 }
39055
39056 return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;
39057 };
39058}
39059
39060
39061/***/ }),
39062
39063/***/ "./node_modules/dagre/lib/parent-dummy-chains.js":
39064/*!*******************************************************!*\
39065 !*** ./node_modules/dagre/lib/parent-dummy-chains.js ***!
39066 \*******************************************************/
39067/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
39068
39069var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
39070
39071module.exports = parentDummyChains;
39072
39073function parentDummyChains(g) {
39074 var postorderNums = postorder(g);
39075
39076 _.forEach(g.graph().dummyChains, function(v) {
39077 var node = g.node(v);
39078 var edgeObj = node.edgeObj;
39079 var pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w);
39080 var path = pathData.path;
39081 var lca = pathData.lca;
39082 var pathIdx = 0;
39083 var pathV = path[pathIdx];
39084 var ascending = true;
39085
39086 while (v !== edgeObj.w) {
39087 node = g.node(v);
39088
39089 if (ascending) {
39090 while ((pathV = path[pathIdx]) !== lca &&
39091 g.node(pathV).maxRank < node.rank) {
39092 pathIdx++;
39093 }
39094
39095 if (pathV === lca) {
39096 ascending = false;
39097 }
39098 }
39099
39100 if (!ascending) {
39101 while (pathIdx < path.length - 1 &&
39102 g.node(pathV = path[pathIdx + 1]).minRank <= node.rank) {
39103 pathIdx++;
39104 }
39105 pathV = path[pathIdx];
39106 }
39107
39108 g.setParent(v, pathV);
39109 v = g.successors(v)[0];
39110 }
39111 });
39112}
39113
39114// Find a path from v to w through the lowest common ancestor (LCA). Return the
39115// full path and the LCA.
39116function findPath(g, postorderNums, v, w) {
39117 var vPath = [];
39118 var wPath = [];
39119 var low = Math.min(postorderNums[v].low, postorderNums[w].low);
39120 var lim = Math.max(postorderNums[v].lim, postorderNums[w].lim);
39121 var parent;
39122 var lca;
39123
39124 // Traverse up from v to find the LCA
39125 parent = v;
39126 do {
39127 parent = g.parent(parent);
39128 vPath.push(parent);
39129 } while (parent &&
39130 (postorderNums[parent].low > low || lim > postorderNums[parent].lim));
39131 lca = parent;
39132
39133 // Traverse from w to LCA
39134 parent = w;
39135 while ((parent = g.parent(parent)) !== lca) {
39136 wPath.push(parent);
39137 }
39138
39139 return { path: vPath.concat(wPath.reverse()), lca: lca };
39140}
39141
39142function postorder(g) {
39143 var result = {};
39144 var lim = 0;
39145
39146 function dfs(v) {
39147 var low = lim;
39148 _.forEach(g.children(v), dfs);
39149 result[v] = { low: low, lim: lim++ };
39150 }
39151 _.forEach(g.children(), dfs);
39152
39153 return result;
39154}
39155
39156
39157/***/ }),
39158
39159/***/ "./node_modules/dagre/lib/position/bk.js":
39160/*!***********************************************!*\
39161 !*** ./node_modules/dagre/lib/position/bk.js ***!
39162 \***********************************************/
39163/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
39164
39165"use strict";
39166
39167
39168var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
39169var Graph = (__webpack_require__(/*! ../graphlib */ "./node_modules/dagre/lib/graphlib.js").Graph);
39170var util = __webpack_require__(/*! ../util */ "./node_modules/dagre/lib/util.js");
39171
39172/*
39173 * This module provides coordinate assignment based on Brandes and Köpf, "Fast
39174 * and Simple Horizontal Coordinate Assignment."
39175 */
39176
39177module.exports = {
39178 positionX: positionX,
39179 findType1Conflicts: findType1Conflicts,
39180 findType2Conflicts: findType2Conflicts,
39181 addConflict: addConflict,
39182 hasConflict: hasConflict,
39183 verticalAlignment: verticalAlignment,
39184 horizontalCompaction: horizontalCompaction,
39185 alignCoordinates: alignCoordinates,
39186 findSmallestWidthAlignment: findSmallestWidthAlignment,
39187 balance: balance
39188};
39189
39190/*
39191 * Marks all edges in the graph with a type-1 conflict with the "type1Conflict"
39192 * property. A type-1 conflict is one where a non-inner segment crosses an
39193 * inner segment. An inner segment is an edge with both incident nodes marked
39194 * with the "dummy" property.
39195 *
39196 * This algorithm scans layer by layer, starting with the second, for type-1
39197 * conflicts between the current layer and the previous layer. For each layer
39198 * it scans the nodes from left to right until it reaches one that is incident
39199 * on an inner segment. It then scans predecessors to determine if they have
39200 * edges that cross that inner segment. At the end a final scan is done for all
39201 * nodes on the current rank to see if they cross the last visited inner
39202 * segment.
39203 *
39204 * This algorithm (safely) assumes that a dummy node will only be incident on a
39205 * single node in the layers being scanned.
39206 */
39207function findType1Conflicts(g, layering) {
39208 var conflicts = {};
39209
39210 function visitLayer(prevLayer, layer) {
39211 var
39212 // last visited node in the previous layer that is incident on an inner
39213 // segment.
39214 k0 = 0,
39215 // Tracks the last node in this layer scanned for crossings with a type-1
39216 // segment.
39217 scanPos = 0,
39218 prevLayerLength = prevLayer.length,
39219 lastNode = _.last(layer);
39220
39221 _.forEach(layer, function(v, i) {
39222 var w = findOtherInnerSegmentNode(g, v),
39223 k1 = w ? g.node(w).order : prevLayerLength;
39224
39225 if (w || v === lastNode) {
39226 _.forEach(layer.slice(scanPos, i +1), function(scanNode) {
39227 _.forEach(g.predecessors(scanNode), function(u) {
39228 var uLabel = g.node(u),
39229 uPos = uLabel.order;
39230 if ((uPos < k0 || k1 < uPos) &&
39231 !(uLabel.dummy && g.node(scanNode).dummy)) {
39232 addConflict(conflicts, u, scanNode);
39233 }
39234 });
39235 });
39236 scanPos = i + 1;
39237 k0 = k1;
39238 }
39239 });
39240
39241 return layer;
39242 }
39243
39244 _.reduce(layering, visitLayer);
39245 return conflicts;
39246}
39247
39248function findType2Conflicts(g, layering) {
39249 var conflicts = {};
39250
39251 function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {
39252 var v;
39253 _.forEach(_.range(southPos, southEnd), function(i) {
39254 v = south[i];
39255 if (g.node(v).dummy) {
39256 _.forEach(g.predecessors(v), function(u) {
39257 var uNode = g.node(u);
39258 if (uNode.dummy &&
39259 (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) {
39260 addConflict(conflicts, u, v);
39261 }
39262 });
39263 }
39264 });
39265 }
39266
39267
39268 function visitLayer(north, south) {
39269 var prevNorthPos = -1,
39270 nextNorthPos,
39271 southPos = 0;
39272
39273 _.forEach(south, function(v, southLookahead) {
39274 if (g.node(v).dummy === "border") {
39275 var predecessors = g.predecessors(v);
39276 if (predecessors.length) {
39277 nextNorthPos = g.node(predecessors[0]).order;
39278 scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos);
39279 southPos = southLookahead;
39280 prevNorthPos = nextNorthPos;
39281 }
39282 }
39283 scan(south, southPos, south.length, nextNorthPos, north.length);
39284 });
39285
39286 return south;
39287 }
39288
39289 _.reduce(layering, visitLayer);
39290 return conflicts;
39291}
39292
39293function findOtherInnerSegmentNode(g, v) {
39294 if (g.node(v).dummy) {
39295 return _.find(g.predecessors(v), function(u) {
39296 return g.node(u).dummy;
39297 });
39298 }
39299}
39300
39301function addConflict(conflicts, v, w) {
39302 if (v > w) {
39303 var tmp = v;
39304 v = w;
39305 w = tmp;
39306 }
39307
39308 var conflictsV = conflicts[v];
39309 if (!conflictsV) {
39310 conflicts[v] = conflictsV = {};
39311 }
39312 conflictsV[w] = true;
39313}
39314
39315function hasConflict(conflicts, v, w) {
39316 if (v > w) {
39317 var tmp = v;
39318 v = w;
39319 w = tmp;
39320 }
39321 return _.has(conflicts[v], w);
39322}
39323
39324/*
39325 * Try to align nodes into vertical "blocks" where possible. This algorithm
39326 * attempts to align a node with one of its median neighbors. If the edge
39327 * connecting a neighbor is a type-1 conflict then we ignore that possibility.
39328 * If a previous node has already formed a block with a node after the node
39329 * we're trying to form a block with, we also ignore that possibility - our
39330 * blocks would be split in that scenario.
39331 */
39332function verticalAlignment(g, layering, conflicts, neighborFn) {
39333 var root = {},
39334 align = {},
39335 pos = {};
39336
39337 // We cache the position here based on the layering because the graph and
39338 // layering may be out of sync. The layering matrix is manipulated to
39339 // generate different extreme alignments.
39340 _.forEach(layering, function(layer) {
39341 _.forEach(layer, function(v, order) {
39342 root[v] = v;
39343 align[v] = v;
39344 pos[v] = order;
39345 });
39346 });
39347
39348 _.forEach(layering, function(layer) {
39349 var prevIdx = -1;
39350 _.forEach(layer, function(v) {
39351 var ws = neighborFn(v);
39352 if (ws.length) {
39353 ws = _.sortBy(ws, function(w) { return pos[w]; });
39354 var mp = (ws.length - 1) / 2;
39355 for (var i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) {
39356 var w = ws[i];
39357 if (align[v] === v &&
39358 prevIdx < pos[w] &&
39359 !hasConflict(conflicts, v, w)) {
39360 align[w] = v;
39361 align[v] = root[v] = root[w];
39362 prevIdx = pos[w];
39363 }
39364 }
39365 }
39366 });
39367 });
39368
39369 return { root: root, align: align };
39370}
39371
39372function horizontalCompaction(g, layering, root, align, reverseSep) {
39373 // This portion of the algorithm differs from BK due to a number of problems.
39374 // Instead of their algorithm we construct a new block graph and do two
39375 // sweeps. The first sweep places blocks with the smallest possible
39376 // coordinates. The second sweep removes unused space by moving blocks to the
39377 // greatest coordinates without violating separation.
39378 var xs = {},
39379 blockG = buildBlockGraph(g, layering, root, reverseSep),
39380 borderType = reverseSep ? "borderLeft" : "borderRight";
39381
39382 function iterate(setXsFunc, nextNodesFunc) {
39383 var stack = blockG.nodes();
39384 var elem = stack.pop();
39385 var visited = {};
39386 while (elem) {
39387 if (visited[elem]) {
39388 setXsFunc(elem);
39389 } else {
39390 visited[elem] = true;
39391 stack.push(elem);
39392 stack = stack.concat(nextNodesFunc(elem));
39393 }
39394
39395 elem = stack.pop();
39396 }
39397 }
39398
39399 // First pass, assign smallest coordinates
39400 function pass1(elem) {
39401 xs[elem] = blockG.inEdges(elem).reduce(function(acc, e) {
39402 return Math.max(acc, xs[e.v] + blockG.edge(e));
39403 }, 0);
39404 }
39405
39406 // Second pass, assign greatest coordinates
39407 function pass2(elem) {
39408 var min = blockG.outEdges(elem).reduce(function(acc, e) {
39409 return Math.min(acc, xs[e.w] - blockG.edge(e));
39410 }, Number.POSITIVE_INFINITY);
39411
39412 var node = g.node(elem);
39413 if (min !== Number.POSITIVE_INFINITY && node.borderType !== borderType) {
39414 xs[elem] = Math.max(xs[elem], min);
39415 }
39416 }
39417
39418 iterate(pass1, blockG.predecessors.bind(blockG));
39419 iterate(pass2, blockG.successors.bind(blockG));
39420
39421 // Assign x coordinates to all nodes
39422 _.forEach(align, function(v) {
39423 xs[v] = xs[root[v]];
39424 });
39425
39426 return xs;
39427}
39428
39429
39430function buildBlockGraph(g, layering, root, reverseSep) {
39431 var blockGraph = new Graph(),
39432 graphLabel = g.graph(),
39433 sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep);
39434
39435 _.forEach(layering, function(layer) {
39436 var u;
39437 _.forEach(layer, function(v) {
39438 var vRoot = root[v];
39439 blockGraph.setNode(vRoot);
39440 if (u) {
39441 var uRoot = root[u],
39442 prevMax = blockGraph.edge(uRoot, vRoot);
39443 blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u), prevMax || 0));
39444 }
39445 u = v;
39446 });
39447 });
39448
39449 return blockGraph;
39450}
39451
39452/*
39453 * Returns the alignment that has the smallest width of the given alignments.
39454 */
39455function findSmallestWidthAlignment(g, xss) {
39456 return _.minBy(_.values(xss), function (xs) {
39457 var max = Number.NEGATIVE_INFINITY;
39458 var min = Number.POSITIVE_INFINITY;
39459
39460 _.forIn(xs, function (x, v) {
39461 var halfWidth = width(g, v) / 2;
39462
39463 max = Math.max(x + halfWidth, max);
39464 min = Math.min(x - halfWidth, min);
39465 });
39466
39467 return max - min;
39468 });
39469}
39470
39471/*
39472 * Align the coordinates of each of the layout alignments such that
39473 * left-biased alignments have their minimum coordinate at the same point as
39474 * the minimum coordinate of the smallest width alignment and right-biased
39475 * alignments have their maximum coordinate at the same point as the maximum
39476 * coordinate of the smallest width alignment.
39477 */
39478function alignCoordinates(xss, alignTo) {
39479 var alignToVals = _.values(alignTo),
39480 alignToMin = _.min(alignToVals),
39481 alignToMax = _.max(alignToVals);
39482
39483 _.forEach(["u", "d"], function(vert) {
39484 _.forEach(["l", "r"], function(horiz) {
39485 var alignment = vert + horiz,
39486 xs = xss[alignment],
39487 delta;
39488 if (xs === alignTo) return;
39489
39490 var xsVals = _.values(xs);
39491 delta = horiz === "l" ? alignToMin - _.min(xsVals) : alignToMax - _.max(xsVals);
39492
39493 if (delta) {
39494 xss[alignment] = _.mapValues(xs, function(x) { return x + delta; });
39495 }
39496 });
39497 });
39498}
39499
39500function balance(xss, align) {
39501 return _.mapValues(xss.ul, function(ignore, v) {
39502 if (align) {
39503 return xss[align.toLowerCase()][v];
39504 } else {
39505 var xs = _.sortBy(_.map(xss, v));
39506 return (xs[1] + xs[2]) / 2;
39507 }
39508 });
39509}
39510
39511function positionX(g) {
39512 var layering = util.buildLayerMatrix(g);
39513 var conflicts = _.merge(
39514 findType1Conflicts(g, layering),
39515 findType2Conflicts(g, layering));
39516
39517 var xss = {};
39518 var adjustedLayering;
39519 _.forEach(["u", "d"], function(vert) {
39520 adjustedLayering = vert === "u" ? layering : _.values(layering).reverse();
39521 _.forEach(["l", "r"], function(horiz) {
39522 if (horiz === "r") {
39523 adjustedLayering = _.map(adjustedLayering, function(inner) {
39524 return _.values(inner).reverse();
39525 });
39526 }
39527
39528 var neighborFn = (vert === "u" ? g.predecessors : g.successors).bind(g);
39529 var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);
39530 var xs = horizontalCompaction(g, adjustedLayering,
39531 align.root, align.align, horiz === "r");
39532 if (horiz === "r") {
39533 xs = _.mapValues(xs, function(x) { return -x; });
39534 }
39535 xss[vert + horiz] = xs;
39536 });
39537 });
39538
39539 var smallestWidth = findSmallestWidthAlignment(g, xss);
39540 alignCoordinates(xss, smallestWidth);
39541 return balance(xss, g.graph().align);
39542}
39543
39544function sep(nodeSep, edgeSep, reverseSep) {
39545 return function(g, v, w) {
39546 var vLabel = g.node(v);
39547 var wLabel = g.node(w);
39548 var sum = 0;
39549 var delta;
39550
39551 sum += vLabel.width / 2;
39552 if (_.has(vLabel, "labelpos")) {
39553 switch (vLabel.labelpos.toLowerCase()) {
39554 case "l": delta = -vLabel.width / 2; break;
39555 case "r": delta = vLabel.width / 2; break;
39556 }
39557 }
39558 if (delta) {
39559 sum += reverseSep ? delta : -delta;
39560 }
39561 delta = 0;
39562
39563 sum += (vLabel.dummy ? edgeSep : nodeSep) / 2;
39564 sum += (wLabel.dummy ? edgeSep : nodeSep) / 2;
39565
39566 sum += wLabel.width / 2;
39567 if (_.has(wLabel, "labelpos")) {
39568 switch (wLabel.labelpos.toLowerCase()) {
39569 case "l": delta = wLabel.width / 2; break;
39570 case "r": delta = -wLabel.width / 2; break;
39571 }
39572 }
39573 if (delta) {
39574 sum += reverseSep ? delta : -delta;
39575 }
39576 delta = 0;
39577
39578 return sum;
39579 };
39580}
39581
39582function width(g, v) {
39583 return g.node(v).width;
39584}
39585
39586
39587/***/ }),
39588
39589/***/ "./node_modules/dagre/lib/position/index.js":
39590/*!**************************************************!*\
39591 !*** ./node_modules/dagre/lib/position/index.js ***!
39592 \**************************************************/
39593/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
39594
39595"use strict";
39596
39597
39598var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
39599var util = __webpack_require__(/*! ../util */ "./node_modules/dagre/lib/util.js");
39600var positionX = (__webpack_require__(/*! ./bk */ "./node_modules/dagre/lib/position/bk.js").positionX);
39601
39602module.exports = position;
39603
39604function position(g) {
39605 g = util.asNonCompoundGraph(g);
39606
39607 positionY(g);
39608 _.forEach(positionX(g), function(x, v) {
39609 g.node(v).x = x;
39610 });
39611}
39612
39613function positionY(g) {
39614 var layering = util.buildLayerMatrix(g);
39615 var rankSep = g.graph().ranksep;
39616 var prevY = 0;
39617 _.forEach(layering, function(layer) {
39618 var maxHeight = _.max(_.map(layer, function(v) { return g.node(v).height; }));
39619 _.forEach(layer, function(v) {
39620 g.node(v).y = prevY + maxHeight / 2;
39621 });
39622 prevY += maxHeight + rankSep;
39623 });
39624}
39625
39626
39627
39628/***/ }),
39629
39630/***/ "./node_modules/dagre/lib/rank/feasible-tree.js":
39631/*!******************************************************!*\
39632 !*** ./node_modules/dagre/lib/rank/feasible-tree.js ***!
39633 \******************************************************/
39634/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
39635
39636"use strict";
39637
39638
39639var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
39640var Graph = (__webpack_require__(/*! ../graphlib */ "./node_modules/dagre/lib/graphlib.js").Graph);
39641var slack = (__webpack_require__(/*! ./util */ "./node_modules/dagre/lib/rank/util.js").slack);
39642
39643module.exports = feasibleTree;
39644
39645/*
39646 * Constructs a spanning tree with tight edges and adjusted the input node's
39647 * ranks to achieve this. A tight edge is one that is has a length that matches
39648 * its "minlen" attribute.
39649 *
39650 * The basic structure for this function is derived from Gansner, et al., "A
39651 * Technique for Drawing Directed Graphs."
39652 *
39653 * Pre-conditions:
39654 *
39655 * 1. Graph must be a DAG.
39656 * 2. Graph must be connected.
39657 * 3. Graph must have at least one node.
39658 * 5. Graph nodes must have been previously assigned a "rank" property that
39659 * respects the "minlen" property of incident edges.
39660 * 6. Graph edges must have a "minlen" property.
39661 *
39662 * Post-conditions:
39663 *
39664 * - Graph nodes will have their rank adjusted to ensure that all edges are
39665 * tight.
39666 *
39667 * Returns a tree (undirected graph) that is constructed using only "tight"
39668 * edges.
39669 */
39670function feasibleTree(g) {
39671 var t = new Graph({ directed: false });
39672
39673 // Choose arbitrary node from which to start our tree
39674 var start = g.nodes()[0];
39675 var size = g.nodeCount();
39676 t.setNode(start, {});
39677
39678 var edge, delta;
39679 while (tightTree(t, g) < size) {
39680 edge = findMinSlackEdge(t, g);
39681 delta = t.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge);
39682 shiftRanks(t, g, delta);
39683 }
39684
39685 return t;
39686}
39687
39688/*
39689 * Finds a maximal tree of tight edges and returns the number of nodes in the
39690 * tree.
39691 */
39692function tightTree(t, g) {
39693 function dfs(v) {
39694 _.forEach(g.nodeEdges(v), function(e) {
39695 var edgeV = e.v,
39696 w = (v === edgeV) ? e.w : edgeV;
39697 if (!t.hasNode(w) && !slack(g, e)) {
39698 t.setNode(w, {});
39699 t.setEdge(v, w, {});
39700 dfs(w);
39701 }
39702 });
39703 }
39704
39705 _.forEach(t.nodes(), dfs);
39706 return t.nodeCount();
39707}
39708
39709/*
39710 * Finds the edge with the smallest slack that is incident on tree and returns
39711 * it.
39712 */
39713function findMinSlackEdge(t, g) {
39714 return _.minBy(g.edges(), function(e) {
39715 if (t.hasNode(e.v) !== t.hasNode(e.w)) {
39716 return slack(g, e);
39717 }
39718 });
39719}
39720
39721function shiftRanks(t, g, delta) {
39722 _.forEach(t.nodes(), function(v) {
39723 g.node(v).rank += delta;
39724 });
39725}
39726
39727
39728/***/ }),
39729
39730/***/ "./node_modules/dagre/lib/rank/index.js":
39731/*!**********************************************!*\
39732 !*** ./node_modules/dagre/lib/rank/index.js ***!
39733 \**********************************************/
39734/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
39735
39736"use strict";
39737
39738
39739var rankUtil = __webpack_require__(/*! ./util */ "./node_modules/dagre/lib/rank/util.js");
39740var longestPath = rankUtil.longestPath;
39741var feasibleTree = __webpack_require__(/*! ./feasible-tree */ "./node_modules/dagre/lib/rank/feasible-tree.js");
39742var networkSimplex = __webpack_require__(/*! ./network-simplex */ "./node_modules/dagre/lib/rank/network-simplex.js");
39743
39744module.exports = rank;
39745
39746/*
39747 * Assigns a rank to each node in the input graph that respects the "minlen"
39748 * constraint specified on edges between nodes.
39749 *
39750 * This basic structure is derived from Gansner, et al., "A Technique for
39751 * Drawing Directed Graphs."
39752 *
39753 * Pre-conditions:
39754 *
39755 * 1. Graph must be a connected DAG
39756 * 2. Graph nodes must be objects
39757 * 3. Graph edges must have "weight" and "minlen" attributes
39758 *
39759 * Post-conditions:
39760 *
39761 * 1. Graph nodes will have a "rank" attribute based on the results of the
39762 * algorithm. Ranks can start at any index (including negative), we'll
39763 * fix them up later.
39764 */
39765function rank(g) {
39766 switch(g.graph().ranker) {
39767 case "network-simplex": networkSimplexRanker(g); break;
39768 case "tight-tree": tightTreeRanker(g); break;
39769 case "longest-path": longestPathRanker(g); break;
39770 default: networkSimplexRanker(g);
39771 }
39772}
39773
39774// A fast and simple ranker, but results are far from optimal.
39775var longestPathRanker = longestPath;
39776
39777function tightTreeRanker(g) {
39778 longestPath(g);
39779 feasibleTree(g);
39780}
39781
39782function networkSimplexRanker(g) {
39783 networkSimplex(g);
39784}
39785
39786
39787/***/ }),
39788
39789/***/ "./node_modules/dagre/lib/rank/network-simplex.js":
39790/*!********************************************************!*\
39791 !*** ./node_modules/dagre/lib/rank/network-simplex.js ***!
39792 \********************************************************/
39793/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
39794
39795"use strict";
39796
39797
39798var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
39799var feasibleTree = __webpack_require__(/*! ./feasible-tree */ "./node_modules/dagre/lib/rank/feasible-tree.js");
39800var slack = (__webpack_require__(/*! ./util */ "./node_modules/dagre/lib/rank/util.js").slack);
39801var initRank = (__webpack_require__(/*! ./util */ "./node_modules/dagre/lib/rank/util.js").longestPath);
39802var preorder = (__webpack_require__(/*! ../graphlib */ "./node_modules/dagre/lib/graphlib.js").alg.preorder);
39803var postorder = (__webpack_require__(/*! ../graphlib */ "./node_modules/dagre/lib/graphlib.js").alg.postorder);
39804var simplify = (__webpack_require__(/*! ../util */ "./node_modules/dagre/lib/util.js").simplify);
39805
39806module.exports = networkSimplex;
39807
39808// Expose some internals for testing purposes
39809networkSimplex.initLowLimValues = initLowLimValues;
39810networkSimplex.initCutValues = initCutValues;
39811networkSimplex.calcCutValue = calcCutValue;
39812networkSimplex.leaveEdge = leaveEdge;
39813networkSimplex.enterEdge = enterEdge;
39814networkSimplex.exchangeEdges = exchangeEdges;
39815
39816/*
39817 * The network simplex algorithm assigns ranks to each node in the input graph
39818 * and iteratively improves the ranking to reduce the length of edges.
39819 *
39820 * Preconditions:
39821 *
39822 * 1. The input graph must be a DAG.
39823 * 2. All nodes in the graph must have an object value.
39824 * 3. All edges in the graph must have "minlen" and "weight" attributes.
39825 *
39826 * Postconditions:
39827 *
39828 * 1. All nodes in the graph will have an assigned "rank" attribute that has
39829 * been optimized by the network simplex algorithm. Ranks start at 0.
39830 *
39831 *
39832 * A rough sketch of the algorithm is as follows:
39833 *
39834 * 1. Assign initial ranks to each node. We use the longest path algorithm,
39835 * which assigns ranks to the lowest position possible. In general this
39836 * leads to very wide bottom ranks and unnecessarily long edges.
39837 * 2. Construct a feasible tight tree. A tight tree is one such that all
39838 * edges in the tree have no slack (difference between length of edge
39839 * and minlen for the edge). This by itself greatly improves the assigned
39840 * rankings by shorting edges.
39841 * 3. Iteratively find edges that have negative cut values. Generally a
39842 * negative cut value indicates that the edge could be removed and a new
39843 * tree edge could be added to produce a more compact graph.
39844 *
39845 * Much of the algorithms here are derived from Gansner, et al., "A Technique
39846 * for Drawing Directed Graphs." The structure of the file roughly follows the
39847 * structure of the overall algorithm.
39848 */
39849function networkSimplex(g) {
39850 g = simplify(g);
39851 initRank(g);
39852 var t = feasibleTree(g);
39853 initLowLimValues(t);
39854 initCutValues(t, g);
39855
39856 var e, f;
39857 while ((e = leaveEdge(t))) {
39858 f = enterEdge(t, g, e);
39859 exchangeEdges(t, g, e, f);
39860 }
39861}
39862
39863/*
39864 * Initializes cut values for all edges in the tree.
39865 */
39866function initCutValues(t, g) {
39867 var vs = postorder(t, t.nodes());
39868 vs = vs.slice(0, vs.length - 1);
39869 _.forEach(vs, function(v) {
39870 assignCutValue(t, g, v);
39871 });
39872}
39873
39874function assignCutValue(t, g, child) {
39875 var childLab = t.node(child);
39876 var parent = childLab.parent;
39877 t.edge(child, parent).cutvalue = calcCutValue(t, g, child);
39878}
39879
39880/*
39881 * Given the tight tree, its graph, and a child in the graph calculate and
39882 * return the cut value for the edge between the child and its parent.
39883 */
39884function calcCutValue(t, g, child) {
39885 var childLab = t.node(child);
39886 var parent = childLab.parent;
39887 // True if the child is on the tail end of the edge in the directed graph
39888 var childIsTail = true;
39889 // The graph's view of the tree edge we're inspecting
39890 var graphEdge = g.edge(child, parent);
39891 // The accumulated cut value for the edge between this node and its parent
39892 var cutValue = 0;
39893
39894 if (!graphEdge) {
39895 childIsTail = false;
39896 graphEdge = g.edge(parent, child);
39897 }
39898
39899 cutValue = graphEdge.weight;
39900
39901 _.forEach(g.nodeEdges(child), function(e) {
39902 var isOutEdge = e.v === child,
39903 other = isOutEdge ? e.w : e.v;
39904
39905 if (other !== parent) {
39906 var pointsToHead = isOutEdge === childIsTail,
39907 otherWeight = g.edge(e).weight;
39908
39909 cutValue += pointsToHead ? otherWeight : -otherWeight;
39910 if (isTreeEdge(t, child, other)) {
39911 var otherCutValue = t.edge(child, other).cutvalue;
39912 cutValue += pointsToHead ? -otherCutValue : otherCutValue;
39913 }
39914 }
39915 });
39916
39917 return cutValue;
39918}
39919
39920function initLowLimValues(tree, root) {
39921 if (arguments.length < 2) {
39922 root = tree.nodes()[0];
39923 }
39924 dfsAssignLowLim(tree, {}, 1, root);
39925}
39926
39927function dfsAssignLowLim(tree, visited, nextLim, v, parent) {
39928 var low = nextLim;
39929 var label = tree.node(v);
39930
39931 visited[v] = true;
39932 _.forEach(tree.neighbors(v), function(w) {
39933 if (!_.has(visited, w)) {
39934 nextLim = dfsAssignLowLim(tree, visited, nextLim, w, v);
39935 }
39936 });
39937
39938 label.low = low;
39939 label.lim = nextLim++;
39940 if (parent) {
39941 label.parent = parent;
39942 } else {
39943 // TODO should be able to remove this when we incrementally update low lim
39944 delete label.parent;
39945 }
39946
39947 return nextLim;
39948}
39949
39950function leaveEdge(tree) {
39951 return _.find(tree.edges(), function(e) {
39952 return tree.edge(e).cutvalue < 0;
39953 });
39954}
39955
39956function enterEdge(t, g, edge) {
39957 var v = edge.v;
39958 var w = edge.w;
39959
39960 // For the rest of this function we assume that v is the tail and w is the
39961 // head, so if we don't have this edge in the graph we should flip it to
39962 // match the correct orientation.
39963 if (!g.hasEdge(v, w)) {
39964 v = edge.w;
39965 w = edge.v;
39966 }
39967
39968 var vLabel = t.node(v);
39969 var wLabel = t.node(w);
39970 var tailLabel = vLabel;
39971 var flip = false;
39972
39973 // If the root is in the tail of the edge then we need to flip the logic that
39974 // checks for the head and tail nodes in the candidates function below.
39975 if (vLabel.lim > wLabel.lim) {
39976 tailLabel = wLabel;
39977 flip = true;
39978 }
39979
39980 var candidates = _.filter(g.edges(), function(edge) {
39981 return flip === isDescendant(t, t.node(edge.v), tailLabel) &&
39982 flip !== isDescendant(t, t.node(edge.w), tailLabel);
39983 });
39984
39985 return _.minBy(candidates, function(edge) { return slack(g, edge); });
39986}
39987
39988function exchangeEdges(t, g, e, f) {
39989 var v = e.v;
39990 var w = e.w;
39991 t.removeEdge(v, w);
39992 t.setEdge(f.v, f.w, {});
39993 initLowLimValues(t);
39994 initCutValues(t, g);
39995 updateRanks(t, g);
39996}
39997
39998function updateRanks(t, g) {
39999 var root = _.find(t.nodes(), function(v) { return !g.node(v).parent; });
40000 var vs = preorder(t, root);
40001 vs = vs.slice(1);
40002 _.forEach(vs, function(v) {
40003 var parent = t.node(v).parent,
40004 edge = g.edge(v, parent),
40005 flipped = false;
40006
40007 if (!edge) {
40008 edge = g.edge(parent, v);
40009 flipped = true;
40010 }
40011
40012 g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen);
40013 });
40014}
40015
40016/*
40017 * Returns true if the edge is in the tree.
40018 */
40019function isTreeEdge(tree, u, v) {
40020 return tree.hasEdge(u, v);
40021}
40022
40023/*
40024 * Returns true if the specified node is descendant of the root node per the
40025 * assigned low and lim attributes in the tree.
40026 */
40027function isDescendant(tree, vLabel, rootLabel) {
40028 return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;
40029}
40030
40031
40032/***/ }),
40033
40034/***/ "./node_modules/dagre/lib/rank/util.js":
40035/*!*********************************************!*\
40036 !*** ./node_modules/dagre/lib/rank/util.js ***!
40037 \*********************************************/
40038/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
40039
40040"use strict";
40041
40042
40043var _ = __webpack_require__(/*! ../lodash */ "./node_modules/dagre/lib/lodash.js");
40044
40045module.exports = {
40046 longestPath: longestPath,
40047 slack: slack
40048};
40049
40050/*
40051 * Initializes ranks for the input graph using the longest path algorithm. This
40052 * algorithm scales well and is fast in practice, it yields rather poor
40053 * solutions. Nodes are pushed to the lowest layer possible, leaving the bottom
40054 * ranks wide and leaving edges longer than necessary. However, due to its
40055 * speed, this algorithm is good for getting an initial ranking that can be fed
40056 * into other algorithms.
40057 *
40058 * This algorithm does not normalize layers because it will be used by other
40059 * algorithms in most cases. If using this algorithm directly, be sure to
40060 * run normalize at the end.
40061 *
40062 * Pre-conditions:
40063 *
40064 * 1. Input graph is a DAG.
40065 * 2. Input graph node labels can be assigned properties.
40066 *
40067 * Post-conditions:
40068 *
40069 * 1. Each node will be assign an (unnormalized) "rank" property.
40070 */
40071function longestPath(g) {
40072 var visited = {};
40073
40074 function dfs(v) {
40075 var label = g.node(v);
40076 if (_.has(visited, v)) {
40077 return label.rank;
40078 }
40079 visited[v] = true;
40080
40081 var rank = _.min(_.map(g.outEdges(v), function(e) {
40082 return dfs(e.w) - g.edge(e).minlen;
40083 }));
40084
40085 if (rank === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3
40086 rank === undefined || // return value of _.map([]) for Lodash 4
40087 rank === null) { // return value of _.map([null])
40088 rank = 0;
40089 }
40090
40091 return (label.rank = rank);
40092 }
40093
40094 _.forEach(g.sources(), dfs);
40095}
40096
40097/*
40098 * Returns the amount of slack for the given edge. The slack is defined as the
40099 * difference between the length of the edge and its minimum length.
40100 */
40101function slack(g, e) {
40102 return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen;
40103}
40104
40105
40106/***/ }),
40107
40108/***/ "./node_modules/dagre/lib/util.js":
40109/*!****************************************!*\
40110 !*** ./node_modules/dagre/lib/util.js ***!
40111 \****************************************/
40112/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
40113
40114"use strict";
40115/* eslint "no-console": off */
40116
40117
40118
40119var _ = __webpack_require__(/*! ./lodash */ "./node_modules/dagre/lib/lodash.js");
40120var Graph = (__webpack_require__(/*! ./graphlib */ "./node_modules/dagre/lib/graphlib.js").Graph);
40121
40122module.exports = {
40123 addDummyNode: addDummyNode,
40124 simplify: simplify,
40125 asNonCompoundGraph: asNonCompoundGraph,
40126 successorWeights: successorWeights,
40127 predecessorWeights: predecessorWeights,
40128 intersectRect: intersectRect,
40129 buildLayerMatrix: buildLayerMatrix,
40130 normalizeRanks: normalizeRanks,
40131 removeEmptyRanks: removeEmptyRanks,
40132 addBorderNode: addBorderNode,
40133 maxRank: maxRank,
40134 partition: partition,
40135 time: time,
40136 notime: notime
40137};
40138
40139/*
40140 * Adds a dummy node to the graph and return v.
40141 */
40142function addDummyNode(g, type, attrs, name) {
40143 var v;
40144 do {
40145 v = _.uniqueId(name);
40146 } while (g.hasNode(v));
40147
40148 attrs.dummy = type;
40149 g.setNode(v, attrs);
40150 return v;
40151}
40152
40153/*
40154 * Returns a new graph with only simple edges. Handles aggregation of data
40155 * associated with multi-edges.
40156 */
40157function simplify(g) {
40158 var simplified = new Graph().setGraph(g.graph());
40159 _.forEach(g.nodes(), function(v) { simplified.setNode(v, g.node(v)); });
40160 _.forEach(g.edges(), function(e) {
40161 var simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 };
40162 var label = g.edge(e);
40163 simplified.setEdge(e.v, e.w, {
40164 weight: simpleLabel.weight + label.weight,
40165 minlen: Math.max(simpleLabel.minlen, label.minlen)
40166 });
40167 });
40168 return simplified;
40169}
40170
40171function asNonCompoundGraph(g) {
40172 var simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph());
40173 _.forEach(g.nodes(), function(v) {
40174 if (!g.children(v).length) {
40175 simplified.setNode(v, g.node(v));
40176 }
40177 });
40178 _.forEach(g.edges(), function(e) {
40179 simplified.setEdge(e, g.edge(e));
40180 });
40181 return simplified;
40182}
40183
40184function successorWeights(g) {
40185 var weightMap = _.map(g.nodes(), function(v) {
40186 var sucs = {};
40187 _.forEach(g.outEdges(v), function(e) {
40188 sucs[e.w] = (sucs[e.w] || 0) + g.edge(e).weight;
40189 });
40190 return sucs;
40191 });
40192 return _.zipObject(g.nodes(), weightMap);
40193}
40194
40195function predecessorWeights(g) {
40196 var weightMap = _.map(g.nodes(), function(v) {
40197 var preds = {};
40198 _.forEach(g.inEdges(v), function(e) {
40199 preds[e.v] = (preds[e.v] || 0) + g.edge(e).weight;
40200 });
40201 return preds;
40202 });
40203 return _.zipObject(g.nodes(), weightMap);
40204}
40205
40206/*
40207 * Finds where a line starting at point ({x, y}) would intersect a rectangle
40208 * ({x, y, width, height}) if it were pointing at the rectangle's center.
40209 */
40210function intersectRect(rect, point) {
40211 var x = rect.x;
40212 var y = rect.y;
40213
40214 // Rectangle intersection algorithm from:
40215 // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes
40216 var dx = point.x - x;
40217 var dy = point.y - y;
40218 var w = rect.width / 2;
40219 var h = rect.height / 2;
40220
40221 if (!dx && !dy) {
40222 throw new Error("Not possible to find intersection inside of the rectangle");
40223 }
40224
40225 var sx, sy;
40226 if (Math.abs(dy) * w > Math.abs(dx) * h) {
40227 // Intersection is top or bottom of rect.
40228 if (dy < 0) {
40229 h = -h;
40230 }
40231 sx = h * dx / dy;
40232 sy = h;
40233 } else {
40234 // Intersection is left or right of rect.
40235 if (dx < 0) {
40236 w = -w;
40237 }
40238 sx = w;
40239 sy = w * dy / dx;
40240 }
40241
40242 return { x: x + sx, y: y + sy };
40243}
40244
40245/*
40246 * Given a DAG with each node assigned "rank" and "order" properties, this
40247 * function will produce a matrix with the ids of each node.
40248 */
40249function buildLayerMatrix(g) {
40250 var layering = _.map(_.range(maxRank(g) + 1), function() { return []; });
40251 _.forEach(g.nodes(), function(v) {
40252 var node = g.node(v);
40253 var rank = node.rank;
40254 if (!_.isUndefined(rank)) {
40255 layering[rank][node.order] = v;
40256 }
40257 });
40258 return layering;
40259}
40260
40261/*
40262 * Adjusts the ranks for all nodes in the graph such that all nodes v have
40263 * rank(v) >= 0 and at least one node w has rank(w) = 0.
40264 */
40265function normalizeRanks(g) {
40266 var min = _.min(_.map(g.nodes(), function(v) { return g.node(v).rank; }));
40267 _.forEach(g.nodes(), function(v) {
40268 var node = g.node(v);
40269 if (_.has(node, "rank")) {
40270 node.rank -= min;
40271 }
40272 });
40273}
40274
40275function removeEmptyRanks(g) {
40276 // Ranks may not start at 0, so we need to offset them
40277 var offset = _.min(_.map(g.nodes(), function(v) { return g.node(v).rank; }));
40278
40279 var layers = [];
40280 _.forEach(g.nodes(), function(v) {
40281 var rank = g.node(v).rank - offset;
40282 if (!layers[rank]) {
40283 layers[rank] = [];
40284 }
40285 layers[rank].push(v);
40286 });
40287
40288 var delta = 0;
40289 var nodeRankFactor = g.graph().nodeRankFactor;
40290 _.forEach(layers, function(vs, i) {
40291 if (_.isUndefined(vs) && i % nodeRankFactor !== 0) {
40292 --delta;
40293 } else if (delta) {
40294 _.forEach(vs, function(v) { g.node(v).rank += delta; });
40295 }
40296 });
40297}
40298
40299function addBorderNode(g, prefix, rank, order) {
40300 var node = {
40301 width: 0,
40302 height: 0
40303 };
40304 if (arguments.length >= 4) {
40305 node.rank = rank;
40306 node.order = order;
40307 }
40308 return addDummyNode(g, "border", node, prefix);
40309}
40310
40311function maxRank(g) {
40312 return _.max(_.map(g.nodes(), function(v) {
40313 var rank = g.node(v).rank;
40314 if (!_.isUndefined(rank)) {
40315 return rank;
40316 }
40317 }));
40318}
40319
40320/*
40321 * Partition a collection into two groups: `lhs` and `rhs`. If the supplied
40322 * function returns true for an entry it goes into `lhs`. Otherwise it goes
40323 * into `rhs.
40324 */
40325function partition(collection, fn) {
40326 var result = { lhs: [], rhs: [] };
40327 _.forEach(collection, function(value) {
40328 if (fn(value)) {
40329 result.lhs.push(value);
40330 } else {
40331 result.rhs.push(value);
40332 }
40333 });
40334 return result;
40335}
40336
40337/*
40338 * Returns a new function that wraps `fn` with a timer. The wrapper logs the
40339 * time it takes to execute the function.
40340 */
40341function time(name, fn) {
40342 var start = _.now();
40343 try {
40344 return fn();
40345 } finally {
40346 console.log(name + " time: " + (_.now() - start) + "ms");
40347 }
40348}
40349
40350function notime(name, fn) {
40351 return fn();
40352}
40353
40354
40355/***/ }),
40356
40357/***/ "./node_modules/dagre/lib/version.js":
40358/*!*******************************************!*\
40359 !*** ./node_modules/dagre/lib/version.js ***!
40360 \*******************************************/
40361/***/ ((module) => {
40362
40363module.exports = "0.8.5";
40364
40365
40366/***/ }),
40367
40368/***/ "./node_modules/dompurify/dist/purify.js":
40369/*!***********************************************!*\
40370 !*** ./node_modules/dompurify/dist/purify.js ***!
40371 \***********************************************/
40372/***/ (function(module) {
40373
40374/*! @license DOMPurify 2.3.10 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.10/LICENSE */
40375
40376(function (global, factory) {
40377 true ? module.exports = factory() :
40378 0;
40379})(this, (function () { 'use strict';
40380
40381 function _typeof(obj) {
40382 "@babel/helpers - typeof";
40383
40384 return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
40385 return typeof obj;
40386 } : function (obj) {
40387 return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
40388 }, _typeof(obj);
40389 }
40390
40391 function _setPrototypeOf(o, p) {
40392 _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
40393 o.__proto__ = p;
40394 return o;
40395 };
40396
40397 return _setPrototypeOf(o, p);
40398 }
40399
40400 function _isNativeReflectConstruct() {
40401 if (typeof Reflect === "undefined" || !Reflect.construct) return false;
40402 if (Reflect.construct.sham) return false;
40403 if (typeof Proxy === "function") return true;
40404
40405 try {
40406 Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
40407 return true;
40408 } catch (e) {
40409 return false;
40410 }
40411 }
40412
40413 function _construct(Parent, args, Class) {
40414 if (_isNativeReflectConstruct()) {
40415 _construct = Reflect.construct;
40416 } else {
40417 _construct = function _construct(Parent, args, Class) {
40418 var a = [null];
40419 a.push.apply(a, args);
40420 var Constructor = Function.bind.apply(Parent, a);
40421 var instance = new Constructor();
40422 if (Class) _setPrototypeOf(instance, Class.prototype);
40423 return instance;
40424 };
40425 }
40426
40427 return _construct.apply(null, arguments);
40428 }
40429
40430 function _toConsumableArray(arr) {
40431 return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
40432 }
40433
40434 function _arrayWithoutHoles(arr) {
40435 if (Array.isArray(arr)) return _arrayLikeToArray(arr);
40436 }
40437
40438 function _iterableToArray(iter) {
40439 if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
40440 }
40441
40442 function _unsupportedIterableToArray(o, minLen) {
40443 if (!o) return;
40444 if (typeof o === "string") return _arrayLikeToArray(o, minLen);
40445 var n = Object.prototype.toString.call(o).slice(8, -1);
40446 if (n === "Object" && o.constructor) n = o.constructor.name;
40447 if (n === "Map" || n === "Set") return Array.from(o);
40448 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
40449 }
40450
40451 function _arrayLikeToArray(arr, len) {
40452 if (len == null || len > arr.length) len = arr.length;
40453
40454 for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
40455
40456 return arr2;
40457 }
40458
40459 function _nonIterableSpread() {
40460 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
40461 }
40462
40463 var hasOwnProperty = Object.hasOwnProperty,
40464 setPrototypeOf = Object.setPrototypeOf,
40465 isFrozen = Object.isFrozen,
40466 getPrototypeOf = Object.getPrototypeOf,
40467 getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
40468 var freeze = Object.freeze,
40469 seal = Object.seal,
40470 create = Object.create; // eslint-disable-line import/no-mutable-exports
40471
40472 var _ref = typeof Reflect !== 'undefined' && Reflect,
40473 apply = _ref.apply,
40474 construct = _ref.construct;
40475
40476 if (!apply) {
40477 apply = function apply(fun, thisValue, args) {
40478 return fun.apply(thisValue, args);
40479 };
40480 }
40481
40482 if (!freeze) {
40483 freeze = function freeze(x) {
40484 return x;
40485 };
40486 }
40487
40488 if (!seal) {
40489 seal = function seal(x) {
40490 return x;
40491 };
40492 }
40493
40494 if (!construct) {
40495 construct = function construct(Func, args) {
40496 return _construct(Func, _toConsumableArray(args));
40497 };
40498 }
40499
40500 var arrayForEach = unapply(Array.prototype.forEach);
40501 var arrayPop = unapply(Array.prototype.pop);
40502 var arrayPush = unapply(Array.prototype.push);
40503 var stringToLowerCase = unapply(String.prototype.toLowerCase);
40504 var stringMatch = unapply(String.prototype.match);
40505 var stringReplace = unapply(String.prototype.replace);
40506 var stringIndexOf = unapply(String.prototype.indexOf);
40507 var stringTrim = unapply(String.prototype.trim);
40508 var regExpTest = unapply(RegExp.prototype.test);
40509 var typeErrorCreate = unconstruct(TypeError);
40510 function unapply(func) {
40511 return function (thisArg) {
40512 for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
40513 args[_key - 1] = arguments[_key];
40514 }
40515
40516 return apply(func, thisArg, args);
40517 };
40518 }
40519 function unconstruct(func) {
40520 return function () {
40521 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
40522 args[_key2] = arguments[_key2];
40523 }
40524
40525 return construct(func, args);
40526 };
40527 }
40528 /* Add properties to a lookup table */
40529
40530 function addToSet(set, array, transformCaseFunc) {
40531 transformCaseFunc = transformCaseFunc ? transformCaseFunc : stringToLowerCase;
40532
40533 if (setPrototypeOf) {
40534 // Make 'in' and truthy checks like Boolean(set.constructor)
40535 // independent of any properties defined on Object.prototype.
40536 // Prevent prototype setters from intercepting set as a this value.
40537 setPrototypeOf(set, null);
40538 }
40539
40540 var l = array.length;
40541
40542 while (l--) {
40543 var element = array[l];
40544
40545 if (typeof element === 'string') {
40546 var lcElement = transformCaseFunc(element);
40547
40548 if (lcElement !== element) {
40549 // Config presets (e.g. tags.js, attrs.js) are immutable.
40550 if (!isFrozen(array)) {
40551 array[l] = lcElement;
40552 }
40553
40554 element = lcElement;
40555 }
40556 }
40557
40558 set[element] = true;
40559 }
40560
40561 return set;
40562 }
40563 /* Shallow clone an object */
40564
40565 function clone(object) {
40566 var newObject = create(null);
40567 var property;
40568
40569 for (property in object) {
40570 if (apply(hasOwnProperty, object, [property])) {
40571 newObject[property] = object[property];
40572 }
40573 }
40574
40575 return newObject;
40576 }
40577 /* IE10 doesn't support __lookupGetter__ so lets'
40578 * simulate it. It also automatically checks
40579 * if the prop is function or getter and behaves
40580 * accordingly. */
40581
40582 function lookupGetter(object, prop) {
40583 while (object !== null) {
40584 var desc = getOwnPropertyDescriptor(object, prop);
40585
40586 if (desc) {
40587 if (desc.get) {
40588 return unapply(desc.get);
40589 }
40590
40591 if (typeof desc.value === 'function') {
40592 return unapply(desc.value);
40593 }
40594 }
40595
40596 object = getPrototypeOf(object);
40597 }
40598
40599 function fallbackValue(element) {
40600 console.warn('fallback value for', element);
40601 return null;
40602 }
40603
40604 return fallbackValue;
40605 }
40606
40607 var html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']); // SVG
40608
40609 var svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);
40610 var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']); // List of SVG elements that are disallowed by default.
40611 // We still need to know them so that we can do namespace
40612 // checks properly in case one wants to add them to
40613 // allow-list.
40614
40615 var svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);
40616 var mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']); // Similarly to SVG, we want to know all MathML elements,
40617 // even those that we disallow by default.
40618
40619 var mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);
40620 var text = freeze(['#text']);
40621
40622 var html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);
40623 var svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
40624 var mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);
40625 var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);
40626
40627 var MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode
40628
40629 var ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
40630 var DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]/); // eslint-disable-line no-useless-escape
40631
40632 var ARIA_ATTR = seal(/^aria-[\-\w]+$/); // eslint-disable-line no-useless-escape
40633
40634 var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i // eslint-disable-line no-useless-escape
40635 );
40636 var IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i);
40637 var ATTR_WHITESPACE = seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g // eslint-disable-line no-control-regex
40638 );
40639 var DOCTYPE_NAME = seal(/^html$/i);
40640
40641 var getGlobal = function getGlobal() {
40642 return typeof window === 'undefined' ? null : window;
40643 };
40644 /**
40645 * Creates a no-op policy for internal use only.
40646 * Don't export this function outside this module!
40647 * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.
40648 * @param {Document} document The document object (to determine policy name suffix)
40649 * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types
40650 * are not supported).
40651 */
40652
40653
40654 var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {
40655 if (_typeof(trustedTypes) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {
40656 return null;
40657 } // Allow the callers to control the unique policy name
40658 // by adding a data-tt-policy-suffix to the script element with the DOMPurify.
40659 // Policy creation with duplicate names throws in Trusted Types.
40660
40661
40662 var suffix = null;
40663 var ATTR_NAME = 'data-tt-policy-suffix';
40664
40665 if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {
40666 suffix = document.currentScript.getAttribute(ATTR_NAME);
40667 }
40668
40669 var policyName = 'dompurify' + (suffix ? '#' + suffix : '');
40670
40671 try {
40672 return trustedTypes.createPolicy(policyName, {
40673 createHTML: function createHTML(html) {
40674 return html;
40675 },
40676 createScriptURL: function createScriptURL(scriptUrl) {
40677 return scriptUrl;
40678 }
40679 });
40680 } catch (_) {
40681 // Policy creation failed (most likely another DOMPurify script has
40682 // already run). Skip creating the policy, as this will only cause errors
40683 // if TT are enforced.
40684 console.warn('TrustedTypes policy ' + policyName + ' could not be created.');
40685 return null;
40686 }
40687 };
40688
40689 function createDOMPurify() {
40690 var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
40691
40692 var DOMPurify = function DOMPurify(root) {
40693 return createDOMPurify(root);
40694 };
40695 /**
40696 * Version label, exposed for easier checks
40697 * if DOMPurify is up to date or not
40698 */
40699
40700
40701 DOMPurify.version = '2.3.10';
40702 /**
40703 * Array of elements that DOMPurify removed during sanitation.
40704 * Empty if nothing was removed.
40705 */
40706
40707 DOMPurify.removed = [];
40708
40709 if (!window || !window.document || window.document.nodeType !== 9) {
40710 // Not running in a browser, provide a factory function
40711 // so that you can pass your own Window
40712 DOMPurify.isSupported = false;
40713 return DOMPurify;
40714 }
40715
40716 var originalDocument = window.document;
40717 var document = window.document;
40718 var DocumentFragment = window.DocumentFragment,
40719 HTMLTemplateElement = window.HTMLTemplateElement,
40720 Node = window.Node,
40721 Element = window.Element,
40722 NodeFilter = window.NodeFilter,
40723 _window$NamedNodeMap = window.NamedNodeMap,
40724 NamedNodeMap = _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,
40725 HTMLFormElement = window.HTMLFormElement,
40726 DOMParser = window.DOMParser,
40727 trustedTypes = window.trustedTypes;
40728 var ElementPrototype = Element.prototype;
40729 var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');
40730 var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');
40731 var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');
40732 var getParentNode = lookupGetter(ElementPrototype, 'parentNode'); // As per issue #47, the web-components registry is inherited by a
40733 // new document created via createHTMLDocument. As per the spec
40734 // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)
40735 // a new empty registry is used when creating a template contents owner
40736 // document, so we use that as our parent document to ensure nothing
40737 // is inherited.
40738
40739 if (typeof HTMLTemplateElement === 'function') {
40740 var template = document.createElement('template');
40741
40742 if (template.content && template.content.ownerDocument) {
40743 document = template.content.ownerDocument;
40744 }
40745 }
40746
40747 var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);
40748
40749 var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';
40750 var _document = document,
40751 implementation = _document.implementation,
40752 createNodeIterator = _document.createNodeIterator,
40753 createDocumentFragment = _document.createDocumentFragment,
40754 getElementsByTagName = _document.getElementsByTagName;
40755 var importNode = originalDocument.importNode;
40756 var documentMode = {};
40757
40758 try {
40759 documentMode = clone(document).documentMode ? document.documentMode : {};
40760 } catch (_) {}
40761
40762 var hooks = {};
40763 /**
40764 * Expose whether this browser supports running the full DOMPurify.
40765 */
40766
40767 DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;
40768 var MUSTACHE_EXPR$1 = MUSTACHE_EXPR,
40769 ERB_EXPR$1 = ERB_EXPR,
40770 DATA_ATTR$1 = DATA_ATTR,
40771 ARIA_ATTR$1 = ARIA_ATTR,
40772 IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA,
40773 ATTR_WHITESPACE$1 = ATTR_WHITESPACE;
40774 var IS_ALLOWED_URI$1 = IS_ALLOWED_URI;
40775 /**
40776 * We consider the elements and attributes below to be safe. Ideally
40777 * don't add any new ones but feel free to remove unwanted ones.
40778 */
40779
40780 /* allowed element names */
40781
40782 var ALLOWED_TAGS = null;
40783 var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));
40784 /* Allowed attribute names */
40785
40786 var ALLOWED_ATTR = null;
40787 var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));
40788 /*
40789 * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.
40790 * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)
40791 * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)
40792 * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.
40793 */
40794
40795 var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {
40796 tagNameCheck: {
40797 writable: true,
40798 configurable: false,
40799 enumerable: true,
40800 value: null
40801 },
40802 attributeNameCheck: {
40803 writable: true,
40804 configurable: false,
40805 enumerable: true,
40806 value: null
40807 },
40808 allowCustomizedBuiltInElements: {
40809 writable: true,
40810 configurable: false,
40811 enumerable: true,
40812 value: false
40813 }
40814 }));
40815 /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */
40816
40817 var FORBID_TAGS = null;
40818 /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */
40819
40820 var FORBID_ATTR = null;
40821 /* Decide if ARIA attributes are okay */
40822
40823 var ALLOW_ARIA_ATTR = true;
40824 /* Decide if custom data attributes are okay */
40825
40826 var ALLOW_DATA_ATTR = true;
40827 /* Decide if unknown protocols are okay */
40828
40829 var ALLOW_UNKNOWN_PROTOCOLS = false;
40830 /* Output should be safe for common template engines.
40831 * This means, DOMPurify removes data attributes, mustaches and ERB
40832 */
40833
40834 var SAFE_FOR_TEMPLATES = false;
40835 /* Decide if document with <html>... should be returned */
40836
40837 var WHOLE_DOCUMENT = false;
40838 /* Track whether config is already set on this instance of DOMPurify. */
40839
40840 var SET_CONFIG = false;
40841 /* Decide if all elements (e.g. style, script) must be children of
40842 * document.body. By default, browsers might move them to document.head */
40843
40844 var FORCE_BODY = false;
40845 /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html
40846 * string (or a TrustedHTML object if Trusted Types are supported).
40847 * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead
40848 */
40849
40850 var RETURN_DOM = false;
40851 /* Decide if a DOM `DocumentFragment` should be returned, instead of a html
40852 * string (or a TrustedHTML object if Trusted Types are supported) */
40853
40854 var RETURN_DOM_FRAGMENT = false;
40855 /* Try to return a Trusted Type object instead of a string, return a string in
40856 * case Trusted Types are not supported */
40857
40858 var RETURN_TRUSTED_TYPE = false;
40859 /* Output should be free from DOM clobbering attacks? */
40860
40861 var SANITIZE_DOM = true;
40862 /* Keep element content when removing element? */
40863
40864 var KEEP_CONTENT = true;
40865 /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead
40866 * of importing it into a new Document and returning a sanitized copy */
40867
40868 var IN_PLACE = false;
40869 /* Allow usage of profiles like html, svg and mathMl */
40870
40871 var USE_PROFILES = {};
40872 /* Tags to ignore content of when KEEP_CONTENT is true */
40873
40874 var FORBID_CONTENTS = null;
40875 var DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);
40876 /* Tags that are safe for data: URIs */
40877
40878 var DATA_URI_TAGS = null;
40879 var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);
40880 /* Attributes safe for values like "javascript:" */
40881
40882 var URI_SAFE_ATTRIBUTES = null;
40883 var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);
40884 var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';
40885 var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';
40886 var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';
40887 /* Document namespace */
40888
40889 var NAMESPACE = HTML_NAMESPACE;
40890 var IS_EMPTY_INPUT = false;
40891 /* Parsing of strict XHTML documents */
40892
40893 var PARSER_MEDIA_TYPE;
40894 var SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];
40895 var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';
40896 var transformCaseFunc;
40897 /* Keep a reference to config to pass to hooks */
40898
40899 var CONFIG = null;
40900 /* Ideally, do not touch anything below this line */
40901
40902 /* ______________________________________________ */
40903
40904 var formElement = document.createElement('form');
40905
40906 var isRegexOrFunction = function isRegexOrFunction(testValue) {
40907 return testValue instanceof RegExp || testValue instanceof Function;
40908 };
40909 /**
40910 * _parseConfig
40911 *
40912 * @param {Object} cfg optional config literal
40913 */
40914 // eslint-disable-next-line complexity
40915
40916
40917 var _parseConfig = function _parseConfig(cfg) {
40918 if (CONFIG && CONFIG === cfg) {
40919 return;
40920 }
40921 /* Shield configuration object from tampering */
40922
40923
40924 if (!cfg || _typeof(cfg) !== 'object') {
40925 cfg = {};
40926 }
40927 /* Shield configuration object from prototype pollution */
40928
40929
40930 cfg = clone(cfg);
40931 PARSER_MEDIA_TYPE = // eslint-disable-next-line unicorn/prefer-includes
40932 SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE; // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.
40933
40934 transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? function (x) {
40935 return x;
40936 } : stringToLowerCase;
40937 /* Set configuration parameters */
40938
40939 ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;
40940 ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;
40941 URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-line indent
40942 cfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent
40943 transformCaseFunc // eslint-disable-line indent
40944 ) // eslint-disable-line indent
40945 : DEFAULT_URI_SAFE_ATTRIBUTES;
40946 DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), // eslint-disable-line indent
40947 cfg.ADD_DATA_URI_TAGS, // eslint-disable-line indent
40948 transformCaseFunc // eslint-disable-line indent
40949 ) // eslint-disable-line indent
40950 : DEFAULT_DATA_URI_TAGS;
40951 FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;
40952 FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};
40953 FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};
40954 USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;
40955 ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true
40956
40957 ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true
40958
40959 ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false
40960
40961 SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false
40962
40963 WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false
40964
40965 RETURN_DOM = cfg.RETURN_DOM || false; // Default false
40966
40967 RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false
40968
40969 RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false
40970
40971 FORCE_BODY = cfg.FORCE_BODY || false; // Default false
40972
40973 SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true
40974
40975 KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true
40976
40977 IN_PLACE = cfg.IN_PLACE || false; // Default false
40978
40979 IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;
40980 NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
40981
40982 if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {
40983 CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
40984 }
40985
40986 if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {
40987 CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;
40988 }
40989
40990 if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {
40991 CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;
40992 }
40993
40994 if (SAFE_FOR_TEMPLATES) {
40995 ALLOW_DATA_ATTR = false;
40996 }
40997
40998 if (RETURN_DOM_FRAGMENT) {
40999 RETURN_DOM = true;
41000 }
41001 /* Parse profile info */
41002
41003
41004 if (USE_PROFILES) {
41005 ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));
41006 ALLOWED_ATTR = [];
41007
41008 if (USE_PROFILES.html === true) {
41009 addToSet(ALLOWED_TAGS, html$1);
41010 addToSet(ALLOWED_ATTR, html);
41011 }
41012
41013 if (USE_PROFILES.svg === true) {
41014 addToSet(ALLOWED_TAGS, svg$1);
41015 addToSet(ALLOWED_ATTR, svg);
41016 addToSet(ALLOWED_ATTR, xml);
41017 }
41018
41019 if (USE_PROFILES.svgFilters === true) {
41020 addToSet(ALLOWED_TAGS, svgFilters);
41021 addToSet(ALLOWED_ATTR, svg);
41022 addToSet(ALLOWED_ATTR, xml);
41023 }
41024
41025 if (USE_PROFILES.mathMl === true) {
41026 addToSet(ALLOWED_TAGS, mathMl$1);
41027 addToSet(ALLOWED_ATTR, mathMl);
41028 addToSet(ALLOWED_ATTR, xml);
41029 }
41030 }
41031 /* Merge configuration parameters */
41032
41033
41034 if (cfg.ADD_TAGS) {
41035 if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
41036 ALLOWED_TAGS = clone(ALLOWED_TAGS);
41037 }
41038
41039 addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
41040 }
41041
41042 if (cfg.ADD_ATTR) {
41043 if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
41044 ALLOWED_ATTR = clone(ALLOWED_ATTR);
41045 }
41046
41047 addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
41048 }
41049
41050 if (cfg.ADD_URI_SAFE_ATTR) {
41051 addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
41052 }
41053
41054 if (cfg.FORBID_CONTENTS) {
41055 if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
41056 FORBID_CONTENTS = clone(FORBID_CONTENTS);
41057 }
41058
41059 addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
41060 }
41061 /* Add #text in case KEEP_CONTENT is set to true */
41062
41063
41064 if (KEEP_CONTENT) {
41065 ALLOWED_TAGS['#text'] = true;
41066 }
41067 /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */
41068
41069
41070 if (WHOLE_DOCUMENT) {
41071 addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);
41072 }
41073 /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */
41074
41075
41076 if (ALLOWED_TAGS.table) {
41077 addToSet(ALLOWED_TAGS, ['tbody']);
41078 delete FORBID_TAGS.tbody;
41079 } // Prevent further manipulation of configuration.
41080 // Not available in IE8, Safari 5, etc.
41081
41082
41083 if (freeze) {
41084 freeze(cfg);
41085 }
41086
41087 CONFIG = cfg;
41088 };
41089
41090 var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);
41091 var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']); // Certain elements are allowed in both SVG and HTML
41092 // namespace. We need to specify them explicitly
41093 // so that they don't get erroneously deleted from
41094 // HTML namespace.
41095
41096 var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);
41097 /* Keep track of all possible SVG and MathML tags
41098 * so that we can perform the namespace checks
41099 * correctly. */
41100
41101 var ALL_SVG_TAGS = addToSet({}, svg$1);
41102 addToSet(ALL_SVG_TAGS, svgFilters);
41103 addToSet(ALL_SVG_TAGS, svgDisallowed);
41104 var ALL_MATHML_TAGS = addToSet({}, mathMl$1);
41105 addToSet(ALL_MATHML_TAGS, mathMlDisallowed);
41106 /**
41107 *
41108 *
41109 * @param {Element} element a DOM element whose namespace is being checked
41110 * @returns {boolean} Return false if the element has a
41111 * namespace that a spec-compliant parser would never
41112 * return. Return true otherwise.
41113 */
41114
41115 var _checkValidNamespace = function _checkValidNamespace(element) {
41116 var parent = getParentNode(element); // In JSDOM, if we're inside shadow DOM, then parentNode
41117 // can be null. We just simulate parent in this case.
41118
41119 if (!parent || !parent.tagName) {
41120 parent = {
41121 namespaceURI: HTML_NAMESPACE,
41122 tagName: 'template'
41123 };
41124 }
41125
41126 var tagName = stringToLowerCase(element.tagName);
41127 var parentTagName = stringToLowerCase(parent.tagName);
41128
41129 if (element.namespaceURI === SVG_NAMESPACE) {
41130 // The only way to switch from HTML namespace to SVG
41131 // is via <svg>. If it happens via any other tag, then
41132 // it should be killed.
41133 if (parent.namespaceURI === HTML_NAMESPACE) {
41134 return tagName === 'svg';
41135 } // The only way to switch from MathML to SVG is via
41136 // svg if parent is either <annotation-xml> or MathML
41137 // text integration points.
41138
41139
41140 if (parent.namespaceURI === MATHML_NAMESPACE) {
41141 return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
41142 } // We only allow elements that are defined in SVG
41143 // spec. All others are disallowed in SVG namespace.
41144
41145
41146 return Boolean(ALL_SVG_TAGS[tagName]);
41147 }
41148
41149 if (element.namespaceURI === MATHML_NAMESPACE) {
41150 // The only way to switch from HTML namespace to MathML
41151 // is via <math>. If it happens via any other tag, then
41152 // it should be killed.
41153 if (parent.namespaceURI === HTML_NAMESPACE) {
41154 return tagName === 'math';
41155 } // The only way to switch from SVG to MathML is via
41156 // <math> and HTML integration points
41157
41158
41159 if (parent.namespaceURI === SVG_NAMESPACE) {
41160 return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];
41161 } // We only allow elements that are defined in MathML
41162 // spec. All others are disallowed in MathML namespace.
41163
41164
41165 return Boolean(ALL_MATHML_TAGS[tagName]);
41166 }
41167
41168 if (element.namespaceURI === HTML_NAMESPACE) {
41169 // The only way to switch from SVG to HTML is via
41170 // HTML integration points, and from MathML to HTML
41171 // is via MathML text integration points
41172 if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
41173 return false;
41174 }
41175
41176 if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
41177 return false;
41178 } // We disallow tags that are specific for MathML
41179 // or SVG and should never appear in HTML namespace
41180
41181
41182 return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
41183 } // The code should never reach this place (this means
41184 // that the element somehow got namespace that is not
41185 // HTML, SVG or MathML). Return false just in case.
41186
41187
41188 return false;
41189 };
41190 /**
41191 * _forceRemove
41192 *
41193 * @param {Node} node a DOM node
41194 */
41195
41196
41197 var _forceRemove = function _forceRemove(node) {
41198 arrayPush(DOMPurify.removed, {
41199 element: node
41200 });
41201
41202 try {
41203 // eslint-disable-next-line unicorn/prefer-dom-node-remove
41204 node.parentNode.removeChild(node);
41205 } catch (_) {
41206 try {
41207 node.outerHTML = emptyHTML;
41208 } catch (_) {
41209 node.remove();
41210 }
41211 }
41212 };
41213 /**
41214 * _removeAttribute
41215 *
41216 * @param {String} name an Attribute name
41217 * @param {Node} node a DOM node
41218 */
41219
41220
41221 var _removeAttribute = function _removeAttribute(name, node) {
41222 try {
41223 arrayPush(DOMPurify.removed, {
41224 attribute: node.getAttributeNode(name),
41225 from: node
41226 });
41227 } catch (_) {
41228 arrayPush(DOMPurify.removed, {
41229 attribute: null,
41230 from: node
41231 });
41232 }
41233
41234 node.removeAttribute(name); // We void attribute values for unremovable "is"" attributes
41235
41236 if (name === 'is' && !ALLOWED_ATTR[name]) {
41237 if (RETURN_DOM || RETURN_DOM_FRAGMENT) {
41238 try {
41239 _forceRemove(node);
41240 } catch (_) {}
41241 } else {
41242 try {
41243 node.setAttribute(name, '');
41244 } catch (_) {}
41245 }
41246 }
41247 };
41248 /**
41249 * _initDocument
41250 *
41251 * @param {String} dirty a string of dirty markup
41252 * @return {Document} a DOM, filled with the dirty markup
41253 */
41254
41255
41256 var _initDocument = function _initDocument(dirty) {
41257 /* Create a HTML document */
41258 var doc;
41259 var leadingWhitespace;
41260
41261 if (FORCE_BODY) {
41262 dirty = '<remove></remove>' + dirty;
41263 } else {
41264 /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */
41265 var matches = stringMatch(dirty, /^[\r\n\t ]+/);
41266 leadingWhitespace = matches && matches[0];
41267 }
41268
41269 if (PARSER_MEDIA_TYPE === 'application/xhtml+xml') {
41270 // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)
41271 dirty = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + dirty + '</body></html>';
41272 }
41273
41274 var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;
41275 /*
41276 * Use the DOMParser API by default, fallback later if needs be
41277 * DOMParser not work for svg when has multiple root element.
41278 */
41279
41280 if (NAMESPACE === HTML_NAMESPACE) {
41281 try {
41282 doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
41283 } catch (_) {}
41284 }
41285 /* Use createHTMLDocument in case DOMParser is not available */
41286
41287
41288 if (!doc || !doc.documentElement) {
41289 doc = implementation.createDocument(NAMESPACE, 'template', null);
41290
41291 try {
41292 doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;
41293 } catch (_) {// Syntax error if dirtyPayload is invalid xml
41294 }
41295 }
41296
41297 var body = doc.body || doc.documentElement;
41298
41299 if (dirty && leadingWhitespace) {
41300 body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);
41301 }
41302 /* Work on whole document or just its body */
41303
41304
41305 if (NAMESPACE === HTML_NAMESPACE) {
41306 return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];
41307 }
41308
41309 return WHOLE_DOCUMENT ? doc.documentElement : body;
41310 };
41311 /**
41312 * _createIterator
41313 *
41314 * @param {Document} root document/fragment to create iterator for
41315 * @return {Iterator} iterator instance
41316 */
41317
41318
41319 var _createIterator = function _createIterator(root) {
41320 return createNodeIterator.call(root.ownerDocument || root, root, // eslint-disable-next-line no-bitwise
41321 NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);
41322 };
41323 /**
41324 * _isClobbered
41325 *
41326 * @param {Node} elm element to check for clobbering attacks
41327 * @return {Boolean} true if clobbered, false if safe
41328 */
41329
41330
41331 var _isClobbered = function _isClobbered(elm) {
41332 return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function');
41333 };
41334 /**
41335 * _isNode
41336 *
41337 * @param {Node} obj object to check whether it's a DOM node
41338 * @return {Boolean} true is object is a DOM node
41339 */
41340
41341
41342 var _isNode = function _isNode(object) {
41343 return _typeof(Node) === 'object' ? object instanceof Node : object && _typeof(object) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';
41344 };
41345 /**
41346 * _executeHook
41347 * Execute user configurable hooks
41348 *
41349 * @param {String} entryPoint Name of the hook's entry point
41350 * @param {Node} currentNode node to work on with the hook
41351 * @param {Object} data additional hook parameters
41352 */
41353
41354
41355 var _executeHook = function _executeHook(entryPoint, currentNode, data) {
41356 if (!hooks[entryPoint]) {
41357 return;
41358 }
41359
41360 arrayForEach(hooks[entryPoint], function (hook) {
41361 hook.call(DOMPurify, currentNode, data, CONFIG);
41362 });
41363 };
41364 /**
41365 * _sanitizeElements
41366 *
41367 * @protect nodeName
41368 * @protect textContent
41369 * @protect removeChild
41370 *
41371 * @param {Node} currentNode to check for permission to exist
41372 * @return {Boolean} true if node was killed, false if left alive
41373 */
41374
41375
41376 var _sanitizeElements = function _sanitizeElements(currentNode) {
41377 var content;
41378 /* Execute a hook if present */
41379
41380 _executeHook('beforeSanitizeElements', currentNode, null);
41381 /* Check if element is clobbered or can clobber */
41382
41383
41384 if (_isClobbered(currentNode)) {
41385 _forceRemove(currentNode);
41386
41387 return true;
41388 }
41389 /* Check if tagname contains Unicode */
41390
41391
41392 if (regExpTest(/[\u0080-\uFFFF]/, currentNode.nodeName)) {
41393 _forceRemove(currentNode);
41394
41395 return true;
41396 }
41397 /* Now let's check the element's type and name */
41398
41399
41400 var tagName = transformCaseFunc(currentNode.nodeName);
41401 /* Execute a hook if present */
41402
41403 _executeHook('uponSanitizeElement', currentNode, {
41404 tagName: tagName,
41405 allowedTags: ALLOWED_TAGS
41406 });
41407 /* Detect mXSS attempts abusing namespace confusion */
41408
41409
41410 if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) {
41411 _forceRemove(currentNode);
41412
41413 return true;
41414 }
41415 /* Mitigate a problem with templates inside select */
41416
41417
41418 if (tagName === 'select' && regExpTest(/<template/i, currentNode.innerHTML)) {
41419 _forceRemove(currentNode);
41420
41421 return true;
41422 }
41423 /* Remove element if anything forbids its presence */
41424
41425
41426 if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
41427 /* Check if we have a custom element to handle */
41428 if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {
41429 if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;
41430 if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;
41431 }
41432 /* Keep content except for bad-listed elements */
41433
41434
41435 if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
41436 var parentNode = getParentNode(currentNode) || currentNode.parentNode;
41437 var childNodes = getChildNodes(currentNode) || currentNode.childNodes;
41438
41439 if (childNodes && parentNode) {
41440 var childCount = childNodes.length;
41441
41442 for (var i = childCount - 1; i >= 0; --i) {
41443 parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));
41444 }
41445 }
41446 }
41447
41448 _forceRemove(currentNode);
41449
41450 return true;
41451 }
41452 /* Check whether element has a valid namespace */
41453
41454
41455 if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {
41456 _forceRemove(currentNode);
41457
41458 return true;
41459 }
41460
41461 if ((tagName === 'noscript' || tagName === 'noembed') && regExpTest(/<\/no(script|embed)/i, currentNode.innerHTML)) {
41462 _forceRemove(currentNode);
41463
41464 return true;
41465 }
41466 /* Sanitize element content to be template-safe */
41467
41468
41469 if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {
41470 /* Get the element's text content */
41471 content = currentNode.textContent;
41472 content = stringReplace(content, MUSTACHE_EXPR$1, ' ');
41473 content = stringReplace(content, ERB_EXPR$1, ' ');
41474
41475 if (currentNode.textContent !== content) {
41476 arrayPush(DOMPurify.removed, {
41477 element: currentNode.cloneNode()
41478 });
41479 currentNode.textContent = content;
41480 }
41481 }
41482 /* Execute a hook if present */
41483
41484
41485 _executeHook('afterSanitizeElements', currentNode, null);
41486
41487 return false;
41488 };
41489 /**
41490 * _isValidAttribute
41491 *
41492 * @param {string} lcTag Lowercase tag name of containing element.
41493 * @param {string} lcName Lowercase attribute name.
41494 * @param {string} value Attribute value.
41495 * @return {Boolean} Returns true if `value` is valid, otherwise false.
41496 */
41497 // eslint-disable-next-line complexity
41498
41499
41500 var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {
41501 /* Make sure attribute cannot clobber */
41502 if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {
41503 return false;
41504 }
41505 /* Allow valid data-* attributes: At least one character after "-"
41506 (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
41507 XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)
41508 We don't need to check the value; it's always URI safe. */
41509
41510
41511 if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
41512 if ( // First condition does a very basic check if a) it's basically a valid custom element tagname AND
41513 // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
41514 // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
41515 _basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND
41516 // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
41517 lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {
41518 return false;
41519 }
41520 /* Check value is safe. First, is attr inert? If so, is safe */
41521
41522 } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if (!value) ; else {
41523 return false;
41524 }
41525
41526 return true;
41527 };
41528 /**
41529 * _basicCustomElementCheck
41530 * checks if at least one dash is included in tagName, and it's not the first char
41531 * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name
41532 * @param {string} tagName name of the tag of the node to sanitize
41533 */
41534
41535
41536 var _basicCustomElementTest = function _basicCustomElementTest(tagName) {
41537 return tagName.indexOf('-') > 0;
41538 };
41539 /**
41540 * _sanitizeAttributes
41541 *
41542 * @protect attributes
41543 * @protect nodeName
41544 * @protect removeAttribute
41545 * @protect setAttribute
41546 *
41547 * @param {Node} currentNode to sanitize
41548 */
41549
41550
41551 var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {
41552 var attr;
41553 var value;
41554 var lcName;
41555 var l;
41556 /* Execute a hook if present */
41557
41558 _executeHook('beforeSanitizeAttributes', currentNode, null);
41559
41560 var attributes = currentNode.attributes;
41561 /* Check if we have attributes; if not we might have a text node */
41562
41563 if (!attributes) {
41564 return;
41565 }
41566
41567 var hookEvent = {
41568 attrName: '',
41569 attrValue: '',
41570 keepAttr: true,
41571 allowedAttributes: ALLOWED_ATTR
41572 };
41573 l = attributes.length;
41574 /* Go backwards over all attributes; safely remove bad ones */
41575
41576 while (l--) {
41577 attr = attributes[l];
41578 var _attr = attr,
41579 name = _attr.name,
41580 namespaceURI = _attr.namespaceURI;
41581 value = name === 'value' ? attr.value : stringTrim(attr.value);
41582 lcName = transformCaseFunc(name);
41583 /* Execute a hook if present */
41584
41585 hookEvent.attrName = lcName;
41586 hookEvent.attrValue = value;
41587 hookEvent.keepAttr = true;
41588 hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set
41589
41590 _executeHook('uponSanitizeAttribute', currentNode, hookEvent);
41591
41592 value = hookEvent.attrValue;
41593 /* Did the hooks approve of the attribute? */
41594
41595 if (hookEvent.forceKeepAttr) {
41596 continue;
41597 }
41598 /* Remove attribute */
41599
41600
41601 _removeAttribute(name, currentNode);
41602 /* Did the hooks approve of the attribute? */
41603
41604
41605 if (!hookEvent.keepAttr) {
41606 continue;
41607 }
41608 /* Work around a security issue in jQuery 3.0 */
41609
41610
41611 if (regExpTest(/\/>/i, value)) {
41612 _removeAttribute(name, currentNode);
41613
41614 continue;
41615 }
41616 /* Sanitize attribute content to be template-safe */
41617
41618
41619 if (SAFE_FOR_TEMPLATES) {
41620 value = stringReplace(value, MUSTACHE_EXPR$1, ' ');
41621 value = stringReplace(value, ERB_EXPR$1, ' ');
41622 }
41623 /* Is `value` valid for this attribute? */
41624
41625
41626 var lcTag = transformCaseFunc(currentNode.nodeName);
41627
41628 if (!_isValidAttribute(lcTag, lcName, value)) {
41629 continue;
41630 }
41631 /* Handle attributes that require Trusted Types */
41632
41633
41634 if (trustedTypesPolicy && _typeof(trustedTypes) === 'object' && typeof trustedTypes.getAttributeType === 'function') {
41635 if (namespaceURI) ; else {
41636 switch (trustedTypes.getAttributeType(lcTag, lcName)) {
41637 case 'TrustedHTML':
41638 value = trustedTypesPolicy.createHTML(value);
41639 break;
41640
41641 case 'TrustedScriptURL':
41642 value = trustedTypesPolicy.createScriptURL(value);
41643 break;
41644 }
41645 }
41646 }
41647 /* Handle invalid data-* attribute set by try-catching it */
41648
41649
41650 try {
41651 if (namespaceURI) {
41652 currentNode.setAttributeNS(namespaceURI, name, value);
41653 } else {
41654 /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. "x-schema". */
41655 currentNode.setAttribute(name, value);
41656 }
41657
41658 arrayPop(DOMPurify.removed);
41659 } catch (_) {}
41660 }
41661 /* Execute a hook if present */
41662
41663
41664 _executeHook('afterSanitizeAttributes', currentNode, null);
41665 };
41666 /**
41667 * _sanitizeShadowDOM
41668 *
41669 * @param {DocumentFragment} fragment to iterate over recursively
41670 */
41671
41672
41673 var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {
41674 var shadowNode;
41675
41676 var shadowIterator = _createIterator(fragment);
41677 /* Execute a hook if present */
41678
41679
41680 _executeHook('beforeSanitizeShadowDOM', fragment, null);
41681
41682 while (shadowNode = shadowIterator.nextNode()) {
41683 /* Execute a hook if present */
41684 _executeHook('uponSanitizeShadowNode', shadowNode, null);
41685 /* Sanitize tags and elements */
41686
41687
41688 if (_sanitizeElements(shadowNode)) {
41689 continue;
41690 }
41691 /* Deep shadow DOM detected */
41692
41693
41694 if (shadowNode.content instanceof DocumentFragment) {
41695 _sanitizeShadowDOM(shadowNode.content);
41696 }
41697 /* Check attributes, sanitize if necessary */
41698
41699
41700 _sanitizeAttributes(shadowNode);
41701 }
41702 /* Execute a hook if present */
41703
41704
41705 _executeHook('afterSanitizeShadowDOM', fragment, null);
41706 };
41707 /**
41708 * Sanitize
41709 * Public method providing core sanitation functionality
41710 *
41711 * @param {String|Node} dirty string or DOM node
41712 * @param {Object} configuration object
41713 */
41714 // eslint-disable-next-line complexity
41715
41716
41717 DOMPurify.sanitize = function (dirty, cfg) {
41718 var body;
41719 var importedNode;
41720 var currentNode;
41721 var oldNode;
41722 var returnNode;
41723 /* Make sure we have a string to sanitize.
41724 DO NOT return early, as this will return the wrong type if
41725 the user has requested a DOM object rather than a string */
41726
41727 IS_EMPTY_INPUT = !dirty;
41728
41729 if (IS_EMPTY_INPUT) {
41730 dirty = '<!-->';
41731 }
41732 /* Stringify, in case dirty is an object */
41733
41734
41735 if (typeof dirty !== 'string' && !_isNode(dirty)) {
41736 // eslint-disable-next-line no-negated-condition
41737 if (typeof dirty.toString !== 'function') {
41738 throw typeErrorCreate('toString is not a function');
41739 } else {
41740 dirty = dirty.toString();
41741
41742 if (typeof dirty !== 'string') {
41743 throw typeErrorCreate('dirty is not a string, aborting');
41744 }
41745 }
41746 }
41747 /* Check we can run. Otherwise fall back or ignore */
41748
41749
41750 if (!DOMPurify.isSupported) {
41751 if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {
41752 if (typeof dirty === 'string') {
41753 return window.toStaticHTML(dirty);
41754 }
41755
41756 if (_isNode(dirty)) {
41757 return window.toStaticHTML(dirty.outerHTML);
41758 }
41759 }
41760
41761 return dirty;
41762 }
41763 /* Assign config vars */
41764
41765
41766 if (!SET_CONFIG) {
41767 _parseConfig(cfg);
41768 }
41769 /* Clean up removed elements */
41770
41771
41772 DOMPurify.removed = [];
41773 /* Check if dirty is correctly typed for IN_PLACE */
41774
41775 if (typeof dirty === 'string') {
41776 IN_PLACE = false;
41777 }
41778
41779 if (IN_PLACE) {
41780 /* Do some early pre-sanitization to avoid unsafe root nodes */
41781 if (dirty.nodeName) {
41782 var tagName = transformCaseFunc(dirty.nodeName);
41783
41784 if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
41785 throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');
41786 }
41787 }
41788 } else if (dirty instanceof Node) {
41789 /* If dirty is a DOM element, append to an empty document to avoid
41790 elements being stripped by the parser */
41791 body = _initDocument('<!---->');
41792 importedNode = body.ownerDocument.importNode(dirty, true);
41793
41794 if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {
41795 /* Node is already a body, use as is */
41796 body = importedNode;
41797 } else if (importedNode.nodeName === 'HTML') {
41798 body = importedNode;
41799 } else {
41800 // eslint-disable-next-line unicorn/prefer-dom-node-append
41801 body.appendChild(importedNode);
41802 }
41803 } else {
41804 /* Exit directly if we have nothing to do */
41805 if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && // eslint-disable-next-line unicorn/prefer-includes
41806 dirty.indexOf('<') === -1) {
41807 return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
41808 }
41809 /* Initialize the document to work on */
41810
41811
41812 body = _initDocument(dirty);
41813 /* Check we have a DOM node from the data */
41814
41815 if (!body) {
41816 return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';
41817 }
41818 }
41819 /* Remove first element node (ours) if FORCE_BODY is set */
41820
41821
41822 if (body && FORCE_BODY) {
41823 _forceRemove(body.firstChild);
41824 }
41825 /* Get node iterator */
41826
41827
41828 var nodeIterator = _createIterator(IN_PLACE ? dirty : body);
41829 /* Now start iterating over the created document */
41830
41831
41832 while (currentNode = nodeIterator.nextNode()) {
41833 /* Fix IE's strange behavior with manipulated textNodes #89 */
41834 if (currentNode.nodeType === 3 && currentNode === oldNode) {
41835 continue;
41836 }
41837 /* Sanitize tags and elements */
41838
41839
41840 if (_sanitizeElements(currentNode)) {
41841 continue;
41842 }
41843 /* Shadow DOM detected, sanitize it */
41844
41845
41846 if (currentNode.content instanceof DocumentFragment) {
41847 _sanitizeShadowDOM(currentNode.content);
41848 }
41849 /* Check attributes, sanitize if necessary */
41850
41851
41852 _sanitizeAttributes(currentNode);
41853
41854 oldNode = currentNode;
41855 }
41856
41857 oldNode = null;
41858 /* If we sanitized `dirty` in-place, return it. */
41859
41860 if (IN_PLACE) {
41861 return dirty;
41862 }
41863 /* Return sanitized string or DOM */
41864
41865
41866 if (RETURN_DOM) {
41867 if (RETURN_DOM_FRAGMENT) {
41868 returnNode = createDocumentFragment.call(body.ownerDocument);
41869
41870 while (body.firstChild) {
41871 // eslint-disable-next-line unicorn/prefer-dom-node-append
41872 returnNode.appendChild(body.firstChild);
41873 }
41874 } else {
41875 returnNode = body;
41876 }
41877
41878 if (ALLOWED_ATTR.shadowroot) {
41879 /*
41880 AdoptNode() is not used because internal state is not reset
41881 (e.g. the past names map of a HTMLFormElement), this is safe
41882 in theory but we would rather not risk another attack vector.
41883 The state that is cloned by importNode() is explicitly defined
41884 by the specs.
41885 */
41886 returnNode = importNode.call(originalDocument, returnNode, true);
41887 }
41888
41889 return returnNode;
41890 }
41891
41892 var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;
41893 /* Serialize doctype if allowed */
41894
41895 if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {
41896 serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\n' + serializedHTML;
41897 }
41898 /* Sanitize final string template-safe */
41899
41900
41901 if (SAFE_FOR_TEMPLATES) {
41902 serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$1, ' ');
41903 serializedHTML = stringReplace(serializedHTML, ERB_EXPR$1, ' ');
41904 }
41905
41906 return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
41907 };
41908 /**
41909 * Public method to set the configuration once
41910 * setConfig
41911 *
41912 * @param {Object} cfg configuration object
41913 */
41914
41915
41916 DOMPurify.setConfig = function (cfg) {
41917 _parseConfig(cfg);
41918
41919 SET_CONFIG = true;
41920 };
41921 /**
41922 * Public method to remove the configuration
41923 * clearConfig
41924 *
41925 */
41926
41927
41928 DOMPurify.clearConfig = function () {
41929 CONFIG = null;
41930 SET_CONFIG = false;
41931 };
41932 /**
41933 * Public method to check if an attribute value is valid.
41934 * Uses last set config, if any. Otherwise, uses config defaults.
41935 * isValidAttribute
41936 *
41937 * @param {string} tag Tag name of containing element.
41938 * @param {string} attr Attribute name.
41939 * @param {string} value Attribute value.
41940 * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.
41941 */
41942
41943
41944 DOMPurify.isValidAttribute = function (tag, attr, value) {
41945 /* Initialize shared config vars if necessary. */
41946 if (!CONFIG) {
41947 _parseConfig({});
41948 }
41949
41950 var lcTag = transformCaseFunc(tag);
41951 var lcName = transformCaseFunc(attr);
41952 return _isValidAttribute(lcTag, lcName, value);
41953 };
41954 /**
41955 * AddHook
41956 * Public method to add DOMPurify hooks
41957 *
41958 * @param {String} entryPoint entry point for the hook to add
41959 * @param {Function} hookFunction function to execute
41960 */
41961
41962
41963 DOMPurify.addHook = function (entryPoint, hookFunction) {
41964 if (typeof hookFunction !== 'function') {
41965 return;
41966 }
41967
41968 hooks[entryPoint] = hooks[entryPoint] || [];
41969 arrayPush(hooks[entryPoint], hookFunction);
41970 };
41971 /**
41972 * RemoveHook
41973 * Public method to remove a DOMPurify hook at a given entryPoint
41974 * (pops it from the stack of hooks if more are present)
41975 *
41976 * @param {String} entryPoint entry point for the hook to remove
41977 * @return {Function} removed(popped) hook
41978 */
41979
41980
41981 DOMPurify.removeHook = function (entryPoint) {
41982 if (hooks[entryPoint]) {
41983 return arrayPop(hooks[entryPoint]);
41984 }
41985 };
41986 /**
41987 * RemoveHooks
41988 * Public method to remove all DOMPurify hooks at a given entryPoint
41989 *
41990 * @param {String} entryPoint entry point for the hooks to remove
41991 */
41992
41993
41994 DOMPurify.removeHooks = function (entryPoint) {
41995 if (hooks[entryPoint]) {
41996 hooks[entryPoint] = [];
41997 }
41998 };
41999 /**
42000 * RemoveAllHooks
42001 * Public method to remove all DOMPurify hooks
42002 *
42003 */
42004
42005
42006 DOMPurify.removeAllHooks = function () {
42007 hooks = {};
42008 };
42009
42010 return DOMPurify;
42011 }
42012
42013 var purify = createDOMPurify();
42014
42015 return purify;
42016
42017}));
42018//# sourceMappingURL=purify.js.map
42019
42020
42021/***/ }),
42022
42023/***/ "./node_modules/graphlib/index.js":
42024/*!****************************************!*\
42025 !*** ./node_modules/graphlib/index.js ***!
42026 \****************************************/
42027/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
42028
42029/**
42030 * Copyright (c) 2014, Chris Pettitt
42031 * All rights reserved.
42032 *
42033 * Redistribution and use in source and binary forms, with or without
42034 * modification, are permitted provided that the following conditions are met:
42035 *
42036 * 1. Redistributions of source code must retain the above copyright notice, this
42037 * list of conditions and the following disclaimer.
42038 *
42039 * 2. Redistributions in binary form must reproduce the above copyright notice,
42040 * this list of conditions and the following disclaimer in the documentation
42041 * and/or other materials provided with the distribution.
42042 *
42043 * 3. Neither the name of the copyright holder nor the names of its contributors
42044 * may be used to endorse or promote products derived from this software without
42045 * specific prior written permission.
42046 *
42047 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
42048 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
42049 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
42050 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
42051 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
42052 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
42053 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
42054 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
42055 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
42056 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42057 */
42058
42059var lib = __webpack_require__(/*! ./lib */ "./node_modules/graphlib/lib/index.js");
42060
42061module.exports = {
42062 Graph: lib.Graph,
42063 json: __webpack_require__(/*! ./lib/json */ "./node_modules/graphlib/lib/json.js"),
42064 alg: __webpack_require__(/*! ./lib/alg */ "./node_modules/graphlib/lib/alg/index.js"),
42065 version: lib.version
42066};
42067
42068
42069/***/ }),
42070
42071/***/ "./node_modules/graphlib/lib/alg/components.js":
42072/*!*****************************************************!*\
42073 !*** ./node_modules/graphlib/lib/alg/components.js ***!
42074 \*****************************************************/
42075/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
42076
42077var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
42078
42079module.exports = components;
42080
42081function components(g) {
42082 var visited = {};
42083 var cmpts = [];
42084 var cmpt;
42085
42086 function dfs(v) {
42087 if (_.has(visited, v)) return;
42088 visited[v] = true;
42089 cmpt.push(v);
42090 _.each(g.successors(v), dfs);
42091 _.each(g.predecessors(v), dfs);
42092 }
42093
42094 _.each(g.nodes(), function(v) {
42095 cmpt = [];
42096 dfs(v);
42097 if (cmpt.length) {
42098 cmpts.push(cmpt);
42099 }
42100 });
42101
42102 return cmpts;
42103}
42104
42105
42106/***/ }),
42107
42108/***/ "./node_modules/graphlib/lib/alg/dfs.js":
42109/*!**********************************************!*\
42110 !*** ./node_modules/graphlib/lib/alg/dfs.js ***!
42111 \**********************************************/
42112/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
42113
42114var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
42115
42116module.exports = dfs;
42117
42118/*
42119 * A helper that preforms a pre- or post-order traversal on the input graph
42120 * and returns the nodes in the order they were visited. If the graph is
42121 * undirected then this algorithm will navigate using neighbors. If the graph
42122 * is directed then this algorithm will navigate using successors.
42123 *
42124 * Order must be one of "pre" or "post".
42125 */
42126function dfs(g, vs, order) {
42127 if (!_.isArray(vs)) {
42128 vs = [vs];
42129 }
42130
42131 var navigation = (g.isDirected() ? g.successors : g.neighbors).bind(g);
42132
42133 var acc = [];
42134 var visited = {};
42135 _.each(vs, function(v) {
42136 if (!g.hasNode(v)) {
42137 throw new Error("Graph does not have node: " + v);
42138 }
42139
42140 doDfs(g, v, order === "post", visited, navigation, acc);
42141 });
42142 return acc;
42143}
42144
42145function doDfs(g, v, postorder, visited, navigation, acc) {
42146 if (!_.has(visited, v)) {
42147 visited[v] = true;
42148
42149 if (!postorder) { acc.push(v); }
42150 _.each(navigation(v), function(w) {
42151 doDfs(g, w, postorder, visited, navigation, acc);
42152 });
42153 if (postorder) { acc.push(v); }
42154 }
42155}
42156
42157
42158/***/ }),
42159
42160/***/ "./node_modules/graphlib/lib/alg/dijkstra-all.js":
42161/*!*******************************************************!*\
42162 !*** ./node_modules/graphlib/lib/alg/dijkstra-all.js ***!
42163 \*******************************************************/
42164/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
42165
42166var dijkstra = __webpack_require__(/*! ./dijkstra */ "./node_modules/graphlib/lib/alg/dijkstra.js");
42167var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
42168
42169module.exports = dijkstraAll;
42170
42171function dijkstraAll(g, weightFunc, edgeFunc) {
42172 return _.transform(g.nodes(), function(acc, v) {
42173 acc[v] = dijkstra(g, v, weightFunc, edgeFunc);
42174 }, {});
42175}
42176
42177
42178/***/ }),
42179
42180/***/ "./node_modules/graphlib/lib/alg/dijkstra.js":
42181/*!***************************************************!*\
42182 !*** ./node_modules/graphlib/lib/alg/dijkstra.js ***!
42183 \***************************************************/
42184/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
42185
42186var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
42187var PriorityQueue = __webpack_require__(/*! ../data/priority-queue */ "./node_modules/graphlib/lib/data/priority-queue.js");
42188
42189module.exports = dijkstra;
42190
42191var DEFAULT_WEIGHT_FUNC = _.constant(1);
42192
42193function dijkstra(g, source, weightFn, edgeFn) {
42194 return runDijkstra(g, String(source),
42195 weightFn || DEFAULT_WEIGHT_FUNC,
42196 edgeFn || function(v) { return g.outEdges(v); });
42197}
42198
42199function runDijkstra(g, source, weightFn, edgeFn) {
42200 var results = {};
42201 var pq = new PriorityQueue();
42202 var v, vEntry;
42203
42204 var updateNeighbors = function(edge) {
42205 var w = edge.v !== v ? edge.v : edge.w;
42206 var wEntry = results[w];
42207 var weight = weightFn(edge);
42208 var distance = vEntry.distance + weight;
42209
42210 if (weight < 0) {
42211 throw new Error("dijkstra does not allow negative edge weights. " +
42212 "Bad edge: " + edge + " Weight: " + weight);
42213 }
42214
42215 if (distance < wEntry.distance) {
42216 wEntry.distance = distance;
42217 wEntry.predecessor = v;
42218 pq.decrease(w, distance);
42219 }
42220 };
42221
42222 g.nodes().forEach(function(v) {
42223 var distance = v === source ? 0 : Number.POSITIVE_INFINITY;
42224 results[v] = { distance: distance };
42225 pq.add(v, distance);
42226 });
42227
42228 while (pq.size() > 0) {
42229 v = pq.removeMin();
42230 vEntry = results[v];
42231 if (vEntry.distance === Number.POSITIVE_INFINITY) {
42232 break;
42233 }
42234
42235 edgeFn(v).forEach(updateNeighbors);
42236 }
42237
42238 return results;
42239}
42240
42241
42242/***/ }),
42243
42244/***/ "./node_modules/graphlib/lib/alg/find-cycles.js":
42245/*!******************************************************!*\
42246 !*** ./node_modules/graphlib/lib/alg/find-cycles.js ***!
42247 \******************************************************/
42248/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
42249
42250var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
42251var tarjan = __webpack_require__(/*! ./tarjan */ "./node_modules/graphlib/lib/alg/tarjan.js");
42252
42253module.exports = findCycles;
42254
42255function findCycles(g) {
42256 return _.filter(tarjan(g), function(cmpt) {
42257 return cmpt.length > 1 || (cmpt.length === 1 && g.hasEdge(cmpt[0], cmpt[0]));
42258 });
42259}
42260
42261
42262/***/ }),
42263
42264/***/ "./node_modules/graphlib/lib/alg/floyd-warshall.js":
42265/*!*********************************************************!*\
42266 !*** ./node_modules/graphlib/lib/alg/floyd-warshall.js ***!
42267 \*********************************************************/
42268/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
42269
42270var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
42271
42272module.exports = floydWarshall;
42273
42274var DEFAULT_WEIGHT_FUNC = _.constant(1);
42275
42276function floydWarshall(g, weightFn, edgeFn) {
42277 return runFloydWarshall(g,
42278 weightFn || DEFAULT_WEIGHT_FUNC,
42279 edgeFn || function(v) { return g.outEdges(v); });
42280}
42281
42282function runFloydWarshall(g, weightFn, edgeFn) {
42283 var results = {};
42284 var nodes = g.nodes();
42285
42286 nodes.forEach(function(v) {
42287 results[v] = {};
42288 results[v][v] = { distance: 0 };
42289 nodes.forEach(function(w) {
42290 if (v !== w) {
42291 results[v][w] = { distance: Number.POSITIVE_INFINITY };
42292 }
42293 });
42294 edgeFn(v).forEach(function(edge) {
42295 var w = edge.v === v ? edge.w : edge.v;
42296 var d = weightFn(edge);
42297 results[v][w] = { distance: d, predecessor: v };
42298 });
42299 });
42300
42301 nodes.forEach(function(k) {
42302 var rowK = results[k];
42303 nodes.forEach(function(i) {
42304 var rowI = results[i];
42305 nodes.forEach(function(j) {
42306 var ik = rowI[k];
42307 var kj = rowK[j];
42308 var ij = rowI[j];
42309 var altDistance = ik.distance + kj.distance;
42310 if (altDistance < ij.distance) {
42311 ij.distance = altDistance;
42312 ij.predecessor = kj.predecessor;
42313 }
42314 });
42315 });
42316 });
42317
42318 return results;
42319}
42320
42321
42322/***/ }),
42323
42324/***/ "./node_modules/graphlib/lib/alg/index.js":
42325/*!************************************************!*\
42326 !*** ./node_modules/graphlib/lib/alg/index.js ***!
42327 \************************************************/
42328/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
42329
42330module.exports = {
42331 components: __webpack_require__(/*! ./components */ "./node_modules/graphlib/lib/alg/components.js"),
42332 dijkstra: __webpack_require__(/*! ./dijkstra */ "./node_modules/graphlib/lib/alg/dijkstra.js"),
42333 dijkstraAll: __webpack_require__(/*! ./dijkstra-all */ "./node_modules/graphlib/lib/alg/dijkstra-all.js"),
42334 findCycles: __webpack_require__(/*! ./find-cycles */ "./node_modules/graphlib/lib/alg/find-cycles.js"),
42335 floydWarshall: __webpack_require__(/*! ./floyd-warshall */ "./node_modules/graphlib/lib/alg/floyd-warshall.js"),
42336 isAcyclic: __webpack_require__(/*! ./is-acyclic */ "./node_modules/graphlib/lib/alg/is-acyclic.js"),
42337 postorder: __webpack_require__(/*! ./postorder */ "./node_modules/graphlib/lib/alg/postorder.js"),
42338 preorder: __webpack_require__(/*! ./preorder */ "./node_modules/graphlib/lib/alg/preorder.js"),
42339 prim: __webpack_require__(/*! ./prim */ "./node_modules/graphlib/lib/alg/prim.js"),
42340 tarjan: __webpack_require__(/*! ./tarjan */ "./node_modules/graphlib/lib/alg/tarjan.js"),
42341 topsort: __webpack_require__(/*! ./topsort */ "./node_modules/graphlib/lib/alg/topsort.js")
42342};
42343
42344
42345/***/ }),
42346
42347/***/ "./node_modules/graphlib/lib/alg/is-acyclic.js":
42348/*!*****************************************************!*\
42349 !*** ./node_modules/graphlib/lib/alg/is-acyclic.js ***!
42350 \*****************************************************/
42351/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
42352
42353var topsort = __webpack_require__(/*! ./topsort */ "./node_modules/graphlib/lib/alg/topsort.js");
42354
42355module.exports = isAcyclic;
42356
42357function isAcyclic(g) {
42358 try {
42359 topsort(g);
42360 } catch (e) {
42361 if (e instanceof topsort.CycleException) {
42362 return false;
42363 }
42364 throw e;
42365 }
42366 return true;
42367}
42368
42369
42370/***/ }),
42371
42372/***/ "./node_modules/graphlib/lib/alg/postorder.js":
42373/*!****************************************************!*\
42374 !*** ./node_modules/graphlib/lib/alg/postorder.js ***!
42375 \****************************************************/
42376/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
42377
42378var dfs = __webpack_require__(/*! ./dfs */ "./node_modules/graphlib/lib/alg/dfs.js");
42379
42380module.exports = postorder;
42381
42382function postorder(g, vs) {
42383 return dfs(g, vs, "post");
42384}
42385
42386
42387/***/ }),
42388
42389/***/ "./node_modules/graphlib/lib/alg/preorder.js":
42390/*!***************************************************!*\
42391 !*** ./node_modules/graphlib/lib/alg/preorder.js ***!
42392 \***************************************************/
42393/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
42394
42395var dfs = __webpack_require__(/*! ./dfs */ "./node_modules/graphlib/lib/alg/dfs.js");
42396
42397module.exports = preorder;
42398
42399function preorder(g, vs) {
42400 return dfs(g, vs, "pre");
42401}
42402
42403
42404/***/ }),
42405
42406/***/ "./node_modules/graphlib/lib/alg/prim.js":
42407/*!***********************************************!*\
42408 !*** ./node_modules/graphlib/lib/alg/prim.js ***!
42409 \***********************************************/
42410/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
42411
42412var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
42413var Graph = __webpack_require__(/*! ../graph */ "./node_modules/graphlib/lib/graph.js");
42414var PriorityQueue = __webpack_require__(/*! ../data/priority-queue */ "./node_modules/graphlib/lib/data/priority-queue.js");
42415
42416module.exports = prim;
42417
42418function prim(g, weightFunc) {
42419 var result = new Graph();
42420 var parents = {};
42421 var pq = new PriorityQueue();
42422 var v;
42423
42424 function updateNeighbors(edge) {
42425 var w = edge.v === v ? edge.w : edge.v;
42426 var pri = pq.priority(w);
42427 if (pri !== undefined) {
42428 var edgeWeight = weightFunc(edge);
42429 if (edgeWeight < pri) {
42430 parents[w] = v;
42431 pq.decrease(w, edgeWeight);
42432 }
42433 }
42434 }
42435
42436 if (g.nodeCount() === 0) {
42437 return result;
42438 }
42439
42440 _.each(g.nodes(), function(v) {
42441 pq.add(v, Number.POSITIVE_INFINITY);
42442 result.setNode(v);
42443 });
42444
42445 // Start from an arbitrary node
42446 pq.decrease(g.nodes()[0], 0);
42447
42448 var init = false;
42449 while (pq.size() > 0) {
42450 v = pq.removeMin();
42451 if (_.has(parents, v)) {
42452 result.setEdge(v, parents[v]);
42453 } else if (init) {
42454 throw new Error("Input graph is not connected: " + g);
42455 } else {
42456 init = true;
42457 }
42458
42459 g.nodeEdges(v).forEach(updateNeighbors);
42460 }
42461
42462 return result;
42463}
42464
42465
42466/***/ }),
42467
42468/***/ "./node_modules/graphlib/lib/alg/tarjan.js":
42469/*!*************************************************!*\
42470 !*** ./node_modules/graphlib/lib/alg/tarjan.js ***!
42471 \*************************************************/
42472/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
42473
42474var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
42475
42476module.exports = tarjan;
42477
42478function tarjan(g) {
42479 var index = 0;
42480 var stack = [];
42481 var visited = {}; // node id -> { onStack, lowlink, index }
42482 var results = [];
42483
42484 function dfs(v) {
42485 var entry = visited[v] = {
42486 onStack: true,
42487 lowlink: index,
42488 index: index++
42489 };
42490 stack.push(v);
42491
42492 g.successors(v).forEach(function(w) {
42493 if (!_.has(visited, w)) {
42494 dfs(w);
42495 entry.lowlink = Math.min(entry.lowlink, visited[w].lowlink);
42496 } else if (visited[w].onStack) {
42497 entry.lowlink = Math.min(entry.lowlink, visited[w].index);
42498 }
42499 });
42500
42501 if (entry.lowlink === entry.index) {
42502 var cmpt = [];
42503 var w;
42504 do {
42505 w = stack.pop();
42506 visited[w].onStack = false;
42507 cmpt.push(w);
42508 } while (v !== w);
42509 results.push(cmpt);
42510 }
42511 }
42512
42513 g.nodes().forEach(function(v) {
42514 if (!_.has(visited, v)) {
42515 dfs(v);
42516 }
42517 });
42518
42519 return results;
42520}
42521
42522
42523/***/ }),
42524
42525/***/ "./node_modules/graphlib/lib/alg/topsort.js":
42526/*!**************************************************!*\
42527 !*** ./node_modules/graphlib/lib/alg/topsort.js ***!
42528 \**************************************************/
42529/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
42530
42531var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
42532
42533module.exports = topsort;
42534topsort.CycleException = CycleException;
42535
42536function topsort(g) {
42537 var visited = {};
42538 var stack = {};
42539 var results = [];
42540
42541 function visit(node) {
42542 if (_.has(stack, node)) {
42543 throw new CycleException();
42544 }
42545
42546 if (!_.has(visited, node)) {
42547 stack[node] = true;
42548 visited[node] = true;
42549 _.each(g.predecessors(node), visit);
42550 delete stack[node];
42551 results.push(node);
42552 }
42553 }
42554
42555 _.each(g.sinks(), visit);
42556
42557 if (_.size(visited) !== g.nodeCount()) {
42558 throw new CycleException();
42559 }
42560
42561 return results;
42562}
42563
42564function CycleException() {}
42565CycleException.prototype = new Error(); // must be an instance of Error to pass testing
42566
42567/***/ }),
42568
42569/***/ "./node_modules/graphlib/lib/data/priority-queue.js":
42570/*!**********************************************************!*\
42571 !*** ./node_modules/graphlib/lib/data/priority-queue.js ***!
42572 \**********************************************************/
42573/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
42574
42575var _ = __webpack_require__(/*! ../lodash */ "./node_modules/graphlib/lib/lodash.js");
42576
42577module.exports = PriorityQueue;
42578
42579/**
42580 * A min-priority queue data structure. This algorithm is derived from Cormen,
42581 * et al., "Introduction to Algorithms". The basic idea of a min-priority
42582 * queue is that you can efficiently (in O(1) time) get the smallest key in
42583 * the queue. Adding and removing elements takes O(log n) time. A key can
42584 * have its priority decreased in O(log n) time.
42585 */
42586function PriorityQueue() {
42587 this._arr = [];
42588 this._keyIndices = {};
42589}
42590
42591/**
42592 * Returns the number of elements in the queue. Takes `O(1)` time.
42593 */
42594PriorityQueue.prototype.size = function() {
42595 return this._arr.length;
42596};
42597
42598/**
42599 * Returns the keys that are in the queue. Takes `O(n)` time.
42600 */
42601PriorityQueue.prototype.keys = function() {
42602 return this._arr.map(function(x) { return x.key; });
42603};
42604
42605/**
42606 * Returns `true` if **key** is in the queue and `false` if not.
42607 */
42608PriorityQueue.prototype.has = function(key) {
42609 return _.has(this._keyIndices, key);
42610};
42611
42612/**
42613 * Returns the priority for **key**. If **key** is not present in the queue
42614 * then this function returns `undefined`. Takes `O(1)` time.
42615 *
42616 * @param {Object} key
42617 */
42618PriorityQueue.prototype.priority = function(key) {
42619 var index = this._keyIndices[key];
42620 if (index !== undefined) {
42621 return this._arr[index].priority;
42622 }
42623};
42624
42625/**
42626 * Returns the key for the minimum element in this queue. If the queue is
42627 * empty this function throws an Error. Takes `O(1)` time.
42628 */
42629PriorityQueue.prototype.min = function() {
42630 if (this.size() === 0) {
42631 throw new Error("Queue underflow");
42632 }
42633 return this._arr[0].key;
42634};
42635
42636/**
42637 * Inserts a new key into the priority queue. If the key already exists in
42638 * the queue this function returns `false`; otherwise it will return `true`.
42639 * Takes `O(n)` time.
42640 *
42641 * @param {Object} key the key to add
42642 * @param {Number} priority the initial priority for the key
42643 */
42644PriorityQueue.prototype.add = function(key, priority) {
42645 var keyIndices = this._keyIndices;
42646 key = String(key);
42647 if (!_.has(keyIndices, key)) {
42648 var arr = this._arr;
42649 var index = arr.length;
42650 keyIndices[key] = index;
42651 arr.push({key: key, priority: priority});
42652 this._decrease(index);
42653 return true;
42654 }
42655 return false;
42656};
42657
42658/**
42659 * Removes and returns the smallest key in the queue. Takes `O(log n)` time.
42660 */
42661PriorityQueue.prototype.removeMin = function() {
42662 this._swap(0, this._arr.length - 1);
42663 var min = this._arr.pop();
42664 delete this._keyIndices[min.key];
42665 this._heapify(0);
42666 return min.key;
42667};
42668
42669/**
42670 * Decreases the priority for **key** to **priority**. If the new priority is
42671 * greater than the previous priority, this function will throw an Error.
42672 *
42673 * @param {Object} key the key for which to raise priority
42674 * @param {Number} priority the new priority for the key
42675 */
42676PriorityQueue.prototype.decrease = function(key, priority) {
42677 var index = this._keyIndices[key];
42678 if (priority > this._arr[index].priority) {
42679 throw new Error("New priority is greater than current priority. " +
42680 "Key: " + key + " Old: " + this._arr[index].priority + " New: " + priority);
42681 }
42682 this._arr[index].priority = priority;
42683 this._decrease(index);
42684};
42685
42686PriorityQueue.prototype._heapify = function(i) {
42687 var arr = this._arr;
42688 var l = 2 * i;
42689 var r = l + 1;
42690 var largest = i;
42691 if (l < arr.length) {
42692 largest = arr[l].priority < arr[largest].priority ? l : largest;
42693 if (r < arr.length) {
42694 largest = arr[r].priority < arr[largest].priority ? r : largest;
42695 }
42696 if (largest !== i) {
42697 this._swap(i, largest);
42698 this._heapify(largest);
42699 }
42700 }
42701};
42702
42703PriorityQueue.prototype._decrease = function(index) {
42704 var arr = this._arr;
42705 var priority = arr[index].priority;
42706 var parent;
42707 while (index !== 0) {
42708 parent = index >> 1;
42709 if (arr[parent].priority < priority) {
42710 break;
42711 }
42712 this._swap(index, parent);
42713 index = parent;
42714 }
42715};
42716
42717PriorityQueue.prototype._swap = function(i, j) {
42718 var arr = this._arr;
42719 var keyIndices = this._keyIndices;
42720 var origArrI = arr[i];
42721 var origArrJ = arr[j];
42722 arr[i] = origArrJ;
42723 arr[j] = origArrI;
42724 keyIndices[origArrJ.key] = i;
42725 keyIndices[origArrI.key] = j;
42726};
42727
42728
42729/***/ }),
42730
42731/***/ "./node_modules/graphlib/lib/graph.js":
42732/*!********************************************!*\
42733 !*** ./node_modules/graphlib/lib/graph.js ***!
42734 \********************************************/
42735/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
42736
42737"use strict";
42738
42739
42740var _ = __webpack_require__(/*! ./lodash */ "./node_modules/graphlib/lib/lodash.js");
42741
42742module.exports = Graph;
42743
42744var DEFAULT_EDGE_NAME = "\x00";
42745var GRAPH_NODE = "\x00";
42746var EDGE_KEY_DELIM = "\x01";
42747
42748// Implementation notes:
42749//
42750// * Node id query functions should return string ids for the nodes
42751// * Edge id query functions should return an "edgeObj", edge object, that is
42752// composed of enough information to uniquely identify an edge: {v, w, name}.
42753// * Internally we use an "edgeId", a stringified form of the edgeObj, to
42754// reference edges. This is because we need a performant way to look these
42755// edges up and, object properties, which have string keys, are the closest
42756// we're going to get to a performant hashtable in JavaScript.
42757
42758function Graph(opts) {
42759 this._isDirected = _.has(opts, "directed") ? opts.directed : true;
42760 this._isMultigraph = _.has(opts, "multigraph") ? opts.multigraph : false;
42761 this._isCompound = _.has(opts, "compound") ? opts.compound : false;
42762
42763 // Label for the graph itself
42764 this._label = undefined;
42765
42766 // Defaults to be set when creating a new node
42767 this._defaultNodeLabelFn = _.constant(undefined);
42768
42769 // Defaults to be set when creating a new edge
42770 this._defaultEdgeLabelFn = _.constant(undefined);
42771
42772 // v -> label
42773 this._nodes = {};
42774
42775 if (this._isCompound) {
42776 // v -> parent
42777 this._parent = {};
42778
42779 // v -> children
42780 this._children = {};
42781 this._children[GRAPH_NODE] = {};
42782 }
42783
42784 // v -> edgeObj
42785 this._in = {};
42786
42787 // u -> v -> Number
42788 this._preds = {};
42789
42790 // v -> edgeObj
42791 this._out = {};
42792
42793 // v -> w -> Number
42794 this._sucs = {};
42795
42796 // e -> edgeObj
42797 this._edgeObjs = {};
42798
42799 // e -> label
42800 this._edgeLabels = {};
42801}
42802
42803/* Number of nodes in the graph. Should only be changed by the implementation. */
42804Graph.prototype._nodeCount = 0;
42805
42806/* Number of edges in the graph. Should only be changed by the implementation. */
42807Graph.prototype._edgeCount = 0;
42808
42809
42810/* === Graph functions ========= */
42811
42812Graph.prototype.isDirected = function() {
42813 return this._isDirected;
42814};
42815
42816Graph.prototype.isMultigraph = function() {
42817 return this._isMultigraph;
42818};
42819
42820Graph.prototype.isCompound = function() {
42821 return this._isCompound;
42822};
42823
42824Graph.prototype.setGraph = function(label) {
42825 this._label = label;
42826 return this;
42827};
42828
42829Graph.prototype.graph = function() {
42830 return this._label;
42831};
42832
42833
42834/* === Node functions ========== */
42835
42836Graph.prototype.setDefaultNodeLabel = function(newDefault) {
42837 if (!_.isFunction(newDefault)) {
42838 newDefault = _.constant(newDefault);
42839 }
42840 this._defaultNodeLabelFn = newDefault;
42841 return this;
42842};
42843
42844Graph.prototype.nodeCount = function() {
42845 return this._nodeCount;
42846};
42847
42848Graph.prototype.nodes = function() {
42849 return _.keys(this._nodes);
42850};
42851
42852Graph.prototype.sources = function() {
42853 var self = this;
42854 return _.filter(this.nodes(), function(v) {
42855 return _.isEmpty(self._in[v]);
42856 });
42857};
42858
42859Graph.prototype.sinks = function() {
42860 var self = this;
42861 return _.filter(this.nodes(), function(v) {
42862 return _.isEmpty(self._out[v]);
42863 });
42864};
42865
42866Graph.prototype.setNodes = function(vs, value) {
42867 var args = arguments;
42868 var self = this;
42869 _.each(vs, function(v) {
42870 if (args.length > 1) {
42871 self.setNode(v, value);
42872 } else {
42873 self.setNode(v);
42874 }
42875 });
42876 return this;
42877};
42878
42879Graph.prototype.setNode = function(v, value) {
42880 if (_.has(this._nodes, v)) {
42881 if (arguments.length > 1) {
42882 this._nodes[v] = value;
42883 }
42884 return this;
42885 }
42886
42887 this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);
42888 if (this._isCompound) {
42889 this._parent[v] = GRAPH_NODE;
42890 this._children[v] = {};
42891 this._children[GRAPH_NODE][v] = true;
42892 }
42893 this._in[v] = {};
42894 this._preds[v] = {};
42895 this._out[v] = {};
42896 this._sucs[v] = {};
42897 ++this._nodeCount;
42898 return this;
42899};
42900
42901Graph.prototype.node = function(v) {
42902 return this._nodes[v];
42903};
42904
42905Graph.prototype.hasNode = function(v) {
42906 return _.has(this._nodes, v);
42907};
42908
42909Graph.prototype.removeNode = function(v) {
42910 var self = this;
42911 if (_.has(this._nodes, v)) {
42912 var removeEdge = function(e) { self.removeEdge(self._edgeObjs[e]); };
42913 delete this._nodes[v];
42914 if (this._isCompound) {
42915 this._removeFromParentsChildList(v);
42916 delete this._parent[v];
42917 _.each(this.children(v), function(child) {
42918 self.setParent(child);
42919 });
42920 delete this._children[v];
42921 }
42922 _.each(_.keys(this._in[v]), removeEdge);
42923 delete this._in[v];
42924 delete this._preds[v];
42925 _.each(_.keys(this._out[v]), removeEdge);
42926 delete this._out[v];
42927 delete this._sucs[v];
42928 --this._nodeCount;
42929 }
42930 return this;
42931};
42932
42933Graph.prototype.setParent = function(v, parent) {
42934 if (!this._isCompound) {
42935 throw new Error("Cannot set parent in a non-compound graph");
42936 }
42937
42938 if (_.isUndefined(parent)) {
42939 parent = GRAPH_NODE;
42940 } else {
42941 // Coerce parent to string
42942 parent += "";
42943 for (var ancestor = parent;
42944 !_.isUndefined(ancestor);
42945 ancestor = this.parent(ancestor)) {
42946 if (ancestor === v) {
42947 throw new Error("Setting " + parent+ " as parent of " + v +
42948 " would create a cycle");
42949 }
42950 }
42951
42952 this.setNode(parent);
42953 }
42954
42955 this.setNode(v);
42956 this._removeFromParentsChildList(v);
42957 this._parent[v] = parent;
42958 this._children[parent][v] = true;
42959 return this;
42960};
42961
42962Graph.prototype._removeFromParentsChildList = function(v) {
42963 delete this._children[this._parent[v]][v];
42964};
42965
42966Graph.prototype.parent = function(v) {
42967 if (this._isCompound) {
42968 var parent = this._parent[v];
42969 if (parent !== GRAPH_NODE) {
42970 return parent;
42971 }
42972 }
42973};
42974
42975Graph.prototype.children = function(v) {
42976 if (_.isUndefined(v)) {
42977 v = GRAPH_NODE;
42978 }
42979
42980 if (this._isCompound) {
42981 var children = this._children[v];
42982 if (children) {
42983 return _.keys(children);
42984 }
42985 } else if (v === GRAPH_NODE) {
42986 return this.nodes();
42987 } else if (this.hasNode(v)) {
42988 return [];
42989 }
42990};
42991
42992Graph.prototype.predecessors = function(v) {
42993 var predsV = this._preds[v];
42994 if (predsV) {
42995 return _.keys(predsV);
42996 }
42997};
42998
42999Graph.prototype.successors = function(v) {
43000 var sucsV = this._sucs[v];
43001 if (sucsV) {
43002 return _.keys(sucsV);
43003 }
43004};
43005
43006Graph.prototype.neighbors = function(v) {
43007 var preds = this.predecessors(v);
43008 if (preds) {
43009 return _.union(preds, this.successors(v));
43010 }
43011};
43012
43013Graph.prototype.isLeaf = function (v) {
43014 var neighbors;
43015 if (this.isDirected()) {
43016 neighbors = this.successors(v);
43017 } else {
43018 neighbors = this.neighbors(v);
43019 }
43020 return neighbors.length === 0;
43021};
43022
43023Graph.prototype.filterNodes = function(filter) {
43024 var copy = new this.constructor({
43025 directed: this._isDirected,
43026 multigraph: this._isMultigraph,
43027 compound: this._isCompound
43028 });
43029
43030 copy.setGraph(this.graph());
43031
43032 var self = this;
43033 _.each(this._nodes, function(value, v) {
43034 if (filter(v)) {
43035 copy.setNode(v, value);
43036 }
43037 });
43038
43039 _.each(this._edgeObjs, function(e) {
43040 if (copy.hasNode(e.v) && copy.hasNode(e.w)) {
43041 copy.setEdge(e, self.edge(e));
43042 }
43043 });
43044
43045 var parents = {};
43046 function findParent(v) {
43047 var parent = self.parent(v);
43048 if (parent === undefined || copy.hasNode(parent)) {
43049 parents[v] = parent;
43050 return parent;
43051 } else if (parent in parents) {
43052 return parents[parent];
43053 } else {
43054 return findParent(parent);
43055 }
43056 }
43057
43058 if (this._isCompound) {
43059 _.each(copy.nodes(), function(v) {
43060 copy.setParent(v, findParent(v));
43061 });
43062 }
43063
43064 return copy;
43065};
43066
43067/* === Edge functions ========== */
43068
43069Graph.prototype.setDefaultEdgeLabel = function(newDefault) {
43070 if (!_.isFunction(newDefault)) {
43071 newDefault = _.constant(newDefault);
43072 }
43073 this._defaultEdgeLabelFn = newDefault;
43074 return this;
43075};
43076
43077Graph.prototype.edgeCount = function() {
43078 return this._edgeCount;
43079};
43080
43081Graph.prototype.edges = function() {
43082 return _.values(this._edgeObjs);
43083};
43084
43085Graph.prototype.setPath = function(vs, value) {
43086 var self = this;
43087 var args = arguments;
43088 _.reduce(vs, function(v, w) {
43089 if (args.length > 1) {
43090 self.setEdge(v, w, value);
43091 } else {
43092 self.setEdge(v, w);
43093 }
43094 return w;
43095 });
43096 return this;
43097};
43098
43099/*
43100 * setEdge(v, w, [value, [name]])
43101 * setEdge({ v, w, [name] }, [value])
43102 */
43103Graph.prototype.setEdge = function() {
43104 var v, w, name, value;
43105 var valueSpecified = false;
43106 var arg0 = arguments[0];
43107
43108 if (typeof arg0 === "object" && arg0 !== null && "v" in arg0) {
43109 v = arg0.v;
43110 w = arg0.w;
43111 name = arg0.name;
43112 if (arguments.length === 2) {
43113 value = arguments[1];
43114 valueSpecified = true;
43115 }
43116 } else {
43117 v = arg0;
43118 w = arguments[1];
43119 name = arguments[3];
43120 if (arguments.length > 2) {
43121 value = arguments[2];
43122 valueSpecified = true;
43123 }
43124 }
43125
43126 v = "" + v;
43127 w = "" + w;
43128 if (!_.isUndefined(name)) {
43129 name = "" + name;
43130 }
43131
43132 var e = edgeArgsToId(this._isDirected, v, w, name);
43133 if (_.has(this._edgeLabels, e)) {
43134 if (valueSpecified) {
43135 this._edgeLabels[e] = value;
43136 }
43137 return this;
43138 }
43139
43140 if (!_.isUndefined(name) && !this._isMultigraph) {
43141 throw new Error("Cannot set a named edge when isMultigraph = false");
43142 }
43143
43144 // It didn't exist, so we need to create it.
43145 // First ensure the nodes exist.
43146 this.setNode(v);
43147 this.setNode(w);
43148
43149 this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);
43150
43151 var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);
43152 // Ensure we add undirected edges in a consistent way.
43153 v = edgeObj.v;
43154 w = edgeObj.w;
43155
43156 Object.freeze(edgeObj);
43157 this._edgeObjs[e] = edgeObj;
43158 incrementOrInitEntry(this._preds[w], v);
43159 incrementOrInitEntry(this._sucs[v], w);
43160 this._in[w][e] = edgeObj;
43161 this._out[v][e] = edgeObj;
43162 this._edgeCount++;
43163 return this;
43164};
43165
43166Graph.prototype.edge = function(v, w, name) {
43167 var e = (arguments.length === 1
43168 ? edgeObjToId(this._isDirected, arguments[0])
43169 : edgeArgsToId(this._isDirected, v, w, name));
43170 return this._edgeLabels[e];
43171};
43172
43173Graph.prototype.hasEdge = function(v, w, name) {
43174 var e = (arguments.length === 1
43175 ? edgeObjToId(this._isDirected, arguments[0])
43176 : edgeArgsToId(this._isDirected, v, w, name));
43177 return _.has(this._edgeLabels, e);
43178};
43179
43180Graph.prototype.removeEdge = function(v, w, name) {
43181 var e = (arguments.length === 1
43182 ? edgeObjToId(this._isDirected, arguments[0])
43183 : edgeArgsToId(this._isDirected, v, w, name));
43184 var edge = this._edgeObjs[e];
43185 if (edge) {
43186 v = edge.v;
43187 w = edge.w;
43188 delete this._edgeLabels[e];
43189 delete this._edgeObjs[e];
43190 decrementOrRemoveEntry(this._preds[w], v);
43191 decrementOrRemoveEntry(this._sucs[v], w);
43192 delete this._in[w][e];
43193 delete this._out[v][e];
43194 this._edgeCount--;
43195 }
43196 return this;
43197};
43198
43199Graph.prototype.inEdges = function(v, u) {
43200 var inV = this._in[v];
43201 if (inV) {
43202 var edges = _.values(inV);
43203 if (!u) {
43204 return edges;
43205 }
43206 return _.filter(edges, function(edge) { return edge.v === u; });
43207 }
43208};
43209
43210Graph.prototype.outEdges = function(v, w) {
43211 var outV = this._out[v];
43212 if (outV) {
43213 var edges = _.values(outV);
43214 if (!w) {
43215 return edges;
43216 }
43217 return _.filter(edges, function(edge) { return edge.w === w; });
43218 }
43219};
43220
43221Graph.prototype.nodeEdges = function(v, w) {
43222 var inEdges = this.inEdges(v, w);
43223 if (inEdges) {
43224 return inEdges.concat(this.outEdges(v, w));
43225 }
43226};
43227
43228function incrementOrInitEntry(map, k) {
43229 if (map[k]) {
43230 map[k]++;
43231 } else {
43232 map[k] = 1;
43233 }
43234}
43235
43236function decrementOrRemoveEntry(map, k) {
43237 if (!--map[k]) { delete map[k]; }
43238}
43239
43240function edgeArgsToId(isDirected, v_, w_, name) {
43241 var v = "" + v_;
43242 var w = "" + w_;
43243 if (!isDirected && v > w) {
43244 var tmp = v;
43245 v = w;
43246 w = tmp;
43247 }
43248 return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM +
43249 (_.isUndefined(name) ? DEFAULT_EDGE_NAME : name);
43250}
43251
43252function edgeArgsToObj(isDirected, v_, w_, name) {
43253 var v = "" + v_;
43254 var w = "" + w_;
43255 if (!isDirected && v > w) {
43256 var tmp = v;
43257 v = w;
43258 w = tmp;
43259 }
43260 var edgeObj = { v: v, w: w };
43261 if (name) {
43262 edgeObj.name = name;
43263 }
43264 return edgeObj;
43265}
43266
43267function edgeObjToId(isDirected, edgeObj) {
43268 return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);
43269}
43270
43271
43272/***/ }),
43273
43274/***/ "./node_modules/graphlib/lib/index.js":
43275/*!********************************************!*\
43276 !*** ./node_modules/graphlib/lib/index.js ***!
43277 \********************************************/
43278/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
43279
43280// Includes only the "core" of graphlib
43281module.exports = {
43282 Graph: __webpack_require__(/*! ./graph */ "./node_modules/graphlib/lib/graph.js"),
43283 version: __webpack_require__(/*! ./version */ "./node_modules/graphlib/lib/version.js")
43284};
43285
43286
43287/***/ }),
43288
43289/***/ "./node_modules/graphlib/lib/json.js":
43290/*!*******************************************!*\
43291 !*** ./node_modules/graphlib/lib/json.js ***!
43292 \*******************************************/
43293/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
43294
43295var _ = __webpack_require__(/*! ./lodash */ "./node_modules/graphlib/lib/lodash.js");
43296var Graph = __webpack_require__(/*! ./graph */ "./node_modules/graphlib/lib/graph.js");
43297
43298module.exports = {
43299 write: write,
43300 read: read
43301};
43302
43303function write(g) {
43304 var json = {
43305 options: {
43306 directed: g.isDirected(),
43307 multigraph: g.isMultigraph(),
43308 compound: g.isCompound()
43309 },
43310 nodes: writeNodes(g),
43311 edges: writeEdges(g)
43312 };
43313 if (!_.isUndefined(g.graph())) {
43314 json.value = _.clone(g.graph());
43315 }
43316 return json;
43317}
43318
43319function writeNodes(g) {
43320 return _.map(g.nodes(), function(v) {
43321 var nodeValue = g.node(v);
43322 var parent = g.parent(v);
43323 var node = { v: v };
43324 if (!_.isUndefined(nodeValue)) {
43325 node.value = nodeValue;
43326 }
43327 if (!_.isUndefined(parent)) {
43328 node.parent = parent;
43329 }
43330 return node;
43331 });
43332}
43333
43334function writeEdges(g) {
43335 return _.map(g.edges(), function(e) {
43336 var edgeValue = g.edge(e);
43337 var edge = { v: e.v, w: e.w };
43338 if (!_.isUndefined(e.name)) {
43339 edge.name = e.name;
43340 }
43341 if (!_.isUndefined(edgeValue)) {
43342 edge.value = edgeValue;
43343 }
43344 return edge;
43345 });
43346}
43347
43348function read(json) {
43349 var g = new Graph(json.options).setGraph(json.value);
43350 _.each(json.nodes, function(entry) {
43351 g.setNode(entry.v, entry.value);
43352 if (entry.parent) {
43353 g.setParent(entry.v, entry.parent);
43354 }
43355 });
43356 _.each(json.edges, function(entry) {
43357 g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value);
43358 });
43359 return g;
43360}
43361
43362
43363/***/ }),
43364
43365/***/ "./node_modules/graphlib/lib/lodash.js":
43366/*!*********************************************!*\
43367 !*** ./node_modules/graphlib/lib/lodash.js ***!
43368 \*********************************************/
43369/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
43370
43371/* global window */
43372
43373var lodash;
43374
43375if (true) {
43376 try {
43377 lodash = {
43378 clone: __webpack_require__(/*! lodash/clone */ "./node_modules/lodash/clone.js"),
43379 constant: __webpack_require__(/*! lodash/constant */ "./node_modules/lodash/constant.js"),
43380 each: __webpack_require__(/*! lodash/each */ "./node_modules/lodash/each.js"),
43381 filter: __webpack_require__(/*! lodash/filter */ "./node_modules/lodash/filter.js"),
43382 has: __webpack_require__(/*! lodash/has */ "./node_modules/lodash/has.js"),
43383 isArray: __webpack_require__(/*! lodash/isArray */ "./node_modules/lodash/isArray.js"),
43384 isEmpty: __webpack_require__(/*! lodash/isEmpty */ "./node_modules/lodash/isEmpty.js"),
43385 isFunction: __webpack_require__(/*! lodash/isFunction */ "./node_modules/lodash/isFunction.js"),
43386 isUndefined: __webpack_require__(/*! lodash/isUndefined */ "./node_modules/lodash/isUndefined.js"),
43387 keys: __webpack_require__(/*! lodash/keys */ "./node_modules/lodash/keys.js"),
43388 map: __webpack_require__(/*! lodash/map */ "./node_modules/lodash/map.js"),
43389 reduce: __webpack_require__(/*! lodash/reduce */ "./node_modules/lodash/reduce.js"),
43390 size: __webpack_require__(/*! lodash/size */ "./node_modules/lodash/size.js"),
43391 transform: __webpack_require__(/*! lodash/transform */ "./node_modules/lodash/transform.js"),
43392 union: __webpack_require__(/*! lodash/union */ "./node_modules/lodash/union.js"),
43393 values: __webpack_require__(/*! lodash/values */ "./node_modules/lodash/values.js")
43394 };
43395 } catch (e) {
43396 // continue regardless of error
43397 }
43398}
43399
43400if (!lodash) {
43401 lodash = window._;
43402}
43403
43404module.exports = lodash;
43405
43406
43407/***/ }),
43408
43409/***/ "./node_modules/graphlib/lib/version.js":
43410/*!**********************************************!*\
43411 !*** ./node_modules/graphlib/lib/version.js ***!
43412 \**********************************************/
43413/***/ ((module) => {
43414
43415module.exports = '2.1.8';
43416
43417
43418/***/ }),
43419
43420/***/ "./node_modules/lodash/_DataView.js":
43421/*!******************************************!*\
43422 !*** ./node_modules/lodash/_DataView.js ***!
43423 \******************************************/
43424/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
43425
43426var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
43427 root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
43428
43429/* Built-in method references that are verified to be native. */
43430var DataView = getNative(root, 'DataView');
43431
43432module.exports = DataView;
43433
43434
43435/***/ }),
43436
43437/***/ "./node_modules/lodash/_Hash.js":
43438/*!**************************************!*\
43439 !*** ./node_modules/lodash/_Hash.js ***!
43440 \**************************************/
43441/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
43442
43443var hashClear = __webpack_require__(/*! ./_hashClear */ "./node_modules/lodash/_hashClear.js"),
43444 hashDelete = __webpack_require__(/*! ./_hashDelete */ "./node_modules/lodash/_hashDelete.js"),
43445 hashGet = __webpack_require__(/*! ./_hashGet */ "./node_modules/lodash/_hashGet.js"),
43446 hashHas = __webpack_require__(/*! ./_hashHas */ "./node_modules/lodash/_hashHas.js"),
43447 hashSet = __webpack_require__(/*! ./_hashSet */ "./node_modules/lodash/_hashSet.js");
43448
43449/**
43450 * Creates a hash object.
43451 *
43452 * @private
43453 * @constructor
43454 * @param {Array} [entries] The key-value pairs to cache.
43455 */
43456function Hash(entries) {
43457 var index = -1,
43458 length = entries == null ? 0 : entries.length;
43459
43460 this.clear();
43461 while (++index < length) {
43462 var entry = entries[index];
43463 this.set(entry[0], entry[1]);
43464 }
43465}
43466
43467// Add methods to `Hash`.
43468Hash.prototype.clear = hashClear;
43469Hash.prototype['delete'] = hashDelete;
43470Hash.prototype.get = hashGet;
43471Hash.prototype.has = hashHas;
43472Hash.prototype.set = hashSet;
43473
43474module.exports = Hash;
43475
43476
43477/***/ }),
43478
43479/***/ "./node_modules/lodash/_ListCache.js":
43480/*!*******************************************!*\
43481 !*** ./node_modules/lodash/_ListCache.js ***!
43482 \*******************************************/
43483/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
43484
43485var listCacheClear = __webpack_require__(/*! ./_listCacheClear */ "./node_modules/lodash/_listCacheClear.js"),
43486 listCacheDelete = __webpack_require__(/*! ./_listCacheDelete */ "./node_modules/lodash/_listCacheDelete.js"),
43487 listCacheGet = __webpack_require__(/*! ./_listCacheGet */ "./node_modules/lodash/_listCacheGet.js"),
43488 listCacheHas = __webpack_require__(/*! ./_listCacheHas */ "./node_modules/lodash/_listCacheHas.js"),
43489 listCacheSet = __webpack_require__(/*! ./_listCacheSet */ "./node_modules/lodash/_listCacheSet.js");
43490
43491/**
43492 * Creates an list cache object.
43493 *
43494 * @private
43495 * @constructor
43496 * @param {Array} [entries] The key-value pairs to cache.
43497 */
43498function ListCache(entries) {
43499 var index = -1,
43500 length = entries == null ? 0 : entries.length;
43501
43502 this.clear();
43503 while (++index < length) {
43504 var entry = entries[index];
43505 this.set(entry[0], entry[1]);
43506 }
43507}
43508
43509// Add methods to `ListCache`.
43510ListCache.prototype.clear = listCacheClear;
43511ListCache.prototype['delete'] = listCacheDelete;
43512ListCache.prototype.get = listCacheGet;
43513ListCache.prototype.has = listCacheHas;
43514ListCache.prototype.set = listCacheSet;
43515
43516module.exports = ListCache;
43517
43518
43519/***/ }),
43520
43521/***/ "./node_modules/lodash/_Map.js":
43522/*!*************************************!*\
43523 !*** ./node_modules/lodash/_Map.js ***!
43524 \*************************************/
43525/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
43526
43527var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
43528 root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
43529
43530/* Built-in method references that are verified to be native. */
43531var Map = getNative(root, 'Map');
43532
43533module.exports = Map;
43534
43535
43536/***/ }),
43537
43538/***/ "./node_modules/lodash/_MapCache.js":
43539/*!******************************************!*\
43540 !*** ./node_modules/lodash/_MapCache.js ***!
43541 \******************************************/
43542/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
43543
43544var mapCacheClear = __webpack_require__(/*! ./_mapCacheClear */ "./node_modules/lodash/_mapCacheClear.js"),
43545 mapCacheDelete = __webpack_require__(/*! ./_mapCacheDelete */ "./node_modules/lodash/_mapCacheDelete.js"),
43546 mapCacheGet = __webpack_require__(/*! ./_mapCacheGet */ "./node_modules/lodash/_mapCacheGet.js"),
43547 mapCacheHas = __webpack_require__(/*! ./_mapCacheHas */ "./node_modules/lodash/_mapCacheHas.js"),
43548 mapCacheSet = __webpack_require__(/*! ./_mapCacheSet */ "./node_modules/lodash/_mapCacheSet.js");
43549
43550/**
43551 * Creates a map cache object to store key-value pairs.
43552 *
43553 * @private
43554 * @constructor
43555 * @param {Array} [entries] The key-value pairs to cache.
43556 */
43557function MapCache(entries) {
43558 var index = -1,
43559 length = entries == null ? 0 : entries.length;
43560
43561 this.clear();
43562 while (++index < length) {
43563 var entry = entries[index];
43564 this.set(entry[0], entry[1]);
43565 }
43566}
43567
43568// Add methods to `MapCache`.
43569MapCache.prototype.clear = mapCacheClear;
43570MapCache.prototype['delete'] = mapCacheDelete;
43571MapCache.prototype.get = mapCacheGet;
43572MapCache.prototype.has = mapCacheHas;
43573MapCache.prototype.set = mapCacheSet;
43574
43575module.exports = MapCache;
43576
43577
43578/***/ }),
43579
43580/***/ "./node_modules/lodash/_Promise.js":
43581/*!*****************************************!*\
43582 !*** ./node_modules/lodash/_Promise.js ***!
43583 \*****************************************/
43584/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
43585
43586var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
43587 root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
43588
43589/* Built-in method references that are verified to be native. */
43590var Promise = getNative(root, 'Promise');
43591
43592module.exports = Promise;
43593
43594
43595/***/ }),
43596
43597/***/ "./node_modules/lodash/_Set.js":
43598/*!*************************************!*\
43599 !*** ./node_modules/lodash/_Set.js ***!
43600 \*************************************/
43601/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
43602
43603var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
43604 root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
43605
43606/* Built-in method references that are verified to be native. */
43607var Set = getNative(root, 'Set');
43608
43609module.exports = Set;
43610
43611
43612/***/ }),
43613
43614/***/ "./node_modules/lodash/_SetCache.js":
43615/*!******************************************!*\
43616 !*** ./node_modules/lodash/_SetCache.js ***!
43617 \******************************************/
43618/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
43619
43620var MapCache = __webpack_require__(/*! ./_MapCache */ "./node_modules/lodash/_MapCache.js"),
43621 setCacheAdd = __webpack_require__(/*! ./_setCacheAdd */ "./node_modules/lodash/_setCacheAdd.js"),
43622 setCacheHas = __webpack_require__(/*! ./_setCacheHas */ "./node_modules/lodash/_setCacheHas.js");
43623
43624/**
43625 *
43626 * Creates an array cache object to store unique values.
43627 *
43628 * @private
43629 * @constructor
43630 * @param {Array} [values] The values to cache.
43631 */
43632function SetCache(values) {
43633 var index = -1,
43634 length = values == null ? 0 : values.length;
43635
43636 this.__data__ = new MapCache;
43637 while (++index < length) {
43638 this.add(values[index]);
43639 }
43640}
43641
43642// Add methods to `SetCache`.
43643SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
43644SetCache.prototype.has = setCacheHas;
43645
43646module.exports = SetCache;
43647
43648
43649/***/ }),
43650
43651/***/ "./node_modules/lodash/_Stack.js":
43652/*!***************************************!*\
43653 !*** ./node_modules/lodash/_Stack.js ***!
43654 \***************************************/
43655/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
43656
43657var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js"),
43658 stackClear = __webpack_require__(/*! ./_stackClear */ "./node_modules/lodash/_stackClear.js"),
43659 stackDelete = __webpack_require__(/*! ./_stackDelete */ "./node_modules/lodash/_stackDelete.js"),
43660 stackGet = __webpack_require__(/*! ./_stackGet */ "./node_modules/lodash/_stackGet.js"),
43661 stackHas = __webpack_require__(/*! ./_stackHas */ "./node_modules/lodash/_stackHas.js"),
43662 stackSet = __webpack_require__(/*! ./_stackSet */ "./node_modules/lodash/_stackSet.js");
43663
43664/**
43665 * Creates a stack cache object to store key-value pairs.
43666 *
43667 * @private
43668 * @constructor
43669 * @param {Array} [entries] The key-value pairs to cache.
43670 */
43671function Stack(entries) {
43672 var data = this.__data__ = new ListCache(entries);
43673 this.size = data.size;
43674}
43675
43676// Add methods to `Stack`.
43677Stack.prototype.clear = stackClear;
43678Stack.prototype['delete'] = stackDelete;
43679Stack.prototype.get = stackGet;
43680Stack.prototype.has = stackHas;
43681Stack.prototype.set = stackSet;
43682
43683module.exports = Stack;
43684
43685
43686/***/ }),
43687
43688/***/ "./node_modules/lodash/_Symbol.js":
43689/*!****************************************!*\
43690 !*** ./node_modules/lodash/_Symbol.js ***!
43691 \****************************************/
43692/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
43693
43694var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
43695
43696/** Built-in value references. */
43697var Symbol = root.Symbol;
43698
43699module.exports = Symbol;
43700
43701
43702/***/ }),
43703
43704/***/ "./node_modules/lodash/_Uint8Array.js":
43705/*!********************************************!*\
43706 !*** ./node_modules/lodash/_Uint8Array.js ***!
43707 \********************************************/
43708/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
43709
43710var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
43711
43712/** Built-in value references. */
43713var Uint8Array = root.Uint8Array;
43714
43715module.exports = Uint8Array;
43716
43717
43718/***/ }),
43719
43720/***/ "./node_modules/lodash/_WeakMap.js":
43721/*!*****************************************!*\
43722 !*** ./node_modules/lodash/_WeakMap.js ***!
43723 \*****************************************/
43724/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
43725
43726var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js"),
43727 root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
43728
43729/* Built-in method references that are verified to be native. */
43730var WeakMap = getNative(root, 'WeakMap');
43731
43732module.exports = WeakMap;
43733
43734
43735/***/ }),
43736
43737/***/ "./node_modules/lodash/_apply.js":
43738/*!***************************************!*\
43739 !*** ./node_modules/lodash/_apply.js ***!
43740 \***************************************/
43741/***/ ((module) => {
43742
43743/**
43744 * A faster alternative to `Function#apply`, this function invokes `func`
43745 * with the `this` binding of `thisArg` and the arguments of `args`.
43746 *
43747 * @private
43748 * @param {Function} func The function to invoke.
43749 * @param {*} thisArg The `this` binding of `func`.
43750 * @param {Array} args The arguments to invoke `func` with.
43751 * @returns {*} Returns the result of `func`.
43752 */
43753function apply(func, thisArg, args) {
43754 switch (args.length) {
43755 case 0: return func.call(thisArg);
43756 case 1: return func.call(thisArg, args[0]);
43757 case 2: return func.call(thisArg, args[0], args[1]);
43758 case 3: return func.call(thisArg, args[0], args[1], args[2]);
43759 }
43760 return func.apply(thisArg, args);
43761}
43762
43763module.exports = apply;
43764
43765
43766/***/ }),
43767
43768/***/ "./node_modules/lodash/_arrayEach.js":
43769/*!*******************************************!*\
43770 !*** ./node_modules/lodash/_arrayEach.js ***!
43771 \*******************************************/
43772/***/ ((module) => {
43773
43774/**
43775 * A specialized version of `_.forEach` for arrays without support for
43776 * iteratee shorthands.
43777 *
43778 * @private
43779 * @param {Array} [array] The array to iterate over.
43780 * @param {Function} iteratee The function invoked per iteration.
43781 * @returns {Array} Returns `array`.
43782 */
43783function arrayEach(array, iteratee) {
43784 var index = -1,
43785 length = array == null ? 0 : array.length;
43786
43787 while (++index < length) {
43788 if (iteratee(array[index], index, array) === false) {
43789 break;
43790 }
43791 }
43792 return array;
43793}
43794
43795module.exports = arrayEach;
43796
43797
43798/***/ }),
43799
43800/***/ "./node_modules/lodash/_arrayFilter.js":
43801/*!*********************************************!*\
43802 !*** ./node_modules/lodash/_arrayFilter.js ***!
43803 \*********************************************/
43804/***/ ((module) => {
43805
43806/**
43807 * A specialized version of `_.filter` for arrays without support for
43808 * iteratee shorthands.
43809 *
43810 * @private
43811 * @param {Array} [array] The array to iterate over.
43812 * @param {Function} predicate The function invoked per iteration.
43813 * @returns {Array} Returns the new filtered array.
43814 */
43815function arrayFilter(array, predicate) {
43816 var index = -1,
43817 length = array == null ? 0 : array.length,
43818 resIndex = 0,
43819 result = [];
43820
43821 while (++index < length) {
43822 var value = array[index];
43823 if (predicate(value, index, array)) {
43824 result[resIndex++] = value;
43825 }
43826 }
43827 return result;
43828}
43829
43830module.exports = arrayFilter;
43831
43832
43833/***/ }),
43834
43835/***/ "./node_modules/lodash/_arrayIncludes.js":
43836/*!***********************************************!*\
43837 !*** ./node_modules/lodash/_arrayIncludes.js ***!
43838 \***********************************************/
43839/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
43840
43841var baseIndexOf = __webpack_require__(/*! ./_baseIndexOf */ "./node_modules/lodash/_baseIndexOf.js");
43842
43843/**
43844 * A specialized version of `_.includes` for arrays without support for
43845 * specifying an index to search from.
43846 *
43847 * @private
43848 * @param {Array} [array] The array to inspect.
43849 * @param {*} target The value to search for.
43850 * @returns {boolean} Returns `true` if `target` is found, else `false`.
43851 */
43852function arrayIncludes(array, value) {
43853 var length = array == null ? 0 : array.length;
43854 return !!length && baseIndexOf(array, value, 0) > -1;
43855}
43856
43857module.exports = arrayIncludes;
43858
43859
43860/***/ }),
43861
43862/***/ "./node_modules/lodash/_arrayIncludesWith.js":
43863/*!***************************************************!*\
43864 !*** ./node_modules/lodash/_arrayIncludesWith.js ***!
43865 \***************************************************/
43866/***/ ((module) => {
43867
43868/**
43869 * This function is like `arrayIncludes` except that it accepts a comparator.
43870 *
43871 * @private
43872 * @param {Array} [array] The array to inspect.
43873 * @param {*} target The value to search for.
43874 * @param {Function} comparator The comparator invoked per element.
43875 * @returns {boolean} Returns `true` if `target` is found, else `false`.
43876 */
43877function arrayIncludesWith(array, value, comparator) {
43878 var index = -1,
43879 length = array == null ? 0 : array.length;
43880
43881 while (++index < length) {
43882 if (comparator(value, array[index])) {
43883 return true;
43884 }
43885 }
43886 return false;
43887}
43888
43889module.exports = arrayIncludesWith;
43890
43891
43892/***/ }),
43893
43894/***/ "./node_modules/lodash/_arrayLikeKeys.js":
43895/*!***********************************************!*\
43896 !*** ./node_modules/lodash/_arrayLikeKeys.js ***!
43897 \***********************************************/
43898/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
43899
43900var baseTimes = __webpack_require__(/*! ./_baseTimes */ "./node_modules/lodash/_baseTimes.js"),
43901 isArguments = __webpack_require__(/*! ./isArguments */ "./node_modules/lodash/isArguments.js"),
43902 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
43903 isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
43904 isIndex = __webpack_require__(/*! ./_isIndex */ "./node_modules/lodash/_isIndex.js"),
43905 isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/lodash/isTypedArray.js");
43906
43907/** Used for built-in method references. */
43908var objectProto = Object.prototype;
43909
43910/** Used to check objects for own properties. */
43911var hasOwnProperty = objectProto.hasOwnProperty;
43912
43913/**
43914 * Creates an array of the enumerable property names of the array-like `value`.
43915 *
43916 * @private
43917 * @param {*} value The value to query.
43918 * @param {boolean} inherited Specify returning inherited property names.
43919 * @returns {Array} Returns the array of property names.
43920 */
43921function arrayLikeKeys(value, inherited) {
43922 var isArr = isArray(value),
43923 isArg = !isArr && isArguments(value),
43924 isBuff = !isArr && !isArg && isBuffer(value),
43925 isType = !isArr && !isArg && !isBuff && isTypedArray(value),
43926 skipIndexes = isArr || isArg || isBuff || isType,
43927 result = skipIndexes ? baseTimes(value.length, String) : [],
43928 length = result.length;
43929
43930 for (var key in value) {
43931 if ((inherited || hasOwnProperty.call(value, key)) &&
43932 !(skipIndexes && (
43933 // Safari 9 has enumerable `arguments.length` in strict mode.
43934 key == 'length' ||
43935 // Node.js 0.10 has enumerable non-index properties on buffers.
43936 (isBuff && (key == 'offset' || key == 'parent')) ||
43937 // PhantomJS 2 has enumerable non-index properties on typed arrays.
43938 (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
43939 // Skip index properties.
43940 isIndex(key, length)
43941 ))) {
43942 result.push(key);
43943 }
43944 }
43945 return result;
43946}
43947
43948module.exports = arrayLikeKeys;
43949
43950
43951/***/ }),
43952
43953/***/ "./node_modules/lodash/_arrayMap.js":
43954/*!******************************************!*\
43955 !*** ./node_modules/lodash/_arrayMap.js ***!
43956 \******************************************/
43957/***/ ((module) => {
43958
43959/**
43960 * A specialized version of `_.map` for arrays without support for iteratee
43961 * shorthands.
43962 *
43963 * @private
43964 * @param {Array} [array] The array to iterate over.
43965 * @param {Function} iteratee The function invoked per iteration.
43966 * @returns {Array} Returns the new mapped array.
43967 */
43968function arrayMap(array, iteratee) {
43969 var index = -1,
43970 length = array == null ? 0 : array.length,
43971 result = Array(length);
43972
43973 while (++index < length) {
43974 result[index] = iteratee(array[index], index, array);
43975 }
43976 return result;
43977}
43978
43979module.exports = arrayMap;
43980
43981
43982/***/ }),
43983
43984/***/ "./node_modules/lodash/_arrayPush.js":
43985/*!*******************************************!*\
43986 !*** ./node_modules/lodash/_arrayPush.js ***!
43987 \*******************************************/
43988/***/ ((module) => {
43989
43990/**
43991 * Appends the elements of `values` to `array`.
43992 *
43993 * @private
43994 * @param {Array} array The array to modify.
43995 * @param {Array} values The values to append.
43996 * @returns {Array} Returns `array`.
43997 */
43998function arrayPush(array, values) {
43999 var index = -1,
44000 length = values.length,
44001 offset = array.length;
44002
44003 while (++index < length) {
44004 array[offset + index] = values[index];
44005 }
44006 return array;
44007}
44008
44009module.exports = arrayPush;
44010
44011
44012/***/ }),
44013
44014/***/ "./node_modules/lodash/_arrayReduce.js":
44015/*!*********************************************!*\
44016 !*** ./node_modules/lodash/_arrayReduce.js ***!
44017 \*********************************************/
44018/***/ ((module) => {
44019
44020/**
44021 * A specialized version of `_.reduce` for arrays without support for
44022 * iteratee shorthands.
44023 *
44024 * @private
44025 * @param {Array} [array] The array to iterate over.
44026 * @param {Function} iteratee The function invoked per iteration.
44027 * @param {*} [accumulator] The initial value.
44028 * @param {boolean} [initAccum] Specify using the first element of `array` as
44029 * the initial value.
44030 * @returns {*} Returns the accumulated value.
44031 */
44032function arrayReduce(array, iteratee, accumulator, initAccum) {
44033 var index = -1,
44034 length = array == null ? 0 : array.length;
44035
44036 if (initAccum && length) {
44037 accumulator = array[++index];
44038 }
44039 while (++index < length) {
44040 accumulator = iteratee(accumulator, array[index], index, array);
44041 }
44042 return accumulator;
44043}
44044
44045module.exports = arrayReduce;
44046
44047
44048/***/ }),
44049
44050/***/ "./node_modules/lodash/_arraySome.js":
44051/*!*******************************************!*\
44052 !*** ./node_modules/lodash/_arraySome.js ***!
44053 \*******************************************/
44054/***/ ((module) => {
44055
44056/**
44057 * A specialized version of `_.some` for arrays without support for iteratee
44058 * shorthands.
44059 *
44060 * @private
44061 * @param {Array} [array] The array to iterate over.
44062 * @param {Function} predicate The function invoked per iteration.
44063 * @returns {boolean} Returns `true` if any element passes the predicate check,
44064 * else `false`.
44065 */
44066function arraySome(array, predicate) {
44067 var index = -1,
44068 length = array == null ? 0 : array.length;
44069
44070 while (++index < length) {
44071 if (predicate(array[index], index, array)) {
44072 return true;
44073 }
44074 }
44075 return false;
44076}
44077
44078module.exports = arraySome;
44079
44080
44081/***/ }),
44082
44083/***/ "./node_modules/lodash/_asciiSize.js":
44084/*!*******************************************!*\
44085 !*** ./node_modules/lodash/_asciiSize.js ***!
44086 \*******************************************/
44087/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44088
44089var baseProperty = __webpack_require__(/*! ./_baseProperty */ "./node_modules/lodash/_baseProperty.js");
44090
44091/**
44092 * Gets the size of an ASCII `string`.
44093 *
44094 * @private
44095 * @param {string} string The string inspect.
44096 * @returns {number} Returns the string size.
44097 */
44098var asciiSize = baseProperty('length');
44099
44100module.exports = asciiSize;
44101
44102
44103/***/ }),
44104
44105/***/ "./node_modules/lodash/_assignMergeValue.js":
44106/*!**************************************************!*\
44107 !*** ./node_modules/lodash/_assignMergeValue.js ***!
44108 \**************************************************/
44109/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44110
44111var baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ "./node_modules/lodash/_baseAssignValue.js"),
44112 eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js");
44113
44114/**
44115 * This function is like `assignValue` except that it doesn't assign
44116 * `undefined` values.
44117 *
44118 * @private
44119 * @param {Object} object The object to modify.
44120 * @param {string} key The key of the property to assign.
44121 * @param {*} value The value to assign.
44122 */
44123function assignMergeValue(object, key, value) {
44124 if ((value !== undefined && !eq(object[key], value)) ||
44125 (value === undefined && !(key in object))) {
44126 baseAssignValue(object, key, value);
44127 }
44128}
44129
44130module.exports = assignMergeValue;
44131
44132
44133/***/ }),
44134
44135/***/ "./node_modules/lodash/_assignValue.js":
44136/*!*********************************************!*\
44137 !*** ./node_modules/lodash/_assignValue.js ***!
44138 \*********************************************/
44139/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44140
44141var baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ "./node_modules/lodash/_baseAssignValue.js"),
44142 eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js");
44143
44144/** Used for built-in method references. */
44145var objectProto = Object.prototype;
44146
44147/** Used to check objects for own properties. */
44148var hasOwnProperty = objectProto.hasOwnProperty;
44149
44150/**
44151 * Assigns `value` to `key` of `object` if the existing value is not equivalent
44152 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
44153 * for equality comparisons.
44154 *
44155 * @private
44156 * @param {Object} object The object to modify.
44157 * @param {string} key The key of the property to assign.
44158 * @param {*} value The value to assign.
44159 */
44160function assignValue(object, key, value) {
44161 var objValue = object[key];
44162 if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
44163 (value === undefined && !(key in object))) {
44164 baseAssignValue(object, key, value);
44165 }
44166}
44167
44168module.exports = assignValue;
44169
44170
44171/***/ }),
44172
44173/***/ "./node_modules/lodash/_assocIndexOf.js":
44174/*!**********************************************!*\
44175 !*** ./node_modules/lodash/_assocIndexOf.js ***!
44176 \**********************************************/
44177/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44178
44179var eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js");
44180
44181/**
44182 * Gets the index at which the `key` is found in `array` of key-value pairs.
44183 *
44184 * @private
44185 * @param {Array} array The array to inspect.
44186 * @param {*} key The key to search for.
44187 * @returns {number} Returns the index of the matched value, else `-1`.
44188 */
44189function assocIndexOf(array, key) {
44190 var length = array.length;
44191 while (length--) {
44192 if (eq(array[length][0], key)) {
44193 return length;
44194 }
44195 }
44196 return -1;
44197}
44198
44199module.exports = assocIndexOf;
44200
44201
44202/***/ }),
44203
44204/***/ "./node_modules/lodash/_baseAssign.js":
44205/*!********************************************!*\
44206 !*** ./node_modules/lodash/_baseAssign.js ***!
44207 \********************************************/
44208/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44209
44210var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),
44211 keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");
44212
44213/**
44214 * The base implementation of `_.assign` without support for multiple sources
44215 * or `customizer` functions.
44216 *
44217 * @private
44218 * @param {Object} object The destination object.
44219 * @param {Object} source The source object.
44220 * @returns {Object} Returns `object`.
44221 */
44222function baseAssign(object, source) {
44223 return object && copyObject(source, keys(source), object);
44224}
44225
44226module.exports = baseAssign;
44227
44228
44229/***/ }),
44230
44231/***/ "./node_modules/lodash/_baseAssignIn.js":
44232/*!**********************************************!*\
44233 !*** ./node_modules/lodash/_baseAssignIn.js ***!
44234 \**********************************************/
44235/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44236
44237var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),
44238 keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js");
44239
44240/**
44241 * The base implementation of `_.assignIn` without support for multiple sources
44242 * or `customizer` functions.
44243 *
44244 * @private
44245 * @param {Object} object The destination object.
44246 * @param {Object} source The source object.
44247 * @returns {Object} Returns `object`.
44248 */
44249function baseAssignIn(object, source) {
44250 return object && copyObject(source, keysIn(source), object);
44251}
44252
44253module.exports = baseAssignIn;
44254
44255
44256/***/ }),
44257
44258/***/ "./node_modules/lodash/_baseAssignValue.js":
44259/*!*************************************************!*\
44260 !*** ./node_modules/lodash/_baseAssignValue.js ***!
44261 \*************************************************/
44262/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44263
44264var defineProperty = __webpack_require__(/*! ./_defineProperty */ "./node_modules/lodash/_defineProperty.js");
44265
44266/**
44267 * The base implementation of `assignValue` and `assignMergeValue` without
44268 * value checks.
44269 *
44270 * @private
44271 * @param {Object} object The object to modify.
44272 * @param {string} key The key of the property to assign.
44273 * @param {*} value The value to assign.
44274 */
44275function baseAssignValue(object, key, value) {
44276 if (key == '__proto__' && defineProperty) {
44277 defineProperty(object, key, {
44278 'configurable': true,
44279 'enumerable': true,
44280 'value': value,
44281 'writable': true
44282 });
44283 } else {
44284 object[key] = value;
44285 }
44286}
44287
44288module.exports = baseAssignValue;
44289
44290
44291/***/ }),
44292
44293/***/ "./node_modules/lodash/_baseClone.js":
44294/*!*******************************************!*\
44295 !*** ./node_modules/lodash/_baseClone.js ***!
44296 \*******************************************/
44297/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44298
44299var Stack = __webpack_require__(/*! ./_Stack */ "./node_modules/lodash/_Stack.js"),
44300 arrayEach = __webpack_require__(/*! ./_arrayEach */ "./node_modules/lodash/_arrayEach.js"),
44301 assignValue = __webpack_require__(/*! ./_assignValue */ "./node_modules/lodash/_assignValue.js"),
44302 baseAssign = __webpack_require__(/*! ./_baseAssign */ "./node_modules/lodash/_baseAssign.js"),
44303 baseAssignIn = __webpack_require__(/*! ./_baseAssignIn */ "./node_modules/lodash/_baseAssignIn.js"),
44304 cloneBuffer = __webpack_require__(/*! ./_cloneBuffer */ "./node_modules/lodash/_cloneBuffer.js"),
44305 copyArray = __webpack_require__(/*! ./_copyArray */ "./node_modules/lodash/_copyArray.js"),
44306 copySymbols = __webpack_require__(/*! ./_copySymbols */ "./node_modules/lodash/_copySymbols.js"),
44307 copySymbolsIn = __webpack_require__(/*! ./_copySymbolsIn */ "./node_modules/lodash/_copySymbolsIn.js"),
44308 getAllKeys = __webpack_require__(/*! ./_getAllKeys */ "./node_modules/lodash/_getAllKeys.js"),
44309 getAllKeysIn = __webpack_require__(/*! ./_getAllKeysIn */ "./node_modules/lodash/_getAllKeysIn.js"),
44310 getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
44311 initCloneArray = __webpack_require__(/*! ./_initCloneArray */ "./node_modules/lodash/_initCloneArray.js"),
44312 initCloneByTag = __webpack_require__(/*! ./_initCloneByTag */ "./node_modules/lodash/_initCloneByTag.js"),
44313 initCloneObject = __webpack_require__(/*! ./_initCloneObject */ "./node_modules/lodash/_initCloneObject.js"),
44314 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
44315 isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
44316 isMap = __webpack_require__(/*! ./isMap */ "./node_modules/lodash/isMap.js"),
44317 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
44318 isSet = __webpack_require__(/*! ./isSet */ "./node_modules/lodash/isSet.js"),
44319 keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js"),
44320 keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js");
44321
44322/** Used to compose bitmasks for cloning. */
44323var CLONE_DEEP_FLAG = 1,
44324 CLONE_FLAT_FLAG = 2,
44325 CLONE_SYMBOLS_FLAG = 4;
44326
44327/** `Object#toString` result references. */
44328var argsTag = '[object Arguments]',
44329 arrayTag = '[object Array]',
44330 boolTag = '[object Boolean]',
44331 dateTag = '[object Date]',
44332 errorTag = '[object Error]',
44333 funcTag = '[object Function]',
44334 genTag = '[object GeneratorFunction]',
44335 mapTag = '[object Map]',
44336 numberTag = '[object Number]',
44337 objectTag = '[object Object]',
44338 regexpTag = '[object RegExp]',
44339 setTag = '[object Set]',
44340 stringTag = '[object String]',
44341 symbolTag = '[object Symbol]',
44342 weakMapTag = '[object WeakMap]';
44343
44344var arrayBufferTag = '[object ArrayBuffer]',
44345 dataViewTag = '[object DataView]',
44346 float32Tag = '[object Float32Array]',
44347 float64Tag = '[object Float64Array]',
44348 int8Tag = '[object Int8Array]',
44349 int16Tag = '[object Int16Array]',
44350 int32Tag = '[object Int32Array]',
44351 uint8Tag = '[object Uint8Array]',
44352 uint8ClampedTag = '[object Uint8ClampedArray]',
44353 uint16Tag = '[object Uint16Array]',
44354 uint32Tag = '[object Uint32Array]';
44355
44356/** Used to identify `toStringTag` values supported by `_.clone`. */
44357var cloneableTags = {};
44358cloneableTags[argsTag] = cloneableTags[arrayTag] =
44359cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
44360cloneableTags[boolTag] = cloneableTags[dateTag] =
44361cloneableTags[float32Tag] = cloneableTags[float64Tag] =
44362cloneableTags[int8Tag] = cloneableTags[int16Tag] =
44363cloneableTags[int32Tag] = cloneableTags[mapTag] =
44364cloneableTags[numberTag] = cloneableTags[objectTag] =
44365cloneableTags[regexpTag] = cloneableTags[setTag] =
44366cloneableTags[stringTag] = cloneableTags[symbolTag] =
44367cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
44368cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
44369cloneableTags[errorTag] = cloneableTags[funcTag] =
44370cloneableTags[weakMapTag] = false;
44371
44372/**
44373 * The base implementation of `_.clone` and `_.cloneDeep` which tracks
44374 * traversed objects.
44375 *
44376 * @private
44377 * @param {*} value The value to clone.
44378 * @param {boolean} bitmask The bitmask flags.
44379 * 1 - Deep clone
44380 * 2 - Flatten inherited properties
44381 * 4 - Clone symbols
44382 * @param {Function} [customizer] The function to customize cloning.
44383 * @param {string} [key] The key of `value`.
44384 * @param {Object} [object] The parent object of `value`.
44385 * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
44386 * @returns {*} Returns the cloned value.
44387 */
44388function baseClone(value, bitmask, customizer, key, object, stack) {
44389 var result,
44390 isDeep = bitmask & CLONE_DEEP_FLAG,
44391 isFlat = bitmask & CLONE_FLAT_FLAG,
44392 isFull = bitmask & CLONE_SYMBOLS_FLAG;
44393
44394 if (customizer) {
44395 result = object ? customizer(value, key, object, stack) : customizer(value);
44396 }
44397 if (result !== undefined) {
44398 return result;
44399 }
44400 if (!isObject(value)) {
44401 return value;
44402 }
44403 var isArr = isArray(value);
44404 if (isArr) {
44405 result = initCloneArray(value);
44406 if (!isDeep) {
44407 return copyArray(value, result);
44408 }
44409 } else {
44410 var tag = getTag(value),
44411 isFunc = tag == funcTag || tag == genTag;
44412
44413 if (isBuffer(value)) {
44414 return cloneBuffer(value, isDeep);
44415 }
44416 if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
44417 result = (isFlat || isFunc) ? {} : initCloneObject(value);
44418 if (!isDeep) {
44419 return isFlat
44420 ? copySymbolsIn(value, baseAssignIn(result, value))
44421 : copySymbols(value, baseAssign(result, value));
44422 }
44423 } else {
44424 if (!cloneableTags[tag]) {
44425 return object ? value : {};
44426 }
44427 result = initCloneByTag(value, tag, isDeep);
44428 }
44429 }
44430 // Check for circular references and return its corresponding clone.
44431 stack || (stack = new Stack);
44432 var stacked = stack.get(value);
44433 if (stacked) {
44434 return stacked;
44435 }
44436 stack.set(value, result);
44437
44438 if (isSet(value)) {
44439 value.forEach(function(subValue) {
44440 result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
44441 });
44442 } else if (isMap(value)) {
44443 value.forEach(function(subValue, key) {
44444 result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));
44445 });
44446 }
44447
44448 var keysFunc = isFull
44449 ? (isFlat ? getAllKeysIn : getAllKeys)
44450 : (isFlat ? keysIn : keys);
44451
44452 var props = isArr ? undefined : keysFunc(value);
44453 arrayEach(props || value, function(subValue, key) {
44454 if (props) {
44455 key = subValue;
44456 subValue = value[key];
44457 }
44458 // Recursively populate clone (susceptible to call stack limits).
44459 assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));
44460 });
44461 return result;
44462}
44463
44464module.exports = baseClone;
44465
44466
44467/***/ }),
44468
44469/***/ "./node_modules/lodash/_baseCreate.js":
44470/*!********************************************!*\
44471 !*** ./node_modules/lodash/_baseCreate.js ***!
44472 \********************************************/
44473/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44474
44475var isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js");
44476
44477/** Built-in value references. */
44478var objectCreate = Object.create;
44479
44480/**
44481 * The base implementation of `_.create` without support for assigning
44482 * properties to the created object.
44483 *
44484 * @private
44485 * @param {Object} proto The object to inherit from.
44486 * @returns {Object} Returns the new object.
44487 */
44488var baseCreate = (function() {
44489 function object() {}
44490 return function(proto) {
44491 if (!isObject(proto)) {
44492 return {};
44493 }
44494 if (objectCreate) {
44495 return objectCreate(proto);
44496 }
44497 object.prototype = proto;
44498 var result = new object;
44499 object.prototype = undefined;
44500 return result;
44501 };
44502}());
44503
44504module.exports = baseCreate;
44505
44506
44507/***/ }),
44508
44509/***/ "./node_modules/lodash/_baseEach.js":
44510/*!******************************************!*\
44511 !*** ./node_modules/lodash/_baseEach.js ***!
44512 \******************************************/
44513/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44514
44515var baseForOwn = __webpack_require__(/*! ./_baseForOwn */ "./node_modules/lodash/_baseForOwn.js"),
44516 createBaseEach = __webpack_require__(/*! ./_createBaseEach */ "./node_modules/lodash/_createBaseEach.js");
44517
44518/**
44519 * The base implementation of `_.forEach` without support for iteratee shorthands.
44520 *
44521 * @private
44522 * @param {Array|Object} collection The collection to iterate over.
44523 * @param {Function} iteratee The function invoked per iteration.
44524 * @returns {Array|Object} Returns `collection`.
44525 */
44526var baseEach = createBaseEach(baseForOwn);
44527
44528module.exports = baseEach;
44529
44530
44531/***/ }),
44532
44533/***/ "./node_modules/lodash/_baseExtremum.js":
44534/*!**********************************************!*\
44535 !*** ./node_modules/lodash/_baseExtremum.js ***!
44536 \**********************************************/
44537/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44538
44539var isSymbol = __webpack_require__(/*! ./isSymbol */ "./node_modules/lodash/isSymbol.js");
44540
44541/**
44542 * The base implementation of methods like `_.max` and `_.min` which accepts a
44543 * `comparator` to determine the extremum value.
44544 *
44545 * @private
44546 * @param {Array} array The array to iterate over.
44547 * @param {Function} iteratee The iteratee invoked per iteration.
44548 * @param {Function} comparator The comparator used to compare values.
44549 * @returns {*} Returns the extremum value.
44550 */
44551function baseExtremum(array, iteratee, comparator) {
44552 var index = -1,
44553 length = array.length;
44554
44555 while (++index < length) {
44556 var value = array[index],
44557 current = iteratee(value);
44558
44559 if (current != null && (computed === undefined
44560 ? (current === current && !isSymbol(current))
44561 : comparator(current, computed)
44562 )) {
44563 var computed = current,
44564 result = value;
44565 }
44566 }
44567 return result;
44568}
44569
44570module.exports = baseExtremum;
44571
44572
44573/***/ }),
44574
44575/***/ "./node_modules/lodash/_baseFilter.js":
44576/*!********************************************!*\
44577 !*** ./node_modules/lodash/_baseFilter.js ***!
44578 \********************************************/
44579/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44580
44581var baseEach = __webpack_require__(/*! ./_baseEach */ "./node_modules/lodash/_baseEach.js");
44582
44583/**
44584 * The base implementation of `_.filter` without support for iteratee shorthands.
44585 *
44586 * @private
44587 * @param {Array|Object} collection The collection to iterate over.
44588 * @param {Function} predicate The function invoked per iteration.
44589 * @returns {Array} Returns the new filtered array.
44590 */
44591function baseFilter(collection, predicate) {
44592 var result = [];
44593 baseEach(collection, function(value, index, collection) {
44594 if (predicate(value, index, collection)) {
44595 result.push(value);
44596 }
44597 });
44598 return result;
44599}
44600
44601module.exports = baseFilter;
44602
44603
44604/***/ }),
44605
44606/***/ "./node_modules/lodash/_baseFindIndex.js":
44607/*!***********************************************!*\
44608 !*** ./node_modules/lodash/_baseFindIndex.js ***!
44609 \***********************************************/
44610/***/ ((module) => {
44611
44612/**
44613 * The base implementation of `_.findIndex` and `_.findLastIndex` without
44614 * support for iteratee shorthands.
44615 *
44616 * @private
44617 * @param {Array} array The array to inspect.
44618 * @param {Function} predicate The function invoked per iteration.
44619 * @param {number} fromIndex The index to search from.
44620 * @param {boolean} [fromRight] Specify iterating from right to left.
44621 * @returns {number} Returns the index of the matched value, else `-1`.
44622 */
44623function baseFindIndex(array, predicate, fromIndex, fromRight) {
44624 var length = array.length,
44625 index = fromIndex + (fromRight ? 1 : -1);
44626
44627 while ((fromRight ? index-- : ++index < length)) {
44628 if (predicate(array[index], index, array)) {
44629 return index;
44630 }
44631 }
44632 return -1;
44633}
44634
44635module.exports = baseFindIndex;
44636
44637
44638/***/ }),
44639
44640/***/ "./node_modules/lodash/_baseFlatten.js":
44641/*!*********************************************!*\
44642 !*** ./node_modules/lodash/_baseFlatten.js ***!
44643 \*********************************************/
44644/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44645
44646var arrayPush = __webpack_require__(/*! ./_arrayPush */ "./node_modules/lodash/_arrayPush.js"),
44647 isFlattenable = __webpack_require__(/*! ./_isFlattenable */ "./node_modules/lodash/_isFlattenable.js");
44648
44649/**
44650 * The base implementation of `_.flatten` with support for restricting flattening.
44651 *
44652 * @private
44653 * @param {Array} array The array to flatten.
44654 * @param {number} depth The maximum recursion depth.
44655 * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
44656 * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
44657 * @param {Array} [result=[]] The initial result value.
44658 * @returns {Array} Returns the new flattened array.
44659 */
44660function baseFlatten(array, depth, predicate, isStrict, result) {
44661 var index = -1,
44662 length = array.length;
44663
44664 predicate || (predicate = isFlattenable);
44665 result || (result = []);
44666
44667 while (++index < length) {
44668 var value = array[index];
44669 if (depth > 0 && predicate(value)) {
44670 if (depth > 1) {
44671 // Recursively flatten arrays (susceptible to call stack limits).
44672 baseFlatten(value, depth - 1, predicate, isStrict, result);
44673 } else {
44674 arrayPush(result, value);
44675 }
44676 } else if (!isStrict) {
44677 result[result.length] = value;
44678 }
44679 }
44680 return result;
44681}
44682
44683module.exports = baseFlatten;
44684
44685
44686/***/ }),
44687
44688/***/ "./node_modules/lodash/_baseFor.js":
44689/*!*****************************************!*\
44690 !*** ./node_modules/lodash/_baseFor.js ***!
44691 \*****************************************/
44692/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44693
44694var createBaseFor = __webpack_require__(/*! ./_createBaseFor */ "./node_modules/lodash/_createBaseFor.js");
44695
44696/**
44697 * The base implementation of `baseForOwn` which iterates over `object`
44698 * properties returned by `keysFunc` and invokes `iteratee` for each property.
44699 * Iteratee functions may exit iteration early by explicitly returning `false`.
44700 *
44701 * @private
44702 * @param {Object} object The object to iterate over.
44703 * @param {Function} iteratee The function invoked per iteration.
44704 * @param {Function} keysFunc The function to get the keys of `object`.
44705 * @returns {Object} Returns `object`.
44706 */
44707var baseFor = createBaseFor();
44708
44709module.exports = baseFor;
44710
44711
44712/***/ }),
44713
44714/***/ "./node_modules/lodash/_baseForOwn.js":
44715/*!********************************************!*\
44716 !*** ./node_modules/lodash/_baseForOwn.js ***!
44717 \********************************************/
44718/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44719
44720var baseFor = __webpack_require__(/*! ./_baseFor */ "./node_modules/lodash/_baseFor.js"),
44721 keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");
44722
44723/**
44724 * The base implementation of `_.forOwn` without support for iteratee shorthands.
44725 *
44726 * @private
44727 * @param {Object} object The object to iterate over.
44728 * @param {Function} iteratee The function invoked per iteration.
44729 * @returns {Object} Returns `object`.
44730 */
44731function baseForOwn(object, iteratee) {
44732 return object && baseFor(object, iteratee, keys);
44733}
44734
44735module.exports = baseForOwn;
44736
44737
44738/***/ }),
44739
44740/***/ "./node_modules/lodash/_baseGet.js":
44741/*!*****************************************!*\
44742 !*** ./node_modules/lodash/_baseGet.js ***!
44743 \*****************************************/
44744/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44745
44746var castPath = __webpack_require__(/*! ./_castPath */ "./node_modules/lodash/_castPath.js"),
44747 toKey = __webpack_require__(/*! ./_toKey */ "./node_modules/lodash/_toKey.js");
44748
44749/**
44750 * The base implementation of `_.get` without support for default values.
44751 *
44752 * @private
44753 * @param {Object} object The object to query.
44754 * @param {Array|string} path The path of the property to get.
44755 * @returns {*} Returns the resolved value.
44756 */
44757function baseGet(object, path) {
44758 path = castPath(path, object);
44759
44760 var index = 0,
44761 length = path.length;
44762
44763 while (object != null && index < length) {
44764 object = object[toKey(path[index++])];
44765 }
44766 return (index && index == length) ? object : undefined;
44767}
44768
44769module.exports = baseGet;
44770
44771
44772/***/ }),
44773
44774/***/ "./node_modules/lodash/_baseGetAllKeys.js":
44775/*!************************************************!*\
44776 !*** ./node_modules/lodash/_baseGetAllKeys.js ***!
44777 \************************************************/
44778/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44779
44780var arrayPush = __webpack_require__(/*! ./_arrayPush */ "./node_modules/lodash/_arrayPush.js"),
44781 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");
44782
44783/**
44784 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
44785 * `keysFunc` and `symbolsFunc` to get the enumerable property names and
44786 * symbols of `object`.
44787 *
44788 * @private
44789 * @param {Object} object The object to query.
44790 * @param {Function} keysFunc The function to get the keys of `object`.
44791 * @param {Function} symbolsFunc The function to get the symbols of `object`.
44792 * @returns {Array} Returns the array of property names and symbols.
44793 */
44794function baseGetAllKeys(object, keysFunc, symbolsFunc) {
44795 var result = keysFunc(object);
44796 return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
44797}
44798
44799module.exports = baseGetAllKeys;
44800
44801
44802/***/ }),
44803
44804/***/ "./node_modules/lodash/_baseGetTag.js":
44805/*!********************************************!*\
44806 !*** ./node_modules/lodash/_baseGetTag.js ***!
44807 \********************************************/
44808/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44809
44810var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"),
44811 getRawTag = __webpack_require__(/*! ./_getRawTag */ "./node_modules/lodash/_getRawTag.js"),
44812 objectToString = __webpack_require__(/*! ./_objectToString */ "./node_modules/lodash/_objectToString.js");
44813
44814/** `Object#toString` result references. */
44815var nullTag = '[object Null]',
44816 undefinedTag = '[object Undefined]';
44817
44818/** Built-in value references. */
44819var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
44820
44821/**
44822 * The base implementation of `getTag` without fallbacks for buggy environments.
44823 *
44824 * @private
44825 * @param {*} value The value to query.
44826 * @returns {string} Returns the `toStringTag`.
44827 */
44828function baseGetTag(value) {
44829 if (value == null) {
44830 return value === undefined ? undefinedTag : nullTag;
44831 }
44832 return (symToStringTag && symToStringTag in Object(value))
44833 ? getRawTag(value)
44834 : objectToString(value);
44835}
44836
44837module.exports = baseGetTag;
44838
44839
44840/***/ }),
44841
44842/***/ "./node_modules/lodash/_baseGt.js":
44843/*!****************************************!*\
44844 !*** ./node_modules/lodash/_baseGt.js ***!
44845 \****************************************/
44846/***/ ((module) => {
44847
44848/**
44849 * The base implementation of `_.gt` which doesn't coerce arguments.
44850 *
44851 * @private
44852 * @param {*} value The value to compare.
44853 * @param {*} other The other value to compare.
44854 * @returns {boolean} Returns `true` if `value` is greater than `other`,
44855 * else `false`.
44856 */
44857function baseGt(value, other) {
44858 return value > other;
44859}
44860
44861module.exports = baseGt;
44862
44863
44864/***/ }),
44865
44866/***/ "./node_modules/lodash/_baseHas.js":
44867/*!*****************************************!*\
44868 !*** ./node_modules/lodash/_baseHas.js ***!
44869 \*****************************************/
44870/***/ ((module) => {
44871
44872/** Used for built-in method references. */
44873var objectProto = Object.prototype;
44874
44875/** Used to check objects for own properties. */
44876var hasOwnProperty = objectProto.hasOwnProperty;
44877
44878/**
44879 * The base implementation of `_.has` without support for deep paths.
44880 *
44881 * @private
44882 * @param {Object} [object] The object to query.
44883 * @param {Array|string} key The key to check.
44884 * @returns {boolean} Returns `true` if `key` exists, else `false`.
44885 */
44886function baseHas(object, key) {
44887 return object != null && hasOwnProperty.call(object, key);
44888}
44889
44890module.exports = baseHas;
44891
44892
44893/***/ }),
44894
44895/***/ "./node_modules/lodash/_baseHasIn.js":
44896/*!*******************************************!*\
44897 !*** ./node_modules/lodash/_baseHasIn.js ***!
44898 \*******************************************/
44899/***/ ((module) => {
44900
44901/**
44902 * The base implementation of `_.hasIn` without support for deep paths.
44903 *
44904 * @private
44905 * @param {Object} [object] The object to query.
44906 * @param {Array|string} key The key to check.
44907 * @returns {boolean} Returns `true` if `key` exists, else `false`.
44908 */
44909function baseHasIn(object, key) {
44910 return object != null && key in Object(object);
44911}
44912
44913module.exports = baseHasIn;
44914
44915
44916/***/ }),
44917
44918/***/ "./node_modules/lodash/_baseIndexOf.js":
44919/*!*********************************************!*\
44920 !*** ./node_modules/lodash/_baseIndexOf.js ***!
44921 \*********************************************/
44922/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44923
44924var baseFindIndex = __webpack_require__(/*! ./_baseFindIndex */ "./node_modules/lodash/_baseFindIndex.js"),
44925 baseIsNaN = __webpack_require__(/*! ./_baseIsNaN */ "./node_modules/lodash/_baseIsNaN.js"),
44926 strictIndexOf = __webpack_require__(/*! ./_strictIndexOf */ "./node_modules/lodash/_strictIndexOf.js");
44927
44928/**
44929 * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
44930 *
44931 * @private
44932 * @param {Array} array The array to inspect.
44933 * @param {*} value The value to search for.
44934 * @param {number} fromIndex The index to search from.
44935 * @returns {number} Returns the index of the matched value, else `-1`.
44936 */
44937function baseIndexOf(array, value, fromIndex) {
44938 return value === value
44939 ? strictIndexOf(array, value, fromIndex)
44940 : baseFindIndex(array, baseIsNaN, fromIndex);
44941}
44942
44943module.exports = baseIndexOf;
44944
44945
44946/***/ }),
44947
44948/***/ "./node_modules/lodash/_baseIsArguments.js":
44949/*!*************************************************!*\
44950 !*** ./node_modules/lodash/_baseIsArguments.js ***!
44951 \*************************************************/
44952/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44953
44954var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
44955 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
44956
44957/** `Object#toString` result references. */
44958var argsTag = '[object Arguments]';
44959
44960/**
44961 * The base implementation of `_.isArguments`.
44962 *
44963 * @private
44964 * @param {*} value The value to check.
44965 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
44966 */
44967function baseIsArguments(value) {
44968 return isObjectLike(value) && baseGetTag(value) == argsTag;
44969}
44970
44971module.exports = baseIsArguments;
44972
44973
44974/***/ }),
44975
44976/***/ "./node_modules/lodash/_baseIsEqual.js":
44977/*!*********************************************!*\
44978 !*** ./node_modules/lodash/_baseIsEqual.js ***!
44979 \*********************************************/
44980/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44981
44982var baseIsEqualDeep = __webpack_require__(/*! ./_baseIsEqualDeep */ "./node_modules/lodash/_baseIsEqualDeep.js"),
44983 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
44984
44985/**
44986 * The base implementation of `_.isEqual` which supports partial comparisons
44987 * and tracks traversed objects.
44988 *
44989 * @private
44990 * @param {*} value The value to compare.
44991 * @param {*} other The other value to compare.
44992 * @param {boolean} bitmask The bitmask flags.
44993 * 1 - Unordered comparison
44994 * 2 - Partial comparison
44995 * @param {Function} [customizer] The function to customize comparisons.
44996 * @param {Object} [stack] Tracks traversed `value` and `other` objects.
44997 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
44998 */
44999function baseIsEqual(value, other, bitmask, customizer, stack) {
45000 if (value === other) {
45001 return true;
45002 }
45003 if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
45004 return value !== value && other !== other;
45005 }
45006 return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
45007}
45008
45009module.exports = baseIsEqual;
45010
45011
45012/***/ }),
45013
45014/***/ "./node_modules/lodash/_baseIsEqualDeep.js":
45015/*!*************************************************!*\
45016 !*** ./node_modules/lodash/_baseIsEqualDeep.js ***!
45017 \*************************************************/
45018/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45019
45020var Stack = __webpack_require__(/*! ./_Stack */ "./node_modules/lodash/_Stack.js"),
45021 equalArrays = __webpack_require__(/*! ./_equalArrays */ "./node_modules/lodash/_equalArrays.js"),
45022 equalByTag = __webpack_require__(/*! ./_equalByTag */ "./node_modules/lodash/_equalByTag.js"),
45023 equalObjects = __webpack_require__(/*! ./_equalObjects */ "./node_modules/lodash/_equalObjects.js"),
45024 getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
45025 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
45026 isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
45027 isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/lodash/isTypedArray.js");
45028
45029/** Used to compose bitmasks for value comparisons. */
45030var COMPARE_PARTIAL_FLAG = 1;
45031
45032/** `Object#toString` result references. */
45033var argsTag = '[object Arguments]',
45034 arrayTag = '[object Array]',
45035 objectTag = '[object Object]';
45036
45037/** Used for built-in method references. */
45038var objectProto = Object.prototype;
45039
45040/** Used to check objects for own properties. */
45041var hasOwnProperty = objectProto.hasOwnProperty;
45042
45043/**
45044 * A specialized version of `baseIsEqual` for arrays and objects which performs
45045 * deep comparisons and tracks traversed objects enabling objects with circular
45046 * references to be compared.
45047 *
45048 * @private
45049 * @param {Object} object The object to compare.
45050 * @param {Object} other The other object to compare.
45051 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
45052 * @param {Function} customizer The function to customize comparisons.
45053 * @param {Function} equalFunc The function to determine equivalents of values.
45054 * @param {Object} [stack] Tracks traversed `object` and `other` objects.
45055 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
45056 */
45057function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
45058 var objIsArr = isArray(object),
45059 othIsArr = isArray(other),
45060 objTag = objIsArr ? arrayTag : getTag(object),
45061 othTag = othIsArr ? arrayTag : getTag(other);
45062
45063 objTag = objTag == argsTag ? objectTag : objTag;
45064 othTag = othTag == argsTag ? objectTag : othTag;
45065
45066 var objIsObj = objTag == objectTag,
45067 othIsObj = othTag == objectTag,
45068 isSameTag = objTag == othTag;
45069
45070 if (isSameTag && isBuffer(object)) {
45071 if (!isBuffer(other)) {
45072 return false;
45073 }
45074 objIsArr = true;
45075 objIsObj = false;
45076 }
45077 if (isSameTag && !objIsObj) {
45078 stack || (stack = new Stack);
45079 return (objIsArr || isTypedArray(object))
45080 ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
45081 : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
45082 }
45083 if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
45084 var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
45085 othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
45086
45087 if (objIsWrapped || othIsWrapped) {
45088 var objUnwrapped = objIsWrapped ? object.value() : object,
45089 othUnwrapped = othIsWrapped ? other.value() : other;
45090
45091 stack || (stack = new Stack);
45092 return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
45093 }
45094 }
45095 if (!isSameTag) {
45096 return false;
45097 }
45098 stack || (stack = new Stack);
45099 return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
45100}
45101
45102module.exports = baseIsEqualDeep;
45103
45104
45105/***/ }),
45106
45107/***/ "./node_modules/lodash/_baseIsMap.js":
45108/*!*******************************************!*\
45109 !*** ./node_modules/lodash/_baseIsMap.js ***!
45110 \*******************************************/
45111/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45112
45113var getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
45114 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
45115
45116/** `Object#toString` result references. */
45117var mapTag = '[object Map]';
45118
45119/**
45120 * The base implementation of `_.isMap` without Node.js optimizations.
45121 *
45122 * @private
45123 * @param {*} value The value to check.
45124 * @returns {boolean} Returns `true` if `value` is a map, else `false`.
45125 */
45126function baseIsMap(value) {
45127 return isObjectLike(value) && getTag(value) == mapTag;
45128}
45129
45130module.exports = baseIsMap;
45131
45132
45133/***/ }),
45134
45135/***/ "./node_modules/lodash/_baseIsMatch.js":
45136/*!*********************************************!*\
45137 !*** ./node_modules/lodash/_baseIsMatch.js ***!
45138 \*********************************************/
45139/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45140
45141var Stack = __webpack_require__(/*! ./_Stack */ "./node_modules/lodash/_Stack.js"),
45142 baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ "./node_modules/lodash/_baseIsEqual.js");
45143
45144/** Used to compose bitmasks for value comparisons. */
45145var COMPARE_PARTIAL_FLAG = 1,
45146 COMPARE_UNORDERED_FLAG = 2;
45147
45148/**
45149 * The base implementation of `_.isMatch` without support for iteratee shorthands.
45150 *
45151 * @private
45152 * @param {Object} object The object to inspect.
45153 * @param {Object} source The object of property values to match.
45154 * @param {Array} matchData The property names, values, and compare flags to match.
45155 * @param {Function} [customizer] The function to customize comparisons.
45156 * @returns {boolean} Returns `true` if `object` is a match, else `false`.
45157 */
45158function baseIsMatch(object, source, matchData, customizer) {
45159 var index = matchData.length,
45160 length = index,
45161 noCustomizer = !customizer;
45162
45163 if (object == null) {
45164 return !length;
45165 }
45166 object = Object(object);
45167 while (index--) {
45168 var data = matchData[index];
45169 if ((noCustomizer && data[2])
45170 ? data[1] !== object[data[0]]
45171 : !(data[0] in object)
45172 ) {
45173 return false;
45174 }
45175 }
45176 while (++index < length) {
45177 data = matchData[index];
45178 var key = data[0],
45179 objValue = object[key],
45180 srcValue = data[1];
45181
45182 if (noCustomizer && data[2]) {
45183 if (objValue === undefined && !(key in object)) {
45184 return false;
45185 }
45186 } else {
45187 var stack = new Stack;
45188 if (customizer) {
45189 var result = customizer(objValue, srcValue, key, object, source, stack);
45190 }
45191 if (!(result === undefined
45192 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)
45193 : result
45194 )) {
45195 return false;
45196 }
45197 }
45198 }
45199 return true;
45200}
45201
45202module.exports = baseIsMatch;
45203
45204
45205/***/ }),
45206
45207/***/ "./node_modules/lodash/_baseIsNaN.js":
45208/*!*******************************************!*\
45209 !*** ./node_modules/lodash/_baseIsNaN.js ***!
45210 \*******************************************/
45211/***/ ((module) => {
45212
45213/**
45214 * The base implementation of `_.isNaN` without support for number objects.
45215 *
45216 * @private
45217 * @param {*} value The value to check.
45218 * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
45219 */
45220function baseIsNaN(value) {
45221 return value !== value;
45222}
45223
45224module.exports = baseIsNaN;
45225
45226
45227/***/ }),
45228
45229/***/ "./node_modules/lodash/_baseIsNative.js":
45230/*!**********************************************!*\
45231 !*** ./node_modules/lodash/_baseIsNative.js ***!
45232 \**********************************************/
45233/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45234
45235var isFunction = __webpack_require__(/*! ./isFunction */ "./node_modules/lodash/isFunction.js"),
45236 isMasked = __webpack_require__(/*! ./_isMasked */ "./node_modules/lodash/_isMasked.js"),
45237 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
45238 toSource = __webpack_require__(/*! ./_toSource */ "./node_modules/lodash/_toSource.js");
45239
45240/**
45241 * Used to match `RegExp`
45242 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
45243 */
45244var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
45245
45246/** Used to detect host constructors (Safari). */
45247var reIsHostCtor = /^\[object .+?Constructor\]$/;
45248
45249/** Used for built-in method references. */
45250var funcProto = Function.prototype,
45251 objectProto = Object.prototype;
45252
45253/** Used to resolve the decompiled source of functions. */
45254var funcToString = funcProto.toString;
45255
45256/** Used to check objects for own properties. */
45257var hasOwnProperty = objectProto.hasOwnProperty;
45258
45259/** Used to detect if a method is native. */
45260var reIsNative = RegExp('^' +
45261 funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
45262 .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
45263);
45264
45265/**
45266 * The base implementation of `_.isNative` without bad shim checks.
45267 *
45268 * @private
45269 * @param {*} value The value to check.
45270 * @returns {boolean} Returns `true` if `value` is a native function,
45271 * else `false`.
45272 */
45273function baseIsNative(value) {
45274 if (!isObject(value) || isMasked(value)) {
45275 return false;
45276 }
45277 var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
45278 return pattern.test(toSource(value));
45279}
45280
45281module.exports = baseIsNative;
45282
45283
45284/***/ }),
45285
45286/***/ "./node_modules/lodash/_baseIsSet.js":
45287/*!*******************************************!*\
45288 !*** ./node_modules/lodash/_baseIsSet.js ***!
45289 \*******************************************/
45290/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45291
45292var getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
45293 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
45294
45295/** `Object#toString` result references. */
45296var setTag = '[object Set]';
45297
45298/**
45299 * The base implementation of `_.isSet` without Node.js optimizations.
45300 *
45301 * @private
45302 * @param {*} value The value to check.
45303 * @returns {boolean} Returns `true` if `value` is a set, else `false`.
45304 */
45305function baseIsSet(value) {
45306 return isObjectLike(value) && getTag(value) == setTag;
45307}
45308
45309module.exports = baseIsSet;
45310
45311
45312/***/ }),
45313
45314/***/ "./node_modules/lodash/_baseIsTypedArray.js":
45315/*!**************************************************!*\
45316 !*** ./node_modules/lodash/_baseIsTypedArray.js ***!
45317 \**************************************************/
45318/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45319
45320var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
45321 isLength = __webpack_require__(/*! ./isLength */ "./node_modules/lodash/isLength.js"),
45322 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
45323
45324/** `Object#toString` result references. */
45325var argsTag = '[object Arguments]',
45326 arrayTag = '[object Array]',
45327 boolTag = '[object Boolean]',
45328 dateTag = '[object Date]',
45329 errorTag = '[object Error]',
45330 funcTag = '[object Function]',
45331 mapTag = '[object Map]',
45332 numberTag = '[object Number]',
45333 objectTag = '[object Object]',
45334 regexpTag = '[object RegExp]',
45335 setTag = '[object Set]',
45336 stringTag = '[object String]',
45337 weakMapTag = '[object WeakMap]';
45338
45339var arrayBufferTag = '[object ArrayBuffer]',
45340 dataViewTag = '[object DataView]',
45341 float32Tag = '[object Float32Array]',
45342 float64Tag = '[object Float64Array]',
45343 int8Tag = '[object Int8Array]',
45344 int16Tag = '[object Int16Array]',
45345 int32Tag = '[object Int32Array]',
45346 uint8Tag = '[object Uint8Array]',
45347 uint8ClampedTag = '[object Uint8ClampedArray]',
45348 uint16Tag = '[object Uint16Array]',
45349 uint32Tag = '[object Uint32Array]';
45350
45351/** Used to identify `toStringTag` values of typed arrays. */
45352var typedArrayTags = {};
45353typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
45354typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
45355typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
45356typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
45357typedArrayTags[uint32Tag] = true;
45358typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
45359typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
45360typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
45361typedArrayTags[errorTag] = typedArrayTags[funcTag] =
45362typedArrayTags[mapTag] = typedArrayTags[numberTag] =
45363typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
45364typedArrayTags[setTag] = typedArrayTags[stringTag] =
45365typedArrayTags[weakMapTag] = false;
45366
45367/**
45368 * The base implementation of `_.isTypedArray` without Node.js optimizations.
45369 *
45370 * @private
45371 * @param {*} value The value to check.
45372 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
45373 */
45374function baseIsTypedArray(value) {
45375 return isObjectLike(value) &&
45376 isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
45377}
45378
45379module.exports = baseIsTypedArray;
45380
45381
45382/***/ }),
45383
45384/***/ "./node_modules/lodash/_baseIteratee.js":
45385/*!**********************************************!*\
45386 !*** ./node_modules/lodash/_baseIteratee.js ***!
45387 \**********************************************/
45388/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45389
45390var baseMatches = __webpack_require__(/*! ./_baseMatches */ "./node_modules/lodash/_baseMatches.js"),
45391 baseMatchesProperty = __webpack_require__(/*! ./_baseMatchesProperty */ "./node_modules/lodash/_baseMatchesProperty.js"),
45392 identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js"),
45393 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
45394 property = __webpack_require__(/*! ./property */ "./node_modules/lodash/property.js");
45395
45396/**
45397 * The base implementation of `_.iteratee`.
45398 *
45399 * @private
45400 * @param {*} [value=_.identity] The value to convert to an iteratee.
45401 * @returns {Function} Returns the iteratee.
45402 */
45403function baseIteratee(value) {
45404 // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
45405 // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
45406 if (typeof value == 'function') {
45407 return value;
45408 }
45409 if (value == null) {
45410 return identity;
45411 }
45412 if (typeof value == 'object') {
45413 return isArray(value)
45414 ? baseMatchesProperty(value[0], value[1])
45415 : baseMatches(value);
45416 }
45417 return property(value);
45418}
45419
45420module.exports = baseIteratee;
45421
45422
45423/***/ }),
45424
45425/***/ "./node_modules/lodash/_baseKeys.js":
45426/*!******************************************!*\
45427 !*** ./node_modules/lodash/_baseKeys.js ***!
45428 \******************************************/
45429/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45430
45431var isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js"),
45432 nativeKeys = __webpack_require__(/*! ./_nativeKeys */ "./node_modules/lodash/_nativeKeys.js");
45433
45434/** Used for built-in method references. */
45435var objectProto = Object.prototype;
45436
45437/** Used to check objects for own properties. */
45438var hasOwnProperty = objectProto.hasOwnProperty;
45439
45440/**
45441 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
45442 *
45443 * @private
45444 * @param {Object} object The object to query.
45445 * @returns {Array} Returns the array of property names.
45446 */
45447function baseKeys(object) {
45448 if (!isPrototype(object)) {
45449 return nativeKeys(object);
45450 }
45451 var result = [];
45452 for (var key in Object(object)) {
45453 if (hasOwnProperty.call(object, key) && key != 'constructor') {
45454 result.push(key);
45455 }
45456 }
45457 return result;
45458}
45459
45460module.exports = baseKeys;
45461
45462
45463/***/ }),
45464
45465/***/ "./node_modules/lodash/_baseKeysIn.js":
45466/*!********************************************!*\
45467 !*** ./node_modules/lodash/_baseKeysIn.js ***!
45468 \********************************************/
45469/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45470
45471var isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
45472 isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js"),
45473 nativeKeysIn = __webpack_require__(/*! ./_nativeKeysIn */ "./node_modules/lodash/_nativeKeysIn.js");
45474
45475/** Used for built-in method references. */
45476var objectProto = Object.prototype;
45477
45478/** Used to check objects for own properties. */
45479var hasOwnProperty = objectProto.hasOwnProperty;
45480
45481/**
45482 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
45483 *
45484 * @private
45485 * @param {Object} object The object to query.
45486 * @returns {Array} Returns the array of property names.
45487 */
45488function baseKeysIn(object) {
45489 if (!isObject(object)) {
45490 return nativeKeysIn(object);
45491 }
45492 var isProto = isPrototype(object),
45493 result = [];
45494
45495 for (var key in object) {
45496 if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
45497 result.push(key);
45498 }
45499 }
45500 return result;
45501}
45502
45503module.exports = baseKeysIn;
45504
45505
45506/***/ }),
45507
45508/***/ "./node_modules/lodash/_baseLt.js":
45509/*!****************************************!*\
45510 !*** ./node_modules/lodash/_baseLt.js ***!
45511 \****************************************/
45512/***/ ((module) => {
45513
45514/**
45515 * The base implementation of `_.lt` which doesn't coerce arguments.
45516 *
45517 * @private
45518 * @param {*} value The value to compare.
45519 * @param {*} other The other value to compare.
45520 * @returns {boolean} Returns `true` if `value` is less than `other`,
45521 * else `false`.
45522 */
45523function baseLt(value, other) {
45524 return value < other;
45525}
45526
45527module.exports = baseLt;
45528
45529
45530/***/ }),
45531
45532/***/ "./node_modules/lodash/_baseMap.js":
45533/*!*****************************************!*\
45534 !*** ./node_modules/lodash/_baseMap.js ***!
45535 \*****************************************/
45536/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45537
45538var baseEach = __webpack_require__(/*! ./_baseEach */ "./node_modules/lodash/_baseEach.js"),
45539 isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js");
45540
45541/**
45542 * The base implementation of `_.map` without support for iteratee shorthands.
45543 *
45544 * @private
45545 * @param {Array|Object} collection The collection to iterate over.
45546 * @param {Function} iteratee The function invoked per iteration.
45547 * @returns {Array} Returns the new mapped array.
45548 */
45549function baseMap(collection, iteratee) {
45550 var index = -1,
45551 result = isArrayLike(collection) ? Array(collection.length) : [];
45552
45553 baseEach(collection, function(value, key, collection) {
45554 result[++index] = iteratee(value, key, collection);
45555 });
45556 return result;
45557}
45558
45559module.exports = baseMap;
45560
45561
45562/***/ }),
45563
45564/***/ "./node_modules/lodash/_baseMatches.js":
45565/*!*********************************************!*\
45566 !*** ./node_modules/lodash/_baseMatches.js ***!
45567 \*********************************************/
45568/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45569
45570var baseIsMatch = __webpack_require__(/*! ./_baseIsMatch */ "./node_modules/lodash/_baseIsMatch.js"),
45571 getMatchData = __webpack_require__(/*! ./_getMatchData */ "./node_modules/lodash/_getMatchData.js"),
45572 matchesStrictComparable = __webpack_require__(/*! ./_matchesStrictComparable */ "./node_modules/lodash/_matchesStrictComparable.js");
45573
45574/**
45575 * The base implementation of `_.matches` which doesn't clone `source`.
45576 *
45577 * @private
45578 * @param {Object} source The object of property values to match.
45579 * @returns {Function} Returns the new spec function.
45580 */
45581function baseMatches(source) {
45582 var matchData = getMatchData(source);
45583 if (matchData.length == 1 && matchData[0][2]) {
45584 return matchesStrictComparable(matchData[0][0], matchData[0][1]);
45585 }
45586 return function(object) {
45587 return object === source || baseIsMatch(object, source, matchData);
45588 };
45589}
45590
45591module.exports = baseMatches;
45592
45593
45594/***/ }),
45595
45596/***/ "./node_modules/lodash/_baseMatchesProperty.js":
45597/*!*****************************************************!*\
45598 !*** ./node_modules/lodash/_baseMatchesProperty.js ***!
45599 \*****************************************************/
45600/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45601
45602var baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ "./node_modules/lodash/_baseIsEqual.js"),
45603 get = __webpack_require__(/*! ./get */ "./node_modules/lodash/get.js"),
45604 hasIn = __webpack_require__(/*! ./hasIn */ "./node_modules/lodash/hasIn.js"),
45605 isKey = __webpack_require__(/*! ./_isKey */ "./node_modules/lodash/_isKey.js"),
45606 isStrictComparable = __webpack_require__(/*! ./_isStrictComparable */ "./node_modules/lodash/_isStrictComparable.js"),
45607 matchesStrictComparable = __webpack_require__(/*! ./_matchesStrictComparable */ "./node_modules/lodash/_matchesStrictComparable.js"),
45608 toKey = __webpack_require__(/*! ./_toKey */ "./node_modules/lodash/_toKey.js");
45609
45610/** Used to compose bitmasks for value comparisons. */
45611var COMPARE_PARTIAL_FLAG = 1,
45612 COMPARE_UNORDERED_FLAG = 2;
45613
45614/**
45615 * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.
45616 *
45617 * @private
45618 * @param {string} path The path of the property to get.
45619 * @param {*} srcValue The value to match.
45620 * @returns {Function} Returns the new spec function.
45621 */
45622function baseMatchesProperty(path, srcValue) {
45623 if (isKey(path) && isStrictComparable(srcValue)) {
45624 return matchesStrictComparable(toKey(path), srcValue);
45625 }
45626 return function(object) {
45627 var objValue = get(object, path);
45628 return (objValue === undefined && objValue === srcValue)
45629 ? hasIn(object, path)
45630 : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
45631 };
45632}
45633
45634module.exports = baseMatchesProperty;
45635
45636
45637/***/ }),
45638
45639/***/ "./node_modules/lodash/_baseMerge.js":
45640/*!*******************************************!*\
45641 !*** ./node_modules/lodash/_baseMerge.js ***!
45642 \*******************************************/
45643/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45644
45645var Stack = __webpack_require__(/*! ./_Stack */ "./node_modules/lodash/_Stack.js"),
45646 assignMergeValue = __webpack_require__(/*! ./_assignMergeValue */ "./node_modules/lodash/_assignMergeValue.js"),
45647 baseFor = __webpack_require__(/*! ./_baseFor */ "./node_modules/lodash/_baseFor.js"),
45648 baseMergeDeep = __webpack_require__(/*! ./_baseMergeDeep */ "./node_modules/lodash/_baseMergeDeep.js"),
45649 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
45650 keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js"),
45651 safeGet = __webpack_require__(/*! ./_safeGet */ "./node_modules/lodash/_safeGet.js");
45652
45653/**
45654 * The base implementation of `_.merge` without support for multiple sources.
45655 *
45656 * @private
45657 * @param {Object} object The destination object.
45658 * @param {Object} source The source object.
45659 * @param {number} srcIndex The index of `source`.
45660 * @param {Function} [customizer] The function to customize merged values.
45661 * @param {Object} [stack] Tracks traversed source values and their merged
45662 * counterparts.
45663 */
45664function baseMerge(object, source, srcIndex, customizer, stack) {
45665 if (object === source) {
45666 return;
45667 }
45668 baseFor(source, function(srcValue, key) {
45669 stack || (stack = new Stack);
45670 if (isObject(srcValue)) {
45671 baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
45672 }
45673 else {
45674 var newValue = customizer
45675 ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)
45676 : undefined;
45677
45678 if (newValue === undefined) {
45679 newValue = srcValue;
45680 }
45681 assignMergeValue(object, key, newValue);
45682 }
45683 }, keysIn);
45684}
45685
45686module.exports = baseMerge;
45687
45688
45689/***/ }),
45690
45691/***/ "./node_modules/lodash/_baseMergeDeep.js":
45692/*!***********************************************!*\
45693 !*** ./node_modules/lodash/_baseMergeDeep.js ***!
45694 \***********************************************/
45695/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45696
45697var assignMergeValue = __webpack_require__(/*! ./_assignMergeValue */ "./node_modules/lodash/_assignMergeValue.js"),
45698 cloneBuffer = __webpack_require__(/*! ./_cloneBuffer */ "./node_modules/lodash/_cloneBuffer.js"),
45699 cloneTypedArray = __webpack_require__(/*! ./_cloneTypedArray */ "./node_modules/lodash/_cloneTypedArray.js"),
45700 copyArray = __webpack_require__(/*! ./_copyArray */ "./node_modules/lodash/_copyArray.js"),
45701 initCloneObject = __webpack_require__(/*! ./_initCloneObject */ "./node_modules/lodash/_initCloneObject.js"),
45702 isArguments = __webpack_require__(/*! ./isArguments */ "./node_modules/lodash/isArguments.js"),
45703 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
45704 isArrayLikeObject = __webpack_require__(/*! ./isArrayLikeObject */ "./node_modules/lodash/isArrayLikeObject.js"),
45705 isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
45706 isFunction = __webpack_require__(/*! ./isFunction */ "./node_modules/lodash/isFunction.js"),
45707 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
45708 isPlainObject = __webpack_require__(/*! ./isPlainObject */ "./node_modules/lodash/isPlainObject.js"),
45709 isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/lodash/isTypedArray.js"),
45710 safeGet = __webpack_require__(/*! ./_safeGet */ "./node_modules/lodash/_safeGet.js"),
45711 toPlainObject = __webpack_require__(/*! ./toPlainObject */ "./node_modules/lodash/toPlainObject.js");
45712
45713/**
45714 * A specialized version of `baseMerge` for arrays and objects which performs
45715 * deep merges and tracks traversed objects enabling objects with circular
45716 * references to be merged.
45717 *
45718 * @private
45719 * @param {Object} object The destination object.
45720 * @param {Object} source The source object.
45721 * @param {string} key The key of the value to merge.
45722 * @param {number} srcIndex The index of `source`.
45723 * @param {Function} mergeFunc The function to merge values.
45724 * @param {Function} [customizer] The function to customize assigned values.
45725 * @param {Object} [stack] Tracks traversed source values and their merged
45726 * counterparts.
45727 */
45728function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
45729 var objValue = safeGet(object, key),
45730 srcValue = safeGet(source, key),
45731 stacked = stack.get(srcValue);
45732
45733 if (stacked) {
45734 assignMergeValue(object, key, stacked);
45735 return;
45736 }
45737 var newValue = customizer
45738 ? customizer(objValue, srcValue, (key + ''), object, source, stack)
45739 : undefined;
45740
45741 var isCommon = newValue === undefined;
45742
45743 if (isCommon) {
45744 var isArr = isArray(srcValue),
45745 isBuff = !isArr && isBuffer(srcValue),
45746 isTyped = !isArr && !isBuff && isTypedArray(srcValue);
45747
45748 newValue = srcValue;
45749 if (isArr || isBuff || isTyped) {
45750 if (isArray(objValue)) {
45751 newValue = objValue;
45752 }
45753 else if (isArrayLikeObject(objValue)) {
45754 newValue = copyArray(objValue);
45755 }
45756 else if (isBuff) {
45757 isCommon = false;
45758 newValue = cloneBuffer(srcValue, true);
45759 }
45760 else if (isTyped) {
45761 isCommon = false;
45762 newValue = cloneTypedArray(srcValue, true);
45763 }
45764 else {
45765 newValue = [];
45766 }
45767 }
45768 else if (isPlainObject(srcValue) || isArguments(srcValue)) {
45769 newValue = objValue;
45770 if (isArguments(objValue)) {
45771 newValue = toPlainObject(objValue);
45772 }
45773 else if (!isObject(objValue) || isFunction(objValue)) {
45774 newValue = initCloneObject(srcValue);
45775 }
45776 }
45777 else {
45778 isCommon = false;
45779 }
45780 }
45781 if (isCommon) {
45782 // Recursively merge objects and arrays (susceptible to call stack limits).
45783 stack.set(srcValue, newValue);
45784 mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
45785 stack['delete'](srcValue);
45786 }
45787 assignMergeValue(object, key, newValue);
45788}
45789
45790module.exports = baseMergeDeep;
45791
45792
45793/***/ }),
45794
45795/***/ "./node_modules/lodash/_baseOrderBy.js":
45796/*!*********************************************!*\
45797 !*** ./node_modules/lodash/_baseOrderBy.js ***!
45798 \*********************************************/
45799/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45800
45801var arrayMap = __webpack_require__(/*! ./_arrayMap */ "./node_modules/lodash/_arrayMap.js"),
45802 baseGet = __webpack_require__(/*! ./_baseGet */ "./node_modules/lodash/_baseGet.js"),
45803 baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js"),
45804 baseMap = __webpack_require__(/*! ./_baseMap */ "./node_modules/lodash/_baseMap.js"),
45805 baseSortBy = __webpack_require__(/*! ./_baseSortBy */ "./node_modules/lodash/_baseSortBy.js"),
45806 baseUnary = __webpack_require__(/*! ./_baseUnary */ "./node_modules/lodash/_baseUnary.js"),
45807 compareMultiple = __webpack_require__(/*! ./_compareMultiple */ "./node_modules/lodash/_compareMultiple.js"),
45808 identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js"),
45809 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");
45810
45811/**
45812 * The base implementation of `_.orderBy` without param guards.
45813 *
45814 * @private
45815 * @param {Array|Object} collection The collection to iterate over.
45816 * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.
45817 * @param {string[]} orders The sort orders of `iteratees`.
45818 * @returns {Array} Returns the new sorted array.
45819 */
45820function baseOrderBy(collection, iteratees, orders) {
45821 if (iteratees.length) {
45822 iteratees = arrayMap(iteratees, function(iteratee) {
45823 if (isArray(iteratee)) {
45824 return function(value) {
45825 return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);
45826 }
45827 }
45828 return iteratee;
45829 });
45830 } else {
45831 iteratees = [identity];
45832 }
45833
45834 var index = -1;
45835 iteratees = arrayMap(iteratees, baseUnary(baseIteratee));
45836
45837 var result = baseMap(collection, function(value, key, collection) {
45838 var criteria = arrayMap(iteratees, function(iteratee) {
45839 return iteratee(value);
45840 });
45841 return { 'criteria': criteria, 'index': ++index, 'value': value };
45842 });
45843
45844 return baseSortBy(result, function(object, other) {
45845 return compareMultiple(object, other, orders);
45846 });
45847}
45848
45849module.exports = baseOrderBy;
45850
45851
45852/***/ }),
45853
45854/***/ "./node_modules/lodash/_basePick.js":
45855/*!******************************************!*\
45856 !*** ./node_modules/lodash/_basePick.js ***!
45857 \******************************************/
45858/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45859
45860var basePickBy = __webpack_require__(/*! ./_basePickBy */ "./node_modules/lodash/_basePickBy.js"),
45861 hasIn = __webpack_require__(/*! ./hasIn */ "./node_modules/lodash/hasIn.js");
45862
45863/**
45864 * The base implementation of `_.pick` without support for individual
45865 * property identifiers.
45866 *
45867 * @private
45868 * @param {Object} object The source object.
45869 * @param {string[]} paths The property paths to pick.
45870 * @returns {Object} Returns the new object.
45871 */
45872function basePick(object, paths) {
45873 return basePickBy(object, paths, function(value, path) {
45874 return hasIn(object, path);
45875 });
45876}
45877
45878module.exports = basePick;
45879
45880
45881/***/ }),
45882
45883/***/ "./node_modules/lodash/_basePickBy.js":
45884/*!********************************************!*\
45885 !*** ./node_modules/lodash/_basePickBy.js ***!
45886 \********************************************/
45887/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45888
45889var baseGet = __webpack_require__(/*! ./_baseGet */ "./node_modules/lodash/_baseGet.js"),
45890 baseSet = __webpack_require__(/*! ./_baseSet */ "./node_modules/lodash/_baseSet.js"),
45891 castPath = __webpack_require__(/*! ./_castPath */ "./node_modules/lodash/_castPath.js");
45892
45893/**
45894 * The base implementation of `_.pickBy` without support for iteratee shorthands.
45895 *
45896 * @private
45897 * @param {Object} object The source object.
45898 * @param {string[]} paths The property paths to pick.
45899 * @param {Function} predicate The function invoked per property.
45900 * @returns {Object} Returns the new object.
45901 */
45902function basePickBy(object, paths, predicate) {
45903 var index = -1,
45904 length = paths.length,
45905 result = {};
45906
45907 while (++index < length) {
45908 var path = paths[index],
45909 value = baseGet(object, path);
45910
45911 if (predicate(value, path)) {
45912 baseSet(result, castPath(path, object), value);
45913 }
45914 }
45915 return result;
45916}
45917
45918module.exports = basePickBy;
45919
45920
45921/***/ }),
45922
45923/***/ "./node_modules/lodash/_baseProperty.js":
45924/*!**********************************************!*\
45925 !*** ./node_modules/lodash/_baseProperty.js ***!
45926 \**********************************************/
45927/***/ ((module) => {
45928
45929/**
45930 * The base implementation of `_.property` without support for deep paths.
45931 *
45932 * @private
45933 * @param {string} key The key of the property to get.
45934 * @returns {Function} Returns the new accessor function.
45935 */
45936function baseProperty(key) {
45937 return function(object) {
45938 return object == null ? undefined : object[key];
45939 };
45940}
45941
45942module.exports = baseProperty;
45943
45944
45945/***/ }),
45946
45947/***/ "./node_modules/lodash/_basePropertyDeep.js":
45948/*!**************************************************!*\
45949 !*** ./node_modules/lodash/_basePropertyDeep.js ***!
45950 \**************************************************/
45951/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
45952
45953var baseGet = __webpack_require__(/*! ./_baseGet */ "./node_modules/lodash/_baseGet.js");
45954
45955/**
45956 * A specialized version of `baseProperty` which supports deep paths.
45957 *
45958 * @private
45959 * @param {Array|string} path The path of the property to get.
45960 * @returns {Function} Returns the new accessor function.
45961 */
45962function basePropertyDeep(path) {
45963 return function(object) {
45964 return baseGet(object, path);
45965 };
45966}
45967
45968module.exports = basePropertyDeep;
45969
45970
45971/***/ }),
45972
45973/***/ "./node_modules/lodash/_baseRange.js":
45974/*!*******************************************!*\
45975 !*** ./node_modules/lodash/_baseRange.js ***!
45976 \*******************************************/
45977/***/ ((module) => {
45978
45979/* Built-in method references for those with the same name as other `lodash` methods. */
45980var nativeCeil = Math.ceil,
45981 nativeMax = Math.max;
45982
45983/**
45984 * The base implementation of `_.range` and `_.rangeRight` which doesn't
45985 * coerce arguments.
45986 *
45987 * @private
45988 * @param {number} start The start of the range.
45989 * @param {number} end The end of the range.
45990 * @param {number} step The value to increment or decrement by.
45991 * @param {boolean} [fromRight] Specify iterating from right to left.
45992 * @returns {Array} Returns the range of numbers.
45993 */
45994function baseRange(start, end, step, fromRight) {
45995 var index = -1,
45996 length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),
45997 result = Array(length);
45998
45999 while (length--) {
46000 result[fromRight ? length : ++index] = start;
46001 start += step;
46002 }
46003 return result;
46004}
46005
46006module.exports = baseRange;
46007
46008
46009/***/ }),
46010
46011/***/ "./node_modules/lodash/_baseReduce.js":
46012/*!********************************************!*\
46013 !*** ./node_modules/lodash/_baseReduce.js ***!
46014 \********************************************/
46015/***/ ((module) => {
46016
46017/**
46018 * The base implementation of `_.reduce` and `_.reduceRight`, without support
46019 * for iteratee shorthands, which iterates over `collection` using `eachFunc`.
46020 *
46021 * @private
46022 * @param {Array|Object} collection The collection to iterate over.
46023 * @param {Function} iteratee The function invoked per iteration.
46024 * @param {*} accumulator The initial value.
46025 * @param {boolean} initAccum Specify using the first or last element of
46026 * `collection` as the initial value.
46027 * @param {Function} eachFunc The function to iterate over `collection`.
46028 * @returns {*} Returns the accumulated value.
46029 */
46030function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
46031 eachFunc(collection, function(value, index, collection) {
46032 accumulator = initAccum
46033 ? (initAccum = false, value)
46034 : iteratee(accumulator, value, index, collection);
46035 });
46036 return accumulator;
46037}
46038
46039module.exports = baseReduce;
46040
46041
46042/***/ }),
46043
46044/***/ "./node_modules/lodash/_baseRest.js":
46045/*!******************************************!*\
46046 !*** ./node_modules/lodash/_baseRest.js ***!
46047 \******************************************/
46048/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46049
46050var identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js"),
46051 overRest = __webpack_require__(/*! ./_overRest */ "./node_modules/lodash/_overRest.js"),
46052 setToString = __webpack_require__(/*! ./_setToString */ "./node_modules/lodash/_setToString.js");
46053
46054/**
46055 * The base implementation of `_.rest` which doesn't validate or coerce arguments.
46056 *
46057 * @private
46058 * @param {Function} func The function to apply a rest parameter to.
46059 * @param {number} [start=func.length-1] The start position of the rest parameter.
46060 * @returns {Function} Returns the new function.
46061 */
46062function baseRest(func, start) {
46063 return setToString(overRest(func, start, identity), func + '');
46064}
46065
46066module.exports = baseRest;
46067
46068
46069/***/ }),
46070
46071/***/ "./node_modules/lodash/_baseSet.js":
46072/*!*****************************************!*\
46073 !*** ./node_modules/lodash/_baseSet.js ***!
46074 \*****************************************/
46075/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46076
46077var assignValue = __webpack_require__(/*! ./_assignValue */ "./node_modules/lodash/_assignValue.js"),
46078 castPath = __webpack_require__(/*! ./_castPath */ "./node_modules/lodash/_castPath.js"),
46079 isIndex = __webpack_require__(/*! ./_isIndex */ "./node_modules/lodash/_isIndex.js"),
46080 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
46081 toKey = __webpack_require__(/*! ./_toKey */ "./node_modules/lodash/_toKey.js");
46082
46083/**
46084 * The base implementation of `_.set`.
46085 *
46086 * @private
46087 * @param {Object} object The object to modify.
46088 * @param {Array|string} path The path of the property to set.
46089 * @param {*} value The value to set.
46090 * @param {Function} [customizer] The function to customize path creation.
46091 * @returns {Object} Returns `object`.
46092 */
46093function baseSet(object, path, value, customizer) {
46094 if (!isObject(object)) {
46095 return object;
46096 }
46097 path = castPath(path, object);
46098
46099 var index = -1,
46100 length = path.length,
46101 lastIndex = length - 1,
46102 nested = object;
46103
46104 while (nested != null && ++index < length) {
46105 var key = toKey(path[index]),
46106 newValue = value;
46107
46108 if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
46109 return object;
46110 }
46111
46112 if (index != lastIndex) {
46113 var objValue = nested[key];
46114 newValue = customizer ? customizer(objValue, key, nested) : undefined;
46115 if (newValue === undefined) {
46116 newValue = isObject(objValue)
46117 ? objValue
46118 : (isIndex(path[index + 1]) ? [] : {});
46119 }
46120 }
46121 assignValue(nested, key, newValue);
46122 nested = nested[key];
46123 }
46124 return object;
46125}
46126
46127module.exports = baseSet;
46128
46129
46130/***/ }),
46131
46132/***/ "./node_modules/lodash/_baseSetToString.js":
46133/*!*************************************************!*\
46134 !*** ./node_modules/lodash/_baseSetToString.js ***!
46135 \*************************************************/
46136/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46137
46138var constant = __webpack_require__(/*! ./constant */ "./node_modules/lodash/constant.js"),
46139 defineProperty = __webpack_require__(/*! ./_defineProperty */ "./node_modules/lodash/_defineProperty.js"),
46140 identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js");
46141
46142/**
46143 * The base implementation of `setToString` without support for hot loop shorting.
46144 *
46145 * @private
46146 * @param {Function} func The function to modify.
46147 * @param {Function} string The `toString` result.
46148 * @returns {Function} Returns `func`.
46149 */
46150var baseSetToString = !defineProperty ? identity : function(func, string) {
46151 return defineProperty(func, 'toString', {
46152 'configurable': true,
46153 'enumerable': false,
46154 'value': constant(string),
46155 'writable': true
46156 });
46157};
46158
46159module.exports = baseSetToString;
46160
46161
46162/***/ }),
46163
46164/***/ "./node_modules/lodash/_baseSortBy.js":
46165/*!********************************************!*\
46166 !*** ./node_modules/lodash/_baseSortBy.js ***!
46167 \********************************************/
46168/***/ ((module) => {
46169
46170/**
46171 * The base implementation of `_.sortBy` which uses `comparer` to define the
46172 * sort order of `array` and replaces criteria objects with their corresponding
46173 * values.
46174 *
46175 * @private
46176 * @param {Array} array The array to sort.
46177 * @param {Function} comparer The function to define sort order.
46178 * @returns {Array} Returns `array`.
46179 */
46180function baseSortBy(array, comparer) {
46181 var length = array.length;
46182
46183 array.sort(comparer);
46184 while (length--) {
46185 array[length] = array[length].value;
46186 }
46187 return array;
46188}
46189
46190module.exports = baseSortBy;
46191
46192
46193/***/ }),
46194
46195/***/ "./node_modules/lodash/_baseTimes.js":
46196/*!*******************************************!*\
46197 !*** ./node_modules/lodash/_baseTimes.js ***!
46198 \*******************************************/
46199/***/ ((module) => {
46200
46201/**
46202 * The base implementation of `_.times` without support for iteratee shorthands
46203 * or max array length checks.
46204 *
46205 * @private
46206 * @param {number} n The number of times to invoke `iteratee`.
46207 * @param {Function} iteratee The function invoked per iteration.
46208 * @returns {Array} Returns the array of results.
46209 */
46210function baseTimes(n, iteratee) {
46211 var index = -1,
46212 result = Array(n);
46213
46214 while (++index < n) {
46215 result[index] = iteratee(index);
46216 }
46217 return result;
46218}
46219
46220module.exports = baseTimes;
46221
46222
46223/***/ }),
46224
46225/***/ "./node_modules/lodash/_baseToString.js":
46226/*!**********************************************!*\
46227 !*** ./node_modules/lodash/_baseToString.js ***!
46228 \**********************************************/
46229/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46230
46231var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"),
46232 arrayMap = __webpack_require__(/*! ./_arrayMap */ "./node_modules/lodash/_arrayMap.js"),
46233 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
46234 isSymbol = __webpack_require__(/*! ./isSymbol */ "./node_modules/lodash/isSymbol.js");
46235
46236/** Used as references for various `Number` constants. */
46237var INFINITY = 1 / 0;
46238
46239/** Used to convert symbols to primitives and strings. */
46240var symbolProto = Symbol ? Symbol.prototype : undefined,
46241 symbolToString = symbolProto ? symbolProto.toString : undefined;
46242
46243/**
46244 * The base implementation of `_.toString` which doesn't convert nullish
46245 * values to empty strings.
46246 *
46247 * @private
46248 * @param {*} value The value to process.
46249 * @returns {string} Returns the string.
46250 */
46251function baseToString(value) {
46252 // Exit early for strings to avoid a performance hit in some environments.
46253 if (typeof value == 'string') {
46254 return value;
46255 }
46256 if (isArray(value)) {
46257 // Recursively convert values (susceptible to call stack limits).
46258 return arrayMap(value, baseToString) + '';
46259 }
46260 if (isSymbol(value)) {
46261 return symbolToString ? symbolToString.call(value) : '';
46262 }
46263 var result = (value + '');
46264 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
46265}
46266
46267module.exports = baseToString;
46268
46269
46270/***/ }),
46271
46272/***/ "./node_modules/lodash/_baseTrim.js":
46273/*!******************************************!*\
46274 !*** ./node_modules/lodash/_baseTrim.js ***!
46275 \******************************************/
46276/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46277
46278var trimmedEndIndex = __webpack_require__(/*! ./_trimmedEndIndex */ "./node_modules/lodash/_trimmedEndIndex.js");
46279
46280/** Used to match leading whitespace. */
46281var reTrimStart = /^\s+/;
46282
46283/**
46284 * The base implementation of `_.trim`.
46285 *
46286 * @private
46287 * @param {string} string The string to trim.
46288 * @returns {string} Returns the trimmed string.
46289 */
46290function baseTrim(string) {
46291 return string
46292 ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')
46293 : string;
46294}
46295
46296module.exports = baseTrim;
46297
46298
46299/***/ }),
46300
46301/***/ "./node_modules/lodash/_baseUnary.js":
46302/*!*******************************************!*\
46303 !*** ./node_modules/lodash/_baseUnary.js ***!
46304 \*******************************************/
46305/***/ ((module) => {
46306
46307/**
46308 * The base implementation of `_.unary` without support for storing metadata.
46309 *
46310 * @private
46311 * @param {Function} func The function to cap arguments for.
46312 * @returns {Function} Returns the new capped function.
46313 */
46314function baseUnary(func) {
46315 return function(value) {
46316 return func(value);
46317 };
46318}
46319
46320module.exports = baseUnary;
46321
46322
46323/***/ }),
46324
46325/***/ "./node_modules/lodash/_baseUniq.js":
46326/*!******************************************!*\
46327 !*** ./node_modules/lodash/_baseUniq.js ***!
46328 \******************************************/
46329/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46330
46331var SetCache = __webpack_require__(/*! ./_SetCache */ "./node_modules/lodash/_SetCache.js"),
46332 arrayIncludes = __webpack_require__(/*! ./_arrayIncludes */ "./node_modules/lodash/_arrayIncludes.js"),
46333 arrayIncludesWith = __webpack_require__(/*! ./_arrayIncludesWith */ "./node_modules/lodash/_arrayIncludesWith.js"),
46334 cacheHas = __webpack_require__(/*! ./_cacheHas */ "./node_modules/lodash/_cacheHas.js"),
46335 createSet = __webpack_require__(/*! ./_createSet */ "./node_modules/lodash/_createSet.js"),
46336 setToArray = __webpack_require__(/*! ./_setToArray */ "./node_modules/lodash/_setToArray.js");
46337
46338/** Used as the size to enable large array optimizations. */
46339var LARGE_ARRAY_SIZE = 200;
46340
46341/**
46342 * The base implementation of `_.uniqBy` without support for iteratee shorthands.
46343 *
46344 * @private
46345 * @param {Array} array The array to inspect.
46346 * @param {Function} [iteratee] The iteratee invoked per element.
46347 * @param {Function} [comparator] The comparator invoked per element.
46348 * @returns {Array} Returns the new duplicate free array.
46349 */
46350function baseUniq(array, iteratee, comparator) {
46351 var index = -1,
46352 includes = arrayIncludes,
46353 length = array.length,
46354 isCommon = true,
46355 result = [],
46356 seen = result;
46357
46358 if (comparator) {
46359 isCommon = false;
46360 includes = arrayIncludesWith;
46361 }
46362 else if (length >= LARGE_ARRAY_SIZE) {
46363 var set = iteratee ? null : createSet(array);
46364 if (set) {
46365 return setToArray(set);
46366 }
46367 isCommon = false;
46368 includes = cacheHas;
46369 seen = new SetCache;
46370 }
46371 else {
46372 seen = iteratee ? [] : result;
46373 }
46374 outer:
46375 while (++index < length) {
46376 var value = array[index],
46377 computed = iteratee ? iteratee(value) : value;
46378
46379 value = (comparator || value !== 0) ? value : 0;
46380 if (isCommon && computed === computed) {
46381 var seenIndex = seen.length;
46382 while (seenIndex--) {
46383 if (seen[seenIndex] === computed) {
46384 continue outer;
46385 }
46386 }
46387 if (iteratee) {
46388 seen.push(computed);
46389 }
46390 result.push(value);
46391 }
46392 else if (!includes(seen, computed, comparator)) {
46393 if (seen !== result) {
46394 seen.push(computed);
46395 }
46396 result.push(value);
46397 }
46398 }
46399 return result;
46400}
46401
46402module.exports = baseUniq;
46403
46404
46405/***/ }),
46406
46407/***/ "./node_modules/lodash/_baseValues.js":
46408/*!********************************************!*\
46409 !*** ./node_modules/lodash/_baseValues.js ***!
46410 \********************************************/
46411/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46412
46413var arrayMap = __webpack_require__(/*! ./_arrayMap */ "./node_modules/lodash/_arrayMap.js");
46414
46415/**
46416 * The base implementation of `_.values` and `_.valuesIn` which creates an
46417 * array of `object` property values corresponding to the property names
46418 * of `props`.
46419 *
46420 * @private
46421 * @param {Object} object The object to query.
46422 * @param {Array} props The property names to get values for.
46423 * @returns {Object} Returns the array of property values.
46424 */
46425function baseValues(object, props) {
46426 return arrayMap(props, function(key) {
46427 return object[key];
46428 });
46429}
46430
46431module.exports = baseValues;
46432
46433
46434/***/ }),
46435
46436/***/ "./node_modules/lodash/_baseZipObject.js":
46437/*!***********************************************!*\
46438 !*** ./node_modules/lodash/_baseZipObject.js ***!
46439 \***********************************************/
46440/***/ ((module) => {
46441
46442/**
46443 * This base implementation of `_.zipObject` which assigns values using `assignFunc`.
46444 *
46445 * @private
46446 * @param {Array} props The property identifiers.
46447 * @param {Array} values The property values.
46448 * @param {Function} assignFunc The function to assign values.
46449 * @returns {Object} Returns the new object.
46450 */
46451function baseZipObject(props, values, assignFunc) {
46452 var index = -1,
46453 length = props.length,
46454 valsLength = values.length,
46455 result = {};
46456
46457 while (++index < length) {
46458 var value = index < valsLength ? values[index] : undefined;
46459 assignFunc(result, props[index], value);
46460 }
46461 return result;
46462}
46463
46464module.exports = baseZipObject;
46465
46466
46467/***/ }),
46468
46469/***/ "./node_modules/lodash/_cacheHas.js":
46470/*!******************************************!*\
46471 !*** ./node_modules/lodash/_cacheHas.js ***!
46472 \******************************************/
46473/***/ ((module) => {
46474
46475/**
46476 * Checks if a `cache` value for `key` exists.
46477 *
46478 * @private
46479 * @param {Object} cache The cache to query.
46480 * @param {string} key The key of the entry to check.
46481 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
46482 */
46483function cacheHas(cache, key) {
46484 return cache.has(key);
46485}
46486
46487module.exports = cacheHas;
46488
46489
46490/***/ }),
46491
46492/***/ "./node_modules/lodash/_castFunction.js":
46493/*!**********************************************!*\
46494 !*** ./node_modules/lodash/_castFunction.js ***!
46495 \**********************************************/
46496/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46497
46498var identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js");
46499
46500/**
46501 * Casts `value` to `identity` if it's not a function.
46502 *
46503 * @private
46504 * @param {*} value The value to inspect.
46505 * @returns {Function} Returns cast function.
46506 */
46507function castFunction(value) {
46508 return typeof value == 'function' ? value : identity;
46509}
46510
46511module.exports = castFunction;
46512
46513
46514/***/ }),
46515
46516/***/ "./node_modules/lodash/_castPath.js":
46517/*!******************************************!*\
46518 !*** ./node_modules/lodash/_castPath.js ***!
46519 \******************************************/
46520/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46521
46522var isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
46523 isKey = __webpack_require__(/*! ./_isKey */ "./node_modules/lodash/_isKey.js"),
46524 stringToPath = __webpack_require__(/*! ./_stringToPath */ "./node_modules/lodash/_stringToPath.js"),
46525 toString = __webpack_require__(/*! ./toString */ "./node_modules/lodash/toString.js");
46526
46527/**
46528 * Casts `value` to a path array if it's not one.
46529 *
46530 * @private
46531 * @param {*} value The value to inspect.
46532 * @param {Object} [object] The object to query keys on.
46533 * @returns {Array} Returns the cast property path array.
46534 */
46535function castPath(value, object) {
46536 if (isArray(value)) {
46537 return value;
46538 }
46539 return isKey(value, object) ? [value] : stringToPath(toString(value));
46540}
46541
46542module.exports = castPath;
46543
46544
46545/***/ }),
46546
46547/***/ "./node_modules/lodash/_cloneArrayBuffer.js":
46548/*!**************************************************!*\
46549 !*** ./node_modules/lodash/_cloneArrayBuffer.js ***!
46550 \**************************************************/
46551/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46552
46553var Uint8Array = __webpack_require__(/*! ./_Uint8Array */ "./node_modules/lodash/_Uint8Array.js");
46554
46555/**
46556 * Creates a clone of `arrayBuffer`.
46557 *
46558 * @private
46559 * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
46560 * @returns {ArrayBuffer} Returns the cloned array buffer.
46561 */
46562function cloneArrayBuffer(arrayBuffer) {
46563 var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
46564 new Uint8Array(result).set(new Uint8Array(arrayBuffer));
46565 return result;
46566}
46567
46568module.exports = cloneArrayBuffer;
46569
46570
46571/***/ }),
46572
46573/***/ "./node_modules/lodash/_cloneBuffer.js":
46574/*!*********************************************!*\
46575 !*** ./node_modules/lodash/_cloneBuffer.js ***!
46576 \*********************************************/
46577/***/ ((module, exports, __webpack_require__) => {
46578
46579/* module decorator */ module = __webpack_require__.nmd(module);
46580var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
46581
46582/** Detect free variable `exports`. */
46583var freeExports = true && exports && !exports.nodeType && exports;
46584
46585/** Detect free variable `module`. */
46586var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module;
46587
46588/** Detect the popular CommonJS extension `module.exports`. */
46589var moduleExports = freeModule && freeModule.exports === freeExports;
46590
46591/** Built-in value references. */
46592var Buffer = moduleExports ? root.Buffer : undefined,
46593 allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;
46594
46595/**
46596 * Creates a clone of `buffer`.
46597 *
46598 * @private
46599 * @param {Buffer} buffer The buffer to clone.
46600 * @param {boolean} [isDeep] Specify a deep clone.
46601 * @returns {Buffer} Returns the cloned buffer.
46602 */
46603function cloneBuffer(buffer, isDeep) {
46604 if (isDeep) {
46605 return buffer.slice();
46606 }
46607 var length = buffer.length,
46608 result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
46609
46610 buffer.copy(result);
46611 return result;
46612}
46613
46614module.exports = cloneBuffer;
46615
46616
46617/***/ }),
46618
46619/***/ "./node_modules/lodash/_cloneDataView.js":
46620/*!***********************************************!*\
46621 !*** ./node_modules/lodash/_cloneDataView.js ***!
46622 \***********************************************/
46623/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46624
46625var cloneArrayBuffer = __webpack_require__(/*! ./_cloneArrayBuffer */ "./node_modules/lodash/_cloneArrayBuffer.js");
46626
46627/**
46628 * Creates a clone of `dataView`.
46629 *
46630 * @private
46631 * @param {Object} dataView The data view to clone.
46632 * @param {boolean} [isDeep] Specify a deep clone.
46633 * @returns {Object} Returns the cloned data view.
46634 */
46635function cloneDataView(dataView, isDeep) {
46636 var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
46637 return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
46638}
46639
46640module.exports = cloneDataView;
46641
46642
46643/***/ }),
46644
46645/***/ "./node_modules/lodash/_cloneRegExp.js":
46646/*!*********************************************!*\
46647 !*** ./node_modules/lodash/_cloneRegExp.js ***!
46648 \*********************************************/
46649/***/ ((module) => {
46650
46651/** Used to match `RegExp` flags from their coerced string values. */
46652var reFlags = /\w*$/;
46653
46654/**
46655 * Creates a clone of `regexp`.
46656 *
46657 * @private
46658 * @param {Object} regexp The regexp to clone.
46659 * @returns {Object} Returns the cloned regexp.
46660 */
46661function cloneRegExp(regexp) {
46662 var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
46663 result.lastIndex = regexp.lastIndex;
46664 return result;
46665}
46666
46667module.exports = cloneRegExp;
46668
46669
46670/***/ }),
46671
46672/***/ "./node_modules/lodash/_cloneSymbol.js":
46673/*!*********************************************!*\
46674 !*** ./node_modules/lodash/_cloneSymbol.js ***!
46675 \*********************************************/
46676/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46677
46678var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js");
46679
46680/** Used to convert symbols to primitives and strings. */
46681var symbolProto = Symbol ? Symbol.prototype : undefined,
46682 symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
46683
46684/**
46685 * Creates a clone of the `symbol` object.
46686 *
46687 * @private
46688 * @param {Object} symbol The symbol object to clone.
46689 * @returns {Object} Returns the cloned symbol object.
46690 */
46691function cloneSymbol(symbol) {
46692 return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
46693}
46694
46695module.exports = cloneSymbol;
46696
46697
46698/***/ }),
46699
46700/***/ "./node_modules/lodash/_cloneTypedArray.js":
46701/*!*************************************************!*\
46702 !*** ./node_modules/lodash/_cloneTypedArray.js ***!
46703 \*************************************************/
46704/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46705
46706var cloneArrayBuffer = __webpack_require__(/*! ./_cloneArrayBuffer */ "./node_modules/lodash/_cloneArrayBuffer.js");
46707
46708/**
46709 * Creates a clone of `typedArray`.
46710 *
46711 * @private
46712 * @param {Object} typedArray The typed array to clone.
46713 * @param {boolean} [isDeep] Specify a deep clone.
46714 * @returns {Object} Returns the cloned typed array.
46715 */
46716function cloneTypedArray(typedArray, isDeep) {
46717 var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
46718 return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
46719}
46720
46721module.exports = cloneTypedArray;
46722
46723
46724/***/ }),
46725
46726/***/ "./node_modules/lodash/_compareAscending.js":
46727/*!**************************************************!*\
46728 !*** ./node_modules/lodash/_compareAscending.js ***!
46729 \**************************************************/
46730/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46731
46732var isSymbol = __webpack_require__(/*! ./isSymbol */ "./node_modules/lodash/isSymbol.js");
46733
46734/**
46735 * Compares values to sort them in ascending order.
46736 *
46737 * @private
46738 * @param {*} value The value to compare.
46739 * @param {*} other The other value to compare.
46740 * @returns {number} Returns the sort order indicator for `value`.
46741 */
46742function compareAscending(value, other) {
46743 if (value !== other) {
46744 var valIsDefined = value !== undefined,
46745 valIsNull = value === null,
46746 valIsReflexive = value === value,
46747 valIsSymbol = isSymbol(value);
46748
46749 var othIsDefined = other !== undefined,
46750 othIsNull = other === null,
46751 othIsReflexive = other === other,
46752 othIsSymbol = isSymbol(other);
46753
46754 if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||
46755 (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||
46756 (valIsNull && othIsDefined && othIsReflexive) ||
46757 (!valIsDefined && othIsReflexive) ||
46758 !valIsReflexive) {
46759 return 1;
46760 }
46761 if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||
46762 (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||
46763 (othIsNull && valIsDefined && valIsReflexive) ||
46764 (!othIsDefined && valIsReflexive) ||
46765 !othIsReflexive) {
46766 return -1;
46767 }
46768 }
46769 return 0;
46770}
46771
46772module.exports = compareAscending;
46773
46774
46775/***/ }),
46776
46777/***/ "./node_modules/lodash/_compareMultiple.js":
46778/*!*************************************************!*\
46779 !*** ./node_modules/lodash/_compareMultiple.js ***!
46780 \*************************************************/
46781/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46782
46783var compareAscending = __webpack_require__(/*! ./_compareAscending */ "./node_modules/lodash/_compareAscending.js");
46784
46785/**
46786 * Used by `_.orderBy` to compare multiple properties of a value to another
46787 * and stable sort them.
46788 *
46789 * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,
46790 * specify an order of "desc" for descending or "asc" for ascending sort order
46791 * of corresponding values.
46792 *
46793 * @private
46794 * @param {Object} object The object to compare.
46795 * @param {Object} other The other object to compare.
46796 * @param {boolean[]|string[]} orders The order to sort by for each property.
46797 * @returns {number} Returns the sort order indicator for `object`.
46798 */
46799function compareMultiple(object, other, orders) {
46800 var index = -1,
46801 objCriteria = object.criteria,
46802 othCriteria = other.criteria,
46803 length = objCriteria.length,
46804 ordersLength = orders.length;
46805
46806 while (++index < length) {
46807 var result = compareAscending(objCriteria[index], othCriteria[index]);
46808 if (result) {
46809 if (index >= ordersLength) {
46810 return result;
46811 }
46812 var order = orders[index];
46813 return result * (order == 'desc' ? -1 : 1);
46814 }
46815 }
46816 // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications
46817 // that causes it, under certain circumstances, to provide the same value for
46818 // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247
46819 // for more details.
46820 //
46821 // This also ensures a stable sort in V8 and other engines.
46822 // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.
46823 return object.index - other.index;
46824}
46825
46826module.exports = compareMultiple;
46827
46828
46829/***/ }),
46830
46831/***/ "./node_modules/lodash/_copyArray.js":
46832/*!*******************************************!*\
46833 !*** ./node_modules/lodash/_copyArray.js ***!
46834 \*******************************************/
46835/***/ ((module) => {
46836
46837/**
46838 * Copies the values of `source` to `array`.
46839 *
46840 * @private
46841 * @param {Array} source The array to copy values from.
46842 * @param {Array} [array=[]] The array to copy values to.
46843 * @returns {Array} Returns `array`.
46844 */
46845function copyArray(source, array) {
46846 var index = -1,
46847 length = source.length;
46848
46849 array || (array = Array(length));
46850 while (++index < length) {
46851 array[index] = source[index];
46852 }
46853 return array;
46854}
46855
46856module.exports = copyArray;
46857
46858
46859/***/ }),
46860
46861/***/ "./node_modules/lodash/_copyObject.js":
46862/*!********************************************!*\
46863 !*** ./node_modules/lodash/_copyObject.js ***!
46864 \********************************************/
46865/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46866
46867var assignValue = __webpack_require__(/*! ./_assignValue */ "./node_modules/lodash/_assignValue.js"),
46868 baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ "./node_modules/lodash/_baseAssignValue.js");
46869
46870/**
46871 * Copies properties of `source` to `object`.
46872 *
46873 * @private
46874 * @param {Object} source The object to copy properties from.
46875 * @param {Array} props The property identifiers to copy.
46876 * @param {Object} [object={}] The object to copy properties to.
46877 * @param {Function} [customizer] The function to customize copied values.
46878 * @returns {Object} Returns `object`.
46879 */
46880function copyObject(source, props, object, customizer) {
46881 var isNew = !object;
46882 object || (object = {});
46883
46884 var index = -1,
46885 length = props.length;
46886
46887 while (++index < length) {
46888 var key = props[index];
46889
46890 var newValue = customizer
46891 ? customizer(object[key], source[key], key, object, source)
46892 : undefined;
46893
46894 if (newValue === undefined) {
46895 newValue = source[key];
46896 }
46897 if (isNew) {
46898 baseAssignValue(object, key, newValue);
46899 } else {
46900 assignValue(object, key, newValue);
46901 }
46902 }
46903 return object;
46904}
46905
46906module.exports = copyObject;
46907
46908
46909/***/ }),
46910
46911/***/ "./node_modules/lodash/_copySymbols.js":
46912/*!*********************************************!*\
46913 !*** ./node_modules/lodash/_copySymbols.js ***!
46914 \*********************************************/
46915/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46916
46917var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),
46918 getSymbols = __webpack_require__(/*! ./_getSymbols */ "./node_modules/lodash/_getSymbols.js");
46919
46920/**
46921 * Copies own symbols of `source` to `object`.
46922 *
46923 * @private
46924 * @param {Object} source The object to copy symbols from.
46925 * @param {Object} [object={}] The object to copy symbols to.
46926 * @returns {Object} Returns `object`.
46927 */
46928function copySymbols(source, object) {
46929 return copyObject(source, getSymbols(source), object);
46930}
46931
46932module.exports = copySymbols;
46933
46934
46935/***/ }),
46936
46937/***/ "./node_modules/lodash/_copySymbolsIn.js":
46938/*!***********************************************!*\
46939 !*** ./node_modules/lodash/_copySymbolsIn.js ***!
46940 \***********************************************/
46941/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46942
46943var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),
46944 getSymbolsIn = __webpack_require__(/*! ./_getSymbolsIn */ "./node_modules/lodash/_getSymbolsIn.js");
46945
46946/**
46947 * Copies own and inherited symbols of `source` to `object`.
46948 *
46949 * @private
46950 * @param {Object} source The object to copy symbols from.
46951 * @param {Object} [object={}] The object to copy symbols to.
46952 * @returns {Object} Returns `object`.
46953 */
46954function copySymbolsIn(source, object) {
46955 return copyObject(source, getSymbolsIn(source), object);
46956}
46957
46958module.exports = copySymbolsIn;
46959
46960
46961/***/ }),
46962
46963/***/ "./node_modules/lodash/_coreJsData.js":
46964/*!********************************************!*\
46965 !*** ./node_modules/lodash/_coreJsData.js ***!
46966 \********************************************/
46967/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46968
46969var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
46970
46971/** Used to detect overreaching core-js shims. */
46972var coreJsData = root['__core-js_shared__'];
46973
46974module.exports = coreJsData;
46975
46976
46977/***/ }),
46978
46979/***/ "./node_modules/lodash/_createAssigner.js":
46980/*!************************************************!*\
46981 !*** ./node_modules/lodash/_createAssigner.js ***!
46982 \************************************************/
46983/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
46984
46985var baseRest = __webpack_require__(/*! ./_baseRest */ "./node_modules/lodash/_baseRest.js"),
46986 isIterateeCall = __webpack_require__(/*! ./_isIterateeCall */ "./node_modules/lodash/_isIterateeCall.js");
46987
46988/**
46989 * Creates a function like `_.assign`.
46990 *
46991 * @private
46992 * @param {Function} assigner The function to assign values.
46993 * @returns {Function} Returns the new assigner function.
46994 */
46995function createAssigner(assigner) {
46996 return baseRest(function(object, sources) {
46997 var index = -1,
46998 length = sources.length,
46999 customizer = length > 1 ? sources[length - 1] : undefined,
47000 guard = length > 2 ? sources[2] : undefined;
47001
47002 customizer = (assigner.length > 3 && typeof customizer == 'function')
47003 ? (length--, customizer)
47004 : undefined;
47005
47006 if (guard && isIterateeCall(sources[0], sources[1], guard)) {
47007 customizer = length < 3 ? undefined : customizer;
47008 length = 1;
47009 }
47010 object = Object(object);
47011 while (++index < length) {
47012 var source = sources[index];
47013 if (source) {
47014 assigner(object, source, index, customizer);
47015 }
47016 }
47017 return object;
47018 });
47019}
47020
47021module.exports = createAssigner;
47022
47023
47024/***/ }),
47025
47026/***/ "./node_modules/lodash/_createBaseEach.js":
47027/*!************************************************!*\
47028 !*** ./node_modules/lodash/_createBaseEach.js ***!
47029 \************************************************/
47030/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47031
47032var isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js");
47033
47034/**
47035 * Creates a `baseEach` or `baseEachRight` function.
47036 *
47037 * @private
47038 * @param {Function} eachFunc The function to iterate over a collection.
47039 * @param {boolean} [fromRight] Specify iterating from right to left.
47040 * @returns {Function} Returns the new base function.
47041 */
47042function createBaseEach(eachFunc, fromRight) {
47043 return function(collection, iteratee) {
47044 if (collection == null) {
47045 return collection;
47046 }
47047 if (!isArrayLike(collection)) {
47048 return eachFunc(collection, iteratee);
47049 }
47050 var length = collection.length,
47051 index = fromRight ? length : -1,
47052 iterable = Object(collection);
47053
47054 while ((fromRight ? index-- : ++index < length)) {
47055 if (iteratee(iterable[index], index, iterable) === false) {
47056 break;
47057 }
47058 }
47059 return collection;
47060 };
47061}
47062
47063module.exports = createBaseEach;
47064
47065
47066/***/ }),
47067
47068/***/ "./node_modules/lodash/_createBaseFor.js":
47069/*!***********************************************!*\
47070 !*** ./node_modules/lodash/_createBaseFor.js ***!
47071 \***********************************************/
47072/***/ ((module) => {
47073
47074/**
47075 * Creates a base function for methods like `_.forIn` and `_.forOwn`.
47076 *
47077 * @private
47078 * @param {boolean} [fromRight] Specify iterating from right to left.
47079 * @returns {Function} Returns the new base function.
47080 */
47081function createBaseFor(fromRight) {
47082 return function(object, iteratee, keysFunc) {
47083 var index = -1,
47084 iterable = Object(object),
47085 props = keysFunc(object),
47086 length = props.length;
47087
47088 while (length--) {
47089 var key = props[fromRight ? length : ++index];
47090 if (iteratee(iterable[key], key, iterable) === false) {
47091 break;
47092 }
47093 }
47094 return object;
47095 };
47096}
47097
47098module.exports = createBaseFor;
47099
47100
47101/***/ }),
47102
47103/***/ "./node_modules/lodash/_createFind.js":
47104/*!********************************************!*\
47105 !*** ./node_modules/lodash/_createFind.js ***!
47106 \********************************************/
47107/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47108
47109var baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js"),
47110 isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js"),
47111 keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");
47112
47113/**
47114 * Creates a `_.find` or `_.findLast` function.
47115 *
47116 * @private
47117 * @param {Function} findIndexFunc The function to find the collection index.
47118 * @returns {Function} Returns the new find function.
47119 */
47120function createFind(findIndexFunc) {
47121 return function(collection, predicate, fromIndex) {
47122 var iterable = Object(collection);
47123 if (!isArrayLike(collection)) {
47124 var iteratee = baseIteratee(predicate, 3);
47125 collection = keys(collection);
47126 predicate = function(key) { return iteratee(iterable[key], key, iterable); };
47127 }
47128 var index = findIndexFunc(collection, predicate, fromIndex);
47129 return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;
47130 };
47131}
47132
47133module.exports = createFind;
47134
47135
47136/***/ }),
47137
47138/***/ "./node_modules/lodash/_createRange.js":
47139/*!*********************************************!*\
47140 !*** ./node_modules/lodash/_createRange.js ***!
47141 \*********************************************/
47142/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47143
47144var baseRange = __webpack_require__(/*! ./_baseRange */ "./node_modules/lodash/_baseRange.js"),
47145 isIterateeCall = __webpack_require__(/*! ./_isIterateeCall */ "./node_modules/lodash/_isIterateeCall.js"),
47146 toFinite = __webpack_require__(/*! ./toFinite */ "./node_modules/lodash/toFinite.js");
47147
47148/**
47149 * Creates a `_.range` or `_.rangeRight` function.
47150 *
47151 * @private
47152 * @param {boolean} [fromRight] Specify iterating from right to left.
47153 * @returns {Function} Returns the new range function.
47154 */
47155function createRange(fromRight) {
47156 return function(start, end, step) {
47157 if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {
47158 end = step = undefined;
47159 }
47160 // Ensure the sign of `-0` is preserved.
47161 start = toFinite(start);
47162 if (end === undefined) {
47163 end = start;
47164 start = 0;
47165 } else {
47166 end = toFinite(end);
47167 }
47168 step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);
47169 return baseRange(start, end, step, fromRight);
47170 };
47171}
47172
47173module.exports = createRange;
47174
47175
47176/***/ }),
47177
47178/***/ "./node_modules/lodash/_createSet.js":
47179/*!*******************************************!*\
47180 !*** ./node_modules/lodash/_createSet.js ***!
47181 \*******************************************/
47182/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47183
47184var Set = __webpack_require__(/*! ./_Set */ "./node_modules/lodash/_Set.js"),
47185 noop = __webpack_require__(/*! ./noop */ "./node_modules/lodash/noop.js"),
47186 setToArray = __webpack_require__(/*! ./_setToArray */ "./node_modules/lodash/_setToArray.js");
47187
47188/** Used as references for various `Number` constants. */
47189var INFINITY = 1 / 0;
47190
47191/**
47192 * Creates a set object of `values`.
47193 *
47194 * @private
47195 * @param {Array} values The values to add to the set.
47196 * @returns {Object} Returns the new set.
47197 */
47198var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {
47199 return new Set(values);
47200};
47201
47202module.exports = createSet;
47203
47204
47205/***/ }),
47206
47207/***/ "./node_modules/lodash/_defineProperty.js":
47208/*!************************************************!*\
47209 !*** ./node_modules/lodash/_defineProperty.js ***!
47210 \************************************************/
47211/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47212
47213var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js");
47214
47215var defineProperty = (function() {
47216 try {
47217 var func = getNative(Object, 'defineProperty');
47218 func({}, '', {});
47219 return func;
47220 } catch (e) {}
47221}());
47222
47223module.exports = defineProperty;
47224
47225
47226/***/ }),
47227
47228/***/ "./node_modules/lodash/_equalArrays.js":
47229/*!*********************************************!*\
47230 !*** ./node_modules/lodash/_equalArrays.js ***!
47231 \*********************************************/
47232/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47233
47234var SetCache = __webpack_require__(/*! ./_SetCache */ "./node_modules/lodash/_SetCache.js"),
47235 arraySome = __webpack_require__(/*! ./_arraySome */ "./node_modules/lodash/_arraySome.js"),
47236 cacheHas = __webpack_require__(/*! ./_cacheHas */ "./node_modules/lodash/_cacheHas.js");
47237
47238/** Used to compose bitmasks for value comparisons. */
47239var COMPARE_PARTIAL_FLAG = 1,
47240 COMPARE_UNORDERED_FLAG = 2;
47241
47242/**
47243 * A specialized version of `baseIsEqualDeep` for arrays with support for
47244 * partial deep comparisons.
47245 *
47246 * @private
47247 * @param {Array} array The array to compare.
47248 * @param {Array} other The other array to compare.
47249 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
47250 * @param {Function} customizer The function to customize comparisons.
47251 * @param {Function} equalFunc The function to determine equivalents of values.
47252 * @param {Object} stack Tracks traversed `array` and `other` objects.
47253 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
47254 */
47255function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
47256 var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
47257 arrLength = array.length,
47258 othLength = other.length;
47259
47260 if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
47261 return false;
47262 }
47263 // Check that cyclic values are equal.
47264 var arrStacked = stack.get(array);
47265 var othStacked = stack.get(other);
47266 if (arrStacked && othStacked) {
47267 return arrStacked == other && othStacked == array;
47268 }
47269 var index = -1,
47270 result = true,
47271 seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;
47272
47273 stack.set(array, other);
47274 stack.set(other, array);
47275
47276 // Ignore non-index properties.
47277 while (++index < arrLength) {
47278 var arrValue = array[index],
47279 othValue = other[index];
47280
47281 if (customizer) {
47282 var compared = isPartial
47283 ? customizer(othValue, arrValue, index, other, array, stack)
47284 : customizer(arrValue, othValue, index, array, other, stack);
47285 }
47286 if (compared !== undefined) {
47287 if (compared) {
47288 continue;
47289 }
47290 result = false;
47291 break;
47292 }
47293 // Recursively compare arrays (susceptible to call stack limits).
47294 if (seen) {
47295 if (!arraySome(other, function(othValue, othIndex) {
47296 if (!cacheHas(seen, othIndex) &&
47297 (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
47298 return seen.push(othIndex);
47299 }
47300 })) {
47301 result = false;
47302 break;
47303 }
47304 } else if (!(
47305 arrValue === othValue ||
47306 equalFunc(arrValue, othValue, bitmask, customizer, stack)
47307 )) {
47308 result = false;
47309 break;
47310 }
47311 }
47312 stack['delete'](array);
47313 stack['delete'](other);
47314 return result;
47315}
47316
47317module.exports = equalArrays;
47318
47319
47320/***/ }),
47321
47322/***/ "./node_modules/lodash/_equalByTag.js":
47323/*!********************************************!*\
47324 !*** ./node_modules/lodash/_equalByTag.js ***!
47325 \********************************************/
47326/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47327
47328var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"),
47329 Uint8Array = __webpack_require__(/*! ./_Uint8Array */ "./node_modules/lodash/_Uint8Array.js"),
47330 eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js"),
47331 equalArrays = __webpack_require__(/*! ./_equalArrays */ "./node_modules/lodash/_equalArrays.js"),
47332 mapToArray = __webpack_require__(/*! ./_mapToArray */ "./node_modules/lodash/_mapToArray.js"),
47333 setToArray = __webpack_require__(/*! ./_setToArray */ "./node_modules/lodash/_setToArray.js");
47334
47335/** Used to compose bitmasks for value comparisons. */
47336var COMPARE_PARTIAL_FLAG = 1,
47337 COMPARE_UNORDERED_FLAG = 2;
47338
47339/** `Object#toString` result references. */
47340var boolTag = '[object Boolean]',
47341 dateTag = '[object Date]',
47342 errorTag = '[object Error]',
47343 mapTag = '[object Map]',
47344 numberTag = '[object Number]',
47345 regexpTag = '[object RegExp]',
47346 setTag = '[object Set]',
47347 stringTag = '[object String]',
47348 symbolTag = '[object Symbol]';
47349
47350var arrayBufferTag = '[object ArrayBuffer]',
47351 dataViewTag = '[object DataView]';
47352
47353/** Used to convert symbols to primitives and strings. */
47354var symbolProto = Symbol ? Symbol.prototype : undefined,
47355 symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
47356
47357/**
47358 * A specialized version of `baseIsEqualDeep` for comparing objects of
47359 * the same `toStringTag`.
47360 *
47361 * **Note:** This function only supports comparing values with tags of
47362 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
47363 *
47364 * @private
47365 * @param {Object} object The object to compare.
47366 * @param {Object} other The other object to compare.
47367 * @param {string} tag The `toStringTag` of the objects to compare.
47368 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
47369 * @param {Function} customizer The function to customize comparisons.
47370 * @param {Function} equalFunc The function to determine equivalents of values.
47371 * @param {Object} stack Tracks traversed `object` and `other` objects.
47372 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
47373 */
47374function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
47375 switch (tag) {
47376 case dataViewTag:
47377 if ((object.byteLength != other.byteLength) ||
47378 (object.byteOffset != other.byteOffset)) {
47379 return false;
47380 }
47381 object = object.buffer;
47382 other = other.buffer;
47383
47384 case arrayBufferTag:
47385 if ((object.byteLength != other.byteLength) ||
47386 !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
47387 return false;
47388 }
47389 return true;
47390
47391 case boolTag:
47392 case dateTag:
47393 case numberTag:
47394 // Coerce booleans to `1` or `0` and dates to milliseconds.
47395 // Invalid dates are coerced to `NaN`.
47396 return eq(+object, +other);
47397
47398 case errorTag:
47399 return object.name == other.name && object.message == other.message;
47400
47401 case regexpTag:
47402 case stringTag:
47403 // Coerce regexes to strings and treat strings, primitives and objects,
47404 // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
47405 // for more details.
47406 return object == (other + '');
47407
47408 case mapTag:
47409 var convert = mapToArray;
47410
47411 case setTag:
47412 var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
47413 convert || (convert = setToArray);
47414
47415 if (object.size != other.size && !isPartial) {
47416 return false;
47417 }
47418 // Assume cyclic values are equal.
47419 var stacked = stack.get(object);
47420 if (stacked) {
47421 return stacked == other;
47422 }
47423 bitmask |= COMPARE_UNORDERED_FLAG;
47424
47425 // Recursively compare objects (susceptible to call stack limits).
47426 stack.set(object, other);
47427 var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
47428 stack['delete'](object);
47429 return result;
47430
47431 case symbolTag:
47432 if (symbolValueOf) {
47433 return symbolValueOf.call(object) == symbolValueOf.call(other);
47434 }
47435 }
47436 return false;
47437}
47438
47439module.exports = equalByTag;
47440
47441
47442/***/ }),
47443
47444/***/ "./node_modules/lodash/_equalObjects.js":
47445/*!**********************************************!*\
47446 !*** ./node_modules/lodash/_equalObjects.js ***!
47447 \**********************************************/
47448/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47449
47450var getAllKeys = __webpack_require__(/*! ./_getAllKeys */ "./node_modules/lodash/_getAllKeys.js");
47451
47452/** Used to compose bitmasks for value comparisons. */
47453var COMPARE_PARTIAL_FLAG = 1;
47454
47455/** Used for built-in method references. */
47456var objectProto = Object.prototype;
47457
47458/** Used to check objects for own properties. */
47459var hasOwnProperty = objectProto.hasOwnProperty;
47460
47461/**
47462 * A specialized version of `baseIsEqualDeep` for objects with support for
47463 * partial deep comparisons.
47464 *
47465 * @private
47466 * @param {Object} object The object to compare.
47467 * @param {Object} other The other object to compare.
47468 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
47469 * @param {Function} customizer The function to customize comparisons.
47470 * @param {Function} equalFunc The function to determine equivalents of values.
47471 * @param {Object} stack Tracks traversed `object` and `other` objects.
47472 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
47473 */
47474function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
47475 var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
47476 objProps = getAllKeys(object),
47477 objLength = objProps.length,
47478 othProps = getAllKeys(other),
47479 othLength = othProps.length;
47480
47481 if (objLength != othLength && !isPartial) {
47482 return false;
47483 }
47484 var index = objLength;
47485 while (index--) {
47486 var key = objProps[index];
47487 if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
47488 return false;
47489 }
47490 }
47491 // Check that cyclic values are equal.
47492 var objStacked = stack.get(object);
47493 var othStacked = stack.get(other);
47494 if (objStacked && othStacked) {
47495 return objStacked == other && othStacked == object;
47496 }
47497 var result = true;
47498 stack.set(object, other);
47499 stack.set(other, object);
47500
47501 var skipCtor = isPartial;
47502 while (++index < objLength) {
47503 key = objProps[index];
47504 var objValue = object[key],
47505 othValue = other[key];
47506
47507 if (customizer) {
47508 var compared = isPartial
47509 ? customizer(othValue, objValue, key, other, object, stack)
47510 : customizer(objValue, othValue, key, object, other, stack);
47511 }
47512 // Recursively compare objects (susceptible to call stack limits).
47513 if (!(compared === undefined
47514 ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
47515 : compared
47516 )) {
47517 result = false;
47518 break;
47519 }
47520 skipCtor || (skipCtor = key == 'constructor');
47521 }
47522 if (result && !skipCtor) {
47523 var objCtor = object.constructor,
47524 othCtor = other.constructor;
47525
47526 // Non `Object` object instances with different constructors are not equal.
47527 if (objCtor != othCtor &&
47528 ('constructor' in object && 'constructor' in other) &&
47529 !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
47530 typeof othCtor == 'function' && othCtor instanceof othCtor)) {
47531 result = false;
47532 }
47533 }
47534 stack['delete'](object);
47535 stack['delete'](other);
47536 return result;
47537}
47538
47539module.exports = equalObjects;
47540
47541
47542/***/ }),
47543
47544/***/ "./node_modules/lodash/_flatRest.js":
47545/*!******************************************!*\
47546 !*** ./node_modules/lodash/_flatRest.js ***!
47547 \******************************************/
47548/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47549
47550var flatten = __webpack_require__(/*! ./flatten */ "./node_modules/lodash/flatten.js"),
47551 overRest = __webpack_require__(/*! ./_overRest */ "./node_modules/lodash/_overRest.js"),
47552 setToString = __webpack_require__(/*! ./_setToString */ "./node_modules/lodash/_setToString.js");
47553
47554/**
47555 * A specialized version of `baseRest` which flattens the rest array.
47556 *
47557 * @private
47558 * @param {Function} func The function to apply a rest parameter to.
47559 * @returns {Function} Returns the new function.
47560 */
47561function flatRest(func) {
47562 return setToString(overRest(func, undefined, flatten), func + '');
47563}
47564
47565module.exports = flatRest;
47566
47567
47568/***/ }),
47569
47570/***/ "./node_modules/lodash/_freeGlobal.js":
47571/*!********************************************!*\
47572 !*** ./node_modules/lodash/_freeGlobal.js ***!
47573 \********************************************/
47574/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47575
47576/** Detect free variable `global` from Node.js. */
47577var freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;
47578
47579module.exports = freeGlobal;
47580
47581
47582/***/ }),
47583
47584/***/ "./node_modules/lodash/_getAllKeys.js":
47585/*!********************************************!*\
47586 !*** ./node_modules/lodash/_getAllKeys.js ***!
47587 \********************************************/
47588/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47589
47590var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ "./node_modules/lodash/_baseGetAllKeys.js"),
47591 getSymbols = __webpack_require__(/*! ./_getSymbols */ "./node_modules/lodash/_getSymbols.js"),
47592 keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");
47593
47594/**
47595 * Creates an array of own enumerable property names and symbols of `object`.
47596 *
47597 * @private
47598 * @param {Object} object The object to query.
47599 * @returns {Array} Returns the array of property names and symbols.
47600 */
47601function getAllKeys(object) {
47602 return baseGetAllKeys(object, keys, getSymbols);
47603}
47604
47605module.exports = getAllKeys;
47606
47607
47608/***/ }),
47609
47610/***/ "./node_modules/lodash/_getAllKeysIn.js":
47611/*!**********************************************!*\
47612 !*** ./node_modules/lodash/_getAllKeysIn.js ***!
47613 \**********************************************/
47614/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47615
47616var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ "./node_modules/lodash/_baseGetAllKeys.js"),
47617 getSymbolsIn = __webpack_require__(/*! ./_getSymbolsIn */ "./node_modules/lodash/_getSymbolsIn.js"),
47618 keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js");
47619
47620/**
47621 * Creates an array of own and inherited enumerable property names and
47622 * symbols of `object`.
47623 *
47624 * @private
47625 * @param {Object} object The object to query.
47626 * @returns {Array} Returns the array of property names and symbols.
47627 */
47628function getAllKeysIn(object) {
47629 return baseGetAllKeys(object, keysIn, getSymbolsIn);
47630}
47631
47632module.exports = getAllKeysIn;
47633
47634
47635/***/ }),
47636
47637/***/ "./node_modules/lodash/_getMapData.js":
47638/*!********************************************!*\
47639 !*** ./node_modules/lodash/_getMapData.js ***!
47640 \********************************************/
47641/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47642
47643var isKeyable = __webpack_require__(/*! ./_isKeyable */ "./node_modules/lodash/_isKeyable.js");
47644
47645/**
47646 * Gets the data for `map`.
47647 *
47648 * @private
47649 * @param {Object} map The map to query.
47650 * @param {string} key The reference key.
47651 * @returns {*} Returns the map data.
47652 */
47653function getMapData(map, key) {
47654 var data = map.__data__;
47655 return isKeyable(key)
47656 ? data[typeof key == 'string' ? 'string' : 'hash']
47657 : data.map;
47658}
47659
47660module.exports = getMapData;
47661
47662
47663/***/ }),
47664
47665/***/ "./node_modules/lodash/_getMatchData.js":
47666/*!**********************************************!*\
47667 !*** ./node_modules/lodash/_getMatchData.js ***!
47668 \**********************************************/
47669/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47670
47671var isStrictComparable = __webpack_require__(/*! ./_isStrictComparable */ "./node_modules/lodash/_isStrictComparable.js"),
47672 keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");
47673
47674/**
47675 * Gets the property names, values, and compare flags of `object`.
47676 *
47677 * @private
47678 * @param {Object} object The object to query.
47679 * @returns {Array} Returns the match data of `object`.
47680 */
47681function getMatchData(object) {
47682 var result = keys(object),
47683 length = result.length;
47684
47685 while (length--) {
47686 var key = result[length],
47687 value = object[key];
47688
47689 result[length] = [key, value, isStrictComparable(value)];
47690 }
47691 return result;
47692}
47693
47694module.exports = getMatchData;
47695
47696
47697/***/ }),
47698
47699/***/ "./node_modules/lodash/_getNative.js":
47700/*!*******************************************!*\
47701 !*** ./node_modules/lodash/_getNative.js ***!
47702 \*******************************************/
47703/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47704
47705var baseIsNative = __webpack_require__(/*! ./_baseIsNative */ "./node_modules/lodash/_baseIsNative.js"),
47706 getValue = __webpack_require__(/*! ./_getValue */ "./node_modules/lodash/_getValue.js");
47707
47708/**
47709 * Gets the native function at `key` of `object`.
47710 *
47711 * @private
47712 * @param {Object} object The object to query.
47713 * @param {string} key The key of the method to get.
47714 * @returns {*} Returns the function if it's native, else `undefined`.
47715 */
47716function getNative(object, key) {
47717 var value = getValue(object, key);
47718 return baseIsNative(value) ? value : undefined;
47719}
47720
47721module.exports = getNative;
47722
47723
47724/***/ }),
47725
47726/***/ "./node_modules/lodash/_getPrototype.js":
47727/*!**********************************************!*\
47728 !*** ./node_modules/lodash/_getPrototype.js ***!
47729 \**********************************************/
47730/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47731
47732var overArg = __webpack_require__(/*! ./_overArg */ "./node_modules/lodash/_overArg.js");
47733
47734/** Built-in value references. */
47735var getPrototype = overArg(Object.getPrototypeOf, Object);
47736
47737module.exports = getPrototype;
47738
47739
47740/***/ }),
47741
47742/***/ "./node_modules/lodash/_getRawTag.js":
47743/*!*******************************************!*\
47744 !*** ./node_modules/lodash/_getRawTag.js ***!
47745 \*******************************************/
47746/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47747
47748var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js");
47749
47750/** Used for built-in method references. */
47751var objectProto = Object.prototype;
47752
47753/** Used to check objects for own properties. */
47754var hasOwnProperty = objectProto.hasOwnProperty;
47755
47756/**
47757 * Used to resolve the
47758 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
47759 * of values.
47760 */
47761var nativeObjectToString = objectProto.toString;
47762
47763/** Built-in value references. */
47764var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
47765
47766/**
47767 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
47768 *
47769 * @private
47770 * @param {*} value The value to query.
47771 * @returns {string} Returns the raw `toStringTag`.
47772 */
47773function getRawTag(value) {
47774 var isOwn = hasOwnProperty.call(value, symToStringTag),
47775 tag = value[symToStringTag];
47776
47777 try {
47778 value[symToStringTag] = undefined;
47779 var unmasked = true;
47780 } catch (e) {}
47781
47782 var result = nativeObjectToString.call(value);
47783 if (unmasked) {
47784 if (isOwn) {
47785 value[symToStringTag] = tag;
47786 } else {
47787 delete value[symToStringTag];
47788 }
47789 }
47790 return result;
47791}
47792
47793module.exports = getRawTag;
47794
47795
47796/***/ }),
47797
47798/***/ "./node_modules/lodash/_getSymbols.js":
47799/*!********************************************!*\
47800 !*** ./node_modules/lodash/_getSymbols.js ***!
47801 \********************************************/
47802/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47803
47804var arrayFilter = __webpack_require__(/*! ./_arrayFilter */ "./node_modules/lodash/_arrayFilter.js"),
47805 stubArray = __webpack_require__(/*! ./stubArray */ "./node_modules/lodash/stubArray.js");
47806
47807/** Used for built-in method references. */
47808var objectProto = Object.prototype;
47809
47810/** Built-in value references. */
47811var propertyIsEnumerable = objectProto.propertyIsEnumerable;
47812
47813/* Built-in method references for those with the same name as other `lodash` methods. */
47814var nativeGetSymbols = Object.getOwnPropertySymbols;
47815
47816/**
47817 * Creates an array of the own enumerable symbols of `object`.
47818 *
47819 * @private
47820 * @param {Object} object The object to query.
47821 * @returns {Array} Returns the array of symbols.
47822 */
47823var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
47824 if (object == null) {
47825 return [];
47826 }
47827 object = Object(object);
47828 return arrayFilter(nativeGetSymbols(object), function(symbol) {
47829 return propertyIsEnumerable.call(object, symbol);
47830 });
47831};
47832
47833module.exports = getSymbols;
47834
47835
47836/***/ }),
47837
47838/***/ "./node_modules/lodash/_getSymbolsIn.js":
47839/*!**********************************************!*\
47840 !*** ./node_modules/lodash/_getSymbolsIn.js ***!
47841 \**********************************************/
47842/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47843
47844var arrayPush = __webpack_require__(/*! ./_arrayPush */ "./node_modules/lodash/_arrayPush.js"),
47845 getPrototype = __webpack_require__(/*! ./_getPrototype */ "./node_modules/lodash/_getPrototype.js"),
47846 getSymbols = __webpack_require__(/*! ./_getSymbols */ "./node_modules/lodash/_getSymbols.js"),
47847 stubArray = __webpack_require__(/*! ./stubArray */ "./node_modules/lodash/stubArray.js");
47848
47849/* Built-in method references for those with the same name as other `lodash` methods. */
47850var nativeGetSymbols = Object.getOwnPropertySymbols;
47851
47852/**
47853 * Creates an array of the own and inherited enumerable symbols of `object`.
47854 *
47855 * @private
47856 * @param {Object} object The object to query.
47857 * @returns {Array} Returns the array of symbols.
47858 */
47859var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
47860 var result = [];
47861 while (object) {
47862 arrayPush(result, getSymbols(object));
47863 object = getPrototype(object);
47864 }
47865 return result;
47866};
47867
47868module.exports = getSymbolsIn;
47869
47870
47871/***/ }),
47872
47873/***/ "./node_modules/lodash/_getTag.js":
47874/*!****************************************!*\
47875 !*** ./node_modules/lodash/_getTag.js ***!
47876 \****************************************/
47877/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47878
47879var DataView = __webpack_require__(/*! ./_DataView */ "./node_modules/lodash/_DataView.js"),
47880 Map = __webpack_require__(/*! ./_Map */ "./node_modules/lodash/_Map.js"),
47881 Promise = __webpack_require__(/*! ./_Promise */ "./node_modules/lodash/_Promise.js"),
47882 Set = __webpack_require__(/*! ./_Set */ "./node_modules/lodash/_Set.js"),
47883 WeakMap = __webpack_require__(/*! ./_WeakMap */ "./node_modules/lodash/_WeakMap.js"),
47884 baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
47885 toSource = __webpack_require__(/*! ./_toSource */ "./node_modules/lodash/_toSource.js");
47886
47887/** `Object#toString` result references. */
47888var mapTag = '[object Map]',
47889 objectTag = '[object Object]',
47890 promiseTag = '[object Promise]',
47891 setTag = '[object Set]',
47892 weakMapTag = '[object WeakMap]';
47893
47894var dataViewTag = '[object DataView]';
47895
47896/** Used to detect maps, sets, and weakmaps. */
47897var dataViewCtorString = toSource(DataView),
47898 mapCtorString = toSource(Map),
47899 promiseCtorString = toSource(Promise),
47900 setCtorString = toSource(Set),
47901 weakMapCtorString = toSource(WeakMap);
47902
47903/**
47904 * Gets the `toStringTag` of `value`.
47905 *
47906 * @private
47907 * @param {*} value The value to query.
47908 * @returns {string} Returns the `toStringTag`.
47909 */
47910var getTag = baseGetTag;
47911
47912// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
47913if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
47914 (Map && getTag(new Map) != mapTag) ||
47915 (Promise && getTag(Promise.resolve()) != promiseTag) ||
47916 (Set && getTag(new Set) != setTag) ||
47917 (WeakMap && getTag(new WeakMap) != weakMapTag)) {
47918 getTag = function(value) {
47919 var result = baseGetTag(value),
47920 Ctor = result == objectTag ? value.constructor : undefined,
47921 ctorString = Ctor ? toSource(Ctor) : '';
47922
47923 if (ctorString) {
47924 switch (ctorString) {
47925 case dataViewCtorString: return dataViewTag;
47926 case mapCtorString: return mapTag;
47927 case promiseCtorString: return promiseTag;
47928 case setCtorString: return setTag;
47929 case weakMapCtorString: return weakMapTag;
47930 }
47931 }
47932 return result;
47933 };
47934}
47935
47936module.exports = getTag;
47937
47938
47939/***/ }),
47940
47941/***/ "./node_modules/lodash/_getValue.js":
47942/*!******************************************!*\
47943 !*** ./node_modules/lodash/_getValue.js ***!
47944 \******************************************/
47945/***/ ((module) => {
47946
47947/**
47948 * Gets the value at `key` of `object`.
47949 *
47950 * @private
47951 * @param {Object} [object] The object to query.
47952 * @param {string} key The key of the property to get.
47953 * @returns {*} Returns the property value.
47954 */
47955function getValue(object, key) {
47956 return object == null ? undefined : object[key];
47957}
47958
47959module.exports = getValue;
47960
47961
47962/***/ }),
47963
47964/***/ "./node_modules/lodash/_hasPath.js":
47965/*!*****************************************!*\
47966 !*** ./node_modules/lodash/_hasPath.js ***!
47967 \*****************************************/
47968/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
47969
47970var castPath = __webpack_require__(/*! ./_castPath */ "./node_modules/lodash/_castPath.js"),
47971 isArguments = __webpack_require__(/*! ./isArguments */ "./node_modules/lodash/isArguments.js"),
47972 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
47973 isIndex = __webpack_require__(/*! ./_isIndex */ "./node_modules/lodash/_isIndex.js"),
47974 isLength = __webpack_require__(/*! ./isLength */ "./node_modules/lodash/isLength.js"),
47975 toKey = __webpack_require__(/*! ./_toKey */ "./node_modules/lodash/_toKey.js");
47976
47977/**
47978 * Checks if `path` exists on `object`.
47979 *
47980 * @private
47981 * @param {Object} object The object to query.
47982 * @param {Array|string} path The path to check.
47983 * @param {Function} hasFunc The function to check properties.
47984 * @returns {boolean} Returns `true` if `path` exists, else `false`.
47985 */
47986function hasPath(object, path, hasFunc) {
47987 path = castPath(path, object);
47988
47989 var index = -1,
47990 length = path.length,
47991 result = false;
47992
47993 while (++index < length) {
47994 var key = toKey(path[index]);
47995 if (!(result = object != null && hasFunc(object, key))) {
47996 break;
47997 }
47998 object = object[key];
47999 }
48000 if (result || ++index != length) {
48001 return result;
48002 }
48003 length = object == null ? 0 : object.length;
48004 return !!length && isLength(length) && isIndex(key, length) &&
48005 (isArray(object) || isArguments(object));
48006}
48007
48008module.exports = hasPath;
48009
48010
48011/***/ }),
48012
48013/***/ "./node_modules/lodash/_hasUnicode.js":
48014/*!********************************************!*\
48015 !*** ./node_modules/lodash/_hasUnicode.js ***!
48016 \********************************************/
48017/***/ ((module) => {
48018
48019/** Used to compose unicode character classes. */
48020var rsAstralRange = '\\ud800-\\udfff',
48021 rsComboMarksRange = '\\u0300-\\u036f',
48022 reComboHalfMarksRange = '\\ufe20-\\ufe2f',
48023 rsComboSymbolsRange = '\\u20d0-\\u20ff',
48024 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
48025 rsVarRange = '\\ufe0e\\ufe0f';
48026
48027/** Used to compose unicode capture groups. */
48028var rsZWJ = '\\u200d';
48029
48030/** 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/). */
48031var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');
48032
48033/**
48034 * Checks if `string` contains Unicode symbols.
48035 *
48036 * @private
48037 * @param {string} string The string to inspect.
48038 * @returns {boolean} Returns `true` if a symbol is found, else `false`.
48039 */
48040function hasUnicode(string) {
48041 return reHasUnicode.test(string);
48042}
48043
48044module.exports = hasUnicode;
48045
48046
48047/***/ }),
48048
48049/***/ "./node_modules/lodash/_hashClear.js":
48050/*!*******************************************!*\
48051 !*** ./node_modules/lodash/_hashClear.js ***!
48052 \*******************************************/
48053/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48054
48055var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");
48056
48057/**
48058 * Removes all key-value entries from the hash.
48059 *
48060 * @private
48061 * @name clear
48062 * @memberOf Hash
48063 */
48064function hashClear() {
48065 this.__data__ = nativeCreate ? nativeCreate(null) : {};
48066 this.size = 0;
48067}
48068
48069module.exports = hashClear;
48070
48071
48072/***/ }),
48073
48074/***/ "./node_modules/lodash/_hashDelete.js":
48075/*!********************************************!*\
48076 !*** ./node_modules/lodash/_hashDelete.js ***!
48077 \********************************************/
48078/***/ ((module) => {
48079
48080/**
48081 * Removes `key` and its value from the hash.
48082 *
48083 * @private
48084 * @name delete
48085 * @memberOf Hash
48086 * @param {Object} hash The hash to modify.
48087 * @param {string} key The key of the value to remove.
48088 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
48089 */
48090function hashDelete(key) {
48091 var result = this.has(key) && delete this.__data__[key];
48092 this.size -= result ? 1 : 0;
48093 return result;
48094}
48095
48096module.exports = hashDelete;
48097
48098
48099/***/ }),
48100
48101/***/ "./node_modules/lodash/_hashGet.js":
48102/*!*****************************************!*\
48103 !*** ./node_modules/lodash/_hashGet.js ***!
48104 \*****************************************/
48105/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48106
48107var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");
48108
48109/** Used to stand-in for `undefined` hash values. */
48110var HASH_UNDEFINED = '__lodash_hash_undefined__';
48111
48112/** Used for built-in method references. */
48113var objectProto = Object.prototype;
48114
48115/** Used to check objects for own properties. */
48116var hasOwnProperty = objectProto.hasOwnProperty;
48117
48118/**
48119 * Gets the hash value for `key`.
48120 *
48121 * @private
48122 * @name get
48123 * @memberOf Hash
48124 * @param {string} key The key of the value to get.
48125 * @returns {*} Returns the entry value.
48126 */
48127function hashGet(key) {
48128 var data = this.__data__;
48129 if (nativeCreate) {
48130 var result = data[key];
48131 return result === HASH_UNDEFINED ? undefined : result;
48132 }
48133 return hasOwnProperty.call(data, key) ? data[key] : undefined;
48134}
48135
48136module.exports = hashGet;
48137
48138
48139/***/ }),
48140
48141/***/ "./node_modules/lodash/_hashHas.js":
48142/*!*****************************************!*\
48143 !*** ./node_modules/lodash/_hashHas.js ***!
48144 \*****************************************/
48145/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48146
48147var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");
48148
48149/** Used for built-in method references. */
48150var objectProto = Object.prototype;
48151
48152/** Used to check objects for own properties. */
48153var hasOwnProperty = objectProto.hasOwnProperty;
48154
48155/**
48156 * Checks if a hash value for `key` exists.
48157 *
48158 * @private
48159 * @name has
48160 * @memberOf Hash
48161 * @param {string} key The key of the entry to check.
48162 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
48163 */
48164function hashHas(key) {
48165 var data = this.__data__;
48166 return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
48167}
48168
48169module.exports = hashHas;
48170
48171
48172/***/ }),
48173
48174/***/ "./node_modules/lodash/_hashSet.js":
48175/*!*****************************************!*\
48176 !*** ./node_modules/lodash/_hashSet.js ***!
48177 \*****************************************/
48178/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48179
48180var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ "./node_modules/lodash/_nativeCreate.js");
48181
48182/** Used to stand-in for `undefined` hash values. */
48183var HASH_UNDEFINED = '__lodash_hash_undefined__';
48184
48185/**
48186 * Sets the hash `key` to `value`.
48187 *
48188 * @private
48189 * @name set
48190 * @memberOf Hash
48191 * @param {string} key The key of the value to set.
48192 * @param {*} value The value to set.
48193 * @returns {Object} Returns the hash instance.
48194 */
48195function hashSet(key, value) {
48196 var data = this.__data__;
48197 this.size += this.has(key) ? 0 : 1;
48198 data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
48199 return this;
48200}
48201
48202module.exports = hashSet;
48203
48204
48205/***/ }),
48206
48207/***/ "./node_modules/lodash/_initCloneArray.js":
48208/*!************************************************!*\
48209 !*** ./node_modules/lodash/_initCloneArray.js ***!
48210 \************************************************/
48211/***/ ((module) => {
48212
48213/** Used for built-in method references. */
48214var objectProto = Object.prototype;
48215
48216/** Used to check objects for own properties. */
48217var hasOwnProperty = objectProto.hasOwnProperty;
48218
48219/**
48220 * Initializes an array clone.
48221 *
48222 * @private
48223 * @param {Array} array The array to clone.
48224 * @returns {Array} Returns the initialized clone.
48225 */
48226function initCloneArray(array) {
48227 var length = array.length,
48228 result = new array.constructor(length);
48229
48230 // Add properties assigned by `RegExp#exec`.
48231 if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
48232 result.index = array.index;
48233 result.input = array.input;
48234 }
48235 return result;
48236}
48237
48238module.exports = initCloneArray;
48239
48240
48241/***/ }),
48242
48243/***/ "./node_modules/lodash/_initCloneByTag.js":
48244/*!************************************************!*\
48245 !*** ./node_modules/lodash/_initCloneByTag.js ***!
48246 \************************************************/
48247/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48248
48249var cloneArrayBuffer = __webpack_require__(/*! ./_cloneArrayBuffer */ "./node_modules/lodash/_cloneArrayBuffer.js"),
48250 cloneDataView = __webpack_require__(/*! ./_cloneDataView */ "./node_modules/lodash/_cloneDataView.js"),
48251 cloneRegExp = __webpack_require__(/*! ./_cloneRegExp */ "./node_modules/lodash/_cloneRegExp.js"),
48252 cloneSymbol = __webpack_require__(/*! ./_cloneSymbol */ "./node_modules/lodash/_cloneSymbol.js"),
48253 cloneTypedArray = __webpack_require__(/*! ./_cloneTypedArray */ "./node_modules/lodash/_cloneTypedArray.js");
48254
48255/** `Object#toString` result references. */
48256var boolTag = '[object Boolean]',
48257 dateTag = '[object Date]',
48258 mapTag = '[object Map]',
48259 numberTag = '[object Number]',
48260 regexpTag = '[object RegExp]',
48261 setTag = '[object Set]',
48262 stringTag = '[object String]',
48263 symbolTag = '[object Symbol]';
48264
48265var arrayBufferTag = '[object ArrayBuffer]',
48266 dataViewTag = '[object DataView]',
48267 float32Tag = '[object Float32Array]',
48268 float64Tag = '[object Float64Array]',
48269 int8Tag = '[object Int8Array]',
48270 int16Tag = '[object Int16Array]',
48271 int32Tag = '[object Int32Array]',
48272 uint8Tag = '[object Uint8Array]',
48273 uint8ClampedTag = '[object Uint8ClampedArray]',
48274 uint16Tag = '[object Uint16Array]',
48275 uint32Tag = '[object Uint32Array]';
48276
48277/**
48278 * Initializes an object clone based on its `toStringTag`.
48279 *
48280 * **Note:** This function only supports cloning values with tags of
48281 * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.
48282 *
48283 * @private
48284 * @param {Object} object The object to clone.
48285 * @param {string} tag The `toStringTag` of the object to clone.
48286 * @param {boolean} [isDeep] Specify a deep clone.
48287 * @returns {Object} Returns the initialized clone.
48288 */
48289function initCloneByTag(object, tag, isDeep) {
48290 var Ctor = object.constructor;
48291 switch (tag) {
48292 case arrayBufferTag:
48293 return cloneArrayBuffer(object);
48294
48295 case boolTag:
48296 case dateTag:
48297 return new Ctor(+object);
48298
48299 case dataViewTag:
48300 return cloneDataView(object, isDeep);
48301
48302 case float32Tag: case float64Tag:
48303 case int8Tag: case int16Tag: case int32Tag:
48304 case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:
48305 return cloneTypedArray(object, isDeep);
48306
48307 case mapTag:
48308 return new Ctor;
48309
48310 case numberTag:
48311 case stringTag:
48312 return new Ctor(object);
48313
48314 case regexpTag:
48315 return cloneRegExp(object);
48316
48317 case setTag:
48318 return new Ctor;
48319
48320 case symbolTag:
48321 return cloneSymbol(object);
48322 }
48323}
48324
48325module.exports = initCloneByTag;
48326
48327
48328/***/ }),
48329
48330/***/ "./node_modules/lodash/_initCloneObject.js":
48331/*!*************************************************!*\
48332 !*** ./node_modules/lodash/_initCloneObject.js ***!
48333 \*************************************************/
48334/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48335
48336var baseCreate = __webpack_require__(/*! ./_baseCreate */ "./node_modules/lodash/_baseCreate.js"),
48337 getPrototype = __webpack_require__(/*! ./_getPrototype */ "./node_modules/lodash/_getPrototype.js"),
48338 isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js");
48339
48340/**
48341 * Initializes an object clone.
48342 *
48343 * @private
48344 * @param {Object} object The object to clone.
48345 * @returns {Object} Returns the initialized clone.
48346 */
48347function initCloneObject(object) {
48348 return (typeof object.constructor == 'function' && !isPrototype(object))
48349 ? baseCreate(getPrototype(object))
48350 : {};
48351}
48352
48353module.exports = initCloneObject;
48354
48355
48356/***/ }),
48357
48358/***/ "./node_modules/lodash/_isFlattenable.js":
48359/*!***********************************************!*\
48360 !*** ./node_modules/lodash/_isFlattenable.js ***!
48361 \***********************************************/
48362/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48363
48364var Symbol = __webpack_require__(/*! ./_Symbol */ "./node_modules/lodash/_Symbol.js"),
48365 isArguments = __webpack_require__(/*! ./isArguments */ "./node_modules/lodash/isArguments.js"),
48366 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");
48367
48368/** Built-in value references. */
48369var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;
48370
48371/**
48372 * Checks if `value` is a flattenable `arguments` object or array.
48373 *
48374 * @private
48375 * @param {*} value The value to check.
48376 * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
48377 */
48378function isFlattenable(value) {
48379 return isArray(value) || isArguments(value) ||
48380 !!(spreadableSymbol && value && value[spreadableSymbol]);
48381}
48382
48383module.exports = isFlattenable;
48384
48385
48386/***/ }),
48387
48388/***/ "./node_modules/lodash/_isIndex.js":
48389/*!*****************************************!*\
48390 !*** ./node_modules/lodash/_isIndex.js ***!
48391 \*****************************************/
48392/***/ ((module) => {
48393
48394/** Used as references for various `Number` constants. */
48395var MAX_SAFE_INTEGER = 9007199254740991;
48396
48397/** Used to detect unsigned integer values. */
48398var reIsUint = /^(?:0|[1-9]\d*)$/;
48399
48400/**
48401 * Checks if `value` is a valid array-like index.
48402 *
48403 * @private
48404 * @param {*} value The value to check.
48405 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
48406 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
48407 */
48408function isIndex(value, length) {
48409 var type = typeof value;
48410 length = length == null ? MAX_SAFE_INTEGER : length;
48411
48412 return !!length &&
48413 (type == 'number' ||
48414 (type != 'symbol' && reIsUint.test(value))) &&
48415 (value > -1 && value % 1 == 0 && value < length);
48416}
48417
48418module.exports = isIndex;
48419
48420
48421/***/ }),
48422
48423/***/ "./node_modules/lodash/_isIterateeCall.js":
48424/*!************************************************!*\
48425 !*** ./node_modules/lodash/_isIterateeCall.js ***!
48426 \************************************************/
48427/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48428
48429var eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js"),
48430 isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js"),
48431 isIndex = __webpack_require__(/*! ./_isIndex */ "./node_modules/lodash/_isIndex.js"),
48432 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js");
48433
48434/**
48435 * Checks if the given arguments are from an iteratee call.
48436 *
48437 * @private
48438 * @param {*} value The potential iteratee value argument.
48439 * @param {*} index The potential iteratee index or key argument.
48440 * @param {*} object The potential iteratee object argument.
48441 * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
48442 * else `false`.
48443 */
48444function isIterateeCall(value, index, object) {
48445 if (!isObject(object)) {
48446 return false;
48447 }
48448 var type = typeof index;
48449 if (type == 'number'
48450 ? (isArrayLike(object) && isIndex(index, object.length))
48451 : (type == 'string' && index in object)
48452 ) {
48453 return eq(object[index], value);
48454 }
48455 return false;
48456}
48457
48458module.exports = isIterateeCall;
48459
48460
48461/***/ }),
48462
48463/***/ "./node_modules/lodash/_isKey.js":
48464/*!***************************************!*\
48465 !*** ./node_modules/lodash/_isKey.js ***!
48466 \***************************************/
48467/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48468
48469var isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
48470 isSymbol = __webpack_require__(/*! ./isSymbol */ "./node_modules/lodash/isSymbol.js");
48471
48472/** Used to match property names within property paths. */
48473var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
48474 reIsPlainProp = /^\w*$/;
48475
48476/**
48477 * Checks if `value` is a property name and not a property path.
48478 *
48479 * @private
48480 * @param {*} value The value to check.
48481 * @param {Object} [object] The object to query keys on.
48482 * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
48483 */
48484function isKey(value, object) {
48485 if (isArray(value)) {
48486 return false;
48487 }
48488 var type = typeof value;
48489 if (type == 'number' || type == 'symbol' || type == 'boolean' ||
48490 value == null || isSymbol(value)) {
48491 return true;
48492 }
48493 return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
48494 (object != null && value in Object(object));
48495}
48496
48497module.exports = isKey;
48498
48499
48500/***/ }),
48501
48502/***/ "./node_modules/lodash/_isKeyable.js":
48503/*!*******************************************!*\
48504 !*** ./node_modules/lodash/_isKeyable.js ***!
48505 \*******************************************/
48506/***/ ((module) => {
48507
48508/**
48509 * Checks if `value` is suitable for use as unique object key.
48510 *
48511 * @private
48512 * @param {*} value The value to check.
48513 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
48514 */
48515function isKeyable(value) {
48516 var type = typeof value;
48517 return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
48518 ? (value !== '__proto__')
48519 : (value === null);
48520}
48521
48522module.exports = isKeyable;
48523
48524
48525/***/ }),
48526
48527/***/ "./node_modules/lodash/_isMasked.js":
48528/*!******************************************!*\
48529 !*** ./node_modules/lodash/_isMasked.js ***!
48530 \******************************************/
48531/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48532
48533var coreJsData = __webpack_require__(/*! ./_coreJsData */ "./node_modules/lodash/_coreJsData.js");
48534
48535/** Used to detect methods masquerading as native. */
48536var maskSrcKey = (function() {
48537 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
48538 return uid ? ('Symbol(src)_1.' + uid) : '';
48539}());
48540
48541/**
48542 * Checks if `func` has its source masked.
48543 *
48544 * @private
48545 * @param {Function} func The function to check.
48546 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
48547 */
48548function isMasked(func) {
48549 return !!maskSrcKey && (maskSrcKey in func);
48550}
48551
48552module.exports = isMasked;
48553
48554
48555/***/ }),
48556
48557/***/ "./node_modules/lodash/_isPrototype.js":
48558/*!*********************************************!*\
48559 !*** ./node_modules/lodash/_isPrototype.js ***!
48560 \*********************************************/
48561/***/ ((module) => {
48562
48563/** Used for built-in method references. */
48564var objectProto = Object.prototype;
48565
48566/**
48567 * Checks if `value` is likely a prototype object.
48568 *
48569 * @private
48570 * @param {*} value The value to check.
48571 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
48572 */
48573function isPrototype(value) {
48574 var Ctor = value && value.constructor,
48575 proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
48576
48577 return value === proto;
48578}
48579
48580module.exports = isPrototype;
48581
48582
48583/***/ }),
48584
48585/***/ "./node_modules/lodash/_isStrictComparable.js":
48586/*!****************************************************!*\
48587 !*** ./node_modules/lodash/_isStrictComparable.js ***!
48588 \****************************************************/
48589/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48590
48591var isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js");
48592
48593/**
48594 * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
48595 *
48596 * @private
48597 * @param {*} value The value to check.
48598 * @returns {boolean} Returns `true` if `value` if suitable for strict
48599 * equality comparisons, else `false`.
48600 */
48601function isStrictComparable(value) {
48602 return value === value && !isObject(value);
48603}
48604
48605module.exports = isStrictComparable;
48606
48607
48608/***/ }),
48609
48610/***/ "./node_modules/lodash/_listCacheClear.js":
48611/*!************************************************!*\
48612 !*** ./node_modules/lodash/_listCacheClear.js ***!
48613 \************************************************/
48614/***/ ((module) => {
48615
48616/**
48617 * Removes all key-value entries from the list cache.
48618 *
48619 * @private
48620 * @name clear
48621 * @memberOf ListCache
48622 */
48623function listCacheClear() {
48624 this.__data__ = [];
48625 this.size = 0;
48626}
48627
48628module.exports = listCacheClear;
48629
48630
48631/***/ }),
48632
48633/***/ "./node_modules/lodash/_listCacheDelete.js":
48634/*!*************************************************!*\
48635 !*** ./node_modules/lodash/_listCacheDelete.js ***!
48636 \*************************************************/
48637/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48638
48639var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");
48640
48641/** Used for built-in method references. */
48642var arrayProto = Array.prototype;
48643
48644/** Built-in value references. */
48645var splice = arrayProto.splice;
48646
48647/**
48648 * Removes `key` and its value from the list cache.
48649 *
48650 * @private
48651 * @name delete
48652 * @memberOf ListCache
48653 * @param {string} key The key of the value to remove.
48654 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
48655 */
48656function listCacheDelete(key) {
48657 var data = this.__data__,
48658 index = assocIndexOf(data, key);
48659
48660 if (index < 0) {
48661 return false;
48662 }
48663 var lastIndex = data.length - 1;
48664 if (index == lastIndex) {
48665 data.pop();
48666 } else {
48667 splice.call(data, index, 1);
48668 }
48669 --this.size;
48670 return true;
48671}
48672
48673module.exports = listCacheDelete;
48674
48675
48676/***/ }),
48677
48678/***/ "./node_modules/lodash/_listCacheGet.js":
48679/*!**********************************************!*\
48680 !*** ./node_modules/lodash/_listCacheGet.js ***!
48681 \**********************************************/
48682/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48683
48684var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");
48685
48686/**
48687 * Gets the list cache value for `key`.
48688 *
48689 * @private
48690 * @name get
48691 * @memberOf ListCache
48692 * @param {string} key The key of the value to get.
48693 * @returns {*} Returns the entry value.
48694 */
48695function listCacheGet(key) {
48696 var data = this.__data__,
48697 index = assocIndexOf(data, key);
48698
48699 return index < 0 ? undefined : data[index][1];
48700}
48701
48702module.exports = listCacheGet;
48703
48704
48705/***/ }),
48706
48707/***/ "./node_modules/lodash/_listCacheHas.js":
48708/*!**********************************************!*\
48709 !*** ./node_modules/lodash/_listCacheHas.js ***!
48710 \**********************************************/
48711/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48712
48713var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");
48714
48715/**
48716 * Checks if a list cache value for `key` exists.
48717 *
48718 * @private
48719 * @name has
48720 * @memberOf ListCache
48721 * @param {string} key The key of the entry to check.
48722 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
48723 */
48724function listCacheHas(key) {
48725 return assocIndexOf(this.__data__, key) > -1;
48726}
48727
48728module.exports = listCacheHas;
48729
48730
48731/***/ }),
48732
48733/***/ "./node_modules/lodash/_listCacheSet.js":
48734/*!**********************************************!*\
48735 !*** ./node_modules/lodash/_listCacheSet.js ***!
48736 \**********************************************/
48737/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48738
48739var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ "./node_modules/lodash/_assocIndexOf.js");
48740
48741/**
48742 * Sets the list cache `key` to `value`.
48743 *
48744 * @private
48745 * @name set
48746 * @memberOf ListCache
48747 * @param {string} key The key of the value to set.
48748 * @param {*} value The value to set.
48749 * @returns {Object} Returns the list cache instance.
48750 */
48751function listCacheSet(key, value) {
48752 var data = this.__data__,
48753 index = assocIndexOf(data, key);
48754
48755 if (index < 0) {
48756 ++this.size;
48757 data.push([key, value]);
48758 } else {
48759 data[index][1] = value;
48760 }
48761 return this;
48762}
48763
48764module.exports = listCacheSet;
48765
48766
48767/***/ }),
48768
48769/***/ "./node_modules/lodash/_mapCacheClear.js":
48770/*!***********************************************!*\
48771 !*** ./node_modules/lodash/_mapCacheClear.js ***!
48772 \***********************************************/
48773/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48774
48775var Hash = __webpack_require__(/*! ./_Hash */ "./node_modules/lodash/_Hash.js"),
48776 ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js"),
48777 Map = __webpack_require__(/*! ./_Map */ "./node_modules/lodash/_Map.js");
48778
48779/**
48780 * Removes all key-value entries from the map.
48781 *
48782 * @private
48783 * @name clear
48784 * @memberOf MapCache
48785 */
48786function mapCacheClear() {
48787 this.size = 0;
48788 this.__data__ = {
48789 'hash': new Hash,
48790 'map': new (Map || ListCache),
48791 'string': new Hash
48792 };
48793}
48794
48795module.exports = mapCacheClear;
48796
48797
48798/***/ }),
48799
48800/***/ "./node_modules/lodash/_mapCacheDelete.js":
48801/*!************************************************!*\
48802 !*** ./node_modules/lodash/_mapCacheDelete.js ***!
48803 \************************************************/
48804/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48805
48806var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");
48807
48808/**
48809 * Removes `key` and its value from the map.
48810 *
48811 * @private
48812 * @name delete
48813 * @memberOf MapCache
48814 * @param {string} key The key of the value to remove.
48815 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
48816 */
48817function mapCacheDelete(key) {
48818 var result = getMapData(this, key)['delete'](key);
48819 this.size -= result ? 1 : 0;
48820 return result;
48821}
48822
48823module.exports = mapCacheDelete;
48824
48825
48826/***/ }),
48827
48828/***/ "./node_modules/lodash/_mapCacheGet.js":
48829/*!*********************************************!*\
48830 !*** ./node_modules/lodash/_mapCacheGet.js ***!
48831 \*********************************************/
48832/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48833
48834var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");
48835
48836/**
48837 * Gets the map value for `key`.
48838 *
48839 * @private
48840 * @name get
48841 * @memberOf MapCache
48842 * @param {string} key The key of the value to get.
48843 * @returns {*} Returns the entry value.
48844 */
48845function mapCacheGet(key) {
48846 return getMapData(this, key).get(key);
48847}
48848
48849module.exports = mapCacheGet;
48850
48851
48852/***/ }),
48853
48854/***/ "./node_modules/lodash/_mapCacheHas.js":
48855/*!*********************************************!*\
48856 !*** ./node_modules/lodash/_mapCacheHas.js ***!
48857 \*********************************************/
48858/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48859
48860var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");
48861
48862/**
48863 * Checks if a map value for `key` exists.
48864 *
48865 * @private
48866 * @name has
48867 * @memberOf MapCache
48868 * @param {string} key The key of the entry to check.
48869 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
48870 */
48871function mapCacheHas(key) {
48872 return getMapData(this, key).has(key);
48873}
48874
48875module.exports = mapCacheHas;
48876
48877
48878/***/ }),
48879
48880/***/ "./node_modules/lodash/_mapCacheSet.js":
48881/*!*********************************************!*\
48882 !*** ./node_modules/lodash/_mapCacheSet.js ***!
48883 \*********************************************/
48884/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48885
48886var getMapData = __webpack_require__(/*! ./_getMapData */ "./node_modules/lodash/_getMapData.js");
48887
48888/**
48889 * Sets the map `key` to `value`.
48890 *
48891 * @private
48892 * @name set
48893 * @memberOf MapCache
48894 * @param {string} key The key of the value to set.
48895 * @param {*} value The value to set.
48896 * @returns {Object} Returns the map cache instance.
48897 */
48898function mapCacheSet(key, value) {
48899 var data = getMapData(this, key),
48900 size = data.size;
48901
48902 data.set(key, value);
48903 this.size += data.size == size ? 0 : 1;
48904 return this;
48905}
48906
48907module.exports = mapCacheSet;
48908
48909
48910/***/ }),
48911
48912/***/ "./node_modules/lodash/_mapToArray.js":
48913/*!********************************************!*\
48914 !*** ./node_modules/lodash/_mapToArray.js ***!
48915 \********************************************/
48916/***/ ((module) => {
48917
48918/**
48919 * Converts `map` to its key-value pairs.
48920 *
48921 * @private
48922 * @param {Object} map The map to convert.
48923 * @returns {Array} Returns the key-value pairs.
48924 */
48925function mapToArray(map) {
48926 var index = -1,
48927 result = Array(map.size);
48928
48929 map.forEach(function(value, key) {
48930 result[++index] = [key, value];
48931 });
48932 return result;
48933}
48934
48935module.exports = mapToArray;
48936
48937
48938/***/ }),
48939
48940/***/ "./node_modules/lodash/_matchesStrictComparable.js":
48941/*!*********************************************************!*\
48942 !*** ./node_modules/lodash/_matchesStrictComparable.js ***!
48943 \*********************************************************/
48944/***/ ((module) => {
48945
48946/**
48947 * A specialized version of `matchesProperty` for source values suitable
48948 * for strict equality comparisons, i.e. `===`.
48949 *
48950 * @private
48951 * @param {string} key The key of the property to get.
48952 * @param {*} srcValue The value to match.
48953 * @returns {Function} Returns the new spec function.
48954 */
48955function matchesStrictComparable(key, srcValue) {
48956 return function(object) {
48957 if (object == null) {
48958 return false;
48959 }
48960 return object[key] === srcValue &&
48961 (srcValue !== undefined || (key in Object(object)));
48962 };
48963}
48964
48965module.exports = matchesStrictComparable;
48966
48967
48968/***/ }),
48969
48970/***/ "./node_modules/lodash/_memoizeCapped.js":
48971/*!***********************************************!*\
48972 !*** ./node_modules/lodash/_memoizeCapped.js ***!
48973 \***********************************************/
48974/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
48975
48976var memoize = __webpack_require__(/*! ./memoize */ "./node_modules/lodash/memoize.js");
48977
48978/** Used as the maximum memoize cache size. */
48979var MAX_MEMOIZE_SIZE = 500;
48980
48981/**
48982 * A specialized version of `_.memoize` which clears the memoized function's
48983 * cache when it exceeds `MAX_MEMOIZE_SIZE`.
48984 *
48985 * @private
48986 * @param {Function} func The function to have its output memoized.
48987 * @returns {Function} Returns the new memoized function.
48988 */
48989function memoizeCapped(func) {
48990 var result = memoize(func, function(key) {
48991 if (cache.size === MAX_MEMOIZE_SIZE) {
48992 cache.clear();
48993 }
48994 return key;
48995 });
48996
48997 var cache = result.cache;
48998 return result;
48999}
49000
49001module.exports = memoizeCapped;
49002
49003
49004/***/ }),
49005
49006/***/ "./node_modules/lodash/_nativeCreate.js":
49007/*!**********************************************!*\
49008 !*** ./node_modules/lodash/_nativeCreate.js ***!
49009 \**********************************************/
49010/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
49011
49012var getNative = __webpack_require__(/*! ./_getNative */ "./node_modules/lodash/_getNative.js");
49013
49014/* Built-in method references that are verified to be native. */
49015var nativeCreate = getNative(Object, 'create');
49016
49017module.exports = nativeCreate;
49018
49019
49020/***/ }),
49021
49022/***/ "./node_modules/lodash/_nativeKeys.js":
49023/*!********************************************!*\
49024 !*** ./node_modules/lodash/_nativeKeys.js ***!
49025 \********************************************/
49026/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
49027
49028var overArg = __webpack_require__(/*! ./_overArg */ "./node_modules/lodash/_overArg.js");
49029
49030/* Built-in method references for those with the same name as other `lodash` methods. */
49031var nativeKeys = overArg(Object.keys, Object);
49032
49033module.exports = nativeKeys;
49034
49035
49036/***/ }),
49037
49038/***/ "./node_modules/lodash/_nativeKeysIn.js":
49039/*!**********************************************!*\
49040 !*** ./node_modules/lodash/_nativeKeysIn.js ***!
49041 \**********************************************/
49042/***/ ((module) => {
49043
49044/**
49045 * This function is like
49046 * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
49047 * except that it includes inherited enumerable properties.
49048 *
49049 * @private
49050 * @param {Object} object The object to query.
49051 * @returns {Array} Returns the array of property names.
49052 */
49053function nativeKeysIn(object) {
49054 var result = [];
49055 if (object != null) {
49056 for (var key in Object(object)) {
49057 result.push(key);
49058 }
49059 }
49060 return result;
49061}
49062
49063module.exports = nativeKeysIn;
49064
49065
49066/***/ }),
49067
49068/***/ "./node_modules/lodash/_nodeUtil.js":
49069/*!******************************************!*\
49070 !*** ./node_modules/lodash/_nodeUtil.js ***!
49071 \******************************************/
49072/***/ ((module, exports, __webpack_require__) => {
49073
49074/* module decorator */ module = __webpack_require__.nmd(module);
49075var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ "./node_modules/lodash/_freeGlobal.js");
49076
49077/** Detect free variable `exports`. */
49078var freeExports = true && exports && !exports.nodeType && exports;
49079
49080/** Detect free variable `module`. */
49081var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module;
49082
49083/** Detect the popular CommonJS extension `module.exports`. */
49084var moduleExports = freeModule && freeModule.exports === freeExports;
49085
49086/** Detect free variable `process` from Node.js. */
49087var freeProcess = moduleExports && freeGlobal.process;
49088
49089/** Used to access faster Node.js helpers. */
49090var nodeUtil = (function() {
49091 try {
49092 // Use `util.types` for Node.js 10+.
49093 var types = freeModule && freeModule.require && freeModule.require('util').types;
49094
49095 if (types) {
49096 return types;
49097 }
49098
49099 // Legacy `process.binding('util')` for Node.js < 10.
49100 return freeProcess && freeProcess.binding && freeProcess.binding('util');
49101 } catch (e) {}
49102}());
49103
49104module.exports = nodeUtil;
49105
49106
49107/***/ }),
49108
49109/***/ "./node_modules/lodash/_objectToString.js":
49110/*!************************************************!*\
49111 !*** ./node_modules/lodash/_objectToString.js ***!
49112 \************************************************/
49113/***/ ((module) => {
49114
49115/** Used for built-in method references. */
49116var objectProto = Object.prototype;
49117
49118/**
49119 * Used to resolve the
49120 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
49121 * of values.
49122 */
49123var nativeObjectToString = objectProto.toString;
49124
49125/**
49126 * Converts `value` to a string using `Object.prototype.toString`.
49127 *
49128 * @private
49129 * @param {*} value The value to convert.
49130 * @returns {string} Returns the converted string.
49131 */
49132function objectToString(value) {
49133 return nativeObjectToString.call(value);
49134}
49135
49136module.exports = objectToString;
49137
49138
49139/***/ }),
49140
49141/***/ "./node_modules/lodash/_overArg.js":
49142/*!*****************************************!*\
49143 !*** ./node_modules/lodash/_overArg.js ***!
49144 \*****************************************/
49145/***/ ((module) => {
49146
49147/**
49148 * Creates a unary function that invokes `func` with its argument transformed.
49149 *
49150 * @private
49151 * @param {Function} func The function to wrap.
49152 * @param {Function} transform The argument transform.
49153 * @returns {Function} Returns the new function.
49154 */
49155function overArg(func, transform) {
49156 return function(arg) {
49157 return func(transform(arg));
49158 };
49159}
49160
49161module.exports = overArg;
49162
49163
49164/***/ }),
49165
49166/***/ "./node_modules/lodash/_overRest.js":
49167/*!******************************************!*\
49168 !*** ./node_modules/lodash/_overRest.js ***!
49169 \******************************************/
49170/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
49171
49172var apply = __webpack_require__(/*! ./_apply */ "./node_modules/lodash/_apply.js");
49173
49174/* Built-in method references for those with the same name as other `lodash` methods. */
49175var nativeMax = Math.max;
49176
49177/**
49178 * A specialized version of `baseRest` which transforms the rest array.
49179 *
49180 * @private
49181 * @param {Function} func The function to apply a rest parameter to.
49182 * @param {number} [start=func.length-1] The start position of the rest parameter.
49183 * @param {Function} transform The rest array transform.
49184 * @returns {Function} Returns the new function.
49185 */
49186function overRest(func, start, transform) {
49187 start = nativeMax(start === undefined ? (func.length - 1) : start, 0);
49188 return function() {
49189 var args = arguments,
49190 index = -1,
49191 length = nativeMax(args.length - start, 0),
49192 array = Array(length);
49193
49194 while (++index < length) {
49195 array[index] = args[start + index];
49196 }
49197 index = -1;
49198 var otherArgs = Array(start + 1);
49199 while (++index < start) {
49200 otherArgs[index] = args[index];
49201 }
49202 otherArgs[start] = transform(array);
49203 return apply(func, this, otherArgs);
49204 };
49205}
49206
49207module.exports = overRest;
49208
49209
49210/***/ }),
49211
49212/***/ "./node_modules/lodash/_root.js":
49213/*!**************************************!*\
49214 !*** ./node_modules/lodash/_root.js ***!
49215 \**************************************/
49216/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
49217
49218var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ "./node_modules/lodash/_freeGlobal.js");
49219
49220/** Detect free variable `self`. */
49221var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
49222
49223/** Used as a reference to the global object. */
49224var root = freeGlobal || freeSelf || Function('return this')();
49225
49226module.exports = root;
49227
49228
49229/***/ }),
49230
49231/***/ "./node_modules/lodash/_safeGet.js":
49232/*!*****************************************!*\
49233 !*** ./node_modules/lodash/_safeGet.js ***!
49234 \*****************************************/
49235/***/ ((module) => {
49236
49237/**
49238 * Gets the value at `key`, unless `key` is "__proto__" or "constructor".
49239 *
49240 * @private
49241 * @param {Object} object The object to query.
49242 * @param {string} key The key of the property to get.
49243 * @returns {*} Returns the property value.
49244 */
49245function safeGet(object, key) {
49246 if (key === 'constructor' && typeof object[key] === 'function') {
49247 return;
49248 }
49249
49250 if (key == '__proto__') {
49251 return;
49252 }
49253
49254 return object[key];
49255}
49256
49257module.exports = safeGet;
49258
49259
49260/***/ }),
49261
49262/***/ "./node_modules/lodash/_setCacheAdd.js":
49263/*!*********************************************!*\
49264 !*** ./node_modules/lodash/_setCacheAdd.js ***!
49265 \*********************************************/
49266/***/ ((module) => {
49267
49268/** Used to stand-in for `undefined` hash values. */
49269var HASH_UNDEFINED = '__lodash_hash_undefined__';
49270
49271/**
49272 * Adds `value` to the array cache.
49273 *
49274 * @private
49275 * @name add
49276 * @memberOf SetCache
49277 * @alias push
49278 * @param {*} value The value to cache.
49279 * @returns {Object} Returns the cache instance.
49280 */
49281function setCacheAdd(value) {
49282 this.__data__.set(value, HASH_UNDEFINED);
49283 return this;
49284}
49285
49286module.exports = setCacheAdd;
49287
49288
49289/***/ }),
49290
49291/***/ "./node_modules/lodash/_setCacheHas.js":
49292/*!*********************************************!*\
49293 !*** ./node_modules/lodash/_setCacheHas.js ***!
49294 \*********************************************/
49295/***/ ((module) => {
49296
49297/**
49298 * Checks if `value` is in the array cache.
49299 *
49300 * @private
49301 * @name has
49302 * @memberOf SetCache
49303 * @param {*} value The value to search for.
49304 * @returns {number} Returns `true` if `value` is found, else `false`.
49305 */
49306function setCacheHas(value) {
49307 return this.__data__.has(value);
49308}
49309
49310module.exports = setCacheHas;
49311
49312
49313/***/ }),
49314
49315/***/ "./node_modules/lodash/_setToArray.js":
49316/*!********************************************!*\
49317 !*** ./node_modules/lodash/_setToArray.js ***!
49318 \********************************************/
49319/***/ ((module) => {
49320
49321/**
49322 * Converts `set` to an array of its values.
49323 *
49324 * @private
49325 * @param {Object} set The set to convert.
49326 * @returns {Array} Returns the values.
49327 */
49328function setToArray(set) {
49329 var index = -1,
49330 result = Array(set.size);
49331
49332 set.forEach(function(value) {
49333 result[++index] = value;
49334 });
49335 return result;
49336}
49337
49338module.exports = setToArray;
49339
49340
49341/***/ }),
49342
49343/***/ "./node_modules/lodash/_setToString.js":
49344/*!*********************************************!*\
49345 !*** ./node_modules/lodash/_setToString.js ***!
49346 \*********************************************/
49347/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
49348
49349var baseSetToString = __webpack_require__(/*! ./_baseSetToString */ "./node_modules/lodash/_baseSetToString.js"),
49350 shortOut = __webpack_require__(/*! ./_shortOut */ "./node_modules/lodash/_shortOut.js");
49351
49352/**
49353 * Sets the `toString` method of `func` to return `string`.
49354 *
49355 * @private
49356 * @param {Function} func The function to modify.
49357 * @param {Function} string The `toString` result.
49358 * @returns {Function} Returns `func`.
49359 */
49360var setToString = shortOut(baseSetToString);
49361
49362module.exports = setToString;
49363
49364
49365/***/ }),
49366
49367/***/ "./node_modules/lodash/_shortOut.js":
49368/*!******************************************!*\
49369 !*** ./node_modules/lodash/_shortOut.js ***!
49370 \******************************************/
49371/***/ ((module) => {
49372
49373/** Used to detect hot functions by number of calls within a span of milliseconds. */
49374var HOT_COUNT = 800,
49375 HOT_SPAN = 16;
49376
49377/* Built-in method references for those with the same name as other `lodash` methods. */
49378var nativeNow = Date.now;
49379
49380/**
49381 * Creates a function that'll short out and invoke `identity` instead
49382 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
49383 * milliseconds.
49384 *
49385 * @private
49386 * @param {Function} func The function to restrict.
49387 * @returns {Function} Returns the new shortable function.
49388 */
49389function shortOut(func) {
49390 var count = 0,
49391 lastCalled = 0;
49392
49393 return function() {
49394 var stamp = nativeNow(),
49395 remaining = HOT_SPAN - (stamp - lastCalled);
49396
49397 lastCalled = stamp;
49398 if (remaining > 0) {
49399 if (++count >= HOT_COUNT) {
49400 return arguments[0];
49401 }
49402 } else {
49403 count = 0;
49404 }
49405 return func.apply(undefined, arguments);
49406 };
49407}
49408
49409module.exports = shortOut;
49410
49411
49412/***/ }),
49413
49414/***/ "./node_modules/lodash/_stackClear.js":
49415/*!********************************************!*\
49416 !*** ./node_modules/lodash/_stackClear.js ***!
49417 \********************************************/
49418/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
49419
49420var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js");
49421
49422/**
49423 * Removes all key-value entries from the stack.
49424 *
49425 * @private
49426 * @name clear
49427 * @memberOf Stack
49428 */
49429function stackClear() {
49430 this.__data__ = new ListCache;
49431 this.size = 0;
49432}
49433
49434module.exports = stackClear;
49435
49436
49437/***/ }),
49438
49439/***/ "./node_modules/lodash/_stackDelete.js":
49440/*!*********************************************!*\
49441 !*** ./node_modules/lodash/_stackDelete.js ***!
49442 \*********************************************/
49443/***/ ((module) => {
49444
49445/**
49446 * Removes `key` and its value from the stack.
49447 *
49448 * @private
49449 * @name delete
49450 * @memberOf Stack
49451 * @param {string} key The key of the value to remove.
49452 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
49453 */
49454function stackDelete(key) {
49455 var data = this.__data__,
49456 result = data['delete'](key);
49457
49458 this.size = data.size;
49459 return result;
49460}
49461
49462module.exports = stackDelete;
49463
49464
49465/***/ }),
49466
49467/***/ "./node_modules/lodash/_stackGet.js":
49468/*!******************************************!*\
49469 !*** ./node_modules/lodash/_stackGet.js ***!
49470 \******************************************/
49471/***/ ((module) => {
49472
49473/**
49474 * Gets the stack value for `key`.
49475 *
49476 * @private
49477 * @name get
49478 * @memberOf Stack
49479 * @param {string} key The key of the value to get.
49480 * @returns {*} Returns the entry value.
49481 */
49482function stackGet(key) {
49483 return this.__data__.get(key);
49484}
49485
49486module.exports = stackGet;
49487
49488
49489/***/ }),
49490
49491/***/ "./node_modules/lodash/_stackHas.js":
49492/*!******************************************!*\
49493 !*** ./node_modules/lodash/_stackHas.js ***!
49494 \******************************************/
49495/***/ ((module) => {
49496
49497/**
49498 * Checks if a stack value for `key` exists.
49499 *
49500 * @private
49501 * @name has
49502 * @memberOf Stack
49503 * @param {string} key The key of the entry to check.
49504 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
49505 */
49506function stackHas(key) {
49507 return this.__data__.has(key);
49508}
49509
49510module.exports = stackHas;
49511
49512
49513/***/ }),
49514
49515/***/ "./node_modules/lodash/_stackSet.js":
49516/*!******************************************!*\
49517 !*** ./node_modules/lodash/_stackSet.js ***!
49518 \******************************************/
49519/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
49520
49521var ListCache = __webpack_require__(/*! ./_ListCache */ "./node_modules/lodash/_ListCache.js"),
49522 Map = __webpack_require__(/*! ./_Map */ "./node_modules/lodash/_Map.js"),
49523 MapCache = __webpack_require__(/*! ./_MapCache */ "./node_modules/lodash/_MapCache.js");
49524
49525/** Used as the size to enable large array optimizations. */
49526var LARGE_ARRAY_SIZE = 200;
49527
49528/**
49529 * Sets the stack `key` to `value`.
49530 *
49531 * @private
49532 * @name set
49533 * @memberOf Stack
49534 * @param {string} key The key of the value to set.
49535 * @param {*} value The value to set.
49536 * @returns {Object} Returns the stack cache instance.
49537 */
49538function stackSet(key, value) {
49539 var data = this.__data__;
49540 if (data instanceof ListCache) {
49541 var pairs = data.__data__;
49542 if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
49543 pairs.push([key, value]);
49544 this.size = ++data.size;
49545 return this;
49546 }
49547 data = this.__data__ = new MapCache(pairs);
49548 }
49549 data.set(key, value);
49550 this.size = data.size;
49551 return this;
49552}
49553
49554module.exports = stackSet;
49555
49556
49557/***/ }),
49558
49559/***/ "./node_modules/lodash/_strictIndexOf.js":
49560/*!***********************************************!*\
49561 !*** ./node_modules/lodash/_strictIndexOf.js ***!
49562 \***********************************************/
49563/***/ ((module) => {
49564
49565/**
49566 * A specialized version of `_.indexOf` which performs strict equality
49567 * comparisons of values, i.e. `===`.
49568 *
49569 * @private
49570 * @param {Array} array The array to inspect.
49571 * @param {*} value The value to search for.
49572 * @param {number} fromIndex The index to search from.
49573 * @returns {number} Returns the index of the matched value, else `-1`.
49574 */
49575function strictIndexOf(array, value, fromIndex) {
49576 var index = fromIndex - 1,
49577 length = array.length;
49578
49579 while (++index < length) {
49580 if (array[index] === value) {
49581 return index;
49582 }
49583 }
49584 return -1;
49585}
49586
49587module.exports = strictIndexOf;
49588
49589
49590/***/ }),
49591
49592/***/ "./node_modules/lodash/_stringSize.js":
49593/*!********************************************!*\
49594 !*** ./node_modules/lodash/_stringSize.js ***!
49595 \********************************************/
49596/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
49597
49598var asciiSize = __webpack_require__(/*! ./_asciiSize */ "./node_modules/lodash/_asciiSize.js"),
49599 hasUnicode = __webpack_require__(/*! ./_hasUnicode */ "./node_modules/lodash/_hasUnicode.js"),
49600 unicodeSize = __webpack_require__(/*! ./_unicodeSize */ "./node_modules/lodash/_unicodeSize.js");
49601
49602/**
49603 * Gets the number of symbols in `string`.
49604 *
49605 * @private
49606 * @param {string} string The string to inspect.
49607 * @returns {number} Returns the string size.
49608 */
49609function stringSize(string) {
49610 return hasUnicode(string)
49611 ? unicodeSize(string)
49612 : asciiSize(string);
49613}
49614
49615module.exports = stringSize;
49616
49617
49618/***/ }),
49619
49620/***/ "./node_modules/lodash/_stringToPath.js":
49621/*!**********************************************!*\
49622 !*** ./node_modules/lodash/_stringToPath.js ***!
49623 \**********************************************/
49624/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
49625
49626var memoizeCapped = __webpack_require__(/*! ./_memoizeCapped */ "./node_modules/lodash/_memoizeCapped.js");
49627
49628/** Used to match property names within property paths. */
49629var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
49630
49631/** Used to match backslashes in property paths. */
49632var reEscapeChar = /\\(\\)?/g;
49633
49634/**
49635 * Converts `string` to a property path array.
49636 *
49637 * @private
49638 * @param {string} string The string to convert.
49639 * @returns {Array} Returns the property path array.
49640 */
49641var stringToPath = memoizeCapped(function(string) {
49642 var result = [];
49643 if (string.charCodeAt(0) === 46 /* . */) {
49644 result.push('');
49645 }
49646 string.replace(rePropName, function(match, number, quote, subString) {
49647 result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));
49648 });
49649 return result;
49650});
49651
49652module.exports = stringToPath;
49653
49654
49655/***/ }),
49656
49657/***/ "./node_modules/lodash/_toKey.js":
49658/*!***************************************!*\
49659 !*** ./node_modules/lodash/_toKey.js ***!
49660 \***************************************/
49661/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
49662
49663var isSymbol = __webpack_require__(/*! ./isSymbol */ "./node_modules/lodash/isSymbol.js");
49664
49665/** Used as references for various `Number` constants. */
49666var INFINITY = 1 / 0;
49667
49668/**
49669 * Converts `value` to a string key if it's not a string or symbol.
49670 *
49671 * @private
49672 * @param {*} value The value to inspect.
49673 * @returns {string|symbol} Returns the key.
49674 */
49675function toKey(value) {
49676 if (typeof value == 'string' || isSymbol(value)) {
49677 return value;
49678 }
49679 var result = (value + '');
49680 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
49681}
49682
49683module.exports = toKey;
49684
49685
49686/***/ }),
49687
49688/***/ "./node_modules/lodash/_toSource.js":
49689/*!******************************************!*\
49690 !*** ./node_modules/lodash/_toSource.js ***!
49691 \******************************************/
49692/***/ ((module) => {
49693
49694/** Used for built-in method references. */
49695var funcProto = Function.prototype;
49696
49697/** Used to resolve the decompiled source of functions. */
49698var funcToString = funcProto.toString;
49699
49700/**
49701 * Converts `func` to its source code.
49702 *
49703 * @private
49704 * @param {Function} func The function to convert.
49705 * @returns {string} Returns the source code.
49706 */
49707function toSource(func) {
49708 if (func != null) {
49709 try {
49710 return funcToString.call(func);
49711 } catch (e) {}
49712 try {
49713 return (func + '');
49714 } catch (e) {}
49715 }
49716 return '';
49717}
49718
49719module.exports = toSource;
49720
49721
49722/***/ }),
49723
49724/***/ "./node_modules/lodash/_trimmedEndIndex.js":
49725/*!*************************************************!*\
49726 !*** ./node_modules/lodash/_trimmedEndIndex.js ***!
49727 \*************************************************/
49728/***/ ((module) => {
49729
49730/** Used to match a single whitespace character. */
49731var reWhitespace = /\s/;
49732
49733/**
49734 * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
49735 * character of `string`.
49736 *
49737 * @private
49738 * @param {string} string The string to inspect.
49739 * @returns {number} Returns the index of the last non-whitespace character.
49740 */
49741function trimmedEndIndex(string) {
49742 var index = string.length;
49743
49744 while (index-- && reWhitespace.test(string.charAt(index))) {}
49745 return index;
49746}
49747
49748module.exports = trimmedEndIndex;
49749
49750
49751/***/ }),
49752
49753/***/ "./node_modules/lodash/_unicodeSize.js":
49754/*!*********************************************!*\
49755 !*** ./node_modules/lodash/_unicodeSize.js ***!
49756 \*********************************************/
49757/***/ ((module) => {
49758
49759/** Used to compose unicode character classes. */
49760var rsAstralRange = '\\ud800-\\udfff',
49761 rsComboMarksRange = '\\u0300-\\u036f',
49762 reComboHalfMarksRange = '\\ufe20-\\ufe2f',
49763 rsComboSymbolsRange = '\\u20d0-\\u20ff',
49764 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
49765 rsVarRange = '\\ufe0e\\ufe0f';
49766
49767/** Used to compose unicode capture groups. */
49768var rsAstral = '[' + rsAstralRange + ']',
49769 rsCombo = '[' + rsComboRange + ']',
49770 rsFitz = '\\ud83c[\\udffb-\\udfff]',
49771 rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
49772 rsNonAstral = '[^' + rsAstralRange + ']',
49773 rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
49774 rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
49775 rsZWJ = '\\u200d';
49776
49777/** Used to compose unicode regexes. */
49778var reOptMod = rsModifier + '?',
49779 rsOptVar = '[' + rsVarRange + ']?',
49780 rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
49781 rsSeq = rsOptVar + reOptMod + rsOptJoin,
49782 rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
49783
49784/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
49785var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
49786
49787/**
49788 * Gets the size of a Unicode `string`.
49789 *
49790 * @private
49791 * @param {string} string The string inspect.
49792 * @returns {number} Returns the string size.
49793 */
49794function unicodeSize(string) {
49795 var result = reUnicode.lastIndex = 0;
49796 while (reUnicode.test(string)) {
49797 ++result;
49798 }
49799 return result;
49800}
49801
49802module.exports = unicodeSize;
49803
49804
49805/***/ }),
49806
49807/***/ "./node_modules/lodash/clone.js":
49808/*!**************************************!*\
49809 !*** ./node_modules/lodash/clone.js ***!
49810 \**************************************/
49811/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
49812
49813var baseClone = __webpack_require__(/*! ./_baseClone */ "./node_modules/lodash/_baseClone.js");
49814
49815/** Used to compose bitmasks for cloning. */
49816var CLONE_SYMBOLS_FLAG = 4;
49817
49818/**
49819 * Creates a shallow clone of `value`.
49820 *
49821 * **Note:** This method is loosely based on the
49822 * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)
49823 * and supports cloning arrays, array buffers, booleans, date objects, maps,
49824 * numbers, `Object` objects, regexes, sets, strings, symbols, and typed
49825 * arrays. The own enumerable properties of `arguments` objects are cloned
49826 * as plain objects. An empty object is returned for uncloneable values such
49827 * as error objects, functions, DOM nodes, and WeakMaps.
49828 *
49829 * @static
49830 * @memberOf _
49831 * @since 0.1.0
49832 * @category Lang
49833 * @param {*} value The value to clone.
49834 * @returns {*} Returns the cloned value.
49835 * @see _.cloneDeep
49836 * @example
49837 *
49838 * var objects = [{ 'a': 1 }, { 'b': 2 }];
49839 *
49840 * var shallow = _.clone(objects);
49841 * console.log(shallow[0] === objects[0]);
49842 * // => true
49843 */
49844function clone(value) {
49845 return baseClone(value, CLONE_SYMBOLS_FLAG);
49846}
49847
49848module.exports = clone;
49849
49850
49851/***/ }),
49852
49853/***/ "./node_modules/lodash/cloneDeep.js":
49854/*!******************************************!*\
49855 !*** ./node_modules/lodash/cloneDeep.js ***!
49856 \******************************************/
49857/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
49858
49859var baseClone = __webpack_require__(/*! ./_baseClone */ "./node_modules/lodash/_baseClone.js");
49860
49861/** Used to compose bitmasks for cloning. */
49862var CLONE_DEEP_FLAG = 1,
49863 CLONE_SYMBOLS_FLAG = 4;
49864
49865/**
49866 * This method is like `_.clone` except that it recursively clones `value`.
49867 *
49868 * @static
49869 * @memberOf _
49870 * @since 1.0.0
49871 * @category Lang
49872 * @param {*} value The value to recursively clone.
49873 * @returns {*} Returns the deep cloned value.
49874 * @see _.clone
49875 * @example
49876 *
49877 * var objects = [{ 'a': 1 }, { 'b': 2 }];
49878 *
49879 * var deep = _.cloneDeep(objects);
49880 * console.log(deep[0] === objects[0]);
49881 * // => false
49882 */
49883function cloneDeep(value) {
49884 return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
49885}
49886
49887module.exports = cloneDeep;
49888
49889
49890/***/ }),
49891
49892/***/ "./node_modules/lodash/constant.js":
49893/*!*****************************************!*\
49894 !*** ./node_modules/lodash/constant.js ***!
49895 \*****************************************/
49896/***/ ((module) => {
49897
49898/**
49899 * Creates a function that returns `value`.
49900 *
49901 * @static
49902 * @memberOf _
49903 * @since 2.4.0
49904 * @category Util
49905 * @param {*} value The value to return from the new function.
49906 * @returns {Function} Returns the new constant function.
49907 * @example
49908 *
49909 * var objects = _.times(2, _.constant({ 'a': 1 }));
49910 *
49911 * console.log(objects);
49912 * // => [{ 'a': 1 }, { 'a': 1 }]
49913 *
49914 * console.log(objects[0] === objects[1]);
49915 * // => true
49916 */
49917function constant(value) {
49918 return function() {
49919 return value;
49920 };
49921}
49922
49923module.exports = constant;
49924
49925
49926/***/ }),
49927
49928/***/ "./node_modules/lodash/defaults.js":
49929/*!*****************************************!*\
49930 !*** ./node_modules/lodash/defaults.js ***!
49931 \*****************************************/
49932/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
49933
49934var baseRest = __webpack_require__(/*! ./_baseRest */ "./node_modules/lodash/_baseRest.js"),
49935 eq = __webpack_require__(/*! ./eq */ "./node_modules/lodash/eq.js"),
49936 isIterateeCall = __webpack_require__(/*! ./_isIterateeCall */ "./node_modules/lodash/_isIterateeCall.js"),
49937 keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js");
49938
49939/** Used for built-in method references. */
49940var objectProto = Object.prototype;
49941
49942/** Used to check objects for own properties. */
49943var hasOwnProperty = objectProto.hasOwnProperty;
49944
49945/**
49946 * Assigns own and inherited enumerable string keyed properties of source
49947 * objects to the destination object for all destination properties that
49948 * resolve to `undefined`. Source objects are applied from left to right.
49949 * Once a property is set, additional values of the same property are ignored.
49950 *
49951 * **Note:** This method mutates `object`.
49952 *
49953 * @static
49954 * @since 0.1.0
49955 * @memberOf _
49956 * @category Object
49957 * @param {Object} object The destination object.
49958 * @param {...Object} [sources] The source objects.
49959 * @returns {Object} Returns `object`.
49960 * @see _.defaultsDeep
49961 * @example
49962 *
49963 * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
49964 * // => { 'a': 1, 'b': 2 }
49965 */
49966var defaults = baseRest(function(object, sources) {
49967 object = Object(object);
49968
49969 var index = -1;
49970 var length = sources.length;
49971 var guard = length > 2 ? sources[2] : undefined;
49972
49973 if (guard && isIterateeCall(sources[0], sources[1], guard)) {
49974 length = 1;
49975 }
49976
49977 while (++index < length) {
49978 var source = sources[index];
49979 var props = keysIn(source);
49980 var propsIndex = -1;
49981 var propsLength = props.length;
49982
49983 while (++propsIndex < propsLength) {
49984 var key = props[propsIndex];
49985 var value = object[key];
49986
49987 if (value === undefined ||
49988 (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {
49989 object[key] = source[key];
49990 }
49991 }
49992 }
49993
49994 return object;
49995});
49996
49997module.exports = defaults;
49998
49999
50000/***/ }),
50001
50002/***/ "./node_modules/lodash/each.js":
50003/*!*************************************!*\
50004 !*** ./node_modules/lodash/each.js ***!
50005 \*************************************/
50006/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
50007
50008module.exports = __webpack_require__(/*! ./forEach */ "./node_modules/lodash/forEach.js");
50009
50010
50011/***/ }),
50012
50013/***/ "./node_modules/lodash/eq.js":
50014/*!***********************************!*\
50015 !*** ./node_modules/lodash/eq.js ***!
50016 \***********************************/
50017/***/ ((module) => {
50018
50019/**
50020 * Performs a
50021 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
50022 * comparison between two values to determine if they are equivalent.
50023 *
50024 * @static
50025 * @memberOf _
50026 * @since 4.0.0
50027 * @category Lang
50028 * @param {*} value The value to compare.
50029 * @param {*} other The other value to compare.
50030 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
50031 * @example
50032 *
50033 * var object = { 'a': 1 };
50034 * var other = { 'a': 1 };
50035 *
50036 * _.eq(object, object);
50037 * // => true
50038 *
50039 * _.eq(object, other);
50040 * // => false
50041 *
50042 * _.eq('a', 'a');
50043 * // => true
50044 *
50045 * _.eq('a', Object('a'));
50046 * // => false
50047 *
50048 * _.eq(NaN, NaN);
50049 * // => true
50050 */
50051function eq(value, other) {
50052 return value === other || (value !== value && other !== other);
50053}
50054
50055module.exports = eq;
50056
50057
50058/***/ }),
50059
50060/***/ "./node_modules/lodash/filter.js":
50061/*!***************************************!*\
50062 !*** ./node_modules/lodash/filter.js ***!
50063 \***************************************/
50064/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
50065
50066var arrayFilter = __webpack_require__(/*! ./_arrayFilter */ "./node_modules/lodash/_arrayFilter.js"),
50067 baseFilter = __webpack_require__(/*! ./_baseFilter */ "./node_modules/lodash/_baseFilter.js"),
50068 baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js"),
50069 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");
50070
50071/**
50072 * Iterates over elements of `collection`, returning an array of all elements
50073 * `predicate` returns truthy for. The predicate is invoked with three
50074 * arguments: (value, index|key, collection).
50075 *
50076 * **Note:** Unlike `_.remove`, this method returns a new array.
50077 *
50078 * @static
50079 * @memberOf _
50080 * @since 0.1.0
50081 * @category Collection
50082 * @param {Array|Object} collection The collection to iterate over.
50083 * @param {Function} [predicate=_.identity] The function invoked per iteration.
50084 * @returns {Array} Returns the new filtered array.
50085 * @see _.reject
50086 * @example
50087 *
50088 * var users = [
50089 * { 'user': 'barney', 'age': 36, 'active': true },
50090 * { 'user': 'fred', 'age': 40, 'active': false }
50091 * ];
50092 *
50093 * _.filter(users, function(o) { return !o.active; });
50094 * // => objects for ['fred']
50095 *
50096 * // The `_.matches` iteratee shorthand.
50097 * _.filter(users, { 'age': 36, 'active': true });
50098 * // => objects for ['barney']
50099 *
50100 * // The `_.matchesProperty` iteratee shorthand.
50101 * _.filter(users, ['active', false]);
50102 * // => objects for ['fred']
50103 *
50104 * // The `_.property` iteratee shorthand.
50105 * _.filter(users, 'active');
50106 * // => objects for ['barney']
50107 *
50108 * // Combining several predicates using `_.overEvery` or `_.overSome`.
50109 * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));
50110 * // => objects for ['fred', 'barney']
50111 */
50112function filter(collection, predicate) {
50113 var func = isArray(collection) ? arrayFilter : baseFilter;
50114 return func(collection, baseIteratee(predicate, 3));
50115}
50116
50117module.exports = filter;
50118
50119
50120/***/ }),
50121
50122/***/ "./node_modules/lodash/find.js":
50123/*!*************************************!*\
50124 !*** ./node_modules/lodash/find.js ***!
50125 \*************************************/
50126/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
50127
50128var createFind = __webpack_require__(/*! ./_createFind */ "./node_modules/lodash/_createFind.js"),
50129 findIndex = __webpack_require__(/*! ./findIndex */ "./node_modules/lodash/findIndex.js");
50130
50131/**
50132 * Iterates over elements of `collection`, returning the first element
50133 * `predicate` returns truthy for. The predicate is invoked with three
50134 * arguments: (value, index|key, collection).
50135 *
50136 * @static
50137 * @memberOf _
50138 * @since 0.1.0
50139 * @category Collection
50140 * @param {Array|Object} collection The collection to inspect.
50141 * @param {Function} [predicate=_.identity] The function invoked per iteration.
50142 * @param {number} [fromIndex=0] The index to search from.
50143 * @returns {*} Returns the matched element, else `undefined`.
50144 * @example
50145 *
50146 * var users = [
50147 * { 'user': 'barney', 'age': 36, 'active': true },
50148 * { 'user': 'fred', 'age': 40, 'active': false },
50149 * { 'user': 'pebbles', 'age': 1, 'active': true }
50150 * ];
50151 *
50152 * _.find(users, function(o) { return o.age < 40; });
50153 * // => object for 'barney'
50154 *
50155 * // The `_.matches` iteratee shorthand.
50156 * _.find(users, { 'age': 1, 'active': true });
50157 * // => object for 'pebbles'
50158 *
50159 * // The `_.matchesProperty` iteratee shorthand.
50160 * _.find(users, ['active', false]);
50161 * // => object for 'fred'
50162 *
50163 * // The `_.property` iteratee shorthand.
50164 * _.find(users, 'active');
50165 * // => object for 'barney'
50166 */
50167var find = createFind(findIndex);
50168
50169module.exports = find;
50170
50171
50172/***/ }),
50173
50174/***/ "./node_modules/lodash/findIndex.js":
50175/*!******************************************!*\
50176 !*** ./node_modules/lodash/findIndex.js ***!
50177 \******************************************/
50178/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
50179
50180var baseFindIndex = __webpack_require__(/*! ./_baseFindIndex */ "./node_modules/lodash/_baseFindIndex.js"),
50181 baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js"),
50182 toInteger = __webpack_require__(/*! ./toInteger */ "./node_modules/lodash/toInteger.js");
50183
50184/* Built-in method references for those with the same name as other `lodash` methods. */
50185var nativeMax = Math.max;
50186
50187/**
50188 * This method is like `_.find` except that it returns the index of the first
50189 * element `predicate` returns truthy for instead of the element itself.
50190 *
50191 * @static
50192 * @memberOf _
50193 * @since 1.1.0
50194 * @category Array
50195 * @param {Array} array The array to inspect.
50196 * @param {Function} [predicate=_.identity] The function invoked per iteration.
50197 * @param {number} [fromIndex=0] The index to search from.
50198 * @returns {number} Returns the index of the found element, else `-1`.
50199 * @example
50200 *
50201 * var users = [
50202 * { 'user': 'barney', 'active': false },
50203 * { 'user': 'fred', 'active': false },
50204 * { 'user': 'pebbles', 'active': true }
50205 * ];
50206 *
50207 * _.findIndex(users, function(o) { return o.user == 'barney'; });
50208 * // => 0
50209 *
50210 * // The `_.matches` iteratee shorthand.
50211 * _.findIndex(users, { 'user': 'fred', 'active': false });
50212 * // => 1
50213 *
50214 * // The `_.matchesProperty` iteratee shorthand.
50215 * _.findIndex(users, ['active', false]);
50216 * // => 0
50217 *
50218 * // The `_.property` iteratee shorthand.
50219 * _.findIndex(users, 'active');
50220 * // => 2
50221 */
50222function findIndex(array, predicate, fromIndex) {
50223 var length = array == null ? 0 : array.length;
50224 if (!length) {
50225 return -1;
50226 }
50227 var index = fromIndex == null ? 0 : toInteger(fromIndex);
50228 if (index < 0) {
50229 index = nativeMax(length + index, 0);
50230 }
50231 return baseFindIndex(array, baseIteratee(predicate, 3), index);
50232}
50233
50234module.exports = findIndex;
50235
50236
50237/***/ }),
50238
50239/***/ "./node_modules/lodash/flatten.js":
50240/*!****************************************!*\
50241 !*** ./node_modules/lodash/flatten.js ***!
50242 \****************************************/
50243/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
50244
50245var baseFlatten = __webpack_require__(/*! ./_baseFlatten */ "./node_modules/lodash/_baseFlatten.js");
50246
50247/**
50248 * Flattens `array` a single level deep.
50249 *
50250 * @static
50251 * @memberOf _
50252 * @since 0.1.0
50253 * @category Array
50254 * @param {Array} array The array to flatten.
50255 * @returns {Array} Returns the new flattened array.
50256 * @example
50257 *
50258 * _.flatten([1, [2, [3, [4]], 5]]);
50259 * // => [1, 2, [3, [4]], 5]
50260 */
50261function flatten(array) {
50262 var length = array == null ? 0 : array.length;
50263 return length ? baseFlatten(array, 1) : [];
50264}
50265
50266module.exports = flatten;
50267
50268
50269/***/ }),
50270
50271/***/ "./node_modules/lodash/forEach.js":
50272/*!****************************************!*\
50273 !*** ./node_modules/lodash/forEach.js ***!
50274 \****************************************/
50275/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
50276
50277var arrayEach = __webpack_require__(/*! ./_arrayEach */ "./node_modules/lodash/_arrayEach.js"),
50278 baseEach = __webpack_require__(/*! ./_baseEach */ "./node_modules/lodash/_baseEach.js"),
50279 castFunction = __webpack_require__(/*! ./_castFunction */ "./node_modules/lodash/_castFunction.js"),
50280 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");
50281
50282/**
50283 * Iterates over elements of `collection` and invokes `iteratee` for each element.
50284 * The iteratee is invoked with three arguments: (value, index|key, collection).
50285 * Iteratee functions may exit iteration early by explicitly returning `false`.
50286 *
50287 * **Note:** As with other "Collections" methods, objects with a "length"
50288 * property are iterated like arrays. To avoid this behavior use `_.forIn`
50289 * or `_.forOwn` for object iteration.
50290 *
50291 * @static
50292 * @memberOf _
50293 * @since 0.1.0
50294 * @alias each
50295 * @category Collection
50296 * @param {Array|Object} collection The collection to iterate over.
50297 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
50298 * @returns {Array|Object} Returns `collection`.
50299 * @see _.forEachRight
50300 * @example
50301 *
50302 * _.forEach([1, 2], function(value) {
50303 * console.log(value);
50304 * });
50305 * // => Logs `1` then `2`.
50306 *
50307 * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
50308 * console.log(key);
50309 * });
50310 * // => Logs 'a' then 'b' (iteration order is not guaranteed).
50311 */
50312function forEach(collection, iteratee) {
50313 var func = isArray(collection) ? arrayEach : baseEach;
50314 return func(collection, castFunction(iteratee));
50315}
50316
50317module.exports = forEach;
50318
50319
50320/***/ }),
50321
50322/***/ "./node_modules/lodash/forIn.js":
50323/*!**************************************!*\
50324 !*** ./node_modules/lodash/forIn.js ***!
50325 \**************************************/
50326/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
50327
50328var baseFor = __webpack_require__(/*! ./_baseFor */ "./node_modules/lodash/_baseFor.js"),
50329 castFunction = __webpack_require__(/*! ./_castFunction */ "./node_modules/lodash/_castFunction.js"),
50330 keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js");
50331
50332/**
50333 * Iterates over own and inherited enumerable string keyed properties of an
50334 * object and invokes `iteratee` for each property. The iteratee is invoked
50335 * with three arguments: (value, key, object). Iteratee functions may exit
50336 * iteration early by explicitly returning `false`.
50337 *
50338 * @static
50339 * @memberOf _
50340 * @since 0.3.0
50341 * @category Object
50342 * @param {Object} object The object to iterate over.
50343 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
50344 * @returns {Object} Returns `object`.
50345 * @see _.forInRight
50346 * @example
50347 *
50348 * function Foo() {
50349 * this.a = 1;
50350 * this.b = 2;
50351 * }
50352 *
50353 * Foo.prototype.c = 3;
50354 *
50355 * _.forIn(new Foo, function(value, key) {
50356 * console.log(key);
50357 * });
50358 * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).
50359 */
50360function forIn(object, iteratee) {
50361 return object == null
50362 ? object
50363 : baseFor(object, castFunction(iteratee), keysIn);
50364}
50365
50366module.exports = forIn;
50367
50368
50369/***/ }),
50370
50371/***/ "./node_modules/lodash/get.js":
50372/*!************************************!*\
50373 !*** ./node_modules/lodash/get.js ***!
50374 \************************************/
50375/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
50376
50377var baseGet = __webpack_require__(/*! ./_baseGet */ "./node_modules/lodash/_baseGet.js");
50378
50379/**
50380 * Gets the value at `path` of `object`. If the resolved value is
50381 * `undefined`, the `defaultValue` is returned in its place.
50382 *
50383 * @static
50384 * @memberOf _
50385 * @since 3.7.0
50386 * @category Object
50387 * @param {Object} object The object to query.
50388 * @param {Array|string} path The path of the property to get.
50389 * @param {*} [defaultValue] The value returned for `undefined` resolved values.
50390 * @returns {*} Returns the resolved value.
50391 * @example
50392 *
50393 * var object = { 'a': [{ 'b': { 'c': 3 } }] };
50394 *
50395 * _.get(object, 'a[0].b.c');
50396 * // => 3
50397 *
50398 * _.get(object, ['a', '0', 'b', 'c']);
50399 * // => 3
50400 *
50401 * _.get(object, 'a.b.c', 'default');
50402 * // => 'default'
50403 */
50404function get(object, path, defaultValue) {
50405 var result = object == null ? undefined : baseGet(object, path);
50406 return result === undefined ? defaultValue : result;
50407}
50408
50409module.exports = get;
50410
50411
50412/***/ }),
50413
50414/***/ "./node_modules/lodash/has.js":
50415/*!************************************!*\
50416 !*** ./node_modules/lodash/has.js ***!
50417 \************************************/
50418/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
50419
50420var baseHas = __webpack_require__(/*! ./_baseHas */ "./node_modules/lodash/_baseHas.js"),
50421 hasPath = __webpack_require__(/*! ./_hasPath */ "./node_modules/lodash/_hasPath.js");
50422
50423/**
50424 * Checks if `path` is a direct property of `object`.
50425 *
50426 * @static
50427 * @since 0.1.0
50428 * @memberOf _
50429 * @category Object
50430 * @param {Object} object The object to query.
50431 * @param {Array|string} path The path to check.
50432 * @returns {boolean} Returns `true` if `path` exists, else `false`.
50433 * @example
50434 *
50435 * var object = { 'a': { 'b': 2 } };
50436 * var other = _.create({ 'a': _.create({ 'b': 2 }) });
50437 *
50438 * _.has(object, 'a');
50439 * // => true
50440 *
50441 * _.has(object, 'a.b');
50442 * // => true
50443 *
50444 * _.has(object, ['a', 'b']);
50445 * // => true
50446 *
50447 * _.has(other, 'a');
50448 * // => false
50449 */
50450function has(object, path) {
50451 return object != null && hasPath(object, path, baseHas);
50452}
50453
50454module.exports = has;
50455
50456
50457/***/ }),
50458
50459/***/ "./node_modules/lodash/hasIn.js":
50460/*!**************************************!*\
50461 !*** ./node_modules/lodash/hasIn.js ***!
50462 \**************************************/
50463/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
50464
50465var baseHasIn = __webpack_require__(/*! ./_baseHasIn */ "./node_modules/lodash/_baseHasIn.js"),
50466 hasPath = __webpack_require__(/*! ./_hasPath */ "./node_modules/lodash/_hasPath.js");
50467
50468/**
50469 * Checks if `path` is a direct or inherited property of `object`.
50470 *
50471 * @static
50472 * @memberOf _
50473 * @since 4.0.0
50474 * @category Object
50475 * @param {Object} object The object to query.
50476 * @param {Array|string} path The path to check.
50477 * @returns {boolean} Returns `true` if `path` exists, else `false`.
50478 * @example
50479 *
50480 * var object = _.create({ 'a': _.create({ 'b': 2 }) });
50481 *
50482 * _.hasIn(object, 'a');
50483 * // => true
50484 *
50485 * _.hasIn(object, 'a.b');
50486 * // => true
50487 *
50488 * _.hasIn(object, ['a', 'b']);
50489 * // => true
50490 *
50491 * _.hasIn(object, 'b');
50492 * // => false
50493 */
50494function hasIn(object, path) {
50495 return object != null && hasPath(object, path, baseHasIn);
50496}
50497
50498module.exports = hasIn;
50499
50500
50501/***/ }),
50502
50503/***/ "./node_modules/lodash/identity.js":
50504/*!*****************************************!*\
50505 !*** ./node_modules/lodash/identity.js ***!
50506 \*****************************************/
50507/***/ ((module) => {
50508
50509/**
50510 * This method returns the first argument it receives.
50511 *
50512 * @static
50513 * @since 0.1.0
50514 * @memberOf _
50515 * @category Util
50516 * @param {*} value Any value.
50517 * @returns {*} Returns `value`.
50518 * @example
50519 *
50520 * var object = { 'a': 1 };
50521 *
50522 * console.log(_.identity(object) === object);
50523 * // => true
50524 */
50525function identity(value) {
50526 return value;
50527}
50528
50529module.exports = identity;
50530
50531
50532/***/ }),
50533
50534/***/ "./node_modules/lodash/isArguments.js":
50535/*!********************************************!*\
50536 !*** ./node_modules/lodash/isArguments.js ***!
50537 \********************************************/
50538/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
50539
50540var baseIsArguments = __webpack_require__(/*! ./_baseIsArguments */ "./node_modules/lodash/_baseIsArguments.js"),
50541 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
50542
50543/** Used for built-in method references. */
50544var objectProto = Object.prototype;
50545
50546/** Used to check objects for own properties. */
50547var hasOwnProperty = objectProto.hasOwnProperty;
50548
50549/** Built-in value references. */
50550var propertyIsEnumerable = objectProto.propertyIsEnumerable;
50551
50552/**
50553 * Checks if `value` is likely an `arguments` object.
50554 *
50555 * @static
50556 * @memberOf _
50557 * @since 0.1.0
50558 * @category Lang
50559 * @param {*} value The value to check.
50560 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
50561 * else `false`.
50562 * @example
50563 *
50564 * _.isArguments(function() { return arguments; }());
50565 * // => true
50566 *
50567 * _.isArguments([1, 2, 3]);
50568 * // => false
50569 */
50570var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
50571 return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
50572 !propertyIsEnumerable.call(value, 'callee');
50573};
50574
50575module.exports = isArguments;
50576
50577
50578/***/ }),
50579
50580/***/ "./node_modules/lodash/isArray.js":
50581/*!****************************************!*\
50582 !*** ./node_modules/lodash/isArray.js ***!
50583 \****************************************/
50584/***/ ((module) => {
50585
50586/**
50587 * Checks if `value` is classified as an `Array` object.
50588 *
50589 * @static
50590 * @memberOf _
50591 * @since 0.1.0
50592 * @category Lang
50593 * @param {*} value The value to check.
50594 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
50595 * @example
50596 *
50597 * _.isArray([1, 2, 3]);
50598 * // => true
50599 *
50600 * _.isArray(document.body.children);
50601 * // => false
50602 *
50603 * _.isArray('abc');
50604 * // => false
50605 *
50606 * _.isArray(_.noop);
50607 * // => false
50608 */
50609var isArray = Array.isArray;
50610
50611module.exports = isArray;
50612
50613
50614/***/ }),
50615
50616/***/ "./node_modules/lodash/isArrayLike.js":
50617/*!********************************************!*\
50618 !*** ./node_modules/lodash/isArrayLike.js ***!
50619 \********************************************/
50620/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
50621
50622var isFunction = __webpack_require__(/*! ./isFunction */ "./node_modules/lodash/isFunction.js"),
50623 isLength = __webpack_require__(/*! ./isLength */ "./node_modules/lodash/isLength.js");
50624
50625/**
50626 * Checks if `value` is array-like. A value is considered array-like if it's
50627 * not a function and has a `value.length` that's an integer greater than or
50628 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
50629 *
50630 * @static
50631 * @memberOf _
50632 * @since 4.0.0
50633 * @category Lang
50634 * @param {*} value The value to check.
50635 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
50636 * @example
50637 *
50638 * _.isArrayLike([1, 2, 3]);
50639 * // => true
50640 *
50641 * _.isArrayLike(document.body.children);
50642 * // => true
50643 *
50644 * _.isArrayLike('abc');
50645 * // => true
50646 *
50647 * _.isArrayLike(_.noop);
50648 * // => false
50649 */
50650function isArrayLike(value) {
50651 return value != null && isLength(value.length) && !isFunction(value);
50652}
50653
50654module.exports = isArrayLike;
50655
50656
50657/***/ }),
50658
50659/***/ "./node_modules/lodash/isArrayLikeObject.js":
50660/*!**************************************************!*\
50661 !*** ./node_modules/lodash/isArrayLikeObject.js ***!
50662 \**************************************************/
50663/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
50664
50665var isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js"),
50666 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
50667
50668/**
50669 * This method is like `_.isArrayLike` except that it also checks if `value`
50670 * is an object.
50671 *
50672 * @static
50673 * @memberOf _
50674 * @since 4.0.0
50675 * @category Lang
50676 * @param {*} value The value to check.
50677 * @returns {boolean} Returns `true` if `value` is an array-like object,
50678 * else `false`.
50679 * @example
50680 *
50681 * _.isArrayLikeObject([1, 2, 3]);
50682 * // => true
50683 *
50684 * _.isArrayLikeObject(document.body.children);
50685 * // => true
50686 *
50687 * _.isArrayLikeObject('abc');
50688 * // => false
50689 *
50690 * _.isArrayLikeObject(_.noop);
50691 * // => false
50692 */
50693function isArrayLikeObject(value) {
50694 return isObjectLike(value) && isArrayLike(value);
50695}
50696
50697module.exports = isArrayLikeObject;
50698
50699
50700/***/ }),
50701
50702/***/ "./node_modules/lodash/isBuffer.js":
50703/*!*****************************************!*\
50704 !*** ./node_modules/lodash/isBuffer.js ***!
50705 \*****************************************/
50706/***/ ((module, exports, __webpack_require__) => {
50707
50708/* module decorator */ module = __webpack_require__.nmd(module);
50709var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js"),
50710 stubFalse = __webpack_require__(/*! ./stubFalse */ "./node_modules/lodash/stubFalse.js");
50711
50712/** Detect free variable `exports`. */
50713var freeExports = true && exports && !exports.nodeType && exports;
50714
50715/** Detect free variable `module`. */
50716var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module;
50717
50718/** Detect the popular CommonJS extension `module.exports`. */
50719var moduleExports = freeModule && freeModule.exports === freeExports;
50720
50721/** Built-in value references. */
50722var Buffer = moduleExports ? root.Buffer : undefined;
50723
50724/* Built-in method references for those with the same name as other `lodash` methods. */
50725var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;
50726
50727/**
50728 * Checks if `value` is a buffer.
50729 *
50730 * @static
50731 * @memberOf _
50732 * @since 4.3.0
50733 * @category Lang
50734 * @param {*} value The value to check.
50735 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
50736 * @example
50737 *
50738 * _.isBuffer(new Buffer(2));
50739 * // => true
50740 *
50741 * _.isBuffer(new Uint8Array(2));
50742 * // => false
50743 */
50744var isBuffer = nativeIsBuffer || stubFalse;
50745
50746module.exports = isBuffer;
50747
50748
50749/***/ }),
50750
50751/***/ "./node_modules/lodash/isEmpty.js":
50752/*!****************************************!*\
50753 !*** ./node_modules/lodash/isEmpty.js ***!
50754 \****************************************/
50755/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
50756
50757var baseKeys = __webpack_require__(/*! ./_baseKeys */ "./node_modules/lodash/_baseKeys.js"),
50758 getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
50759 isArguments = __webpack_require__(/*! ./isArguments */ "./node_modules/lodash/isArguments.js"),
50760 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
50761 isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js"),
50762 isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
50763 isPrototype = __webpack_require__(/*! ./_isPrototype */ "./node_modules/lodash/_isPrototype.js"),
50764 isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/lodash/isTypedArray.js");
50765
50766/** `Object#toString` result references. */
50767var mapTag = '[object Map]',
50768 setTag = '[object Set]';
50769
50770/** Used for built-in method references. */
50771var objectProto = Object.prototype;
50772
50773/** Used to check objects for own properties. */
50774var hasOwnProperty = objectProto.hasOwnProperty;
50775
50776/**
50777 * Checks if `value` is an empty object, collection, map, or set.
50778 *
50779 * Objects are considered empty if they have no own enumerable string keyed
50780 * properties.
50781 *
50782 * Array-like values such as `arguments` objects, arrays, buffers, strings, or
50783 * jQuery-like collections are considered empty if they have a `length` of `0`.
50784 * Similarly, maps and sets are considered empty if they have a `size` of `0`.
50785 *
50786 * @static
50787 * @memberOf _
50788 * @since 0.1.0
50789 * @category Lang
50790 * @param {*} value The value to check.
50791 * @returns {boolean} Returns `true` if `value` is empty, else `false`.
50792 * @example
50793 *
50794 * _.isEmpty(null);
50795 * // => true
50796 *
50797 * _.isEmpty(true);
50798 * // => true
50799 *
50800 * _.isEmpty(1);
50801 * // => true
50802 *
50803 * _.isEmpty([1, 2, 3]);
50804 * // => false
50805 *
50806 * _.isEmpty({ 'a': 1 });
50807 * // => false
50808 */
50809function isEmpty(value) {
50810 if (value == null) {
50811 return true;
50812 }
50813 if (isArrayLike(value) &&
50814 (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||
50815 isBuffer(value) || isTypedArray(value) || isArguments(value))) {
50816 return !value.length;
50817 }
50818 var tag = getTag(value);
50819 if (tag == mapTag || tag == setTag) {
50820 return !value.size;
50821 }
50822 if (isPrototype(value)) {
50823 return !baseKeys(value).length;
50824 }
50825 for (var key in value) {
50826 if (hasOwnProperty.call(value, key)) {
50827 return false;
50828 }
50829 }
50830 return true;
50831}
50832
50833module.exports = isEmpty;
50834
50835
50836/***/ }),
50837
50838/***/ "./node_modules/lodash/isFunction.js":
50839/*!*******************************************!*\
50840 !*** ./node_modules/lodash/isFunction.js ***!
50841 \*******************************************/
50842/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
50843
50844var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
50845 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js");
50846
50847/** `Object#toString` result references. */
50848var asyncTag = '[object AsyncFunction]',
50849 funcTag = '[object Function]',
50850 genTag = '[object GeneratorFunction]',
50851 proxyTag = '[object Proxy]';
50852
50853/**
50854 * Checks if `value` is classified as a `Function` object.
50855 *
50856 * @static
50857 * @memberOf _
50858 * @since 0.1.0
50859 * @category Lang
50860 * @param {*} value The value to check.
50861 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
50862 * @example
50863 *
50864 * _.isFunction(_);
50865 * // => true
50866 *
50867 * _.isFunction(/abc/);
50868 * // => false
50869 */
50870function isFunction(value) {
50871 if (!isObject(value)) {
50872 return false;
50873 }
50874 // The use of `Object#toString` avoids issues with the `typeof` operator
50875 // in Safari 9 which returns 'object' for typed arrays and other constructors.
50876 var tag = baseGetTag(value);
50877 return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
50878}
50879
50880module.exports = isFunction;
50881
50882
50883/***/ }),
50884
50885/***/ "./node_modules/lodash/isLength.js":
50886/*!*****************************************!*\
50887 !*** ./node_modules/lodash/isLength.js ***!
50888 \*****************************************/
50889/***/ ((module) => {
50890
50891/** Used as references for various `Number` constants. */
50892var MAX_SAFE_INTEGER = 9007199254740991;
50893
50894/**
50895 * Checks if `value` is a valid array-like length.
50896 *
50897 * **Note:** This method is loosely based on
50898 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
50899 *
50900 * @static
50901 * @memberOf _
50902 * @since 4.0.0
50903 * @category Lang
50904 * @param {*} value The value to check.
50905 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
50906 * @example
50907 *
50908 * _.isLength(3);
50909 * // => true
50910 *
50911 * _.isLength(Number.MIN_VALUE);
50912 * // => false
50913 *
50914 * _.isLength(Infinity);
50915 * // => false
50916 *
50917 * _.isLength('3');
50918 * // => false
50919 */
50920function isLength(value) {
50921 return typeof value == 'number' &&
50922 value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
50923}
50924
50925module.exports = isLength;
50926
50927
50928/***/ }),
50929
50930/***/ "./node_modules/lodash/isMap.js":
50931/*!**************************************!*\
50932 !*** ./node_modules/lodash/isMap.js ***!
50933 \**************************************/
50934/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
50935
50936var baseIsMap = __webpack_require__(/*! ./_baseIsMap */ "./node_modules/lodash/_baseIsMap.js"),
50937 baseUnary = __webpack_require__(/*! ./_baseUnary */ "./node_modules/lodash/_baseUnary.js"),
50938 nodeUtil = __webpack_require__(/*! ./_nodeUtil */ "./node_modules/lodash/_nodeUtil.js");
50939
50940/* Node.js helper references. */
50941var nodeIsMap = nodeUtil && nodeUtil.isMap;
50942
50943/**
50944 * Checks if `value` is classified as a `Map` object.
50945 *
50946 * @static
50947 * @memberOf _
50948 * @since 4.3.0
50949 * @category Lang
50950 * @param {*} value The value to check.
50951 * @returns {boolean} Returns `true` if `value` is a map, else `false`.
50952 * @example
50953 *
50954 * _.isMap(new Map);
50955 * // => true
50956 *
50957 * _.isMap(new WeakMap);
50958 * // => false
50959 */
50960var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
50961
50962module.exports = isMap;
50963
50964
50965/***/ }),
50966
50967/***/ "./node_modules/lodash/isObject.js":
50968/*!*****************************************!*\
50969 !*** ./node_modules/lodash/isObject.js ***!
50970 \*****************************************/
50971/***/ ((module) => {
50972
50973/**
50974 * Checks if `value` is the
50975 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
50976 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
50977 *
50978 * @static
50979 * @memberOf _
50980 * @since 0.1.0
50981 * @category Lang
50982 * @param {*} value The value to check.
50983 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
50984 * @example
50985 *
50986 * _.isObject({});
50987 * // => true
50988 *
50989 * _.isObject([1, 2, 3]);
50990 * // => true
50991 *
50992 * _.isObject(_.noop);
50993 * // => true
50994 *
50995 * _.isObject(null);
50996 * // => false
50997 */
50998function isObject(value) {
50999 var type = typeof value;
51000 return value != null && (type == 'object' || type == 'function');
51001}
51002
51003module.exports = isObject;
51004
51005
51006/***/ }),
51007
51008/***/ "./node_modules/lodash/isObjectLike.js":
51009/*!*********************************************!*\
51010 !*** ./node_modules/lodash/isObjectLike.js ***!
51011 \*********************************************/
51012/***/ ((module) => {
51013
51014/**
51015 * Checks if `value` is object-like. A value is object-like if it's not `null`
51016 * and has a `typeof` result of "object".
51017 *
51018 * @static
51019 * @memberOf _
51020 * @since 4.0.0
51021 * @category Lang
51022 * @param {*} value The value to check.
51023 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
51024 * @example
51025 *
51026 * _.isObjectLike({});
51027 * // => true
51028 *
51029 * _.isObjectLike([1, 2, 3]);
51030 * // => true
51031 *
51032 * _.isObjectLike(_.noop);
51033 * // => false
51034 *
51035 * _.isObjectLike(null);
51036 * // => false
51037 */
51038function isObjectLike(value) {
51039 return value != null && typeof value == 'object';
51040}
51041
51042module.exports = isObjectLike;
51043
51044
51045/***/ }),
51046
51047/***/ "./node_modules/lodash/isPlainObject.js":
51048/*!**********************************************!*\
51049 !*** ./node_modules/lodash/isPlainObject.js ***!
51050 \**********************************************/
51051/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51052
51053var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
51054 getPrototype = __webpack_require__(/*! ./_getPrototype */ "./node_modules/lodash/_getPrototype.js"),
51055 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
51056
51057/** `Object#toString` result references. */
51058var objectTag = '[object Object]';
51059
51060/** Used for built-in method references. */
51061var funcProto = Function.prototype,
51062 objectProto = Object.prototype;
51063
51064/** Used to resolve the decompiled source of functions. */
51065var funcToString = funcProto.toString;
51066
51067/** Used to check objects for own properties. */
51068var hasOwnProperty = objectProto.hasOwnProperty;
51069
51070/** Used to infer the `Object` constructor. */
51071var objectCtorString = funcToString.call(Object);
51072
51073/**
51074 * Checks if `value` is a plain object, that is, an object created by the
51075 * `Object` constructor or one with a `[[Prototype]]` of `null`.
51076 *
51077 * @static
51078 * @memberOf _
51079 * @since 0.8.0
51080 * @category Lang
51081 * @param {*} value The value to check.
51082 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
51083 * @example
51084 *
51085 * function Foo() {
51086 * this.a = 1;
51087 * }
51088 *
51089 * _.isPlainObject(new Foo);
51090 * // => false
51091 *
51092 * _.isPlainObject([1, 2, 3]);
51093 * // => false
51094 *
51095 * _.isPlainObject({ 'x': 0, 'y': 0 });
51096 * // => true
51097 *
51098 * _.isPlainObject(Object.create(null));
51099 * // => true
51100 */
51101function isPlainObject(value) {
51102 if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
51103 return false;
51104 }
51105 var proto = getPrototype(value);
51106 if (proto === null) {
51107 return true;
51108 }
51109 var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
51110 return typeof Ctor == 'function' && Ctor instanceof Ctor &&
51111 funcToString.call(Ctor) == objectCtorString;
51112}
51113
51114module.exports = isPlainObject;
51115
51116
51117/***/ }),
51118
51119/***/ "./node_modules/lodash/isSet.js":
51120/*!**************************************!*\
51121 !*** ./node_modules/lodash/isSet.js ***!
51122 \**************************************/
51123/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51124
51125var baseIsSet = __webpack_require__(/*! ./_baseIsSet */ "./node_modules/lodash/_baseIsSet.js"),
51126 baseUnary = __webpack_require__(/*! ./_baseUnary */ "./node_modules/lodash/_baseUnary.js"),
51127 nodeUtil = __webpack_require__(/*! ./_nodeUtil */ "./node_modules/lodash/_nodeUtil.js");
51128
51129/* Node.js helper references. */
51130var nodeIsSet = nodeUtil && nodeUtil.isSet;
51131
51132/**
51133 * Checks if `value` is classified as a `Set` object.
51134 *
51135 * @static
51136 * @memberOf _
51137 * @since 4.3.0
51138 * @category Lang
51139 * @param {*} value The value to check.
51140 * @returns {boolean} Returns `true` if `value` is a set, else `false`.
51141 * @example
51142 *
51143 * _.isSet(new Set);
51144 * // => true
51145 *
51146 * _.isSet(new WeakSet);
51147 * // => false
51148 */
51149var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
51150
51151module.exports = isSet;
51152
51153
51154/***/ }),
51155
51156/***/ "./node_modules/lodash/isString.js":
51157/*!*****************************************!*\
51158 !*** ./node_modules/lodash/isString.js ***!
51159 \*****************************************/
51160/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51161
51162var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
51163 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
51164 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
51165
51166/** `Object#toString` result references. */
51167var stringTag = '[object String]';
51168
51169/**
51170 * Checks if `value` is classified as a `String` primitive or object.
51171 *
51172 * @static
51173 * @since 0.1.0
51174 * @memberOf _
51175 * @category Lang
51176 * @param {*} value The value to check.
51177 * @returns {boolean} Returns `true` if `value` is a string, else `false`.
51178 * @example
51179 *
51180 * _.isString('abc');
51181 * // => true
51182 *
51183 * _.isString(1);
51184 * // => false
51185 */
51186function isString(value) {
51187 return typeof value == 'string' ||
51188 (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
51189}
51190
51191module.exports = isString;
51192
51193
51194/***/ }),
51195
51196/***/ "./node_modules/lodash/isSymbol.js":
51197/*!*****************************************!*\
51198 !*** ./node_modules/lodash/isSymbol.js ***!
51199 \*****************************************/
51200/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51201
51202var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ "./node_modules/lodash/_baseGetTag.js"),
51203 isObjectLike = __webpack_require__(/*! ./isObjectLike */ "./node_modules/lodash/isObjectLike.js");
51204
51205/** `Object#toString` result references. */
51206var symbolTag = '[object Symbol]';
51207
51208/**
51209 * Checks if `value` is classified as a `Symbol` primitive or object.
51210 *
51211 * @static
51212 * @memberOf _
51213 * @since 4.0.0
51214 * @category Lang
51215 * @param {*} value The value to check.
51216 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
51217 * @example
51218 *
51219 * _.isSymbol(Symbol.iterator);
51220 * // => true
51221 *
51222 * _.isSymbol('abc');
51223 * // => false
51224 */
51225function isSymbol(value) {
51226 return typeof value == 'symbol' ||
51227 (isObjectLike(value) && baseGetTag(value) == symbolTag);
51228}
51229
51230module.exports = isSymbol;
51231
51232
51233/***/ }),
51234
51235/***/ "./node_modules/lodash/isTypedArray.js":
51236/*!*********************************************!*\
51237 !*** ./node_modules/lodash/isTypedArray.js ***!
51238 \*********************************************/
51239/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51240
51241var baseIsTypedArray = __webpack_require__(/*! ./_baseIsTypedArray */ "./node_modules/lodash/_baseIsTypedArray.js"),
51242 baseUnary = __webpack_require__(/*! ./_baseUnary */ "./node_modules/lodash/_baseUnary.js"),
51243 nodeUtil = __webpack_require__(/*! ./_nodeUtil */ "./node_modules/lodash/_nodeUtil.js");
51244
51245/* Node.js helper references. */
51246var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
51247
51248/**
51249 * Checks if `value` is classified as a typed array.
51250 *
51251 * @static
51252 * @memberOf _
51253 * @since 3.0.0
51254 * @category Lang
51255 * @param {*} value The value to check.
51256 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
51257 * @example
51258 *
51259 * _.isTypedArray(new Uint8Array);
51260 * // => true
51261 *
51262 * _.isTypedArray([]);
51263 * // => false
51264 */
51265var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
51266
51267module.exports = isTypedArray;
51268
51269
51270/***/ }),
51271
51272/***/ "./node_modules/lodash/isUndefined.js":
51273/*!********************************************!*\
51274 !*** ./node_modules/lodash/isUndefined.js ***!
51275 \********************************************/
51276/***/ ((module) => {
51277
51278/**
51279 * Checks if `value` is `undefined`.
51280 *
51281 * @static
51282 * @since 0.1.0
51283 * @memberOf _
51284 * @category Lang
51285 * @param {*} value The value to check.
51286 * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
51287 * @example
51288 *
51289 * _.isUndefined(void 0);
51290 * // => true
51291 *
51292 * _.isUndefined(null);
51293 * // => false
51294 */
51295function isUndefined(value) {
51296 return value === undefined;
51297}
51298
51299module.exports = isUndefined;
51300
51301
51302/***/ }),
51303
51304/***/ "./node_modules/lodash/keys.js":
51305/*!*************************************!*\
51306 !*** ./node_modules/lodash/keys.js ***!
51307 \*************************************/
51308/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51309
51310var arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ "./node_modules/lodash/_arrayLikeKeys.js"),
51311 baseKeys = __webpack_require__(/*! ./_baseKeys */ "./node_modules/lodash/_baseKeys.js"),
51312 isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js");
51313
51314/**
51315 * Creates an array of the own enumerable property names of `object`.
51316 *
51317 * **Note:** Non-object values are coerced to objects. See the
51318 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
51319 * for more details.
51320 *
51321 * @static
51322 * @since 0.1.0
51323 * @memberOf _
51324 * @category Object
51325 * @param {Object} object The object to query.
51326 * @returns {Array} Returns the array of property names.
51327 * @example
51328 *
51329 * function Foo() {
51330 * this.a = 1;
51331 * this.b = 2;
51332 * }
51333 *
51334 * Foo.prototype.c = 3;
51335 *
51336 * _.keys(new Foo);
51337 * // => ['a', 'b'] (iteration order is not guaranteed)
51338 *
51339 * _.keys('hi');
51340 * // => ['0', '1']
51341 */
51342function keys(object) {
51343 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
51344}
51345
51346module.exports = keys;
51347
51348
51349/***/ }),
51350
51351/***/ "./node_modules/lodash/keysIn.js":
51352/*!***************************************!*\
51353 !*** ./node_modules/lodash/keysIn.js ***!
51354 \***************************************/
51355/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51356
51357var arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ "./node_modules/lodash/_arrayLikeKeys.js"),
51358 baseKeysIn = __webpack_require__(/*! ./_baseKeysIn */ "./node_modules/lodash/_baseKeysIn.js"),
51359 isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js");
51360
51361/**
51362 * Creates an array of the own and inherited enumerable property names of `object`.
51363 *
51364 * **Note:** Non-object values are coerced to objects.
51365 *
51366 * @static
51367 * @memberOf _
51368 * @since 3.0.0
51369 * @category Object
51370 * @param {Object} object The object to query.
51371 * @returns {Array} Returns the array of property names.
51372 * @example
51373 *
51374 * function Foo() {
51375 * this.a = 1;
51376 * this.b = 2;
51377 * }
51378 *
51379 * Foo.prototype.c = 3;
51380 *
51381 * _.keysIn(new Foo);
51382 * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
51383 */
51384function keysIn(object) {
51385 return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
51386}
51387
51388module.exports = keysIn;
51389
51390
51391/***/ }),
51392
51393/***/ "./node_modules/lodash/last.js":
51394/*!*************************************!*\
51395 !*** ./node_modules/lodash/last.js ***!
51396 \*************************************/
51397/***/ ((module) => {
51398
51399/**
51400 * Gets the last element of `array`.
51401 *
51402 * @static
51403 * @memberOf _
51404 * @since 0.1.0
51405 * @category Array
51406 * @param {Array} array The array to query.
51407 * @returns {*} Returns the last element of `array`.
51408 * @example
51409 *
51410 * _.last([1, 2, 3]);
51411 * // => 3
51412 */
51413function last(array) {
51414 var length = array == null ? 0 : array.length;
51415 return length ? array[length - 1] : undefined;
51416}
51417
51418module.exports = last;
51419
51420
51421/***/ }),
51422
51423/***/ "./node_modules/lodash/map.js":
51424/*!************************************!*\
51425 !*** ./node_modules/lodash/map.js ***!
51426 \************************************/
51427/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51428
51429var arrayMap = __webpack_require__(/*! ./_arrayMap */ "./node_modules/lodash/_arrayMap.js"),
51430 baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js"),
51431 baseMap = __webpack_require__(/*! ./_baseMap */ "./node_modules/lodash/_baseMap.js"),
51432 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");
51433
51434/**
51435 * Creates an array of values by running each element in `collection` thru
51436 * `iteratee`. The iteratee is invoked with three arguments:
51437 * (value, index|key, collection).
51438 *
51439 * Many lodash methods are guarded to work as iteratees for methods like
51440 * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
51441 *
51442 * The guarded methods are:
51443 * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,
51444 * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,
51445 * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,
51446 * `template`, `trim`, `trimEnd`, `trimStart`, and `words`
51447 *
51448 * @static
51449 * @memberOf _
51450 * @since 0.1.0
51451 * @category Collection
51452 * @param {Array|Object} collection The collection to iterate over.
51453 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
51454 * @returns {Array} Returns the new mapped array.
51455 * @example
51456 *
51457 * function square(n) {
51458 * return n * n;
51459 * }
51460 *
51461 * _.map([4, 8], square);
51462 * // => [16, 64]
51463 *
51464 * _.map({ 'a': 4, 'b': 8 }, square);
51465 * // => [16, 64] (iteration order is not guaranteed)
51466 *
51467 * var users = [
51468 * { 'user': 'barney' },
51469 * { 'user': 'fred' }
51470 * ];
51471 *
51472 * // The `_.property` iteratee shorthand.
51473 * _.map(users, 'user');
51474 * // => ['barney', 'fred']
51475 */
51476function map(collection, iteratee) {
51477 var func = isArray(collection) ? arrayMap : baseMap;
51478 return func(collection, baseIteratee(iteratee, 3));
51479}
51480
51481module.exports = map;
51482
51483
51484/***/ }),
51485
51486/***/ "./node_modules/lodash/mapValues.js":
51487/*!******************************************!*\
51488 !*** ./node_modules/lodash/mapValues.js ***!
51489 \******************************************/
51490/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51491
51492var baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ "./node_modules/lodash/_baseAssignValue.js"),
51493 baseForOwn = __webpack_require__(/*! ./_baseForOwn */ "./node_modules/lodash/_baseForOwn.js"),
51494 baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js");
51495
51496/**
51497 * Creates an object with the same keys as `object` and values generated
51498 * by running each own enumerable string keyed property of `object` thru
51499 * `iteratee`. The iteratee is invoked with three arguments:
51500 * (value, key, object).
51501 *
51502 * @static
51503 * @memberOf _
51504 * @since 2.4.0
51505 * @category Object
51506 * @param {Object} object The object to iterate over.
51507 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
51508 * @returns {Object} Returns the new mapped object.
51509 * @see _.mapKeys
51510 * @example
51511 *
51512 * var users = {
51513 * 'fred': { 'user': 'fred', 'age': 40 },
51514 * 'pebbles': { 'user': 'pebbles', 'age': 1 }
51515 * };
51516 *
51517 * _.mapValues(users, function(o) { return o.age; });
51518 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
51519 *
51520 * // The `_.property` iteratee shorthand.
51521 * _.mapValues(users, 'age');
51522 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
51523 */
51524function mapValues(object, iteratee) {
51525 var result = {};
51526 iteratee = baseIteratee(iteratee, 3);
51527
51528 baseForOwn(object, function(value, key, object) {
51529 baseAssignValue(result, key, iteratee(value, key, object));
51530 });
51531 return result;
51532}
51533
51534module.exports = mapValues;
51535
51536
51537/***/ }),
51538
51539/***/ "./node_modules/lodash/max.js":
51540/*!************************************!*\
51541 !*** ./node_modules/lodash/max.js ***!
51542 \************************************/
51543/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51544
51545var baseExtremum = __webpack_require__(/*! ./_baseExtremum */ "./node_modules/lodash/_baseExtremum.js"),
51546 baseGt = __webpack_require__(/*! ./_baseGt */ "./node_modules/lodash/_baseGt.js"),
51547 identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js");
51548
51549/**
51550 * Computes the maximum value of `array`. If `array` is empty or falsey,
51551 * `undefined` is returned.
51552 *
51553 * @static
51554 * @since 0.1.0
51555 * @memberOf _
51556 * @category Math
51557 * @param {Array} array The array to iterate over.
51558 * @returns {*} Returns the maximum value.
51559 * @example
51560 *
51561 * _.max([4, 2, 8, 6]);
51562 * // => 8
51563 *
51564 * _.max([]);
51565 * // => undefined
51566 */
51567function max(array) {
51568 return (array && array.length)
51569 ? baseExtremum(array, identity, baseGt)
51570 : undefined;
51571}
51572
51573module.exports = max;
51574
51575
51576/***/ }),
51577
51578/***/ "./node_modules/lodash/memoize.js":
51579/*!****************************************!*\
51580 !*** ./node_modules/lodash/memoize.js ***!
51581 \****************************************/
51582/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51583
51584var MapCache = __webpack_require__(/*! ./_MapCache */ "./node_modules/lodash/_MapCache.js");
51585
51586/** Error message constants. */
51587var FUNC_ERROR_TEXT = 'Expected a function';
51588
51589/**
51590 * Creates a function that memoizes the result of `func`. If `resolver` is
51591 * provided, it determines the cache key for storing the result based on the
51592 * arguments provided to the memoized function. By default, the first argument
51593 * provided to the memoized function is used as the map cache key. The `func`
51594 * is invoked with the `this` binding of the memoized function.
51595 *
51596 * **Note:** The cache is exposed as the `cache` property on the memoized
51597 * function. Its creation may be customized by replacing the `_.memoize.Cache`
51598 * constructor with one whose instances implement the
51599 * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
51600 * method interface of `clear`, `delete`, `get`, `has`, and `set`.
51601 *
51602 * @static
51603 * @memberOf _
51604 * @since 0.1.0
51605 * @category Function
51606 * @param {Function} func The function to have its output memoized.
51607 * @param {Function} [resolver] The function to resolve the cache key.
51608 * @returns {Function} Returns the new memoized function.
51609 * @example
51610 *
51611 * var object = { 'a': 1, 'b': 2 };
51612 * var other = { 'c': 3, 'd': 4 };
51613 *
51614 * var values = _.memoize(_.values);
51615 * values(object);
51616 * // => [1, 2]
51617 *
51618 * values(other);
51619 * // => [3, 4]
51620 *
51621 * object.a = 2;
51622 * values(object);
51623 * // => [1, 2]
51624 *
51625 * // Modify the result cache.
51626 * values.cache.set(object, ['a', 'b']);
51627 * values(object);
51628 * // => ['a', 'b']
51629 *
51630 * // Replace `_.memoize.Cache`.
51631 * _.memoize.Cache = WeakMap;
51632 */
51633function memoize(func, resolver) {
51634 if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
51635 throw new TypeError(FUNC_ERROR_TEXT);
51636 }
51637 var memoized = function() {
51638 var args = arguments,
51639 key = resolver ? resolver.apply(this, args) : args[0],
51640 cache = memoized.cache;
51641
51642 if (cache.has(key)) {
51643 return cache.get(key);
51644 }
51645 var result = func.apply(this, args);
51646 memoized.cache = cache.set(key, result) || cache;
51647 return result;
51648 };
51649 memoized.cache = new (memoize.Cache || MapCache);
51650 return memoized;
51651}
51652
51653// Expose `MapCache`.
51654memoize.Cache = MapCache;
51655
51656module.exports = memoize;
51657
51658
51659/***/ }),
51660
51661/***/ "./node_modules/lodash/merge.js":
51662/*!**************************************!*\
51663 !*** ./node_modules/lodash/merge.js ***!
51664 \**************************************/
51665/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51666
51667var baseMerge = __webpack_require__(/*! ./_baseMerge */ "./node_modules/lodash/_baseMerge.js"),
51668 createAssigner = __webpack_require__(/*! ./_createAssigner */ "./node_modules/lodash/_createAssigner.js");
51669
51670/**
51671 * This method is like `_.assign` except that it recursively merges own and
51672 * inherited enumerable string keyed properties of source objects into the
51673 * destination object. Source properties that resolve to `undefined` are
51674 * skipped if a destination value exists. Array and plain object properties
51675 * are merged recursively. Other objects and value types are overridden by
51676 * assignment. Source objects are applied from left to right. Subsequent
51677 * sources overwrite property assignments of previous sources.
51678 *
51679 * **Note:** This method mutates `object`.
51680 *
51681 * @static
51682 * @memberOf _
51683 * @since 0.5.0
51684 * @category Object
51685 * @param {Object} object The destination object.
51686 * @param {...Object} [sources] The source objects.
51687 * @returns {Object} Returns `object`.
51688 * @example
51689 *
51690 * var object = {
51691 * 'a': [{ 'b': 2 }, { 'd': 4 }]
51692 * };
51693 *
51694 * var other = {
51695 * 'a': [{ 'c': 3 }, { 'e': 5 }]
51696 * };
51697 *
51698 * _.merge(object, other);
51699 * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
51700 */
51701var merge = createAssigner(function(object, source, srcIndex) {
51702 baseMerge(object, source, srcIndex);
51703});
51704
51705module.exports = merge;
51706
51707
51708/***/ }),
51709
51710/***/ "./node_modules/lodash/min.js":
51711/*!************************************!*\
51712 !*** ./node_modules/lodash/min.js ***!
51713 \************************************/
51714/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51715
51716var baseExtremum = __webpack_require__(/*! ./_baseExtremum */ "./node_modules/lodash/_baseExtremum.js"),
51717 baseLt = __webpack_require__(/*! ./_baseLt */ "./node_modules/lodash/_baseLt.js"),
51718 identity = __webpack_require__(/*! ./identity */ "./node_modules/lodash/identity.js");
51719
51720/**
51721 * Computes the minimum value of `array`. If `array` is empty or falsey,
51722 * `undefined` is returned.
51723 *
51724 * @static
51725 * @since 0.1.0
51726 * @memberOf _
51727 * @category Math
51728 * @param {Array} array The array to iterate over.
51729 * @returns {*} Returns the minimum value.
51730 * @example
51731 *
51732 * _.min([4, 2, 8, 6]);
51733 * // => 2
51734 *
51735 * _.min([]);
51736 * // => undefined
51737 */
51738function min(array) {
51739 return (array && array.length)
51740 ? baseExtremum(array, identity, baseLt)
51741 : undefined;
51742}
51743
51744module.exports = min;
51745
51746
51747/***/ }),
51748
51749/***/ "./node_modules/lodash/minBy.js":
51750/*!**************************************!*\
51751 !*** ./node_modules/lodash/minBy.js ***!
51752 \**************************************/
51753/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51754
51755var baseExtremum = __webpack_require__(/*! ./_baseExtremum */ "./node_modules/lodash/_baseExtremum.js"),
51756 baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js"),
51757 baseLt = __webpack_require__(/*! ./_baseLt */ "./node_modules/lodash/_baseLt.js");
51758
51759/**
51760 * This method is like `_.min` except that it accepts `iteratee` which is
51761 * invoked for each element in `array` to generate the criterion by which
51762 * the value is ranked. The iteratee is invoked with one argument: (value).
51763 *
51764 * @static
51765 * @memberOf _
51766 * @since 4.0.0
51767 * @category Math
51768 * @param {Array} array The array to iterate over.
51769 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
51770 * @returns {*} Returns the minimum value.
51771 * @example
51772 *
51773 * var objects = [{ 'n': 1 }, { 'n': 2 }];
51774 *
51775 * _.minBy(objects, function(o) { return o.n; });
51776 * // => { 'n': 1 }
51777 *
51778 * // The `_.property` iteratee shorthand.
51779 * _.minBy(objects, 'n');
51780 * // => { 'n': 1 }
51781 */
51782function minBy(array, iteratee) {
51783 return (array && array.length)
51784 ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)
51785 : undefined;
51786}
51787
51788module.exports = minBy;
51789
51790
51791/***/ }),
51792
51793/***/ "./node_modules/lodash/noop.js":
51794/*!*************************************!*\
51795 !*** ./node_modules/lodash/noop.js ***!
51796 \*************************************/
51797/***/ ((module) => {
51798
51799/**
51800 * This method returns `undefined`.
51801 *
51802 * @static
51803 * @memberOf _
51804 * @since 2.3.0
51805 * @category Util
51806 * @example
51807 *
51808 * _.times(2, _.noop);
51809 * // => [undefined, undefined]
51810 */
51811function noop() {
51812 // No operation performed.
51813}
51814
51815module.exports = noop;
51816
51817
51818/***/ }),
51819
51820/***/ "./node_modules/lodash/now.js":
51821/*!************************************!*\
51822 !*** ./node_modules/lodash/now.js ***!
51823 \************************************/
51824/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51825
51826var root = __webpack_require__(/*! ./_root */ "./node_modules/lodash/_root.js");
51827
51828/**
51829 * Gets the timestamp of the number of milliseconds that have elapsed since
51830 * the Unix epoch (1 January 1970 00:00:00 UTC).
51831 *
51832 * @static
51833 * @memberOf _
51834 * @since 2.4.0
51835 * @category Date
51836 * @returns {number} Returns the timestamp.
51837 * @example
51838 *
51839 * _.defer(function(stamp) {
51840 * console.log(_.now() - stamp);
51841 * }, _.now());
51842 * // => Logs the number of milliseconds it took for the deferred invocation.
51843 */
51844var now = function() {
51845 return root.Date.now();
51846};
51847
51848module.exports = now;
51849
51850
51851/***/ }),
51852
51853/***/ "./node_modules/lodash/pick.js":
51854/*!*************************************!*\
51855 !*** ./node_modules/lodash/pick.js ***!
51856 \*************************************/
51857/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51858
51859var basePick = __webpack_require__(/*! ./_basePick */ "./node_modules/lodash/_basePick.js"),
51860 flatRest = __webpack_require__(/*! ./_flatRest */ "./node_modules/lodash/_flatRest.js");
51861
51862/**
51863 * Creates an object composed of the picked `object` properties.
51864 *
51865 * @static
51866 * @since 0.1.0
51867 * @memberOf _
51868 * @category Object
51869 * @param {Object} object The source object.
51870 * @param {...(string|string[])} [paths] The property paths to pick.
51871 * @returns {Object} Returns the new object.
51872 * @example
51873 *
51874 * var object = { 'a': 1, 'b': '2', 'c': 3 };
51875 *
51876 * _.pick(object, ['a', 'c']);
51877 * // => { 'a': 1, 'c': 3 }
51878 */
51879var pick = flatRest(function(object, paths) {
51880 return object == null ? {} : basePick(object, paths);
51881});
51882
51883module.exports = pick;
51884
51885
51886/***/ }),
51887
51888/***/ "./node_modules/lodash/property.js":
51889/*!*****************************************!*\
51890 !*** ./node_modules/lodash/property.js ***!
51891 \*****************************************/
51892/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51893
51894var baseProperty = __webpack_require__(/*! ./_baseProperty */ "./node_modules/lodash/_baseProperty.js"),
51895 basePropertyDeep = __webpack_require__(/*! ./_basePropertyDeep */ "./node_modules/lodash/_basePropertyDeep.js"),
51896 isKey = __webpack_require__(/*! ./_isKey */ "./node_modules/lodash/_isKey.js"),
51897 toKey = __webpack_require__(/*! ./_toKey */ "./node_modules/lodash/_toKey.js");
51898
51899/**
51900 * Creates a function that returns the value at `path` of a given object.
51901 *
51902 * @static
51903 * @memberOf _
51904 * @since 2.4.0
51905 * @category Util
51906 * @param {Array|string} path The path of the property to get.
51907 * @returns {Function} Returns the new accessor function.
51908 * @example
51909 *
51910 * var objects = [
51911 * { 'a': { 'b': 2 } },
51912 * { 'a': { 'b': 1 } }
51913 * ];
51914 *
51915 * _.map(objects, _.property('a.b'));
51916 * // => [2, 1]
51917 *
51918 * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');
51919 * // => [1, 2]
51920 */
51921function property(path) {
51922 return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
51923}
51924
51925module.exports = property;
51926
51927
51928/***/ }),
51929
51930/***/ "./node_modules/lodash/range.js":
51931/*!**************************************!*\
51932 !*** ./node_modules/lodash/range.js ***!
51933 \**************************************/
51934/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51935
51936var createRange = __webpack_require__(/*! ./_createRange */ "./node_modules/lodash/_createRange.js");
51937
51938/**
51939 * Creates an array of numbers (positive and/or negative) progressing from
51940 * `start` up to, but not including, `end`. A step of `-1` is used if a negative
51941 * `start` is specified without an `end` or `step`. If `end` is not specified,
51942 * it's set to `start` with `start` then set to `0`.
51943 *
51944 * **Note:** JavaScript follows the IEEE-754 standard for resolving
51945 * floating-point values which can produce unexpected results.
51946 *
51947 * @static
51948 * @since 0.1.0
51949 * @memberOf _
51950 * @category Util
51951 * @param {number} [start=0] The start of the range.
51952 * @param {number} end The end of the range.
51953 * @param {number} [step=1] The value to increment or decrement by.
51954 * @returns {Array} Returns the range of numbers.
51955 * @see _.inRange, _.rangeRight
51956 * @example
51957 *
51958 * _.range(4);
51959 * // => [0, 1, 2, 3]
51960 *
51961 * _.range(-4);
51962 * // => [0, -1, -2, -3]
51963 *
51964 * _.range(1, 5);
51965 * // => [1, 2, 3, 4]
51966 *
51967 * _.range(0, 20, 5);
51968 * // => [0, 5, 10, 15]
51969 *
51970 * _.range(0, -4, -1);
51971 * // => [0, -1, -2, -3]
51972 *
51973 * _.range(1, 4, 0);
51974 * // => [1, 1, 1]
51975 *
51976 * _.range(0);
51977 * // => []
51978 */
51979var range = createRange();
51980
51981module.exports = range;
51982
51983
51984/***/ }),
51985
51986/***/ "./node_modules/lodash/reduce.js":
51987/*!***************************************!*\
51988 !*** ./node_modules/lodash/reduce.js ***!
51989 \***************************************/
51990/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
51991
51992var arrayReduce = __webpack_require__(/*! ./_arrayReduce */ "./node_modules/lodash/_arrayReduce.js"),
51993 baseEach = __webpack_require__(/*! ./_baseEach */ "./node_modules/lodash/_baseEach.js"),
51994 baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js"),
51995 baseReduce = __webpack_require__(/*! ./_baseReduce */ "./node_modules/lodash/_baseReduce.js"),
51996 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js");
51997
51998/**
51999 * Reduces `collection` to a value which is the accumulated result of running
52000 * each element in `collection` thru `iteratee`, where each successive
52001 * invocation is supplied the return value of the previous. If `accumulator`
52002 * is not given, the first element of `collection` is used as the initial
52003 * value. The iteratee is invoked with four arguments:
52004 * (accumulator, value, index|key, collection).
52005 *
52006 * Many lodash methods are guarded to work as iteratees for methods like
52007 * `_.reduce`, `_.reduceRight`, and `_.transform`.
52008 *
52009 * The guarded methods are:
52010 * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,
52011 * and `sortBy`
52012 *
52013 * @static
52014 * @memberOf _
52015 * @since 0.1.0
52016 * @category Collection
52017 * @param {Array|Object} collection The collection to iterate over.
52018 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
52019 * @param {*} [accumulator] The initial value.
52020 * @returns {*} Returns the accumulated value.
52021 * @see _.reduceRight
52022 * @example
52023 *
52024 * _.reduce([1, 2], function(sum, n) {
52025 * return sum + n;
52026 * }, 0);
52027 * // => 3
52028 *
52029 * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
52030 * (result[value] || (result[value] = [])).push(key);
52031 * return result;
52032 * }, {});
52033 * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)
52034 */
52035function reduce(collection, iteratee, accumulator) {
52036 var func = isArray(collection) ? arrayReduce : baseReduce,
52037 initAccum = arguments.length < 3;
52038
52039 return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);
52040}
52041
52042module.exports = reduce;
52043
52044
52045/***/ }),
52046
52047/***/ "./node_modules/lodash/size.js":
52048/*!*************************************!*\
52049 !*** ./node_modules/lodash/size.js ***!
52050 \*************************************/
52051/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
52052
52053var baseKeys = __webpack_require__(/*! ./_baseKeys */ "./node_modules/lodash/_baseKeys.js"),
52054 getTag = __webpack_require__(/*! ./_getTag */ "./node_modules/lodash/_getTag.js"),
52055 isArrayLike = __webpack_require__(/*! ./isArrayLike */ "./node_modules/lodash/isArrayLike.js"),
52056 isString = __webpack_require__(/*! ./isString */ "./node_modules/lodash/isString.js"),
52057 stringSize = __webpack_require__(/*! ./_stringSize */ "./node_modules/lodash/_stringSize.js");
52058
52059/** `Object#toString` result references. */
52060var mapTag = '[object Map]',
52061 setTag = '[object Set]';
52062
52063/**
52064 * Gets the size of `collection` by returning its length for array-like
52065 * values or the number of own enumerable string keyed properties for objects.
52066 *
52067 * @static
52068 * @memberOf _
52069 * @since 0.1.0
52070 * @category Collection
52071 * @param {Array|Object|string} collection The collection to inspect.
52072 * @returns {number} Returns the collection size.
52073 * @example
52074 *
52075 * _.size([1, 2, 3]);
52076 * // => 3
52077 *
52078 * _.size({ 'a': 1, 'b': 2 });
52079 * // => 2
52080 *
52081 * _.size('pebbles');
52082 * // => 7
52083 */
52084function size(collection) {
52085 if (collection == null) {
52086 return 0;
52087 }
52088 if (isArrayLike(collection)) {
52089 return isString(collection) ? stringSize(collection) : collection.length;
52090 }
52091 var tag = getTag(collection);
52092 if (tag == mapTag || tag == setTag) {
52093 return collection.size;
52094 }
52095 return baseKeys(collection).length;
52096}
52097
52098module.exports = size;
52099
52100
52101/***/ }),
52102
52103/***/ "./node_modules/lodash/sortBy.js":
52104/*!***************************************!*\
52105 !*** ./node_modules/lodash/sortBy.js ***!
52106 \***************************************/
52107/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
52108
52109var baseFlatten = __webpack_require__(/*! ./_baseFlatten */ "./node_modules/lodash/_baseFlatten.js"),
52110 baseOrderBy = __webpack_require__(/*! ./_baseOrderBy */ "./node_modules/lodash/_baseOrderBy.js"),
52111 baseRest = __webpack_require__(/*! ./_baseRest */ "./node_modules/lodash/_baseRest.js"),
52112 isIterateeCall = __webpack_require__(/*! ./_isIterateeCall */ "./node_modules/lodash/_isIterateeCall.js");
52113
52114/**
52115 * Creates an array of elements, sorted in ascending order by the results of
52116 * running each element in a collection thru each iteratee. This method
52117 * performs a stable sort, that is, it preserves the original sort order of
52118 * equal elements. The iteratees are invoked with one argument: (value).
52119 *
52120 * @static
52121 * @memberOf _
52122 * @since 0.1.0
52123 * @category Collection
52124 * @param {Array|Object} collection The collection to iterate over.
52125 * @param {...(Function|Function[])} [iteratees=[_.identity]]
52126 * The iteratees to sort by.
52127 * @returns {Array} Returns the new sorted array.
52128 * @example
52129 *
52130 * var users = [
52131 * { 'user': 'fred', 'age': 48 },
52132 * { 'user': 'barney', 'age': 36 },
52133 * { 'user': 'fred', 'age': 30 },
52134 * { 'user': 'barney', 'age': 34 }
52135 * ];
52136 *
52137 * _.sortBy(users, [function(o) { return o.user; }]);
52138 * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]
52139 *
52140 * _.sortBy(users, ['user', 'age']);
52141 * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]
52142 */
52143var sortBy = baseRest(function(collection, iteratees) {
52144 if (collection == null) {
52145 return [];
52146 }
52147 var length = iteratees.length;
52148 if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {
52149 iteratees = [];
52150 } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {
52151 iteratees = [iteratees[0]];
52152 }
52153 return baseOrderBy(collection, baseFlatten(iteratees, 1), []);
52154});
52155
52156module.exports = sortBy;
52157
52158
52159/***/ }),
52160
52161/***/ "./node_modules/lodash/stubArray.js":
52162/*!******************************************!*\
52163 !*** ./node_modules/lodash/stubArray.js ***!
52164 \******************************************/
52165/***/ ((module) => {
52166
52167/**
52168 * This method returns a new empty array.
52169 *
52170 * @static
52171 * @memberOf _
52172 * @since 4.13.0
52173 * @category Util
52174 * @returns {Array} Returns the new empty array.
52175 * @example
52176 *
52177 * var arrays = _.times(2, _.stubArray);
52178 *
52179 * console.log(arrays);
52180 * // => [[], []]
52181 *
52182 * console.log(arrays[0] === arrays[1]);
52183 * // => false
52184 */
52185function stubArray() {
52186 return [];
52187}
52188
52189module.exports = stubArray;
52190
52191
52192/***/ }),
52193
52194/***/ "./node_modules/lodash/stubFalse.js":
52195/*!******************************************!*\
52196 !*** ./node_modules/lodash/stubFalse.js ***!
52197 \******************************************/
52198/***/ ((module) => {
52199
52200/**
52201 * This method returns `false`.
52202 *
52203 * @static
52204 * @memberOf _
52205 * @since 4.13.0
52206 * @category Util
52207 * @returns {boolean} Returns `false`.
52208 * @example
52209 *
52210 * _.times(2, _.stubFalse);
52211 * // => [false, false]
52212 */
52213function stubFalse() {
52214 return false;
52215}
52216
52217module.exports = stubFalse;
52218
52219
52220/***/ }),
52221
52222/***/ "./node_modules/lodash/toFinite.js":
52223/*!*****************************************!*\
52224 !*** ./node_modules/lodash/toFinite.js ***!
52225 \*****************************************/
52226/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
52227
52228var toNumber = __webpack_require__(/*! ./toNumber */ "./node_modules/lodash/toNumber.js");
52229
52230/** Used as references for various `Number` constants. */
52231var INFINITY = 1 / 0,
52232 MAX_INTEGER = 1.7976931348623157e+308;
52233
52234/**
52235 * Converts `value` to a finite number.
52236 *
52237 * @static
52238 * @memberOf _
52239 * @since 4.12.0
52240 * @category Lang
52241 * @param {*} value The value to convert.
52242 * @returns {number} Returns the converted number.
52243 * @example
52244 *
52245 * _.toFinite(3.2);
52246 * // => 3.2
52247 *
52248 * _.toFinite(Number.MIN_VALUE);
52249 * // => 5e-324
52250 *
52251 * _.toFinite(Infinity);
52252 * // => 1.7976931348623157e+308
52253 *
52254 * _.toFinite('3.2');
52255 * // => 3.2
52256 */
52257function toFinite(value) {
52258 if (!value) {
52259 return value === 0 ? value : 0;
52260 }
52261 value = toNumber(value);
52262 if (value === INFINITY || value === -INFINITY) {
52263 var sign = (value < 0 ? -1 : 1);
52264 return sign * MAX_INTEGER;
52265 }
52266 return value === value ? value : 0;
52267}
52268
52269module.exports = toFinite;
52270
52271
52272/***/ }),
52273
52274/***/ "./node_modules/lodash/toInteger.js":
52275/*!******************************************!*\
52276 !*** ./node_modules/lodash/toInteger.js ***!
52277 \******************************************/
52278/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
52279
52280var toFinite = __webpack_require__(/*! ./toFinite */ "./node_modules/lodash/toFinite.js");
52281
52282/**
52283 * Converts `value` to an integer.
52284 *
52285 * **Note:** This method is loosely based on
52286 * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
52287 *
52288 * @static
52289 * @memberOf _
52290 * @since 4.0.0
52291 * @category Lang
52292 * @param {*} value The value to convert.
52293 * @returns {number} Returns the converted integer.
52294 * @example
52295 *
52296 * _.toInteger(3.2);
52297 * // => 3
52298 *
52299 * _.toInteger(Number.MIN_VALUE);
52300 * // => 0
52301 *
52302 * _.toInteger(Infinity);
52303 * // => 1.7976931348623157e+308
52304 *
52305 * _.toInteger('3.2');
52306 * // => 3
52307 */
52308function toInteger(value) {
52309 var result = toFinite(value),
52310 remainder = result % 1;
52311
52312 return result === result ? (remainder ? result - remainder : result) : 0;
52313}
52314
52315module.exports = toInteger;
52316
52317
52318/***/ }),
52319
52320/***/ "./node_modules/lodash/toNumber.js":
52321/*!*****************************************!*\
52322 !*** ./node_modules/lodash/toNumber.js ***!
52323 \*****************************************/
52324/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
52325
52326var baseTrim = __webpack_require__(/*! ./_baseTrim */ "./node_modules/lodash/_baseTrim.js"),
52327 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
52328 isSymbol = __webpack_require__(/*! ./isSymbol */ "./node_modules/lodash/isSymbol.js");
52329
52330/** Used as references for various `Number` constants. */
52331var NAN = 0 / 0;
52332
52333/** Used to detect bad signed hexadecimal string values. */
52334var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
52335
52336/** Used to detect binary string values. */
52337var reIsBinary = /^0b[01]+$/i;
52338
52339/** Used to detect octal string values. */
52340var reIsOctal = /^0o[0-7]+$/i;
52341
52342/** Built-in method references without a dependency on `root`. */
52343var freeParseInt = parseInt;
52344
52345/**
52346 * Converts `value` to a number.
52347 *
52348 * @static
52349 * @memberOf _
52350 * @since 4.0.0
52351 * @category Lang
52352 * @param {*} value The value to process.
52353 * @returns {number} Returns the number.
52354 * @example
52355 *
52356 * _.toNumber(3.2);
52357 * // => 3.2
52358 *
52359 * _.toNumber(Number.MIN_VALUE);
52360 * // => 5e-324
52361 *
52362 * _.toNumber(Infinity);
52363 * // => Infinity
52364 *
52365 * _.toNumber('3.2');
52366 * // => 3.2
52367 */
52368function toNumber(value) {
52369 if (typeof value == 'number') {
52370 return value;
52371 }
52372 if (isSymbol(value)) {
52373 return NAN;
52374 }
52375 if (isObject(value)) {
52376 var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
52377 value = isObject(other) ? (other + '') : other;
52378 }
52379 if (typeof value != 'string') {
52380 return value === 0 ? value : +value;
52381 }
52382 value = baseTrim(value);
52383 var isBinary = reIsBinary.test(value);
52384 return (isBinary || reIsOctal.test(value))
52385 ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
52386 : (reIsBadHex.test(value) ? NAN : +value);
52387}
52388
52389module.exports = toNumber;
52390
52391
52392/***/ }),
52393
52394/***/ "./node_modules/lodash/toPlainObject.js":
52395/*!**********************************************!*\
52396 !*** ./node_modules/lodash/toPlainObject.js ***!
52397 \**********************************************/
52398/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
52399
52400var copyObject = __webpack_require__(/*! ./_copyObject */ "./node_modules/lodash/_copyObject.js"),
52401 keysIn = __webpack_require__(/*! ./keysIn */ "./node_modules/lodash/keysIn.js");
52402
52403/**
52404 * Converts `value` to a plain object flattening inherited enumerable string
52405 * keyed properties of `value` to own properties of the plain object.
52406 *
52407 * @static
52408 * @memberOf _
52409 * @since 3.0.0
52410 * @category Lang
52411 * @param {*} value The value to convert.
52412 * @returns {Object} Returns the converted plain object.
52413 * @example
52414 *
52415 * function Foo() {
52416 * this.b = 2;
52417 * }
52418 *
52419 * Foo.prototype.c = 3;
52420 *
52421 * _.assign({ 'a': 1 }, new Foo);
52422 * // => { 'a': 1, 'b': 2 }
52423 *
52424 * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));
52425 * // => { 'a': 1, 'b': 2, 'c': 3 }
52426 */
52427function toPlainObject(value) {
52428 return copyObject(value, keysIn(value));
52429}
52430
52431module.exports = toPlainObject;
52432
52433
52434/***/ }),
52435
52436/***/ "./node_modules/lodash/toString.js":
52437/*!*****************************************!*\
52438 !*** ./node_modules/lodash/toString.js ***!
52439 \*****************************************/
52440/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
52441
52442var baseToString = __webpack_require__(/*! ./_baseToString */ "./node_modules/lodash/_baseToString.js");
52443
52444/**
52445 * Converts `value` to a string. An empty string is returned for `null`
52446 * and `undefined` values. The sign of `-0` is preserved.
52447 *
52448 * @static
52449 * @memberOf _
52450 * @since 4.0.0
52451 * @category Lang
52452 * @param {*} value The value to convert.
52453 * @returns {string} Returns the converted string.
52454 * @example
52455 *
52456 * _.toString(null);
52457 * // => ''
52458 *
52459 * _.toString(-0);
52460 * // => '-0'
52461 *
52462 * _.toString([1, 2, 3]);
52463 * // => '1,2,3'
52464 */
52465function toString(value) {
52466 return value == null ? '' : baseToString(value);
52467}
52468
52469module.exports = toString;
52470
52471
52472/***/ }),
52473
52474/***/ "./node_modules/lodash/transform.js":
52475/*!******************************************!*\
52476 !*** ./node_modules/lodash/transform.js ***!
52477 \******************************************/
52478/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
52479
52480var arrayEach = __webpack_require__(/*! ./_arrayEach */ "./node_modules/lodash/_arrayEach.js"),
52481 baseCreate = __webpack_require__(/*! ./_baseCreate */ "./node_modules/lodash/_baseCreate.js"),
52482 baseForOwn = __webpack_require__(/*! ./_baseForOwn */ "./node_modules/lodash/_baseForOwn.js"),
52483 baseIteratee = __webpack_require__(/*! ./_baseIteratee */ "./node_modules/lodash/_baseIteratee.js"),
52484 getPrototype = __webpack_require__(/*! ./_getPrototype */ "./node_modules/lodash/_getPrototype.js"),
52485 isArray = __webpack_require__(/*! ./isArray */ "./node_modules/lodash/isArray.js"),
52486 isBuffer = __webpack_require__(/*! ./isBuffer */ "./node_modules/lodash/isBuffer.js"),
52487 isFunction = __webpack_require__(/*! ./isFunction */ "./node_modules/lodash/isFunction.js"),
52488 isObject = __webpack_require__(/*! ./isObject */ "./node_modules/lodash/isObject.js"),
52489 isTypedArray = __webpack_require__(/*! ./isTypedArray */ "./node_modules/lodash/isTypedArray.js");
52490
52491/**
52492 * An alternative to `_.reduce`; this method transforms `object` to a new
52493 * `accumulator` object which is the result of running each of its own
52494 * enumerable string keyed properties thru `iteratee`, with each invocation
52495 * potentially mutating the `accumulator` object. If `accumulator` is not
52496 * provided, a new object with the same `[[Prototype]]` will be used. The
52497 * iteratee is invoked with four arguments: (accumulator, value, key, object).
52498 * Iteratee functions may exit iteration early by explicitly returning `false`.
52499 *
52500 * @static
52501 * @memberOf _
52502 * @since 1.3.0
52503 * @category Object
52504 * @param {Object} object The object to iterate over.
52505 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
52506 * @param {*} [accumulator] The custom accumulator value.
52507 * @returns {*} Returns the accumulated value.
52508 * @example
52509 *
52510 * _.transform([2, 3, 4], function(result, n) {
52511 * result.push(n *= n);
52512 * return n % 2 == 0;
52513 * }, []);
52514 * // => [4, 9]
52515 *
52516 * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
52517 * (result[value] || (result[value] = [])).push(key);
52518 * }, {});
52519 * // => { '1': ['a', 'c'], '2': ['b'] }
52520 */
52521function transform(object, iteratee, accumulator) {
52522 var isArr = isArray(object),
52523 isArrLike = isArr || isBuffer(object) || isTypedArray(object);
52524
52525 iteratee = baseIteratee(iteratee, 4);
52526 if (accumulator == null) {
52527 var Ctor = object && object.constructor;
52528 if (isArrLike) {
52529 accumulator = isArr ? new Ctor : [];
52530 }
52531 else if (isObject(object)) {
52532 accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};
52533 }
52534 else {
52535 accumulator = {};
52536 }
52537 }
52538 (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {
52539 return iteratee(accumulator, value, index, object);
52540 });
52541 return accumulator;
52542}
52543
52544module.exports = transform;
52545
52546
52547/***/ }),
52548
52549/***/ "./node_modules/lodash/union.js":
52550/*!**************************************!*\
52551 !*** ./node_modules/lodash/union.js ***!
52552 \**************************************/
52553/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
52554
52555var baseFlatten = __webpack_require__(/*! ./_baseFlatten */ "./node_modules/lodash/_baseFlatten.js"),
52556 baseRest = __webpack_require__(/*! ./_baseRest */ "./node_modules/lodash/_baseRest.js"),
52557 baseUniq = __webpack_require__(/*! ./_baseUniq */ "./node_modules/lodash/_baseUniq.js"),
52558 isArrayLikeObject = __webpack_require__(/*! ./isArrayLikeObject */ "./node_modules/lodash/isArrayLikeObject.js");
52559
52560/**
52561 * Creates an array of unique values, in order, from all given arrays using
52562 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
52563 * for equality comparisons.
52564 *
52565 * @static
52566 * @memberOf _
52567 * @since 0.1.0
52568 * @category Array
52569 * @param {...Array} [arrays] The arrays to inspect.
52570 * @returns {Array} Returns the new array of combined values.
52571 * @example
52572 *
52573 * _.union([2], [1, 2]);
52574 * // => [2, 1]
52575 */
52576var union = baseRest(function(arrays) {
52577 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));
52578});
52579
52580module.exports = union;
52581
52582
52583/***/ }),
52584
52585/***/ "./node_modules/lodash/uniqueId.js":
52586/*!*****************************************!*\
52587 !*** ./node_modules/lodash/uniqueId.js ***!
52588 \*****************************************/
52589/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
52590
52591var toString = __webpack_require__(/*! ./toString */ "./node_modules/lodash/toString.js");
52592
52593/** Used to generate unique IDs. */
52594var idCounter = 0;
52595
52596/**
52597 * Generates a unique ID. If `prefix` is given, the ID is appended to it.
52598 *
52599 * @static
52600 * @since 0.1.0
52601 * @memberOf _
52602 * @category Util
52603 * @param {string} [prefix=''] The value to prefix the ID with.
52604 * @returns {string} Returns the unique ID.
52605 * @example
52606 *
52607 * _.uniqueId('contact_');
52608 * // => 'contact_104'
52609 *
52610 * _.uniqueId();
52611 * // => '105'
52612 */
52613function uniqueId(prefix) {
52614 var id = ++idCounter;
52615 return toString(prefix) + id;
52616}
52617
52618module.exports = uniqueId;
52619
52620
52621/***/ }),
52622
52623/***/ "./node_modules/lodash/values.js":
52624/*!***************************************!*\
52625 !*** ./node_modules/lodash/values.js ***!
52626 \***************************************/
52627/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
52628
52629var baseValues = __webpack_require__(/*! ./_baseValues */ "./node_modules/lodash/_baseValues.js"),
52630 keys = __webpack_require__(/*! ./keys */ "./node_modules/lodash/keys.js");
52631
52632/**
52633 * Creates an array of the own enumerable string keyed property values of `object`.
52634 *
52635 * **Note:** Non-object values are coerced to objects.
52636 *
52637 * @static
52638 * @since 0.1.0
52639 * @memberOf _
52640 * @category Object
52641 * @param {Object} object The object to query.
52642 * @returns {Array} Returns the array of property values.
52643 * @example
52644 *
52645 * function Foo() {
52646 * this.a = 1;
52647 * this.b = 2;
52648 * }
52649 *
52650 * Foo.prototype.c = 3;
52651 *
52652 * _.values(new Foo);
52653 * // => [1, 2] (iteration order is not guaranteed)
52654 *
52655 * _.values('hi');
52656 * // => ['h', 'i']
52657 */
52658function values(object) {
52659 return object == null ? [] : baseValues(object, keys(object));
52660}
52661
52662module.exports = values;
52663
52664
52665/***/ }),
52666
52667/***/ "./node_modules/lodash/zipObject.js":
52668/*!******************************************!*\
52669 !*** ./node_modules/lodash/zipObject.js ***!
52670 \******************************************/
52671/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
52672
52673var assignValue = __webpack_require__(/*! ./_assignValue */ "./node_modules/lodash/_assignValue.js"),
52674 baseZipObject = __webpack_require__(/*! ./_baseZipObject */ "./node_modules/lodash/_baseZipObject.js");
52675
52676/**
52677 * This method is like `_.fromPairs` except that it accepts two arrays,
52678 * one of property identifiers and one of corresponding values.
52679 *
52680 * @static
52681 * @memberOf _
52682 * @since 0.4.0
52683 * @category Array
52684 * @param {Array} [props=[]] The property identifiers.
52685 * @param {Array} [values=[]] The property values.
52686 * @returns {Object} Returns the new object.
52687 * @example
52688 *
52689 * _.zipObject(['a', 'b'], [1, 2]);
52690 * // => { 'a': 1, 'b': 2 }
52691 */
52692function zipObject(props, values) {
52693 return baseZipObject(props || [], values || [], assignValue);
52694}
52695
52696module.exports = zipObject;
52697
52698
52699/***/ }),
52700
52701/***/ "./node_modules/moment-mini/locale/locale.js":
52702/*!***************************************************!*\
52703 !*** ./node_modules/moment-mini/locale/locale.js ***!
52704 \***************************************************/
52705/***/ (() => {
52706
52707
52708
52709/***/ }),
52710
52711/***/ "./node_modules/moment-mini/locale sync recursive ^\\.\\/.*$":
52712/*!********************************************************!*\
52713 !*** ./node_modules/moment-mini/locale/ sync ^\.\/.*$ ***!
52714 \********************************************************/
52715/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
52716
52717var map = {
52718 "./locale": "./node_modules/moment-mini/locale/locale.js",
52719 "./locale.js": "./node_modules/moment-mini/locale/locale.js"
52720};
52721
52722
52723function webpackContext(req) {
52724 var id = webpackContextResolve(req);
52725 return __webpack_require__(id);
52726}
52727function webpackContextResolve(req) {
52728 if(!__webpack_require__.o(map, req)) {
52729 var e = new Error("Cannot find module '" + req + "'");
52730 e.code = 'MODULE_NOT_FOUND';
52731 throw e;
52732 }
52733 return map[req];
52734}
52735webpackContext.keys = function webpackContextKeys() {
52736 return Object.keys(map);
52737};
52738webpackContext.resolve = webpackContextResolve;
52739module.exports = webpackContext;
52740webpackContext.id = "./node_modules/moment-mini/locale sync recursive ^\\.\\/.*$";
52741
52742/***/ }),
52743
52744/***/ "./node_modules/moment-mini/moment.min.js":
52745/*!************************************************!*\
52746 !*** ./node_modules/moment-mini/moment.min.js ***!
52747 \************************************************/
52748/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
52749
52750/* module decorator */ module = __webpack_require__.nmd(module);
52751!function(e,t){ true?module.exports=t():0}(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"!="object"&&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});
52752
52753/***/ }),
52754
52755/***/ "./node_modules/path-browserify/index.js":
52756/*!***********************************************!*\
52757 !*** ./node_modules/path-browserify/index.js ***!
52758 \***********************************************/
52759/***/ ((module) => {
52760
52761"use strict";
52762// 'path' module extracted from Node.js v8.11.1 (only the posix part)
52763// transplited with Babel
52764
52765// Copyright Joyent, Inc. and other Node contributors.
52766//
52767// Permission is hereby granted, free of charge, to any person obtaining a
52768// copy of this software and associated documentation files (the
52769// "Software"), to deal in the Software without restriction, including
52770// without limitation the rights to use, copy, modify, merge, publish,
52771// distribute, sublicense, and/or sell copies of the Software, and to permit
52772// persons to whom the Software is furnished to do so, subject to the
52773// following conditions:
52774//
52775// The above copyright notice and this permission notice shall be included
52776// in all copies or substantial portions of the Software.
52777//
52778// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
52779// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
52780// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
52781// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
52782// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
52783// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
52784// USE OR OTHER DEALINGS IN THE SOFTWARE.
52785
52786
52787
52788function assertPath(path) {
52789 if (typeof path !== 'string') {
52790 throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));
52791 }
52792}
52793
52794// Resolves . and .. elements in a path with directory names
52795function normalizeStringPosix(path, allowAboveRoot) {
52796 var res = '';
52797 var lastSegmentLength = 0;
52798 var lastSlash = -1;
52799 var dots = 0;
52800 var code;
52801 for (var i = 0; i <= path.length; ++i) {
52802 if (i < path.length)
52803 code = path.charCodeAt(i);
52804 else if (code === 47 /*/*/)
52805 break;
52806 else
52807 code = 47 /*/*/;
52808 if (code === 47 /*/*/) {
52809 if (lastSlash === i - 1 || dots === 1) {
52810 // NOOP
52811 } else if (lastSlash !== i - 1 && dots === 2) {
52812 if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {
52813 if (res.length > 2) {
52814 var lastSlashIndex = res.lastIndexOf('/');
52815 if (lastSlashIndex !== res.length - 1) {
52816 if (lastSlashIndex === -1) {
52817 res = '';
52818 lastSegmentLength = 0;
52819 } else {
52820 res = res.slice(0, lastSlashIndex);
52821 lastSegmentLength = res.length - 1 - res.lastIndexOf('/');
52822 }
52823 lastSlash = i;
52824 dots = 0;
52825 continue;
52826 }
52827 } else if (res.length === 2 || res.length === 1) {
52828 res = '';
52829 lastSegmentLength = 0;
52830 lastSlash = i;
52831 dots = 0;
52832 continue;
52833 }
52834 }
52835 if (allowAboveRoot) {
52836 if (res.length > 0)
52837 res += '/..';
52838 else
52839 res = '..';
52840 lastSegmentLength = 2;
52841 }
52842 } else {
52843 if (res.length > 0)
52844 res += '/' + path.slice(lastSlash + 1, i);
52845 else
52846 res = path.slice(lastSlash + 1, i);
52847 lastSegmentLength = i - lastSlash - 1;
52848 }
52849 lastSlash = i;
52850 dots = 0;
52851 } else if (code === 46 /*.*/ && dots !== -1) {
52852 ++dots;
52853 } else {
52854 dots = -1;
52855 }
52856 }
52857 return res;
52858}
52859
52860function _format(sep, pathObject) {
52861 var dir = pathObject.dir || pathObject.root;
52862 var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');
52863 if (!dir) {
52864 return base;
52865 }
52866 if (dir === pathObject.root) {
52867 return dir + base;
52868 }
52869 return dir + sep + base;
52870}
52871
52872var posix = {
52873 // path.resolve([from ...], to)
52874 resolve: function resolve() {
52875 var resolvedPath = '';
52876 var resolvedAbsolute = false;
52877 var cwd;
52878
52879 for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
52880 var path;
52881 if (i >= 0)
52882 path = arguments[i];
52883 else {
52884 if (cwd === undefined)
52885 cwd = process.cwd();
52886 path = cwd;
52887 }
52888
52889 assertPath(path);
52890
52891 // Skip empty entries
52892 if (path.length === 0) {
52893 continue;
52894 }
52895
52896 resolvedPath = path + '/' + resolvedPath;
52897 resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;
52898 }
52899
52900 // At this point the path should be resolved to a full absolute path, but
52901 // handle relative paths to be safe (might happen when process.cwd() fails)
52902
52903 // Normalize the path
52904 resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);
52905
52906 if (resolvedAbsolute) {
52907 if (resolvedPath.length > 0)
52908 return '/' + resolvedPath;
52909 else
52910 return '/';
52911 } else if (resolvedPath.length > 0) {
52912 return resolvedPath;
52913 } else {
52914 return '.';
52915 }
52916 },
52917
52918 normalize: function normalize(path) {
52919 assertPath(path);
52920
52921 if (path.length === 0) return '.';
52922
52923 var isAbsolute = path.charCodeAt(0) === 47 /*/*/;
52924 var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;
52925
52926 // Normalize the path
52927 path = normalizeStringPosix(path, !isAbsolute);
52928
52929 if (path.length === 0 && !isAbsolute) path = '.';
52930 if (path.length > 0 && trailingSeparator) path += '/';
52931
52932 if (isAbsolute) return '/' + path;
52933 return path;
52934 },
52935
52936 isAbsolute: function isAbsolute(path) {
52937 assertPath(path);
52938 return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;
52939 },
52940
52941 join: function join() {
52942 if (arguments.length === 0)
52943 return '.';
52944 var joined;
52945 for (var i = 0; i < arguments.length; ++i) {
52946 var arg = arguments[i];
52947 assertPath(arg);
52948 if (arg.length > 0) {
52949 if (joined === undefined)
52950 joined = arg;
52951 else
52952 joined += '/' + arg;
52953 }
52954 }
52955 if (joined === undefined)
52956 return '.';
52957 return posix.normalize(joined);
52958 },
52959
52960 relative: function relative(from, to) {
52961 assertPath(from);
52962 assertPath(to);
52963
52964 if (from === to) return '';
52965
52966 from = posix.resolve(from);
52967 to = posix.resolve(to);
52968
52969 if (from === to) return '';
52970
52971 // Trim any leading backslashes
52972 var fromStart = 1;
52973 for (; fromStart < from.length; ++fromStart) {
52974 if (from.charCodeAt(fromStart) !== 47 /*/*/)
52975 break;
52976 }
52977 var fromEnd = from.length;
52978 var fromLen = fromEnd - fromStart;
52979
52980 // Trim any leading backslashes
52981 var toStart = 1;
52982 for (; toStart < to.length; ++toStart) {
52983 if (to.charCodeAt(toStart) !== 47 /*/*/)
52984 break;
52985 }
52986 var toEnd = to.length;
52987 var toLen = toEnd - toStart;
52988
52989 // Compare paths to find the longest common path from root
52990 var length = fromLen < toLen ? fromLen : toLen;
52991 var lastCommonSep = -1;
52992 var i = 0;
52993 for (; i <= length; ++i) {
52994 if (i === length) {
52995 if (toLen > length) {
52996 if (to.charCodeAt(toStart + i) === 47 /*/*/) {
52997 // We get here if `from` is the exact base path for `to`.
52998 // For example: from='/foo/bar'; to='/foo/bar/baz'
52999 return to.slice(toStart + i + 1);
53000 } else if (i === 0) {
53001 // We get here if `from` is the root
53002 // For example: from='/'; to='/foo'
53003 return to.slice(toStart + i);
53004 }
53005 } else if (fromLen > length) {
53006 if (from.charCodeAt(fromStart + i) === 47 /*/*/) {
53007 // We get here if `to` is the exact base path for `from`.
53008 // For example: from='/foo/bar/baz'; to='/foo/bar'
53009 lastCommonSep = i;
53010 } else if (i === 0) {
53011 // We get here if `to` is the root.
53012 // For example: from='/foo'; to='/'
53013 lastCommonSep = 0;
53014 }
53015 }
53016 break;
53017 }
53018 var fromCode = from.charCodeAt(fromStart + i);
53019 var toCode = to.charCodeAt(toStart + i);
53020 if (fromCode !== toCode)
53021 break;
53022 else if (fromCode === 47 /*/*/)
53023 lastCommonSep = i;
53024 }
53025
53026 var out = '';
53027 // Generate the relative path based on the path difference between `to`
53028 // and `from`
53029 for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {
53030 if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {
53031 if (out.length === 0)
53032 out += '..';
53033 else
53034 out += '/..';
53035 }
53036 }
53037
53038 // Lastly, append the rest of the destination (`to`) path that comes after
53039 // the common path parts
53040 if (out.length > 0)
53041 return out + to.slice(toStart + lastCommonSep);
53042 else {
53043 toStart += lastCommonSep;
53044 if (to.charCodeAt(toStart) === 47 /*/*/)
53045 ++toStart;
53046 return to.slice(toStart);
53047 }
53048 },
53049
53050 _makeLong: function _makeLong(path) {
53051 return path;
53052 },
53053
53054 dirname: function dirname(path) {
53055 assertPath(path);
53056 if (path.length === 0) return '.';
53057 var code = path.charCodeAt(0);
53058 var hasRoot = code === 47 /*/*/;
53059 var end = -1;
53060 var matchedSlash = true;
53061 for (var i = path.length - 1; i >= 1; --i) {
53062 code = path.charCodeAt(i);
53063 if (code === 47 /*/*/) {
53064 if (!matchedSlash) {
53065 end = i;
53066 break;
53067 }
53068 } else {
53069 // We saw the first non-path separator
53070 matchedSlash = false;
53071 }
53072 }
53073
53074 if (end === -1) return hasRoot ? '/' : '.';
53075 if (hasRoot && end === 1) return '//';
53076 return path.slice(0, end);
53077 },
53078
53079 basename: function basename(path, ext) {
53080 if (ext !== undefined && typeof ext !== 'string') throw new TypeError('"ext" argument must be a string');
53081 assertPath(path);
53082
53083 var start = 0;
53084 var end = -1;
53085 var matchedSlash = true;
53086 var i;
53087
53088 if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {
53089 if (ext.length === path.length && ext === path) return '';
53090 var extIdx = ext.length - 1;
53091 var firstNonSlashEnd = -1;
53092 for (i = path.length - 1; i >= 0; --i) {
53093 var code = path.charCodeAt(i);
53094 if (code === 47 /*/*/) {
53095 // If we reached a path separator that was not part of a set of path
53096 // separators at the end of the string, stop now
53097 if (!matchedSlash) {
53098 start = i + 1;
53099 break;
53100 }
53101 } else {
53102 if (firstNonSlashEnd === -1) {
53103 // We saw the first non-path separator, remember this index in case
53104 // we need it if the extension ends up not matching
53105 matchedSlash = false;
53106 firstNonSlashEnd = i + 1;
53107 }
53108 if (extIdx >= 0) {
53109 // Try to match the explicit extension
53110 if (code === ext.charCodeAt(extIdx)) {
53111 if (--extIdx === -1) {
53112 // We matched the extension, so mark this as the end of our path
53113 // component
53114 end = i;
53115 }
53116 } else {
53117 // Extension does not match, so our result is the entire path
53118 // component
53119 extIdx = -1;
53120 end = firstNonSlashEnd;
53121 }
53122 }
53123 }
53124 }
53125
53126 if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;
53127 return path.slice(start, end);
53128 } else {
53129 for (i = path.length - 1; i >= 0; --i) {
53130 if (path.charCodeAt(i) === 47 /*/*/) {
53131 // If we reached a path separator that was not part of a set of path
53132 // separators at the end of the string, stop now
53133 if (!matchedSlash) {
53134 start = i + 1;
53135 break;
53136 }
53137 } else if (end === -1) {
53138 // We saw the first non-path separator, mark this as the end of our
53139 // path component
53140 matchedSlash = false;
53141 end = i + 1;
53142 }
53143 }
53144
53145 if (end === -1) return '';
53146 return path.slice(start, end);
53147 }
53148 },
53149
53150 extname: function extname(path) {
53151 assertPath(path);
53152 var startDot = -1;
53153 var startPart = 0;
53154 var end = -1;
53155 var matchedSlash = true;
53156 // Track the state of characters (if any) we see before our first dot and
53157 // after any path separator we find
53158 var preDotState = 0;
53159 for (var i = path.length - 1; i >= 0; --i) {
53160 var code = path.charCodeAt(i);
53161 if (code === 47 /*/*/) {
53162 // If we reached a path separator that was not part of a set of path
53163 // separators at the end of the string, stop now
53164 if (!matchedSlash) {
53165 startPart = i + 1;
53166 break;
53167 }
53168 continue;
53169 }
53170 if (end === -1) {
53171 // We saw the first non-path separator, mark this as the end of our
53172 // extension
53173 matchedSlash = false;
53174 end = i + 1;
53175 }
53176 if (code === 46 /*.*/) {
53177 // If this is our first dot, mark it as the start of our extension
53178 if (startDot === -1)
53179 startDot = i;
53180 else if (preDotState !== 1)
53181 preDotState = 1;
53182 } else if (startDot !== -1) {
53183 // We saw a non-dot and non-path separator before our dot, so we should
53184 // have a good chance at having a non-empty extension
53185 preDotState = -1;
53186 }
53187 }
53188
53189 if (startDot === -1 || end === -1 ||
53190 // We saw a non-dot character immediately before the dot
53191 preDotState === 0 ||
53192 // The (right-most) trimmed path component is exactly '..'
53193 preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
53194 return '';
53195 }
53196 return path.slice(startDot, end);
53197 },
53198
53199 format: function format(pathObject) {
53200 if (pathObject === null || typeof pathObject !== 'object') {
53201 throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof pathObject);
53202 }
53203 return _format('/', pathObject);
53204 },
53205
53206 parse: function parse(path) {
53207 assertPath(path);
53208
53209 var ret = { root: '', dir: '', base: '', ext: '', name: '' };
53210 if (path.length === 0) return ret;
53211 var code = path.charCodeAt(0);
53212 var isAbsolute = code === 47 /*/*/;
53213 var start;
53214 if (isAbsolute) {
53215 ret.root = '/';
53216 start = 1;
53217 } else {
53218 start = 0;
53219 }
53220 var startDot = -1;
53221 var startPart = 0;
53222 var end = -1;
53223 var matchedSlash = true;
53224 var i = path.length - 1;
53225
53226 // Track the state of characters (if any) we see before our first dot and
53227 // after any path separator we find
53228 var preDotState = 0;
53229
53230 // Get non-dir info
53231 for (; i >= start; --i) {
53232 code = path.charCodeAt(i);
53233 if (code === 47 /*/*/) {
53234 // If we reached a path separator that was not part of a set of path
53235 // separators at the end of the string, stop now
53236 if (!matchedSlash) {
53237 startPart = i + 1;
53238 break;
53239 }
53240 continue;
53241 }
53242 if (end === -1) {
53243 // We saw the first non-path separator, mark this as the end of our
53244 // extension
53245 matchedSlash = false;
53246 end = i + 1;
53247 }
53248 if (code === 46 /*.*/) {
53249 // If this is our first dot, mark it as the start of our extension
53250 if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;
53251 } else if (startDot !== -1) {
53252 // We saw a non-dot and non-path separator before our dot, so we should
53253 // have a good chance at having a non-empty extension
53254 preDotState = -1;
53255 }
53256 }
53257
53258 if (startDot === -1 || end === -1 ||
53259 // We saw a non-dot character immediately before the dot
53260 preDotState === 0 ||
53261 // The (right-most) trimmed path component is exactly '..'
53262 preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
53263 if (end !== -1) {
53264 if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);
53265 }
53266 } else {
53267 if (startPart === 0 && isAbsolute) {
53268 ret.name = path.slice(1, startDot);
53269 ret.base = path.slice(1, end);
53270 } else {
53271 ret.name = path.slice(startPart, startDot);
53272 ret.base = path.slice(startPart, end);
53273 }
53274 ret.ext = path.slice(startDot, end);
53275 }
53276
53277 if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';
53278
53279 return ret;
53280 },
53281
53282 sep: '/',
53283 delimiter: ':',
53284 win32: null,
53285 posix: null
53286};
53287
53288posix.posix = posix;
53289
53290module.exports = posix;
53291
53292
53293/***/ }),
53294
53295/***/ "?1da1":
53296/*!********************!*\
53297 !*** fs (ignored) ***!
53298 \********************/
53299/***/ (() => {
53300
53301/* (ignored) */
53302
53303/***/ }),
53304
53305/***/ "?35ed":
53306/*!********************!*\
53307 !*** fs (ignored) ***!
53308 \********************/
53309/***/ (() => {
53310
53311/* (ignored) */
53312
53313/***/ }),
53314
53315/***/ "?3c87":
53316/*!********************!*\
53317 !*** fs (ignored) ***!
53318 \********************/
53319/***/ (() => {
53320
53321/* (ignored) */
53322
53323/***/ }),
53324
53325/***/ "?dbae":
53326/*!********************!*\
53327 !*** fs (ignored) ***!
53328 \********************/
53329/***/ (() => {
53330
53331/* (ignored) */
53332
53333/***/ }),
53334
53335/***/ "?8ed1":
53336/*!********************!*\
53337 !*** fs (ignored) ***!
53338 \********************/
53339/***/ (() => {
53340
53341/* (ignored) */
53342
53343/***/ }),
53344
53345/***/ "?2b40":
53346/*!********************!*\
53347 !*** fs (ignored) ***!
53348 \********************/
53349/***/ (() => {
53350
53351/* (ignored) */
53352
53353/***/ }),
53354
53355/***/ "?c5f1":
53356/*!********************!*\
53357 !*** fs (ignored) ***!
53358 \********************/
53359/***/ (() => {
53360
53361/* (ignored) */
53362
53363/***/ }),
53364
53365/***/ "?a3fa":
53366/*!********************!*\
53367 !*** fs (ignored) ***!
53368 \********************/
53369/***/ (() => {
53370
53371/* (ignored) */
53372
53373/***/ }),
53374
53375/***/ "?ebf4":
53376/*!********************!*\
53377 !*** fs (ignored) ***!
53378 \********************/
53379/***/ (() => {
53380
53381/* (ignored) */
53382
53383/***/ }),
53384
53385/***/ "?e940":
53386/*!********************!*\
53387 !*** fs (ignored) ***!
53388 \********************/
53389/***/ (() => {
53390
53391/* (ignored) */
53392
53393/***/ }),
53394
53395/***/ "?a3b8":
53396/*!********************!*\
53397 !*** fs (ignored) ***!
53398 \********************/
53399/***/ (() => {
53400
53401/* (ignored) */
53402
53403/***/ }),
53404
53405/***/ "?0f62":
53406/*!********************!*\
53407 !*** fs (ignored) ***!
53408 \********************/
53409/***/ (() => {
53410
53411/* (ignored) */
53412
53413/***/ }),
53414
53415/***/ "./node_modules/d3-array/src/array.js":
53416/*!********************************************!*\
53417 !*** ./node_modules/d3-array/src/array.js ***!
53418 \********************************************/
53419/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
53420
53421"use strict";
53422__webpack_require__.r(__webpack_exports__);
53423/* harmony export */ __webpack_require__.d(__webpack_exports__, {
53424/* harmony export */ "map": () => (/* binding */ map),
53425/* harmony export */ "slice": () => (/* binding */ slice)
53426/* harmony export */ });
53427var array = Array.prototype;
53428
53429var slice = array.slice;
53430var map = array.map;
53431
53432
53433/***/ }),
53434
53435/***/ "./node_modules/d3-array/src/ascending.js":
53436/*!************************************************!*\
53437 !*** ./node_modules/d3-array/src/ascending.js ***!
53438 \************************************************/
53439/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
53440
53441"use strict";
53442__webpack_require__.r(__webpack_exports__);
53443/* harmony export */ __webpack_require__.d(__webpack_exports__, {
53444/* harmony export */ "default": () => (/* binding */ ascending)
53445/* harmony export */ });
53446function ascending(a, b) {
53447 return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
53448}
53449
53450
53451/***/ }),
53452
53453/***/ "./node_modules/d3-array/src/bin.js":
53454/*!******************************************!*\
53455 !*** ./node_modules/d3-array/src/bin.js ***!
53456 \******************************************/
53457/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
53458
53459"use strict";
53460__webpack_require__.r(__webpack_exports__);
53461/* harmony export */ __webpack_require__.d(__webpack_exports__, {
53462/* harmony export */ "default": () => (/* binding */ bin)
53463/* harmony export */ });
53464/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./array.js */ "./node_modules/d3-array/src/array.js");
53465/* harmony import */ var _bisect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./bisect.js */ "./node_modules/d3-array/src/bisect.js");
53466/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-array/src/constant.js");
53467/* harmony import */ var _extent_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./extent.js */ "./node_modules/d3-array/src/extent.js");
53468/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity.js */ "./node_modules/d3-array/src/identity.js");
53469/* harmony import */ var _nice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nice.js */ "./node_modules/d3-array/src/nice.js");
53470/* harmony import */ var _ticks_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ticks.js */ "./node_modules/d3-array/src/ticks.js");
53471/* harmony import */ var _threshold_sturges_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./threshold/sturges.js */ "./node_modules/d3-array/src/threshold/sturges.js");
53472
53473
53474
53475
53476
53477
53478
53479
53480
53481function bin() {
53482 var value = _identity_js__WEBPACK_IMPORTED_MODULE_0__["default"],
53483 domain = _extent_js__WEBPACK_IMPORTED_MODULE_1__["default"],
53484 threshold = _threshold_sturges_js__WEBPACK_IMPORTED_MODULE_2__["default"];
53485
53486 function histogram(data) {
53487 if (!Array.isArray(data)) data = Array.from(data);
53488
53489 var i,
53490 n = data.length,
53491 x,
53492 values = new Array(n);
53493
53494 for (i = 0; i < n; ++i) {
53495 values[i] = value(data[i], i, data);
53496 }
53497
53498 var xz = domain(values),
53499 x0 = xz[0],
53500 x1 = xz[1],
53501 tz = threshold(values, x0, x1);
53502
53503 // Convert number of thresholds into uniform thresholds, and nice the
53504 // default domain accordingly.
53505 if (!Array.isArray(tz)) {
53506 const max = x1, tn = +tz;
53507 if (domain === _extent_js__WEBPACK_IMPORTED_MODULE_1__["default"]) [x0, x1] = (0,_nice_js__WEBPACK_IMPORTED_MODULE_3__["default"])(x0, x1, tn);
53508 tz = (0,_ticks_js__WEBPACK_IMPORTED_MODULE_4__["default"])(x0, x1, tn);
53509
53510 // If the last threshold is coincident with the domain’s upper bound, the
53511 // last bin will be zero-width. If the default domain is used, and this
53512 // last threshold is coincident with the maximum input value, we can
53513 // extend the niced upper bound by one tick to ensure uniform bin widths;
53514 // otherwise, we simply remove the last threshold. Note that we don’t
53515 // coerce values or the domain to numbers, and thus must be careful to
53516 // compare order (>=) rather than strict equality (===)!
53517 if (tz[tz.length - 1] >= x1) {
53518 if (max >= x1 && domain === _extent_js__WEBPACK_IMPORTED_MODULE_1__["default"]) {
53519 const step = (0,_ticks_js__WEBPACK_IMPORTED_MODULE_4__.tickIncrement)(x0, x1, tn);
53520 if (isFinite(step)) {
53521 if (step > 0) {
53522 x1 = (Math.floor(x1 / step) + 1) * step;
53523 } else if (step < 0) {
53524 x1 = (Math.ceil(x1 * -step) + 1) / -step;
53525 }
53526 }
53527 } else {
53528 tz.pop();
53529 }
53530 }
53531 }
53532
53533 // Remove any thresholds outside the domain.
53534 var m = tz.length;
53535 while (tz[0] <= x0) tz.shift(), --m;
53536 while (tz[m - 1] > x1) tz.pop(), --m;
53537
53538 var bins = new Array(m + 1),
53539 bin;
53540
53541 // Initialize bins.
53542 for (i = 0; i <= m; ++i) {
53543 bin = bins[i] = [];
53544 bin.x0 = i > 0 ? tz[i - 1] : x0;
53545 bin.x1 = i < m ? tz[i] : x1;
53546 }
53547
53548 // Assign data to bins by value, ignoring any outside the domain.
53549 for (i = 0; i < n; ++i) {
53550 x = values[i];
53551 if (x != null && x0 <= x && x <= x1) {
53552 bins[(0,_bisect_js__WEBPACK_IMPORTED_MODULE_5__["default"])(tz, x, 0, m)].push(data[i]);
53553 }
53554 }
53555
53556 return bins;
53557 }
53558
53559 histogram.value = function(_) {
53560 return arguments.length ? (value = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_6__["default"])(_), histogram) : value;
53561 };
53562
53563 histogram.domain = function(_) {
53564 return arguments.length ? (domain = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_6__["default"])([_[0], _[1]]), histogram) : domain;
53565 };
53566
53567 histogram.thresholds = function(_) {
53568 return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? (0,_constant_js__WEBPACK_IMPORTED_MODULE_6__["default"])(_array_js__WEBPACK_IMPORTED_MODULE_7__.slice.call(_)) : (0,_constant_js__WEBPACK_IMPORTED_MODULE_6__["default"])(_), histogram) : threshold;
53569 };
53570
53571 return histogram;
53572}
53573
53574
53575/***/ }),
53576
53577/***/ "./node_modules/d3-array/src/bisect.js":
53578/*!*********************************************!*\
53579 !*** ./node_modules/d3-array/src/bisect.js ***!
53580 \*********************************************/
53581/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
53582
53583"use strict";
53584__webpack_require__.r(__webpack_exports__);
53585/* harmony export */ __webpack_require__.d(__webpack_exports__, {
53586/* harmony export */ "bisectCenter": () => (/* binding */ bisectCenter),
53587/* harmony export */ "bisectLeft": () => (/* binding */ bisectLeft),
53588/* harmony export */ "bisectRight": () => (/* binding */ bisectRight),
53589/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
53590/* harmony export */ });
53591/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ascending.js */ "./node_modules/d3-array/src/ascending.js");
53592/* harmony import */ var _bisector_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bisector.js */ "./node_modules/d3-array/src/bisector.js");
53593/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./number.js */ "./node_modules/d3-array/src/number.js");
53594
53595
53596
53597
53598const ascendingBisect = (0,_bisector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(_ascending_js__WEBPACK_IMPORTED_MODULE_1__["default"]);
53599const bisectRight = ascendingBisect.right;
53600const bisectLeft = ascendingBisect.left;
53601const bisectCenter = (0,_bisector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(_number_js__WEBPACK_IMPORTED_MODULE_2__["default"]).center;
53602/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (bisectRight);
53603
53604
53605/***/ }),
53606
53607/***/ "./node_modules/d3-array/src/bisector.js":
53608/*!***********************************************!*\
53609 !*** ./node_modules/d3-array/src/bisector.js ***!
53610 \***********************************************/
53611/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
53612
53613"use strict";
53614__webpack_require__.r(__webpack_exports__);
53615/* harmony export */ __webpack_require__.d(__webpack_exports__, {
53616/* harmony export */ "default": () => (/* binding */ bisector)
53617/* harmony export */ });
53618/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ "./node_modules/d3-array/src/ascending.js");
53619
53620
53621function bisector(f) {
53622 let delta = f;
53623 let compare1 = f;
53624 let compare2 = f;
53625
53626 if (f.length !== 2) {
53627 delta = (d, x) => f(d) - x;
53628 compare1 = _ascending_js__WEBPACK_IMPORTED_MODULE_0__["default"];
53629 compare2 = (d, x) => (0,_ascending_js__WEBPACK_IMPORTED_MODULE_0__["default"])(f(d), x);
53630 }
53631
53632 function left(a, x, lo = 0, hi = a.length) {
53633 if (lo < hi) {
53634 if (compare1(x, x) !== 0) return hi;
53635 do {
53636 const mid = (lo + hi) >>> 1;
53637 if (compare2(a[mid], x) < 0) lo = mid + 1;
53638 else hi = mid;
53639 } while (lo < hi);
53640 }
53641 return lo;
53642 }
53643
53644 function right(a, x, lo = 0, hi = a.length) {
53645 if (lo < hi) {
53646 if (compare1(x, x) !== 0) return hi;
53647 do {
53648 const mid = (lo + hi) >>> 1;
53649 if (compare2(a[mid], x) <= 0) lo = mid + 1;
53650 else hi = mid;
53651 } while (lo < hi);
53652 }
53653 return lo;
53654 }
53655
53656 function center(a, x, lo = 0, hi = a.length) {
53657 const i = left(a, x, lo, hi - 1);
53658 return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;
53659 }
53660
53661 return {left, center, right};
53662}
53663
53664
53665/***/ }),
53666
53667/***/ "./node_modules/d3-array/src/constant.js":
53668/*!***********************************************!*\
53669 !*** ./node_modules/d3-array/src/constant.js ***!
53670 \***********************************************/
53671/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
53672
53673"use strict";
53674__webpack_require__.r(__webpack_exports__);
53675/* harmony export */ __webpack_require__.d(__webpack_exports__, {
53676/* harmony export */ "default": () => (/* binding */ constant)
53677/* harmony export */ });
53678function constant(x) {
53679 return () => x;
53680}
53681
53682
53683/***/ }),
53684
53685/***/ "./node_modules/d3-array/src/count.js":
53686/*!********************************************!*\
53687 !*** ./node_modules/d3-array/src/count.js ***!
53688 \********************************************/
53689/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
53690
53691"use strict";
53692__webpack_require__.r(__webpack_exports__);
53693/* harmony export */ __webpack_require__.d(__webpack_exports__, {
53694/* harmony export */ "default": () => (/* binding */ count)
53695/* harmony export */ });
53696function count(values, valueof) {
53697 let count = 0;
53698 if (valueof === undefined) {
53699 for (let value of values) {
53700 if (value != null && (value = +value) >= value) {
53701 ++count;
53702 }
53703 }
53704 } else {
53705 let index = -1;
53706 for (let value of values) {
53707 if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
53708 ++count;
53709 }
53710 }
53711 }
53712 return count;
53713}
53714
53715
53716/***/ }),
53717
53718/***/ "./node_modules/d3-array/src/cross.js":
53719/*!********************************************!*\
53720 !*** ./node_modules/d3-array/src/cross.js ***!
53721 \********************************************/
53722/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
53723
53724"use strict";
53725__webpack_require__.r(__webpack_exports__);
53726/* harmony export */ __webpack_require__.d(__webpack_exports__, {
53727/* harmony export */ "default": () => (/* binding */ cross)
53728/* harmony export */ });
53729function length(array) {
53730 return array.length | 0;
53731}
53732
53733function empty(length) {
53734 return !(length > 0);
53735}
53736
53737function arrayify(values) {
53738 return typeof values !== "object" || "length" in values ? values : Array.from(values);
53739}
53740
53741function reducer(reduce) {
53742 return values => reduce(...values);
53743}
53744
53745function cross(...values) {
53746 const reduce = typeof values[values.length - 1] === "function" && reducer(values.pop());
53747 values = values.map(arrayify);
53748 const lengths = values.map(length);
53749 const j = values.length - 1;
53750 const index = new Array(j + 1).fill(0);
53751 const product = [];
53752 if (j < 0 || lengths.some(empty)) return product;
53753 while (true) {
53754 product.push(index.map((j, i) => values[i][j]));
53755 let i = j;
53756 while (++index[i] === lengths[i]) {
53757 if (i === 0) return reduce ? product.map(reduce) : product;
53758 index[i--] = 0;
53759 }
53760 }
53761}
53762
53763
53764/***/ }),
53765
53766/***/ "./node_modules/d3-array/src/cumsum.js":
53767/*!*********************************************!*\
53768 !*** ./node_modules/d3-array/src/cumsum.js ***!
53769 \*********************************************/
53770/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
53771
53772"use strict";
53773__webpack_require__.r(__webpack_exports__);
53774/* harmony export */ __webpack_require__.d(__webpack_exports__, {
53775/* harmony export */ "default": () => (/* binding */ cumsum)
53776/* harmony export */ });
53777function cumsum(values, valueof) {
53778 var sum = 0, index = 0;
53779 return Float64Array.from(values, valueof === undefined
53780 ? v => (sum += +v || 0)
53781 : v => (sum += +valueof(v, index++, values) || 0));
53782}
53783
53784/***/ }),
53785
53786/***/ "./node_modules/d3-array/src/descending.js":
53787/*!*************************************************!*\
53788 !*** ./node_modules/d3-array/src/descending.js ***!
53789 \*************************************************/
53790/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
53791
53792"use strict";
53793__webpack_require__.r(__webpack_exports__);
53794/* harmony export */ __webpack_require__.d(__webpack_exports__, {
53795/* harmony export */ "default": () => (/* binding */ descending)
53796/* harmony export */ });
53797function descending(a, b) {
53798 return a == null || b == null ? NaN
53799 : b < a ? -1
53800 : b > a ? 1
53801 : b >= a ? 0
53802 : NaN;
53803}
53804
53805
53806/***/ }),
53807
53808/***/ "./node_modules/d3-array/src/deviation.js":
53809/*!************************************************!*\
53810 !*** ./node_modules/d3-array/src/deviation.js ***!
53811 \************************************************/
53812/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
53813
53814"use strict";
53815__webpack_require__.r(__webpack_exports__);
53816/* harmony export */ __webpack_require__.d(__webpack_exports__, {
53817/* harmony export */ "default": () => (/* binding */ deviation)
53818/* harmony export */ });
53819/* harmony import */ var _variance_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./variance.js */ "./node_modules/d3-array/src/variance.js");
53820
53821
53822function deviation(values, valueof) {
53823 const v = (0,_variance_js__WEBPACK_IMPORTED_MODULE_0__["default"])(values, valueof);
53824 return v ? Math.sqrt(v) : v;
53825}
53826
53827
53828/***/ }),
53829
53830/***/ "./node_modules/d3-array/src/difference.js":
53831/*!*************************************************!*\
53832 !*** ./node_modules/d3-array/src/difference.js ***!
53833 \*************************************************/
53834/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
53835
53836"use strict";
53837__webpack_require__.r(__webpack_exports__);
53838/* harmony export */ __webpack_require__.d(__webpack_exports__, {
53839/* harmony export */ "default": () => (/* binding */ difference)
53840/* harmony export */ });
53841/* harmony import */ var internmap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! internmap */ "./node_modules/internmap/src/index.js");
53842
53843
53844function difference(values, ...others) {
53845 values = new internmap__WEBPACK_IMPORTED_MODULE_0__.InternSet(values);
53846 for (const other of others) {
53847 for (const value of other) {
53848 values.delete(value);
53849 }
53850 }
53851 return values;
53852}
53853
53854
53855/***/ }),
53856
53857/***/ "./node_modules/d3-array/src/disjoint.js":
53858/*!***********************************************!*\
53859 !*** ./node_modules/d3-array/src/disjoint.js ***!
53860 \***********************************************/
53861/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
53862
53863"use strict";
53864__webpack_require__.r(__webpack_exports__);
53865/* harmony export */ __webpack_require__.d(__webpack_exports__, {
53866/* harmony export */ "default": () => (/* binding */ disjoint)
53867/* harmony export */ });
53868/* harmony import */ var internmap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! internmap */ "./node_modules/internmap/src/index.js");
53869
53870
53871function disjoint(values, other) {
53872 const iterator = other[Symbol.iterator](), set = new internmap__WEBPACK_IMPORTED_MODULE_0__.InternSet();
53873 for (const v of values) {
53874 if (set.has(v)) return false;
53875 let value, done;
53876 while (({value, done} = iterator.next())) {
53877 if (done) break;
53878 if (Object.is(v, value)) return false;
53879 set.add(value);
53880 }
53881 }
53882 return true;
53883}
53884
53885
53886/***/ }),
53887
53888/***/ "./node_modules/d3-array/src/every.js":
53889/*!********************************************!*\
53890 !*** ./node_modules/d3-array/src/every.js ***!
53891 \********************************************/
53892/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
53893
53894"use strict";
53895__webpack_require__.r(__webpack_exports__);
53896/* harmony export */ __webpack_require__.d(__webpack_exports__, {
53897/* harmony export */ "default": () => (/* binding */ every)
53898/* harmony export */ });
53899function every(values, test) {
53900 if (typeof test !== "function") throw new TypeError("test is not a function");
53901 let index = -1;
53902 for (const value of values) {
53903 if (!test(value, ++index, values)) {
53904 return false;
53905 }
53906 }
53907 return true;
53908}
53909
53910
53911/***/ }),
53912
53913/***/ "./node_modules/d3-array/src/extent.js":
53914/*!*********************************************!*\
53915 !*** ./node_modules/d3-array/src/extent.js ***!
53916 \*********************************************/
53917/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
53918
53919"use strict";
53920__webpack_require__.r(__webpack_exports__);
53921/* harmony export */ __webpack_require__.d(__webpack_exports__, {
53922/* harmony export */ "default": () => (/* binding */ extent)
53923/* harmony export */ });
53924function extent(values, valueof) {
53925 let min;
53926 let max;
53927 if (valueof === undefined) {
53928 for (const value of values) {
53929 if (value != null) {
53930 if (min === undefined) {
53931 if (value >= value) min = max = value;
53932 } else {
53933 if (min > value) min = value;
53934 if (max < value) max = value;
53935 }
53936 }
53937 }
53938 } else {
53939 let index = -1;
53940 for (let value of values) {
53941 if ((value = valueof(value, ++index, values)) != null) {
53942 if (min === undefined) {
53943 if (value >= value) min = max = value;
53944 } else {
53945 if (min > value) min = value;
53946 if (max < value) max = value;
53947 }
53948 }
53949 }
53950 }
53951 return [min, max];
53952}
53953
53954
53955/***/ }),
53956
53957/***/ "./node_modules/d3-array/src/filter.js":
53958/*!*********************************************!*\
53959 !*** ./node_modules/d3-array/src/filter.js ***!
53960 \*********************************************/
53961/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
53962
53963"use strict";
53964__webpack_require__.r(__webpack_exports__);
53965/* harmony export */ __webpack_require__.d(__webpack_exports__, {
53966/* harmony export */ "default": () => (/* binding */ filter)
53967/* harmony export */ });
53968function filter(values, test) {
53969 if (typeof test !== "function") throw new TypeError("test is not a function");
53970 const array = [];
53971 let index = -1;
53972 for (const value of values) {
53973 if (test(value, ++index, values)) {
53974 array.push(value);
53975 }
53976 }
53977 return array;
53978}
53979
53980
53981/***/ }),
53982
53983/***/ "./node_modules/d3-array/src/fsum.js":
53984/*!*******************************************!*\
53985 !*** ./node_modules/d3-array/src/fsum.js ***!
53986 \*******************************************/
53987/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
53988
53989"use strict";
53990__webpack_require__.r(__webpack_exports__);
53991/* harmony export */ __webpack_require__.d(__webpack_exports__, {
53992/* harmony export */ "Adder": () => (/* binding */ Adder),
53993/* harmony export */ "fcumsum": () => (/* binding */ fcumsum),
53994/* harmony export */ "fsum": () => (/* binding */ fsum)
53995/* harmony export */ });
53996// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423
53997class Adder {
53998 constructor() {
53999 this._partials = new Float64Array(32);
54000 this._n = 0;
54001 }
54002 add(x) {
54003 const p = this._partials;
54004 let i = 0;
54005 for (let j = 0; j < this._n && j < 32; j++) {
54006 const y = p[j],
54007 hi = x + y,
54008 lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);
54009 if (lo) p[i++] = lo;
54010 x = hi;
54011 }
54012 p[i] = x;
54013 this._n = i + 1;
54014 return this;
54015 }
54016 valueOf() {
54017 const p = this._partials;
54018 let n = this._n, x, y, lo, hi = 0;
54019 if (n > 0) {
54020 hi = p[--n];
54021 while (n > 0) {
54022 x = hi;
54023 y = p[--n];
54024 hi = x + y;
54025 lo = y - (hi - x);
54026 if (lo) break;
54027 }
54028 if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {
54029 y = lo * 2;
54030 x = hi + y;
54031 if (y == x - hi) hi = x;
54032 }
54033 }
54034 return hi;
54035 }
54036}
54037
54038function fsum(values, valueof) {
54039 const adder = new Adder();
54040 if (valueof === undefined) {
54041 for (let value of values) {
54042 if (value = +value) {
54043 adder.add(value);
54044 }
54045 }
54046 } else {
54047 let index = -1;
54048 for (let value of values) {
54049 if (value = +valueof(value, ++index, values)) {
54050 adder.add(value);
54051 }
54052 }
54053 }
54054 return +adder;
54055}
54056
54057function fcumsum(values, valueof) {
54058 const adder = new Adder();
54059 let index = -1;
54060 return Float64Array.from(values, valueof === undefined
54061 ? v => adder.add(+v || 0)
54062 : v => adder.add(+valueof(v, ++index, values) || 0)
54063 );
54064}
54065
54066
54067/***/ }),
54068
54069/***/ "./node_modules/d3-array/src/greatest.js":
54070/*!***********************************************!*\
54071 !*** ./node_modules/d3-array/src/greatest.js ***!
54072 \***********************************************/
54073/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54074
54075"use strict";
54076__webpack_require__.r(__webpack_exports__);
54077/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54078/* harmony export */ "default": () => (/* binding */ greatest)
54079/* harmony export */ });
54080/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ "./node_modules/d3-array/src/ascending.js");
54081
54082
54083function greatest(values, compare = _ascending_js__WEBPACK_IMPORTED_MODULE_0__["default"]) {
54084 let max;
54085 let defined = false;
54086 if (compare.length === 1) {
54087 let maxValue;
54088 for (const element of values) {
54089 const value = compare(element);
54090 if (defined
54091 ? (0,_ascending_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value, maxValue) > 0
54092 : (0,_ascending_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value, value) === 0) {
54093 max = element;
54094 maxValue = value;
54095 defined = true;
54096 }
54097 }
54098 } else {
54099 for (const value of values) {
54100 if (defined
54101 ? compare(value, max) > 0
54102 : compare(value, value) === 0) {
54103 max = value;
54104 defined = true;
54105 }
54106 }
54107 }
54108 return max;
54109}
54110
54111
54112/***/ }),
54113
54114/***/ "./node_modules/d3-array/src/greatestIndex.js":
54115/*!****************************************************!*\
54116 !*** ./node_modules/d3-array/src/greatestIndex.js ***!
54117 \****************************************************/
54118/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54119
54120"use strict";
54121__webpack_require__.r(__webpack_exports__);
54122/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54123/* harmony export */ "default": () => (/* binding */ greatestIndex)
54124/* harmony export */ });
54125/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ "./node_modules/d3-array/src/ascending.js");
54126/* harmony import */ var _maxIndex_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maxIndex.js */ "./node_modules/d3-array/src/maxIndex.js");
54127
54128
54129
54130function greatestIndex(values, compare = _ascending_js__WEBPACK_IMPORTED_MODULE_0__["default"]) {
54131 if (compare.length === 1) return (0,_maxIndex_js__WEBPACK_IMPORTED_MODULE_1__["default"])(values, compare);
54132 let maxValue;
54133 let max = -1;
54134 let index = -1;
54135 for (const value of values) {
54136 ++index;
54137 if (max < 0
54138 ? compare(value, value) === 0
54139 : compare(value, maxValue) > 0) {
54140 maxValue = value;
54141 max = index;
54142 }
54143 }
54144 return max;
54145}
54146
54147
54148/***/ }),
54149
54150/***/ "./node_modules/d3-array/src/group.js":
54151/*!********************************************!*\
54152 !*** ./node_modules/d3-array/src/group.js ***!
54153 \********************************************/
54154/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54155
54156"use strict";
54157__webpack_require__.r(__webpack_exports__);
54158/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54159/* harmony export */ "default": () => (/* binding */ group),
54160/* harmony export */ "flatGroup": () => (/* binding */ flatGroup),
54161/* harmony export */ "flatRollup": () => (/* binding */ flatRollup),
54162/* harmony export */ "groups": () => (/* binding */ groups),
54163/* harmony export */ "index": () => (/* binding */ index),
54164/* harmony export */ "indexes": () => (/* binding */ indexes),
54165/* harmony export */ "rollup": () => (/* binding */ rollup),
54166/* harmony export */ "rollups": () => (/* binding */ rollups)
54167/* harmony export */ });
54168/* harmony import */ var internmap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! internmap */ "./node_modules/internmap/src/index.js");
54169/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity.js */ "./node_modules/d3-array/src/identity.js");
54170
54171
54172
54173function group(values, ...keys) {
54174 return nest(values, _identity_js__WEBPACK_IMPORTED_MODULE_0__["default"], _identity_js__WEBPACK_IMPORTED_MODULE_0__["default"], keys);
54175}
54176
54177function groups(values, ...keys) {
54178 return nest(values, Array.from, _identity_js__WEBPACK_IMPORTED_MODULE_0__["default"], keys);
54179}
54180
54181function flatten(groups, keys) {
54182 for (let i = 1, n = keys.length; i < n; ++i) {
54183 groups = groups.flatMap(g => g.pop().map(([key, value]) => [...g, key, value]));
54184 }
54185 return groups;
54186}
54187
54188function flatGroup(values, ...keys) {
54189 return flatten(groups(values, ...keys), keys);
54190}
54191
54192function flatRollup(values, reduce, ...keys) {
54193 return flatten(rollups(values, reduce, ...keys), keys);
54194}
54195
54196function rollup(values, reduce, ...keys) {
54197 return nest(values, _identity_js__WEBPACK_IMPORTED_MODULE_0__["default"], reduce, keys);
54198}
54199
54200function rollups(values, reduce, ...keys) {
54201 return nest(values, Array.from, reduce, keys);
54202}
54203
54204function index(values, ...keys) {
54205 return nest(values, _identity_js__WEBPACK_IMPORTED_MODULE_0__["default"], unique, keys);
54206}
54207
54208function indexes(values, ...keys) {
54209 return nest(values, Array.from, unique, keys);
54210}
54211
54212function unique(values) {
54213 if (values.length !== 1) throw new Error("duplicate key");
54214 return values[0];
54215}
54216
54217function nest(values, map, reduce, keys) {
54218 return (function regroup(values, i) {
54219 if (i >= keys.length) return reduce(values);
54220 const groups = new internmap__WEBPACK_IMPORTED_MODULE_1__.InternMap();
54221 const keyof = keys[i++];
54222 let index = -1;
54223 for (const value of values) {
54224 const key = keyof(value, ++index, values);
54225 const group = groups.get(key);
54226 if (group) group.push(value);
54227 else groups.set(key, [value]);
54228 }
54229 for (const [key, values] of groups) {
54230 groups.set(key, regroup(values, i));
54231 }
54232 return map(groups);
54233 })(values, 0);
54234}
54235
54236
54237/***/ }),
54238
54239/***/ "./node_modules/d3-array/src/groupSort.js":
54240/*!************************************************!*\
54241 !*** ./node_modules/d3-array/src/groupSort.js ***!
54242 \************************************************/
54243/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54244
54245"use strict";
54246__webpack_require__.r(__webpack_exports__);
54247/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54248/* harmony export */ "default": () => (/* binding */ groupSort)
54249/* harmony export */ });
54250/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ascending.js */ "./node_modules/d3-array/src/ascending.js");
54251/* harmony import */ var _group_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./group.js */ "./node_modules/d3-array/src/group.js");
54252/* harmony import */ var _sort_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sort.js */ "./node_modules/d3-array/src/sort.js");
54253
54254
54255
54256
54257function groupSort(values, reduce, key) {
54258 return (reduce.length !== 2
54259 ? (0,_sort_js__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_group_js__WEBPACK_IMPORTED_MODULE_1__.rollup)(values, reduce, key), (([ak, av], [bk, bv]) => (0,_ascending_js__WEBPACK_IMPORTED_MODULE_2__["default"])(av, bv) || (0,_ascending_js__WEBPACK_IMPORTED_MODULE_2__["default"])(ak, bk)))
54260 : (0,_sort_js__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_group_js__WEBPACK_IMPORTED_MODULE_1__["default"])(values, key), (([ak, av], [bk, bv]) => reduce(av, bv) || (0,_ascending_js__WEBPACK_IMPORTED_MODULE_2__["default"])(ak, bk))))
54261 .map(([key]) => key);
54262}
54263
54264
54265/***/ }),
54266
54267/***/ "./node_modules/d3-array/src/identity.js":
54268/*!***********************************************!*\
54269 !*** ./node_modules/d3-array/src/identity.js ***!
54270 \***********************************************/
54271/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54272
54273"use strict";
54274__webpack_require__.r(__webpack_exports__);
54275/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54276/* harmony export */ "default": () => (/* binding */ identity)
54277/* harmony export */ });
54278function identity(x) {
54279 return x;
54280}
54281
54282
54283/***/ }),
54284
54285/***/ "./node_modules/d3-array/src/index.js":
54286/*!********************************************!*\
54287 !*** ./node_modules/d3-array/src/index.js ***!
54288 \********************************************/
54289/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54290
54291"use strict";
54292__webpack_require__.r(__webpack_exports__);
54293/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54294/* harmony export */ "Adder": () => (/* reexport safe */ _fsum_js__WEBPACK_IMPORTED_MODULE_9__.Adder),
54295/* harmony export */ "InternMap": () => (/* reexport safe */ internmap__WEBPACK_IMPORTED_MODULE_55__.InternMap),
54296/* harmony export */ "InternSet": () => (/* reexport safe */ internmap__WEBPACK_IMPORTED_MODULE_55__.InternSet),
54297/* harmony export */ "ascending": () => (/* reexport safe */ _ascending_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
54298/* harmony export */ "bin": () => (/* reexport safe */ _bin_js__WEBPACK_IMPORTED_MODULE_12__["default"]),
54299/* harmony export */ "bisect": () => (/* reexport safe */ _bisect_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
54300/* harmony export */ "bisectCenter": () => (/* reexport safe */ _bisect_js__WEBPACK_IMPORTED_MODULE_0__.bisectCenter),
54301/* harmony export */ "bisectLeft": () => (/* reexport safe */ _bisect_js__WEBPACK_IMPORTED_MODULE_0__.bisectLeft),
54302/* harmony export */ "bisectRight": () => (/* reexport safe */ _bisect_js__WEBPACK_IMPORTED_MODULE_0__.bisectRight),
54303/* harmony export */ "bisector": () => (/* reexport safe */ _bisector_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
54304/* harmony export */ "count": () => (/* reexport safe */ _count_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
54305/* harmony export */ "cross": () => (/* reexport safe */ _cross_js__WEBPACK_IMPORTED_MODULE_4__["default"]),
54306/* harmony export */ "cumsum": () => (/* reexport safe */ _cumsum_js__WEBPACK_IMPORTED_MODULE_5__["default"]),
54307/* harmony export */ "descending": () => (/* reexport safe */ _descending_js__WEBPACK_IMPORTED_MODULE_6__["default"]),
54308/* harmony export */ "deviation": () => (/* reexport safe */ _deviation_js__WEBPACK_IMPORTED_MODULE_7__["default"]),
54309/* harmony export */ "difference": () => (/* reexport safe */ _difference_js__WEBPACK_IMPORTED_MODULE_49__["default"]),
54310/* harmony export */ "disjoint": () => (/* reexport safe */ _disjoint_js__WEBPACK_IMPORTED_MODULE_50__["default"]),
54311/* harmony export */ "every": () => (/* reexport safe */ _every_js__WEBPACK_IMPORTED_MODULE_42__["default"]),
54312/* harmony export */ "extent": () => (/* reexport safe */ _extent_js__WEBPACK_IMPORTED_MODULE_8__["default"]),
54313/* harmony export */ "fcumsum": () => (/* reexport safe */ _fsum_js__WEBPACK_IMPORTED_MODULE_9__.fcumsum),
54314/* harmony export */ "filter": () => (/* reexport safe */ _filter_js__WEBPACK_IMPORTED_MODULE_44__["default"]),
54315/* harmony export */ "flatGroup": () => (/* reexport safe */ _group_js__WEBPACK_IMPORTED_MODULE_10__.flatGroup),
54316/* harmony export */ "flatRollup": () => (/* reexport safe */ _group_js__WEBPACK_IMPORTED_MODULE_10__.flatRollup),
54317/* harmony export */ "fsum": () => (/* reexport safe */ _fsum_js__WEBPACK_IMPORTED_MODULE_9__.fsum),
54318/* harmony export */ "greatest": () => (/* reexport safe */ _greatest_js__WEBPACK_IMPORTED_MODULE_33__["default"]),
54319/* harmony export */ "greatestIndex": () => (/* reexport safe */ _greatestIndex_js__WEBPACK_IMPORTED_MODULE_34__["default"]),
54320/* harmony export */ "group": () => (/* reexport safe */ _group_js__WEBPACK_IMPORTED_MODULE_10__["default"]),
54321/* harmony export */ "groupSort": () => (/* reexport safe */ _groupSort_js__WEBPACK_IMPORTED_MODULE_11__["default"]),
54322/* harmony export */ "groups": () => (/* reexport safe */ _group_js__WEBPACK_IMPORTED_MODULE_10__.groups),
54323/* harmony export */ "histogram": () => (/* reexport safe */ _bin_js__WEBPACK_IMPORTED_MODULE_12__["default"]),
54324/* harmony export */ "index": () => (/* reexport safe */ _group_js__WEBPACK_IMPORTED_MODULE_10__.index),
54325/* harmony export */ "indexes": () => (/* reexport safe */ _group_js__WEBPACK_IMPORTED_MODULE_10__.indexes),
54326/* harmony export */ "intersection": () => (/* reexport safe */ _intersection_js__WEBPACK_IMPORTED_MODULE_51__["default"]),
54327/* harmony export */ "least": () => (/* reexport safe */ _least_js__WEBPACK_IMPORTED_MODULE_31__["default"]),
54328/* harmony export */ "leastIndex": () => (/* reexport safe */ _leastIndex_js__WEBPACK_IMPORTED_MODULE_32__["default"]),
54329/* harmony export */ "map": () => (/* reexport safe */ _map_js__WEBPACK_IMPORTED_MODULE_45__["default"]),
54330/* harmony export */ "max": () => (/* reexport safe */ _max_js__WEBPACK_IMPORTED_MODULE_16__["default"]),
54331/* harmony export */ "maxIndex": () => (/* reexport safe */ _maxIndex_js__WEBPACK_IMPORTED_MODULE_17__["default"]),
54332/* harmony export */ "mean": () => (/* reexport safe */ _mean_js__WEBPACK_IMPORTED_MODULE_18__["default"]),
54333/* harmony export */ "median": () => (/* reexport safe */ _median_js__WEBPACK_IMPORTED_MODULE_19__["default"]),
54334/* harmony export */ "merge": () => (/* reexport safe */ _merge_js__WEBPACK_IMPORTED_MODULE_20__["default"]),
54335/* harmony export */ "min": () => (/* reexport safe */ _min_js__WEBPACK_IMPORTED_MODULE_21__["default"]),
54336/* harmony export */ "minIndex": () => (/* reexport safe */ _minIndex_js__WEBPACK_IMPORTED_MODULE_22__["default"]),
54337/* harmony export */ "mode": () => (/* reexport safe */ _mode_js__WEBPACK_IMPORTED_MODULE_23__["default"]),
54338/* harmony export */ "nice": () => (/* reexport safe */ _nice_js__WEBPACK_IMPORTED_MODULE_24__["default"]),
54339/* harmony export */ "pairs": () => (/* reexport safe */ _pairs_js__WEBPACK_IMPORTED_MODULE_25__["default"]),
54340/* harmony export */ "permute": () => (/* reexport safe */ _permute_js__WEBPACK_IMPORTED_MODULE_26__["default"]),
54341/* harmony export */ "quantile": () => (/* reexport safe */ _quantile_js__WEBPACK_IMPORTED_MODULE_27__["default"]),
54342/* harmony export */ "quantileSorted": () => (/* reexport safe */ _quantile_js__WEBPACK_IMPORTED_MODULE_27__.quantileSorted),
54343/* harmony export */ "quickselect": () => (/* reexport safe */ _quickselect_js__WEBPACK_IMPORTED_MODULE_28__["default"]),
54344/* harmony export */ "range": () => (/* reexport safe */ _range_js__WEBPACK_IMPORTED_MODULE_29__["default"]),
54345/* harmony export */ "rank": () => (/* reexport safe */ _rank_js__WEBPACK_IMPORTED_MODULE_30__["default"]),
54346/* harmony export */ "reduce": () => (/* reexport safe */ _reduce_js__WEBPACK_IMPORTED_MODULE_46__["default"]),
54347/* harmony export */ "reverse": () => (/* reexport safe */ _reverse_js__WEBPACK_IMPORTED_MODULE_47__["default"]),
54348/* harmony export */ "rollup": () => (/* reexport safe */ _group_js__WEBPACK_IMPORTED_MODULE_10__.rollup),
54349/* harmony export */ "rollups": () => (/* reexport safe */ _group_js__WEBPACK_IMPORTED_MODULE_10__.rollups),
54350/* harmony export */ "scan": () => (/* reexport safe */ _scan_js__WEBPACK_IMPORTED_MODULE_35__["default"]),
54351/* harmony export */ "shuffle": () => (/* reexport safe */ _shuffle_js__WEBPACK_IMPORTED_MODULE_36__["default"]),
54352/* harmony export */ "shuffler": () => (/* reexport safe */ _shuffle_js__WEBPACK_IMPORTED_MODULE_36__.shuffler),
54353/* harmony export */ "some": () => (/* reexport safe */ _some_js__WEBPACK_IMPORTED_MODULE_43__["default"]),
54354/* harmony export */ "sort": () => (/* reexport safe */ _sort_js__WEBPACK_IMPORTED_MODULE_48__["default"]),
54355/* harmony export */ "subset": () => (/* reexport safe */ _subset_js__WEBPACK_IMPORTED_MODULE_52__["default"]),
54356/* harmony export */ "sum": () => (/* reexport safe */ _sum_js__WEBPACK_IMPORTED_MODULE_37__["default"]),
54357/* harmony export */ "superset": () => (/* reexport safe */ _superset_js__WEBPACK_IMPORTED_MODULE_53__["default"]),
54358/* harmony export */ "thresholdFreedmanDiaconis": () => (/* reexport safe */ _threshold_freedmanDiaconis_js__WEBPACK_IMPORTED_MODULE_13__["default"]),
54359/* harmony export */ "thresholdScott": () => (/* reexport safe */ _threshold_scott_js__WEBPACK_IMPORTED_MODULE_14__["default"]),
54360/* harmony export */ "thresholdSturges": () => (/* reexport safe */ _threshold_sturges_js__WEBPACK_IMPORTED_MODULE_15__["default"]),
54361/* harmony export */ "tickIncrement": () => (/* reexport safe */ _ticks_js__WEBPACK_IMPORTED_MODULE_38__.tickIncrement),
54362/* harmony export */ "tickStep": () => (/* reexport safe */ _ticks_js__WEBPACK_IMPORTED_MODULE_38__.tickStep),
54363/* harmony export */ "ticks": () => (/* reexport safe */ _ticks_js__WEBPACK_IMPORTED_MODULE_38__["default"]),
54364/* harmony export */ "transpose": () => (/* reexport safe */ _transpose_js__WEBPACK_IMPORTED_MODULE_39__["default"]),
54365/* harmony export */ "union": () => (/* reexport safe */ _union_js__WEBPACK_IMPORTED_MODULE_54__["default"]),
54366/* harmony export */ "variance": () => (/* reexport safe */ _variance_js__WEBPACK_IMPORTED_MODULE_40__["default"]),
54367/* harmony export */ "zip": () => (/* reexport safe */ _zip_js__WEBPACK_IMPORTED_MODULE_41__["default"])
54368/* harmony export */ });
54369/* harmony import */ var _bisect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bisect.js */ "./node_modules/d3-array/src/bisect.js");
54370/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ascending.js */ "./node_modules/d3-array/src/ascending.js");
54371/* harmony import */ var _bisector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./bisector.js */ "./node_modules/d3-array/src/bisector.js");
54372/* harmony import */ var _count_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./count.js */ "./node_modules/d3-array/src/count.js");
54373/* harmony import */ var _cross_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./cross.js */ "./node_modules/d3-array/src/cross.js");
54374/* harmony import */ var _cumsum_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cumsum.js */ "./node_modules/d3-array/src/cumsum.js");
54375/* harmony import */ var _descending_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./descending.js */ "./node_modules/d3-array/src/descending.js");
54376/* harmony import */ var _deviation_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./deviation.js */ "./node_modules/d3-array/src/deviation.js");
54377/* harmony import */ var _extent_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./extent.js */ "./node_modules/d3-array/src/extent.js");
54378/* harmony import */ var _fsum_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./fsum.js */ "./node_modules/d3-array/src/fsum.js");
54379/* harmony import */ var _group_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./group.js */ "./node_modules/d3-array/src/group.js");
54380/* harmony import */ var _groupSort_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./groupSort.js */ "./node_modules/d3-array/src/groupSort.js");
54381/* harmony import */ var _bin_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./bin.js */ "./node_modules/d3-array/src/bin.js");
54382/* harmony import */ var _threshold_freedmanDiaconis_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./threshold/freedmanDiaconis.js */ "./node_modules/d3-array/src/threshold/freedmanDiaconis.js");
54383/* harmony import */ var _threshold_scott_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./threshold/scott.js */ "./node_modules/d3-array/src/threshold/scott.js");
54384/* harmony import */ var _threshold_sturges_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./threshold/sturges.js */ "./node_modules/d3-array/src/threshold/sturges.js");
54385/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./max.js */ "./node_modules/d3-array/src/max.js");
54386/* harmony import */ var _maxIndex_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./maxIndex.js */ "./node_modules/d3-array/src/maxIndex.js");
54387/* harmony import */ var _mean_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./mean.js */ "./node_modules/d3-array/src/mean.js");
54388/* harmony import */ var _median_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./median.js */ "./node_modules/d3-array/src/median.js");
54389/* harmony import */ var _merge_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./merge.js */ "./node_modules/d3-array/src/merge.js");
54390/* harmony import */ var _min_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./min.js */ "./node_modules/d3-array/src/min.js");
54391/* harmony import */ var _minIndex_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./minIndex.js */ "./node_modules/d3-array/src/minIndex.js");
54392/* harmony import */ var _mode_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./mode.js */ "./node_modules/d3-array/src/mode.js");
54393/* harmony import */ var _nice_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./nice.js */ "./node_modules/d3-array/src/nice.js");
54394/* harmony import */ var _pairs_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./pairs.js */ "./node_modules/d3-array/src/pairs.js");
54395/* harmony import */ var _permute_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./permute.js */ "./node_modules/d3-array/src/permute.js");
54396/* harmony import */ var _quantile_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./quantile.js */ "./node_modules/d3-array/src/quantile.js");
54397/* harmony import */ var _quickselect_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./quickselect.js */ "./node_modules/d3-array/src/quickselect.js");
54398/* harmony import */ var _range_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./range.js */ "./node_modules/d3-array/src/range.js");
54399/* harmony import */ var _rank_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./rank.js */ "./node_modules/d3-array/src/rank.js");
54400/* harmony import */ var _least_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./least.js */ "./node_modules/d3-array/src/least.js");
54401/* harmony import */ var _leastIndex_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./leastIndex.js */ "./node_modules/d3-array/src/leastIndex.js");
54402/* harmony import */ var _greatest_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./greatest.js */ "./node_modules/d3-array/src/greatest.js");
54403/* harmony import */ var _greatestIndex_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./greatestIndex.js */ "./node_modules/d3-array/src/greatestIndex.js");
54404/* harmony import */ var _scan_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./scan.js */ "./node_modules/d3-array/src/scan.js");
54405/* harmony import */ var _shuffle_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./shuffle.js */ "./node_modules/d3-array/src/shuffle.js");
54406/* harmony import */ var _sum_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./sum.js */ "./node_modules/d3-array/src/sum.js");
54407/* harmony import */ var _ticks_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./ticks.js */ "./node_modules/d3-array/src/ticks.js");
54408/* harmony import */ var _transpose_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./transpose.js */ "./node_modules/d3-array/src/transpose.js");
54409/* harmony import */ var _variance_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./variance.js */ "./node_modules/d3-array/src/variance.js");
54410/* harmony import */ var _zip_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./zip.js */ "./node_modules/d3-array/src/zip.js");
54411/* harmony import */ var _every_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./every.js */ "./node_modules/d3-array/src/every.js");
54412/* harmony import */ var _some_js__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./some.js */ "./node_modules/d3-array/src/some.js");
54413/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./filter.js */ "./node_modules/d3-array/src/filter.js");
54414/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./map.js */ "./node_modules/d3-array/src/map.js");
54415/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./reduce.js */ "./node_modules/d3-array/src/reduce.js");
54416/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./reverse.js */ "./node_modules/d3-array/src/reverse.js");
54417/* harmony import */ var _sort_js__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./sort.js */ "./node_modules/d3-array/src/sort.js");
54418/* harmony import */ var _difference_js__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./difference.js */ "./node_modules/d3-array/src/difference.js");
54419/* harmony import */ var _disjoint_js__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./disjoint.js */ "./node_modules/d3-array/src/disjoint.js");
54420/* harmony import */ var _intersection_js__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./intersection.js */ "./node_modules/d3-array/src/intersection.js");
54421/* harmony import */ var _subset_js__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./subset.js */ "./node_modules/d3-array/src/subset.js");
54422/* harmony import */ var _superset_js__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./superset.js */ "./node_modules/d3-array/src/superset.js");
54423/* harmony import */ var _union_js__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./union.js */ "./node_modules/d3-array/src/union.js");
54424/* harmony import */ var internmap__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! internmap */ "./node_modules/internmap/src/index.js");
54425
54426
54427
54428
54429
54430
54431
54432
54433
54434
54435
54436
54437 // Deprecated; use bin.
54438
54439
54440
54441
54442
54443
54444
54445
54446
54447
54448
54449
54450
54451
54452
54453
54454
54455
54456
54457
54458
54459
54460 // Deprecated; use leastIndex.
54461
54462
54463
54464
54465
54466
54467
54468
54469
54470
54471
54472
54473
54474
54475
54476
54477
54478
54479
54480
54481
54482
54483/***/ }),
54484
54485/***/ "./node_modules/d3-array/src/intersection.js":
54486/*!***************************************************!*\
54487 !*** ./node_modules/d3-array/src/intersection.js ***!
54488 \***************************************************/
54489/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54490
54491"use strict";
54492__webpack_require__.r(__webpack_exports__);
54493/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54494/* harmony export */ "default": () => (/* binding */ intersection)
54495/* harmony export */ });
54496/* harmony import */ var internmap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! internmap */ "./node_modules/internmap/src/index.js");
54497
54498
54499function intersection(values, ...others) {
54500 values = new internmap__WEBPACK_IMPORTED_MODULE_0__.InternSet(values);
54501 others = others.map(set);
54502 out: for (const value of values) {
54503 for (const other of others) {
54504 if (!other.has(value)) {
54505 values.delete(value);
54506 continue out;
54507 }
54508 }
54509 }
54510 return values;
54511}
54512
54513function set(values) {
54514 return values instanceof internmap__WEBPACK_IMPORTED_MODULE_0__.InternSet ? values : new internmap__WEBPACK_IMPORTED_MODULE_0__.InternSet(values);
54515}
54516
54517
54518/***/ }),
54519
54520/***/ "./node_modules/d3-array/src/least.js":
54521/*!********************************************!*\
54522 !*** ./node_modules/d3-array/src/least.js ***!
54523 \********************************************/
54524/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54525
54526"use strict";
54527__webpack_require__.r(__webpack_exports__);
54528/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54529/* harmony export */ "default": () => (/* binding */ least)
54530/* harmony export */ });
54531/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ "./node_modules/d3-array/src/ascending.js");
54532
54533
54534function least(values, compare = _ascending_js__WEBPACK_IMPORTED_MODULE_0__["default"]) {
54535 let min;
54536 let defined = false;
54537 if (compare.length === 1) {
54538 let minValue;
54539 for (const element of values) {
54540 const value = compare(element);
54541 if (defined
54542 ? (0,_ascending_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value, minValue) < 0
54543 : (0,_ascending_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value, value) === 0) {
54544 min = element;
54545 minValue = value;
54546 defined = true;
54547 }
54548 }
54549 } else {
54550 for (const value of values) {
54551 if (defined
54552 ? compare(value, min) < 0
54553 : compare(value, value) === 0) {
54554 min = value;
54555 defined = true;
54556 }
54557 }
54558 }
54559 return min;
54560}
54561
54562
54563/***/ }),
54564
54565/***/ "./node_modules/d3-array/src/leastIndex.js":
54566/*!*************************************************!*\
54567 !*** ./node_modules/d3-array/src/leastIndex.js ***!
54568 \*************************************************/
54569/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54570
54571"use strict";
54572__webpack_require__.r(__webpack_exports__);
54573/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54574/* harmony export */ "default": () => (/* binding */ leastIndex)
54575/* harmony export */ });
54576/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ "./node_modules/d3-array/src/ascending.js");
54577/* harmony import */ var _minIndex_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./minIndex.js */ "./node_modules/d3-array/src/minIndex.js");
54578
54579
54580
54581function leastIndex(values, compare = _ascending_js__WEBPACK_IMPORTED_MODULE_0__["default"]) {
54582 if (compare.length === 1) return (0,_minIndex_js__WEBPACK_IMPORTED_MODULE_1__["default"])(values, compare);
54583 let minValue;
54584 let min = -1;
54585 let index = -1;
54586 for (const value of values) {
54587 ++index;
54588 if (min < 0
54589 ? compare(value, value) === 0
54590 : compare(value, minValue) < 0) {
54591 minValue = value;
54592 min = index;
54593 }
54594 }
54595 return min;
54596}
54597
54598
54599/***/ }),
54600
54601/***/ "./node_modules/d3-array/src/map.js":
54602/*!******************************************!*\
54603 !*** ./node_modules/d3-array/src/map.js ***!
54604 \******************************************/
54605/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54606
54607"use strict";
54608__webpack_require__.r(__webpack_exports__);
54609/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54610/* harmony export */ "default": () => (/* binding */ map)
54611/* harmony export */ });
54612function map(values, mapper) {
54613 if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
54614 if (typeof mapper !== "function") throw new TypeError("mapper is not a function");
54615 return Array.from(values, (value, index) => mapper(value, index, values));
54616}
54617
54618
54619/***/ }),
54620
54621/***/ "./node_modules/d3-array/src/max.js":
54622/*!******************************************!*\
54623 !*** ./node_modules/d3-array/src/max.js ***!
54624 \******************************************/
54625/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54626
54627"use strict";
54628__webpack_require__.r(__webpack_exports__);
54629/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54630/* harmony export */ "default": () => (/* binding */ max)
54631/* harmony export */ });
54632function max(values, valueof) {
54633 let max;
54634 if (valueof === undefined) {
54635 for (const value of values) {
54636 if (value != null
54637 && (max < value || (max === undefined && value >= value))) {
54638 max = value;
54639 }
54640 }
54641 } else {
54642 let index = -1;
54643 for (let value of values) {
54644 if ((value = valueof(value, ++index, values)) != null
54645 && (max < value || (max === undefined && value >= value))) {
54646 max = value;
54647 }
54648 }
54649 }
54650 return max;
54651}
54652
54653
54654/***/ }),
54655
54656/***/ "./node_modules/d3-array/src/maxIndex.js":
54657/*!***********************************************!*\
54658 !*** ./node_modules/d3-array/src/maxIndex.js ***!
54659 \***********************************************/
54660/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54661
54662"use strict";
54663__webpack_require__.r(__webpack_exports__);
54664/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54665/* harmony export */ "default": () => (/* binding */ maxIndex)
54666/* harmony export */ });
54667function maxIndex(values, valueof) {
54668 let max;
54669 let maxIndex = -1;
54670 let index = -1;
54671 if (valueof === undefined) {
54672 for (const value of values) {
54673 ++index;
54674 if (value != null
54675 && (max < value || (max === undefined && value >= value))) {
54676 max = value, maxIndex = index;
54677 }
54678 }
54679 } else {
54680 for (let value of values) {
54681 if ((value = valueof(value, ++index, values)) != null
54682 && (max < value || (max === undefined && value >= value))) {
54683 max = value, maxIndex = index;
54684 }
54685 }
54686 }
54687 return maxIndex;
54688}
54689
54690
54691/***/ }),
54692
54693/***/ "./node_modules/d3-array/src/mean.js":
54694/*!*******************************************!*\
54695 !*** ./node_modules/d3-array/src/mean.js ***!
54696 \*******************************************/
54697/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54698
54699"use strict";
54700__webpack_require__.r(__webpack_exports__);
54701/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54702/* harmony export */ "default": () => (/* binding */ mean)
54703/* harmony export */ });
54704function mean(values, valueof) {
54705 let count = 0;
54706 let sum = 0;
54707 if (valueof === undefined) {
54708 for (let value of values) {
54709 if (value != null && (value = +value) >= value) {
54710 ++count, sum += value;
54711 }
54712 }
54713 } else {
54714 let index = -1;
54715 for (let value of values) {
54716 if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
54717 ++count, sum += value;
54718 }
54719 }
54720 }
54721 if (count) return sum / count;
54722}
54723
54724
54725/***/ }),
54726
54727/***/ "./node_modules/d3-array/src/median.js":
54728/*!*********************************************!*\
54729 !*** ./node_modules/d3-array/src/median.js ***!
54730 \*********************************************/
54731/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54732
54733"use strict";
54734__webpack_require__.r(__webpack_exports__);
54735/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54736/* harmony export */ "default": () => (/* binding */ median)
54737/* harmony export */ });
54738/* harmony import */ var _quantile_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quantile.js */ "./node_modules/d3-array/src/quantile.js");
54739
54740
54741function median(values, valueof) {
54742 return (0,_quantile_js__WEBPACK_IMPORTED_MODULE_0__["default"])(values, 0.5, valueof);
54743}
54744
54745
54746/***/ }),
54747
54748/***/ "./node_modules/d3-array/src/merge.js":
54749/*!********************************************!*\
54750 !*** ./node_modules/d3-array/src/merge.js ***!
54751 \********************************************/
54752/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54753
54754"use strict";
54755__webpack_require__.r(__webpack_exports__);
54756/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54757/* harmony export */ "default": () => (/* binding */ merge)
54758/* harmony export */ });
54759function* flatten(arrays) {
54760 for (const array of arrays) {
54761 yield* array;
54762 }
54763}
54764
54765function merge(arrays) {
54766 return Array.from(flatten(arrays));
54767}
54768
54769
54770/***/ }),
54771
54772/***/ "./node_modules/d3-array/src/min.js":
54773/*!******************************************!*\
54774 !*** ./node_modules/d3-array/src/min.js ***!
54775 \******************************************/
54776/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54777
54778"use strict";
54779__webpack_require__.r(__webpack_exports__);
54780/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54781/* harmony export */ "default": () => (/* binding */ min)
54782/* harmony export */ });
54783function min(values, valueof) {
54784 let min;
54785 if (valueof === undefined) {
54786 for (const value of values) {
54787 if (value != null
54788 && (min > value || (min === undefined && value >= value))) {
54789 min = value;
54790 }
54791 }
54792 } else {
54793 let index = -1;
54794 for (let value of values) {
54795 if ((value = valueof(value, ++index, values)) != null
54796 && (min > value || (min === undefined && value >= value))) {
54797 min = value;
54798 }
54799 }
54800 }
54801 return min;
54802}
54803
54804
54805/***/ }),
54806
54807/***/ "./node_modules/d3-array/src/minIndex.js":
54808/*!***********************************************!*\
54809 !*** ./node_modules/d3-array/src/minIndex.js ***!
54810 \***********************************************/
54811/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54812
54813"use strict";
54814__webpack_require__.r(__webpack_exports__);
54815/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54816/* harmony export */ "default": () => (/* binding */ minIndex)
54817/* harmony export */ });
54818function minIndex(values, valueof) {
54819 let min;
54820 let minIndex = -1;
54821 let index = -1;
54822 if (valueof === undefined) {
54823 for (const value of values) {
54824 ++index;
54825 if (value != null
54826 && (min > value || (min === undefined && value >= value))) {
54827 min = value, minIndex = index;
54828 }
54829 }
54830 } else {
54831 for (let value of values) {
54832 if ((value = valueof(value, ++index, values)) != null
54833 && (min > value || (min === undefined && value >= value))) {
54834 min = value, minIndex = index;
54835 }
54836 }
54837 }
54838 return minIndex;
54839}
54840
54841
54842/***/ }),
54843
54844/***/ "./node_modules/d3-array/src/mode.js":
54845/*!*******************************************!*\
54846 !*** ./node_modules/d3-array/src/mode.js ***!
54847 \*******************************************/
54848/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54849
54850"use strict";
54851__webpack_require__.r(__webpack_exports__);
54852/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54853/* harmony export */ "default": () => (/* binding */ mode)
54854/* harmony export */ });
54855/* harmony import */ var internmap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! internmap */ "./node_modules/internmap/src/index.js");
54856
54857
54858function mode(values, valueof) {
54859 const counts = new internmap__WEBPACK_IMPORTED_MODULE_0__.InternMap();
54860 if (valueof === undefined) {
54861 for (let value of values) {
54862 if (value != null && value >= value) {
54863 counts.set(value, (counts.get(value) || 0) + 1);
54864 }
54865 }
54866 } else {
54867 let index = -1;
54868 for (let value of values) {
54869 if ((value = valueof(value, ++index, values)) != null && value >= value) {
54870 counts.set(value, (counts.get(value) || 0) + 1);
54871 }
54872 }
54873 }
54874 let modeValue;
54875 let modeCount = 0;
54876 for (const [value, count] of counts) {
54877 if (count > modeCount) {
54878 modeCount = count;
54879 modeValue = value;
54880 }
54881 }
54882 return modeValue;
54883}
54884
54885
54886/***/ }),
54887
54888/***/ "./node_modules/d3-array/src/nice.js":
54889/*!*******************************************!*\
54890 !*** ./node_modules/d3-array/src/nice.js ***!
54891 \*******************************************/
54892/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54893
54894"use strict";
54895__webpack_require__.r(__webpack_exports__);
54896/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54897/* harmony export */ "default": () => (/* binding */ nice)
54898/* harmony export */ });
54899/* harmony import */ var _ticks_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ticks.js */ "./node_modules/d3-array/src/ticks.js");
54900
54901
54902function nice(start, stop, count) {
54903 let prestep;
54904 while (true) {
54905 const step = (0,_ticks_js__WEBPACK_IMPORTED_MODULE_0__.tickIncrement)(start, stop, count);
54906 if (step === prestep || step === 0 || !isFinite(step)) {
54907 return [start, stop];
54908 } else if (step > 0) {
54909 start = Math.floor(start / step) * step;
54910 stop = Math.ceil(stop / step) * step;
54911 } else if (step < 0) {
54912 start = Math.ceil(start * step) / step;
54913 stop = Math.floor(stop * step) / step;
54914 }
54915 prestep = step;
54916 }
54917}
54918
54919
54920/***/ }),
54921
54922/***/ "./node_modules/d3-array/src/number.js":
54923/*!*********************************************!*\
54924 !*** ./node_modules/d3-array/src/number.js ***!
54925 \*********************************************/
54926/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54927
54928"use strict";
54929__webpack_require__.r(__webpack_exports__);
54930/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54931/* harmony export */ "default": () => (/* binding */ number),
54932/* harmony export */ "numbers": () => (/* binding */ numbers)
54933/* harmony export */ });
54934function number(x) {
54935 return x === null ? NaN : +x;
54936}
54937
54938function* numbers(values, valueof) {
54939 if (valueof === undefined) {
54940 for (let value of values) {
54941 if (value != null && (value = +value) >= value) {
54942 yield value;
54943 }
54944 }
54945 } else {
54946 let index = -1;
54947 for (let value of values) {
54948 if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
54949 yield value;
54950 }
54951 }
54952 }
54953}
54954
54955
54956/***/ }),
54957
54958/***/ "./node_modules/d3-array/src/pairs.js":
54959/*!********************************************!*\
54960 !*** ./node_modules/d3-array/src/pairs.js ***!
54961 \********************************************/
54962/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54963
54964"use strict";
54965__webpack_require__.r(__webpack_exports__);
54966/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54967/* harmony export */ "default": () => (/* binding */ pairs),
54968/* harmony export */ "pair": () => (/* binding */ pair)
54969/* harmony export */ });
54970function pairs(values, pairof = pair) {
54971 const pairs = [];
54972 let previous;
54973 let first = false;
54974 for (const value of values) {
54975 if (first) pairs.push(pairof(previous, value));
54976 previous = value;
54977 first = true;
54978 }
54979 return pairs;
54980}
54981
54982function pair(a, b) {
54983 return [a, b];
54984}
54985
54986
54987/***/ }),
54988
54989/***/ "./node_modules/d3-array/src/permute.js":
54990/*!**********************************************!*\
54991 !*** ./node_modules/d3-array/src/permute.js ***!
54992 \**********************************************/
54993/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
54994
54995"use strict";
54996__webpack_require__.r(__webpack_exports__);
54997/* harmony export */ __webpack_require__.d(__webpack_exports__, {
54998/* harmony export */ "default": () => (/* binding */ permute)
54999/* harmony export */ });
55000function permute(source, keys) {
55001 return Array.from(keys, key => source[key]);
55002}
55003
55004
55005/***/ }),
55006
55007/***/ "./node_modules/d3-array/src/quantile.js":
55008/*!***********************************************!*\
55009 !*** ./node_modules/d3-array/src/quantile.js ***!
55010 \***********************************************/
55011/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55012
55013"use strict";
55014__webpack_require__.r(__webpack_exports__);
55015/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55016/* harmony export */ "default": () => (/* binding */ quantile),
55017/* harmony export */ "quantileSorted": () => (/* binding */ quantileSorted)
55018/* harmony export */ });
55019/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./max.js */ "./node_modules/d3-array/src/max.js");
55020/* harmony import */ var _min_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./min.js */ "./node_modules/d3-array/src/min.js");
55021/* harmony import */ var _quickselect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./quickselect.js */ "./node_modules/d3-array/src/quickselect.js");
55022/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.js */ "./node_modules/d3-array/src/number.js");
55023
55024
55025
55026
55027
55028function quantile(values, p, valueof) {
55029 values = Float64Array.from((0,_number_js__WEBPACK_IMPORTED_MODULE_0__.numbers)(values, valueof));
55030 if (!(n = values.length)) return;
55031 if ((p = +p) <= 0 || n < 2) return (0,_min_js__WEBPACK_IMPORTED_MODULE_1__["default"])(values);
55032 if (p >= 1) return (0,_max_js__WEBPACK_IMPORTED_MODULE_2__["default"])(values);
55033 var n,
55034 i = (n - 1) * p,
55035 i0 = Math.floor(i),
55036 value0 = (0,_max_js__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_quickselect_js__WEBPACK_IMPORTED_MODULE_3__["default"])(values, i0).subarray(0, i0 + 1)),
55037 value1 = (0,_min_js__WEBPACK_IMPORTED_MODULE_1__["default"])(values.subarray(i0 + 1));
55038 return value0 + (value1 - value0) * (i - i0);
55039}
55040
55041function quantileSorted(values, p, valueof = _number_js__WEBPACK_IMPORTED_MODULE_0__["default"]) {
55042 if (!(n = values.length)) return;
55043 if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);
55044 if (p >= 1) return +valueof(values[n - 1], n - 1, values);
55045 var n,
55046 i = (n - 1) * p,
55047 i0 = Math.floor(i),
55048 value0 = +valueof(values[i0], i0, values),
55049 value1 = +valueof(values[i0 + 1], i0 + 1, values);
55050 return value0 + (value1 - value0) * (i - i0);
55051}
55052
55053
55054/***/ }),
55055
55056/***/ "./node_modules/d3-array/src/quickselect.js":
55057/*!**************************************************!*\
55058 !*** ./node_modules/d3-array/src/quickselect.js ***!
55059 \**************************************************/
55060/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55061
55062"use strict";
55063__webpack_require__.r(__webpack_exports__);
55064/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55065/* harmony export */ "default": () => (/* binding */ quickselect)
55066/* harmony export */ });
55067/* harmony import */ var _sort_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sort.js */ "./node_modules/d3-array/src/sort.js");
55068
55069
55070// Based on https://github.com/mourner/quickselect
55071// ISC license, Copyright 2018 Vladimir Agafonkin.
55072function quickselect(array, k, left = 0, right = array.length - 1, compare) {
55073 compare = compare === undefined ? _sort_js__WEBPACK_IMPORTED_MODULE_0__.ascendingDefined : (0,_sort_js__WEBPACK_IMPORTED_MODULE_0__.compareDefined)(compare);
55074
55075 while (right > left) {
55076 if (right - left > 600) {
55077 const n = right - left + 1;
55078 const m = k - left + 1;
55079 const z = Math.log(n);
55080 const s = 0.5 * Math.exp(2 * z / 3);
55081 const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);
55082 const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));
55083 const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));
55084 quickselect(array, k, newLeft, newRight, compare);
55085 }
55086
55087 const t = array[k];
55088 let i = left;
55089 let j = right;
55090
55091 swap(array, left, k);
55092 if (compare(array[right], t) > 0) swap(array, left, right);
55093
55094 while (i < j) {
55095 swap(array, i, j), ++i, --j;
55096 while (compare(array[i], t) < 0) ++i;
55097 while (compare(array[j], t) > 0) --j;
55098 }
55099
55100 if (compare(array[left], t) === 0) swap(array, left, j);
55101 else ++j, swap(array, j, right);
55102
55103 if (j <= k) left = j + 1;
55104 if (k <= j) right = j - 1;
55105 }
55106 return array;
55107}
55108
55109function swap(array, i, j) {
55110 const t = array[i];
55111 array[i] = array[j];
55112 array[j] = t;
55113}
55114
55115
55116/***/ }),
55117
55118/***/ "./node_modules/d3-array/src/range.js":
55119/*!********************************************!*\
55120 !*** ./node_modules/d3-array/src/range.js ***!
55121 \********************************************/
55122/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55123
55124"use strict";
55125__webpack_require__.r(__webpack_exports__);
55126/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55127/* harmony export */ "default": () => (/* binding */ range)
55128/* harmony export */ });
55129function range(start, stop, step) {
55130 start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;
55131
55132 var i = -1,
55133 n = Math.max(0, Math.ceil((stop - start) / step)) | 0,
55134 range = new Array(n);
55135
55136 while (++i < n) {
55137 range[i] = start + i * step;
55138 }
55139
55140 return range;
55141}
55142
55143
55144/***/ }),
55145
55146/***/ "./node_modules/d3-array/src/rank.js":
55147/*!*******************************************!*\
55148 !*** ./node_modules/d3-array/src/rank.js ***!
55149 \*******************************************/
55150/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55151
55152"use strict";
55153__webpack_require__.r(__webpack_exports__);
55154/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55155/* harmony export */ "default": () => (/* binding */ rank)
55156/* harmony export */ });
55157/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ "./node_modules/d3-array/src/ascending.js");
55158/* harmony import */ var _sort_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sort.js */ "./node_modules/d3-array/src/sort.js");
55159
55160
55161
55162function rank(values, valueof = _ascending_js__WEBPACK_IMPORTED_MODULE_0__["default"]) {
55163 if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
55164 let V = Array.from(values);
55165 const R = new Float64Array(V.length);
55166 if (valueof.length !== 2) V = V.map(valueof), valueof = _ascending_js__WEBPACK_IMPORTED_MODULE_0__["default"];
55167 const compareIndex = (i, j) => valueof(V[i], V[j]);
55168 let k, r;
55169 Uint32Array
55170 .from(V, (_, i) => i)
55171 .sort(valueof === _ascending_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? (i, j) => (0,_sort_js__WEBPACK_IMPORTED_MODULE_1__.ascendingDefined)(V[i], V[j]) : (0,_sort_js__WEBPACK_IMPORTED_MODULE_1__.compareDefined)(compareIndex))
55172 .forEach((j, i) => {
55173 const c = compareIndex(j, k === undefined ? j : k);
55174 if (c >= 0) {
55175 if (k === undefined || c > 0) k = j, r = i;
55176 R[j] = r;
55177 } else {
55178 R[j] = NaN;
55179 }
55180 });
55181 return R;
55182}
55183
55184
55185/***/ }),
55186
55187/***/ "./node_modules/d3-array/src/reduce.js":
55188/*!*********************************************!*\
55189 !*** ./node_modules/d3-array/src/reduce.js ***!
55190 \*********************************************/
55191/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55192
55193"use strict";
55194__webpack_require__.r(__webpack_exports__);
55195/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55196/* harmony export */ "default": () => (/* binding */ reduce)
55197/* harmony export */ });
55198function reduce(values, reducer, value) {
55199 if (typeof reducer !== "function") throw new TypeError("reducer is not a function");
55200 const iterator = values[Symbol.iterator]();
55201 let done, next, index = -1;
55202 if (arguments.length < 3) {
55203 ({done, value} = iterator.next());
55204 if (done) return;
55205 ++index;
55206 }
55207 while (({done, value: next} = iterator.next()), !done) {
55208 value = reducer(value, next, ++index, values);
55209 }
55210 return value;
55211}
55212
55213
55214/***/ }),
55215
55216/***/ "./node_modules/d3-array/src/reverse.js":
55217/*!**********************************************!*\
55218 !*** ./node_modules/d3-array/src/reverse.js ***!
55219 \**********************************************/
55220/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55221
55222"use strict";
55223__webpack_require__.r(__webpack_exports__);
55224/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55225/* harmony export */ "default": () => (/* binding */ reverse)
55226/* harmony export */ });
55227function reverse(values) {
55228 if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
55229 return Array.from(values).reverse();
55230}
55231
55232
55233/***/ }),
55234
55235/***/ "./node_modules/d3-array/src/scan.js":
55236/*!*******************************************!*\
55237 !*** ./node_modules/d3-array/src/scan.js ***!
55238 \*******************************************/
55239/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55240
55241"use strict";
55242__webpack_require__.r(__webpack_exports__);
55243/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55244/* harmony export */ "default": () => (/* binding */ scan)
55245/* harmony export */ });
55246/* harmony import */ var _leastIndex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./leastIndex.js */ "./node_modules/d3-array/src/leastIndex.js");
55247
55248
55249function scan(values, compare) {
55250 const index = (0,_leastIndex_js__WEBPACK_IMPORTED_MODULE_0__["default"])(values, compare);
55251 return index < 0 ? undefined : index;
55252}
55253
55254
55255/***/ }),
55256
55257/***/ "./node_modules/d3-array/src/shuffle.js":
55258/*!**********************************************!*\
55259 !*** ./node_modules/d3-array/src/shuffle.js ***!
55260 \**********************************************/
55261/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55262
55263"use strict";
55264__webpack_require__.r(__webpack_exports__);
55265/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55266/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
55267/* harmony export */ "shuffler": () => (/* binding */ shuffler)
55268/* harmony export */ });
55269/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (shuffler(Math.random));
55270
55271function shuffler(random) {
55272 return function shuffle(array, i0 = 0, i1 = array.length) {
55273 let m = i1 - (i0 = +i0);
55274 while (m) {
55275 const i = random() * m-- | 0, t = array[m + i0];
55276 array[m + i0] = array[i + i0];
55277 array[i + i0] = t;
55278 }
55279 return array;
55280 };
55281}
55282
55283
55284/***/ }),
55285
55286/***/ "./node_modules/d3-array/src/some.js":
55287/*!*******************************************!*\
55288 !*** ./node_modules/d3-array/src/some.js ***!
55289 \*******************************************/
55290/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55291
55292"use strict";
55293__webpack_require__.r(__webpack_exports__);
55294/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55295/* harmony export */ "default": () => (/* binding */ some)
55296/* harmony export */ });
55297function some(values, test) {
55298 if (typeof test !== "function") throw new TypeError("test is not a function");
55299 let index = -1;
55300 for (const value of values) {
55301 if (test(value, ++index, values)) {
55302 return true;
55303 }
55304 }
55305 return false;
55306}
55307
55308
55309/***/ }),
55310
55311/***/ "./node_modules/d3-array/src/sort.js":
55312/*!*******************************************!*\
55313 !*** ./node_modules/d3-array/src/sort.js ***!
55314 \*******************************************/
55315/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55316
55317"use strict";
55318__webpack_require__.r(__webpack_exports__);
55319/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55320/* harmony export */ "ascendingDefined": () => (/* binding */ ascendingDefined),
55321/* harmony export */ "compareDefined": () => (/* binding */ compareDefined),
55322/* harmony export */ "default": () => (/* binding */ sort)
55323/* harmony export */ });
55324/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ascending.js */ "./node_modules/d3-array/src/ascending.js");
55325/* harmony import */ var _permute_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./permute.js */ "./node_modules/d3-array/src/permute.js");
55326
55327
55328
55329function sort(values, ...F) {
55330 if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable");
55331 values = Array.from(values);
55332 let [f] = F;
55333 if ((f && f.length !== 2) || F.length > 1) {
55334 const index = Uint32Array.from(values, (d, i) => i);
55335 if (F.length > 1) {
55336 F = F.map(f => values.map(f));
55337 index.sort((i, j) => {
55338 for (const f of F) {
55339 const c = ascendingDefined(f[i], f[j]);
55340 if (c) return c;
55341 }
55342 });
55343 } else {
55344 f = values.map(f);
55345 index.sort((i, j) => ascendingDefined(f[i], f[j]));
55346 }
55347 return (0,_permute_js__WEBPACK_IMPORTED_MODULE_0__["default"])(values, index);
55348 }
55349 return values.sort(compareDefined(f));
55350}
55351
55352function compareDefined(compare = _ascending_js__WEBPACK_IMPORTED_MODULE_1__["default"]) {
55353 if (compare === _ascending_js__WEBPACK_IMPORTED_MODULE_1__["default"]) return ascendingDefined;
55354 if (typeof compare !== "function") throw new TypeError("compare is not a function");
55355 return (a, b) => {
55356 const x = compare(a, b);
55357 if (x || x === 0) return x;
55358 return (compare(b, b) === 0) - (compare(a, a) === 0);
55359 };
55360}
55361
55362function ascendingDefined(a, b) {
55363 return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);
55364}
55365
55366
55367/***/ }),
55368
55369/***/ "./node_modules/d3-array/src/subset.js":
55370/*!*********************************************!*\
55371 !*** ./node_modules/d3-array/src/subset.js ***!
55372 \*********************************************/
55373/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55374
55375"use strict";
55376__webpack_require__.r(__webpack_exports__);
55377/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55378/* harmony export */ "default": () => (/* binding */ subset)
55379/* harmony export */ });
55380/* harmony import */ var _superset_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./superset.js */ "./node_modules/d3-array/src/superset.js");
55381
55382
55383function subset(values, other) {
55384 return (0,_superset_js__WEBPACK_IMPORTED_MODULE_0__["default"])(other, values);
55385}
55386
55387
55388/***/ }),
55389
55390/***/ "./node_modules/d3-array/src/sum.js":
55391/*!******************************************!*\
55392 !*** ./node_modules/d3-array/src/sum.js ***!
55393 \******************************************/
55394/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55395
55396"use strict";
55397__webpack_require__.r(__webpack_exports__);
55398/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55399/* harmony export */ "default": () => (/* binding */ sum)
55400/* harmony export */ });
55401function sum(values, valueof) {
55402 let sum = 0;
55403 if (valueof === undefined) {
55404 for (let value of values) {
55405 if (value = +value) {
55406 sum += value;
55407 }
55408 }
55409 } else {
55410 let index = -1;
55411 for (let value of values) {
55412 if (value = +valueof(value, ++index, values)) {
55413 sum += value;
55414 }
55415 }
55416 }
55417 return sum;
55418}
55419
55420
55421/***/ }),
55422
55423/***/ "./node_modules/d3-array/src/superset.js":
55424/*!***********************************************!*\
55425 !*** ./node_modules/d3-array/src/superset.js ***!
55426 \***********************************************/
55427/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55428
55429"use strict";
55430__webpack_require__.r(__webpack_exports__);
55431/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55432/* harmony export */ "default": () => (/* binding */ superset)
55433/* harmony export */ });
55434function superset(values, other) {
55435 const iterator = values[Symbol.iterator](), set = new Set();
55436 for (const o of other) {
55437 const io = intern(o);
55438 if (set.has(io)) continue;
55439 let value, done;
55440 while (({value, done} = iterator.next())) {
55441 if (done) return false;
55442 const ivalue = intern(value);
55443 set.add(ivalue);
55444 if (Object.is(io, ivalue)) break;
55445 }
55446 }
55447 return true;
55448}
55449
55450function intern(value) {
55451 return value !== null && typeof value === "object" ? value.valueOf() : value;
55452}
55453
55454
55455/***/ }),
55456
55457/***/ "./node_modules/d3-array/src/threshold/freedmanDiaconis.js":
55458/*!*****************************************************************!*\
55459 !*** ./node_modules/d3-array/src/threshold/freedmanDiaconis.js ***!
55460 \*****************************************************************/
55461/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55462
55463"use strict";
55464__webpack_require__.r(__webpack_exports__);
55465/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55466/* harmony export */ "default": () => (/* binding */ thresholdFreedmanDiaconis)
55467/* harmony export */ });
55468/* harmony import */ var _count_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../count.js */ "./node_modules/d3-array/src/count.js");
55469/* harmony import */ var _quantile_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../quantile.js */ "./node_modules/d3-array/src/quantile.js");
55470
55471
55472
55473function thresholdFreedmanDiaconis(values, min, max) {
55474 return Math.ceil((max - min) / (2 * ((0,_quantile_js__WEBPACK_IMPORTED_MODULE_0__["default"])(values, 0.75) - (0,_quantile_js__WEBPACK_IMPORTED_MODULE_0__["default"])(values, 0.25)) * Math.pow((0,_count_js__WEBPACK_IMPORTED_MODULE_1__["default"])(values), -1 / 3)));
55475}
55476
55477
55478/***/ }),
55479
55480/***/ "./node_modules/d3-array/src/threshold/scott.js":
55481/*!******************************************************!*\
55482 !*** ./node_modules/d3-array/src/threshold/scott.js ***!
55483 \******************************************************/
55484/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55485
55486"use strict";
55487__webpack_require__.r(__webpack_exports__);
55488/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55489/* harmony export */ "default": () => (/* binding */ thresholdScott)
55490/* harmony export */ });
55491/* harmony import */ var _count_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../count.js */ "./node_modules/d3-array/src/count.js");
55492/* harmony import */ var _deviation_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../deviation.js */ "./node_modules/d3-array/src/deviation.js");
55493
55494
55495
55496function thresholdScott(values, min, max) {
55497 return Math.ceil((max - min) / (3.5 * (0,_deviation_js__WEBPACK_IMPORTED_MODULE_0__["default"])(values) * Math.pow((0,_count_js__WEBPACK_IMPORTED_MODULE_1__["default"])(values), -1 / 3)));
55498}
55499
55500
55501/***/ }),
55502
55503/***/ "./node_modules/d3-array/src/threshold/sturges.js":
55504/*!********************************************************!*\
55505 !*** ./node_modules/d3-array/src/threshold/sturges.js ***!
55506 \********************************************************/
55507/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55508
55509"use strict";
55510__webpack_require__.r(__webpack_exports__);
55511/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55512/* harmony export */ "default": () => (/* binding */ thresholdSturges)
55513/* harmony export */ });
55514/* harmony import */ var _count_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../count.js */ "./node_modules/d3-array/src/count.js");
55515
55516
55517function thresholdSturges(values) {
55518 return Math.ceil(Math.log((0,_count_js__WEBPACK_IMPORTED_MODULE_0__["default"])(values)) / Math.LN2) + 1;
55519}
55520
55521
55522/***/ }),
55523
55524/***/ "./node_modules/d3-array/src/ticks.js":
55525/*!********************************************!*\
55526 !*** ./node_modules/d3-array/src/ticks.js ***!
55527 \********************************************/
55528/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55529
55530"use strict";
55531__webpack_require__.r(__webpack_exports__);
55532/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55533/* harmony export */ "default": () => (/* binding */ ticks),
55534/* harmony export */ "tickIncrement": () => (/* binding */ tickIncrement),
55535/* harmony export */ "tickStep": () => (/* binding */ tickStep)
55536/* harmony export */ });
55537var e10 = Math.sqrt(50),
55538 e5 = Math.sqrt(10),
55539 e2 = Math.sqrt(2);
55540
55541function ticks(start, stop, count) {
55542 var reverse,
55543 i = -1,
55544 n,
55545 ticks,
55546 step;
55547
55548 stop = +stop, start = +start, count = +count;
55549 if (start === stop && count > 0) return [start];
55550 if (reverse = stop < start) n = start, start = stop, stop = n;
55551 if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];
55552
55553 if (step > 0) {
55554 let r0 = Math.round(start / step), r1 = Math.round(stop / step);
55555 if (r0 * step < start) ++r0;
55556 if (r1 * step > stop) --r1;
55557 ticks = new Array(n = r1 - r0 + 1);
55558 while (++i < n) ticks[i] = (r0 + i) * step;
55559 } else {
55560 step = -step;
55561 let r0 = Math.round(start * step), r1 = Math.round(stop * step);
55562 if (r0 / step < start) ++r0;
55563 if (r1 / step > stop) --r1;
55564 ticks = new Array(n = r1 - r0 + 1);
55565 while (++i < n) ticks[i] = (r0 + i) / step;
55566 }
55567
55568 if (reverse) ticks.reverse();
55569
55570 return ticks;
55571}
55572
55573function tickIncrement(start, stop, count) {
55574 var step = (stop - start) / Math.max(0, count),
55575 power = Math.floor(Math.log(step) / Math.LN10),
55576 error = step / Math.pow(10, power);
55577 return power >= 0
55578 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)
55579 : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
55580}
55581
55582function tickStep(start, stop, count) {
55583 var step0 = Math.abs(stop - start) / Math.max(0, count),
55584 step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
55585 error = step0 / step1;
55586 if (error >= e10) step1 *= 10;
55587 else if (error >= e5) step1 *= 5;
55588 else if (error >= e2) step1 *= 2;
55589 return stop < start ? -step1 : step1;
55590}
55591
55592
55593/***/ }),
55594
55595/***/ "./node_modules/d3-array/src/transpose.js":
55596/*!************************************************!*\
55597 !*** ./node_modules/d3-array/src/transpose.js ***!
55598 \************************************************/
55599/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55600
55601"use strict";
55602__webpack_require__.r(__webpack_exports__);
55603/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55604/* harmony export */ "default": () => (/* binding */ transpose)
55605/* harmony export */ });
55606/* harmony import */ var _min_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./min.js */ "./node_modules/d3-array/src/min.js");
55607
55608
55609function transpose(matrix) {
55610 if (!(n = matrix.length)) return [];
55611 for (var i = -1, m = (0,_min_js__WEBPACK_IMPORTED_MODULE_0__["default"])(matrix, length), transpose = new Array(m); ++i < m;) {
55612 for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {
55613 row[j] = matrix[j][i];
55614 }
55615 }
55616 return transpose;
55617}
55618
55619function length(d) {
55620 return d.length;
55621}
55622
55623
55624/***/ }),
55625
55626/***/ "./node_modules/d3-array/src/union.js":
55627/*!********************************************!*\
55628 !*** ./node_modules/d3-array/src/union.js ***!
55629 \********************************************/
55630/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55631
55632"use strict";
55633__webpack_require__.r(__webpack_exports__);
55634/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55635/* harmony export */ "default": () => (/* binding */ union)
55636/* harmony export */ });
55637/* harmony import */ var internmap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! internmap */ "./node_modules/internmap/src/index.js");
55638
55639
55640function union(...others) {
55641 const set = new internmap__WEBPACK_IMPORTED_MODULE_0__.InternSet();
55642 for (const other of others) {
55643 for (const o of other) {
55644 set.add(o);
55645 }
55646 }
55647 return set;
55648}
55649
55650
55651/***/ }),
55652
55653/***/ "./node_modules/d3-array/src/variance.js":
55654/*!***********************************************!*\
55655 !*** ./node_modules/d3-array/src/variance.js ***!
55656 \***********************************************/
55657/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55658
55659"use strict";
55660__webpack_require__.r(__webpack_exports__);
55661/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55662/* harmony export */ "default": () => (/* binding */ variance)
55663/* harmony export */ });
55664function variance(values, valueof) {
55665 let count = 0;
55666 let delta;
55667 let mean = 0;
55668 let sum = 0;
55669 if (valueof === undefined) {
55670 for (let value of values) {
55671 if (value != null && (value = +value) >= value) {
55672 delta = value - mean;
55673 mean += delta / ++count;
55674 sum += delta * (value - mean);
55675 }
55676 }
55677 } else {
55678 let index = -1;
55679 for (let value of values) {
55680 if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {
55681 delta = value - mean;
55682 mean += delta / ++count;
55683 sum += delta * (value - mean);
55684 }
55685 }
55686 }
55687 if (count > 1) return sum / (count - 1);
55688}
55689
55690
55691/***/ }),
55692
55693/***/ "./node_modules/d3-array/src/zip.js":
55694/*!******************************************!*\
55695 !*** ./node_modules/d3-array/src/zip.js ***!
55696 \******************************************/
55697/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55698
55699"use strict";
55700__webpack_require__.r(__webpack_exports__);
55701/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55702/* harmony export */ "default": () => (/* binding */ zip)
55703/* harmony export */ });
55704/* harmony import */ var _transpose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transpose.js */ "./node_modules/d3-array/src/transpose.js");
55705
55706
55707function zip() {
55708 return (0,_transpose_js__WEBPACK_IMPORTED_MODULE_0__["default"])(arguments);
55709}
55710
55711
55712/***/ }),
55713
55714/***/ "./node_modules/d3-axis/src/axis.js":
55715/*!******************************************!*\
55716 !*** ./node_modules/d3-axis/src/axis.js ***!
55717 \******************************************/
55718/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55719
55720"use strict";
55721__webpack_require__.r(__webpack_exports__);
55722/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55723/* harmony export */ "axisBottom": () => (/* binding */ axisBottom),
55724/* harmony export */ "axisLeft": () => (/* binding */ axisLeft),
55725/* harmony export */ "axisRight": () => (/* binding */ axisRight),
55726/* harmony export */ "axisTop": () => (/* binding */ axisTop)
55727/* harmony export */ });
55728/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity.js */ "./node_modules/d3-axis/src/identity.js");
55729
55730
55731var top = 1,
55732 right = 2,
55733 bottom = 3,
55734 left = 4,
55735 epsilon = 1e-6;
55736
55737function translateX(x) {
55738 return "translate(" + x + ",0)";
55739}
55740
55741function translateY(y) {
55742 return "translate(0," + y + ")";
55743}
55744
55745function number(scale) {
55746 return d => +scale(d);
55747}
55748
55749function center(scale, offset) {
55750 offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;
55751 if (scale.round()) offset = Math.round(offset);
55752 return d => +scale(d) + offset;
55753}
55754
55755function entering() {
55756 return !this.__axis;
55757}
55758
55759function axis(orient, scale) {
55760 var tickArguments = [],
55761 tickValues = null,
55762 tickFormat = null,
55763 tickSizeInner = 6,
55764 tickSizeOuter = 6,
55765 tickPadding = 3,
55766 offset = typeof window !== "undefined" && window.devicePixelRatio > 1 ? 0 : 0.5,
55767 k = orient === top || orient === left ? -1 : 1,
55768 x = orient === left || orient === right ? "x" : "y",
55769 transform = orient === top || orient === bottom ? translateX : translateY;
55770
55771 function axis(context) {
55772 var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,
55773 format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : _identity_js__WEBPACK_IMPORTED_MODULE_0__["default"]) : tickFormat,
55774 spacing = Math.max(tickSizeInner, 0) + tickPadding,
55775 range = scale.range(),
55776 range0 = +range[0] + offset,
55777 range1 = +range[range.length - 1] + offset,
55778 position = (scale.bandwidth ? center : number)(scale.copy(), offset),
55779 selection = context.selection ? context.selection() : context,
55780 path = selection.selectAll(".domain").data([null]),
55781 tick = selection.selectAll(".tick").data(values, scale).order(),
55782 tickExit = tick.exit(),
55783 tickEnter = tick.enter().append("g").attr("class", "tick"),
55784 line = tick.select("line"),
55785 text = tick.select("text");
55786
55787 path = path.merge(path.enter().insert("path", ".tick")
55788 .attr("class", "domain")
55789 .attr("stroke", "currentColor"));
55790
55791 tick = tick.merge(tickEnter);
55792
55793 line = line.merge(tickEnter.append("line")
55794 .attr("stroke", "currentColor")
55795 .attr(x + "2", k * tickSizeInner));
55796
55797 text = text.merge(tickEnter.append("text")
55798 .attr("fill", "currentColor")
55799 .attr(x, k * spacing)
55800 .attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em"));
55801
55802 if (context !== selection) {
55803 path = path.transition(context);
55804 tick = tick.transition(context);
55805 line = line.transition(context);
55806 text = text.transition(context);
55807
55808 tickExit = tickExit.transition(context)
55809 .attr("opacity", epsilon)
55810 .attr("transform", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute("transform"); });
55811
55812 tickEnter
55813 .attr("opacity", epsilon)
55814 .attr("transform", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });
55815 }
55816
55817 tickExit.remove();
55818
55819 path
55820 .attr("d", orient === left || orient === right
55821 ? (tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H" + offset + "V" + range1 + "H" + k * tickSizeOuter : "M" + offset + "," + range0 + "V" + range1)
55822 : (tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V" + offset + "H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + "," + offset + "H" + range1));
55823
55824 tick
55825 .attr("opacity", 1)
55826 .attr("transform", function(d) { return transform(position(d) + offset); });
55827
55828 line
55829 .attr(x + "2", k * tickSizeInner);
55830
55831 text
55832 .attr(x, k * spacing)
55833 .text(format);
55834
55835 selection.filter(entering)
55836 .attr("fill", "none")
55837 .attr("font-size", 10)
55838 .attr("font-family", "sans-serif")
55839 .attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle");
55840
55841 selection
55842 .each(function() { this.__axis = position; });
55843 }
55844
55845 axis.scale = function(_) {
55846 return arguments.length ? (scale = _, axis) : scale;
55847 };
55848
55849 axis.ticks = function() {
55850 return tickArguments = Array.from(arguments), axis;
55851 };
55852
55853 axis.tickArguments = function(_) {
55854 return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();
55855 };
55856
55857 axis.tickValues = function(_) {
55858 return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();
55859 };
55860
55861 axis.tickFormat = function(_) {
55862 return arguments.length ? (tickFormat = _, axis) : tickFormat;
55863 };
55864
55865 axis.tickSize = function(_) {
55866 return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;
55867 };
55868
55869 axis.tickSizeInner = function(_) {
55870 return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;
55871 };
55872
55873 axis.tickSizeOuter = function(_) {
55874 return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;
55875 };
55876
55877 axis.tickPadding = function(_) {
55878 return arguments.length ? (tickPadding = +_, axis) : tickPadding;
55879 };
55880
55881 axis.offset = function(_) {
55882 return arguments.length ? (offset = +_, axis) : offset;
55883 };
55884
55885 return axis;
55886}
55887
55888function axisTop(scale) {
55889 return axis(top, scale);
55890}
55891
55892function axisRight(scale) {
55893 return axis(right, scale);
55894}
55895
55896function axisBottom(scale) {
55897 return axis(bottom, scale);
55898}
55899
55900function axisLeft(scale) {
55901 return axis(left, scale);
55902}
55903
55904
55905/***/ }),
55906
55907/***/ "./node_modules/d3-axis/src/identity.js":
55908/*!**********************************************!*\
55909 !*** ./node_modules/d3-axis/src/identity.js ***!
55910 \**********************************************/
55911/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55912
55913"use strict";
55914__webpack_require__.r(__webpack_exports__);
55915/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55916/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
55917/* harmony export */ });
55918/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x) {
55919 return x;
55920}
55921
55922
55923/***/ }),
55924
55925/***/ "./node_modules/d3-axis/src/index.js":
55926/*!*******************************************!*\
55927 !*** ./node_modules/d3-axis/src/index.js ***!
55928 \*******************************************/
55929/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55930
55931"use strict";
55932__webpack_require__.r(__webpack_exports__);
55933/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55934/* harmony export */ "axisBottom": () => (/* reexport safe */ _axis_js__WEBPACK_IMPORTED_MODULE_0__.axisBottom),
55935/* harmony export */ "axisLeft": () => (/* reexport safe */ _axis_js__WEBPACK_IMPORTED_MODULE_0__.axisLeft),
55936/* harmony export */ "axisRight": () => (/* reexport safe */ _axis_js__WEBPACK_IMPORTED_MODULE_0__.axisRight),
55937/* harmony export */ "axisTop": () => (/* reexport safe */ _axis_js__WEBPACK_IMPORTED_MODULE_0__.axisTop)
55938/* harmony export */ });
55939/* harmony import */ var _axis_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./axis.js */ "./node_modules/d3-axis/src/axis.js");
55940
55941
55942
55943/***/ }),
55944
55945/***/ "./node_modules/d3-brush/src/brush.js":
55946/*!********************************************!*\
55947 !*** ./node_modules/d3-brush/src/brush.js ***!
55948 \********************************************/
55949/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55950
55951"use strict";
55952__webpack_require__.r(__webpack_exports__);
55953/* harmony export */ __webpack_require__.d(__webpack_exports__, {
55954/* harmony export */ "brushSelection": () => (/* binding */ brushSelection),
55955/* harmony export */ "brushX": () => (/* binding */ brushX),
55956/* harmony export */ "brushY": () => (/* binding */ brushY),
55957/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
55958/* harmony export */ });
55959/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/dispatch.js");
55960/* harmony import */ var d3_drag__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! d3-drag */ "./node_modules/d3-drag/src/nodrag.js");
55961/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/value.js");
55962/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/select.js");
55963/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/pointer.js");
55964/* harmony import */ var d3_transition__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-transition */ "./node_modules/d3-transition/src/index.js");
55965/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-brush/src/constant.js");
55966/* harmony import */ var _event_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./event.js */ "./node_modules/d3-brush/src/event.js");
55967/* harmony import */ var _noevent_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./noevent.js */ "./node_modules/d3-brush/src/noevent.js");
55968
55969
55970
55971
55972
55973
55974
55975
55976
55977var MODE_DRAG = {name: "drag"},
55978 MODE_SPACE = {name: "space"},
55979 MODE_HANDLE = {name: "handle"},
55980 MODE_CENTER = {name: "center"};
55981
55982const {abs, max, min} = Math;
55983
55984function number1(e) {
55985 return [+e[0], +e[1]];
55986}
55987
55988function number2(e) {
55989 return [number1(e[0]), number1(e[1])];
55990}
55991
55992var X = {
55993 name: "x",
55994 handles: ["w", "e"].map(type),
55995 input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },
55996 output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }
55997};
55998
55999var Y = {
56000 name: "y",
56001 handles: ["n", "s"].map(type),
56002 input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },
56003 output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }
56004};
56005
56006var XY = {
56007 name: "xy",
56008 handles: ["n", "w", "e", "s", "nw", "ne", "sw", "se"].map(type),
56009 input: function(xy) { return xy == null ? null : number2(xy); },
56010 output: function(xy) { return xy; }
56011};
56012
56013var cursors = {
56014 overlay: "crosshair",
56015 selection: "move",
56016 n: "ns-resize",
56017 e: "ew-resize",
56018 s: "ns-resize",
56019 w: "ew-resize",
56020 nw: "nwse-resize",
56021 ne: "nesw-resize",
56022 se: "nwse-resize",
56023 sw: "nesw-resize"
56024};
56025
56026var flipX = {
56027 e: "w",
56028 w: "e",
56029 nw: "ne",
56030 ne: "nw",
56031 se: "sw",
56032 sw: "se"
56033};
56034
56035var flipY = {
56036 n: "s",
56037 s: "n",
56038 nw: "sw",
56039 ne: "se",
56040 se: "ne",
56041 sw: "nw"
56042};
56043
56044var signsX = {
56045 overlay: +1,
56046 selection: +1,
56047 n: null,
56048 e: +1,
56049 s: null,
56050 w: -1,
56051 nw: -1,
56052 ne: +1,
56053 se: +1,
56054 sw: -1
56055};
56056
56057var signsY = {
56058 overlay: +1,
56059 selection: +1,
56060 n: -1,
56061 e: null,
56062 s: +1,
56063 w: null,
56064 nw: -1,
56065 ne: -1,
56066 se: +1,
56067 sw: +1
56068};
56069
56070function type(t) {
56071 return {type: t};
56072}
56073
56074// Ignore right-click, since that should open the context menu.
56075function defaultFilter(event) {
56076 return !event.ctrlKey && !event.button;
56077}
56078
56079function defaultExtent() {
56080 var svg = this.ownerSVGElement || this;
56081 if (svg.hasAttribute("viewBox")) {
56082 svg = svg.viewBox.baseVal;
56083 return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];
56084 }
56085 return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];
56086}
56087
56088function defaultTouchable() {
56089 return navigator.maxTouchPoints || ("ontouchstart" in this);
56090}
56091
56092// Like d3.local, but with the name “__brush” rather than auto-generated.
56093function local(node) {
56094 while (!node.__brush) if (!(node = node.parentNode)) return;
56095 return node.__brush;
56096}
56097
56098function empty(extent) {
56099 return extent[0][0] === extent[1][0]
56100 || extent[0][1] === extent[1][1];
56101}
56102
56103function brushSelection(node) {
56104 var state = node.__brush;
56105 return state ? state.dim.output(state.selection) : null;
56106}
56107
56108function brushX() {
56109 return brush(X);
56110}
56111
56112function brushY() {
56113 return brush(Y);
56114}
56115
56116/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
56117 return brush(XY);
56118}
56119
56120function brush(dim) {
56121 var extent = defaultExtent,
56122 filter = defaultFilter,
56123 touchable = defaultTouchable,
56124 keys = true,
56125 listeners = (0,d3_dispatch__WEBPACK_IMPORTED_MODULE_4__["default"])("start", "brush", "end"),
56126 handleSize = 6,
56127 touchending;
56128
56129 function brush(group) {
56130 var overlay = group
56131 .property("__brush", initialize)
56132 .selectAll(".overlay")
56133 .data([type("overlay")]);
56134
56135 overlay.enter().append("rect")
56136 .attr("class", "overlay")
56137 .attr("pointer-events", "all")
56138 .attr("cursor", cursors.overlay)
56139 .merge(overlay)
56140 .each(function() {
56141 var extent = local(this).extent;
56142 (0,d3_selection__WEBPACK_IMPORTED_MODULE_5__["default"])(this)
56143 .attr("x", extent[0][0])
56144 .attr("y", extent[0][1])
56145 .attr("width", extent[1][0] - extent[0][0])
56146 .attr("height", extent[1][1] - extent[0][1]);
56147 });
56148
56149 group.selectAll(".selection")
56150 .data([type("selection")])
56151 .enter().append("rect")
56152 .attr("class", "selection")
56153 .attr("cursor", cursors.selection)
56154 .attr("fill", "#777")
56155 .attr("fill-opacity", 0.3)
56156 .attr("stroke", "#fff")
56157 .attr("shape-rendering", "crispEdges");
56158
56159 var handle = group.selectAll(".handle")
56160 .data(dim.handles, function(d) { return d.type; });
56161
56162 handle.exit().remove();
56163
56164 handle.enter().append("rect")
56165 .attr("class", function(d) { return "handle handle--" + d.type; })
56166 .attr("cursor", function(d) { return cursors[d.type]; });
56167
56168 group
56169 .each(redraw)
56170 .attr("fill", "none")
56171 .attr("pointer-events", "all")
56172 .on("mousedown.brush", started)
56173 .filter(touchable)
56174 .on("touchstart.brush", started)
56175 .on("touchmove.brush", touchmoved)
56176 .on("touchend.brush touchcancel.brush", touchended)
56177 .style("touch-action", "none")
56178 .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
56179 }
56180
56181 brush.move = function(group, selection, event) {
56182 if (group.tween) {
56183 group
56184 .on("start.brush", function(event) { emitter(this, arguments).beforestart().start(event); })
56185 .on("interrupt.brush end.brush", function(event) { emitter(this, arguments).end(event); })
56186 .tween("brush", function() {
56187 var that = this,
56188 state = that.__brush,
56189 emit = emitter(that, arguments),
56190 selection0 = state.selection,
56191 selection1 = dim.input(typeof selection === "function" ? selection.apply(this, arguments) : selection, state.extent),
56192 i = (0,d3_interpolate__WEBPACK_IMPORTED_MODULE_6__["default"])(selection0, selection1);
56193
56194 function tween(t) {
56195 state.selection = t === 1 && selection1 === null ? null : i(t);
56196 redraw.call(that);
56197 emit.brush();
56198 }
56199
56200 return selection0 !== null && selection1 !== null ? tween : tween(1);
56201 });
56202 } else {
56203 group
56204 .each(function() {
56205 var that = this,
56206 args = arguments,
56207 state = that.__brush,
56208 selection1 = dim.input(typeof selection === "function" ? selection.apply(that, args) : selection, state.extent),
56209 emit = emitter(that, args).beforestart();
56210
56211 (0,d3_transition__WEBPACK_IMPORTED_MODULE_0__.interrupt)(that);
56212 state.selection = selection1 === null ? null : selection1;
56213 redraw.call(that);
56214 emit.start(event).brush(event).end(event);
56215 });
56216 }
56217 };
56218
56219 brush.clear = function(group, event) {
56220 brush.move(group, null, event);
56221 };
56222
56223 function redraw() {
56224 var group = (0,d3_selection__WEBPACK_IMPORTED_MODULE_5__["default"])(this),
56225 selection = local(this).selection;
56226
56227 if (selection) {
56228 group.selectAll(".selection")
56229 .style("display", null)
56230 .attr("x", selection[0][0])
56231 .attr("y", selection[0][1])
56232 .attr("width", selection[1][0] - selection[0][0])
56233 .attr("height", selection[1][1] - selection[0][1]);
56234
56235 group.selectAll(".handle")
56236 .style("display", null)
56237 .attr("x", function(d) { return d.type[d.type.length - 1] === "e" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })
56238 .attr("y", function(d) { return d.type[0] === "s" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })
56239 .attr("width", function(d) { return d.type === "n" || d.type === "s" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })
56240 .attr("height", function(d) { return d.type === "e" || d.type === "w" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });
56241 }
56242
56243 else {
56244 group.selectAll(".selection,.handle")
56245 .style("display", "none")
56246 .attr("x", null)
56247 .attr("y", null)
56248 .attr("width", null)
56249 .attr("height", null);
56250 }
56251 }
56252
56253 function emitter(that, args, clean) {
56254 var emit = that.__brush.emitter;
56255 return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);
56256 }
56257
56258 function Emitter(that, args, clean) {
56259 this.that = that;
56260 this.args = args;
56261 this.state = that.__brush;
56262 this.active = 0;
56263 this.clean = clean;
56264 }
56265
56266 Emitter.prototype = {
56267 beforestart: function() {
56268 if (++this.active === 1) this.state.emitter = this, this.starting = true;
56269 return this;
56270 },
56271 start: function(event, mode) {
56272 if (this.starting) this.starting = false, this.emit("start", event, mode);
56273 else this.emit("brush", event);
56274 return this;
56275 },
56276 brush: function(event, mode) {
56277 this.emit("brush", event, mode);
56278 return this;
56279 },
56280 end: function(event, mode) {
56281 if (--this.active === 0) delete this.state.emitter, this.emit("end", event, mode);
56282 return this;
56283 },
56284 emit: function(type, event, mode) {
56285 var d = (0,d3_selection__WEBPACK_IMPORTED_MODULE_5__["default"])(this.that).datum();
56286 listeners.call(
56287 type,
56288 this.that,
56289 new _event_js__WEBPACK_IMPORTED_MODULE_2__["default"](type, {
56290 sourceEvent: event,
56291 target: brush,
56292 selection: dim.output(this.state.selection),
56293 mode,
56294 dispatch: listeners
56295 }),
56296 d
56297 );
56298 }
56299 };
56300
56301 function started(event) {
56302 if (touchending && !event.touches) return;
56303 if (!filter.apply(this, arguments)) return;
56304
56305 var that = this,
56306 type = event.target.__data__.type,
56307 mode = (keys && event.metaKey ? type = "overlay" : type) === "selection" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),
56308 signX = dim === Y ? null : signsX[type],
56309 signY = dim === X ? null : signsY[type],
56310 state = local(that),
56311 extent = state.extent,
56312 selection = state.selection,
56313 W = extent[0][0], w0, w1,
56314 N = extent[0][1], n0, n1,
56315 E = extent[1][0], e0, e1,
56316 S = extent[1][1], s0, s1,
56317 dx = 0,
56318 dy = 0,
56319 moving,
56320 shifting = signX && signY && keys && event.shiftKey,
56321 lockX,
56322 lockY,
56323 points = Array.from(event.touches || [event], t => {
56324 const i = t.identifier;
56325 t = (0,d3_selection__WEBPACK_IMPORTED_MODULE_7__["default"])(t, that);
56326 t.point0 = t.slice();
56327 t.identifier = i;
56328 return t;
56329 });
56330
56331 (0,d3_transition__WEBPACK_IMPORTED_MODULE_0__.interrupt)(that);
56332 var emit = emitter(that, arguments, true).beforestart();
56333
56334 if (type === "overlay") {
56335 if (selection) moving = true;
56336 const pts = [points[0], points[1] || points[0]];
56337 state.selection = selection = [[
56338 w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),
56339 n0 = dim === X ? N : min(pts[0][1], pts[1][1])
56340 ], [
56341 e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),
56342 s0 = dim === X ? S : max(pts[0][1], pts[1][1])
56343 ]];
56344 if (points.length > 1) move(event);
56345 } else {
56346 w0 = selection[0][0];
56347 n0 = selection[0][1];
56348 e0 = selection[1][0];
56349 s0 = selection[1][1];
56350 }
56351
56352 w1 = w0;
56353 n1 = n0;
56354 e1 = e0;
56355 s1 = s0;
56356
56357 var group = (0,d3_selection__WEBPACK_IMPORTED_MODULE_5__["default"])(that)
56358 .attr("pointer-events", "none");
56359
56360 var overlay = group.selectAll(".overlay")
56361 .attr("cursor", cursors[type]);
56362
56363 if (event.touches) {
56364 emit.moved = moved;
56365 emit.ended = ended;
56366 } else {
56367 var view = (0,d3_selection__WEBPACK_IMPORTED_MODULE_5__["default"])(event.view)
56368 .on("mousemove.brush", moved, true)
56369 .on("mouseup.brush", ended, true);
56370 if (keys) view
56371 .on("keydown.brush", keydowned, true)
56372 .on("keyup.brush", keyupped, true)
56373
56374 ;(0,d3_drag__WEBPACK_IMPORTED_MODULE_8__["default"])(event.view);
56375 }
56376
56377 redraw.call(that);
56378 emit.start(event, mode.name);
56379
56380 function moved(event) {
56381 for (const p of event.changedTouches || [event]) {
56382 for (const d of points)
56383 if (d.identifier === p.identifier) d.cur = (0,d3_selection__WEBPACK_IMPORTED_MODULE_7__["default"])(p, that);
56384 }
56385 if (shifting && !lockX && !lockY && points.length === 1) {
56386 const point = points[0];
56387 if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))
56388 lockY = true;
56389 else
56390 lockX = true;
56391 }
56392 for (const point of points)
56393 if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];
56394 moving = true;
56395 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_3__["default"])(event);
56396 move(event);
56397 }
56398
56399 function move(event) {
56400 const point = points[0], point0 = point.point0;
56401 var t;
56402
56403 dx = point[0] - point0[0];
56404 dy = point[1] - point0[1];
56405
56406 switch (mode) {
56407 case MODE_SPACE:
56408 case MODE_DRAG: {
56409 if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;
56410 if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;
56411 break;
56412 }
56413 case MODE_HANDLE: {
56414 if (points[1]) {
56415 if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;
56416 if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;
56417 } else {
56418 if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;
56419 else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;
56420 if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;
56421 else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;
56422 }
56423 break;
56424 }
56425 case MODE_CENTER: {
56426 if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));
56427 if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));
56428 break;
56429 }
56430 }
56431
56432 if (e1 < w1) {
56433 signX *= -1;
56434 t = w0, w0 = e0, e0 = t;
56435 t = w1, w1 = e1, e1 = t;
56436 if (type in flipX) overlay.attr("cursor", cursors[type = flipX[type]]);
56437 }
56438
56439 if (s1 < n1) {
56440 signY *= -1;
56441 t = n0, n0 = s0, s0 = t;
56442 t = n1, n1 = s1, s1 = t;
56443 if (type in flipY) overlay.attr("cursor", cursors[type = flipY[type]]);
56444 }
56445
56446 if (state.selection) selection = state.selection; // May be set by brush.move!
56447 if (lockX) w1 = selection[0][0], e1 = selection[1][0];
56448 if (lockY) n1 = selection[0][1], s1 = selection[1][1];
56449
56450 if (selection[0][0] !== w1
56451 || selection[0][1] !== n1
56452 || selection[1][0] !== e1
56453 || selection[1][1] !== s1) {
56454 state.selection = [[w1, n1], [e1, s1]];
56455 redraw.call(that);
56456 emit.brush(event, mode.name);
56457 }
56458 }
56459
56460 function ended(event) {
56461 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_3__.nopropagation)(event);
56462 if (event.touches) {
56463 if (event.touches.length) return;
56464 if (touchending) clearTimeout(touchending);
56465 touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
56466 } else {
56467 (0,d3_drag__WEBPACK_IMPORTED_MODULE_8__.yesdrag)(event.view, moving);
56468 view.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null);
56469 }
56470 group.attr("pointer-events", "all");
56471 overlay.attr("cursor", cursors.overlay);
56472 if (state.selection) selection = state.selection; // May be set by brush.move (on start)!
56473 if (empty(selection)) state.selection = null, redraw.call(that);
56474 emit.end(event, mode.name);
56475 }
56476
56477 function keydowned(event) {
56478 switch (event.keyCode) {
56479 case 16: { // SHIFT
56480 shifting = signX && signY;
56481 break;
56482 }
56483 case 18: { // ALT
56484 if (mode === MODE_HANDLE) {
56485 if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
56486 if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
56487 mode = MODE_CENTER;
56488 move(event);
56489 }
56490 break;
56491 }
56492 case 32: { // SPACE; takes priority over ALT
56493 if (mode === MODE_HANDLE || mode === MODE_CENTER) {
56494 if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;
56495 if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;
56496 mode = MODE_SPACE;
56497 overlay.attr("cursor", cursors.selection);
56498 move(event);
56499 }
56500 break;
56501 }
56502 default: return;
56503 }
56504 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_3__["default"])(event);
56505 }
56506
56507 function keyupped(event) {
56508 switch (event.keyCode) {
56509 case 16: { // SHIFT
56510 if (shifting) {
56511 lockX = lockY = shifting = false;
56512 move(event);
56513 }
56514 break;
56515 }
56516 case 18: { // ALT
56517 if (mode === MODE_CENTER) {
56518 if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
56519 if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
56520 mode = MODE_HANDLE;
56521 move(event);
56522 }
56523 break;
56524 }
56525 case 32: { // SPACE
56526 if (mode === MODE_SPACE) {
56527 if (event.altKey) {
56528 if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;
56529 if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;
56530 mode = MODE_CENTER;
56531 } else {
56532 if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;
56533 if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;
56534 mode = MODE_HANDLE;
56535 }
56536 overlay.attr("cursor", cursors[type]);
56537 move(event);
56538 }
56539 break;
56540 }
56541 default: return;
56542 }
56543 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_3__["default"])(event);
56544 }
56545 }
56546
56547 function touchmoved(event) {
56548 emitter(this, arguments).moved(event);
56549 }
56550
56551 function touchended(event) {
56552 emitter(this, arguments).ended(event);
56553 }
56554
56555 function initialize() {
56556 var state = this.__brush || {selection: null};
56557 state.extent = number2(extent.apply(this, arguments));
56558 state.dim = dim;
56559 return state;
56560 }
56561
56562 brush.extent = function(_) {
56563 return arguments.length ? (extent = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(number2(_)), brush) : extent;
56564 };
56565
56566 brush.filter = function(_) {
56567 return arguments.length ? (filter = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(!!_), brush) : filter;
56568 };
56569
56570 brush.touchable = function(_) {
56571 return arguments.length ? (touchable = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(!!_), brush) : touchable;
56572 };
56573
56574 brush.handleSize = function(_) {
56575 return arguments.length ? (handleSize = +_, brush) : handleSize;
56576 };
56577
56578 brush.keyModifiers = function(_) {
56579 return arguments.length ? (keys = !!_, brush) : keys;
56580 };
56581
56582 brush.on = function() {
56583 var value = listeners.on.apply(listeners, arguments);
56584 return value === listeners ? brush : value;
56585 };
56586
56587 return brush;
56588}
56589
56590
56591/***/ }),
56592
56593/***/ "./node_modules/d3-brush/src/constant.js":
56594/*!***********************************************!*\
56595 !*** ./node_modules/d3-brush/src/constant.js ***!
56596 \***********************************************/
56597/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
56598
56599"use strict";
56600__webpack_require__.r(__webpack_exports__);
56601/* harmony export */ __webpack_require__.d(__webpack_exports__, {
56602/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
56603/* harmony export */ });
56604/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (x => () => x);
56605
56606
56607/***/ }),
56608
56609/***/ "./node_modules/d3-brush/src/event.js":
56610/*!********************************************!*\
56611 !*** ./node_modules/d3-brush/src/event.js ***!
56612 \********************************************/
56613/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
56614
56615"use strict";
56616__webpack_require__.r(__webpack_exports__);
56617/* harmony export */ __webpack_require__.d(__webpack_exports__, {
56618/* harmony export */ "default": () => (/* binding */ BrushEvent)
56619/* harmony export */ });
56620function BrushEvent(type, {
56621 sourceEvent,
56622 target,
56623 selection,
56624 mode,
56625 dispatch
56626}) {
56627 Object.defineProperties(this, {
56628 type: {value: type, enumerable: true, configurable: true},
56629 sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},
56630 target: {value: target, enumerable: true, configurable: true},
56631 selection: {value: selection, enumerable: true, configurable: true},
56632 mode: {value: mode, enumerable: true, configurable: true},
56633 _: {value: dispatch}
56634 });
56635}
56636
56637
56638/***/ }),
56639
56640/***/ "./node_modules/d3-brush/src/index.js":
56641/*!********************************************!*\
56642 !*** ./node_modules/d3-brush/src/index.js ***!
56643 \********************************************/
56644/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
56645
56646"use strict";
56647__webpack_require__.r(__webpack_exports__);
56648/* harmony export */ __webpack_require__.d(__webpack_exports__, {
56649/* harmony export */ "brush": () => (/* reexport safe */ _brush_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
56650/* harmony export */ "brushSelection": () => (/* reexport safe */ _brush_js__WEBPACK_IMPORTED_MODULE_0__.brushSelection),
56651/* harmony export */ "brushX": () => (/* reexport safe */ _brush_js__WEBPACK_IMPORTED_MODULE_0__.brushX),
56652/* harmony export */ "brushY": () => (/* reexport safe */ _brush_js__WEBPACK_IMPORTED_MODULE_0__.brushY)
56653/* harmony export */ });
56654/* harmony import */ var _brush_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./brush.js */ "./node_modules/d3-brush/src/brush.js");
56655
56656
56657
56658/***/ }),
56659
56660/***/ "./node_modules/d3-brush/src/noevent.js":
56661/*!**********************************************!*\
56662 !*** ./node_modules/d3-brush/src/noevent.js ***!
56663 \**********************************************/
56664/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
56665
56666"use strict";
56667__webpack_require__.r(__webpack_exports__);
56668/* harmony export */ __webpack_require__.d(__webpack_exports__, {
56669/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
56670/* harmony export */ "nopropagation": () => (/* binding */ nopropagation)
56671/* harmony export */ });
56672function nopropagation(event) {
56673 event.stopImmediatePropagation();
56674}
56675
56676/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(event) {
56677 event.preventDefault();
56678 event.stopImmediatePropagation();
56679}
56680
56681
56682/***/ }),
56683
56684/***/ "./node_modules/d3-chord/src/array.js":
56685/*!********************************************!*\
56686 !*** ./node_modules/d3-chord/src/array.js ***!
56687 \********************************************/
56688/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
56689
56690"use strict";
56691__webpack_require__.r(__webpack_exports__);
56692/* harmony export */ __webpack_require__.d(__webpack_exports__, {
56693/* harmony export */ "slice": () => (/* binding */ slice)
56694/* harmony export */ });
56695var slice = Array.prototype.slice;
56696
56697
56698/***/ }),
56699
56700/***/ "./node_modules/d3-chord/src/chord.js":
56701/*!********************************************!*\
56702 !*** ./node_modules/d3-chord/src/chord.js ***!
56703 \********************************************/
56704/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
56705
56706"use strict";
56707__webpack_require__.r(__webpack_exports__);
56708/* harmony export */ __webpack_require__.d(__webpack_exports__, {
56709/* harmony export */ "chordDirected": () => (/* binding */ chordDirected),
56710/* harmony export */ "chordTranspose": () => (/* binding */ chordTranspose),
56711/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
56712/* harmony export */ });
56713/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-chord/src/math.js");
56714
56715
56716function range(i, j) {
56717 return Array.from({length: j - i}, (_, k) => i + k);
56718}
56719
56720function compareValue(compare) {
56721 return function(a, b) {
56722 return compare(
56723 a.source.value + a.target.value,
56724 b.source.value + b.target.value
56725 );
56726 };
56727}
56728
56729/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
56730 return chord(false, false);
56731}
56732
56733function chordTranspose() {
56734 return chord(false, true);
56735}
56736
56737function chordDirected() {
56738 return chord(true, false);
56739}
56740
56741function chord(directed, transpose) {
56742 var padAngle = 0,
56743 sortGroups = null,
56744 sortSubgroups = null,
56745 sortChords = null;
56746
56747 function chord(matrix) {
56748 var n = matrix.length,
56749 groupSums = new Array(n),
56750 groupIndex = range(0, n),
56751 chords = new Array(n * n),
56752 groups = new Array(n),
56753 k = 0, dx;
56754
56755 matrix = Float64Array.from({length: n * n}, transpose
56756 ? (_, i) => matrix[i % n][i / n | 0]
56757 : (_, i) => matrix[i / n | 0][i % n]);
56758
56759 // Compute the scaling factor from value to angle in [0, 2pi].
56760 for (let i = 0; i < n; ++i) {
56761 let x = 0;
56762 for (let j = 0; j < n; ++j) x += matrix[i * n + j] + directed * matrix[j * n + i];
56763 k += groupSums[i] = x;
56764 }
56765 k = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.max)(0, _math_js__WEBPACK_IMPORTED_MODULE_0__.tau - padAngle * n) / k;
56766 dx = k ? padAngle : _math_js__WEBPACK_IMPORTED_MODULE_0__.tau / n;
56767
56768 // Compute the angles for each group and constituent chord.
56769 {
56770 let x = 0;
56771 if (sortGroups) groupIndex.sort((a, b) => sortGroups(groupSums[a], groupSums[b]));
56772 for (const i of groupIndex) {
56773 const x0 = x;
56774 if (directed) {
56775 const subgroupIndex = range(~n + 1, n).filter(j => j < 0 ? matrix[~j * n + i] : matrix[i * n + j]);
56776 if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(a < 0 ? -matrix[~a * n + i] : matrix[i * n + a], b < 0 ? -matrix[~b * n + i] : matrix[i * n + b]));
56777 for (const j of subgroupIndex) {
56778 if (j < 0) {
56779 const chord = chords[~j * n + i] || (chords[~j * n + i] = {source: null, target: null});
56780 chord.target = {index: i, startAngle: x, endAngle: x += matrix[~j * n + i] * k, value: matrix[~j * n + i]};
56781 } else {
56782 const chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null});
56783 chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};
56784 }
56785 }
56786 groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]};
56787 } else {
56788 const subgroupIndex = range(0, n).filter(j => matrix[i * n + j] || matrix[j * n + i]);
56789 if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(matrix[i * n + a], matrix[i * n + b]));
56790 for (const j of subgroupIndex) {
56791 let chord;
56792 if (i < j) {
56793 chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null});
56794 chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};
56795 } else {
56796 chord = chords[j * n + i] || (chords[j * n + i] = {source: null, target: null});
56797 chord.target = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};
56798 if (i === j) chord.source = chord.target;
56799 }
56800 if (chord.source && chord.target && chord.source.value < chord.target.value) {
56801 const source = chord.source;
56802 chord.source = chord.target;
56803 chord.target = source;
56804 }
56805 }
56806 groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]};
56807 }
56808 x += dx;
56809 }
56810 }
56811
56812 // Remove empty chords.
56813 chords = Object.values(chords);
56814 chords.groups = groups;
56815 return sortChords ? chords.sort(sortChords) : chords;
56816 }
56817
56818 chord.padAngle = function(_) {
56819 return arguments.length ? (padAngle = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.max)(0, _), chord) : padAngle;
56820 };
56821
56822 chord.sortGroups = function(_) {
56823 return arguments.length ? (sortGroups = _, chord) : sortGroups;
56824 };
56825
56826 chord.sortSubgroups = function(_) {
56827 return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;
56828 };
56829
56830 chord.sortChords = function(_) {
56831 return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;
56832 };
56833
56834 return chord;
56835}
56836
56837
56838/***/ }),
56839
56840/***/ "./node_modules/d3-chord/src/constant.js":
56841/*!***********************************************!*\
56842 !*** ./node_modules/d3-chord/src/constant.js ***!
56843 \***********************************************/
56844/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
56845
56846"use strict";
56847__webpack_require__.r(__webpack_exports__);
56848/* harmony export */ __webpack_require__.d(__webpack_exports__, {
56849/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
56850/* harmony export */ });
56851/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x) {
56852 return function() {
56853 return x;
56854 };
56855}
56856
56857
56858/***/ }),
56859
56860/***/ "./node_modules/d3-chord/src/index.js":
56861/*!********************************************!*\
56862 !*** ./node_modules/d3-chord/src/index.js ***!
56863 \********************************************/
56864/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
56865
56866"use strict";
56867__webpack_require__.r(__webpack_exports__);
56868/* harmony export */ __webpack_require__.d(__webpack_exports__, {
56869/* harmony export */ "chord": () => (/* reexport safe */ _chord_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
56870/* harmony export */ "chordDirected": () => (/* reexport safe */ _chord_js__WEBPACK_IMPORTED_MODULE_0__.chordDirected),
56871/* harmony export */ "chordTranspose": () => (/* reexport safe */ _chord_js__WEBPACK_IMPORTED_MODULE_0__.chordTranspose),
56872/* harmony export */ "ribbon": () => (/* reexport safe */ _ribbon_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
56873/* harmony export */ "ribbonArrow": () => (/* reexport safe */ _ribbon_js__WEBPACK_IMPORTED_MODULE_1__.ribbonArrow)
56874/* harmony export */ });
56875/* harmony import */ var _chord_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chord.js */ "./node_modules/d3-chord/src/chord.js");
56876/* harmony import */ var _ribbon_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ribbon.js */ "./node_modules/d3-chord/src/ribbon.js");
56877
56878
56879
56880
56881/***/ }),
56882
56883/***/ "./node_modules/d3-chord/src/math.js":
56884/*!*******************************************!*\
56885 !*** ./node_modules/d3-chord/src/math.js ***!
56886 \*******************************************/
56887/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
56888
56889"use strict";
56890__webpack_require__.r(__webpack_exports__);
56891/* harmony export */ __webpack_require__.d(__webpack_exports__, {
56892/* harmony export */ "abs": () => (/* binding */ abs),
56893/* harmony export */ "cos": () => (/* binding */ cos),
56894/* harmony export */ "epsilon": () => (/* binding */ epsilon),
56895/* harmony export */ "halfPi": () => (/* binding */ halfPi),
56896/* harmony export */ "max": () => (/* binding */ max),
56897/* harmony export */ "pi": () => (/* binding */ pi),
56898/* harmony export */ "sin": () => (/* binding */ sin),
56899/* harmony export */ "tau": () => (/* binding */ tau)
56900/* harmony export */ });
56901var abs = Math.abs;
56902var cos = Math.cos;
56903var sin = Math.sin;
56904var pi = Math.PI;
56905var halfPi = pi / 2;
56906var tau = pi * 2;
56907var max = Math.max;
56908var epsilon = 1e-12;
56909
56910
56911/***/ }),
56912
56913/***/ "./node_modules/d3-chord/src/ribbon.js":
56914/*!*********************************************!*\
56915 !*** ./node_modules/d3-chord/src/ribbon.js ***!
56916 \*********************************************/
56917/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
56918
56919"use strict";
56920__webpack_require__.r(__webpack_exports__);
56921/* harmony export */ __webpack_require__.d(__webpack_exports__, {
56922/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
56923/* harmony export */ "ribbonArrow": () => (/* binding */ ribbonArrow)
56924/* harmony export */ });
56925/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/path.js");
56926/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array.js */ "./node_modules/d3-chord/src/array.js");
56927/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-chord/src/constant.js");
56928/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-chord/src/math.js");
56929
56930
56931
56932
56933
56934function defaultSource(d) {
56935 return d.source;
56936}
56937
56938function defaultTarget(d) {
56939 return d.target;
56940}
56941
56942function defaultRadius(d) {
56943 return d.radius;
56944}
56945
56946function defaultStartAngle(d) {
56947 return d.startAngle;
56948}
56949
56950function defaultEndAngle(d) {
56951 return d.endAngle;
56952}
56953
56954function defaultPadAngle() {
56955 return 0;
56956}
56957
56958function defaultArrowheadRadius() {
56959 return 10;
56960}
56961
56962function ribbon(headRadius) {
56963 var source = defaultSource,
56964 target = defaultTarget,
56965 sourceRadius = defaultRadius,
56966 targetRadius = defaultRadius,
56967 startAngle = defaultStartAngle,
56968 endAngle = defaultEndAngle,
56969 padAngle = defaultPadAngle,
56970 context = null;
56971
56972 function ribbon() {
56973 var buffer,
56974 s = source.apply(this, arguments),
56975 t = target.apply(this, arguments),
56976 ap = padAngle.apply(this, arguments) / 2,
56977 argv = _array_js__WEBPACK_IMPORTED_MODULE_0__.slice.call(arguments),
56978 sr = +sourceRadius.apply(this, (argv[0] = s, argv)),
56979 sa0 = startAngle.apply(this, argv) - _math_js__WEBPACK_IMPORTED_MODULE_1__.halfPi,
56980 sa1 = endAngle.apply(this, argv) - _math_js__WEBPACK_IMPORTED_MODULE_1__.halfPi,
56981 tr = +targetRadius.apply(this, (argv[0] = t, argv)),
56982 ta0 = startAngle.apply(this, argv) - _math_js__WEBPACK_IMPORTED_MODULE_1__.halfPi,
56983 ta1 = endAngle.apply(this, argv) - _math_js__WEBPACK_IMPORTED_MODULE_1__.halfPi;
56984
56985 if (!context) context = buffer = (0,d3_path__WEBPACK_IMPORTED_MODULE_2__["default"])();
56986
56987 if (ap > _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon) {
56988 if ((0,_math_js__WEBPACK_IMPORTED_MODULE_1__.abs)(sa1 - sa0) > ap * 2 + _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon) sa1 > sa0 ? (sa0 += ap, sa1 -= ap) : (sa0 -= ap, sa1 += ap);
56989 else sa0 = sa1 = (sa0 + sa1) / 2;
56990 if ((0,_math_js__WEBPACK_IMPORTED_MODULE_1__.abs)(ta1 - ta0) > ap * 2 + _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon) ta1 > ta0 ? (ta0 += ap, ta1 -= ap) : (ta0 -= ap, ta1 += ap);
56991 else ta0 = ta1 = (ta0 + ta1) / 2;
56992 }
56993
56994 context.moveTo(sr * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(sa0), sr * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(sa0));
56995 context.arc(0, 0, sr, sa0, sa1);
56996 if (sa0 !== ta0 || sa1 !== ta1) {
56997 if (headRadius) {
56998 var hr = +headRadius.apply(this, arguments), tr2 = tr - hr, ta2 = (ta0 + ta1) / 2;
56999 context.quadraticCurveTo(0, 0, tr2 * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(ta0), tr2 * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(ta0));
57000 context.lineTo(tr * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(ta2), tr * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(ta2));
57001 context.lineTo(tr2 * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(ta1), tr2 * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(ta1));
57002 } else {
57003 context.quadraticCurveTo(0, 0, tr * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(ta0), tr * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(ta0));
57004 context.arc(0, 0, tr, ta0, ta1);
57005 }
57006 }
57007 context.quadraticCurveTo(0, 0, sr * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(sa0), sr * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(sa0));
57008 context.closePath();
57009
57010 if (buffer) return context = null, buffer + "" || null;
57011 }
57012
57013 if (headRadius) ribbon.headRadius = function(_) {
57014 return arguments.length ? (headRadius = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_3__["default"])(+_), ribbon) : headRadius;
57015 };
57016
57017 ribbon.radius = function(_) {
57018 return arguments.length ? (sourceRadius = targetRadius = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_3__["default"])(+_), ribbon) : sourceRadius;
57019 };
57020
57021 ribbon.sourceRadius = function(_) {
57022 return arguments.length ? (sourceRadius = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_3__["default"])(+_), ribbon) : sourceRadius;
57023 };
57024
57025 ribbon.targetRadius = function(_) {
57026 return arguments.length ? (targetRadius = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_3__["default"])(+_), ribbon) : targetRadius;
57027 };
57028
57029 ribbon.startAngle = function(_) {
57030 return arguments.length ? (startAngle = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_3__["default"])(+_), ribbon) : startAngle;
57031 };
57032
57033 ribbon.endAngle = function(_) {
57034 return arguments.length ? (endAngle = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_3__["default"])(+_), ribbon) : endAngle;
57035 };
57036
57037 ribbon.padAngle = function(_) {
57038 return arguments.length ? (padAngle = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_3__["default"])(+_), ribbon) : padAngle;
57039 };
57040
57041 ribbon.source = function(_) {
57042 return arguments.length ? (source = _, ribbon) : source;
57043 };
57044
57045 ribbon.target = function(_) {
57046 return arguments.length ? (target = _, ribbon) : target;
57047 };
57048
57049 ribbon.context = function(_) {
57050 return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;
57051 };
57052
57053 return ribbon;
57054}
57055
57056/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
57057 return ribbon();
57058}
57059
57060function ribbonArrow() {
57061 return ribbon(defaultArrowheadRadius);
57062}
57063
57064
57065/***/ }),
57066
57067/***/ "./node_modules/d3-color/src/color.js":
57068/*!********************************************!*\
57069 !*** ./node_modules/d3-color/src/color.js ***!
57070 \********************************************/
57071/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
57072
57073"use strict";
57074__webpack_require__.r(__webpack_exports__);
57075/* harmony export */ __webpack_require__.d(__webpack_exports__, {
57076/* harmony export */ "Color": () => (/* binding */ Color),
57077/* harmony export */ "Rgb": () => (/* binding */ Rgb),
57078/* harmony export */ "brighter": () => (/* binding */ brighter),
57079/* harmony export */ "darker": () => (/* binding */ darker),
57080/* harmony export */ "default": () => (/* binding */ color),
57081/* harmony export */ "hsl": () => (/* binding */ hsl),
57082/* harmony export */ "hslConvert": () => (/* binding */ hslConvert),
57083/* harmony export */ "rgb": () => (/* binding */ rgb),
57084/* harmony export */ "rgbConvert": () => (/* binding */ rgbConvert)
57085/* harmony export */ });
57086/* harmony import */ var _define_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define.js */ "./node_modules/d3-color/src/define.js");
57087
57088
57089function Color() {}
57090
57091var darker = 0.7;
57092var brighter = 1 / darker;
57093
57094var reI = "\\s*([+-]?\\d+)\\s*",
57095 reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",
57096 reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
57097 reHex = /^#([0-9a-f]{3,8})$/,
57098 reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"),
57099 reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"),
57100 reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"),
57101 reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"),
57102 reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"),
57103 reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$");
57104
57105var named = {
57106 aliceblue: 0xf0f8ff,
57107 antiquewhite: 0xfaebd7,
57108 aqua: 0x00ffff,
57109 aquamarine: 0x7fffd4,
57110 azure: 0xf0ffff,
57111 beige: 0xf5f5dc,
57112 bisque: 0xffe4c4,
57113 black: 0x000000,
57114 blanchedalmond: 0xffebcd,
57115 blue: 0x0000ff,
57116 blueviolet: 0x8a2be2,
57117 brown: 0xa52a2a,
57118 burlywood: 0xdeb887,
57119 cadetblue: 0x5f9ea0,
57120 chartreuse: 0x7fff00,
57121 chocolate: 0xd2691e,
57122 coral: 0xff7f50,
57123 cornflowerblue: 0x6495ed,
57124 cornsilk: 0xfff8dc,
57125 crimson: 0xdc143c,
57126 cyan: 0x00ffff,
57127 darkblue: 0x00008b,
57128 darkcyan: 0x008b8b,
57129 darkgoldenrod: 0xb8860b,
57130 darkgray: 0xa9a9a9,
57131 darkgreen: 0x006400,
57132 darkgrey: 0xa9a9a9,
57133 darkkhaki: 0xbdb76b,
57134 darkmagenta: 0x8b008b,
57135 darkolivegreen: 0x556b2f,
57136 darkorange: 0xff8c00,
57137 darkorchid: 0x9932cc,
57138 darkred: 0x8b0000,
57139 darksalmon: 0xe9967a,
57140 darkseagreen: 0x8fbc8f,
57141 darkslateblue: 0x483d8b,
57142 darkslategray: 0x2f4f4f,
57143 darkslategrey: 0x2f4f4f,
57144 darkturquoise: 0x00ced1,
57145 darkviolet: 0x9400d3,
57146 deeppink: 0xff1493,
57147 deepskyblue: 0x00bfff,
57148 dimgray: 0x696969,
57149 dimgrey: 0x696969,
57150 dodgerblue: 0x1e90ff,
57151 firebrick: 0xb22222,
57152 floralwhite: 0xfffaf0,
57153 forestgreen: 0x228b22,
57154 fuchsia: 0xff00ff,
57155 gainsboro: 0xdcdcdc,
57156 ghostwhite: 0xf8f8ff,
57157 gold: 0xffd700,
57158 goldenrod: 0xdaa520,
57159 gray: 0x808080,
57160 green: 0x008000,
57161 greenyellow: 0xadff2f,
57162 grey: 0x808080,
57163 honeydew: 0xf0fff0,
57164 hotpink: 0xff69b4,
57165 indianred: 0xcd5c5c,
57166 indigo: 0x4b0082,
57167 ivory: 0xfffff0,
57168 khaki: 0xf0e68c,
57169 lavender: 0xe6e6fa,
57170 lavenderblush: 0xfff0f5,
57171 lawngreen: 0x7cfc00,
57172 lemonchiffon: 0xfffacd,
57173 lightblue: 0xadd8e6,
57174 lightcoral: 0xf08080,
57175 lightcyan: 0xe0ffff,
57176 lightgoldenrodyellow: 0xfafad2,
57177 lightgray: 0xd3d3d3,
57178 lightgreen: 0x90ee90,
57179 lightgrey: 0xd3d3d3,
57180 lightpink: 0xffb6c1,
57181 lightsalmon: 0xffa07a,
57182 lightseagreen: 0x20b2aa,
57183 lightskyblue: 0x87cefa,
57184 lightslategray: 0x778899,
57185 lightslategrey: 0x778899,
57186 lightsteelblue: 0xb0c4de,
57187 lightyellow: 0xffffe0,
57188 lime: 0x00ff00,
57189 limegreen: 0x32cd32,
57190 linen: 0xfaf0e6,
57191 magenta: 0xff00ff,
57192 maroon: 0x800000,
57193 mediumaquamarine: 0x66cdaa,
57194 mediumblue: 0x0000cd,
57195 mediumorchid: 0xba55d3,
57196 mediumpurple: 0x9370db,
57197 mediumseagreen: 0x3cb371,
57198 mediumslateblue: 0x7b68ee,
57199 mediumspringgreen: 0x00fa9a,
57200 mediumturquoise: 0x48d1cc,
57201 mediumvioletred: 0xc71585,
57202 midnightblue: 0x191970,
57203 mintcream: 0xf5fffa,
57204 mistyrose: 0xffe4e1,
57205 moccasin: 0xffe4b5,
57206 navajowhite: 0xffdead,
57207 navy: 0x000080,
57208 oldlace: 0xfdf5e6,
57209 olive: 0x808000,
57210 olivedrab: 0x6b8e23,
57211 orange: 0xffa500,
57212 orangered: 0xff4500,
57213 orchid: 0xda70d6,
57214 palegoldenrod: 0xeee8aa,
57215 palegreen: 0x98fb98,
57216 paleturquoise: 0xafeeee,
57217 palevioletred: 0xdb7093,
57218 papayawhip: 0xffefd5,
57219 peachpuff: 0xffdab9,
57220 peru: 0xcd853f,
57221 pink: 0xffc0cb,
57222 plum: 0xdda0dd,
57223 powderblue: 0xb0e0e6,
57224 purple: 0x800080,
57225 rebeccapurple: 0x663399,
57226 red: 0xff0000,
57227 rosybrown: 0xbc8f8f,
57228 royalblue: 0x4169e1,
57229 saddlebrown: 0x8b4513,
57230 salmon: 0xfa8072,
57231 sandybrown: 0xf4a460,
57232 seagreen: 0x2e8b57,
57233 seashell: 0xfff5ee,
57234 sienna: 0xa0522d,
57235 silver: 0xc0c0c0,
57236 skyblue: 0x87ceeb,
57237 slateblue: 0x6a5acd,
57238 slategray: 0x708090,
57239 slategrey: 0x708090,
57240 snow: 0xfffafa,
57241 springgreen: 0x00ff7f,
57242 steelblue: 0x4682b4,
57243 tan: 0xd2b48c,
57244 teal: 0x008080,
57245 thistle: 0xd8bfd8,
57246 tomato: 0xff6347,
57247 turquoise: 0x40e0d0,
57248 violet: 0xee82ee,
57249 wheat: 0xf5deb3,
57250 white: 0xffffff,
57251 whitesmoke: 0xf5f5f5,
57252 yellow: 0xffff00,
57253 yellowgreen: 0x9acd32
57254};
57255
57256(0,_define_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Color, color, {
57257 copy: function(channels) {
57258 return Object.assign(new this.constructor, this, channels);
57259 },
57260 displayable: function() {
57261 return this.rgb().displayable();
57262 },
57263 hex: color_formatHex, // Deprecated! Use color.formatHex.
57264 formatHex: color_formatHex,
57265 formatHsl: color_formatHsl,
57266 formatRgb: color_formatRgb,
57267 toString: color_formatRgb
57268});
57269
57270function color_formatHex() {
57271 return this.rgb().formatHex();
57272}
57273
57274function color_formatHsl() {
57275 return hslConvert(this).formatHsl();
57276}
57277
57278function color_formatRgb() {
57279 return this.rgb().formatRgb();
57280}
57281
57282function color(format) {
57283 var m, l;
57284 format = (format + "").trim().toLowerCase();
57285 return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000
57286 : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00
57287 : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000
57288 : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000
57289 : null) // invalid hex
57290 : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)
57291 : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)
57292 : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)
57293 : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)
57294 : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)
57295 : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)
57296 : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins
57297 : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0)
57298 : null;
57299}
57300
57301function rgbn(n) {
57302 return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);
57303}
57304
57305function rgba(r, g, b, a) {
57306 if (a <= 0) r = g = b = NaN;
57307 return new Rgb(r, g, b, a);
57308}
57309
57310function rgbConvert(o) {
57311 if (!(o instanceof Color)) o = color(o);
57312 if (!o) return new Rgb;
57313 o = o.rgb();
57314 return new Rgb(o.r, o.g, o.b, o.opacity);
57315}
57316
57317function rgb(r, g, b, opacity) {
57318 return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
57319}
57320
57321function Rgb(r, g, b, opacity) {
57322 this.r = +r;
57323 this.g = +g;
57324 this.b = +b;
57325 this.opacity = +opacity;
57326}
57327
57328(0,_define_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Rgb, rgb, (0,_define_js__WEBPACK_IMPORTED_MODULE_0__.extend)(Color, {
57329 brighter: function(k) {
57330 k = k == null ? brighter : Math.pow(brighter, k);
57331 return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
57332 },
57333 darker: function(k) {
57334 k = k == null ? darker : Math.pow(darker, k);
57335 return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
57336 },
57337 rgb: function() {
57338 return this;
57339 },
57340 displayable: function() {
57341 return (-0.5 <= this.r && this.r < 255.5)
57342 && (-0.5 <= this.g && this.g < 255.5)
57343 && (-0.5 <= this.b && this.b < 255.5)
57344 && (0 <= this.opacity && this.opacity <= 1);
57345 },
57346 hex: rgb_formatHex, // Deprecated! Use color.formatHex.
57347 formatHex: rgb_formatHex,
57348 formatRgb: rgb_formatRgb,
57349 toString: rgb_formatRgb
57350}));
57351
57352function rgb_formatHex() {
57353 return "#" + hex(this.r) + hex(this.g) + hex(this.b);
57354}
57355
57356function rgb_formatRgb() {
57357 var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
57358 return (a === 1 ? "rgb(" : "rgba(")
57359 + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", "
57360 + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", "
57361 + Math.max(0, Math.min(255, Math.round(this.b) || 0))
57362 + (a === 1 ? ")" : ", " + a + ")");
57363}
57364
57365function hex(value) {
57366 value = Math.max(0, Math.min(255, Math.round(value) || 0));
57367 return (value < 16 ? "0" : "") + value.toString(16);
57368}
57369
57370function hsla(h, s, l, a) {
57371 if (a <= 0) h = s = l = NaN;
57372 else if (l <= 0 || l >= 1) h = s = NaN;
57373 else if (s <= 0) h = NaN;
57374 return new Hsl(h, s, l, a);
57375}
57376
57377function hslConvert(o) {
57378 if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);
57379 if (!(o instanceof Color)) o = color(o);
57380 if (!o) return new Hsl;
57381 if (o instanceof Hsl) return o;
57382 o = o.rgb();
57383 var r = o.r / 255,
57384 g = o.g / 255,
57385 b = o.b / 255,
57386 min = Math.min(r, g, b),
57387 max = Math.max(r, g, b),
57388 h = NaN,
57389 s = max - min,
57390 l = (max + min) / 2;
57391 if (s) {
57392 if (r === max) h = (g - b) / s + (g < b) * 6;
57393 else if (g === max) h = (b - r) / s + 2;
57394 else h = (r - g) / s + 4;
57395 s /= l < 0.5 ? max + min : 2 - max - min;
57396 h *= 60;
57397 } else {
57398 s = l > 0 && l < 1 ? 0 : h;
57399 }
57400 return new Hsl(h, s, l, o.opacity);
57401}
57402
57403function hsl(h, s, l, opacity) {
57404 return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
57405}
57406
57407function Hsl(h, s, l, opacity) {
57408 this.h = +h;
57409 this.s = +s;
57410 this.l = +l;
57411 this.opacity = +opacity;
57412}
57413
57414(0,_define_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Hsl, hsl, (0,_define_js__WEBPACK_IMPORTED_MODULE_0__.extend)(Color, {
57415 brighter: function(k) {
57416 k = k == null ? brighter : Math.pow(brighter, k);
57417 return new Hsl(this.h, this.s, this.l * k, this.opacity);
57418 },
57419 darker: function(k) {
57420 k = k == null ? darker : Math.pow(darker, k);
57421 return new Hsl(this.h, this.s, this.l * k, this.opacity);
57422 },
57423 rgb: function() {
57424 var h = this.h % 360 + (this.h < 0) * 360,
57425 s = isNaN(h) || isNaN(this.s) ? 0 : this.s,
57426 l = this.l,
57427 m2 = l + (l < 0.5 ? l : 1 - l) * s,
57428 m1 = 2 * l - m2;
57429 return new Rgb(
57430 hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
57431 hsl2rgb(h, m1, m2),
57432 hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
57433 this.opacity
57434 );
57435 },
57436 displayable: function() {
57437 return (0 <= this.s && this.s <= 1 || isNaN(this.s))
57438 && (0 <= this.l && this.l <= 1)
57439 && (0 <= this.opacity && this.opacity <= 1);
57440 },
57441 formatHsl: function() {
57442 var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
57443 return (a === 1 ? "hsl(" : "hsla(")
57444 + (this.h || 0) + ", "
57445 + (this.s || 0) * 100 + "%, "
57446 + (this.l || 0) * 100 + "%"
57447 + (a === 1 ? ")" : ", " + a + ")");
57448 }
57449}));
57450
57451/* From FvD 13.37, CSS Color Module Level 3 */
57452function hsl2rgb(h, m1, m2) {
57453 return (h < 60 ? m1 + (m2 - m1) * h / 60
57454 : h < 180 ? m2
57455 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60
57456 : m1) * 255;
57457}
57458
57459
57460/***/ }),
57461
57462/***/ "./node_modules/d3-color/src/cubehelix.js":
57463/*!************************************************!*\
57464 !*** ./node_modules/d3-color/src/cubehelix.js ***!
57465 \************************************************/
57466/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
57467
57468"use strict";
57469__webpack_require__.r(__webpack_exports__);
57470/* harmony export */ __webpack_require__.d(__webpack_exports__, {
57471/* harmony export */ "Cubehelix": () => (/* binding */ Cubehelix),
57472/* harmony export */ "default": () => (/* binding */ cubehelix)
57473/* harmony export */ });
57474/* harmony import */ var _define_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./define.js */ "./node_modules/d3-color/src/define.js");
57475/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-color/src/color.js");
57476/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-color/src/math.js");
57477
57478
57479
57480
57481var A = -0.14861,
57482 B = +1.78277,
57483 C = -0.29227,
57484 D = -0.90649,
57485 E = +1.97294,
57486 ED = E * D,
57487 EB = E * B,
57488 BC_DA = B * C - D * A;
57489
57490function cubehelixConvert(o) {
57491 if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);
57492 if (!(o instanceof _color_js__WEBPACK_IMPORTED_MODULE_0__.Rgb)) o = (0,_color_js__WEBPACK_IMPORTED_MODULE_0__.rgbConvert)(o);
57493 var r = o.r / 255,
57494 g = o.g / 255,
57495 b = o.b / 255,
57496 l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),
57497 bl = b - l,
57498 k = (E * (g - l) - C * bl) / D,
57499 s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1
57500 h = s ? Math.atan2(k, bl) * _math_js__WEBPACK_IMPORTED_MODULE_1__.degrees - 120 : NaN;
57501 return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);
57502}
57503
57504function cubehelix(h, s, l, opacity) {
57505 return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);
57506}
57507
57508function Cubehelix(h, s, l, opacity) {
57509 this.h = +h;
57510 this.s = +s;
57511 this.l = +l;
57512 this.opacity = +opacity;
57513}
57514
57515(0,_define_js__WEBPACK_IMPORTED_MODULE_2__["default"])(Cubehelix, cubehelix, (0,_define_js__WEBPACK_IMPORTED_MODULE_2__.extend)(_color_js__WEBPACK_IMPORTED_MODULE_0__.Color, {
57516 brighter: function(k) {
57517 k = k == null ? _color_js__WEBPACK_IMPORTED_MODULE_0__.brighter : Math.pow(_color_js__WEBPACK_IMPORTED_MODULE_0__.brighter, k);
57518 return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
57519 },
57520 darker: function(k) {
57521 k = k == null ? _color_js__WEBPACK_IMPORTED_MODULE_0__.darker : Math.pow(_color_js__WEBPACK_IMPORTED_MODULE_0__.darker, k);
57522 return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
57523 },
57524 rgb: function() {
57525 var h = isNaN(this.h) ? 0 : (this.h + 120) * _math_js__WEBPACK_IMPORTED_MODULE_1__.radians,
57526 l = +this.l,
57527 a = isNaN(this.s) ? 0 : this.s * l * (1 - l),
57528 cosh = Math.cos(h),
57529 sinh = Math.sin(h);
57530 return new _color_js__WEBPACK_IMPORTED_MODULE_0__.Rgb(
57531 255 * (l + a * (A * cosh + B * sinh)),
57532 255 * (l + a * (C * cosh + D * sinh)),
57533 255 * (l + a * (E * cosh)),
57534 this.opacity
57535 );
57536 }
57537}));
57538
57539
57540/***/ }),
57541
57542/***/ "./node_modules/d3-color/src/define.js":
57543/*!*********************************************!*\
57544 !*** ./node_modules/d3-color/src/define.js ***!
57545 \*********************************************/
57546/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
57547
57548"use strict";
57549__webpack_require__.r(__webpack_exports__);
57550/* harmony export */ __webpack_require__.d(__webpack_exports__, {
57551/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
57552/* harmony export */ "extend": () => (/* binding */ extend)
57553/* harmony export */ });
57554/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(constructor, factory, prototype) {
57555 constructor.prototype = factory.prototype = prototype;
57556 prototype.constructor = constructor;
57557}
57558
57559function extend(parent, definition) {
57560 var prototype = Object.create(parent.prototype);
57561 for (var key in definition) prototype[key] = definition[key];
57562 return prototype;
57563}
57564
57565
57566/***/ }),
57567
57568/***/ "./node_modules/d3-color/src/index.js":
57569/*!********************************************!*\
57570 !*** ./node_modules/d3-color/src/index.js ***!
57571 \********************************************/
57572/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
57573
57574"use strict";
57575__webpack_require__.r(__webpack_exports__);
57576/* harmony export */ __webpack_require__.d(__webpack_exports__, {
57577/* harmony export */ "color": () => (/* reexport safe */ _color_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
57578/* harmony export */ "cubehelix": () => (/* reexport safe */ _cubehelix_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
57579/* harmony export */ "gray": () => (/* reexport safe */ _lab_js__WEBPACK_IMPORTED_MODULE_1__.gray),
57580/* harmony export */ "hcl": () => (/* reexport safe */ _lab_js__WEBPACK_IMPORTED_MODULE_1__.hcl),
57581/* harmony export */ "hsl": () => (/* reexport safe */ _color_js__WEBPACK_IMPORTED_MODULE_0__.hsl),
57582/* harmony export */ "lab": () => (/* reexport safe */ _lab_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
57583/* harmony export */ "lch": () => (/* reexport safe */ _lab_js__WEBPACK_IMPORTED_MODULE_1__.lch),
57584/* harmony export */ "rgb": () => (/* reexport safe */ _color_js__WEBPACK_IMPORTED_MODULE_0__.rgb)
57585/* harmony export */ });
57586/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-color/src/color.js");
57587/* harmony import */ var _lab_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lab.js */ "./node_modules/d3-color/src/lab.js");
57588/* harmony import */ var _cubehelix_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cubehelix.js */ "./node_modules/d3-color/src/cubehelix.js");
57589
57590
57591
57592
57593
57594/***/ }),
57595
57596/***/ "./node_modules/d3-color/src/lab.js":
57597/*!******************************************!*\
57598 !*** ./node_modules/d3-color/src/lab.js ***!
57599 \******************************************/
57600/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
57601
57602"use strict";
57603__webpack_require__.r(__webpack_exports__);
57604/* harmony export */ __webpack_require__.d(__webpack_exports__, {
57605/* harmony export */ "Hcl": () => (/* binding */ Hcl),
57606/* harmony export */ "Lab": () => (/* binding */ Lab),
57607/* harmony export */ "default": () => (/* binding */ lab),
57608/* harmony export */ "gray": () => (/* binding */ gray),
57609/* harmony export */ "hcl": () => (/* binding */ hcl),
57610/* harmony export */ "lch": () => (/* binding */ lch)
57611/* harmony export */ });
57612/* harmony import */ var _define_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./define.js */ "./node_modules/d3-color/src/define.js");
57613/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-color/src/color.js");
57614/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-color/src/math.js");
57615
57616
57617
57618
57619// https://observablehq.com/@mbostock/lab-and-rgb
57620const K = 18,
57621 Xn = 0.96422,
57622 Yn = 1,
57623 Zn = 0.82521,
57624 t0 = 4 / 29,
57625 t1 = 6 / 29,
57626 t2 = 3 * t1 * t1,
57627 t3 = t1 * t1 * t1;
57628
57629function labConvert(o) {
57630 if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);
57631 if (o instanceof Hcl) return hcl2lab(o);
57632 if (!(o instanceof _color_js__WEBPACK_IMPORTED_MODULE_0__.Rgb)) o = (0,_color_js__WEBPACK_IMPORTED_MODULE_0__.rgbConvert)(o);
57633 var r = rgb2lrgb(o.r),
57634 g = rgb2lrgb(o.g),
57635 b = rgb2lrgb(o.b),
57636 y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;
57637 if (r === g && g === b) x = z = y; else {
57638 x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);
57639 z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);
57640 }
57641 return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);
57642}
57643
57644function gray(l, opacity) {
57645 return new Lab(l, 0, 0, opacity == null ? 1 : opacity);
57646}
57647
57648function lab(l, a, b, opacity) {
57649 return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);
57650}
57651
57652function Lab(l, a, b, opacity) {
57653 this.l = +l;
57654 this.a = +a;
57655 this.b = +b;
57656 this.opacity = +opacity;
57657}
57658
57659(0,_define_js__WEBPACK_IMPORTED_MODULE_1__["default"])(Lab, lab, (0,_define_js__WEBPACK_IMPORTED_MODULE_1__.extend)(_color_js__WEBPACK_IMPORTED_MODULE_0__.Color, {
57660 brighter: function(k) {
57661 return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);
57662 },
57663 darker: function(k) {
57664 return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);
57665 },
57666 rgb: function() {
57667 var y = (this.l + 16) / 116,
57668 x = isNaN(this.a) ? y : y + this.a / 500,
57669 z = isNaN(this.b) ? y : y - this.b / 200;
57670 x = Xn * lab2xyz(x);
57671 y = Yn * lab2xyz(y);
57672 z = Zn * lab2xyz(z);
57673 return new _color_js__WEBPACK_IMPORTED_MODULE_0__.Rgb(
57674 lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),
57675 lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),
57676 lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),
57677 this.opacity
57678 );
57679 }
57680}));
57681
57682function xyz2lab(t) {
57683 return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;
57684}
57685
57686function lab2xyz(t) {
57687 return t > t1 ? t * t * t : t2 * (t - t0);
57688}
57689
57690function lrgb2rgb(x) {
57691 return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);
57692}
57693
57694function rgb2lrgb(x) {
57695 return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
57696}
57697
57698function hclConvert(o) {
57699 if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);
57700 if (!(o instanceof Lab)) o = labConvert(o);
57701 if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);
57702 var h = Math.atan2(o.b, o.a) * _math_js__WEBPACK_IMPORTED_MODULE_2__.degrees;
57703 return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);
57704}
57705
57706function lch(l, c, h, opacity) {
57707 return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
57708}
57709
57710function hcl(h, c, l, opacity) {
57711 return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
57712}
57713
57714function Hcl(h, c, l, opacity) {
57715 this.h = +h;
57716 this.c = +c;
57717 this.l = +l;
57718 this.opacity = +opacity;
57719}
57720
57721function hcl2lab(o) {
57722 if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);
57723 var h = o.h * _math_js__WEBPACK_IMPORTED_MODULE_2__.radians;
57724 return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);
57725}
57726
57727(0,_define_js__WEBPACK_IMPORTED_MODULE_1__["default"])(Hcl, hcl, (0,_define_js__WEBPACK_IMPORTED_MODULE_1__.extend)(_color_js__WEBPACK_IMPORTED_MODULE_0__.Color, {
57728 brighter: function(k) {
57729 return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);
57730 },
57731 darker: function(k) {
57732 return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);
57733 },
57734 rgb: function() {
57735 return hcl2lab(this).rgb();
57736 }
57737}));
57738
57739
57740/***/ }),
57741
57742/***/ "./node_modules/d3-color/src/math.js":
57743/*!*******************************************!*\
57744 !*** ./node_modules/d3-color/src/math.js ***!
57745 \*******************************************/
57746/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
57747
57748"use strict";
57749__webpack_require__.r(__webpack_exports__);
57750/* harmony export */ __webpack_require__.d(__webpack_exports__, {
57751/* harmony export */ "degrees": () => (/* binding */ degrees),
57752/* harmony export */ "radians": () => (/* binding */ radians)
57753/* harmony export */ });
57754const radians = Math.PI / 180;
57755const degrees = 180 / Math.PI;
57756
57757
57758/***/ }),
57759
57760/***/ "./node_modules/d3-contour/src/area.js":
57761/*!*********************************************!*\
57762 !*** ./node_modules/d3-contour/src/area.js ***!
57763 \*********************************************/
57764/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
57765
57766"use strict";
57767__webpack_require__.r(__webpack_exports__);
57768/* harmony export */ __webpack_require__.d(__webpack_exports__, {
57769/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
57770/* harmony export */ });
57771/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(ring) {
57772 var i = 0, n = ring.length, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];
57773 while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];
57774 return area;
57775}
57776
57777
57778/***/ }),
57779
57780/***/ "./node_modules/d3-contour/src/array.js":
57781/*!**********************************************!*\
57782 !*** ./node_modules/d3-contour/src/array.js ***!
57783 \**********************************************/
57784/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
57785
57786"use strict";
57787__webpack_require__.r(__webpack_exports__);
57788/* harmony export */ __webpack_require__.d(__webpack_exports__, {
57789/* harmony export */ "slice": () => (/* binding */ slice)
57790/* harmony export */ });
57791var array = Array.prototype;
57792
57793var slice = array.slice;
57794
57795
57796/***/ }),
57797
57798/***/ "./node_modules/d3-contour/src/ascending.js":
57799/*!**************************************************!*\
57800 !*** ./node_modules/d3-contour/src/ascending.js ***!
57801 \**************************************************/
57802/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
57803
57804"use strict";
57805__webpack_require__.r(__webpack_exports__);
57806/* harmony export */ __webpack_require__.d(__webpack_exports__, {
57807/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
57808/* harmony export */ });
57809/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {
57810 return a - b;
57811}
57812
57813
57814/***/ }),
57815
57816/***/ "./node_modules/d3-contour/src/blur.js":
57817/*!*********************************************!*\
57818 !*** ./node_modules/d3-contour/src/blur.js ***!
57819 \*********************************************/
57820/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
57821
57822"use strict";
57823__webpack_require__.r(__webpack_exports__);
57824/* harmony export */ __webpack_require__.d(__webpack_exports__, {
57825/* harmony export */ "blurX": () => (/* binding */ blurX),
57826/* harmony export */ "blurY": () => (/* binding */ blurY)
57827/* harmony export */ });
57828// TODO Optimize edge cases.
57829// TODO Optimize index calculation.
57830// TODO Optimize arguments.
57831function blurX(source, target, r) {
57832 var n = source.width,
57833 m = source.height,
57834 w = (r << 1) + 1;
57835 for (var j = 0; j < m; ++j) {
57836 for (var i = 0, sr = 0; i < n + r; ++i) {
57837 if (i < n) {
57838 sr += source.data[i + j * n];
57839 }
57840 if (i >= r) {
57841 if (i >= w) {
57842 sr -= source.data[i - w + j * n];
57843 }
57844 target.data[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w);
57845 }
57846 }
57847 }
57848}
57849
57850// TODO Optimize edge cases.
57851// TODO Optimize index calculation.
57852// TODO Optimize arguments.
57853function blurY(source, target, r) {
57854 var n = source.width,
57855 m = source.height,
57856 w = (r << 1) + 1;
57857 for (var i = 0; i < n; ++i) {
57858 for (var j = 0, sr = 0; j < m + r; ++j) {
57859 if (j < m) {
57860 sr += source.data[i + j * n];
57861 }
57862 if (j >= r) {
57863 if (j >= w) {
57864 sr -= source.data[i + (j - w) * n];
57865 }
57866 target.data[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w);
57867 }
57868 }
57869 }
57870}
57871
57872
57873/***/ }),
57874
57875/***/ "./node_modules/d3-contour/src/constant.js":
57876/*!*************************************************!*\
57877 !*** ./node_modules/d3-contour/src/constant.js ***!
57878 \*************************************************/
57879/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
57880
57881"use strict";
57882__webpack_require__.r(__webpack_exports__);
57883/* harmony export */ __webpack_require__.d(__webpack_exports__, {
57884/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
57885/* harmony export */ });
57886/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (x => () => x);
57887
57888
57889/***/ }),
57890
57891/***/ "./node_modules/d3-contour/src/contains.js":
57892/*!*************************************************!*\
57893 !*** ./node_modules/d3-contour/src/contains.js ***!
57894 \*************************************************/
57895/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
57896
57897"use strict";
57898__webpack_require__.r(__webpack_exports__);
57899/* harmony export */ __webpack_require__.d(__webpack_exports__, {
57900/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
57901/* harmony export */ });
57902/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(ring, hole) {
57903 var i = -1, n = hole.length, c;
57904 while (++i < n) if (c = ringContains(ring, hole[i])) return c;
57905 return 0;
57906}
57907
57908function ringContains(ring, point) {
57909 var x = point[0], y = point[1], contains = -1;
57910 for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {
57911 var pi = ring[i], xi = pi[0], yi = pi[1], pj = ring[j], xj = pj[0], yj = pj[1];
57912 if (segmentContains(pi, pj, point)) return 0;
57913 if (((yi > y) !== (yj > y)) && ((x < (xj - xi) * (y - yi) / (yj - yi) + xi))) contains = -contains;
57914 }
57915 return contains;
57916}
57917
57918function segmentContains(a, b, c) {
57919 var i; return collinear(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);
57920}
57921
57922function collinear(a, b, c) {
57923 return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);
57924}
57925
57926function within(p, q, r) {
57927 return p <= q && q <= r || r <= q && q <= p;
57928}
57929
57930
57931/***/ }),
57932
57933/***/ "./node_modules/d3-contour/src/contours.js":
57934/*!*************************************************!*\
57935 !*** ./node_modules/d3-contour/src/contours.js ***!
57936 \*************************************************/
57937/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
57938
57939"use strict";
57940__webpack_require__.r(__webpack_exports__);
57941/* harmony export */ __webpack_require__.d(__webpack_exports__, {
57942/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
57943/* harmony export */ });
57944/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/threshold/sturges.js");
57945/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/extent.js");
57946/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/ticks.js");
57947/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./array.js */ "./node_modules/d3-contour/src/array.js");
57948/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ascending.js */ "./node_modules/d3-contour/src/ascending.js");
57949/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./area.js */ "./node_modules/d3-contour/src/area.js");
57950/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-contour/src/constant.js");
57951/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./contains.js */ "./node_modules/d3-contour/src/contains.js");
57952/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./noop.js */ "./node_modules/d3-contour/src/noop.js");
57953
57954
57955
57956
57957
57958
57959
57960
57961var cases = [
57962 [],
57963 [[[1.0, 1.5], [0.5, 1.0]]],
57964 [[[1.5, 1.0], [1.0, 1.5]]],
57965 [[[1.5, 1.0], [0.5, 1.0]]],
57966 [[[1.0, 0.5], [1.5, 1.0]]],
57967 [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]],
57968 [[[1.0, 0.5], [1.0, 1.5]]],
57969 [[[1.0, 0.5], [0.5, 1.0]]],
57970 [[[0.5, 1.0], [1.0, 0.5]]],
57971 [[[1.0, 1.5], [1.0, 0.5]]],
57972 [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]],
57973 [[[1.5, 1.0], [1.0, 0.5]]],
57974 [[[0.5, 1.0], [1.5, 1.0]]],
57975 [[[1.0, 1.5], [1.5, 1.0]]],
57976 [[[0.5, 1.0], [1.0, 1.5]]],
57977 []
57978];
57979
57980/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
57981 var dx = 1,
57982 dy = 1,
57983 threshold = d3_array__WEBPACK_IMPORTED_MODULE_0__["default"],
57984 smooth = smoothLinear;
57985
57986 function contours(values) {
57987 var tz = threshold(values);
57988
57989 // Convert number of thresholds into uniform thresholds.
57990 if (!Array.isArray(tz)) {
57991 const e = (0,d3_array__WEBPACK_IMPORTED_MODULE_1__["default"])(values), ts = (0,d3_array__WEBPACK_IMPORTED_MODULE_2__.tickStep)(e[0], e[1], tz);
57992 tz = (0,d3_array__WEBPACK_IMPORTED_MODULE_2__["default"])(Math.floor(e[0] / ts) * ts, Math.floor(e[1] / ts - 1) * ts, tz);
57993 } else {
57994 tz = tz.slice().sort(_ascending_js__WEBPACK_IMPORTED_MODULE_3__["default"]);
57995 }
57996
57997 return tz.map(value => contour(values, value));
57998 }
57999
58000 // Accumulate, smooth contour rings, assign holes to exterior rings.
58001 // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js
58002 function contour(values, value) {
58003 var polygons = [],
58004 holes = [];
58005
58006 isorings(values, value, function(ring) {
58007 smooth(ring, values, value);
58008 if ((0,_area_js__WEBPACK_IMPORTED_MODULE_4__["default"])(ring) > 0) polygons.push([ring]);
58009 else holes.push(ring);
58010 });
58011
58012 holes.forEach(function(hole) {
58013 for (var i = 0, n = polygons.length, polygon; i < n; ++i) {
58014 if ((0,_contains_js__WEBPACK_IMPORTED_MODULE_5__["default"])((polygon = polygons[i])[0], hole) !== -1) {
58015 polygon.push(hole);
58016 return;
58017 }
58018 }
58019 });
58020
58021 return {
58022 type: "MultiPolygon",
58023 value: value,
58024 coordinates: polygons
58025 };
58026 }
58027
58028 // Marching squares with isolines stitched into rings.
58029 // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js
58030 function isorings(values, value, callback) {
58031 var fragmentByStart = new Array,
58032 fragmentByEnd = new Array,
58033 x, y, t0, t1, t2, t3;
58034
58035 // Special case for the first row (y = -1, t2 = t3 = 0).
58036 x = y = -1;
58037 t1 = values[0] >= value;
58038 cases[t1 << 1].forEach(stitch);
58039 while (++x < dx - 1) {
58040 t0 = t1, t1 = values[x + 1] >= value;
58041 cases[t0 | t1 << 1].forEach(stitch);
58042 }
58043 cases[t1 << 0].forEach(stitch);
58044
58045 // General case for the intermediate rows.
58046 while (++y < dy - 1) {
58047 x = -1;
58048 t1 = values[y * dx + dx] >= value;
58049 t2 = values[y * dx] >= value;
58050 cases[t1 << 1 | t2 << 2].forEach(stitch);
58051 while (++x < dx - 1) {
58052 t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;
58053 t3 = t2, t2 = values[y * dx + x + 1] >= value;
58054 cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);
58055 }
58056 cases[t1 | t2 << 3].forEach(stitch);
58057 }
58058
58059 // Special case for the last row (y = dy - 1, t0 = t1 = 0).
58060 x = -1;
58061 t2 = values[y * dx] >= value;
58062 cases[t2 << 2].forEach(stitch);
58063 while (++x < dx - 1) {
58064 t3 = t2, t2 = values[y * dx + x + 1] >= value;
58065 cases[t2 << 2 | t3 << 3].forEach(stitch);
58066 }
58067 cases[t2 << 3].forEach(stitch);
58068
58069 function stitch(line) {
58070 var start = [line[0][0] + x, line[0][1] + y],
58071 end = [line[1][0] + x, line[1][1] + y],
58072 startIndex = index(start),
58073 endIndex = index(end),
58074 f, g;
58075 if (f = fragmentByEnd[startIndex]) {
58076 if (g = fragmentByStart[endIndex]) {
58077 delete fragmentByEnd[f.end];
58078 delete fragmentByStart[g.start];
58079 if (f === g) {
58080 f.ring.push(end);
58081 callback(f.ring);
58082 } else {
58083 fragmentByStart[f.start] = fragmentByEnd[g.end] = {start: f.start, end: g.end, ring: f.ring.concat(g.ring)};
58084 }
58085 } else {
58086 delete fragmentByEnd[f.end];
58087 f.ring.push(end);
58088 fragmentByEnd[f.end = endIndex] = f;
58089 }
58090 } else if (f = fragmentByStart[endIndex]) {
58091 if (g = fragmentByEnd[startIndex]) {
58092 delete fragmentByStart[f.start];
58093 delete fragmentByEnd[g.end];
58094 if (f === g) {
58095 f.ring.push(end);
58096 callback(f.ring);
58097 } else {
58098 fragmentByStart[g.start] = fragmentByEnd[f.end] = {start: g.start, end: f.end, ring: g.ring.concat(f.ring)};
58099 }
58100 } else {
58101 delete fragmentByStart[f.start];
58102 f.ring.unshift(start);
58103 fragmentByStart[f.start = startIndex] = f;
58104 }
58105 } else {
58106 fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {start: startIndex, end: endIndex, ring: [start, end]};
58107 }
58108 }
58109 }
58110
58111 function index(point) {
58112 return point[0] * 2 + point[1] * (dx + 1) * 4;
58113 }
58114
58115 function smoothLinear(ring, values, value) {
58116 ring.forEach(function(point) {
58117 var x = point[0],
58118 y = point[1],
58119 xt = x | 0,
58120 yt = y | 0,
58121 v0,
58122 v1 = values[yt * dx + xt];
58123 if (x > 0 && x < dx && xt === x) {
58124 v0 = values[yt * dx + xt - 1];
58125 point[0] = x + (value - v0) / (v1 - v0) - 0.5;
58126 }
58127 if (y > 0 && y < dy && yt === y) {
58128 v0 = values[(yt - 1) * dx + xt];
58129 point[1] = y + (value - v0) / (v1 - v0) - 0.5;
58130 }
58131 });
58132 }
58133
58134 contours.contour = contour;
58135
58136 contours.size = function(_) {
58137 if (!arguments.length) return [dx, dy];
58138 var _0 = Math.floor(_[0]), _1 = Math.floor(_[1]);
58139 if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size");
58140 return dx = _0, dy = _1, contours;
58141 };
58142
58143 contours.thresholds = function(_) {
58144 return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? (0,_constant_js__WEBPACK_IMPORTED_MODULE_6__["default"])(_array_js__WEBPACK_IMPORTED_MODULE_7__.slice.call(_)) : (0,_constant_js__WEBPACK_IMPORTED_MODULE_6__["default"])(_), contours) : threshold;
58145 };
58146
58147 contours.smooth = function(_) {
58148 return arguments.length ? (smooth = _ ? smoothLinear : _noop_js__WEBPACK_IMPORTED_MODULE_8__["default"], contours) : smooth === smoothLinear;
58149 };
58150
58151 return contours;
58152}
58153
58154
58155/***/ }),
58156
58157/***/ "./node_modules/d3-contour/src/density.js":
58158/*!************************************************!*\
58159 !*** ./node_modules/d3-contour/src/density.js ***!
58160 \************************************************/
58161/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
58162
58163"use strict";
58164__webpack_require__.r(__webpack_exports__);
58165/* harmony export */ __webpack_require__.d(__webpack_exports__, {
58166/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
58167/* harmony export */ });
58168/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/max.js");
58169/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/ticks.js");
58170/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/range.js");
58171/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./array.js */ "./node_modules/d3-contour/src/array.js");
58172/* harmony import */ var _blur_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./blur.js */ "./node_modules/d3-contour/src/blur.js");
58173/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-contour/src/constant.js");
58174/* harmony import */ var _contours_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./contours.js */ "./node_modules/d3-contour/src/contours.js");
58175
58176
58177
58178
58179
58180
58181function defaultX(d) {
58182 return d[0];
58183}
58184
58185function defaultY(d) {
58186 return d[1];
58187}
58188
58189function defaultWeight() {
58190 return 1;
58191}
58192
58193/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
58194 var x = defaultX,
58195 y = defaultY,
58196 weight = defaultWeight,
58197 dx = 960,
58198 dy = 500,
58199 r = 20, // blur radius
58200 k = 2, // log2(grid cell size)
58201 o = r * 3, // grid offset, to pad for blur
58202 n = (dx + o * 2) >> k, // grid width
58203 m = (dy + o * 2) >> k, // grid height
58204 threshold = (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(20);
58205
58206 function density(data) {
58207 var values0 = new Float32Array(n * m),
58208 values1 = new Float32Array(n * m),
58209 pow2k = Math.pow(2, -k);
58210
58211 data.forEach(function(d, i, data) {
58212 var xi = (x(d, i, data) + o) * pow2k,
58213 yi = (y(d, i, data) + o) * pow2k,
58214 wi = +weight(d, i, data);
58215 if (xi >= 0 && xi < n && yi >= 0 && yi < m) {
58216 var x0 = Math.floor(xi),
58217 y0 = Math.floor(yi),
58218 xt = xi - x0 - 0.5,
58219 yt = yi - y0 - 0.5;
58220 values0[x0 + y0 * n] += (1 - xt) * (1 - yt) * wi;
58221 values0[x0 + 1 + y0 * n] += xt * (1 - yt) * wi;
58222 values0[x0 + 1 + (y0 + 1) * n] += xt * yt * wi;
58223 values0[x0 + (y0 + 1) * n] += (1 - xt) * yt * wi;
58224 }
58225 });
58226
58227 // TODO Optimize.
58228 (0,_blur_js__WEBPACK_IMPORTED_MODULE_1__.blurX)({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);
58229 (0,_blur_js__WEBPACK_IMPORTED_MODULE_1__.blurY)({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);
58230 (0,_blur_js__WEBPACK_IMPORTED_MODULE_1__.blurX)({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);
58231 (0,_blur_js__WEBPACK_IMPORTED_MODULE_1__.blurY)({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);
58232 (0,_blur_js__WEBPACK_IMPORTED_MODULE_1__.blurX)({width: n, height: m, data: values0}, {width: n, height: m, data: values1}, r >> k);
58233 (0,_blur_js__WEBPACK_IMPORTED_MODULE_1__.blurY)({width: n, height: m, data: values1}, {width: n, height: m, data: values0}, r >> k);
58234
58235 var tz = threshold(values0);
58236
58237 // Convert number of thresholds into uniform thresholds.
58238 if (!Array.isArray(tz)) {
58239 var stop = (0,d3_array__WEBPACK_IMPORTED_MODULE_2__["default"])(values0);
58240 tz = (0,d3_array__WEBPACK_IMPORTED_MODULE_3__.tickStep)(0, stop, tz);
58241 tz = (0,d3_array__WEBPACK_IMPORTED_MODULE_4__["default"])(0, Math.floor(stop / tz) * tz, tz);
58242 tz.shift();
58243 }
58244
58245 return (0,_contours_js__WEBPACK_IMPORTED_MODULE_5__["default"])()
58246 .thresholds(tz)
58247 .size([n, m])
58248 (values0)
58249 .map(transform);
58250 }
58251
58252 function transform(geometry) {
58253 geometry.value *= Math.pow(2, -2 * k); // Density in points per square pixel.
58254 geometry.coordinates.forEach(transformPolygon);
58255 return geometry;
58256 }
58257
58258 function transformPolygon(coordinates) {
58259 coordinates.forEach(transformRing);
58260 }
58261
58262 function transformRing(coordinates) {
58263 coordinates.forEach(transformPoint);
58264 }
58265
58266 // TODO Optimize.
58267 function transformPoint(coordinates) {
58268 coordinates[0] = coordinates[0] * Math.pow(2, k) - o;
58269 coordinates[1] = coordinates[1] * Math.pow(2, k) - o;
58270 }
58271
58272 function resize() {
58273 o = r * 3;
58274 n = (dx + o * 2) >> k;
58275 m = (dy + o * 2) >> k;
58276 return density;
58277 }
58278
58279 density.x = function(_) {
58280 return arguments.length ? (x = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), density) : x;
58281 };
58282
58283 density.y = function(_) {
58284 return arguments.length ? (y = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), density) : y;
58285 };
58286
58287 density.weight = function(_) {
58288 return arguments.length ? (weight = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), density) : weight;
58289 };
58290
58291 density.size = function(_) {
58292 if (!arguments.length) return [dx, dy];
58293 var _0 = +_[0], _1 = +_[1];
58294 if (!(_0 >= 0 && _1 >= 0)) throw new Error("invalid size");
58295 return dx = _0, dy = _1, resize();
58296 };
58297
58298 density.cellSize = function(_) {
58299 if (!arguments.length) return 1 << k;
58300 if (!((_ = +_) >= 1)) throw new Error("invalid cell size");
58301 return k = Math.floor(Math.log(_) / Math.LN2), resize();
58302 };
58303
58304 density.thresholds = function(_) {
58305 return arguments.length ? (threshold = typeof _ === "function" ? _ : Array.isArray(_) ? (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(_array_js__WEBPACK_IMPORTED_MODULE_6__.slice.call(_)) : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(_), density) : threshold;
58306 };
58307
58308 density.bandwidth = function(_) {
58309 if (!arguments.length) return Math.sqrt(r * (r + 1));
58310 if (!((_ = +_) >= 0)) throw new Error("invalid bandwidth");
58311 return r = Math.round((Math.sqrt(4 * _ * _ + 1) - 1) / 2), resize();
58312 };
58313
58314 return density;
58315}
58316
58317
58318/***/ }),
58319
58320/***/ "./node_modules/d3-contour/src/index.js":
58321/*!**********************************************!*\
58322 !*** ./node_modules/d3-contour/src/index.js ***!
58323 \**********************************************/
58324/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
58325
58326"use strict";
58327__webpack_require__.r(__webpack_exports__);
58328/* harmony export */ __webpack_require__.d(__webpack_exports__, {
58329/* harmony export */ "contourDensity": () => (/* reexport safe */ _density_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
58330/* harmony export */ "contours": () => (/* reexport safe */ _contours_js__WEBPACK_IMPORTED_MODULE_0__["default"])
58331/* harmony export */ });
58332/* harmony import */ var _contours_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./contours.js */ "./node_modules/d3-contour/src/contours.js");
58333/* harmony import */ var _density_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./density.js */ "./node_modules/d3-contour/src/density.js");
58334
58335
58336
58337
58338/***/ }),
58339
58340/***/ "./node_modules/d3-contour/src/noop.js":
58341/*!*********************************************!*\
58342 !*** ./node_modules/d3-contour/src/noop.js ***!
58343 \*********************************************/
58344/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
58345
58346"use strict";
58347__webpack_require__.r(__webpack_exports__);
58348/* harmony export */ __webpack_require__.d(__webpack_exports__, {
58349/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
58350/* harmony export */ });
58351/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {}
58352
58353
58354/***/ }),
58355
58356/***/ "./node_modules/d3-delaunay/src/delaunay.js":
58357/*!**************************************************!*\
58358 !*** ./node_modules/d3-delaunay/src/delaunay.js ***!
58359 \**************************************************/
58360/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
58361
58362"use strict";
58363__webpack_require__.r(__webpack_exports__);
58364/* harmony export */ __webpack_require__.d(__webpack_exports__, {
58365/* harmony export */ "default": () => (/* binding */ Delaunay)
58366/* harmony export */ });
58367/* harmony import */ var delaunator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! delaunator */ "./node_modules/delaunator/index.js");
58368/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./path.js */ "./node_modules/d3-delaunay/src/path.js");
58369/* harmony import */ var _polygon_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./polygon.js */ "./node_modules/d3-delaunay/src/polygon.js");
58370/* harmony import */ var _voronoi_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./voronoi.js */ "./node_modules/d3-delaunay/src/voronoi.js");
58371
58372
58373
58374
58375
58376const tau = 2 * Math.PI, pow = Math.pow;
58377
58378function pointX(p) {
58379 return p[0];
58380}
58381
58382function pointY(p) {
58383 return p[1];
58384}
58385
58386// A triangulation is collinear if all its triangles have a non-null area
58387function collinear(d) {
58388 const {triangles, coords} = d;
58389 for (let i = 0; i < triangles.length; i += 3) {
58390 const a = 2 * triangles[i],
58391 b = 2 * triangles[i + 1],
58392 c = 2 * triangles[i + 2],
58393 cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1])
58394 - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]);
58395 if (cross > 1e-10) return false;
58396 }
58397 return true;
58398}
58399
58400function jitter(x, y, r) {
58401 return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r];
58402}
58403
58404class Delaunay {
58405 static from(points, fx = pointX, fy = pointY, that) {
58406 return new Delaunay("length" in points
58407 ? flatArray(points, fx, fy, that)
58408 : Float64Array.from(flatIterable(points, fx, fy, that)));
58409 }
58410 constructor(points) {
58411 this._delaunator = new delaunator__WEBPACK_IMPORTED_MODULE_0__["default"](points);
58412 this.inedges = new Int32Array(points.length / 2);
58413 this._hullIndex = new Int32Array(points.length / 2);
58414 this.points = this._delaunator.coords;
58415 this._init();
58416 }
58417 update() {
58418 this._delaunator.update();
58419 this._init();
58420 return this;
58421 }
58422 _init() {
58423 const d = this._delaunator, points = this.points;
58424
58425 // check for collinear
58426 if (d.hull && d.hull.length > 2 && collinear(d)) {
58427 this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i)
58428 .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors
58429 const e = this.collinear[0], f = this.collinear[this.collinear.length - 1],
58430 bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ],
58431 r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]);
58432 for (let i = 0, n = points.length / 2; i < n; ++i) {
58433 const p = jitter(points[2 * i], points[2 * i + 1], r);
58434 points[2 * i] = p[0];
58435 points[2 * i + 1] = p[1];
58436 }
58437 this._delaunator = new delaunator__WEBPACK_IMPORTED_MODULE_0__["default"](points);
58438 } else {
58439 delete this.collinear;
58440 }
58441
58442 const halfedges = this.halfedges = this._delaunator.halfedges;
58443 const hull = this.hull = this._delaunator.hull;
58444 const triangles = this.triangles = this._delaunator.triangles;
58445 const inedges = this.inedges.fill(-1);
58446 const hullIndex = this._hullIndex.fill(-1);
58447
58448 // Compute an index from each point to an (arbitrary) incoming halfedge
58449 // Used to give the first neighbor of each point; for this reason,
58450 // on the hull we give priority to exterior halfedges
58451 for (let e = 0, n = halfedges.length; e < n; ++e) {
58452 const p = triangles[e % 3 === 2 ? e - 2 : e + 1];
58453 if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e;
58454 }
58455 for (let i = 0, n = hull.length; i < n; ++i) {
58456 hullIndex[hull[i]] = i;
58457 }
58458
58459 // degenerate case: 1 or 2 (distinct) points
58460 if (hull.length <= 2 && hull.length > 0) {
58461 this.triangles = new Int32Array(3).fill(-1);
58462 this.halfedges = new Int32Array(3).fill(-1);
58463 this.triangles[0] = hull[0];
58464 inedges[hull[0]] = 1;
58465 if (hull.length === 2) {
58466 inedges[hull[1]] = 0;
58467 this.triangles[1] = hull[1];
58468 this.triangles[2] = hull[1];
58469 }
58470 }
58471 }
58472 voronoi(bounds) {
58473 return new _voronoi_js__WEBPACK_IMPORTED_MODULE_1__["default"](this, bounds);
58474 }
58475 *neighbors(i) {
58476 const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this;
58477
58478 // degenerate case with several collinear points
58479 if (collinear) {
58480 const l = collinear.indexOf(i);
58481 if (l > 0) yield collinear[l - 1];
58482 if (l < collinear.length - 1) yield collinear[l + 1];
58483 return;
58484 }
58485
58486 const e0 = inedges[i];
58487 if (e0 === -1) return; // coincident point
58488 let e = e0, p0 = -1;
58489 do {
58490 yield p0 = triangles[e];
58491 e = e % 3 === 2 ? e - 2 : e + 1;
58492 if (triangles[e] !== i) return; // bad triangulation
58493 e = halfedges[e];
58494 if (e === -1) {
58495 const p = hull[(_hullIndex[i] + 1) % hull.length];
58496 if (p !== p0) yield p;
58497 return;
58498 }
58499 } while (e !== e0);
58500 }
58501 find(x, y, i = 0) {
58502 if ((x = +x, x !== x) || (y = +y, y !== y)) return -1;
58503 const i0 = i;
58504 let c;
58505 while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c;
58506 return c;
58507 }
58508 _step(i, x, y) {
58509 const {inedges, hull, _hullIndex, halfedges, triangles, points} = this;
58510 if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1);
58511 let c = i;
58512 let dc = pow(x - points[i * 2], 2) + pow(y - points[i * 2 + 1], 2);
58513 const e0 = inedges[i];
58514 let e = e0;
58515 do {
58516 let t = triangles[e];
58517 const dt = pow(x - points[t * 2], 2) + pow(y - points[t * 2 + 1], 2);
58518 if (dt < dc) dc = dt, c = t;
58519 e = e % 3 === 2 ? e - 2 : e + 1;
58520 if (triangles[e] !== i) break; // bad triangulation
58521 e = halfedges[e];
58522 if (e === -1) {
58523 e = hull[(_hullIndex[i] + 1) % hull.length];
58524 if (e !== t) {
58525 if (pow(x - points[e * 2], 2) + pow(y - points[e * 2 + 1], 2) < dc) return e;
58526 }
58527 break;
58528 }
58529 } while (e !== e0);
58530 return c;
58531 }
58532 render(context) {
58533 const buffer = context == null ? context = new _path_js__WEBPACK_IMPORTED_MODULE_2__["default"] : undefined;
58534 const {points, halfedges, triangles} = this;
58535 for (let i = 0, n = halfedges.length; i < n; ++i) {
58536 const j = halfedges[i];
58537 if (j < i) continue;
58538 const ti = triangles[i] * 2;
58539 const tj = triangles[j] * 2;
58540 context.moveTo(points[ti], points[ti + 1]);
58541 context.lineTo(points[tj], points[tj + 1]);
58542 }
58543 this.renderHull(context);
58544 return buffer && buffer.value();
58545 }
58546 renderPoints(context, r) {
58547 if (r === undefined && (!context || typeof context.moveTo !== "function")) r = context, context = null;
58548 r = r == undefined ? 2 : +r;
58549 const buffer = context == null ? context = new _path_js__WEBPACK_IMPORTED_MODULE_2__["default"] : undefined;
58550 const {points} = this;
58551 for (let i = 0, n = points.length; i < n; i += 2) {
58552 const x = points[i], y = points[i + 1];
58553 context.moveTo(x + r, y);
58554 context.arc(x, y, r, 0, tau);
58555 }
58556 return buffer && buffer.value();
58557 }
58558 renderHull(context) {
58559 const buffer = context == null ? context = new _path_js__WEBPACK_IMPORTED_MODULE_2__["default"] : undefined;
58560 const {hull, points} = this;
58561 const h = hull[0] * 2, n = hull.length;
58562 context.moveTo(points[h], points[h + 1]);
58563 for (let i = 1; i < n; ++i) {
58564 const h = 2 * hull[i];
58565 context.lineTo(points[h], points[h + 1]);
58566 }
58567 context.closePath();
58568 return buffer && buffer.value();
58569 }
58570 hullPolygon() {
58571 const polygon = new _polygon_js__WEBPACK_IMPORTED_MODULE_3__["default"];
58572 this.renderHull(polygon);
58573 return polygon.value();
58574 }
58575 renderTriangle(i, context) {
58576 const buffer = context == null ? context = new _path_js__WEBPACK_IMPORTED_MODULE_2__["default"] : undefined;
58577 const {points, triangles} = this;
58578 const t0 = triangles[i *= 3] * 2;
58579 const t1 = triangles[i + 1] * 2;
58580 const t2 = triangles[i + 2] * 2;
58581 context.moveTo(points[t0], points[t0 + 1]);
58582 context.lineTo(points[t1], points[t1 + 1]);
58583 context.lineTo(points[t2], points[t2 + 1]);
58584 context.closePath();
58585 return buffer && buffer.value();
58586 }
58587 *trianglePolygons() {
58588 const {triangles} = this;
58589 for (let i = 0, n = triangles.length / 3; i < n; ++i) {
58590 yield this.trianglePolygon(i);
58591 }
58592 }
58593 trianglePolygon(i) {
58594 const polygon = new _polygon_js__WEBPACK_IMPORTED_MODULE_3__["default"];
58595 this.renderTriangle(i, polygon);
58596 return polygon.value();
58597 }
58598}
58599
58600function flatArray(points, fx, fy, that) {
58601 const n = points.length;
58602 const array = new Float64Array(n * 2);
58603 for (let i = 0; i < n; ++i) {
58604 const p = points[i];
58605 array[i * 2] = fx.call(that, p, i, points);
58606 array[i * 2 + 1] = fy.call(that, p, i, points);
58607 }
58608 return array;
58609}
58610
58611function* flatIterable(points, fx, fy, that) {
58612 let i = 0;
58613 for (const p of points) {
58614 yield fx.call(that, p, i, points);
58615 yield fy.call(that, p, i, points);
58616 ++i;
58617 }
58618}
58619
58620
58621/***/ }),
58622
58623/***/ "./node_modules/d3-delaunay/src/index.js":
58624/*!***********************************************!*\
58625 !*** ./node_modules/d3-delaunay/src/index.js ***!
58626 \***********************************************/
58627/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
58628
58629"use strict";
58630__webpack_require__.r(__webpack_exports__);
58631/* harmony export */ __webpack_require__.d(__webpack_exports__, {
58632/* harmony export */ "Delaunay": () => (/* reexport safe */ _delaunay_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
58633/* harmony export */ "Voronoi": () => (/* reexport safe */ _voronoi_js__WEBPACK_IMPORTED_MODULE_1__["default"])
58634/* harmony export */ });
58635/* harmony import */ var _delaunay_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./delaunay.js */ "./node_modules/d3-delaunay/src/delaunay.js");
58636/* harmony import */ var _voronoi_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./voronoi.js */ "./node_modules/d3-delaunay/src/voronoi.js");
58637
58638
58639
58640
58641/***/ }),
58642
58643/***/ "./node_modules/d3-delaunay/src/path.js":
58644/*!**********************************************!*\
58645 !*** ./node_modules/d3-delaunay/src/path.js ***!
58646 \**********************************************/
58647/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
58648
58649"use strict";
58650__webpack_require__.r(__webpack_exports__);
58651/* harmony export */ __webpack_require__.d(__webpack_exports__, {
58652/* harmony export */ "default": () => (/* binding */ Path)
58653/* harmony export */ });
58654const epsilon = 1e-6;
58655
58656class Path {
58657 constructor() {
58658 this._x0 = this._y0 = // start of current subpath
58659 this._x1 = this._y1 = null; // end of current subpath
58660 this._ = "";
58661 }
58662 moveTo(x, y) {
58663 this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;
58664 }
58665 closePath() {
58666 if (this._x1 !== null) {
58667 this._x1 = this._x0, this._y1 = this._y0;
58668 this._ += "Z";
58669 }
58670 }
58671 lineTo(x, y) {
58672 this._ += `L${this._x1 = +x},${this._y1 = +y}`;
58673 }
58674 arc(x, y, r) {
58675 x = +x, y = +y, r = +r;
58676 const x0 = x + r;
58677 const y0 = y;
58678 if (r < 0) throw new Error("negative radius");
58679 if (this._x1 === null) this._ += `M${x0},${y0}`;
58680 else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) this._ += "L" + x0 + "," + y0;
58681 if (!r) return;
58682 this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`;
58683 }
58684 rect(x, y, w, h) {
58685 this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`;
58686 }
58687 value() {
58688 return this._ || null;
58689 }
58690}
58691
58692
58693/***/ }),
58694
58695/***/ "./node_modules/d3-delaunay/src/polygon.js":
58696/*!*************************************************!*\
58697 !*** ./node_modules/d3-delaunay/src/polygon.js ***!
58698 \*************************************************/
58699/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
58700
58701"use strict";
58702__webpack_require__.r(__webpack_exports__);
58703/* harmony export */ __webpack_require__.d(__webpack_exports__, {
58704/* harmony export */ "default": () => (/* binding */ Polygon)
58705/* harmony export */ });
58706class Polygon {
58707 constructor() {
58708 this._ = [];
58709 }
58710 moveTo(x, y) {
58711 this._.push([x, y]);
58712 }
58713 closePath() {
58714 this._.push(this._[0].slice());
58715 }
58716 lineTo(x, y) {
58717 this._.push([x, y]);
58718 }
58719 value() {
58720 return this._.length ? this._ : null;
58721 }
58722}
58723
58724
58725/***/ }),
58726
58727/***/ "./node_modules/d3-delaunay/src/voronoi.js":
58728/*!*************************************************!*\
58729 !*** ./node_modules/d3-delaunay/src/voronoi.js ***!
58730 \*************************************************/
58731/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
58732
58733"use strict";
58734__webpack_require__.r(__webpack_exports__);
58735/* harmony export */ __webpack_require__.d(__webpack_exports__, {
58736/* harmony export */ "default": () => (/* binding */ Voronoi)
58737/* harmony export */ });
58738/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./path.js */ "./node_modules/d3-delaunay/src/path.js");
58739/* harmony import */ var _polygon_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./polygon.js */ "./node_modules/d3-delaunay/src/polygon.js");
58740
58741
58742
58743class Voronoi {
58744 constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) {
58745 if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error("invalid bounds");
58746 this.delaunay = delaunay;
58747 this._circumcenters = new Float64Array(delaunay.points.length * 2);
58748 this.vectors = new Float64Array(delaunay.points.length * 2);
58749 this.xmax = xmax, this.xmin = xmin;
58750 this.ymax = ymax, this.ymin = ymin;
58751 this._init();
58752 }
58753 update() {
58754 this.delaunay.update();
58755 this._init();
58756 return this;
58757 }
58758 _init() {
58759 const {delaunay: {points, hull, triangles}, vectors} = this;
58760
58761 // Compute circumcenters.
58762 const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2);
58763 for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) {
58764 const t1 = triangles[i] * 2;
58765 const t2 = triangles[i + 1] * 2;
58766 const t3 = triangles[i + 2] * 2;
58767 const x1 = points[t1];
58768 const y1 = points[t1 + 1];
58769 const x2 = points[t2];
58770 const y2 = points[t2 + 1];
58771 const x3 = points[t3];
58772 const y3 = points[t3 + 1];
58773
58774 const dx = x2 - x1;
58775 const dy = y2 - y1;
58776 const ex = x3 - x1;
58777 const ey = y3 - y1;
58778 const ab = (dx * ey - dy * ex) * 2;
58779
58780 if (Math.abs(ab) < 1e-9) {
58781 // degenerate case (collinear diagram)
58782 // almost equal points (degenerate triangle)
58783 // the circumcenter is at the infinity, in a
58784 // direction that is:
58785 // 1. orthogonal to the halfedge.
58786 let a = 1e9;
58787 // 2. points away from the center; since the list of triangles starts
58788 // in the center, the first point of the first triangle
58789 // will be our reference
58790 const r = triangles[0] * 2;
58791 a *= Math.sign((points[r] - x1) * ey - (points[r + 1] - y1) * ex);
58792 x = (x1 + x3) / 2 - a * ey;
58793 y = (y1 + y3) / 2 + a * ex;
58794 } else {
58795 const d = 1 / ab;
58796 const bl = dx * dx + dy * dy;
58797 const cl = ex * ex + ey * ey;
58798 x = x1 + (ey * bl - dy * cl) * d;
58799 y = y1 + (dx * cl - ex * bl) * d;
58800 }
58801 circumcenters[j] = x;
58802 circumcenters[j + 1] = y;
58803 }
58804
58805 // Compute exterior cell rays.
58806 let h = hull[hull.length - 1];
58807 let p0, p1 = h * 4;
58808 let x0, x1 = points[2 * h];
58809 let y0, y1 = points[2 * h + 1];
58810 vectors.fill(0);
58811 for (let i = 0; i < hull.length; ++i) {
58812 h = hull[i];
58813 p0 = p1, x0 = x1, y0 = y1;
58814 p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1];
58815 vectors[p0 + 2] = vectors[p1] = y0 - y1;
58816 vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0;
58817 }
58818 }
58819 render(context) {
58820 const buffer = context == null ? context = new _path_js__WEBPACK_IMPORTED_MODULE_0__["default"] : undefined;
58821 const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this;
58822 if (hull.length <= 1) return null;
58823 for (let i = 0, n = halfedges.length; i < n; ++i) {
58824 const j = halfedges[i];
58825 if (j < i) continue;
58826 const ti = Math.floor(i / 3) * 2;
58827 const tj = Math.floor(j / 3) * 2;
58828 const xi = circumcenters[ti];
58829 const yi = circumcenters[ti + 1];
58830 const xj = circumcenters[tj];
58831 const yj = circumcenters[tj + 1];
58832 this._renderSegment(xi, yi, xj, yj, context);
58833 }
58834 let h0, h1 = hull[hull.length - 1];
58835 for (let i = 0; i < hull.length; ++i) {
58836 h0 = h1, h1 = hull[i];
58837 const t = Math.floor(inedges[h1] / 3) * 2;
58838 const x = circumcenters[t];
58839 const y = circumcenters[t + 1];
58840 const v = h0 * 4;
58841 const p = this._project(x, y, vectors[v + 2], vectors[v + 3]);
58842 if (p) this._renderSegment(x, y, p[0], p[1], context);
58843 }
58844 return buffer && buffer.value();
58845 }
58846 renderBounds(context) {
58847 const buffer = context == null ? context = new _path_js__WEBPACK_IMPORTED_MODULE_0__["default"] : undefined;
58848 context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin);
58849 return buffer && buffer.value();
58850 }
58851 renderCell(i, context) {
58852 const buffer = context == null ? context = new _path_js__WEBPACK_IMPORTED_MODULE_0__["default"] : undefined;
58853 const points = this._clip(i);
58854 if (points === null || !points.length) return;
58855 context.moveTo(points[0], points[1]);
58856 let n = points.length;
58857 while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2;
58858 for (let i = 2; i < n; i += 2) {
58859 if (points[i] !== points[i-2] || points[i+1] !== points[i-1])
58860 context.lineTo(points[i], points[i + 1]);
58861 }
58862 context.closePath();
58863 return buffer && buffer.value();
58864 }
58865 *cellPolygons() {
58866 const {delaunay: {points}} = this;
58867 for (let i = 0, n = points.length / 2; i < n; ++i) {
58868 const cell = this.cellPolygon(i);
58869 if (cell) cell.index = i, yield cell;
58870 }
58871 }
58872 cellPolygon(i) {
58873 const polygon = new _polygon_js__WEBPACK_IMPORTED_MODULE_1__["default"];
58874 this.renderCell(i, polygon);
58875 return polygon.value();
58876 }
58877 _renderSegment(x0, y0, x1, y1, context) {
58878 let S;
58879 const c0 = this._regioncode(x0, y0);
58880 const c1 = this._regioncode(x1, y1);
58881 if (c0 === 0 && c1 === 0) {
58882 context.moveTo(x0, y0);
58883 context.lineTo(x1, y1);
58884 } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) {
58885 context.moveTo(S[0], S[1]);
58886 context.lineTo(S[2], S[3]);
58887 }
58888 }
58889 contains(i, x, y) {
58890 if ((x = +x, x !== x) || (y = +y, y !== y)) return false;
58891 return this.delaunay._step(i, x, y) === i;
58892 }
58893 *neighbors(i) {
58894 const ci = this._clip(i);
58895 if (ci) for (const j of this.delaunay.neighbors(i)) {
58896 const cj = this._clip(j);
58897 // find the common edge
58898 if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) {
58899 for (let aj = 0, lj = cj.length; aj < lj; aj += 2) {
58900 if (ci[ai] == cj[aj]
58901 && ci[ai + 1] == cj[aj + 1]
58902 && ci[(ai + 2) % li] == cj[(aj + lj - 2) % lj]
58903 && ci[(ai + 3) % li] == cj[(aj + lj - 1) % lj]
58904 ) {
58905 yield j;
58906 break loop;
58907 }
58908 }
58909 }
58910 }
58911 }
58912 _cell(i) {
58913 const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this;
58914 const e0 = inedges[i];
58915 if (e0 === -1) return null; // coincident point
58916 const points = [];
58917 let e = e0;
58918 do {
58919 const t = Math.floor(e / 3);
58920 points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]);
58921 e = e % 3 === 2 ? e - 2 : e + 1;
58922 if (triangles[e] !== i) break; // bad triangulation
58923 e = halfedges[e];
58924 } while (e !== e0 && e !== -1);
58925 return points;
58926 }
58927 _clip(i) {
58928 // degenerate case (1 valid point: return the box)
58929 if (i === 0 && this.delaunay.hull.length === 1) {
58930 return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];
58931 }
58932 const points = this._cell(i);
58933 if (points === null) return null;
58934 const {vectors: V} = this;
58935 const v = i * 4;
58936 return V[v] || V[v + 1]
58937 ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3])
58938 : this._clipFinite(i, points);
58939 }
58940 _clipFinite(i, points) {
58941 const n = points.length;
58942 let P = null;
58943 let x0, y0, x1 = points[n - 2], y1 = points[n - 1];
58944 let c0, c1 = this._regioncode(x1, y1);
58945 let e0, e1 = 0;
58946 for (let j = 0; j < n; j += 2) {
58947 x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1];
58948 c0 = c1, c1 = this._regioncode(x1, y1);
58949 if (c0 === 0 && c1 === 0) {
58950 e0 = e1, e1 = 0;
58951 if (P) P.push(x1, y1);
58952 else P = [x1, y1];
58953 } else {
58954 let S, sx0, sy0, sx1, sy1;
58955 if (c0 === 0) {
58956 if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue;
58957 [sx0, sy0, sx1, sy1] = S;
58958 } else {
58959 if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue;
58960 [sx1, sy1, sx0, sy0] = S;
58961 e0 = e1, e1 = this._edgecode(sx0, sy0);
58962 if (e0 && e1) this._edge(i, e0, e1, P, P.length);
58963 if (P) P.push(sx0, sy0);
58964 else P = [sx0, sy0];
58965 }
58966 e0 = e1, e1 = this._edgecode(sx1, sy1);
58967 if (e0 && e1) this._edge(i, e0, e1, P, P.length);
58968 if (P) P.push(sx1, sy1);
58969 else P = [sx1, sy1];
58970 }
58971 }
58972 if (P) {
58973 e0 = e1, e1 = this._edgecode(P[0], P[1]);
58974 if (e0 && e1) this._edge(i, e0, e1, P, P.length);
58975 } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {
58976 return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];
58977 }
58978 return P;
58979 }
58980 _clipSegment(x0, y0, x1, y1, c0, c1) {
58981 while (true) {
58982 if (c0 === 0 && c1 === 0) return [x0, y0, x1, y1];
58983 if (c0 & c1) return null;
58984 let x, y, c = c0 || c1;
58985 if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax;
58986 else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin;
58987 else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax;
58988 else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin;
58989 if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0);
58990 else x1 = x, y1 = y, c1 = this._regioncode(x1, y1);
58991 }
58992 }
58993 _clipInfinite(i, points, vx0, vy0, vxn, vyn) {
58994 let P = Array.from(points), p;
58995 if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]);
58996 if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]);
58997 if (P = this._clipFinite(i, P)) {
58998 for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) {
58999 c0 = c1, c1 = this._edgecode(P[j], P[j + 1]);
59000 if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length;
59001 }
59002 } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {
59003 P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax];
59004 }
59005 return P;
59006 }
59007 _edge(i, e0, e1, P, j) {
59008 while (e0 !== e1) {
59009 let x, y;
59010 switch (e0) {
59011 case 0b0101: e0 = 0b0100; continue; // top-left
59012 case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top
59013 case 0b0110: e0 = 0b0010; continue; // top-right
59014 case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right
59015 case 0b1010: e0 = 0b1000; continue; // bottom-right
59016 case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom
59017 case 0b1001: e0 = 0b0001; continue; // bottom-left
59018 case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left
59019 }
59020 // Note: this implicitly checks for out of bounds: if P[j] or P[j+1] are
59021 // undefined, the conditional statement will be executed.
59022 if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) {
59023 P.splice(j, 0, x, y), j += 2;
59024 }
59025 }
59026 if (P.length > 4) {
59027 for (let i = 0; i < P.length; i+= 2) {
59028 const j = (i + 2) % P.length, k = (i + 4) % P.length;
59029 if (P[i] === P[j] && P[j] === P[k]
59030 || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1])
59031 P.splice(j, 2), i -= 2;
59032 }
59033 }
59034 return j;
59035 }
59036 _project(x0, y0, vx, vy) {
59037 let t = Infinity, c, x, y;
59038 if (vy < 0) { // top
59039 if (y0 <= this.ymin) return null;
59040 if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx;
59041 } else if (vy > 0) { // bottom
59042 if (y0 >= this.ymax) return null;
59043 if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx;
59044 }
59045 if (vx > 0) { // right
59046 if (x0 >= this.xmax) return null;
59047 if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy;
59048 } else if (vx < 0) { // left
59049 if (x0 <= this.xmin) return null;
59050 if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy;
59051 }
59052 return [x, y];
59053 }
59054 _edgecode(x, y) {
59055 return (x === this.xmin ? 0b0001
59056 : x === this.xmax ? 0b0010 : 0b0000)
59057 | (y === this.ymin ? 0b0100
59058 : y === this.ymax ? 0b1000 : 0b0000);
59059 }
59060 _regioncode(x, y) {
59061 return (x < this.xmin ? 0b0001
59062 : x > this.xmax ? 0b0010 : 0b0000)
59063 | (y < this.ymin ? 0b0100
59064 : y > this.ymax ? 0b1000 : 0b0000);
59065 }
59066}
59067
59068
59069/***/ }),
59070
59071/***/ "./node_modules/d3-dispatch/src/dispatch.js":
59072/*!**************************************************!*\
59073 !*** ./node_modules/d3-dispatch/src/dispatch.js ***!
59074 \**************************************************/
59075/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
59076
59077"use strict";
59078__webpack_require__.r(__webpack_exports__);
59079/* harmony export */ __webpack_require__.d(__webpack_exports__, {
59080/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
59081/* harmony export */ });
59082var noop = {value: () => {}};
59083
59084function dispatch() {
59085 for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {
59086 if (!(t = arguments[i] + "") || (t in _) || /[\s.]/.test(t)) throw new Error("illegal type: " + t);
59087 _[t] = [];
59088 }
59089 return new Dispatch(_);
59090}
59091
59092function Dispatch(_) {
59093 this._ = _;
59094}
59095
59096function parseTypenames(typenames, types) {
59097 return typenames.trim().split(/^|\s+/).map(function(t) {
59098 var name = "", i = t.indexOf(".");
59099 if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
59100 if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t);
59101 return {type: t, name: name};
59102 });
59103}
59104
59105Dispatch.prototype = dispatch.prototype = {
59106 constructor: Dispatch,
59107 on: function(typename, callback) {
59108 var _ = this._,
59109 T = parseTypenames(typename + "", _),
59110 t,
59111 i = -1,
59112 n = T.length;
59113
59114 // If no callback was specified, return the callback of the given type and name.
59115 if (arguments.length < 2) {
59116 while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;
59117 return;
59118 }
59119
59120 // If a type was specified, set the callback for the given type and name.
59121 // Otherwise, if a null callback was specified, remove callbacks of the given name.
59122 if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback);
59123 while (++i < n) {
59124 if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);
59125 else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);
59126 }
59127
59128 return this;
59129 },
59130 copy: function() {
59131 var copy = {}, _ = this._;
59132 for (var t in _) copy[t] = _[t].slice();
59133 return new Dispatch(copy);
59134 },
59135 call: function(type, that) {
59136 if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];
59137 if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
59138 for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
59139 },
59140 apply: function(type, that, args) {
59141 if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type);
59142 for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
59143 }
59144};
59145
59146function get(type, name) {
59147 for (var i = 0, n = type.length, c; i < n; ++i) {
59148 if ((c = type[i]).name === name) {
59149 return c.value;
59150 }
59151 }
59152}
59153
59154function set(type, name, callback) {
59155 for (var i = 0, n = type.length; i < n; ++i) {
59156 if (type[i].name === name) {
59157 type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));
59158 break;
59159 }
59160 }
59161 if (callback != null) type.push({name: name, value: callback});
59162 return type;
59163}
59164
59165/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (dispatch);
59166
59167
59168/***/ }),
59169
59170/***/ "./node_modules/d3-dispatch/src/index.js":
59171/*!***********************************************!*\
59172 !*** ./node_modules/d3-dispatch/src/index.js ***!
59173 \***********************************************/
59174/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
59175
59176"use strict";
59177__webpack_require__.r(__webpack_exports__);
59178/* harmony export */ __webpack_require__.d(__webpack_exports__, {
59179/* harmony export */ "dispatch": () => (/* reexport safe */ _dispatch_js__WEBPACK_IMPORTED_MODULE_0__["default"])
59180/* harmony export */ });
59181/* harmony import */ var _dispatch_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dispatch.js */ "./node_modules/d3-dispatch/src/dispatch.js");
59182
59183
59184
59185/***/ }),
59186
59187/***/ "./node_modules/d3-drag/src/constant.js":
59188/*!**********************************************!*\
59189 !*** ./node_modules/d3-drag/src/constant.js ***!
59190 \**********************************************/
59191/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
59192
59193"use strict";
59194__webpack_require__.r(__webpack_exports__);
59195/* harmony export */ __webpack_require__.d(__webpack_exports__, {
59196/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
59197/* harmony export */ });
59198/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (x => () => x);
59199
59200
59201/***/ }),
59202
59203/***/ "./node_modules/d3-drag/src/drag.js":
59204/*!******************************************!*\
59205 !*** ./node_modules/d3-drag/src/drag.js ***!
59206 \******************************************/
59207/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
59208
59209"use strict";
59210__webpack_require__.r(__webpack_exports__);
59211/* harmony export */ __webpack_require__.d(__webpack_exports__, {
59212/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
59213/* harmony export */ });
59214/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/dispatch.js");
59215/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/select.js");
59216/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/pointer.js");
59217/* harmony import */ var _nodrag_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nodrag.js */ "./node_modules/d3-drag/src/nodrag.js");
59218/* harmony import */ var _noevent_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./noevent.js */ "./node_modules/d3-drag/src/noevent.js");
59219/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-drag/src/constant.js");
59220/* harmony import */ var _event_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./event.js */ "./node_modules/d3-drag/src/event.js");
59221
59222
59223
59224
59225
59226
59227
59228// Ignore right-click, since that should open the context menu.
59229function defaultFilter(event) {
59230 return !event.ctrlKey && !event.button;
59231}
59232
59233function defaultContainer() {
59234 return this.parentNode;
59235}
59236
59237function defaultSubject(event, d) {
59238 return d == null ? {x: event.x, y: event.y} : d;
59239}
59240
59241function defaultTouchable() {
59242 return navigator.maxTouchPoints || ("ontouchstart" in this);
59243}
59244
59245/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
59246 var filter = defaultFilter,
59247 container = defaultContainer,
59248 subject = defaultSubject,
59249 touchable = defaultTouchable,
59250 gestures = {},
59251 listeners = (0,d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["default"])("start", "drag", "end"),
59252 active = 0,
59253 mousedownx,
59254 mousedowny,
59255 mousemoving,
59256 touchending,
59257 clickDistance2 = 0;
59258
59259 function drag(selection) {
59260 selection
59261 .on("mousedown.drag", mousedowned)
59262 .filter(touchable)
59263 .on("touchstart.drag", touchstarted)
59264 .on("touchmove.drag", touchmoved, _noevent_js__WEBPACK_IMPORTED_MODULE_1__.nonpassive)
59265 .on("touchend.drag touchcancel.drag", touchended)
59266 .style("touch-action", "none")
59267 .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
59268 }
59269
59270 function mousedowned(event, d) {
59271 if (touchending || !filter.call(this, event, d)) return;
59272 var gesture = beforestart(this, container.call(this, event, d), event, d, "mouse");
59273 if (!gesture) return;
59274 (0,d3_selection__WEBPACK_IMPORTED_MODULE_2__["default"])(event.view)
59275 .on("mousemove.drag", mousemoved, _noevent_js__WEBPACK_IMPORTED_MODULE_1__.nonpassivecapture)
59276 .on("mouseup.drag", mouseupped, _noevent_js__WEBPACK_IMPORTED_MODULE_1__.nonpassivecapture);
59277 (0,_nodrag_js__WEBPACK_IMPORTED_MODULE_3__["default"])(event.view);
59278 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_1__.nopropagation)(event);
59279 mousemoving = false;
59280 mousedownx = event.clientX;
59281 mousedowny = event.clientY;
59282 gesture("start", event);
59283 }
59284
59285 function mousemoved(event) {
59286 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_1__["default"])(event);
59287 if (!mousemoving) {
59288 var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;
59289 mousemoving = dx * dx + dy * dy > clickDistance2;
59290 }
59291 gestures.mouse("drag", event);
59292 }
59293
59294 function mouseupped(event) {
59295 (0,d3_selection__WEBPACK_IMPORTED_MODULE_2__["default"])(event.view).on("mousemove.drag mouseup.drag", null);
59296 (0,_nodrag_js__WEBPACK_IMPORTED_MODULE_3__.yesdrag)(event.view, mousemoving);
59297 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_1__["default"])(event);
59298 gestures.mouse("end", event);
59299 }
59300
59301 function touchstarted(event, d) {
59302 if (!filter.call(this, event, d)) return;
59303 var touches = event.changedTouches,
59304 c = container.call(this, event, d),
59305 n = touches.length, i, gesture;
59306
59307 for (i = 0; i < n; ++i) {
59308 if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {
59309 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_1__.nopropagation)(event);
59310 gesture("start", event, touches[i]);
59311 }
59312 }
59313 }
59314
59315 function touchmoved(event) {
59316 var touches = event.changedTouches,
59317 n = touches.length, i, gesture;
59318
59319 for (i = 0; i < n; ++i) {
59320 if (gesture = gestures[touches[i].identifier]) {
59321 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_1__["default"])(event);
59322 gesture("drag", event, touches[i]);
59323 }
59324 }
59325 }
59326
59327 function touchended(event) {
59328 var touches = event.changedTouches,
59329 n = touches.length, i, gesture;
59330
59331 if (touchending) clearTimeout(touchending);
59332 touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!
59333 for (i = 0; i < n; ++i) {
59334 if (gesture = gestures[touches[i].identifier]) {
59335 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_1__.nopropagation)(event);
59336 gesture("end", event, touches[i]);
59337 }
59338 }
59339 }
59340
59341 function beforestart(that, container, event, d, identifier, touch) {
59342 var dispatch = listeners.copy(),
59343 p = (0,d3_selection__WEBPACK_IMPORTED_MODULE_4__["default"])(touch || event, container), dx, dy,
59344 s;
59345
59346 if ((s = subject.call(that, new _event_js__WEBPACK_IMPORTED_MODULE_5__["default"]("beforestart", {
59347 sourceEvent: event,
59348 target: drag,
59349 identifier,
59350 active,
59351 x: p[0],
59352 y: p[1],
59353 dx: 0,
59354 dy: 0,
59355 dispatch
59356 }), d)) == null) return;
59357
59358 dx = s.x - p[0] || 0;
59359 dy = s.y - p[1] || 0;
59360
59361 return function gesture(type, event, touch) {
59362 var p0 = p, n;
59363 switch (type) {
59364 case "start": gestures[identifier] = gesture, n = active++; break;
59365 case "end": delete gestures[identifier], --active; // falls through
59366 case "drag": p = (0,d3_selection__WEBPACK_IMPORTED_MODULE_4__["default"])(touch || event, container), n = active; break;
59367 }
59368 dispatch.call(
59369 type,
59370 that,
59371 new _event_js__WEBPACK_IMPORTED_MODULE_5__["default"](type, {
59372 sourceEvent: event,
59373 subject: s,
59374 target: drag,
59375 identifier,
59376 active: n,
59377 x: p[0] + dx,
59378 y: p[1] + dy,
59379 dx: p[0] - p0[0],
59380 dy: p[1] - p0[1],
59381 dispatch
59382 }),
59383 d
59384 );
59385 };
59386 }
59387
59388 drag.filter = function(_) {
59389 return arguments.length ? (filter = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_6__["default"])(!!_), drag) : filter;
59390 };
59391
59392 drag.container = function(_) {
59393 return arguments.length ? (container = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_6__["default"])(_), drag) : container;
59394 };
59395
59396 drag.subject = function(_) {
59397 return arguments.length ? (subject = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_6__["default"])(_), drag) : subject;
59398 };
59399
59400 drag.touchable = function(_) {
59401 return arguments.length ? (touchable = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_6__["default"])(!!_), drag) : touchable;
59402 };
59403
59404 drag.on = function() {
59405 var value = listeners.on.apply(listeners, arguments);
59406 return value === listeners ? drag : value;
59407 };
59408
59409 drag.clickDistance = function(_) {
59410 return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);
59411 };
59412
59413 return drag;
59414}
59415
59416
59417/***/ }),
59418
59419/***/ "./node_modules/d3-drag/src/event.js":
59420/*!*******************************************!*\
59421 !*** ./node_modules/d3-drag/src/event.js ***!
59422 \*******************************************/
59423/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
59424
59425"use strict";
59426__webpack_require__.r(__webpack_exports__);
59427/* harmony export */ __webpack_require__.d(__webpack_exports__, {
59428/* harmony export */ "default": () => (/* binding */ DragEvent)
59429/* harmony export */ });
59430function DragEvent(type, {
59431 sourceEvent,
59432 subject,
59433 target,
59434 identifier,
59435 active,
59436 x, y, dx, dy,
59437 dispatch
59438}) {
59439 Object.defineProperties(this, {
59440 type: {value: type, enumerable: true, configurable: true},
59441 sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},
59442 subject: {value: subject, enumerable: true, configurable: true},
59443 target: {value: target, enumerable: true, configurable: true},
59444 identifier: {value: identifier, enumerable: true, configurable: true},
59445 active: {value: active, enumerable: true, configurable: true},
59446 x: {value: x, enumerable: true, configurable: true},
59447 y: {value: y, enumerable: true, configurable: true},
59448 dx: {value: dx, enumerable: true, configurable: true},
59449 dy: {value: dy, enumerable: true, configurable: true},
59450 _: {value: dispatch}
59451 });
59452}
59453
59454DragEvent.prototype.on = function() {
59455 var value = this._.on.apply(this._, arguments);
59456 return value === this._ ? this : value;
59457};
59458
59459
59460/***/ }),
59461
59462/***/ "./node_modules/d3-drag/src/index.js":
59463/*!*******************************************!*\
59464 !*** ./node_modules/d3-drag/src/index.js ***!
59465 \*******************************************/
59466/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
59467
59468"use strict";
59469__webpack_require__.r(__webpack_exports__);
59470/* harmony export */ __webpack_require__.d(__webpack_exports__, {
59471/* harmony export */ "drag": () => (/* reexport safe */ _drag_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
59472/* harmony export */ "dragDisable": () => (/* reexport safe */ _nodrag_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
59473/* harmony export */ "dragEnable": () => (/* reexport safe */ _nodrag_js__WEBPACK_IMPORTED_MODULE_1__.yesdrag)
59474/* harmony export */ });
59475/* harmony import */ var _drag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./drag.js */ "./node_modules/d3-drag/src/drag.js");
59476/* harmony import */ var _nodrag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nodrag.js */ "./node_modules/d3-drag/src/nodrag.js");
59477
59478
59479
59480
59481/***/ }),
59482
59483/***/ "./node_modules/d3-drag/src/nodrag.js":
59484/*!********************************************!*\
59485 !*** ./node_modules/d3-drag/src/nodrag.js ***!
59486 \********************************************/
59487/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
59488
59489"use strict";
59490__webpack_require__.r(__webpack_exports__);
59491/* harmony export */ __webpack_require__.d(__webpack_exports__, {
59492/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
59493/* harmony export */ "yesdrag": () => (/* binding */ yesdrag)
59494/* harmony export */ });
59495/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/select.js");
59496/* harmony import */ var _noevent_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./noevent.js */ "./node_modules/d3-drag/src/noevent.js");
59497
59498
59499
59500/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(view) {
59501 var root = view.document.documentElement,
59502 selection = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"])(view).on("dragstart.drag", _noevent_js__WEBPACK_IMPORTED_MODULE_1__["default"], _noevent_js__WEBPACK_IMPORTED_MODULE_1__.nonpassivecapture);
59503 if ("onselectstart" in root) {
59504 selection.on("selectstart.drag", _noevent_js__WEBPACK_IMPORTED_MODULE_1__["default"], _noevent_js__WEBPACK_IMPORTED_MODULE_1__.nonpassivecapture);
59505 } else {
59506 root.__noselect = root.style.MozUserSelect;
59507 root.style.MozUserSelect = "none";
59508 }
59509}
59510
59511function yesdrag(view, noclick) {
59512 var root = view.document.documentElement,
59513 selection = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"])(view).on("dragstart.drag", null);
59514 if (noclick) {
59515 selection.on("click.drag", _noevent_js__WEBPACK_IMPORTED_MODULE_1__["default"], _noevent_js__WEBPACK_IMPORTED_MODULE_1__.nonpassivecapture);
59516 setTimeout(function() { selection.on("click.drag", null); }, 0);
59517 }
59518 if ("onselectstart" in root) {
59519 selection.on("selectstart.drag", null);
59520 } else {
59521 root.style.MozUserSelect = root.__noselect;
59522 delete root.__noselect;
59523 }
59524}
59525
59526
59527/***/ }),
59528
59529/***/ "./node_modules/d3-drag/src/noevent.js":
59530/*!*********************************************!*\
59531 !*** ./node_modules/d3-drag/src/noevent.js ***!
59532 \*********************************************/
59533/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
59534
59535"use strict";
59536__webpack_require__.r(__webpack_exports__);
59537/* harmony export */ __webpack_require__.d(__webpack_exports__, {
59538/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
59539/* harmony export */ "nonpassive": () => (/* binding */ nonpassive),
59540/* harmony export */ "nonpassivecapture": () => (/* binding */ nonpassivecapture),
59541/* harmony export */ "nopropagation": () => (/* binding */ nopropagation)
59542/* harmony export */ });
59543// These are typically used in conjunction with noevent to ensure that we can
59544// preventDefault on the event.
59545const nonpassive = {passive: false};
59546const nonpassivecapture = {capture: true, passive: false};
59547
59548function nopropagation(event) {
59549 event.stopImmediatePropagation();
59550}
59551
59552/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(event) {
59553 event.preventDefault();
59554 event.stopImmediatePropagation();
59555}
59556
59557
59558/***/ }),
59559
59560/***/ "./node_modules/d3-dsv/src/autoType.js":
59561/*!*********************************************!*\
59562 !*** ./node_modules/d3-dsv/src/autoType.js ***!
59563 \*********************************************/
59564/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
59565
59566"use strict";
59567__webpack_require__.r(__webpack_exports__);
59568/* harmony export */ __webpack_require__.d(__webpack_exports__, {
59569/* harmony export */ "default": () => (/* binding */ autoType)
59570/* harmony export */ });
59571function autoType(object) {
59572 for (var key in object) {
59573 var value = object[key].trim(), number, m;
59574 if (!value) value = null;
59575 else if (value === "true") value = true;
59576 else if (value === "false") value = false;
59577 else if (value === "NaN") value = NaN;
59578 else if (!isNaN(number = +value)) value = number;
59579 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})?)?$/)) {
59580 if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, "/").replace(/T/, " ");
59581 value = new Date(value);
59582 }
59583 else continue;
59584 object[key] = value;
59585 }
59586 return object;
59587}
59588
59589// https://github.com/d3/d3-dsv/issues/45
59590const fixtz = new Date("2019-01-01T00:00").getHours() || new Date("2019-07-01T00:00").getHours();
59591
59592/***/ }),
59593
59594/***/ "./node_modules/d3-dsv/src/csv.js":
59595/*!****************************************!*\
59596 !*** ./node_modules/d3-dsv/src/csv.js ***!
59597 \****************************************/
59598/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
59599
59600"use strict";
59601__webpack_require__.r(__webpack_exports__);
59602/* harmony export */ __webpack_require__.d(__webpack_exports__, {
59603/* harmony export */ "csvFormat": () => (/* binding */ csvFormat),
59604/* harmony export */ "csvFormatBody": () => (/* binding */ csvFormatBody),
59605/* harmony export */ "csvFormatRow": () => (/* binding */ csvFormatRow),
59606/* harmony export */ "csvFormatRows": () => (/* binding */ csvFormatRows),
59607/* harmony export */ "csvFormatValue": () => (/* binding */ csvFormatValue),
59608/* harmony export */ "csvParse": () => (/* binding */ csvParse),
59609/* harmony export */ "csvParseRows": () => (/* binding */ csvParseRows)
59610/* harmony export */ });
59611/* harmony import */ var _dsv_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dsv.js */ "./node_modules/d3-dsv/src/dsv.js");
59612
59613
59614var csv = (0,_dsv_js__WEBPACK_IMPORTED_MODULE_0__["default"])(",");
59615
59616var csvParse = csv.parse;
59617var csvParseRows = csv.parseRows;
59618var csvFormat = csv.format;
59619var csvFormatBody = csv.formatBody;
59620var csvFormatRows = csv.formatRows;
59621var csvFormatRow = csv.formatRow;
59622var csvFormatValue = csv.formatValue;
59623
59624
59625/***/ }),
59626
59627/***/ "./node_modules/d3-dsv/src/dsv.js":
59628/*!****************************************!*\
59629 !*** ./node_modules/d3-dsv/src/dsv.js ***!
59630 \****************************************/
59631/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
59632
59633"use strict";
59634__webpack_require__.r(__webpack_exports__);
59635/* harmony export */ __webpack_require__.d(__webpack_exports__, {
59636/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
59637/* harmony export */ });
59638var EOL = {},
59639 EOF = {},
59640 QUOTE = 34,
59641 NEWLINE = 10,
59642 RETURN = 13;
59643
59644function objectConverter(columns) {
59645 return new Function("d", "return {" + columns.map(function(name, i) {
59646 return JSON.stringify(name) + ": d[" + i + "] || \"\"";
59647 }).join(",") + "}");
59648}
59649
59650function customConverter(columns, f) {
59651 var object = objectConverter(columns);
59652 return function(row, i) {
59653 return f(object(row), i, columns);
59654 };
59655}
59656
59657// Compute unique columns in order of discovery.
59658function inferColumns(rows) {
59659 var columnSet = Object.create(null),
59660 columns = [];
59661
59662 rows.forEach(function(row) {
59663 for (var column in row) {
59664 if (!(column in columnSet)) {
59665 columns.push(columnSet[column] = column);
59666 }
59667 }
59668 });
59669
59670 return columns;
59671}
59672
59673function pad(value, width) {
59674 var s = value + "", length = s.length;
59675 return length < width ? new Array(width - length + 1).join(0) + s : s;
59676}
59677
59678function formatYear(year) {
59679 return year < 0 ? "-" + pad(-year, 6)
59680 : year > 9999 ? "+" + pad(year, 6)
59681 : pad(year, 4);
59682}
59683
59684function formatDate(date) {
59685 var hours = date.getUTCHours(),
59686 minutes = date.getUTCMinutes(),
59687 seconds = date.getUTCSeconds(),
59688 milliseconds = date.getUTCMilliseconds();
59689 return isNaN(date) ? "Invalid Date"
59690 : formatYear(date.getUTCFullYear(), 4) + "-" + pad(date.getUTCMonth() + 1, 2) + "-" + pad(date.getUTCDate(), 2)
59691 + (milliseconds ? "T" + pad(hours, 2) + ":" + pad(minutes, 2) + ":" + pad(seconds, 2) + "." + pad(milliseconds, 3) + "Z"
59692 : seconds ? "T" + pad(hours, 2) + ":" + pad(minutes, 2) + ":" + pad(seconds, 2) + "Z"
59693 : minutes || hours ? "T" + pad(hours, 2) + ":" + pad(minutes, 2) + "Z"
59694 : "");
59695}
59696
59697/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(delimiter) {
59698 var reFormat = new RegExp("[\"" + delimiter + "\n\r]"),
59699 DELIMITER = delimiter.charCodeAt(0);
59700
59701 function parse(text, f) {
59702 var convert, columns, rows = parseRows(text, function(row, i) {
59703 if (convert) return convert(row, i - 1);
59704 columns = row, convert = f ? customConverter(row, f) : objectConverter(row);
59705 });
59706 rows.columns = columns || [];
59707 return rows;
59708 }
59709
59710 function parseRows(text, f) {
59711 var rows = [], // output rows
59712 N = text.length,
59713 I = 0, // current character index
59714 n = 0, // current line number
59715 t, // current token
59716 eof = N <= 0, // current token followed by EOF?
59717 eol = false; // current token followed by EOL?
59718
59719 // Strip the trailing newline.
59720 if (text.charCodeAt(N - 1) === NEWLINE) --N;
59721 if (text.charCodeAt(N - 1) === RETURN) --N;
59722
59723 function token() {
59724 if (eof) return EOF;
59725 if (eol) return eol = false, EOL;
59726
59727 // Unescape quotes.
59728 var i, j = I, c;
59729 if (text.charCodeAt(j) === QUOTE) {
59730 while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);
59731 if ((i = I) >= N) eof = true;
59732 else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;
59733 else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
59734 return text.slice(j + 1, i - 1).replace(/""/g, "\"");
59735 }
59736
59737 // Find next delimiter or newline.
59738 while (I < N) {
59739 if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;
59740 else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }
59741 else if (c !== DELIMITER) continue;
59742 return text.slice(j, i);
59743 }
59744
59745 // Return last token before EOF.
59746 return eof = true, text.slice(j, N);
59747 }
59748
59749 while ((t = token()) !== EOF) {
59750 var row = [];
59751 while (t !== EOL && t !== EOF) row.push(t), t = token();
59752 if (f && (row = f(row, n++)) == null) continue;
59753 rows.push(row);
59754 }
59755
59756 return rows;
59757 }
59758
59759 function preformatBody(rows, columns) {
59760 return rows.map(function(row) {
59761 return columns.map(function(column) {
59762 return formatValue(row[column]);
59763 }).join(delimiter);
59764 });
59765 }
59766
59767 function format(rows, columns) {
59768 if (columns == null) columns = inferColumns(rows);
59769 return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join("\n");
59770 }
59771
59772 function formatBody(rows, columns) {
59773 if (columns == null) columns = inferColumns(rows);
59774 return preformatBody(rows, columns).join("\n");
59775 }
59776
59777 function formatRows(rows) {
59778 return rows.map(formatRow).join("\n");
59779 }
59780
59781 function formatRow(row) {
59782 return row.map(formatValue).join(delimiter);
59783 }
59784
59785 function formatValue(value) {
59786 return value == null ? ""
59787 : value instanceof Date ? formatDate(value)
59788 : reFormat.test(value += "") ? "\"" + value.replace(/"/g, "\"\"") + "\""
59789 : value;
59790 }
59791
59792 return {
59793 parse: parse,
59794 parseRows: parseRows,
59795 format: format,
59796 formatBody: formatBody,
59797 formatRows: formatRows,
59798 formatRow: formatRow,
59799 formatValue: formatValue
59800 };
59801}
59802
59803
59804/***/ }),
59805
59806/***/ "./node_modules/d3-dsv/src/index.js":
59807/*!******************************************!*\
59808 !*** ./node_modules/d3-dsv/src/index.js ***!
59809 \******************************************/
59810/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
59811
59812"use strict";
59813__webpack_require__.r(__webpack_exports__);
59814/* harmony export */ __webpack_require__.d(__webpack_exports__, {
59815/* harmony export */ "autoType": () => (/* reexport safe */ _autoType_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
59816/* harmony export */ "csvFormat": () => (/* reexport safe */ _csv_js__WEBPACK_IMPORTED_MODULE_1__.csvFormat),
59817/* harmony export */ "csvFormatBody": () => (/* reexport safe */ _csv_js__WEBPACK_IMPORTED_MODULE_1__.csvFormatBody),
59818/* harmony export */ "csvFormatRow": () => (/* reexport safe */ _csv_js__WEBPACK_IMPORTED_MODULE_1__.csvFormatRow),
59819/* harmony export */ "csvFormatRows": () => (/* reexport safe */ _csv_js__WEBPACK_IMPORTED_MODULE_1__.csvFormatRows),
59820/* harmony export */ "csvFormatValue": () => (/* reexport safe */ _csv_js__WEBPACK_IMPORTED_MODULE_1__.csvFormatValue),
59821/* harmony export */ "csvParse": () => (/* reexport safe */ _csv_js__WEBPACK_IMPORTED_MODULE_1__.csvParse),
59822/* harmony export */ "csvParseRows": () => (/* reexport safe */ _csv_js__WEBPACK_IMPORTED_MODULE_1__.csvParseRows),
59823/* harmony export */ "dsvFormat": () => (/* reexport safe */ _dsv_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
59824/* harmony export */ "tsvFormat": () => (/* reexport safe */ _tsv_js__WEBPACK_IMPORTED_MODULE_2__.tsvFormat),
59825/* harmony export */ "tsvFormatBody": () => (/* reexport safe */ _tsv_js__WEBPACK_IMPORTED_MODULE_2__.tsvFormatBody),
59826/* harmony export */ "tsvFormatRow": () => (/* reexport safe */ _tsv_js__WEBPACK_IMPORTED_MODULE_2__.tsvFormatRow),
59827/* harmony export */ "tsvFormatRows": () => (/* reexport safe */ _tsv_js__WEBPACK_IMPORTED_MODULE_2__.tsvFormatRows),
59828/* harmony export */ "tsvFormatValue": () => (/* reexport safe */ _tsv_js__WEBPACK_IMPORTED_MODULE_2__.tsvFormatValue),
59829/* harmony export */ "tsvParse": () => (/* reexport safe */ _tsv_js__WEBPACK_IMPORTED_MODULE_2__.tsvParse),
59830/* harmony export */ "tsvParseRows": () => (/* reexport safe */ _tsv_js__WEBPACK_IMPORTED_MODULE_2__.tsvParseRows)
59831/* harmony export */ });
59832/* harmony import */ var _dsv_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dsv.js */ "./node_modules/d3-dsv/src/dsv.js");
59833/* harmony import */ var _csv_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./csv.js */ "./node_modules/d3-dsv/src/csv.js");
59834/* harmony import */ var _tsv_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tsv.js */ "./node_modules/d3-dsv/src/tsv.js");
59835/* harmony import */ var _autoType_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./autoType.js */ "./node_modules/d3-dsv/src/autoType.js");
59836
59837
59838
59839
59840
59841
59842/***/ }),
59843
59844/***/ "./node_modules/d3-dsv/src/tsv.js":
59845/*!****************************************!*\
59846 !*** ./node_modules/d3-dsv/src/tsv.js ***!
59847 \****************************************/
59848/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
59849
59850"use strict";
59851__webpack_require__.r(__webpack_exports__);
59852/* harmony export */ __webpack_require__.d(__webpack_exports__, {
59853/* harmony export */ "tsvFormat": () => (/* binding */ tsvFormat),
59854/* harmony export */ "tsvFormatBody": () => (/* binding */ tsvFormatBody),
59855/* harmony export */ "tsvFormatRow": () => (/* binding */ tsvFormatRow),
59856/* harmony export */ "tsvFormatRows": () => (/* binding */ tsvFormatRows),
59857/* harmony export */ "tsvFormatValue": () => (/* binding */ tsvFormatValue),
59858/* harmony export */ "tsvParse": () => (/* binding */ tsvParse),
59859/* harmony export */ "tsvParseRows": () => (/* binding */ tsvParseRows)
59860/* harmony export */ });
59861/* harmony import */ var _dsv_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dsv.js */ "./node_modules/d3-dsv/src/dsv.js");
59862
59863
59864var tsv = (0,_dsv_js__WEBPACK_IMPORTED_MODULE_0__["default"])("\t");
59865
59866var tsvParse = tsv.parse;
59867var tsvParseRows = tsv.parseRows;
59868var tsvFormat = tsv.format;
59869var tsvFormatBody = tsv.formatBody;
59870var tsvFormatRows = tsv.formatRows;
59871var tsvFormatRow = tsv.formatRow;
59872var tsvFormatValue = tsv.formatValue;
59873
59874
59875/***/ }),
59876
59877/***/ "./node_modules/d3-ease/src/back.js":
59878/*!******************************************!*\
59879 !*** ./node_modules/d3-ease/src/back.js ***!
59880 \******************************************/
59881/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
59882
59883"use strict";
59884__webpack_require__.r(__webpack_exports__);
59885/* harmony export */ __webpack_require__.d(__webpack_exports__, {
59886/* harmony export */ "backIn": () => (/* binding */ backIn),
59887/* harmony export */ "backInOut": () => (/* binding */ backInOut),
59888/* harmony export */ "backOut": () => (/* binding */ backOut)
59889/* harmony export */ });
59890var overshoot = 1.70158;
59891
59892var backIn = (function custom(s) {
59893 s = +s;
59894
59895 function backIn(t) {
59896 return (t = +t) * t * (s * (t - 1) + t);
59897 }
59898
59899 backIn.overshoot = custom;
59900
59901 return backIn;
59902})(overshoot);
59903
59904var backOut = (function custom(s) {
59905 s = +s;
59906
59907 function backOut(t) {
59908 return --t * t * ((t + 1) * s + t) + 1;
59909 }
59910
59911 backOut.overshoot = custom;
59912
59913 return backOut;
59914})(overshoot);
59915
59916var backInOut = (function custom(s) {
59917 s = +s;
59918
59919 function backInOut(t) {
59920 return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;
59921 }
59922
59923 backInOut.overshoot = custom;
59924
59925 return backInOut;
59926})(overshoot);
59927
59928
59929/***/ }),
59930
59931/***/ "./node_modules/d3-ease/src/bounce.js":
59932/*!********************************************!*\
59933 !*** ./node_modules/d3-ease/src/bounce.js ***!
59934 \********************************************/
59935/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
59936
59937"use strict";
59938__webpack_require__.r(__webpack_exports__);
59939/* harmony export */ __webpack_require__.d(__webpack_exports__, {
59940/* harmony export */ "bounceIn": () => (/* binding */ bounceIn),
59941/* harmony export */ "bounceInOut": () => (/* binding */ bounceInOut),
59942/* harmony export */ "bounceOut": () => (/* binding */ bounceOut)
59943/* harmony export */ });
59944var b1 = 4 / 11,
59945 b2 = 6 / 11,
59946 b3 = 8 / 11,
59947 b4 = 3 / 4,
59948 b5 = 9 / 11,
59949 b6 = 10 / 11,
59950 b7 = 15 / 16,
59951 b8 = 21 / 22,
59952 b9 = 63 / 64,
59953 b0 = 1 / b1 / b1;
59954
59955function bounceIn(t) {
59956 return 1 - bounceOut(1 - t);
59957}
59958
59959function bounceOut(t) {
59960 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;
59961}
59962
59963function bounceInOut(t) {
59964 return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;
59965}
59966
59967
59968/***/ }),
59969
59970/***/ "./node_modules/d3-ease/src/circle.js":
59971/*!********************************************!*\
59972 !*** ./node_modules/d3-ease/src/circle.js ***!
59973 \********************************************/
59974/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
59975
59976"use strict";
59977__webpack_require__.r(__webpack_exports__);
59978/* harmony export */ __webpack_require__.d(__webpack_exports__, {
59979/* harmony export */ "circleIn": () => (/* binding */ circleIn),
59980/* harmony export */ "circleInOut": () => (/* binding */ circleInOut),
59981/* harmony export */ "circleOut": () => (/* binding */ circleOut)
59982/* harmony export */ });
59983function circleIn(t) {
59984 return 1 - Math.sqrt(1 - t * t);
59985}
59986
59987function circleOut(t) {
59988 return Math.sqrt(1 - --t * t);
59989}
59990
59991function circleInOut(t) {
59992 return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;
59993}
59994
59995
59996/***/ }),
59997
59998/***/ "./node_modules/d3-ease/src/cubic.js":
59999/*!*******************************************!*\
60000 !*** ./node_modules/d3-ease/src/cubic.js ***!
60001 \*******************************************/
60002/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60003
60004"use strict";
60005__webpack_require__.r(__webpack_exports__);
60006/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60007/* harmony export */ "cubicIn": () => (/* binding */ cubicIn),
60008/* harmony export */ "cubicInOut": () => (/* binding */ cubicInOut),
60009/* harmony export */ "cubicOut": () => (/* binding */ cubicOut)
60010/* harmony export */ });
60011function cubicIn(t) {
60012 return t * t * t;
60013}
60014
60015function cubicOut(t) {
60016 return --t * t * t + 1;
60017}
60018
60019function cubicInOut(t) {
60020 return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;
60021}
60022
60023
60024/***/ }),
60025
60026/***/ "./node_modules/d3-ease/src/elastic.js":
60027/*!*********************************************!*\
60028 !*** ./node_modules/d3-ease/src/elastic.js ***!
60029 \*********************************************/
60030/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60031
60032"use strict";
60033__webpack_require__.r(__webpack_exports__);
60034/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60035/* harmony export */ "elasticIn": () => (/* binding */ elasticIn),
60036/* harmony export */ "elasticInOut": () => (/* binding */ elasticInOut),
60037/* harmony export */ "elasticOut": () => (/* binding */ elasticOut)
60038/* harmony export */ });
60039/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-ease/src/math.js");
60040
60041
60042var tau = 2 * Math.PI,
60043 amplitude = 1,
60044 period = 0.3;
60045
60046var elasticIn = (function custom(a, p) {
60047 var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
60048
60049 function elasticIn(t) {
60050 return a * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.tpmt)(-(--t)) * Math.sin((s - t) / p);
60051 }
60052
60053 elasticIn.amplitude = function(a) { return custom(a, p * tau); };
60054 elasticIn.period = function(p) { return custom(a, p); };
60055
60056 return elasticIn;
60057})(amplitude, period);
60058
60059var elasticOut = (function custom(a, p) {
60060 var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
60061
60062 function elasticOut(t) {
60063 return 1 - a * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.tpmt)(t = +t) * Math.sin((t + s) / p);
60064 }
60065
60066 elasticOut.amplitude = function(a) { return custom(a, p * tau); };
60067 elasticOut.period = function(p) { return custom(a, p); };
60068
60069 return elasticOut;
60070})(amplitude, period);
60071
60072var elasticInOut = (function custom(a, p) {
60073 var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
60074
60075 function elasticInOut(t) {
60076 return ((t = t * 2 - 1) < 0
60077 ? a * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.tpmt)(-t) * Math.sin((s - t) / p)
60078 : 2 - a * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.tpmt)(t) * Math.sin((s + t) / p)) / 2;
60079 }
60080
60081 elasticInOut.amplitude = function(a) { return custom(a, p * tau); };
60082 elasticInOut.period = function(p) { return custom(a, p); };
60083
60084 return elasticInOut;
60085})(amplitude, period);
60086
60087
60088/***/ }),
60089
60090/***/ "./node_modules/d3-ease/src/exp.js":
60091/*!*****************************************!*\
60092 !*** ./node_modules/d3-ease/src/exp.js ***!
60093 \*****************************************/
60094/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60095
60096"use strict";
60097__webpack_require__.r(__webpack_exports__);
60098/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60099/* harmony export */ "expIn": () => (/* binding */ expIn),
60100/* harmony export */ "expInOut": () => (/* binding */ expInOut),
60101/* harmony export */ "expOut": () => (/* binding */ expOut)
60102/* harmony export */ });
60103/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-ease/src/math.js");
60104
60105
60106function expIn(t) {
60107 return (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.tpmt)(1 - +t);
60108}
60109
60110function expOut(t) {
60111 return 1 - (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.tpmt)(t);
60112}
60113
60114function expInOut(t) {
60115 return ((t *= 2) <= 1 ? (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.tpmt)(1 - t) : 2 - (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.tpmt)(t - 1)) / 2;
60116}
60117
60118
60119/***/ }),
60120
60121/***/ "./node_modules/d3-ease/src/index.js":
60122/*!*******************************************!*\
60123 !*** ./node_modules/d3-ease/src/index.js ***!
60124 \*******************************************/
60125/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60126
60127"use strict";
60128__webpack_require__.r(__webpack_exports__);
60129/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60130/* harmony export */ "easeBack": () => (/* reexport safe */ _back_js__WEBPACK_IMPORTED_MODULE_8__.backInOut),
60131/* harmony export */ "easeBackIn": () => (/* reexport safe */ _back_js__WEBPACK_IMPORTED_MODULE_8__.backIn),
60132/* harmony export */ "easeBackInOut": () => (/* reexport safe */ _back_js__WEBPACK_IMPORTED_MODULE_8__.backInOut),
60133/* harmony export */ "easeBackOut": () => (/* reexport safe */ _back_js__WEBPACK_IMPORTED_MODULE_8__.backOut),
60134/* harmony export */ "easeBounce": () => (/* reexport safe */ _bounce_js__WEBPACK_IMPORTED_MODULE_7__.bounceOut),
60135/* harmony export */ "easeBounceIn": () => (/* reexport safe */ _bounce_js__WEBPACK_IMPORTED_MODULE_7__.bounceIn),
60136/* harmony export */ "easeBounceInOut": () => (/* reexport safe */ _bounce_js__WEBPACK_IMPORTED_MODULE_7__.bounceInOut),
60137/* harmony export */ "easeBounceOut": () => (/* reexport safe */ _bounce_js__WEBPACK_IMPORTED_MODULE_7__.bounceOut),
60138/* harmony export */ "easeCircle": () => (/* reexport safe */ _circle_js__WEBPACK_IMPORTED_MODULE_6__.circleInOut),
60139/* harmony export */ "easeCircleIn": () => (/* reexport safe */ _circle_js__WEBPACK_IMPORTED_MODULE_6__.circleIn),
60140/* harmony export */ "easeCircleInOut": () => (/* reexport safe */ _circle_js__WEBPACK_IMPORTED_MODULE_6__.circleInOut),
60141/* harmony export */ "easeCircleOut": () => (/* reexport safe */ _circle_js__WEBPACK_IMPORTED_MODULE_6__.circleOut),
60142/* harmony export */ "easeCubic": () => (/* reexport safe */ _cubic_js__WEBPACK_IMPORTED_MODULE_2__.cubicInOut),
60143/* harmony export */ "easeCubicIn": () => (/* reexport safe */ _cubic_js__WEBPACK_IMPORTED_MODULE_2__.cubicIn),
60144/* harmony export */ "easeCubicInOut": () => (/* reexport safe */ _cubic_js__WEBPACK_IMPORTED_MODULE_2__.cubicInOut),
60145/* harmony export */ "easeCubicOut": () => (/* reexport safe */ _cubic_js__WEBPACK_IMPORTED_MODULE_2__.cubicOut),
60146/* harmony export */ "easeElastic": () => (/* reexport safe */ _elastic_js__WEBPACK_IMPORTED_MODULE_9__.elasticOut),
60147/* harmony export */ "easeElasticIn": () => (/* reexport safe */ _elastic_js__WEBPACK_IMPORTED_MODULE_9__.elasticIn),
60148/* harmony export */ "easeElasticInOut": () => (/* reexport safe */ _elastic_js__WEBPACK_IMPORTED_MODULE_9__.elasticInOut),
60149/* harmony export */ "easeElasticOut": () => (/* reexport safe */ _elastic_js__WEBPACK_IMPORTED_MODULE_9__.elasticOut),
60150/* harmony export */ "easeExp": () => (/* reexport safe */ _exp_js__WEBPACK_IMPORTED_MODULE_5__.expInOut),
60151/* harmony export */ "easeExpIn": () => (/* reexport safe */ _exp_js__WEBPACK_IMPORTED_MODULE_5__.expIn),
60152/* harmony export */ "easeExpInOut": () => (/* reexport safe */ _exp_js__WEBPACK_IMPORTED_MODULE_5__.expInOut),
60153/* harmony export */ "easeExpOut": () => (/* reexport safe */ _exp_js__WEBPACK_IMPORTED_MODULE_5__.expOut),
60154/* harmony export */ "easeLinear": () => (/* reexport safe */ _linear_js__WEBPACK_IMPORTED_MODULE_0__.linear),
60155/* harmony export */ "easePoly": () => (/* reexport safe */ _poly_js__WEBPACK_IMPORTED_MODULE_3__.polyInOut),
60156/* harmony export */ "easePolyIn": () => (/* reexport safe */ _poly_js__WEBPACK_IMPORTED_MODULE_3__.polyIn),
60157/* harmony export */ "easePolyInOut": () => (/* reexport safe */ _poly_js__WEBPACK_IMPORTED_MODULE_3__.polyInOut),
60158/* harmony export */ "easePolyOut": () => (/* reexport safe */ _poly_js__WEBPACK_IMPORTED_MODULE_3__.polyOut),
60159/* harmony export */ "easeQuad": () => (/* reexport safe */ _quad_js__WEBPACK_IMPORTED_MODULE_1__.quadInOut),
60160/* harmony export */ "easeQuadIn": () => (/* reexport safe */ _quad_js__WEBPACK_IMPORTED_MODULE_1__.quadIn),
60161/* harmony export */ "easeQuadInOut": () => (/* reexport safe */ _quad_js__WEBPACK_IMPORTED_MODULE_1__.quadInOut),
60162/* harmony export */ "easeQuadOut": () => (/* reexport safe */ _quad_js__WEBPACK_IMPORTED_MODULE_1__.quadOut),
60163/* harmony export */ "easeSin": () => (/* reexport safe */ _sin_js__WEBPACK_IMPORTED_MODULE_4__.sinInOut),
60164/* harmony export */ "easeSinIn": () => (/* reexport safe */ _sin_js__WEBPACK_IMPORTED_MODULE_4__.sinIn),
60165/* harmony export */ "easeSinInOut": () => (/* reexport safe */ _sin_js__WEBPACK_IMPORTED_MODULE_4__.sinInOut),
60166/* harmony export */ "easeSinOut": () => (/* reexport safe */ _sin_js__WEBPACK_IMPORTED_MODULE_4__.sinOut)
60167/* harmony export */ });
60168/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear.js */ "./node_modules/d3-ease/src/linear.js");
60169/* harmony import */ var _quad_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./quad.js */ "./node_modules/d3-ease/src/quad.js");
60170/* harmony import */ var _cubic_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cubic.js */ "./node_modules/d3-ease/src/cubic.js");
60171/* harmony import */ var _poly_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./poly.js */ "./node_modules/d3-ease/src/poly.js");
60172/* harmony import */ var _sin_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./sin.js */ "./node_modules/d3-ease/src/sin.js");
60173/* harmony import */ var _exp_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./exp.js */ "./node_modules/d3-ease/src/exp.js");
60174/* harmony import */ var _circle_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./circle.js */ "./node_modules/d3-ease/src/circle.js");
60175/* harmony import */ var _bounce_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./bounce.js */ "./node_modules/d3-ease/src/bounce.js");
60176/* harmony import */ var _back_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./back.js */ "./node_modules/d3-ease/src/back.js");
60177/* harmony import */ var _elastic_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./elastic.js */ "./node_modules/d3-ease/src/elastic.js");
60178
60179
60180
60181
60182
60183
60184
60185
60186
60187
60188
60189
60190
60191
60192
60193
60194
60195
60196
60197
60198
60199/***/ }),
60200
60201/***/ "./node_modules/d3-ease/src/linear.js":
60202/*!********************************************!*\
60203 !*** ./node_modules/d3-ease/src/linear.js ***!
60204 \********************************************/
60205/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60206
60207"use strict";
60208__webpack_require__.r(__webpack_exports__);
60209/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60210/* harmony export */ "linear": () => (/* binding */ linear)
60211/* harmony export */ });
60212const linear = t => +t;
60213
60214
60215/***/ }),
60216
60217/***/ "./node_modules/d3-ease/src/math.js":
60218/*!******************************************!*\
60219 !*** ./node_modules/d3-ease/src/math.js ***!
60220 \******************************************/
60221/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60222
60223"use strict";
60224__webpack_require__.r(__webpack_exports__);
60225/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60226/* harmony export */ "tpmt": () => (/* binding */ tpmt)
60227/* harmony export */ });
60228// tpmt is two power minus ten times t scaled to [0,1]
60229function tpmt(x) {
60230 return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;
60231}
60232
60233
60234/***/ }),
60235
60236/***/ "./node_modules/d3-ease/src/poly.js":
60237/*!******************************************!*\
60238 !*** ./node_modules/d3-ease/src/poly.js ***!
60239 \******************************************/
60240/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60241
60242"use strict";
60243__webpack_require__.r(__webpack_exports__);
60244/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60245/* harmony export */ "polyIn": () => (/* binding */ polyIn),
60246/* harmony export */ "polyInOut": () => (/* binding */ polyInOut),
60247/* harmony export */ "polyOut": () => (/* binding */ polyOut)
60248/* harmony export */ });
60249var exponent = 3;
60250
60251var polyIn = (function custom(e) {
60252 e = +e;
60253
60254 function polyIn(t) {
60255 return Math.pow(t, e);
60256 }
60257
60258 polyIn.exponent = custom;
60259
60260 return polyIn;
60261})(exponent);
60262
60263var polyOut = (function custom(e) {
60264 e = +e;
60265
60266 function polyOut(t) {
60267 return 1 - Math.pow(1 - t, e);
60268 }
60269
60270 polyOut.exponent = custom;
60271
60272 return polyOut;
60273})(exponent);
60274
60275var polyInOut = (function custom(e) {
60276 e = +e;
60277
60278 function polyInOut(t) {
60279 return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;
60280 }
60281
60282 polyInOut.exponent = custom;
60283
60284 return polyInOut;
60285})(exponent);
60286
60287
60288/***/ }),
60289
60290/***/ "./node_modules/d3-ease/src/quad.js":
60291/*!******************************************!*\
60292 !*** ./node_modules/d3-ease/src/quad.js ***!
60293 \******************************************/
60294/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60295
60296"use strict";
60297__webpack_require__.r(__webpack_exports__);
60298/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60299/* harmony export */ "quadIn": () => (/* binding */ quadIn),
60300/* harmony export */ "quadInOut": () => (/* binding */ quadInOut),
60301/* harmony export */ "quadOut": () => (/* binding */ quadOut)
60302/* harmony export */ });
60303function quadIn(t) {
60304 return t * t;
60305}
60306
60307function quadOut(t) {
60308 return t * (2 - t);
60309}
60310
60311function quadInOut(t) {
60312 return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;
60313}
60314
60315
60316/***/ }),
60317
60318/***/ "./node_modules/d3-ease/src/sin.js":
60319/*!*****************************************!*\
60320 !*** ./node_modules/d3-ease/src/sin.js ***!
60321 \*****************************************/
60322/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60323
60324"use strict";
60325__webpack_require__.r(__webpack_exports__);
60326/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60327/* harmony export */ "sinIn": () => (/* binding */ sinIn),
60328/* harmony export */ "sinInOut": () => (/* binding */ sinInOut),
60329/* harmony export */ "sinOut": () => (/* binding */ sinOut)
60330/* harmony export */ });
60331var pi = Math.PI,
60332 halfPi = pi / 2;
60333
60334function sinIn(t) {
60335 return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi);
60336}
60337
60338function sinOut(t) {
60339 return Math.sin(t * halfPi);
60340}
60341
60342function sinInOut(t) {
60343 return (1 - Math.cos(pi * t)) / 2;
60344}
60345
60346
60347/***/ }),
60348
60349/***/ "./node_modules/d3-fetch/src/blob.js":
60350/*!*******************************************!*\
60351 !*** ./node_modules/d3-fetch/src/blob.js ***!
60352 \*******************************************/
60353/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60354
60355"use strict";
60356__webpack_require__.r(__webpack_exports__);
60357/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60358/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
60359/* harmony export */ });
60360function responseBlob(response) {
60361 if (!response.ok) throw new Error(response.status + " " + response.statusText);
60362 return response.blob();
60363}
60364
60365/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(input, init) {
60366 return fetch(input, init).then(responseBlob);
60367}
60368
60369
60370/***/ }),
60371
60372/***/ "./node_modules/d3-fetch/src/buffer.js":
60373/*!*********************************************!*\
60374 !*** ./node_modules/d3-fetch/src/buffer.js ***!
60375 \*********************************************/
60376/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60377
60378"use strict";
60379__webpack_require__.r(__webpack_exports__);
60380/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60381/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
60382/* harmony export */ });
60383function responseArrayBuffer(response) {
60384 if (!response.ok) throw new Error(response.status + " " + response.statusText);
60385 return response.arrayBuffer();
60386}
60387
60388/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(input, init) {
60389 return fetch(input, init).then(responseArrayBuffer);
60390}
60391
60392
60393/***/ }),
60394
60395/***/ "./node_modules/d3-fetch/src/dsv.js":
60396/*!******************************************!*\
60397 !*** ./node_modules/d3-fetch/src/dsv.js ***!
60398 \******************************************/
60399/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60400
60401"use strict";
60402__webpack_require__.r(__webpack_exports__);
60403/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60404/* harmony export */ "csv": () => (/* binding */ csv),
60405/* harmony export */ "default": () => (/* binding */ dsv),
60406/* harmony export */ "tsv": () => (/* binding */ tsv)
60407/* harmony export */ });
60408/* harmony import */ var d3_dsv__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-dsv */ "./node_modules/d3-dsv/src/dsv.js");
60409/* harmony import */ var d3_dsv__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-dsv */ "./node_modules/d3-dsv/src/csv.js");
60410/* harmony import */ var d3_dsv__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-dsv */ "./node_modules/d3-dsv/src/tsv.js");
60411/* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./text.js */ "./node_modules/d3-fetch/src/text.js");
60412
60413
60414
60415function dsvParse(parse) {
60416 return function(input, init, row) {
60417 if (arguments.length === 2 && typeof init === "function") row = init, init = undefined;
60418 return (0,_text_js__WEBPACK_IMPORTED_MODULE_0__["default"])(input, init).then(function(response) {
60419 return parse(response, row);
60420 });
60421 };
60422}
60423
60424function dsv(delimiter, input, init, row) {
60425 if (arguments.length === 3 && typeof init === "function") row = init, init = undefined;
60426 var format = (0,d3_dsv__WEBPACK_IMPORTED_MODULE_1__["default"])(delimiter);
60427 return (0,_text_js__WEBPACK_IMPORTED_MODULE_0__["default"])(input, init).then(function(response) {
60428 return format.parse(response, row);
60429 });
60430}
60431
60432var csv = dsvParse(d3_dsv__WEBPACK_IMPORTED_MODULE_2__.csvParse);
60433var tsv = dsvParse(d3_dsv__WEBPACK_IMPORTED_MODULE_3__.tsvParse);
60434
60435
60436/***/ }),
60437
60438/***/ "./node_modules/d3-fetch/src/image.js":
60439/*!********************************************!*\
60440 !*** ./node_modules/d3-fetch/src/image.js ***!
60441 \********************************************/
60442/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60443
60444"use strict";
60445__webpack_require__.r(__webpack_exports__);
60446/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60447/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
60448/* harmony export */ });
60449/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(input, init) {
60450 return new Promise(function(resolve, reject) {
60451 var image = new Image;
60452 for (var key in init) image[key] = init[key];
60453 image.onerror = reject;
60454 image.onload = function() { resolve(image); };
60455 image.src = input;
60456 });
60457}
60458
60459
60460/***/ }),
60461
60462/***/ "./node_modules/d3-fetch/src/index.js":
60463/*!********************************************!*\
60464 !*** ./node_modules/d3-fetch/src/index.js ***!
60465 \********************************************/
60466/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60467
60468"use strict";
60469__webpack_require__.r(__webpack_exports__);
60470/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60471/* harmony export */ "blob": () => (/* reexport safe */ _blob_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
60472/* harmony export */ "buffer": () => (/* reexport safe */ _buffer_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
60473/* harmony export */ "csv": () => (/* reexport safe */ _dsv_js__WEBPACK_IMPORTED_MODULE_2__.csv),
60474/* harmony export */ "dsv": () => (/* reexport safe */ _dsv_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
60475/* harmony export */ "html": () => (/* reexport safe */ _xml_js__WEBPACK_IMPORTED_MODULE_6__.html),
60476/* harmony export */ "image": () => (/* reexport safe */ _image_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
60477/* harmony export */ "json": () => (/* reexport safe */ _json_js__WEBPACK_IMPORTED_MODULE_4__["default"]),
60478/* harmony export */ "svg": () => (/* reexport safe */ _xml_js__WEBPACK_IMPORTED_MODULE_6__.svg),
60479/* harmony export */ "text": () => (/* reexport safe */ _text_js__WEBPACK_IMPORTED_MODULE_5__["default"]),
60480/* harmony export */ "tsv": () => (/* reexport safe */ _dsv_js__WEBPACK_IMPORTED_MODULE_2__.tsv),
60481/* harmony export */ "xml": () => (/* reexport safe */ _xml_js__WEBPACK_IMPORTED_MODULE_6__["default"])
60482/* harmony export */ });
60483/* harmony import */ var _blob_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./blob.js */ "./node_modules/d3-fetch/src/blob.js");
60484/* harmony import */ var _buffer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./buffer.js */ "./node_modules/d3-fetch/src/buffer.js");
60485/* harmony import */ var _dsv_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dsv.js */ "./node_modules/d3-fetch/src/dsv.js");
60486/* harmony import */ var _image_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./image.js */ "./node_modules/d3-fetch/src/image.js");
60487/* harmony import */ var _json_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./json.js */ "./node_modules/d3-fetch/src/json.js");
60488/* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./text.js */ "./node_modules/d3-fetch/src/text.js");
60489/* harmony import */ var _xml_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./xml.js */ "./node_modules/d3-fetch/src/xml.js");
60490
60491
60492
60493
60494
60495
60496
60497
60498
60499/***/ }),
60500
60501/***/ "./node_modules/d3-fetch/src/json.js":
60502/*!*******************************************!*\
60503 !*** ./node_modules/d3-fetch/src/json.js ***!
60504 \*******************************************/
60505/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60506
60507"use strict";
60508__webpack_require__.r(__webpack_exports__);
60509/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60510/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
60511/* harmony export */ });
60512function responseJson(response) {
60513 if (!response.ok) throw new Error(response.status + " " + response.statusText);
60514 if (response.status === 204 || response.status === 205) return;
60515 return response.json();
60516}
60517
60518/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(input, init) {
60519 return fetch(input, init).then(responseJson);
60520}
60521
60522
60523/***/ }),
60524
60525/***/ "./node_modules/d3-fetch/src/text.js":
60526/*!*******************************************!*\
60527 !*** ./node_modules/d3-fetch/src/text.js ***!
60528 \*******************************************/
60529/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60530
60531"use strict";
60532__webpack_require__.r(__webpack_exports__);
60533/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60534/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
60535/* harmony export */ });
60536function responseText(response) {
60537 if (!response.ok) throw new Error(response.status + " " + response.statusText);
60538 return response.text();
60539}
60540
60541/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(input, init) {
60542 return fetch(input, init).then(responseText);
60543}
60544
60545
60546/***/ }),
60547
60548/***/ "./node_modules/d3-fetch/src/xml.js":
60549/*!******************************************!*\
60550 !*** ./node_modules/d3-fetch/src/xml.js ***!
60551 \******************************************/
60552/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60553
60554"use strict";
60555__webpack_require__.r(__webpack_exports__);
60556/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60557/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
60558/* harmony export */ "html": () => (/* binding */ html),
60559/* harmony export */ "svg": () => (/* binding */ svg)
60560/* harmony export */ });
60561/* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./text.js */ "./node_modules/d3-fetch/src/text.js");
60562
60563
60564function parser(type) {
60565 return (input, init) => (0,_text_js__WEBPACK_IMPORTED_MODULE_0__["default"])(input, init)
60566 .then(text => (new DOMParser).parseFromString(text, type));
60567}
60568
60569/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (parser("application/xml"));
60570
60571var html = parser("text/html");
60572
60573var svg = parser("image/svg+xml");
60574
60575
60576/***/ }),
60577
60578/***/ "./node_modules/d3-force/src/center.js":
60579/*!*********************************************!*\
60580 !*** ./node_modules/d3-force/src/center.js ***!
60581 \*********************************************/
60582/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60583
60584"use strict";
60585__webpack_require__.r(__webpack_exports__);
60586/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60587/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
60588/* harmony export */ });
60589/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x, y) {
60590 var nodes, strength = 1;
60591
60592 if (x == null) x = 0;
60593 if (y == null) y = 0;
60594
60595 function force() {
60596 var i,
60597 n = nodes.length,
60598 node,
60599 sx = 0,
60600 sy = 0;
60601
60602 for (i = 0; i < n; ++i) {
60603 node = nodes[i], sx += node.x, sy += node.y;
60604 }
60605
60606 for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, i = 0; i < n; ++i) {
60607 node = nodes[i], node.x -= sx, node.y -= sy;
60608 }
60609 }
60610
60611 force.initialize = function(_) {
60612 nodes = _;
60613 };
60614
60615 force.x = function(_) {
60616 return arguments.length ? (x = +_, force) : x;
60617 };
60618
60619 force.y = function(_) {
60620 return arguments.length ? (y = +_, force) : y;
60621 };
60622
60623 force.strength = function(_) {
60624 return arguments.length ? (strength = +_, force) : strength;
60625 };
60626
60627 return force;
60628}
60629
60630
60631/***/ }),
60632
60633/***/ "./node_modules/d3-force/src/collide.js":
60634/*!**********************************************!*\
60635 !*** ./node_modules/d3-force/src/collide.js ***!
60636 \**********************************************/
60637/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60638
60639"use strict";
60640__webpack_require__.r(__webpack_exports__);
60641/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60642/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
60643/* harmony export */ });
60644/* harmony import */ var d3_quadtree__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-quadtree */ "./node_modules/d3-quadtree/src/quadtree.js");
60645/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-force/src/constant.js");
60646/* harmony import */ var _jiggle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./jiggle.js */ "./node_modules/d3-force/src/jiggle.js");
60647
60648
60649
60650
60651function x(d) {
60652 return d.x + d.vx;
60653}
60654
60655function y(d) {
60656 return d.y + d.vy;
60657}
60658
60659/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(radius) {
60660 var nodes,
60661 radii,
60662 random,
60663 strength = 1,
60664 iterations = 1;
60665
60666 if (typeof radius !== "function") radius = (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(radius == null ? 1 : +radius);
60667
60668 function force() {
60669 var i, n = nodes.length,
60670 tree,
60671 node,
60672 xi,
60673 yi,
60674 ri,
60675 ri2;
60676
60677 for (var k = 0; k < iterations; ++k) {
60678 tree = (0,d3_quadtree__WEBPACK_IMPORTED_MODULE_1__["default"])(nodes, x, y).visitAfter(prepare);
60679 for (i = 0; i < n; ++i) {
60680 node = nodes[i];
60681 ri = radii[node.index], ri2 = ri * ri;
60682 xi = node.x + node.vx;
60683 yi = node.y + node.vy;
60684 tree.visit(apply);
60685 }
60686 }
60687
60688 function apply(quad, x0, y0, x1, y1) {
60689 var data = quad.data, rj = quad.r, r = ri + rj;
60690 if (data) {
60691 if (data.index > node.index) {
60692 var x = xi - data.x - data.vx,
60693 y = yi - data.y - data.vy,
60694 l = x * x + y * y;
60695 if (l < r * r) {
60696 if (x === 0) x = (0,_jiggle_js__WEBPACK_IMPORTED_MODULE_2__["default"])(random), l += x * x;
60697 if (y === 0) y = (0,_jiggle_js__WEBPACK_IMPORTED_MODULE_2__["default"])(random), l += y * y;
60698 l = (r - (l = Math.sqrt(l))) / l * strength;
60699 node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));
60700 node.vy += (y *= l) * r;
60701 data.vx -= x * (r = 1 - r);
60702 data.vy -= y * r;
60703 }
60704 }
60705 return;
60706 }
60707 return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;
60708 }
60709 }
60710
60711 function prepare(quad) {
60712 if (quad.data) return quad.r = radii[quad.data.index];
60713 for (var i = quad.r = 0; i < 4; ++i) {
60714 if (quad[i] && quad[i].r > quad.r) {
60715 quad.r = quad[i].r;
60716 }
60717 }
60718 }
60719
60720 function initialize() {
60721 if (!nodes) return;
60722 var i, n = nodes.length, node;
60723 radii = new Array(n);
60724 for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);
60725 }
60726
60727 force.initialize = function(_nodes, _random) {
60728 nodes = _nodes;
60729 random = _random;
60730 initialize();
60731 };
60732
60733 force.iterations = function(_) {
60734 return arguments.length ? (iterations = +_, force) : iterations;
60735 };
60736
60737 force.strength = function(_) {
60738 return arguments.length ? (strength = +_, force) : strength;
60739 };
60740
60741 force.radius = function(_) {
60742 return arguments.length ? (radius = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : radius;
60743 };
60744
60745 return force;
60746}
60747
60748
60749/***/ }),
60750
60751/***/ "./node_modules/d3-force/src/constant.js":
60752/*!***********************************************!*\
60753 !*** ./node_modules/d3-force/src/constant.js ***!
60754 \***********************************************/
60755/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60756
60757"use strict";
60758__webpack_require__.r(__webpack_exports__);
60759/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60760/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
60761/* harmony export */ });
60762/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x) {
60763 return function() {
60764 return x;
60765 };
60766}
60767
60768
60769/***/ }),
60770
60771/***/ "./node_modules/d3-force/src/index.js":
60772/*!********************************************!*\
60773 !*** ./node_modules/d3-force/src/index.js ***!
60774 \********************************************/
60775/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60776
60777"use strict";
60778__webpack_require__.r(__webpack_exports__);
60779/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60780/* harmony export */ "forceCenter": () => (/* reexport safe */ _center_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
60781/* harmony export */ "forceCollide": () => (/* reexport safe */ _collide_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
60782/* harmony export */ "forceLink": () => (/* reexport safe */ _link_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
60783/* harmony export */ "forceManyBody": () => (/* reexport safe */ _manyBody_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
60784/* harmony export */ "forceRadial": () => (/* reexport safe */ _radial_js__WEBPACK_IMPORTED_MODULE_4__["default"]),
60785/* harmony export */ "forceSimulation": () => (/* reexport safe */ _simulation_js__WEBPACK_IMPORTED_MODULE_5__["default"]),
60786/* harmony export */ "forceX": () => (/* reexport safe */ _x_js__WEBPACK_IMPORTED_MODULE_6__["default"]),
60787/* harmony export */ "forceY": () => (/* reexport safe */ _y_js__WEBPACK_IMPORTED_MODULE_7__["default"])
60788/* harmony export */ });
60789/* harmony import */ var _center_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./center.js */ "./node_modules/d3-force/src/center.js");
60790/* harmony import */ var _collide_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./collide.js */ "./node_modules/d3-force/src/collide.js");
60791/* harmony import */ var _link_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./link.js */ "./node_modules/d3-force/src/link.js");
60792/* harmony import */ var _manyBody_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./manyBody.js */ "./node_modules/d3-force/src/manyBody.js");
60793/* harmony import */ var _radial_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./radial.js */ "./node_modules/d3-force/src/radial.js");
60794/* harmony import */ var _simulation_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./simulation.js */ "./node_modules/d3-force/src/simulation.js");
60795/* harmony import */ var _x_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./x.js */ "./node_modules/d3-force/src/x.js");
60796/* harmony import */ var _y_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./y.js */ "./node_modules/d3-force/src/y.js");
60797
60798
60799
60800
60801
60802
60803
60804
60805
60806
60807/***/ }),
60808
60809/***/ "./node_modules/d3-force/src/jiggle.js":
60810/*!*********************************************!*\
60811 !*** ./node_modules/d3-force/src/jiggle.js ***!
60812 \*********************************************/
60813/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60814
60815"use strict";
60816__webpack_require__.r(__webpack_exports__);
60817/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60818/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
60819/* harmony export */ });
60820/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(random) {
60821 return (random() - 0.5) * 1e-6;
60822}
60823
60824
60825/***/ }),
60826
60827/***/ "./node_modules/d3-force/src/lcg.js":
60828/*!******************************************!*\
60829 !*** ./node_modules/d3-force/src/lcg.js ***!
60830 \******************************************/
60831/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60832
60833"use strict";
60834__webpack_require__.r(__webpack_exports__);
60835/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60836/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
60837/* harmony export */ });
60838// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use
60839const a = 1664525;
60840const c = 1013904223;
60841const m = 4294967296; // 2^32
60842
60843/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
60844 let s = 1;
60845 return () => (s = (a * s + c) % m) / m;
60846}
60847
60848
60849/***/ }),
60850
60851/***/ "./node_modules/d3-force/src/link.js":
60852/*!*******************************************!*\
60853 !*** ./node_modules/d3-force/src/link.js ***!
60854 \*******************************************/
60855/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60856
60857"use strict";
60858__webpack_require__.r(__webpack_exports__);
60859/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60860/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
60861/* harmony export */ });
60862/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-force/src/constant.js");
60863/* harmony import */ var _jiggle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jiggle.js */ "./node_modules/d3-force/src/jiggle.js");
60864
60865
60866
60867function index(d) {
60868 return d.index;
60869}
60870
60871function find(nodeById, nodeId) {
60872 var node = nodeById.get(nodeId);
60873 if (!node) throw new Error("node not found: " + nodeId);
60874 return node;
60875}
60876
60877/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(links) {
60878 var id = index,
60879 strength = defaultStrength,
60880 strengths,
60881 distance = (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(30),
60882 distances,
60883 nodes,
60884 count,
60885 bias,
60886 random,
60887 iterations = 1;
60888
60889 if (links == null) links = [];
60890
60891 function defaultStrength(link) {
60892 return 1 / Math.min(count[link.source.index], count[link.target.index]);
60893 }
60894
60895 function force(alpha) {
60896 for (var k = 0, n = links.length; k < iterations; ++k) {
60897 for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {
60898 link = links[i], source = link.source, target = link.target;
60899 x = target.x + target.vx - source.x - source.vx || (0,_jiggle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(random);
60900 y = target.y + target.vy - source.y - source.vy || (0,_jiggle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(random);
60901 l = Math.sqrt(x * x + y * y);
60902 l = (l - distances[i]) / l * alpha * strengths[i];
60903 x *= l, y *= l;
60904 target.vx -= x * (b = bias[i]);
60905 target.vy -= y * b;
60906 source.vx += x * (b = 1 - b);
60907 source.vy += y * b;
60908 }
60909 }
60910 }
60911
60912 function initialize() {
60913 if (!nodes) return;
60914
60915 var i,
60916 n = nodes.length,
60917 m = links.length,
60918 nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])),
60919 link;
60920
60921 for (i = 0, count = new Array(n); i < m; ++i) {
60922 link = links[i], link.index = i;
60923 if (typeof link.source !== "object") link.source = find(nodeById, link.source);
60924 if (typeof link.target !== "object") link.target = find(nodeById, link.target);
60925 count[link.source.index] = (count[link.source.index] || 0) + 1;
60926 count[link.target.index] = (count[link.target.index] || 0) + 1;
60927 }
60928
60929 for (i = 0, bias = new Array(m); i < m; ++i) {
60930 link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);
60931 }
60932
60933 strengths = new Array(m), initializeStrength();
60934 distances = new Array(m), initializeDistance();
60935 }
60936
60937 function initializeStrength() {
60938 if (!nodes) return;
60939
60940 for (var i = 0, n = links.length; i < n; ++i) {
60941 strengths[i] = +strength(links[i], i, links);
60942 }
60943 }
60944
60945 function initializeDistance() {
60946 if (!nodes) return;
60947
60948 for (var i = 0, n = links.length; i < n; ++i) {
60949 distances[i] = +distance(links[i], i, links);
60950 }
60951 }
60952
60953 force.initialize = function(_nodes, _random) {
60954 nodes = _nodes;
60955 random = _random;
60956 initialize();
60957 };
60958
60959 force.links = function(_) {
60960 return arguments.length ? (links = _, initialize(), force) : links;
60961 };
60962
60963 force.id = function(_) {
60964 return arguments.length ? (id = _, force) : id;
60965 };
60966
60967 force.iterations = function(_) {
60968 return arguments.length ? (iterations = +_, force) : iterations;
60969 };
60970
60971 force.strength = function(_) {
60972 return arguments.length ? (strength = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initializeStrength(), force) : strength;
60973 };
60974
60975 force.distance = function(_) {
60976 return arguments.length ? (distance = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initializeDistance(), force) : distance;
60977 };
60978
60979 return force;
60980}
60981
60982
60983/***/ }),
60984
60985/***/ "./node_modules/d3-force/src/manyBody.js":
60986/*!***********************************************!*\
60987 !*** ./node_modules/d3-force/src/manyBody.js ***!
60988 \***********************************************/
60989/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
60990
60991"use strict";
60992__webpack_require__.r(__webpack_exports__);
60993/* harmony export */ __webpack_require__.d(__webpack_exports__, {
60994/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
60995/* harmony export */ });
60996/* harmony import */ var d3_quadtree__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-quadtree */ "./node_modules/d3-quadtree/src/quadtree.js");
60997/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-force/src/constant.js");
60998/* harmony import */ var _jiggle_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./jiggle.js */ "./node_modules/d3-force/src/jiggle.js");
60999/* harmony import */ var _simulation_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./simulation.js */ "./node_modules/d3-force/src/simulation.js");
61000
61001
61002
61003
61004
61005/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
61006 var nodes,
61007 node,
61008 random,
61009 alpha,
61010 strength = (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(-30),
61011 strengths,
61012 distanceMin2 = 1,
61013 distanceMax2 = Infinity,
61014 theta2 = 0.81;
61015
61016 function force(_) {
61017 var i, n = nodes.length, tree = (0,d3_quadtree__WEBPACK_IMPORTED_MODULE_1__["default"])(nodes, _simulation_js__WEBPACK_IMPORTED_MODULE_2__.x, _simulation_js__WEBPACK_IMPORTED_MODULE_2__.y).visitAfter(accumulate);
61018 for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);
61019 }
61020
61021 function initialize() {
61022 if (!nodes) return;
61023 var i, n = nodes.length, node;
61024 strengths = new Array(n);
61025 for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);
61026 }
61027
61028 function accumulate(quad) {
61029 var strength = 0, q, c, weight = 0, x, y, i;
61030
61031 // For internal nodes, accumulate forces from child quadrants.
61032 if (quad.length) {
61033 for (x = y = i = 0; i < 4; ++i) {
61034 if ((q = quad[i]) && (c = Math.abs(q.value))) {
61035 strength += q.value, weight += c, x += c * q.x, y += c * q.y;
61036 }
61037 }
61038 quad.x = x / weight;
61039 quad.y = y / weight;
61040 }
61041
61042 // For leaf nodes, accumulate forces from coincident quadrants.
61043 else {
61044 q = quad;
61045 q.x = q.data.x;
61046 q.y = q.data.y;
61047 do strength += strengths[q.data.index];
61048 while (q = q.next);
61049 }
61050
61051 quad.value = strength;
61052 }
61053
61054 function apply(quad, x1, _, x2) {
61055 if (!quad.value) return true;
61056
61057 var x = quad.x - node.x,
61058 y = quad.y - node.y,
61059 w = x2 - x1,
61060 l = x * x + y * y;
61061
61062 // Apply the Barnes-Hut approximation if possible.
61063 // Limit forces for very close nodes; randomize direction if coincident.
61064 if (w * w / theta2 < l) {
61065 if (l < distanceMax2) {
61066 if (x === 0) x = (0,_jiggle_js__WEBPACK_IMPORTED_MODULE_3__["default"])(random), l += x * x;
61067 if (y === 0) y = (0,_jiggle_js__WEBPACK_IMPORTED_MODULE_3__["default"])(random), l += y * y;
61068 if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
61069 node.vx += x * quad.value * alpha / l;
61070 node.vy += y * quad.value * alpha / l;
61071 }
61072 return true;
61073 }
61074
61075 // Otherwise, process points directly.
61076 else if (quad.length || l >= distanceMax2) return;
61077
61078 // Limit forces for very close nodes; randomize direction if coincident.
61079 if (quad.data !== node || quad.next) {
61080 if (x === 0) x = (0,_jiggle_js__WEBPACK_IMPORTED_MODULE_3__["default"])(random), l += x * x;
61081 if (y === 0) y = (0,_jiggle_js__WEBPACK_IMPORTED_MODULE_3__["default"])(random), l += y * y;
61082 if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);
61083 }
61084
61085 do if (quad.data !== node) {
61086 w = strengths[quad.data.index] * alpha / l;
61087 node.vx += x * w;
61088 node.vy += y * w;
61089 } while (quad = quad.next);
61090 }
61091
61092 force.initialize = function(_nodes, _random) {
61093 nodes = _nodes;
61094 random = _random;
61095 initialize();
61096 };
61097
61098 force.strength = function(_) {
61099 return arguments.length ? (strength = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : strength;
61100 };
61101
61102 force.distanceMin = function(_) {
61103 return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);
61104 };
61105
61106 force.distanceMax = function(_) {
61107 return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);
61108 };
61109
61110 force.theta = function(_) {
61111 return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);
61112 };
61113
61114 return force;
61115}
61116
61117
61118/***/ }),
61119
61120/***/ "./node_modules/d3-force/src/radial.js":
61121/*!*********************************************!*\
61122 !*** ./node_modules/d3-force/src/radial.js ***!
61123 \*********************************************/
61124/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
61125
61126"use strict";
61127__webpack_require__.r(__webpack_exports__);
61128/* harmony export */ __webpack_require__.d(__webpack_exports__, {
61129/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
61130/* harmony export */ });
61131/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-force/src/constant.js");
61132
61133
61134/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(radius, x, y) {
61135 var nodes,
61136 strength = (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(0.1),
61137 strengths,
61138 radiuses;
61139
61140 if (typeof radius !== "function") radius = (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+radius);
61141 if (x == null) x = 0;
61142 if (y == null) y = 0;
61143
61144 function force(alpha) {
61145 for (var i = 0, n = nodes.length; i < n; ++i) {
61146 var node = nodes[i],
61147 dx = node.x - x || 1e-6,
61148 dy = node.y - y || 1e-6,
61149 r = Math.sqrt(dx * dx + dy * dy),
61150 k = (radiuses[i] - r) * strengths[i] * alpha / r;
61151 node.vx += dx * k;
61152 node.vy += dy * k;
61153 }
61154 }
61155
61156 function initialize() {
61157 if (!nodes) return;
61158 var i, n = nodes.length;
61159 strengths = new Array(n);
61160 radiuses = new Array(n);
61161 for (i = 0; i < n; ++i) {
61162 radiuses[i] = +radius(nodes[i], i, nodes);
61163 strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);
61164 }
61165 }
61166
61167 force.initialize = function(_) {
61168 nodes = _, initialize();
61169 };
61170
61171 force.strength = function(_) {
61172 return arguments.length ? (strength = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : strength;
61173 };
61174
61175 force.radius = function(_) {
61176 return arguments.length ? (radius = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : radius;
61177 };
61178
61179 force.x = function(_) {
61180 return arguments.length ? (x = +_, force) : x;
61181 };
61182
61183 force.y = function(_) {
61184 return arguments.length ? (y = +_, force) : y;
61185 };
61186
61187 return force;
61188}
61189
61190
61191/***/ }),
61192
61193/***/ "./node_modules/d3-force/src/simulation.js":
61194/*!*************************************************!*\
61195 !*** ./node_modules/d3-force/src/simulation.js ***!
61196 \*************************************************/
61197/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
61198
61199"use strict";
61200__webpack_require__.r(__webpack_exports__);
61201/* harmony export */ __webpack_require__.d(__webpack_exports__, {
61202/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
61203/* harmony export */ "x": () => (/* binding */ x),
61204/* harmony export */ "y": () => (/* binding */ y)
61205/* harmony export */ });
61206/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/dispatch.js");
61207/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-timer */ "./node_modules/d3-timer/src/timer.js");
61208/* harmony import */ var _lcg_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lcg.js */ "./node_modules/d3-force/src/lcg.js");
61209
61210
61211
61212
61213function x(d) {
61214 return d.x;
61215}
61216
61217function y(d) {
61218 return d.y;
61219}
61220
61221var initialRadius = 10,
61222 initialAngle = Math.PI * (3 - Math.sqrt(5));
61223
61224/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(nodes) {
61225 var simulation,
61226 alpha = 1,
61227 alphaMin = 0.001,
61228 alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),
61229 alphaTarget = 0,
61230 velocityDecay = 0.6,
61231 forces = new Map(),
61232 stepper = (0,d3_timer__WEBPACK_IMPORTED_MODULE_0__.timer)(step),
61233 event = (0,d3_dispatch__WEBPACK_IMPORTED_MODULE_1__["default"])("tick", "end"),
61234 random = (0,_lcg_js__WEBPACK_IMPORTED_MODULE_2__["default"])();
61235
61236 if (nodes == null) nodes = [];
61237
61238 function step() {
61239 tick();
61240 event.call("tick", simulation);
61241 if (alpha < alphaMin) {
61242 stepper.stop();
61243 event.call("end", simulation);
61244 }
61245 }
61246
61247 function tick(iterations) {
61248 var i, n = nodes.length, node;
61249
61250 if (iterations === undefined) iterations = 1;
61251
61252 for (var k = 0; k < iterations; ++k) {
61253 alpha += (alphaTarget - alpha) * alphaDecay;
61254
61255 forces.forEach(function(force) {
61256 force(alpha);
61257 });
61258
61259 for (i = 0; i < n; ++i) {
61260 node = nodes[i];
61261 if (node.fx == null) node.x += node.vx *= velocityDecay;
61262 else node.x = node.fx, node.vx = 0;
61263 if (node.fy == null) node.y += node.vy *= velocityDecay;
61264 else node.y = node.fy, node.vy = 0;
61265 }
61266 }
61267
61268 return simulation;
61269 }
61270
61271 function initializeNodes() {
61272 for (var i = 0, n = nodes.length, node; i < n; ++i) {
61273 node = nodes[i], node.index = i;
61274 if (node.fx != null) node.x = node.fx;
61275 if (node.fy != null) node.y = node.fy;
61276 if (isNaN(node.x) || isNaN(node.y)) {
61277 var radius = initialRadius * Math.sqrt(0.5 + i), angle = i * initialAngle;
61278 node.x = radius * Math.cos(angle);
61279 node.y = radius * Math.sin(angle);
61280 }
61281 if (isNaN(node.vx) || isNaN(node.vy)) {
61282 node.vx = node.vy = 0;
61283 }
61284 }
61285 }
61286
61287 function initializeForce(force) {
61288 if (force.initialize) force.initialize(nodes, random);
61289 return force;
61290 }
61291
61292 initializeNodes();
61293
61294 return simulation = {
61295 tick: tick,
61296
61297 restart: function() {
61298 return stepper.restart(step), simulation;
61299 },
61300
61301 stop: function() {
61302 return stepper.stop(), simulation;
61303 },
61304
61305 nodes: function(_) {
61306 return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes;
61307 },
61308
61309 alpha: function(_) {
61310 return arguments.length ? (alpha = +_, simulation) : alpha;
61311 },
61312
61313 alphaMin: function(_) {
61314 return arguments.length ? (alphaMin = +_, simulation) : alphaMin;
61315 },
61316
61317 alphaDecay: function(_) {
61318 return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;
61319 },
61320
61321 alphaTarget: function(_) {
61322 return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;
61323 },
61324
61325 velocityDecay: function(_) {
61326 return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;
61327 },
61328
61329 randomSource: function(_) {
61330 return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random;
61331 },
61332
61333 force: function(name, _) {
61334 return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);
61335 },
61336
61337 find: function(x, y, radius) {
61338 var i = 0,
61339 n = nodes.length,
61340 dx,
61341 dy,
61342 d2,
61343 node,
61344 closest;
61345
61346 if (radius == null) radius = Infinity;
61347 else radius *= radius;
61348
61349 for (i = 0; i < n; ++i) {
61350 node = nodes[i];
61351 dx = x - node.x;
61352 dy = y - node.y;
61353 d2 = dx * dx + dy * dy;
61354 if (d2 < radius) closest = node, radius = d2;
61355 }
61356
61357 return closest;
61358 },
61359
61360 on: function(name, _) {
61361 return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);
61362 }
61363 };
61364}
61365
61366
61367/***/ }),
61368
61369/***/ "./node_modules/d3-force/src/x.js":
61370/*!****************************************!*\
61371 !*** ./node_modules/d3-force/src/x.js ***!
61372 \****************************************/
61373/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
61374
61375"use strict";
61376__webpack_require__.r(__webpack_exports__);
61377/* harmony export */ __webpack_require__.d(__webpack_exports__, {
61378/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
61379/* harmony export */ });
61380/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-force/src/constant.js");
61381
61382
61383/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x) {
61384 var strength = (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(0.1),
61385 nodes,
61386 strengths,
61387 xz;
61388
61389 if (typeof x !== "function") x = (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(x == null ? 0 : +x);
61390
61391 function force(alpha) {
61392 for (var i = 0, n = nodes.length, node; i < n; ++i) {
61393 node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;
61394 }
61395 }
61396
61397 function initialize() {
61398 if (!nodes) return;
61399 var i, n = nodes.length;
61400 strengths = new Array(n);
61401 xz = new Array(n);
61402 for (i = 0; i < n; ++i) {
61403 strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
61404 }
61405 }
61406
61407 force.initialize = function(_) {
61408 nodes = _;
61409 initialize();
61410 };
61411
61412 force.strength = function(_) {
61413 return arguments.length ? (strength = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : strength;
61414 };
61415
61416 force.x = function(_) {
61417 return arguments.length ? (x = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : x;
61418 };
61419
61420 return force;
61421}
61422
61423
61424/***/ }),
61425
61426/***/ "./node_modules/d3-force/src/y.js":
61427/*!****************************************!*\
61428 !*** ./node_modules/d3-force/src/y.js ***!
61429 \****************************************/
61430/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
61431
61432"use strict";
61433__webpack_require__.r(__webpack_exports__);
61434/* harmony export */ __webpack_require__.d(__webpack_exports__, {
61435/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
61436/* harmony export */ });
61437/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-force/src/constant.js");
61438
61439
61440/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(y) {
61441 var strength = (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(0.1),
61442 nodes,
61443 strengths,
61444 yz;
61445
61446 if (typeof y !== "function") y = (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(y == null ? 0 : +y);
61447
61448 function force(alpha) {
61449 for (var i = 0, n = nodes.length, node; i < n; ++i) {
61450 node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;
61451 }
61452 }
61453
61454 function initialize() {
61455 if (!nodes) return;
61456 var i, n = nodes.length;
61457 strengths = new Array(n);
61458 yz = new Array(n);
61459 for (i = 0; i < n; ++i) {
61460 strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);
61461 }
61462 }
61463
61464 force.initialize = function(_) {
61465 nodes = _;
61466 initialize();
61467 };
61468
61469 force.strength = function(_) {
61470 return arguments.length ? (strength = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : strength;
61471 };
61472
61473 force.y = function(_) {
61474 return arguments.length ? (y = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), initialize(), force) : y;
61475 };
61476
61477 return force;
61478}
61479
61480
61481/***/ }),
61482
61483/***/ "./node_modules/d3-format/src/defaultLocale.js":
61484/*!*****************************************************!*\
61485 !*** ./node_modules/d3-format/src/defaultLocale.js ***!
61486 \*****************************************************/
61487/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
61488
61489"use strict";
61490__webpack_require__.r(__webpack_exports__);
61491/* harmony export */ __webpack_require__.d(__webpack_exports__, {
61492/* harmony export */ "default": () => (/* binding */ defaultLocale),
61493/* harmony export */ "format": () => (/* binding */ format),
61494/* harmony export */ "formatPrefix": () => (/* binding */ formatPrefix)
61495/* harmony export */ });
61496/* harmony import */ var _locale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./locale.js */ "./node_modules/d3-format/src/locale.js");
61497
61498
61499var locale;
61500var format;
61501var formatPrefix;
61502
61503defaultLocale({
61504 thousands: ",",
61505 grouping: [3],
61506 currency: ["$", ""]
61507});
61508
61509function defaultLocale(definition) {
61510 locale = (0,_locale_js__WEBPACK_IMPORTED_MODULE_0__["default"])(definition);
61511 format = locale.format;
61512 formatPrefix = locale.formatPrefix;
61513 return locale;
61514}
61515
61516
61517/***/ }),
61518
61519/***/ "./node_modules/d3-format/src/exponent.js":
61520/*!************************************************!*\
61521 !*** ./node_modules/d3-format/src/exponent.js ***!
61522 \************************************************/
61523/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
61524
61525"use strict";
61526__webpack_require__.r(__webpack_exports__);
61527/* harmony export */ __webpack_require__.d(__webpack_exports__, {
61528/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
61529/* harmony export */ });
61530/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ "./node_modules/d3-format/src/formatDecimal.js");
61531
61532
61533/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x) {
61534 return x = (0,_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__.formatDecimalParts)(Math.abs(x)), x ? x[1] : NaN;
61535}
61536
61537
61538/***/ }),
61539
61540/***/ "./node_modules/d3-format/src/formatDecimal.js":
61541/*!*****************************************************!*\
61542 !*** ./node_modules/d3-format/src/formatDecimal.js ***!
61543 \*****************************************************/
61544/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
61545
61546"use strict";
61547__webpack_require__.r(__webpack_exports__);
61548/* harmony export */ __webpack_require__.d(__webpack_exports__, {
61549/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
61550/* harmony export */ "formatDecimalParts": () => (/* binding */ formatDecimalParts)
61551/* harmony export */ });
61552/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x) {
61553 return Math.abs(x = Math.round(x)) >= 1e21
61554 ? x.toLocaleString("en").replace(/,/g, "")
61555 : x.toString(10);
61556}
61557
61558// Computes the decimal coefficient and exponent of the specified number x with
61559// significant digits p, where x is positive and p is in [1, 21] or undefined.
61560// For example, formatDecimalParts(1.23) returns ["123", 0].
61561function formatDecimalParts(x, p) {
61562 if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity
61563 var i, coefficient = x.slice(0, i);
61564
61565 // The string returned by toExponential either has the form \d\.\d+e[-+]\d+
61566 // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3).
61567 return [
61568 coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,
61569 +x.slice(i + 1)
61570 ];
61571}
61572
61573
61574/***/ }),
61575
61576/***/ "./node_modules/d3-format/src/formatGroup.js":
61577/*!***************************************************!*\
61578 !*** ./node_modules/d3-format/src/formatGroup.js ***!
61579 \***************************************************/
61580/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
61581
61582"use strict";
61583__webpack_require__.r(__webpack_exports__);
61584/* harmony export */ __webpack_require__.d(__webpack_exports__, {
61585/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
61586/* harmony export */ });
61587/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(grouping, thousands) {
61588 return function(value, width) {
61589 var i = value.length,
61590 t = [],
61591 j = 0,
61592 g = grouping[0],
61593 length = 0;
61594
61595 while (i > 0 && g > 0) {
61596 if (length + g + 1 > width) g = Math.max(1, width - length);
61597 t.push(value.substring(i -= g, i + g));
61598 if ((length += g + 1) > width) break;
61599 g = grouping[j = (j + 1) % grouping.length];
61600 }
61601
61602 return t.reverse().join(thousands);
61603 };
61604}
61605
61606
61607/***/ }),
61608
61609/***/ "./node_modules/d3-format/src/formatNumerals.js":
61610/*!******************************************************!*\
61611 !*** ./node_modules/d3-format/src/formatNumerals.js ***!
61612 \******************************************************/
61613/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
61614
61615"use strict";
61616__webpack_require__.r(__webpack_exports__);
61617/* harmony export */ __webpack_require__.d(__webpack_exports__, {
61618/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
61619/* harmony export */ });
61620/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(numerals) {
61621 return function(value) {
61622 return value.replace(/[0-9]/g, function(i) {
61623 return numerals[+i];
61624 });
61625 };
61626}
61627
61628
61629/***/ }),
61630
61631/***/ "./node_modules/d3-format/src/formatPrefixAuto.js":
61632/*!********************************************************!*\
61633 !*** ./node_modules/d3-format/src/formatPrefixAuto.js ***!
61634 \********************************************************/
61635/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
61636
61637"use strict";
61638__webpack_require__.r(__webpack_exports__);
61639/* harmony export */ __webpack_require__.d(__webpack_exports__, {
61640/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
61641/* harmony export */ "prefixExponent": () => (/* binding */ prefixExponent)
61642/* harmony export */ });
61643/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ "./node_modules/d3-format/src/formatDecimal.js");
61644
61645
61646var prefixExponent;
61647
61648/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x, p) {
61649 var d = (0,_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__.formatDecimalParts)(x, p);
61650 if (!d) return x + "";
61651 var coefficient = d[0],
61652 exponent = d[1],
61653 i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,
61654 n = coefficient.length;
61655 return i === n ? coefficient
61656 : i > n ? coefficient + new Array(i - n + 1).join("0")
61657 : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i)
61658 : "0." + new Array(1 - i).join("0") + (0,_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__.formatDecimalParts)(x, Math.max(0, p + i - 1))[0]; // less than 1y!
61659}
61660
61661
61662/***/ }),
61663
61664/***/ "./node_modules/d3-format/src/formatRounded.js":
61665/*!*****************************************************!*\
61666 !*** ./node_modules/d3-format/src/formatRounded.js ***!
61667 \*****************************************************/
61668/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
61669
61670"use strict";
61671__webpack_require__.r(__webpack_exports__);
61672/* harmony export */ __webpack_require__.d(__webpack_exports__, {
61673/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
61674/* harmony export */ });
61675/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ "./node_modules/d3-format/src/formatDecimal.js");
61676
61677
61678/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x, p) {
61679 var d = (0,_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__.formatDecimalParts)(x, p);
61680 if (!d) return x + "";
61681 var coefficient = d[0],
61682 exponent = d[1];
61683 return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient
61684 : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1)
61685 : coefficient + new Array(exponent - coefficient.length + 2).join("0");
61686}
61687
61688
61689/***/ }),
61690
61691/***/ "./node_modules/d3-format/src/formatSpecifier.js":
61692/*!*******************************************************!*\
61693 !*** ./node_modules/d3-format/src/formatSpecifier.js ***!
61694 \*******************************************************/
61695/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
61696
61697"use strict";
61698__webpack_require__.r(__webpack_exports__);
61699/* harmony export */ __webpack_require__.d(__webpack_exports__, {
61700/* harmony export */ "FormatSpecifier": () => (/* binding */ FormatSpecifier),
61701/* harmony export */ "default": () => (/* binding */ formatSpecifier)
61702/* harmony export */ });
61703// [[fill]align][sign][symbol][0][width][,][.precision][~][type]
61704var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
61705
61706function formatSpecifier(specifier) {
61707 if (!(match = re.exec(specifier))) throw new Error("invalid format: " + specifier);
61708 var match;
61709 return new FormatSpecifier({
61710 fill: match[1],
61711 align: match[2],
61712 sign: match[3],
61713 symbol: match[4],
61714 zero: match[5],
61715 width: match[6],
61716 comma: match[7],
61717 precision: match[8] && match[8].slice(1),
61718 trim: match[9],
61719 type: match[10]
61720 });
61721}
61722
61723formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof
61724
61725function FormatSpecifier(specifier) {
61726 this.fill = specifier.fill === undefined ? " " : specifier.fill + "";
61727 this.align = specifier.align === undefined ? ">" : specifier.align + "";
61728 this.sign = specifier.sign === undefined ? "-" : specifier.sign + "";
61729 this.symbol = specifier.symbol === undefined ? "" : specifier.symbol + "";
61730 this.zero = !!specifier.zero;
61731 this.width = specifier.width === undefined ? undefined : +specifier.width;
61732 this.comma = !!specifier.comma;
61733 this.precision = specifier.precision === undefined ? undefined : +specifier.precision;
61734 this.trim = !!specifier.trim;
61735 this.type = specifier.type === undefined ? "" : specifier.type + "";
61736}
61737
61738FormatSpecifier.prototype.toString = function() {
61739 return this.fill
61740 + this.align
61741 + this.sign
61742 + this.symbol
61743 + (this.zero ? "0" : "")
61744 + (this.width === undefined ? "" : Math.max(1, this.width | 0))
61745 + (this.comma ? "," : "")
61746 + (this.precision === undefined ? "" : "." + Math.max(0, this.precision | 0))
61747 + (this.trim ? "~" : "")
61748 + this.type;
61749};
61750
61751
61752/***/ }),
61753
61754/***/ "./node_modules/d3-format/src/formatTrim.js":
61755/*!**************************************************!*\
61756 !*** ./node_modules/d3-format/src/formatTrim.js ***!
61757 \**************************************************/
61758/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
61759
61760"use strict";
61761__webpack_require__.r(__webpack_exports__);
61762/* harmony export */ __webpack_require__.d(__webpack_exports__, {
61763/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
61764/* harmony export */ });
61765// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.
61766/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(s) {
61767 out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {
61768 switch (s[i]) {
61769 case ".": i0 = i1 = i; break;
61770 case "0": if (i0 === 0) i0 = i; i1 = i; break;
61771 default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;
61772 }
61773 }
61774 return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;
61775}
61776
61777
61778/***/ }),
61779
61780/***/ "./node_modules/d3-format/src/formatTypes.js":
61781/*!***************************************************!*\
61782 !*** ./node_modules/d3-format/src/formatTypes.js ***!
61783 \***************************************************/
61784/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
61785
61786"use strict";
61787__webpack_require__.r(__webpack_exports__);
61788/* harmony export */ __webpack_require__.d(__webpack_exports__, {
61789/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
61790/* harmony export */ });
61791/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ "./node_modules/d3-format/src/formatDecimal.js");
61792/* harmony import */ var _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatPrefixAuto.js */ "./node_modules/d3-format/src/formatPrefixAuto.js");
61793/* harmony import */ var _formatRounded_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatRounded.js */ "./node_modules/d3-format/src/formatRounded.js");
61794
61795
61796
61797
61798/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
61799 "%": (x, p) => (x * 100).toFixed(p),
61800 "b": (x) => Math.round(x).toString(2),
61801 "c": (x) => x + "",
61802 "d": _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__["default"],
61803 "e": (x, p) => x.toExponential(p),
61804 "f": (x, p) => x.toFixed(p),
61805 "g": (x, p) => x.toPrecision(p),
61806 "o": (x) => Math.round(x).toString(8),
61807 "p": (x, p) => (0,_formatRounded_js__WEBPACK_IMPORTED_MODULE_1__["default"])(x * 100, p),
61808 "r": _formatRounded_js__WEBPACK_IMPORTED_MODULE_1__["default"],
61809 "s": _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_2__["default"],
61810 "X": (x) => Math.round(x).toString(16).toUpperCase(),
61811 "x": (x) => Math.round(x).toString(16)
61812});
61813
61814
61815/***/ }),
61816
61817/***/ "./node_modules/d3-format/src/identity.js":
61818/*!************************************************!*\
61819 !*** ./node_modules/d3-format/src/identity.js ***!
61820 \************************************************/
61821/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
61822
61823"use strict";
61824__webpack_require__.r(__webpack_exports__);
61825/* harmony export */ __webpack_require__.d(__webpack_exports__, {
61826/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
61827/* harmony export */ });
61828/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x) {
61829 return x;
61830}
61831
61832
61833/***/ }),
61834
61835/***/ "./node_modules/d3-format/src/index.js":
61836/*!*********************************************!*\
61837 !*** ./node_modules/d3-format/src/index.js ***!
61838 \*********************************************/
61839/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
61840
61841"use strict";
61842__webpack_require__.r(__webpack_exports__);
61843/* harmony export */ __webpack_require__.d(__webpack_exports__, {
61844/* harmony export */ "FormatSpecifier": () => (/* reexport safe */ _formatSpecifier_js__WEBPACK_IMPORTED_MODULE_2__.FormatSpecifier),
61845/* harmony export */ "format": () => (/* reexport safe */ _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__.format),
61846/* harmony export */ "formatDefaultLocale": () => (/* reexport safe */ _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
61847/* harmony export */ "formatLocale": () => (/* reexport safe */ _locale_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
61848/* harmony export */ "formatPrefix": () => (/* reexport safe */ _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__.formatPrefix),
61849/* harmony export */ "formatSpecifier": () => (/* reexport safe */ _formatSpecifier_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
61850/* harmony export */ "precisionFixed": () => (/* reexport safe */ _precisionFixed_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
61851/* harmony export */ "precisionPrefix": () => (/* reexport safe */ _precisionPrefix_js__WEBPACK_IMPORTED_MODULE_4__["default"]),
61852/* harmony export */ "precisionRound": () => (/* reexport safe */ _precisionRound_js__WEBPACK_IMPORTED_MODULE_5__["default"])
61853/* harmony export */ });
61854/* harmony import */ var _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultLocale.js */ "./node_modules/d3-format/src/defaultLocale.js");
61855/* harmony import */ var _locale_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./locale.js */ "./node_modules/d3-format/src/locale.js");
61856/* harmony import */ var _formatSpecifier_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatSpecifier.js */ "./node_modules/d3-format/src/formatSpecifier.js");
61857/* harmony import */ var _precisionFixed_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./precisionFixed.js */ "./node_modules/d3-format/src/precisionFixed.js");
61858/* harmony import */ var _precisionPrefix_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./precisionPrefix.js */ "./node_modules/d3-format/src/precisionPrefix.js");
61859/* harmony import */ var _precisionRound_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./precisionRound.js */ "./node_modules/d3-format/src/precisionRound.js");
61860
61861
61862
61863
61864
61865
61866
61867
61868/***/ }),
61869
61870/***/ "./node_modules/d3-format/src/locale.js":
61871/*!**********************************************!*\
61872 !*** ./node_modules/d3-format/src/locale.js ***!
61873 \**********************************************/
61874/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
61875
61876"use strict";
61877__webpack_require__.r(__webpack_exports__);
61878/* harmony export */ __webpack_require__.d(__webpack_exports__, {
61879/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
61880/* harmony export */ });
61881/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./exponent.js */ "./node_modules/d3-format/src/exponent.js");
61882/* harmony import */ var _formatGroup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatGroup.js */ "./node_modules/d3-format/src/formatGroup.js");
61883/* harmony import */ var _formatNumerals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatNumerals.js */ "./node_modules/d3-format/src/formatNumerals.js");
61884/* harmony import */ var _formatSpecifier_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./formatSpecifier.js */ "./node_modules/d3-format/src/formatSpecifier.js");
61885/* harmony import */ var _formatTrim_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./formatTrim.js */ "./node_modules/d3-format/src/formatTrim.js");
61886/* harmony import */ var _formatTypes_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./formatTypes.js */ "./node_modules/d3-format/src/formatTypes.js");
61887/* harmony import */ var _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./formatPrefixAuto.js */ "./node_modules/d3-format/src/formatPrefixAuto.js");
61888/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity.js */ "./node_modules/d3-format/src/identity.js");
61889
61890
61891
61892
61893
61894
61895
61896
61897
61898var map = Array.prototype.map,
61899 prefixes = ["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];
61900
61901/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(locale) {
61902 var group = locale.grouping === undefined || locale.thousands === undefined ? _identity_js__WEBPACK_IMPORTED_MODULE_0__["default"] : (0,_formatGroup_js__WEBPACK_IMPORTED_MODULE_1__["default"])(map.call(locale.grouping, Number), locale.thousands + ""),
61903 currencyPrefix = locale.currency === undefined ? "" : locale.currency[0] + "",
61904 currencySuffix = locale.currency === undefined ? "" : locale.currency[1] + "",
61905 decimal = locale.decimal === undefined ? "." : locale.decimal + "",
61906 numerals = locale.numerals === undefined ? _identity_js__WEBPACK_IMPORTED_MODULE_0__["default"] : (0,_formatNumerals_js__WEBPACK_IMPORTED_MODULE_2__["default"])(map.call(locale.numerals, String)),
61907 percent = locale.percent === undefined ? "%" : locale.percent + "",
61908 minus = locale.minus === undefined ? "−" : locale.minus + "",
61909 nan = locale.nan === undefined ? "NaN" : locale.nan + "";
61910
61911 function newFormat(specifier) {
61912 specifier = (0,_formatSpecifier_js__WEBPACK_IMPORTED_MODULE_3__["default"])(specifier);
61913
61914 var fill = specifier.fill,
61915 align = specifier.align,
61916 sign = specifier.sign,
61917 symbol = specifier.symbol,
61918 zero = specifier.zero,
61919 width = specifier.width,
61920 comma = specifier.comma,
61921 precision = specifier.precision,
61922 trim = specifier.trim,
61923 type = specifier.type;
61924
61925 // The "n" type is an alias for ",g".
61926 if (type === "n") comma = true, type = "g";
61927
61928 // The "" type, and any invalid type, is an alias for ".12~g".
61929 else if (!_formatTypes_js__WEBPACK_IMPORTED_MODULE_4__["default"][type]) precision === undefined && (precision = 12), trim = true, type = "g";
61930
61931 // If zero fill is specified, padding goes after sign and before digits.
61932 if (zero || (fill === "0" && align === "=")) zero = true, fill = "0", align = "=";
61933
61934 // Compute the prefix and suffix.
61935 // For SI-prefix, the suffix is lazily computed.
61936 var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "",
61937 suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : "";
61938
61939 // What format function should we use?
61940 // Is this an integer type?
61941 // Can this type generate exponential notation?
61942 var formatType = _formatTypes_js__WEBPACK_IMPORTED_MODULE_4__["default"][type],
61943 maybeSuffix = /[defgprs%]/.test(type);
61944
61945 // Set the default precision if not specified,
61946 // or clamp the specified precision to the supported range.
61947 // For significant precision, it must be in [1, 21].
61948 // For fixed precision, it must be in [0, 20].
61949 precision = precision === undefined ? 6
61950 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))
61951 : Math.max(0, Math.min(20, precision));
61952
61953 function format(value) {
61954 var valuePrefix = prefix,
61955 valueSuffix = suffix,
61956 i, n, c;
61957
61958 if (type === "c") {
61959 valueSuffix = formatType(value) + valueSuffix;
61960 value = "";
61961 } else {
61962 value = +value;
61963
61964 // Determine the sign. -0 is not less than 0, but 1 / -0 is!
61965 var valueNegative = value < 0 || 1 / value < 0;
61966
61967 // Perform the initial formatting.
61968 value = isNaN(value) ? nan : formatType(Math.abs(value), precision);
61969
61970 // Trim insignificant zeros.
61971 if (trim) value = (0,_formatTrim_js__WEBPACK_IMPORTED_MODULE_5__["default"])(value);
61972
61973 // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.
61974 if (valueNegative && +value === 0 && sign !== "+") valueNegative = false;
61975
61976 // Compute the prefix and suffix.
61977 valuePrefix = (valueNegative ? (sign === "(" ? sign : minus) : sign === "-" || sign === "(" ? "" : sign) + valuePrefix;
61978 valueSuffix = (type === "s" ? prefixes[8 + _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_6__.prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : "");
61979
61980 // Break the formatted value into the integer “value” part that can be
61981 // grouped, and fractional or exponential “suffix” part that is not.
61982 if (maybeSuffix) {
61983 i = -1, n = value.length;
61984 while (++i < n) {
61985 if (c = value.charCodeAt(i), 48 > c || c > 57) {
61986 valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;
61987 value = value.slice(0, i);
61988 break;
61989 }
61990 }
61991 }
61992 }
61993
61994 // If the fill character is not "0", grouping is applied before padding.
61995 if (comma && !zero) value = group(value, Infinity);
61996
61997 // Compute the padding.
61998 var length = valuePrefix.length + value.length + valueSuffix.length,
61999 padding = length < width ? new Array(width - length + 1).join(fill) : "";
62000
62001 // If the fill character is "0", grouping is applied after padding.
62002 if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = "";
62003
62004 // Reconstruct the final output based on the desired alignment.
62005 switch (align) {
62006 case "<": value = valuePrefix + value + valueSuffix + padding; break;
62007 case "=": value = valuePrefix + padding + value + valueSuffix; break;
62008 case "^": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;
62009 default: value = padding + valuePrefix + value + valueSuffix; break;
62010 }
62011
62012 return numerals(value);
62013 }
62014
62015 format.toString = function() {
62016 return specifier + "";
62017 };
62018
62019 return format;
62020 }
62021
62022 function formatPrefix(specifier, value) {
62023 var f = newFormat((specifier = (0,_formatSpecifier_js__WEBPACK_IMPORTED_MODULE_3__["default"])(specifier), specifier.type = "f", specifier)),
62024 e = Math.max(-8, Math.min(8, Math.floor((0,_exponent_js__WEBPACK_IMPORTED_MODULE_7__["default"])(value) / 3))) * 3,
62025 k = Math.pow(10, -e),
62026 prefix = prefixes[8 + e / 3];
62027 return function(value) {
62028 return f(k * value) + prefix;
62029 };
62030 }
62031
62032 return {
62033 format: newFormat,
62034 formatPrefix: formatPrefix
62035 };
62036}
62037
62038
62039/***/ }),
62040
62041/***/ "./node_modules/d3-format/src/precisionFixed.js":
62042/*!******************************************************!*\
62043 !*** ./node_modules/d3-format/src/precisionFixed.js ***!
62044 \******************************************************/
62045/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
62046
62047"use strict";
62048__webpack_require__.r(__webpack_exports__);
62049/* harmony export */ __webpack_require__.d(__webpack_exports__, {
62050/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
62051/* harmony export */ });
62052/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ "./node_modules/d3-format/src/exponent.js");
62053
62054
62055/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(step) {
62056 return Math.max(0, -(0,_exponent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Math.abs(step)));
62057}
62058
62059
62060/***/ }),
62061
62062/***/ "./node_modules/d3-format/src/precisionPrefix.js":
62063/*!*******************************************************!*\
62064 !*** ./node_modules/d3-format/src/precisionPrefix.js ***!
62065 \*******************************************************/
62066/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
62067
62068"use strict";
62069__webpack_require__.r(__webpack_exports__);
62070/* harmony export */ __webpack_require__.d(__webpack_exports__, {
62071/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
62072/* harmony export */ });
62073/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ "./node_modules/d3-format/src/exponent.js");
62074
62075
62076/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(step, value) {
62077 return Math.max(0, Math.max(-8, Math.min(8, Math.floor((0,_exponent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value) / 3))) * 3 - (0,_exponent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Math.abs(step)));
62078}
62079
62080
62081/***/ }),
62082
62083/***/ "./node_modules/d3-format/src/precisionRound.js":
62084/*!******************************************************!*\
62085 !*** ./node_modules/d3-format/src/precisionRound.js ***!
62086 \******************************************************/
62087/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
62088
62089"use strict";
62090__webpack_require__.r(__webpack_exports__);
62091/* harmony export */ __webpack_require__.d(__webpack_exports__, {
62092/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
62093/* harmony export */ });
62094/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ "./node_modules/d3-format/src/exponent.js");
62095
62096
62097/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(step, max) {
62098 step = Math.abs(step), max = Math.abs(max) - step;
62099 return Math.max(0, (0,_exponent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(max) - (0,_exponent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(step)) + 1;
62100}
62101
62102
62103/***/ }),
62104
62105/***/ "./node_modules/d3-geo/src/area.js":
62106/*!*****************************************!*\
62107 !*** ./node_modules/d3-geo/src/area.js ***!
62108 \*****************************************/
62109/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
62110
62111"use strict";
62112__webpack_require__.r(__webpack_exports__);
62113/* harmony export */ __webpack_require__.d(__webpack_exports__, {
62114/* harmony export */ "areaRingSum": () => (/* binding */ areaRingSum),
62115/* harmony export */ "areaStream": () => (/* binding */ areaStream),
62116/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
62117/* harmony export */ });
62118/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/fsum.js");
62119/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
62120/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./noop.js */ "./node_modules/d3-geo/src/noop.js");
62121/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./stream.js */ "./node_modules/d3-geo/src/stream.js");
62122
62123
62124
62125
62126
62127var areaRingSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__.Adder();
62128
62129// hello?
62130
62131var areaSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__.Adder(),
62132 lambda00,
62133 phi00,
62134 lambda0,
62135 cosPhi0,
62136 sinPhi0;
62137
62138var areaStream = {
62139 point: _noop_js__WEBPACK_IMPORTED_MODULE_1__["default"],
62140 lineStart: _noop_js__WEBPACK_IMPORTED_MODULE_1__["default"],
62141 lineEnd: _noop_js__WEBPACK_IMPORTED_MODULE_1__["default"],
62142 polygonStart: function() {
62143 areaRingSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__.Adder();
62144 areaStream.lineStart = areaRingStart;
62145 areaStream.lineEnd = areaRingEnd;
62146 },
62147 polygonEnd: function() {
62148 var areaRing = +areaRingSum;
62149 areaSum.add(areaRing < 0 ? _math_js__WEBPACK_IMPORTED_MODULE_2__.tau + areaRing : areaRing);
62150 this.lineStart = this.lineEnd = this.point = _noop_js__WEBPACK_IMPORTED_MODULE_1__["default"];
62151 },
62152 sphere: function() {
62153 areaSum.add(_math_js__WEBPACK_IMPORTED_MODULE_2__.tau);
62154 }
62155};
62156
62157function areaRingStart() {
62158 areaStream.point = areaPointFirst;
62159}
62160
62161function areaRingEnd() {
62162 areaPoint(lambda00, phi00);
62163}
62164
62165function areaPointFirst(lambda, phi) {
62166 areaStream.point = areaPoint;
62167 lambda00 = lambda, phi00 = phi;
62168 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_2__.radians, phi *= _math_js__WEBPACK_IMPORTED_MODULE_2__.radians;
62169 lambda0 = lambda, cosPhi0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_2__.cos)(phi = phi / 2 + _math_js__WEBPACK_IMPORTED_MODULE_2__.quarterPi), sinPhi0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_2__.sin)(phi);
62170}
62171
62172function areaPoint(lambda, phi) {
62173 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_2__.radians, phi *= _math_js__WEBPACK_IMPORTED_MODULE_2__.radians;
62174 phi = phi / 2 + _math_js__WEBPACK_IMPORTED_MODULE_2__.quarterPi; // half the angular distance from south pole
62175
62176 // Spherical excess E for a spherical triangle with vertices: south pole,
62177 // previous point, current point. Uses a formula derived from Cagnoli’s
62178 // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).
62179 var dLambda = lambda - lambda0,
62180 sdLambda = dLambda >= 0 ? 1 : -1,
62181 adLambda = sdLambda * dLambda,
62182 cosPhi = (0,_math_js__WEBPACK_IMPORTED_MODULE_2__.cos)(phi),
62183 sinPhi = (0,_math_js__WEBPACK_IMPORTED_MODULE_2__.sin)(phi),
62184 k = sinPhi0 * sinPhi,
62185 u = cosPhi0 * cosPhi + k * (0,_math_js__WEBPACK_IMPORTED_MODULE_2__.cos)(adLambda),
62186 v = k * sdLambda * (0,_math_js__WEBPACK_IMPORTED_MODULE_2__.sin)(adLambda);
62187 areaRingSum.add((0,_math_js__WEBPACK_IMPORTED_MODULE_2__.atan2)(v, u));
62188
62189 // Advance the previous points.
62190 lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;
62191}
62192
62193/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(object) {
62194 areaSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__.Adder();
62195 (0,_stream_js__WEBPACK_IMPORTED_MODULE_3__["default"])(object, areaStream);
62196 return areaSum * 2;
62197}
62198
62199
62200/***/ }),
62201
62202/***/ "./node_modules/d3-geo/src/bounds.js":
62203/*!*******************************************!*\
62204 !*** ./node_modules/d3-geo/src/bounds.js ***!
62205 \*******************************************/
62206/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
62207
62208"use strict";
62209__webpack_require__.r(__webpack_exports__);
62210/* harmony export */ __webpack_require__.d(__webpack_exports__, {
62211/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
62212/* harmony export */ });
62213/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/fsum.js");
62214/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./area.js */ "./node_modules/d3-geo/src/area.js");
62215/* harmony import */ var _cartesian_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cartesian.js */ "./node_modules/d3-geo/src/cartesian.js");
62216/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
62217/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./stream.js */ "./node_modules/d3-geo/src/stream.js");
62218
62219
62220
62221
62222
62223
62224var lambda0, phi0, lambda1, phi1, // bounds
62225 lambda2, // previous lambda-coordinate
62226 lambda00, phi00, // first point
62227 p0, // previous 3D point
62228 deltaSum,
62229 ranges,
62230 range;
62231
62232var boundsStream = {
62233 point: boundsPoint,
62234 lineStart: boundsLineStart,
62235 lineEnd: boundsLineEnd,
62236 polygonStart: function() {
62237 boundsStream.point = boundsRingPoint;
62238 boundsStream.lineStart = boundsRingStart;
62239 boundsStream.lineEnd = boundsRingEnd;
62240 deltaSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__.Adder();
62241 _area_js__WEBPACK_IMPORTED_MODULE_1__.areaStream.polygonStart();
62242 },
62243 polygonEnd: function() {
62244 _area_js__WEBPACK_IMPORTED_MODULE_1__.areaStream.polygonEnd();
62245 boundsStream.point = boundsPoint;
62246 boundsStream.lineStart = boundsLineStart;
62247 boundsStream.lineEnd = boundsLineEnd;
62248 if (_area_js__WEBPACK_IMPORTED_MODULE_1__.areaRingSum < 0) lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);
62249 else if (deltaSum > _math_js__WEBPACK_IMPORTED_MODULE_2__.epsilon) phi1 = 90;
62250 else if (deltaSum < -_math_js__WEBPACK_IMPORTED_MODULE_2__.epsilon) phi0 = -90;
62251 range[0] = lambda0, range[1] = lambda1;
62252 },
62253 sphere: function() {
62254 lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);
62255 }
62256};
62257
62258function boundsPoint(lambda, phi) {
62259 ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);
62260 if (phi < phi0) phi0 = phi;
62261 if (phi > phi1) phi1 = phi;
62262}
62263
62264function linePoint(lambda, phi) {
62265 var p = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesian)([lambda * _math_js__WEBPACK_IMPORTED_MODULE_2__.radians, phi * _math_js__WEBPACK_IMPORTED_MODULE_2__.radians]);
62266 if (p0) {
62267 var normal = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesianCross)(p0, p),
62268 equatorial = [normal[1], -normal[0], 0],
62269 inflection = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesianCross)(equatorial, normal);
62270 (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesianNormalizeInPlace)(inflection);
62271 inflection = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.spherical)(inflection);
62272 var delta = lambda - lambda2,
62273 sign = delta > 0 ? 1 : -1,
62274 lambdai = inflection[0] * _math_js__WEBPACK_IMPORTED_MODULE_2__.degrees * sign,
62275 phii,
62276 antimeridian = (0,_math_js__WEBPACK_IMPORTED_MODULE_2__.abs)(delta) > 180;
62277 if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {
62278 phii = inflection[1] * _math_js__WEBPACK_IMPORTED_MODULE_2__.degrees;
62279 if (phii > phi1) phi1 = phii;
62280 } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {
62281 phii = -inflection[1] * _math_js__WEBPACK_IMPORTED_MODULE_2__.degrees;
62282 if (phii < phi0) phi0 = phii;
62283 } else {
62284 if (phi < phi0) phi0 = phi;
62285 if (phi > phi1) phi1 = phi;
62286 }
62287 if (antimeridian) {
62288 if (lambda < lambda2) {
62289 if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;
62290 } else {
62291 if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;
62292 }
62293 } else {
62294 if (lambda1 >= lambda0) {
62295 if (lambda < lambda0) lambda0 = lambda;
62296 if (lambda > lambda1) lambda1 = lambda;
62297 } else {
62298 if (lambda > lambda2) {
62299 if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;
62300 } else {
62301 if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;
62302 }
62303 }
62304 }
62305 } else {
62306 ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);
62307 }
62308 if (phi < phi0) phi0 = phi;
62309 if (phi > phi1) phi1 = phi;
62310 p0 = p, lambda2 = lambda;
62311}
62312
62313function boundsLineStart() {
62314 boundsStream.point = linePoint;
62315}
62316
62317function boundsLineEnd() {
62318 range[0] = lambda0, range[1] = lambda1;
62319 boundsStream.point = boundsPoint;
62320 p0 = null;
62321}
62322
62323function boundsRingPoint(lambda, phi) {
62324 if (p0) {
62325 var delta = lambda - lambda2;
62326 deltaSum.add((0,_math_js__WEBPACK_IMPORTED_MODULE_2__.abs)(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);
62327 } else {
62328 lambda00 = lambda, phi00 = phi;
62329 }
62330 _area_js__WEBPACK_IMPORTED_MODULE_1__.areaStream.point(lambda, phi);
62331 linePoint(lambda, phi);
62332}
62333
62334function boundsRingStart() {
62335 _area_js__WEBPACK_IMPORTED_MODULE_1__.areaStream.lineStart();
62336}
62337
62338function boundsRingEnd() {
62339 boundsRingPoint(lambda00, phi00);
62340 _area_js__WEBPACK_IMPORTED_MODULE_1__.areaStream.lineEnd();
62341 if ((0,_math_js__WEBPACK_IMPORTED_MODULE_2__.abs)(deltaSum) > _math_js__WEBPACK_IMPORTED_MODULE_2__.epsilon) lambda0 = -(lambda1 = 180);
62342 range[0] = lambda0, range[1] = lambda1;
62343 p0 = null;
62344}
62345
62346// Finds the left-right distance between two longitudes.
62347// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want
62348// the distance between ±180° to be 360°.
62349function angle(lambda0, lambda1) {
62350 return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;
62351}
62352
62353function rangeCompare(a, b) {
62354 return a[0] - b[0];
62355}
62356
62357function rangeContains(range, x) {
62358 return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;
62359}
62360
62361/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(feature) {
62362 var i, n, a, b, merged, deltaMax, delta;
62363
62364 phi1 = lambda1 = -(lambda0 = phi0 = Infinity);
62365 ranges = [];
62366 (0,_stream_js__WEBPACK_IMPORTED_MODULE_4__["default"])(feature, boundsStream);
62367
62368 // First, sort ranges by their minimum longitudes.
62369 if (n = ranges.length) {
62370 ranges.sort(rangeCompare);
62371
62372 // Then, merge any ranges that overlap.
62373 for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {
62374 b = ranges[i];
62375 if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {
62376 if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];
62377 if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];
62378 } else {
62379 merged.push(a = b);
62380 }
62381 }
62382
62383 // Finally, find the largest gap between the merged ranges.
62384 // The final bounding box will be the inverse of this gap.
62385 for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {
62386 b = merged[i];
62387 if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0 = b[0], lambda1 = a[1];
62388 }
62389 }
62390
62391 ranges = range = null;
62392
62393 return lambda0 === Infinity || phi0 === Infinity
62394 ? [[NaN, NaN], [NaN, NaN]]
62395 : [[lambda0, phi0], [lambda1, phi1]];
62396}
62397
62398
62399/***/ }),
62400
62401/***/ "./node_modules/d3-geo/src/cartesian.js":
62402/*!**********************************************!*\
62403 !*** ./node_modules/d3-geo/src/cartesian.js ***!
62404 \**********************************************/
62405/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
62406
62407"use strict";
62408__webpack_require__.r(__webpack_exports__);
62409/* harmony export */ __webpack_require__.d(__webpack_exports__, {
62410/* harmony export */ "cartesian": () => (/* binding */ cartesian),
62411/* harmony export */ "cartesianAddInPlace": () => (/* binding */ cartesianAddInPlace),
62412/* harmony export */ "cartesianCross": () => (/* binding */ cartesianCross),
62413/* harmony export */ "cartesianDot": () => (/* binding */ cartesianDot),
62414/* harmony export */ "cartesianNormalizeInPlace": () => (/* binding */ cartesianNormalizeInPlace),
62415/* harmony export */ "cartesianScale": () => (/* binding */ cartesianScale),
62416/* harmony export */ "spherical": () => (/* binding */ spherical)
62417/* harmony export */ });
62418/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
62419
62420
62421function spherical(cartesian) {
62422 return [(0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(cartesian[1], cartesian[0]), (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.asin)(cartesian[2])];
62423}
62424
62425function cartesian(spherical) {
62426 var lambda = spherical[0], phi = spherical[1], cosPhi = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(phi);
62427 return [cosPhi * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(lambda), cosPhi * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(lambda), (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(phi)];
62428}
62429
62430function cartesianDot(a, b) {
62431 return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
62432}
62433
62434function cartesianCross(a, b) {
62435 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]];
62436}
62437
62438// TODO return a
62439function cartesianAddInPlace(a, b) {
62440 a[0] += b[0], a[1] += b[1], a[2] += b[2];
62441}
62442
62443function cartesianScale(vector, k) {
62444 return [vector[0] * k, vector[1] * k, vector[2] * k];
62445}
62446
62447// TODO return d
62448function cartesianNormalizeInPlace(d) {
62449 var l = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
62450 d[0] /= l, d[1] /= l, d[2] /= l;
62451}
62452
62453
62454/***/ }),
62455
62456/***/ "./node_modules/d3-geo/src/centroid.js":
62457/*!*********************************************!*\
62458 !*** ./node_modules/d3-geo/src/centroid.js ***!
62459 \*********************************************/
62460/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
62461
62462"use strict";
62463__webpack_require__.r(__webpack_exports__);
62464/* harmony export */ __webpack_require__.d(__webpack_exports__, {
62465/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
62466/* harmony export */ });
62467/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/fsum.js");
62468/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
62469/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./noop.js */ "./node_modules/d3-geo/src/noop.js");
62470/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./stream.js */ "./node_modules/d3-geo/src/stream.js");
62471
62472
62473
62474
62475
62476var W0, W1,
62477 X0, Y0, Z0,
62478 X1, Y1, Z1,
62479 X2, Y2, Z2,
62480 lambda00, phi00, // first point
62481 x0, y0, z0; // previous point
62482
62483var centroidStream = {
62484 sphere: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
62485 point: centroidPoint,
62486 lineStart: centroidLineStart,
62487 lineEnd: centroidLineEnd,
62488 polygonStart: function() {
62489 centroidStream.lineStart = centroidRingStart;
62490 centroidStream.lineEnd = centroidRingEnd;
62491 },
62492 polygonEnd: function() {
62493 centroidStream.lineStart = centroidLineStart;
62494 centroidStream.lineEnd = centroidLineEnd;
62495 }
62496};
62497
62498// Arithmetic mean of Cartesian vectors.
62499function centroidPoint(lambda, phi) {
62500 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__.radians, phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__.radians;
62501 var cosPhi = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(phi);
62502 centroidPointCartesian(cosPhi * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(lambda), cosPhi * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(lambda), (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(phi));
62503}
62504
62505function centroidPointCartesian(x, y, z) {
62506 ++W0;
62507 X0 += (x - X0) / W0;
62508 Y0 += (y - Y0) / W0;
62509 Z0 += (z - Z0) / W0;
62510}
62511
62512function centroidLineStart() {
62513 centroidStream.point = centroidLinePointFirst;
62514}
62515
62516function centroidLinePointFirst(lambda, phi) {
62517 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__.radians, phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__.radians;
62518 var cosPhi = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(phi);
62519 x0 = cosPhi * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(lambda);
62520 y0 = cosPhi * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(lambda);
62521 z0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(phi);
62522 centroidStream.point = centroidLinePoint;
62523 centroidPointCartesian(x0, y0, z0);
62524}
62525
62526function centroidLinePoint(lambda, phi) {
62527 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__.radians, phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__.radians;
62528 var cosPhi = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(phi),
62529 x = cosPhi * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(lambda),
62530 y = cosPhi * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(lambda),
62531 z = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(phi),
62532 w = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.atan2)((0,_math_js__WEBPACK_IMPORTED_MODULE_1__.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);
62533 W1 += w;
62534 X1 += w * (x0 + (x0 = x));
62535 Y1 += w * (y0 + (y0 = y));
62536 Z1 += w * (z0 + (z0 = z));
62537 centroidPointCartesian(x0, y0, z0);
62538}
62539
62540function centroidLineEnd() {
62541 centroidStream.point = centroidPoint;
62542}
62543
62544// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,
62545// J. Applied Mechanics 42, 239 (1975).
62546function centroidRingStart() {
62547 centroidStream.point = centroidRingPointFirst;
62548}
62549
62550function centroidRingEnd() {
62551 centroidRingPoint(lambda00, phi00);
62552 centroidStream.point = centroidPoint;
62553}
62554
62555function centroidRingPointFirst(lambda, phi) {
62556 lambda00 = lambda, phi00 = phi;
62557 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__.radians, phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__.radians;
62558 centroidStream.point = centroidRingPoint;
62559 var cosPhi = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(phi);
62560 x0 = cosPhi * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(lambda);
62561 y0 = cosPhi * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(lambda);
62562 z0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(phi);
62563 centroidPointCartesian(x0, y0, z0);
62564}
62565
62566function centroidRingPoint(lambda, phi) {
62567 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__.radians, phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__.radians;
62568 var cosPhi = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(phi),
62569 x = cosPhi * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(lambda),
62570 y = cosPhi * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(lambda),
62571 z = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(phi),
62572 cx = y0 * z - z0 * y,
62573 cy = z0 * x - x0 * z,
62574 cz = x0 * y - y0 * x,
62575 m = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.hypot)(cx, cy, cz),
62576 w = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.asin)(m), // line weight = angle
62577 v = m && -w / m; // area weight multiplier
62578 X2.add(v * cx);
62579 Y2.add(v * cy);
62580 Z2.add(v * cz);
62581 W1 += w;
62582 X1 += w * (x0 + (x0 = x));
62583 Y1 += w * (y0 + (y0 = y));
62584 Z1 += w * (z0 + (z0 = z));
62585 centroidPointCartesian(x0, y0, z0);
62586}
62587
62588/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(object) {
62589 W0 = W1 =
62590 X0 = Y0 = Z0 =
62591 X1 = Y1 = Z1 = 0;
62592 X2 = new d3_array__WEBPACK_IMPORTED_MODULE_2__.Adder();
62593 Y2 = new d3_array__WEBPACK_IMPORTED_MODULE_2__.Adder();
62594 Z2 = new d3_array__WEBPACK_IMPORTED_MODULE_2__.Adder();
62595 (0,_stream_js__WEBPACK_IMPORTED_MODULE_3__["default"])(object, centroidStream);
62596
62597 var x = +X2,
62598 y = +Y2,
62599 z = +Z2,
62600 m = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.hypot)(x, y, z);
62601
62602 // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.
62603 if (m < _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon2) {
62604 x = X1, y = Y1, z = Z1;
62605 // If the feature has zero length, fall back to arithmetic mean of point vectors.
62606 if (W1 < _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon) x = X0, y = Y0, z = Z0;
62607 m = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.hypot)(x, y, z);
62608 // If the feature still has an undefined ccentroid, then return.
62609 if (m < _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon2) return [NaN, NaN];
62610 }
62611
62612 return [(0,_math_js__WEBPACK_IMPORTED_MODULE_1__.atan2)(y, x) * _math_js__WEBPACK_IMPORTED_MODULE_1__.degrees, (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.asin)(z / m) * _math_js__WEBPACK_IMPORTED_MODULE_1__.degrees];
62613}
62614
62615
62616/***/ }),
62617
62618/***/ "./node_modules/d3-geo/src/circle.js":
62619/*!*******************************************!*\
62620 !*** ./node_modules/d3-geo/src/circle.js ***!
62621 \*******************************************/
62622/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
62623
62624"use strict";
62625__webpack_require__.r(__webpack_exports__);
62626/* harmony export */ __webpack_require__.d(__webpack_exports__, {
62627/* harmony export */ "circleStream": () => (/* binding */ circleStream),
62628/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
62629/* harmony export */ });
62630/* harmony import */ var _cartesian_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cartesian.js */ "./node_modules/d3-geo/src/cartesian.js");
62631/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-geo/src/constant.js");
62632/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
62633/* harmony import */ var _rotation_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rotation.js */ "./node_modules/d3-geo/src/rotation.js");
62634
62635
62636
62637
62638
62639// Generates a circle centered at [0°, 0°], with a given radius and precision.
62640function circleStream(stream, radius, delta, direction, t0, t1) {
62641 if (!delta) return;
62642 var cosRadius = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(radius),
62643 sinRadius = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(radius),
62644 step = direction * delta;
62645 if (t0 == null) {
62646 t0 = radius + direction * _math_js__WEBPACK_IMPORTED_MODULE_0__.tau;
62647 t1 = radius - step / 2;
62648 } else {
62649 t0 = circleRadius(cosRadius, t0);
62650 t1 = circleRadius(cosRadius, t1);
62651 if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * _math_js__WEBPACK_IMPORTED_MODULE_0__.tau;
62652 }
62653 for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {
62654 point = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_1__.spherical)([cosRadius, -sinRadius * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(t), -sinRadius * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(t)]);
62655 stream.point(point[0], point[1]);
62656 }
62657}
62658
62659// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].
62660function circleRadius(cosRadius, point) {
62661 point = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_1__.cartesian)(point), point[0] -= cosRadius;
62662 (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_1__.cartesianNormalizeInPlace)(point);
62663 var radius = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.acos)(-point[1]);
62664 return ((-point[2] < 0 ? -radius : radius) + _math_js__WEBPACK_IMPORTED_MODULE_0__.tau - _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) % _math_js__WEBPACK_IMPORTED_MODULE_0__.tau;
62665}
62666
62667/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
62668 var center = (0,_constant_js__WEBPACK_IMPORTED_MODULE_2__["default"])([0, 0]),
62669 radius = (0,_constant_js__WEBPACK_IMPORTED_MODULE_2__["default"])(90),
62670 precision = (0,_constant_js__WEBPACK_IMPORTED_MODULE_2__["default"])(6),
62671 ring,
62672 rotate,
62673 stream = {point: point};
62674
62675 function point(x, y) {
62676 ring.push(x = rotate(x, y));
62677 x[0] *= _math_js__WEBPACK_IMPORTED_MODULE_0__.degrees, x[1] *= _math_js__WEBPACK_IMPORTED_MODULE_0__.degrees;
62678 }
62679
62680 function circle() {
62681 var c = center.apply(this, arguments),
62682 r = radius.apply(this, arguments) * _math_js__WEBPACK_IMPORTED_MODULE_0__.radians,
62683 p = precision.apply(this, arguments) * _math_js__WEBPACK_IMPORTED_MODULE_0__.radians;
62684 ring = [];
62685 rotate = (0,_rotation_js__WEBPACK_IMPORTED_MODULE_3__.rotateRadians)(-c[0] * _math_js__WEBPACK_IMPORTED_MODULE_0__.radians, -c[1] * _math_js__WEBPACK_IMPORTED_MODULE_0__.radians, 0).invert;
62686 circleStream(stream, r, p, 1);
62687 c = {type: "Polygon", coordinates: [ring]};
62688 ring = rotate = null;
62689 return c;
62690 }
62691
62692 circle.center = function(_) {
62693 return arguments.length ? (center = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_2__["default"])([+_[0], +_[1]]), circle) : center;
62694 };
62695
62696 circle.radius = function(_) {
62697 return arguments.length ? (radius = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_2__["default"])(+_), circle) : radius;
62698 };
62699
62700 circle.precision = function(_) {
62701 return arguments.length ? (precision = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_2__["default"])(+_), circle) : precision;
62702 };
62703
62704 return circle;
62705}
62706
62707
62708/***/ }),
62709
62710/***/ "./node_modules/d3-geo/src/clip/antimeridian.js":
62711/*!******************************************************!*\
62712 !*** ./node_modules/d3-geo/src/clip/antimeridian.js ***!
62713 \******************************************************/
62714/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
62715
62716"use strict";
62717__webpack_require__.r(__webpack_exports__);
62718/* harmony export */ __webpack_require__.d(__webpack_exports__, {
62719/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
62720/* harmony export */ });
62721/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/clip/index.js");
62722/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
62723
62724
62725
62726/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(
62727 function() { return true; },
62728 clipAntimeridianLine,
62729 clipAntimeridianInterpolate,
62730 [-_math_js__WEBPACK_IMPORTED_MODULE_1__.pi, -_math_js__WEBPACK_IMPORTED_MODULE_1__.halfPi]
62731));
62732
62733// Takes a line and cuts into visible segments. Return values: 0 - there were
62734// intersections or the line was empty; 1 - no intersections; 2 - there were
62735// intersections, and the first and last segments should be rejoined.
62736function clipAntimeridianLine(stream) {
62737 var lambda0 = NaN,
62738 phi0 = NaN,
62739 sign0 = NaN,
62740 clean; // no intersections
62741
62742 return {
62743 lineStart: function() {
62744 stream.lineStart();
62745 clean = 1;
62746 },
62747 point: function(lambda1, phi1) {
62748 var sign1 = lambda1 > 0 ? _math_js__WEBPACK_IMPORTED_MODULE_1__.pi : -_math_js__WEBPACK_IMPORTED_MODULE_1__.pi,
62749 delta = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.abs)(lambda1 - lambda0);
62750 if ((0,_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
62751 stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? _math_js__WEBPACK_IMPORTED_MODULE_1__.halfPi : -_math_js__WEBPACK_IMPORTED_MODULE_1__.halfPi);
62752 stream.point(sign0, phi0);
62753 stream.lineEnd();
62754 stream.lineStart();
62755 stream.point(sign1, phi0);
62756 stream.point(lambda1, phi0);
62757 clean = 0;
62758 } else if (sign0 !== sign1 && delta >= _math_js__WEBPACK_IMPORTED_MODULE_1__.pi) { // line crosses antimeridian
62759 if ((0,_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
62760 if ((0,_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;
62761 phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);
62762 stream.point(sign0, phi0);
62763 stream.lineEnd();
62764 stream.lineStart();
62765 stream.point(sign1, phi0);
62766 clean = 0;
62767 }
62768 stream.point(lambda0 = lambda1, phi0 = phi1);
62769 sign0 = sign1;
62770 },
62771 lineEnd: function() {
62772 stream.lineEnd();
62773 lambda0 = phi0 = NaN;
62774 },
62775 clean: function() {
62776 return 2 - clean; // if intersections, rejoin first and last segments
62777 }
62778 };
62779}
62780
62781function clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {
62782 var cosPhi0,
62783 cosPhi1,
62784 sinLambda0Lambda1 = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(lambda0 - lambda1);
62785 return (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.abs)(sinLambda0Lambda1) > _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon
62786 ? (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.atan)(((0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(phi0) * (cosPhi1 = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(phi1)) * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(lambda1)
62787 - (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(phi1) * (cosPhi0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(phi0)) * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(lambda0))
62788 / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))
62789 : (phi0 + phi1) / 2;
62790}
62791
62792function clipAntimeridianInterpolate(from, to, direction, stream) {
62793 var phi;
62794 if (from == null) {
62795 phi = direction * _math_js__WEBPACK_IMPORTED_MODULE_1__.halfPi;
62796 stream.point(-_math_js__WEBPACK_IMPORTED_MODULE_1__.pi, phi);
62797 stream.point(0, phi);
62798 stream.point(_math_js__WEBPACK_IMPORTED_MODULE_1__.pi, phi);
62799 stream.point(_math_js__WEBPACK_IMPORTED_MODULE_1__.pi, 0);
62800 stream.point(_math_js__WEBPACK_IMPORTED_MODULE_1__.pi, -phi);
62801 stream.point(0, -phi);
62802 stream.point(-_math_js__WEBPACK_IMPORTED_MODULE_1__.pi, -phi);
62803 stream.point(-_math_js__WEBPACK_IMPORTED_MODULE_1__.pi, 0);
62804 stream.point(-_math_js__WEBPACK_IMPORTED_MODULE_1__.pi, phi);
62805 } else if ((0,_math_js__WEBPACK_IMPORTED_MODULE_1__.abs)(from[0] - to[0]) > _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon) {
62806 var lambda = from[0] < to[0] ? _math_js__WEBPACK_IMPORTED_MODULE_1__.pi : -_math_js__WEBPACK_IMPORTED_MODULE_1__.pi;
62807 phi = direction * lambda / 2;
62808 stream.point(-lambda, phi);
62809 stream.point(0, phi);
62810 stream.point(lambda, phi);
62811 } else {
62812 stream.point(to[0], to[1]);
62813 }
62814}
62815
62816
62817/***/ }),
62818
62819/***/ "./node_modules/d3-geo/src/clip/buffer.js":
62820/*!************************************************!*\
62821 !*** ./node_modules/d3-geo/src/clip/buffer.js ***!
62822 \************************************************/
62823/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
62824
62825"use strict";
62826__webpack_require__.r(__webpack_exports__);
62827/* harmony export */ __webpack_require__.d(__webpack_exports__, {
62828/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
62829/* harmony export */ });
62830/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-geo/src/noop.js");
62831
62832
62833/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
62834 var lines = [],
62835 line;
62836 return {
62837 point: function(x, y, m) {
62838 line.push([x, y, m]);
62839 },
62840 lineStart: function() {
62841 lines.push(line = []);
62842 },
62843 lineEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
62844 rejoin: function() {
62845 if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));
62846 },
62847 result: function() {
62848 var result = lines;
62849 lines = [];
62850 line = null;
62851 return result;
62852 }
62853 };
62854}
62855
62856
62857/***/ }),
62858
62859/***/ "./node_modules/d3-geo/src/clip/circle.js":
62860/*!************************************************!*\
62861 !*** ./node_modules/d3-geo/src/clip/circle.js ***!
62862 \************************************************/
62863/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
62864
62865"use strict";
62866__webpack_require__.r(__webpack_exports__);
62867/* harmony export */ __webpack_require__.d(__webpack_exports__, {
62868/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
62869/* harmony export */ });
62870/* harmony import */ var _cartesian_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../cartesian.js */ "./node_modules/d3-geo/src/cartesian.js");
62871/* harmony import */ var _circle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../circle.js */ "./node_modules/d3-geo/src/circle.js");
62872/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
62873/* harmony import */ var _pointEqual_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../pointEqual.js */ "./node_modules/d3-geo/src/pointEqual.js");
62874/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/clip/index.js");
62875
62876
62877
62878
62879
62880
62881/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(radius) {
62882 var cr = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(radius),
62883 delta = 6 * _math_js__WEBPACK_IMPORTED_MODULE_0__.radians,
62884 smallRadius = cr > 0,
62885 notHemisphere = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(cr) > _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon; // TODO optimise for this common case
62886
62887 function interpolate(from, to, direction, stream) {
62888 (0,_circle_js__WEBPACK_IMPORTED_MODULE_1__.circleStream)(stream, radius, delta, direction, from, to);
62889 }
62890
62891 function visible(lambda, phi) {
62892 return (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(lambda) * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(phi) > cr;
62893 }
62894
62895 // Takes a line and cuts into visible segments. Return values used for polygon
62896 // clipping: 0 - there were intersections or the line was empty; 1 - no
62897 // intersections 2 - there were intersections, and the first and last segments
62898 // should be rejoined.
62899 function clipLine(stream) {
62900 var point0, // previous point
62901 c0, // code for previous point
62902 v0, // visibility of previous point
62903 v00, // visibility of first point
62904 clean; // no intersections
62905 return {
62906 lineStart: function() {
62907 v00 = v0 = false;
62908 clean = 1;
62909 },
62910 point: function(lambda, phi) {
62911 var point1 = [lambda, phi],
62912 point2,
62913 v = visible(lambda, phi),
62914 c = smallRadius
62915 ? v ? 0 : code(lambda, phi)
62916 : v ? code(lambda + (lambda < 0 ? _math_js__WEBPACK_IMPORTED_MODULE_0__.pi : -_math_js__WEBPACK_IMPORTED_MODULE_0__.pi), phi) : 0;
62917 if (!point0 && (v00 = v0 = v)) stream.lineStart();
62918 if (v !== v0) {
62919 point2 = intersect(point0, point1);
62920 if (!point2 || (0,_pointEqual_js__WEBPACK_IMPORTED_MODULE_2__["default"])(point0, point2) || (0,_pointEqual_js__WEBPACK_IMPORTED_MODULE_2__["default"])(point1, point2))
62921 point1[2] = 1;
62922 }
62923 if (v !== v0) {
62924 clean = 0;
62925 if (v) {
62926 // outside going in
62927 stream.lineStart();
62928 point2 = intersect(point1, point0);
62929 stream.point(point2[0], point2[1]);
62930 } else {
62931 // inside going out
62932 point2 = intersect(point0, point1);
62933 stream.point(point2[0], point2[1], 2);
62934 stream.lineEnd();
62935 }
62936 point0 = point2;
62937 } else if (notHemisphere && point0 && smallRadius ^ v) {
62938 var t;
62939 // If the codes for two points are different, or are both zero,
62940 // and there this segment intersects with the small circle.
62941 if (!(c & c0) && (t = intersect(point1, point0, true))) {
62942 clean = 0;
62943 if (smallRadius) {
62944 stream.lineStart();
62945 stream.point(t[0][0], t[0][1]);
62946 stream.point(t[1][0], t[1][1]);
62947 stream.lineEnd();
62948 } else {
62949 stream.point(t[1][0], t[1][1]);
62950 stream.lineEnd();
62951 stream.lineStart();
62952 stream.point(t[0][0], t[0][1], 3);
62953 }
62954 }
62955 }
62956 if (v && (!point0 || !(0,_pointEqual_js__WEBPACK_IMPORTED_MODULE_2__["default"])(point0, point1))) {
62957 stream.point(point1[0], point1[1]);
62958 }
62959 point0 = point1, v0 = v, c0 = c;
62960 },
62961 lineEnd: function() {
62962 if (v0) stream.lineEnd();
62963 point0 = null;
62964 },
62965 // Rejoin first and last segments if there were intersections and the first
62966 // and last points were visible.
62967 clean: function() {
62968 return clean | ((v00 && v0) << 1);
62969 }
62970 };
62971 }
62972
62973 // Intersects the great circle between a and b with the clip circle.
62974 function intersect(a, b, two) {
62975 var pa = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesian)(a),
62976 pb = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesian)(b);
62977
62978 // We have two planes, n1.p = d1 and n2.p = d2.
62979 // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).
62980 var n1 = [1, 0, 0], // normal
62981 n2 = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesianCross)(pa, pb),
62982 n2n2 = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesianDot)(n2, n2),
62983 n1n2 = n2[0], // cartesianDot(n1, n2),
62984 determinant = n2n2 - n1n2 * n1n2;
62985
62986 // Two polar points.
62987 if (!determinant) return !two && a;
62988
62989 var c1 = cr * n2n2 / determinant,
62990 c2 = -cr * n1n2 / determinant,
62991 n1xn2 = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesianCross)(n1, n2),
62992 A = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesianScale)(n1, c1),
62993 B = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesianScale)(n2, c2);
62994 (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesianAddInPlace)(A, B);
62995
62996 // Solve |p(t)|^2 = 1.
62997 var u = n1xn2,
62998 w = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesianDot)(A, u),
62999 uu = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesianDot)(u, u),
63000 t2 = w * w - uu * ((0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesianDot)(A, A) - 1);
63001
63002 if (t2 < 0) return;
63003
63004 var t = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)(t2),
63005 q = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesianScale)(u, (-w - t) / uu);
63006 (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesianAddInPlace)(q, A);
63007 q = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.spherical)(q);
63008
63009 if (!two) return q;
63010
63011 // Two intersection points.
63012 var lambda0 = a[0],
63013 lambda1 = b[0],
63014 phi0 = a[1],
63015 phi1 = b[1],
63016 z;
63017
63018 if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;
63019
63020 var delta = lambda1 - lambda0,
63021 polar = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(delta - _math_js__WEBPACK_IMPORTED_MODULE_0__.pi) < _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon,
63022 meridian = polar || delta < _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon;
63023
63024 if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;
63025
63026 // Check that the first point is between a and b.
63027 if (meridian
63028 ? polar
63029 ? phi0 + phi1 > 0 ^ q[1] < ((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(q[0] - lambda0) < _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon ? phi0 : phi1)
63030 : phi0 <= q[1] && q[1] <= phi1
63031 : delta > _math_js__WEBPACK_IMPORTED_MODULE_0__.pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {
63032 var q1 = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesianScale)(u, (-w + t) / uu);
63033 (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.cartesianAddInPlace)(q1, A);
63034 return [q, (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_3__.spherical)(q1)];
63035 }
63036 }
63037
63038 // Generates a 4-bit vector representing the location of a point relative to
63039 // the small circle's bounding box.
63040 function code(lambda, phi) {
63041 var r = smallRadius ? radius : _math_js__WEBPACK_IMPORTED_MODULE_0__.pi - radius,
63042 code = 0;
63043 if (lambda < -r) code |= 1; // left
63044 else if (lambda > r) code |= 2; // right
63045 if (phi < -r) code |= 4; // below
63046 else if (phi > r) code |= 8; // above
63047 return code;
63048 }
63049
63050 return (0,_index_js__WEBPACK_IMPORTED_MODULE_4__["default"])(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-_math_js__WEBPACK_IMPORTED_MODULE_0__.pi, radius - _math_js__WEBPACK_IMPORTED_MODULE_0__.pi]);
63051}
63052
63053
63054/***/ }),
63055
63056/***/ "./node_modules/d3-geo/src/clip/extent.js":
63057/*!************************************************!*\
63058 !*** ./node_modules/d3-geo/src/clip/extent.js ***!
63059 \************************************************/
63060/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
63061
63062"use strict";
63063__webpack_require__.r(__webpack_exports__);
63064/* harmony export */ __webpack_require__.d(__webpack_exports__, {
63065/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
63066/* harmony export */ });
63067/* harmony import */ var _rectangle_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rectangle.js */ "./node_modules/d3-geo/src/clip/rectangle.js");
63068
63069
63070/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
63071 var x0 = 0,
63072 y0 = 0,
63073 x1 = 960,
63074 y1 = 500,
63075 cache,
63076 cacheStream,
63077 clip;
63078
63079 return clip = {
63080 stream: function(stream) {
63081 return cache && cacheStream === stream ? cache : cache = (0,_rectangle_js__WEBPACK_IMPORTED_MODULE_0__["default"])(x0, y0, x1, y1)(cacheStream = stream);
63082 },
63083 extent: function(_) {
63084 return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];
63085 }
63086 };
63087}
63088
63089
63090/***/ }),
63091
63092/***/ "./node_modules/d3-geo/src/clip/index.js":
63093/*!***********************************************!*\
63094 !*** ./node_modules/d3-geo/src/clip/index.js ***!
63095 \***********************************************/
63096/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
63097
63098"use strict";
63099__webpack_require__.r(__webpack_exports__);
63100/* harmony export */ __webpack_require__.d(__webpack_exports__, {
63101/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
63102/* harmony export */ });
63103/* harmony import */ var _buffer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./buffer.js */ "./node_modules/d3-geo/src/clip/buffer.js");
63104/* harmony import */ var _rejoin_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rejoin.js */ "./node_modules/d3-geo/src/clip/rejoin.js");
63105/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
63106/* harmony import */ var _polygonContains_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../polygonContains.js */ "./node_modules/d3-geo/src/polygonContains.js");
63107/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/merge.js");
63108
63109
63110
63111
63112
63113
63114/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(pointVisible, clipLine, interpolate, start) {
63115 return function(sink) {
63116 var line = clipLine(sink),
63117 ringBuffer = (0,_buffer_js__WEBPACK_IMPORTED_MODULE_0__["default"])(),
63118 ringSink = clipLine(ringBuffer),
63119 polygonStarted = false,
63120 polygon,
63121 segments,
63122 ring;
63123
63124 var clip = {
63125 point: point,
63126 lineStart: lineStart,
63127 lineEnd: lineEnd,
63128 polygonStart: function() {
63129 clip.point = pointRing;
63130 clip.lineStart = ringStart;
63131 clip.lineEnd = ringEnd;
63132 segments = [];
63133 polygon = [];
63134 },
63135 polygonEnd: function() {
63136 clip.point = point;
63137 clip.lineStart = lineStart;
63138 clip.lineEnd = lineEnd;
63139 segments = (0,d3_array__WEBPACK_IMPORTED_MODULE_1__["default"])(segments);
63140 var startInside = (0,_polygonContains_js__WEBPACK_IMPORTED_MODULE_2__["default"])(polygon, start);
63141 if (segments.length) {
63142 if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
63143 (0,_rejoin_js__WEBPACK_IMPORTED_MODULE_3__["default"])(segments, compareIntersection, startInside, interpolate, sink);
63144 } else if (startInside) {
63145 if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
63146 sink.lineStart();
63147 interpolate(null, null, 1, sink);
63148 sink.lineEnd();
63149 }
63150 if (polygonStarted) sink.polygonEnd(), polygonStarted = false;
63151 segments = polygon = null;
63152 },
63153 sphere: function() {
63154 sink.polygonStart();
63155 sink.lineStart();
63156 interpolate(null, null, 1, sink);
63157 sink.lineEnd();
63158 sink.polygonEnd();
63159 }
63160 };
63161
63162 function point(lambda, phi) {
63163 if (pointVisible(lambda, phi)) sink.point(lambda, phi);
63164 }
63165
63166 function pointLine(lambda, phi) {
63167 line.point(lambda, phi);
63168 }
63169
63170 function lineStart() {
63171 clip.point = pointLine;
63172 line.lineStart();
63173 }
63174
63175 function lineEnd() {
63176 clip.point = point;
63177 line.lineEnd();
63178 }
63179
63180 function pointRing(lambda, phi) {
63181 ring.push([lambda, phi]);
63182 ringSink.point(lambda, phi);
63183 }
63184
63185 function ringStart() {
63186 ringSink.lineStart();
63187 ring = [];
63188 }
63189
63190 function ringEnd() {
63191 pointRing(ring[0][0], ring[0][1]);
63192 ringSink.lineEnd();
63193
63194 var clean = ringSink.clean(),
63195 ringSegments = ringBuffer.result(),
63196 i, n = ringSegments.length, m,
63197 segment,
63198 point;
63199
63200 ring.pop();
63201 polygon.push(ring);
63202 ring = null;
63203
63204 if (!n) return;
63205
63206 // No intersections.
63207 if (clean & 1) {
63208 segment = ringSegments[0];
63209 if ((m = segment.length - 1) > 0) {
63210 if (!polygonStarted) sink.polygonStart(), polygonStarted = true;
63211 sink.lineStart();
63212 for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);
63213 sink.lineEnd();
63214 }
63215 return;
63216 }
63217
63218 // Rejoin connected segments.
63219 // TODO reuse ringBuffer.rejoin()?
63220 if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
63221
63222 segments.push(ringSegments.filter(validSegment));
63223 }
63224
63225 return clip;
63226 };
63227}
63228
63229function validSegment(segment) {
63230 return segment.length > 1;
63231}
63232
63233// Intersections are sorted along the clip edge. For both antimeridian cutting
63234// and circle clipping, the same comparison is used.
63235function compareIntersection(a, b) {
63236 return ((a = a.x)[0] < 0 ? a[1] - _math_js__WEBPACK_IMPORTED_MODULE_4__.halfPi - _math_js__WEBPACK_IMPORTED_MODULE_4__.epsilon : _math_js__WEBPACK_IMPORTED_MODULE_4__.halfPi - a[1])
63237 - ((b = b.x)[0] < 0 ? b[1] - _math_js__WEBPACK_IMPORTED_MODULE_4__.halfPi - _math_js__WEBPACK_IMPORTED_MODULE_4__.epsilon : _math_js__WEBPACK_IMPORTED_MODULE_4__.halfPi - b[1]);
63238}
63239
63240
63241/***/ }),
63242
63243/***/ "./node_modules/d3-geo/src/clip/line.js":
63244/*!**********************************************!*\
63245 !*** ./node_modules/d3-geo/src/clip/line.js ***!
63246 \**********************************************/
63247/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
63248
63249"use strict";
63250__webpack_require__.r(__webpack_exports__);
63251/* harmony export */ __webpack_require__.d(__webpack_exports__, {
63252/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
63253/* harmony export */ });
63254/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b, x0, y0, x1, y1) {
63255 var ax = a[0],
63256 ay = a[1],
63257 bx = b[0],
63258 by = b[1],
63259 t0 = 0,
63260 t1 = 1,
63261 dx = bx - ax,
63262 dy = by - ay,
63263 r;
63264
63265 r = x0 - ax;
63266 if (!dx && r > 0) return;
63267 r /= dx;
63268 if (dx < 0) {
63269 if (r < t0) return;
63270 if (r < t1) t1 = r;
63271 } else if (dx > 0) {
63272 if (r > t1) return;
63273 if (r > t0) t0 = r;
63274 }
63275
63276 r = x1 - ax;
63277 if (!dx && r < 0) return;
63278 r /= dx;
63279 if (dx < 0) {
63280 if (r > t1) return;
63281 if (r > t0) t0 = r;
63282 } else if (dx > 0) {
63283 if (r < t0) return;
63284 if (r < t1) t1 = r;
63285 }
63286
63287 r = y0 - ay;
63288 if (!dy && r > 0) return;
63289 r /= dy;
63290 if (dy < 0) {
63291 if (r < t0) return;
63292 if (r < t1) t1 = r;
63293 } else if (dy > 0) {
63294 if (r > t1) return;
63295 if (r > t0) t0 = r;
63296 }
63297
63298 r = y1 - ay;
63299 if (!dy && r < 0) return;
63300 r /= dy;
63301 if (dy < 0) {
63302 if (r > t1) return;
63303 if (r > t0) t0 = r;
63304 } else if (dy > 0) {
63305 if (r < t0) return;
63306 if (r < t1) t1 = r;
63307 }
63308
63309 if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;
63310 if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;
63311 return true;
63312}
63313
63314
63315/***/ }),
63316
63317/***/ "./node_modules/d3-geo/src/clip/rectangle.js":
63318/*!***************************************************!*\
63319 !*** ./node_modules/d3-geo/src/clip/rectangle.js ***!
63320 \***************************************************/
63321/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
63322
63323"use strict";
63324__webpack_require__.r(__webpack_exports__);
63325/* harmony export */ __webpack_require__.d(__webpack_exports__, {
63326/* harmony export */ "default": () => (/* binding */ clipRectangle)
63327/* harmony export */ });
63328/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
63329/* harmony import */ var _buffer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./buffer.js */ "./node_modules/d3-geo/src/clip/buffer.js");
63330/* harmony import */ var _line_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./line.js */ "./node_modules/d3-geo/src/clip/line.js");
63331/* harmony import */ var _rejoin_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rejoin.js */ "./node_modules/d3-geo/src/clip/rejoin.js");
63332/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/merge.js");
63333
63334
63335
63336
63337
63338
63339var clipMax = 1e9, clipMin = -clipMax;
63340
63341// TODO Use d3-polygon’s polygonContains here for the ring check?
63342// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?
63343
63344function clipRectangle(x0, y0, x1, y1) {
63345
63346 function visible(x, y) {
63347 return x0 <= x && x <= x1 && y0 <= y && y <= y1;
63348 }
63349
63350 function interpolate(from, to, direction, stream) {
63351 var a = 0, a1 = 0;
63352 if (from == null
63353 || (a = corner(from, direction)) !== (a1 = corner(to, direction))
63354 || comparePoint(from, to) < 0 ^ direction > 0) {
63355 do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);
63356 while ((a = (a + direction + 4) % 4) !== a1);
63357 } else {
63358 stream.point(to[0], to[1]);
63359 }
63360 }
63361
63362 function corner(p, direction) {
63363 return (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(p[0] - x0) < _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon ? direction > 0 ? 0 : 3
63364 : (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(p[0] - x1) < _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon ? direction > 0 ? 2 : 1
63365 : (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(p[1] - y0) < _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon ? direction > 0 ? 1 : 0
63366 : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon
63367 }
63368
63369 function compareIntersection(a, b) {
63370 return comparePoint(a.x, b.x);
63371 }
63372
63373 function comparePoint(a, b) {
63374 var ca = corner(a, 1),
63375 cb = corner(b, 1);
63376 return ca !== cb ? ca - cb
63377 : ca === 0 ? b[1] - a[1]
63378 : ca === 1 ? a[0] - b[0]
63379 : ca === 2 ? a[1] - b[1]
63380 : b[0] - a[0];
63381 }
63382
63383 return function(stream) {
63384 var activeStream = stream,
63385 bufferStream = (0,_buffer_js__WEBPACK_IMPORTED_MODULE_1__["default"])(),
63386 segments,
63387 polygon,
63388 ring,
63389 x__, y__, v__, // first point
63390 x_, y_, v_, // previous point
63391 first,
63392 clean;
63393
63394 var clipStream = {
63395 point: point,
63396 lineStart: lineStart,
63397 lineEnd: lineEnd,
63398 polygonStart: polygonStart,
63399 polygonEnd: polygonEnd
63400 };
63401
63402 function point(x, y) {
63403 if (visible(x, y)) activeStream.point(x, y);
63404 }
63405
63406 function polygonInside() {
63407 var winding = 0;
63408
63409 for (var i = 0, n = polygon.length; i < n; ++i) {
63410 for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {
63411 a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];
63412 if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }
63413 else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }
63414 }
63415 }
63416
63417 return winding;
63418 }
63419
63420 // Buffer geometry within a polygon and then clip it en masse.
63421 function polygonStart() {
63422 activeStream = bufferStream, segments = [], polygon = [], clean = true;
63423 }
63424
63425 function polygonEnd() {
63426 var startInside = polygonInside(),
63427 cleanInside = clean && startInside,
63428 visible = (segments = (0,d3_array__WEBPACK_IMPORTED_MODULE_2__["default"])(segments)).length;
63429 if (cleanInside || visible) {
63430 stream.polygonStart();
63431 if (cleanInside) {
63432 stream.lineStart();
63433 interpolate(null, null, 1, stream);
63434 stream.lineEnd();
63435 }
63436 if (visible) {
63437 (0,_rejoin_js__WEBPACK_IMPORTED_MODULE_3__["default"])(segments, compareIntersection, startInside, interpolate, stream);
63438 }
63439 stream.polygonEnd();
63440 }
63441 activeStream = stream, segments = polygon = ring = null;
63442 }
63443
63444 function lineStart() {
63445 clipStream.point = linePoint;
63446 if (polygon) polygon.push(ring = []);
63447 first = true;
63448 v_ = false;
63449 x_ = y_ = NaN;
63450 }
63451
63452 // TODO rather than special-case polygons, simply handle them separately.
63453 // Ideally, coincident intersection points should be jittered to avoid
63454 // clipping issues.
63455 function lineEnd() {
63456 if (segments) {
63457 linePoint(x__, y__);
63458 if (v__ && v_) bufferStream.rejoin();
63459 segments.push(bufferStream.result());
63460 }
63461 clipStream.point = point;
63462 if (v_) activeStream.lineEnd();
63463 }
63464
63465 function linePoint(x, y) {
63466 var v = visible(x, y);
63467 if (polygon) ring.push([x, y]);
63468 if (first) {
63469 x__ = x, y__ = y, v__ = v;
63470 first = false;
63471 if (v) {
63472 activeStream.lineStart();
63473 activeStream.point(x, y);
63474 }
63475 } else {
63476 if (v && v_) activeStream.point(x, y);
63477 else {
63478 var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],
63479 b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];
63480 if ((0,_line_js__WEBPACK_IMPORTED_MODULE_4__["default"])(a, b, x0, y0, x1, y1)) {
63481 if (!v_) {
63482 activeStream.lineStart();
63483 activeStream.point(a[0], a[1]);
63484 }
63485 activeStream.point(b[0], b[1]);
63486 if (!v) activeStream.lineEnd();
63487 clean = false;
63488 } else if (v) {
63489 activeStream.lineStart();
63490 activeStream.point(x, y);
63491 clean = false;
63492 }
63493 }
63494 }
63495 x_ = x, y_ = y, v_ = v;
63496 }
63497
63498 return clipStream;
63499 };
63500}
63501
63502
63503/***/ }),
63504
63505/***/ "./node_modules/d3-geo/src/clip/rejoin.js":
63506/*!************************************************!*\
63507 !*** ./node_modules/d3-geo/src/clip/rejoin.js ***!
63508 \************************************************/
63509/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
63510
63511"use strict";
63512__webpack_require__.r(__webpack_exports__);
63513/* harmony export */ __webpack_require__.d(__webpack_exports__, {
63514/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
63515/* harmony export */ });
63516/* harmony import */ var _pointEqual_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../pointEqual.js */ "./node_modules/d3-geo/src/pointEqual.js");
63517/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
63518
63519
63520
63521function Intersection(point, points, other, entry) {
63522 this.x = point;
63523 this.z = points;
63524 this.o = other; // another intersection
63525 this.e = entry; // is an entry?
63526 this.v = false; // visited
63527 this.n = this.p = null; // next & previous
63528}
63529
63530// A generalized polygon clipping algorithm: given a polygon that has been cut
63531// into its visible line segments, and rejoins the segments by interpolating
63532// along the clip edge.
63533/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(segments, compareIntersection, startInside, interpolate, stream) {
63534 var subject = [],
63535 clip = [],
63536 i,
63537 n;
63538
63539 segments.forEach(function(segment) {
63540 if ((n = segment.length - 1) <= 0) return;
63541 var n, p0 = segment[0], p1 = segment[n], x;
63542
63543 if ((0,_pointEqual_js__WEBPACK_IMPORTED_MODULE_0__["default"])(p0, p1)) {
63544 if (!p0[2] && !p1[2]) {
63545 stream.lineStart();
63546 for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);
63547 stream.lineEnd();
63548 return;
63549 }
63550 // handle degenerate cases by moving the point
63551 p1[0] += 2 * _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon;
63552 }
63553
63554 subject.push(x = new Intersection(p0, segment, null, true));
63555 clip.push(x.o = new Intersection(p0, null, x, false));
63556 subject.push(x = new Intersection(p1, segment, null, false));
63557 clip.push(x.o = new Intersection(p1, null, x, true));
63558 });
63559
63560 if (!subject.length) return;
63561
63562 clip.sort(compareIntersection);
63563 link(subject);
63564 link(clip);
63565
63566 for (i = 0, n = clip.length; i < n; ++i) {
63567 clip[i].e = startInside = !startInside;
63568 }
63569
63570 var start = subject[0],
63571 points,
63572 point;
63573
63574 while (1) {
63575 // Find first unvisited intersection.
63576 var current = start,
63577 isSubject = true;
63578 while (current.v) if ((current = current.n) === start) return;
63579 points = current.z;
63580 stream.lineStart();
63581 do {
63582 current.v = current.o.v = true;
63583 if (current.e) {
63584 if (isSubject) {
63585 for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);
63586 } else {
63587 interpolate(current.x, current.n.x, 1, stream);
63588 }
63589 current = current.n;
63590 } else {
63591 if (isSubject) {
63592 points = current.p.z;
63593 for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);
63594 } else {
63595 interpolate(current.x, current.p.x, -1, stream);
63596 }
63597 current = current.p;
63598 }
63599 current = current.o;
63600 points = current.z;
63601 isSubject = !isSubject;
63602 } while (!current.v);
63603 stream.lineEnd();
63604 }
63605}
63606
63607function link(array) {
63608 if (!(n = array.length)) return;
63609 var n,
63610 i = 0,
63611 a = array[0],
63612 b;
63613 while (++i < n) {
63614 a.n = b = array[i];
63615 b.p = a;
63616 a = b;
63617 }
63618 a.n = b = array[0];
63619 b.p = a;
63620}
63621
63622
63623/***/ }),
63624
63625/***/ "./node_modules/d3-geo/src/compose.js":
63626/*!********************************************!*\
63627 !*** ./node_modules/d3-geo/src/compose.js ***!
63628 \********************************************/
63629/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
63630
63631"use strict";
63632__webpack_require__.r(__webpack_exports__);
63633/* harmony export */ __webpack_require__.d(__webpack_exports__, {
63634/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
63635/* harmony export */ });
63636/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {
63637
63638 function compose(x, y) {
63639 return x = a(x, y), b(x[0], x[1]);
63640 }
63641
63642 if (a.invert && b.invert) compose.invert = function(x, y) {
63643 return x = b.invert(x, y), x && a.invert(x[0], x[1]);
63644 };
63645
63646 return compose;
63647}
63648
63649
63650/***/ }),
63651
63652/***/ "./node_modules/d3-geo/src/constant.js":
63653/*!*********************************************!*\
63654 !*** ./node_modules/d3-geo/src/constant.js ***!
63655 \*********************************************/
63656/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
63657
63658"use strict";
63659__webpack_require__.r(__webpack_exports__);
63660/* harmony export */ __webpack_require__.d(__webpack_exports__, {
63661/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
63662/* harmony export */ });
63663/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x) {
63664 return function() {
63665 return x;
63666 };
63667}
63668
63669
63670/***/ }),
63671
63672/***/ "./node_modules/d3-geo/src/contains.js":
63673/*!*********************************************!*\
63674 !*** ./node_modules/d3-geo/src/contains.js ***!
63675 \*********************************************/
63676/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
63677
63678"use strict";
63679__webpack_require__.r(__webpack_exports__);
63680/* harmony export */ __webpack_require__.d(__webpack_exports__, {
63681/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
63682/* harmony export */ });
63683/* harmony import */ var _polygonContains_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./polygonContains.js */ "./node_modules/d3-geo/src/polygonContains.js");
63684/* harmony import */ var _distance_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./distance.js */ "./node_modules/d3-geo/src/distance.js");
63685/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
63686
63687
63688
63689
63690var containsObjectType = {
63691 Feature: function(object, point) {
63692 return containsGeometry(object.geometry, point);
63693 },
63694 FeatureCollection: function(object, point) {
63695 var features = object.features, i = -1, n = features.length;
63696 while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;
63697 return false;
63698 }
63699};
63700
63701var containsGeometryType = {
63702 Sphere: function() {
63703 return true;
63704 },
63705 Point: function(object, point) {
63706 return containsPoint(object.coordinates, point);
63707 },
63708 MultiPoint: function(object, point) {
63709 var coordinates = object.coordinates, i = -1, n = coordinates.length;
63710 while (++i < n) if (containsPoint(coordinates[i], point)) return true;
63711 return false;
63712 },
63713 LineString: function(object, point) {
63714 return containsLine(object.coordinates, point);
63715 },
63716 MultiLineString: function(object, point) {
63717 var coordinates = object.coordinates, i = -1, n = coordinates.length;
63718 while (++i < n) if (containsLine(coordinates[i], point)) return true;
63719 return false;
63720 },
63721 Polygon: function(object, point) {
63722 return containsPolygon(object.coordinates, point);
63723 },
63724 MultiPolygon: function(object, point) {
63725 var coordinates = object.coordinates, i = -1, n = coordinates.length;
63726 while (++i < n) if (containsPolygon(coordinates[i], point)) return true;
63727 return false;
63728 },
63729 GeometryCollection: function(object, point) {
63730 var geometries = object.geometries, i = -1, n = geometries.length;
63731 while (++i < n) if (containsGeometry(geometries[i], point)) return true;
63732 return false;
63733 }
63734};
63735
63736function containsGeometry(geometry, point) {
63737 return geometry && containsGeometryType.hasOwnProperty(geometry.type)
63738 ? containsGeometryType[geometry.type](geometry, point)
63739 : false;
63740}
63741
63742function containsPoint(coordinates, point) {
63743 return (0,_distance_js__WEBPACK_IMPORTED_MODULE_0__["default"])(coordinates, point) === 0;
63744}
63745
63746function containsLine(coordinates, point) {
63747 var ao, bo, ab;
63748 for (var i = 0, n = coordinates.length; i < n; i++) {
63749 bo = (0,_distance_js__WEBPACK_IMPORTED_MODULE_0__["default"])(coordinates[i], point);
63750 if (bo === 0) return true;
63751 if (i > 0) {
63752 ab = (0,_distance_js__WEBPACK_IMPORTED_MODULE_0__["default"])(coordinates[i], coordinates[i - 1]);
63753 if (
63754 ab > 0 &&
63755 ao <= ab &&
63756 bo <= ab &&
63757 (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon2 * ab
63758 )
63759 return true;
63760 }
63761 ao = bo;
63762 }
63763 return false;
63764}
63765
63766function containsPolygon(coordinates, point) {
63767 return !!(0,_polygonContains_js__WEBPACK_IMPORTED_MODULE_2__["default"])(coordinates.map(ringRadians), pointRadians(point));
63768}
63769
63770function ringRadians(ring) {
63771 return ring = ring.map(pointRadians), ring.pop(), ring;
63772}
63773
63774function pointRadians(point) {
63775 return [point[0] * _math_js__WEBPACK_IMPORTED_MODULE_1__.radians, point[1] * _math_js__WEBPACK_IMPORTED_MODULE_1__.radians];
63776}
63777
63778/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(object, point) {
63779 return (object && containsObjectType.hasOwnProperty(object.type)
63780 ? containsObjectType[object.type]
63781 : containsGeometry)(object, point);
63782}
63783
63784
63785/***/ }),
63786
63787/***/ "./node_modules/d3-geo/src/distance.js":
63788/*!*********************************************!*\
63789 !*** ./node_modules/d3-geo/src/distance.js ***!
63790 \*********************************************/
63791/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
63792
63793"use strict";
63794__webpack_require__.r(__webpack_exports__);
63795/* harmony export */ __webpack_require__.d(__webpack_exports__, {
63796/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
63797/* harmony export */ });
63798/* harmony import */ var _length_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./length.js */ "./node_modules/d3-geo/src/length.js");
63799
63800
63801var coordinates = [null, null],
63802 object = {type: "LineString", coordinates: coordinates};
63803
63804/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {
63805 coordinates[0] = a;
63806 coordinates[1] = b;
63807 return (0,_length_js__WEBPACK_IMPORTED_MODULE_0__["default"])(object);
63808}
63809
63810
63811/***/ }),
63812
63813/***/ "./node_modules/d3-geo/src/graticule.js":
63814/*!**********************************************!*\
63815 !*** ./node_modules/d3-geo/src/graticule.js ***!
63816 \**********************************************/
63817/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
63818
63819"use strict";
63820__webpack_require__.r(__webpack_exports__);
63821/* harmony export */ __webpack_require__.d(__webpack_exports__, {
63822/* harmony export */ "default": () => (/* binding */ graticule),
63823/* harmony export */ "graticule10": () => (/* binding */ graticule10)
63824/* harmony export */ });
63825/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/range.js");
63826/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
63827
63828
63829
63830function graticuleX(y0, y1, dy) {
63831 var y = (0,d3_array__WEBPACK_IMPORTED_MODULE_0__["default"])(y0, y1 - _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon, dy).concat(y1);
63832 return function(x) { return y.map(function(y) { return [x, y]; }); };
63833}
63834
63835function graticuleY(x0, x1, dx) {
63836 var x = (0,d3_array__WEBPACK_IMPORTED_MODULE_0__["default"])(x0, x1 - _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon, dx).concat(x1);
63837 return function(y) { return x.map(function(x) { return [x, y]; }); };
63838}
63839
63840function graticule() {
63841 var x1, x0, X1, X0,
63842 y1, y0, Y1, Y0,
63843 dx = 10, dy = dx, DX = 90, DY = 360,
63844 x, y, X, Y,
63845 precision = 2.5;
63846
63847 function graticule() {
63848 return {type: "MultiLineString", coordinates: lines()};
63849 }
63850
63851 function lines() {
63852 return (0,d3_array__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_math_js__WEBPACK_IMPORTED_MODULE_1__.ceil)(X0 / DX) * DX, X1, DX).map(X)
63853 .concat((0,d3_array__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_math_js__WEBPACK_IMPORTED_MODULE_1__.ceil)(Y0 / DY) * DY, Y1, DY).map(Y))
63854 .concat((0,d3_array__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_math_js__WEBPACK_IMPORTED_MODULE_1__.ceil)(x0 / dx) * dx, x1, dx).filter(function(x) { return (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.abs)(x % DX) > _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon; }).map(x))
63855 .concat((0,d3_array__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_math_js__WEBPACK_IMPORTED_MODULE_1__.ceil)(y0 / dy) * dy, y1, dy).filter(function(y) { return (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.abs)(y % DY) > _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon; }).map(y));
63856 }
63857
63858 graticule.lines = function() {
63859 return lines().map(function(coordinates) { return {type: "LineString", coordinates: coordinates}; });
63860 };
63861
63862 graticule.outline = function() {
63863 return {
63864 type: "Polygon",
63865 coordinates: [
63866 X(X0).concat(
63867 Y(Y1).slice(1),
63868 X(X1).reverse().slice(1),
63869 Y(Y0).reverse().slice(1))
63870 ]
63871 };
63872 };
63873
63874 graticule.extent = function(_) {
63875 if (!arguments.length) return graticule.extentMinor();
63876 return graticule.extentMajor(_).extentMinor(_);
63877 };
63878
63879 graticule.extentMajor = function(_) {
63880 if (!arguments.length) return [[X0, Y0], [X1, Y1]];
63881 X0 = +_[0][0], X1 = +_[1][0];
63882 Y0 = +_[0][1], Y1 = +_[1][1];
63883 if (X0 > X1) _ = X0, X0 = X1, X1 = _;
63884 if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;
63885 return graticule.precision(precision);
63886 };
63887
63888 graticule.extentMinor = function(_) {
63889 if (!arguments.length) return [[x0, y0], [x1, y1]];
63890 x0 = +_[0][0], x1 = +_[1][0];
63891 y0 = +_[0][1], y1 = +_[1][1];
63892 if (x0 > x1) _ = x0, x0 = x1, x1 = _;
63893 if (y0 > y1) _ = y0, y0 = y1, y1 = _;
63894 return graticule.precision(precision);
63895 };
63896
63897 graticule.step = function(_) {
63898 if (!arguments.length) return graticule.stepMinor();
63899 return graticule.stepMajor(_).stepMinor(_);
63900 };
63901
63902 graticule.stepMajor = function(_) {
63903 if (!arguments.length) return [DX, DY];
63904 DX = +_[0], DY = +_[1];
63905 return graticule;
63906 };
63907
63908 graticule.stepMinor = function(_) {
63909 if (!arguments.length) return [dx, dy];
63910 dx = +_[0], dy = +_[1];
63911 return graticule;
63912 };
63913
63914 graticule.precision = function(_) {
63915 if (!arguments.length) return precision;
63916 precision = +_;
63917 x = graticuleX(y0, y1, 90);
63918 y = graticuleY(x0, x1, precision);
63919 X = graticuleX(Y0, Y1, 90);
63920 Y = graticuleY(X0, X1, precision);
63921 return graticule;
63922 };
63923
63924 return graticule
63925 .extentMajor([[-180, -90 + _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon], [180, 90 - _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon]])
63926 .extentMinor([[-180, -80 - _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon], [180, 80 + _math_js__WEBPACK_IMPORTED_MODULE_1__.epsilon]]);
63927}
63928
63929function graticule10() {
63930 return graticule()();
63931}
63932
63933
63934/***/ }),
63935
63936/***/ "./node_modules/d3-geo/src/identity.js":
63937/*!*********************************************!*\
63938 !*** ./node_modules/d3-geo/src/identity.js ***!
63939 \*********************************************/
63940/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
63941
63942"use strict";
63943__webpack_require__.r(__webpack_exports__);
63944/* harmony export */ __webpack_require__.d(__webpack_exports__, {
63945/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
63946/* harmony export */ });
63947/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (x => x);
63948
63949
63950/***/ }),
63951
63952/***/ "./node_modules/d3-geo/src/index.js":
63953/*!******************************************!*\
63954 !*** ./node_modules/d3-geo/src/index.js ***!
63955 \******************************************/
63956/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
63957
63958"use strict";
63959__webpack_require__.r(__webpack_exports__);
63960/* harmony export */ __webpack_require__.d(__webpack_exports__, {
63961/* harmony export */ "geoAlbers": () => (/* reexport safe */ _projection_albers_js__WEBPACK_IMPORTED_MODULE_14__["default"]),
63962/* harmony export */ "geoAlbersUsa": () => (/* reexport safe */ _projection_albersUsa_js__WEBPACK_IMPORTED_MODULE_15__["default"]),
63963/* harmony export */ "geoArea": () => (/* reexport safe */ _area_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
63964/* harmony export */ "geoAzimuthalEqualArea": () => (/* reexport safe */ _projection_azimuthalEqualArea_js__WEBPACK_IMPORTED_MODULE_16__["default"]),
63965/* harmony export */ "geoAzimuthalEqualAreaRaw": () => (/* reexport safe */ _projection_azimuthalEqualArea_js__WEBPACK_IMPORTED_MODULE_16__.azimuthalEqualAreaRaw),
63966/* harmony export */ "geoAzimuthalEquidistant": () => (/* reexport safe */ _projection_azimuthalEquidistant_js__WEBPACK_IMPORTED_MODULE_17__["default"]),
63967/* harmony export */ "geoAzimuthalEquidistantRaw": () => (/* reexport safe */ _projection_azimuthalEquidistant_js__WEBPACK_IMPORTED_MODULE_17__.azimuthalEquidistantRaw),
63968/* harmony export */ "geoBounds": () => (/* reexport safe */ _bounds_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
63969/* harmony export */ "geoCentroid": () => (/* reexport safe */ _centroid_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
63970/* harmony export */ "geoCircle": () => (/* reexport safe */ _circle_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
63971/* harmony export */ "geoClipAntimeridian": () => (/* reexport safe */ _clip_antimeridian_js__WEBPACK_IMPORTED_MODULE_4__["default"]),
63972/* harmony export */ "geoClipCircle": () => (/* reexport safe */ _clip_circle_js__WEBPACK_IMPORTED_MODULE_5__["default"]),
63973/* harmony export */ "geoClipExtent": () => (/* reexport safe */ _clip_extent_js__WEBPACK_IMPORTED_MODULE_6__["default"]),
63974/* harmony export */ "geoClipRectangle": () => (/* reexport safe */ _clip_rectangle_js__WEBPACK_IMPORTED_MODULE_7__["default"]),
63975/* harmony export */ "geoConicConformal": () => (/* reexport safe */ _projection_conicConformal_js__WEBPACK_IMPORTED_MODULE_18__["default"]),
63976/* harmony export */ "geoConicConformalRaw": () => (/* reexport safe */ _projection_conicConformal_js__WEBPACK_IMPORTED_MODULE_18__.conicConformalRaw),
63977/* harmony export */ "geoConicEqualArea": () => (/* reexport safe */ _projection_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_19__["default"]),
63978/* harmony export */ "geoConicEqualAreaRaw": () => (/* reexport safe */ _projection_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_19__.conicEqualAreaRaw),
63979/* harmony export */ "geoConicEquidistant": () => (/* reexport safe */ _projection_conicEquidistant_js__WEBPACK_IMPORTED_MODULE_20__["default"]),
63980/* harmony export */ "geoConicEquidistantRaw": () => (/* reexport safe */ _projection_conicEquidistant_js__WEBPACK_IMPORTED_MODULE_20__.conicEquidistantRaw),
63981/* harmony export */ "geoContains": () => (/* reexport safe */ _contains_js__WEBPACK_IMPORTED_MODULE_8__["default"]),
63982/* harmony export */ "geoDistance": () => (/* reexport safe */ _distance_js__WEBPACK_IMPORTED_MODULE_9__["default"]),
63983/* harmony export */ "geoEqualEarth": () => (/* reexport safe */ _projection_equalEarth_js__WEBPACK_IMPORTED_MODULE_21__["default"]),
63984/* harmony export */ "geoEqualEarthRaw": () => (/* reexport safe */ _projection_equalEarth_js__WEBPACK_IMPORTED_MODULE_21__.equalEarthRaw),
63985/* harmony export */ "geoEquirectangular": () => (/* reexport safe */ _projection_equirectangular_js__WEBPACK_IMPORTED_MODULE_22__["default"]),
63986/* harmony export */ "geoEquirectangularRaw": () => (/* reexport safe */ _projection_equirectangular_js__WEBPACK_IMPORTED_MODULE_22__.equirectangularRaw),
63987/* harmony export */ "geoGnomonic": () => (/* reexport safe */ _projection_gnomonic_js__WEBPACK_IMPORTED_MODULE_23__["default"]),
63988/* harmony export */ "geoGnomonicRaw": () => (/* reexport safe */ _projection_gnomonic_js__WEBPACK_IMPORTED_MODULE_23__.gnomonicRaw),
63989/* harmony export */ "geoGraticule": () => (/* reexport safe */ _graticule_js__WEBPACK_IMPORTED_MODULE_10__["default"]),
63990/* harmony export */ "geoGraticule10": () => (/* reexport safe */ _graticule_js__WEBPACK_IMPORTED_MODULE_10__.graticule10),
63991/* harmony export */ "geoIdentity": () => (/* reexport safe */ _projection_identity_js__WEBPACK_IMPORTED_MODULE_24__["default"]),
63992/* harmony export */ "geoInterpolate": () => (/* reexport safe */ _interpolate_js__WEBPACK_IMPORTED_MODULE_11__["default"]),
63993/* harmony export */ "geoLength": () => (/* reexport safe */ _length_js__WEBPACK_IMPORTED_MODULE_12__["default"]),
63994/* harmony export */ "geoMercator": () => (/* reexport safe */ _projection_mercator_js__WEBPACK_IMPORTED_MODULE_26__["default"]),
63995/* harmony export */ "geoMercatorRaw": () => (/* reexport safe */ _projection_mercator_js__WEBPACK_IMPORTED_MODULE_26__.mercatorRaw),
63996/* harmony export */ "geoNaturalEarth1": () => (/* reexport safe */ _projection_naturalEarth1_js__WEBPACK_IMPORTED_MODULE_27__["default"]),
63997/* harmony export */ "geoNaturalEarth1Raw": () => (/* reexport safe */ _projection_naturalEarth1_js__WEBPACK_IMPORTED_MODULE_27__.naturalEarth1Raw),
63998/* harmony export */ "geoOrthographic": () => (/* reexport safe */ _projection_orthographic_js__WEBPACK_IMPORTED_MODULE_28__["default"]),
63999/* harmony export */ "geoOrthographicRaw": () => (/* reexport safe */ _projection_orthographic_js__WEBPACK_IMPORTED_MODULE_28__.orthographicRaw),
64000/* harmony export */ "geoPath": () => (/* reexport safe */ _path_index_js__WEBPACK_IMPORTED_MODULE_13__["default"]),
64001/* harmony export */ "geoProjection": () => (/* reexport safe */ _projection_index_js__WEBPACK_IMPORTED_MODULE_25__["default"]),
64002/* harmony export */ "geoProjectionMutator": () => (/* reexport safe */ _projection_index_js__WEBPACK_IMPORTED_MODULE_25__.projectionMutator),
64003/* harmony export */ "geoRotation": () => (/* reexport safe */ _rotation_js__WEBPACK_IMPORTED_MODULE_31__["default"]),
64004/* harmony export */ "geoStereographic": () => (/* reexport safe */ _projection_stereographic_js__WEBPACK_IMPORTED_MODULE_29__["default"]),
64005/* harmony export */ "geoStereographicRaw": () => (/* reexport safe */ _projection_stereographic_js__WEBPACK_IMPORTED_MODULE_29__.stereographicRaw),
64006/* harmony export */ "geoStream": () => (/* reexport safe */ _stream_js__WEBPACK_IMPORTED_MODULE_32__["default"]),
64007/* harmony export */ "geoTransform": () => (/* reexport safe */ _transform_js__WEBPACK_IMPORTED_MODULE_33__["default"]),
64008/* harmony export */ "geoTransverseMercator": () => (/* reexport safe */ _projection_transverseMercator_js__WEBPACK_IMPORTED_MODULE_30__["default"]),
64009/* harmony export */ "geoTransverseMercatorRaw": () => (/* reexport safe */ _projection_transverseMercator_js__WEBPACK_IMPORTED_MODULE_30__.transverseMercatorRaw)
64010/* harmony export */ });
64011/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./area.js */ "./node_modules/d3-geo/src/area.js");
64012/* harmony import */ var _bounds_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bounds.js */ "./node_modules/d3-geo/src/bounds.js");
64013/* harmony import */ var _centroid_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./centroid.js */ "./node_modules/d3-geo/src/centroid.js");
64014/* harmony import */ var _circle_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./circle.js */ "./node_modules/d3-geo/src/circle.js");
64015/* harmony import */ var _clip_antimeridian_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./clip/antimeridian.js */ "./node_modules/d3-geo/src/clip/antimeridian.js");
64016/* harmony import */ var _clip_circle_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./clip/circle.js */ "./node_modules/d3-geo/src/clip/circle.js");
64017/* harmony import */ var _clip_extent_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./clip/extent.js */ "./node_modules/d3-geo/src/clip/extent.js");
64018/* harmony import */ var _clip_rectangle_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./clip/rectangle.js */ "./node_modules/d3-geo/src/clip/rectangle.js");
64019/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./contains.js */ "./node_modules/d3-geo/src/contains.js");
64020/* harmony import */ var _distance_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./distance.js */ "./node_modules/d3-geo/src/distance.js");
64021/* harmony import */ var _graticule_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./graticule.js */ "./node_modules/d3-geo/src/graticule.js");
64022/* harmony import */ var _interpolate_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./interpolate.js */ "./node_modules/d3-geo/src/interpolate.js");
64023/* harmony import */ var _length_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./length.js */ "./node_modules/d3-geo/src/length.js");
64024/* harmony import */ var _path_index_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./path/index.js */ "./node_modules/d3-geo/src/path/index.js");
64025/* harmony import */ var _projection_albers_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./projection/albers.js */ "./node_modules/d3-geo/src/projection/albers.js");
64026/* harmony import */ var _projection_albersUsa_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./projection/albersUsa.js */ "./node_modules/d3-geo/src/projection/albersUsa.js");
64027/* harmony import */ var _projection_azimuthalEqualArea_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./projection/azimuthalEqualArea.js */ "./node_modules/d3-geo/src/projection/azimuthalEqualArea.js");
64028/* harmony import */ var _projection_azimuthalEquidistant_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./projection/azimuthalEquidistant.js */ "./node_modules/d3-geo/src/projection/azimuthalEquidistant.js");
64029/* harmony import */ var _projection_conicConformal_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./projection/conicConformal.js */ "./node_modules/d3-geo/src/projection/conicConformal.js");
64030/* harmony import */ var _projection_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./projection/conicEqualArea.js */ "./node_modules/d3-geo/src/projection/conicEqualArea.js");
64031/* harmony import */ var _projection_conicEquidistant_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./projection/conicEquidistant.js */ "./node_modules/d3-geo/src/projection/conicEquidistant.js");
64032/* harmony import */ var _projection_equalEarth_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./projection/equalEarth.js */ "./node_modules/d3-geo/src/projection/equalEarth.js");
64033/* harmony import */ var _projection_equirectangular_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./projection/equirectangular.js */ "./node_modules/d3-geo/src/projection/equirectangular.js");
64034/* harmony import */ var _projection_gnomonic_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./projection/gnomonic.js */ "./node_modules/d3-geo/src/projection/gnomonic.js");
64035/* harmony import */ var _projection_identity_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./projection/identity.js */ "./node_modules/d3-geo/src/projection/identity.js");
64036/* harmony import */ var _projection_index_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./projection/index.js */ "./node_modules/d3-geo/src/projection/index.js");
64037/* harmony import */ var _projection_mercator_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./projection/mercator.js */ "./node_modules/d3-geo/src/projection/mercator.js");
64038/* harmony import */ var _projection_naturalEarth1_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./projection/naturalEarth1.js */ "./node_modules/d3-geo/src/projection/naturalEarth1.js");
64039/* harmony import */ var _projection_orthographic_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./projection/orthographic.js */ "./node_modules/d3-geo/src/projection/orthographic.js");
64040/* harmony import */ var _projection_stereographic_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./projection/stereographic.js */ "./node_modules/d3-geo/src/projection/stereographic.js");
64041/* harmony import */ var _projection_transverseMercator_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./projection/transverseMercator.js */ "./node_modules/d3-geo/src/projection/transverseMercator.js");
64042/* harmony import */ var _rotation_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./rotation.js */ "./node_modules/d3-geo/src/rotation.js");
64043/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./stream.js */ "./node_modules/d3-geo/src/stream.js");
64044/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./transform.js */ "./node_modules/d3-geo/src/transform.js");
64045
64046
64047
64048
64049
64050
64051 // DEPRECATED! Use d3.geoIdentity().clipExtent(…).
64052
64053
64054
64055
64056
64057
64058
64059
64060
64061
64062
64063
64064
64065
64066
64067
64068
64069
64070
64071
64072
64073
64074
64075
64076
64077
64078
64079
64080
64081/***/ }),
64082
64083/***/ "./node_modules/d3-geo/src/interpolate.js":
64084/*!************************************************!*\
64085 !*** ./node_modules/d3-geo/src/interpolate.js ***!
64086 \************************************************/
64087/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
64088
64089"use strict";
64090__webpack_require__.r(__webpack_exports__);
64091/* harmony export */ __webpack_require__.d(__webpack_exports__, {
64092/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
64093/* harmony export */ });
64094/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
64095
64096
64097/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {
64098 var x0 = a[0] * _math_js__WEBPACK_IMPORTED_MODULE_0__.radians,
64099 y0 = a[1] * _math_js__WEBPACK_IMPORTED_MODULE_0__.radians,
64100 x1 = b[0] * _math_js__WEBPACK_IMPORTED_MODULE_0__.radians,
64101 y1 = b[1] * _math_js__WEBPACK_IMPORTED_MODULE_0__.radians,
64102 cy0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(y0),
64103 sy0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(y0),
64104 cy1 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(y1),
64105 sy1 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(y1),
64106 kx0 = cy0 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(x0),
64107 ky0 = cy0 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(x0),
64108 kx1 = cy1 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(x1),
64109 ky1 = cy1 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(x1),
64110 d = 2 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.asin)((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.haversin)(y1 - y0) + cy0 * cy1 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.haversin)(x1 - x0))),
64111 k = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(d);
64112
64113 var interpolate = d ? function(t) {
64114 var B = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(t *= d) / k,
64115 A = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(d - t) / k,
64116 x = A * kx0 + B * kx1,
64117 y = A * ky0 + B * ky1,
64118 z = A * sy0 + B * sy1;
64119 return [
64120 (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(y, x) * _math_js__WEBPACK_IMPORTED_MODULE_0__.degrees,
64121 (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(z, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)(x * x + y * y)) * _math_js__WEBPACK_IMPORTED_MODULE_0__.degrees
64122 ];
64123 } : function() {
64124 return [x0 * _math_js__WEBPACK_IMPORTED_MODULE_0__.degrees, y0 * _math_js__WEBPACK_IMPORTED_MODULE_0__.degrees];
64125 };
64126
64127 interpolate.distance = d;
64128
64129 return interpolate;
64130}
64131
64132
64133/***/ }),
64134
64135/***/ "./node_modules/d3-geo/src/length.js":
64136/*!*******************************************!*\
64137 !*** ./node_modules/d3-geo/src/length.js ***!
64138 \*******************************************/
64139/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
64140
64141"use strict";
64142__webpack_require__.r(__webpack_exports__);
64143/* harmony export */ __webpack_require__.d(__webpack_exports__, {
64144/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
64145/* harmony export */ });
64146/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/fsum.js");
64147/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
64148/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./noop.js */ "./node_modules/d3-geo/src/noop.js");
64149/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./stream.js */ "./node_modules/d3-geo/src/stream.js");
64150
64151
64152
64153
64154
64155var lengthSum,
64156 lambda0,
64157 sinPhi0,
64158 cosPhi0;
64159
64160var lengthStream = {
64161 sphere: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
64162 point: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
64163 lineStart: lengthLineStart,
64164 lineEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
64165 polygonStart: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
64166 polygonEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"]
64167};
64168
64169function lengthLineStart() {
64170 lengthStream.point = lengthPointFirst;
64171 lengthStream.lineEnd = lengthLineEnd;
64172}
64173
64174function lengthLineEnd() {
64175 lengthStream.point = lengthStream.lineEnd = _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"];
64176}
64177
64178function lengthPointFirst(lambda, phi) {
64179 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__.radians, phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__.radians;
64180 lambda0 = lambda, sinPhi0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(phi), cosPhi0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(phi);
64181 lengthStream.point = lengthPoint;
64182}
64183
64184function lengthPoint(lambda, phi) {
64185 lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__.radians, phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__.radians;
64186 var sinPhi = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(phi),
64187 cosPhi = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(phi),
64188 delta = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.abs)(lambda - lambda0),
64189 cosDelta = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(delta),
64190 sinDelta = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(delta),
64191 x = cosPhi * sinDelta,
64192 y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,
64193 z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;
64194 lengthSum.add((0,_math_js__WEBPACK_IMPORTED_MODULE_1__.atan2)((0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sqrt)(x * x + y * y), z));
64195 lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;
64196}
64197
64198/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(object) {
64199 lengthSum = new d3_array__WEBPACK_IMPORTED_MODULE_2__.Adder();
64200 (0,_stream_js__WEBPACK_IMPORTED_MODULE_3__["default"])(object, lengthStream);
64201 return +lengthSum;
64202}
64203
64204
64205/***/ }),
64206
64207/***/ "./node_modules/d3-geo/src/math.js":
64208/*!*****************************************!*\
64209 !*** ./node_modules/d3-geo/src/math.js ***!
64210 \*****************************************/
64211/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
64212
64213"use strict";
64214__webpack_require__.r(__webpack_exports__);
64215/* harmony export */ __webpack_require__.d(__webpack_exports__, {
64216/* harmony export */ "abs": () => (/* binding */ abs),
64217/* harmony export */ "acos": () => (/* binding */ acos),
64218/* harmony export */ "asin": () => (/* binding */ asin),
64219/* harmony export */ "atan": () => (/* binding */ atan),
64220/* harmony export */ "atan2": () => (/* binding */ atan2),
64221/* harmony export */ "ceil": () => (/* binding */ ceil),
64222/* harmony export */ "cos": () => (/* binding */ cos),
64223/* harmony export */ "degrees": () => (/* binding */ degrees),
64224/* harmony export */ "epsilon": () => (/* binding */ epsilon),
64225/* harmony export */ "epsilon2": () => (/* binding */ epsilon2),
64226/* harmony export */ "exp": () => (/* binding */ exp),
64227/* harmony export */ "floor": () => (/* binding */ floor),
64228/* harmony export */ "halfPi": () => (/* binding */ halfPi),
64229/* harmony export */ "haversin": () => (/* binding */ haversin),
64230/* harmony export */ "hypot": () => (/* binding */ hypot),
64231/* harmony export */ "log": () => (/* binding */ log),
64232/* harmony export */ "pi": () => (/* binding */ pi),
64233/* harmony export */ "pow": () => (/* binding */ pow),
64234/* harmony export */ "quarterPi": () => (/* binding */ quarterPi),
64235/* harmony export */ "radians": () => (/* binding */ radians),
64236/* harmony export */ "sign": () => (/* binding */ sign),
64237/* harmony export */ "sin": () => (/* binding */ sin),
64238/* harmony export */ "sqrt": () => (/* binding */ sqrt),
64239/* harmony export */ "tan": () => (/* binding */ tan),
64240/* harmony export */ "tau": () => (/* binding */ tau)
64241/* harmony export */ });
64242var epsilon = 1e-6;
64243var epsilon2 = 1e-12;
64244var pi = Math.PI;
64245var halfPi = pi / 2;
64246var quarterPi = pi / 4;
64247var tau = pi * 2;
64248
64249var degrees = 180 / pi;
64250var radians = pi / 180;
64251
64252var abs = Math.abs;
64253var atan = Math.atan;
64254var atan2 = Math.atan2;
64255var cos = Math.cos;
64256var ceil = Math.ceil;
64257var exp = Math.exp;
64258var floor = Math.floor;
64259var hypot = Math.hypot;
64260var log = Math.log;
64261var pow = Math.pow;
64262var sin = Math.sin;
64263var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };
64264var sqrt = Math.sqrt;
64265var tan = Math.tan;
64266
64267function acos(x) {
64268 return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
64269}
64270
64271function asin(x) {
64272 return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);
64273}
64274
64275function haversin(x) {
64276 return (x = sin(x / 2)) * x;
64277}
64278
64279
64280/***/ }),
64281
64282/***/ "./node_modules/d3-geo/src/noop.js":
64283/*!*****************************************!*\
64284 !*** ./node_modules/d3-geo/src/noop.js ***!
64285 \*****************************************/
64286/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
64287
64288"use strict";
64289__webpack_require__.r(__webpack_exports__);
64290/* harmony export */ __webpack_require__.d(__webpack_exports__, {
64291/* harmony export */ "default": () => (/* binding */ noop)
64292/* harmony export */ });
64293function noop() {}
64294
64295
64296/***/ }),
64297
64298/***/ "./node_modules/d3-geo/src/path/area.js":
64299/*!**********************************************!*\
64300 !*** ./node_modules/d3-geo/src/path/area.js ***!
64301 \**********************************************/
64302/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
64303
64304"use strict";
64305__webpack_require__.r(__webpack_exports__);
64306/* harmony export */ __webpack_require__.d(__webpack_exports__, {
64307/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
64308/* harmony export */ });
64309/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/fsum.js");
64310/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
64311/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-geo/src/noop.js");
64312
64313
64314
64315
64316var areaSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__.Adder(),
64317 areaRingSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__.Adder(),
64318 x00,
64319 y00,
64320 x0,
64321 y0;
64322
64323var areaStream = {
64324 point: _noop_js__WEBPACK_IMPORTED_MODULE_1__["default"],
64325 lineStart: _noop_js__WEBPACK_IMPORTED_MODULE_1__["default"],
64326 lineEnd: _noop_js__WEBPACK_IMPORTED_MODULE_1__["default"],
64327 polygonStart: function() {
64328 areaStream.lineStart = areaRingStart;
64329 areaStream.lineEnd = areaRingEnd;
64330 },
64331 polygonEnd: function() {
64332 areaStream.lineStart = areaStream.lineEnd = areaStream.point = _noop_js__WEBPACK_IMPORTED_MODULE_1__["default"];
64333 areaSum.add((0,_math_js__WEBPACK_IMPORTED_MODULE_2__.abs)(areaRingSum));
64334 areaRingSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__.Adder();
64335 },
64336 result: function() {
64337 var area = areaSum / 2;
64338 areaSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__.Adder();
64339 return area;
64340 }
64341};
64342
64343function areaRingStart() {
64344 areaStream.point = areaPointFirst;
64345}
64346
64347function areaPointFirst(x, y) {
64348 areaStream.point = areaPoint;
64349 x00 = x0 = x, y00 = y0 = y;
64350}
64351
64352function areaPoint(x, y) {
64353 areaRingSum.add(y0 * x - x0 * y);
64354 x0 = x, y0 = y;
64355}
64356
64357function areaRingEnd() {
64358 areaPoint(x00, y00);
64359}
64360
64361/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (areaStream);
64362
64363
64364/***/ }),
64365
64366/***/ "./node_modules/d3-geo/src/path/bounds.js":
64367/*!************************************************!*\
64368 !*** ./node_modules/d3-geo/src/path/bounds.js ***!
64369 \************************************************/
64370/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
64371
64372"use strict";
64373__webpack_require__.r(__webpack_exports__);
64374/* harmony export */ __webpack_require__.d(__webpack_exports__, {
64375/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
64376/* harmony export */ });
64377/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-geo/src/noop.js");
64378
64379
64380var x0 = Infinity,
64381 y0 = x0,
64382 x1 = -x0,
64383 y1 = x1;
64384
64385var boundsStream = {
64386 point: boundsPoint,
64387 lineStart: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
64388 lineEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
64389 polygonStart: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
64390 polygonEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
64391 result: function() {
64392 var bounds = [[x0, y0], [x1, y1]];
64393 x1 = y1 = -(y0 = x0 = Infinity);
64394 return bounds;
64395 }
64396};
64397
64398function boundsPoint(x, y) {
64399 if (x < x0) x0 = x;
64400 if (x > x1) x1 = x;
64401 if (y < y0) y0 = y;
64402 if (y > y1) y1 = y;
64403}
64404
64405/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (boundsStream);
64406
64407
64408/***/ }),
64409
64410/***/ "./node_modules/d3-geo/src/path/centroid.js":
64411/*!**************************************************!*\
64412 !*** ./node_modules/d3-geo/src/path/centroid.js ***!
64413 \**************************************************/
64414/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
64415
64416"use strict";
64417__webpack_require__.r(__webpack_exports__);
64418/* harmony export */ __webpack_require__.d(__webpack_exports__, {
64419/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
64420/* harmony export */ });
64421/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
64422
64423
64424// TODO Enforce positive area for exterior, negative area for interior?
64425
64426var X0 = 0,
64427 Y0 = 0,
64428 Z0 = 0,
64429 X1 = 0,
64430 Y1 = 0,
64431 Z1 = 0,
64432 X2 = 0,
64433 Y2 = 0,
64434 Z2 = 0,
64435 x00,
64436 y00,
64437 x0,
64438 y0;
64439
64440var centroidStream = {
64441 point: centroidPoint,
64442 lineStart: centroidLineStart,
64443 lineEnd: centroidLineEnd,
64444 polygonStart: function() {
64445 centroidStream.lineStart = centroidRingStart;
64446 centroidStream.lineEnd = centroidRingEnd;
64447 },
64448 polygonEnd: function() {
64449 centroidStream.point = centroidPoint;
64450 centroidStream.lineStart = centroidLineStart;
64451 centroidStream.lineEnd = centroidLineEnd;
64452 },
64453 result: function() {
64454 var centroid = Z2 ? [X2 / Z2, Y2 / Z2]
64455 : Z1 ? [X1 / Z1, Y1 / Z1]
64456 : Z0 ? [X0 / Z0, Y0 / Z0]
64457 : [NaN, NaN];
64458 X0 = Y0 = Z0 =
64459 X1 = Y1 = Z1 =
64460 X2 = Y2 = Z2 = 0;
64461 return centroid;
64462 }
64463};
64464
64465function centroidPoint(x, y) {
64466 X0 += x;
64467 Y0 += y;
64468 ++Z0;
64469}
64470
64471function centroidLineStart() {
64472 centroidStream.point = centroidPointFirstLine;
64473}
64474
64475function centroidPointFirstLine(x, y) {
64476 centroidStream.point = centroidPointLine;
64477 centroidPoint(x0 = x, y0 = y);
64478}
64479
64480function centroidPointLine(x, y) {
64481 var dx = x - x0, dy = y - y0, z = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)(dx * dx + dy * dy);
64482 X1 += z * (x0 + x) / 2;
64483 Y1 += z * (y0 + y) / 2;
64484 Z1 += z;
64485 centroidPoint(x0 = x, y0 = y);
64486}
64487
64488function centroidLineEnd() {
64489 centroidStream.point = centroidPoint;
64490}
64491
64492function centroidRingStart() {
64493 centroidStream.point = centroidPointFirstRing;
64494}
64495
64496function centroidRingEnd() {
64497 centroidPointRing(x00, y00);
64498}
64499
64500function centroidPointFirstRing(x, y) {
64501 centroidStream.point = centroidPointRing;
64502 centroidPoint(x00 = x0 = x, y00 = y0 = y);
64503}
64504
64505function centroidPointRing(x, y) {
64506 var dx = x - x0,
64507 dy = y - y0,
64508 z = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)(dx * dx + dy * dy);
64509
64510 X1 += z * (x0 + x) / 2;
64511 Y1 += z * (y0 + y) / 2;
64512 Z1 += z;
64513
64514 z = y0 * x - x0 * y;
64515 X2 += z * (x0 + x);
64516 Y2 += z * (y0 + y);
64517 Z2 += z * 3;
64518 centroidPoint(x0 = x, y0 = y);
64519}
64520
64521/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (centroidStream);
64522
64523
64524/***/ }),
64525
64526/***/ "./node_modules/d3-geo/src/path/context.js":
64527/*!*************************************************!*\
64528 !*** ./node_modules/d3-geo/src/path/context.js ***!
64529 \*************************************************/
64530/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
64531
64532"use strict";
64533__webpack_require__.r(__webpack_exports__);
64534/* harmony export */ __webpack_require__.d(__webpack_exports__, {
64535/* harmony export */ "default": () => (/* binding */ PathContext)
64536/* harmony export */ });
64537/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
64538/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-geo/src/noop.js");
64539
64540
64541
64542function PathContext(context) {
64543 this._context = context;
64544}
64545
64546PathContext.prototype = {
64547 _radius: 4.5,
64548 pointRadius: function(_) {
64549 return this._radius = _, this;
64550 },
64551 polygonStart: function() {
64552 this._line = 0;
64553 },
64554 polygonEnd: function() {
64555 this._line = NaN;
64556 },
64557 lineStart: function() {
64558 this._point = 0;
64559 },
64560 lineEnd: function() {
64561 if (this._line === 0) this._context.closePath();
64562 this._point = NaN;
64563 },
64564 point: function(x, y) {
64565 switch (this._point) {
64566 case 0: {
64567 this._context.moveTo(x, y);
64568 this._point = 1;
64569 break;
64570 }
64571 case 1: {
64572 this._context.lineTo(x, y);
64573 break;
64574 }
64575 default: {
64576 this._context.moveTo(x + this._radius, y);
64577 this._context.arc(x, y, this._radius, 0, _math_js__WEBPACK_IMPORTED_MODULE_0__.tau);
64578 break;
64579 }
64580 }
64581 },
64582 result: _noop_js__WEBPACK_IMPORTED_MODULE_1__["default"]
64583};
64584
64585
64586/***/ }),
64587
64588/***/ "./node_modules/d3-geo/src/path/index.js":
64589/*!***********************************************!*\
64590 !*** ./node_modules/d3-geo/src/path/index.js ***!
64591 \***********************************************/
64592/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
64593
64594"use strict";
64595__webpack_require__.r(__webpack_exports__);
64596/* harmony export */ __webpack_require__.d(__webpack_exports__, {
64597/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
64598/* harmony export */ });
64599/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../identity.js */ "./node_modules/d3-geo/src/identity.js");
64600/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../stream.js */ "./node_modules/d3-geo/src/stream.js");
64601/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./area.js */ "./node_modules/d3-geo/src/path/area.js");
64602/* harmony import */ var _bounds_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./bounds.js */ "./node_modules/d3-geo/src/path/bounds.js");
64603/* harmony import */ var _centroid_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./centroid.js */ "./node_modules/d3-geo/src/path/centroid.js");
64604/* harmony import */ var _context_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./context.js */ "./node_modules/d3-geo/src/path/context.js");
64605/* harmony import */ var _measure_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./measure.js */ "./node_modules/d3-geo/src/path/measure.js");
64606/* harmony import */ var _string_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./string.js */ "./node_modules/d3-geo/src/path/string.js");
64607
64608
64609
64610
64611
64612
64613
64614
64615
64616/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(projection, context) {
64617 var pointRadius = 4.5,
64618 projectionStream,
64619 contextStream;
64620
64621 function path(object) {
64622 if (object) {
64623 if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments));
64624 (0,_stream_js__WEBPACK_IMPORTED_MODULE_0__["default"])(object, projectionStream(contextStream));
64625 }
64626 return contextStream.result();
64627 }
64628
64629 path.area = function(object) {
64630 (0,_stream_js__WEBPACK_IMPORTED_MODULE_0__["default"])(object, projectionStream(_area_js__WEBPACK_IMPORTED_MODULE_1__["default"]));
64631 return _area_js__WEBPACK_IMPORTED_MODULE_1__["default"].result();
64632 };
64633
64634 path.measure = function(object) {
64635 (0,_stream_js__WEBPACK_IMPORTED_MODULE_0__["default"])(object, projectionStream(_measure_js__WEBPACK_IMPORTED_MODULE_2__["default"]));
64636 return _measure_js__WEBPACK_IMPORTED_MODULE_2__["default"].result();
64637 };
64638
64639 path.bounds = function(object) {
64640 (0,_stream_js__WEBPACK_IMPORTED_MODULE_0__["default"])(object, projectionStream(_bounds_js__WEBPACK_IMPORTED_MODULE_3__["default"]));
64641 return _bounds_js__WEBPACK_IMPORTED_MODULE_3__["default"].result();
64642 };
64643
64644 path.centroid = function(object) {
64645 (0,_stream_js__WEBPACK_IMPORTED_MODULE_0__["default"])(object, projectionStream(_centroid_js__WEBPACK_IMPORTED_MODULE_4__["default"]));
64646 return _centroid_js__WEBPACK_IMPORTED_MODULE_4__["default"].result();
64647 };
64648
64649 path.projection = function(_) {
64650 return arguments.length ? (projectionStream = _ == null ? (projection = null, _identity_js__WEBPACK_IMPORTED_MODULE_5__["default"]) : (projection = _).stream, path) : projection;
64651 };
64652
64653 path.context = function(_) {
64654 if (!arguments.length) return context;
64655 contextStream = _ == null ? (context = null, new _string_js__WEBPACK_IMPORTED_MODULE_6__["default"]) : new _context_js__WEBPACK_IMPORTED_MODULE_7__["default"](context = _);
64656 if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius);
64657 return path;
64658 };
64659
64660 path.pointRadius = function(_) {
64661 if (!arguments.length) return pointRadius;
64662 pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_);
64663 return path;
64664 };
64665
64666 return path.projection(projection).context(context);
64667}
64668
64669
64670/***/ }),
64671
64672/***/ "./node_modules/d3-geo/src/path/measure.js":
64673/*!*************************************************!*\
64674 !*** ./node_modules/d3-geo/src/path/measure.js ***!
64675 \*************************************************/
64676/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
64677
64678"use strict";
64679__webpack_require__.r(__webpack_exports__);
64680/* harmony export */ __webpack_require__.d(__webpack_exports__, {
64681/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
64682/* harmony export */ });
64683/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/fsum.js");
64684/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
64685/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-geo/src/noop.js");
64686
64687
64688
64689
64690var lengthSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__.Adder(),
64691 lengthRing,
64692 x00,
64693 y00,
64694 x0,
64695 y0;
64696
64697var lengthStream = {
64698 point: _noop_js__WEBPACK_IMPORTED_MODULE_1__["default"],
64699 lineStart: function() {
64700 lengthStream.point = lengthPointFirst;
64701 },
64702 lineEnd: function() {
64703 if (lengthRing) lengthPoint(x00, y00);
64704 lengthStream.point = _noop_js__WEBPACK_IMPORTED_MODULE_1__["default"];
64705 },
64706 polygonStart: function() {
64707 lengthRing = true;
64708 },
64709 polygonEnd: function() {
64710 lengthRing = null;
64711 },
64712 result: function() {
64713 var length = +lengthSum;
64714 lengthSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__.Adder();
64715 return length;
64716 }
64717};
64718
64719function lengthPointFirst(x, y) {
64720 lengthStream.point = lengthPoint;
64721 x00 = x0 = x, y00 = y0 = y;
64722}
64723
64724function lengthPoint(x, y) {
64725 x0 -= x, y0 -= y;
64726 lengthSum.add((0,_math_js__WEBPACK_IMPORTED_MODULE_2__.sqrt)(x0 * x0 + y0 * y0));
64727 x0 = x, y0 = y;
64728}
64729
64730/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (lengthStream);
64731
64732
64733/***/ }),
64734
64735/***/ "./node_modules/d3-geo/src/path/string.js":
64736/*!************************************************!*\
64737 !*** ./node_modules/d3-geo/src/path/string.js ***!
64738 \************************************************/
64739/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
64740
64741"use strict";
64742__webpack_require__.r(__webpack_exports__);
64743/* harmony export */ __webpack_require__.d(__webpack_exports__, {
64744/* harmony export */ "default": () => (/* binding */ PathString)
64745/* harmony export */ });
64746function PathString() {
64747 this._string = [];
64748}
64749
64750PathString.prototype = {
64751 _radius: 4.5,
64752 _circle: circle(4.5),
64753 pointRadius: function(_) {
64754 if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;
64755 return this;
64756 },
64757 polygonStart: function() {
64758 this._line = 0;
64759 },
64760 polygonEnd: function() {
64761 this._line = NaN;
64762 },
64763 lineStart: function() {
64764 this._point = 0;
64765 },
64766 lineEnd: function() {
64767 if (this._line === 0) this._string.push("Z");
64768 this._point = NaN;
64769 },
64770 point: function(x, y) {
64771 switch (this._point) {
64772 case 0: {
64773 this._string.push("M", x, ",", y);
64774 this._point = 1;
64775 break;
64776 }
64777 case 1: {
64778 this._string.push("L", x, ",", y);
64779 break;
64780 }
64781 default: {
64782 if (this._circle == null) this._circle = circle(this._radius);
64783 this._string.push("M", x, ",", y, this._circle);
64784 break;
64785 }
64786 }
64787 },
64788 result: function() {
64789 if (this._string.length) {
64790 var result = this._string.join("");
64791 this._string = [];
64792 return result;
64793 } else {
64794 return null;
64795 }
64796 }
64797};
64798
64799function circle(radius) {
64800 return "m0," + radius
64801 + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius
64802 + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius
64803 + "z";
64804}
64805
64806
64807/***/ }),
64808
64809/***/ "./node_modules/d3-geo/src/pointEqual.js":
64810/*!***********************************************!*\
64811 !*** ./node_modules/d3-geo/src/pointEqual.js ***!
64812 \***********************************************/
64813/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
64814
64815"use strict";
64816__webpack_require__.r(__webpack_exports__);
64817/* harmony export */ __webpack_require__.d(__webpack_exports__, {
64818/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
64819/* harmony export */ });
64820/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
64821
64822
64823/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {
64824 return (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(a[0] - b[0]) < _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon && (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(a[1] - b[1]) < _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon;
64825}
64826
64827
64828/***/ }),
64829
64830/***/ "./node_modules/d3-geo/src/polygonContains.js":
64831/*!****************************************************!*\
64832 !*** ./node_modules/d3-geo/src/polygonContains.js ***!
64833 \****************************************************/
64834/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
64835
64836"use strict";
64837__webpack_require__.r(__webpack_exports__);
64838/* harmony export */ __webpack_require__.d(__webpack_exports__, {
64839/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
64840/* harmony export */ });
64841/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/fsum.js");
64842/* harmony import */ var _cartesian_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cartesian.js */ "./node_modules/d3-geo/src/cartesian.js");
64843/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
64844
64845
64846
64847
64848function longitude(point) {
64849 return (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(point[0]) <= _math_js__WEBPACK_IMPORTED_MODULE_0__.pi ? point[0] : (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sign)(point[0]) * (((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(point[0]) + _math_js__WEBPACK_IMPORTED_MODULE_0__.pi) % _math_js__WEBPACK_IMPORTED_MODULE_0__.tau - _math_js__WEBPACK_IMPORTED_MODULE_0__.pi);
64850}
64851
64852/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(polygon, point) {
64853 var lambda = longitude(point),
64854 phi = point[1],
64855 sinPhi = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(phi),
64856 normal = [(0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(lambda), -(0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(lambda), 0],
64857 angle = 0,
64858 winding = 0;
64859
64860 var sum = new d3_array__WEBPACK_IMPORTED_MODULE_1__.Adder();
64861
64862 if (sinPhi === 1) phi = _math_js__WEBPACK_IMPORTED_MODULE_0__.halfPi + _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon;
64863 else if (sinPhi === -1) phi = -_math_js__WEBPACK_IMPORTED_MODULE_0__.halfPi - _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon;
64864
64865 for (var i = 0, n = polygon.length; i < n; ++i) {
64866 if (!(m = (ring = polygon[i]).length)) continue;
64867 var ring,
64868 m,
64869 point0 = ring[m - 1],
64870 lambda0 = longitude(point0),
64871 phi0 = point0[1] / 2 + _math_js__WEBPACK_IMPORTED_MODULE_0__.quarterPi,
64872 sinPhi0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(phi0),
64873 cosPhi0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(phi0);
64874
64875 for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {
64876 var point1 = ring[j],
64877 lambda1 = longitude(point1),
64878 phi1 = point1[1] / 2 + _math_js__WEBPACK_IMPORTED_MODULE_0__.quarterPi,
64879 sinPhi1 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(phi1),
64880 cosPhi1 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(phi1),
64881 delta = lambda1 - lambda0,
64882 sign = delta >= 0 ? 1 : -1,
64883 absDelta = sign * delta,
64884 antimeridian = absDelta > _math_js__WEBPACK_IMPORTED_MODULE_0__.pi,
64885 k = sinPhi0 * sinPhi1;
64886
64887 sum.add((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(k * sign * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(absDelta), cosPhi0 * cosPhi1 + k * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(absDelta)));
64888 angle += antimeridian ? delta + sign * _math_js__WEBPACK_IMPORTED_MODULE_0__.tau : delta;
64889
64890 // Are the longitudes either side of the point’s meridian (lambda),
64891 // and are the latitudes smaller than the parallel (phi)?
64892 if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {
64893 var arc = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_2__.cartesianCross)((0,_cartesian_js__WEBPACK_IMPORTED_MODULE_2__.cartesian)(point0), (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_2__.cartesian)(point1));
64894 (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_2__.cartesianNormalizeInPlace)(arc);
64895 var intersection = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_2__.cartesianCross)(normal, arc);
64896 (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_2__.cartesianNormalizeInPlace)(intersection);
64897 var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.asin)(intersection[2]);
64898 if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {
64899 winding += antimeridian ^ delta >= 0 ? 1 : -1;
64900 }
64901 }
64902 }
64903 }
64904
64905 // First, determine whether the South pole is inside or outside:
64906 //
64907 // It is inside if:
64908 // * the polygon winds around it in a clockwise direction.
64909 // * the polygon does not (cumulatively) wind around it, but has a negative
64910 // (counter-clockwise) area.
64911 //
64912 // Second, count the (signed) number of times a segment crosses a lambda
64913 // from the point to the South pole. If it is zero, then the point is the
64914 // same side as the South pole.
64915
64916 return (angle < -_math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon || angle < _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon && sum < -_math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon2) ^ (winding & 1);
64917}
64918
64919
64920/***/ }),
64921
64922/***/ "./node_modules/d3-geo/src/projection/albers.js":
64923/*!******************************************************!*\
64924 !*** ./node_modules/d3-geo/src/projection/albers.js ***!
64925 \******************************************************/
64926/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
64927
64928"use strict";
64929__webpack_require__.r(__webpack_exports__);
64930/* harmony export */ __webpack_require__.d(__webpack_exports__, {
64931/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
64932/* harmony export */ });
64933/* harmony import */ var _conicEqualArea_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./conicEqualArea.js */ "./node_modules/d3-geo/src/projection/conicEqualArea.js");
64934
64935
64936/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
64937 return (0,_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_0__["default"])()
64938 .parallels([29.5, 45.5])
64939 .scale(1070)
64940 .translate([480, 250])
64941 .rotate([96, 0])
64942 .center([-0.6, 38.7]);
64943}
64944
64945
64946/***/ }),
64947
64948/***/ "./node_modules/d3-geo/src/projection/albersUsa.js":
64949/*!*********************************************************!*\
64950 !*** ./node_modules/d3-geo/src/projection/albersUsa.js ***!
64951 \*********************************************************/
64952/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
64953
64954"use strict";
64955__webpack_require__.r(__webpack_exports__);
64956/* harmony export */ __webpack_require__.d(__webpack_exports__, {
64957/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
64958/* harmony export */ });
64959/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
64960/* harmony import */ var _albers_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./albers.js */ "./node_modules/d3-geo/src/projection/albers.js");
64961/* harmony import */ var _conicEqualArea_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./conicEqualArea.js */ "./node_modules/d3-geo/src/projection/conicEqualArea.js");
64962/* harmony import */ var _fit_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fit.js */ "./node_modules/d3-geo/src/projection/fit.js");
64963
64964
64965
64966
64967
64968// The projections must have mutually exclusive clip regions on the sphere,
64969// as this will avoid emitting interleaving lines and polygons.
64970function multiplex(streams) {
64971 var n = streams.length;
64972 return {
64973 point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },
64974 sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },
64975 lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },
64976 lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },
64977 polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },
64978 polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }
64979 };
64980}
64981
64982// A composite projection for the United States, configured by default for
64983// 960×500. The projection also works quite well at 960×600 if you change the
64984// scale to 1285 and adjust the translate accordingly. The set of standard
64985// parallels for each region comes from USGS, which is published here:
64986// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers
64987/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
64988 var cache,
64989 cacheStream,
64990 lower48 = (0,_albers_js__WEBPACK_IMPORTED_MODULE_0__["default"])(), lower48Point,
64991 alaska = (0,_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_1__["default"])().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338
64992 hawaii = (0,_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_1__["default"])().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007
64993 point, pointStream = {point: function(x, y) { point = [x, y]; }};
64994
64995 function albersUsa(coordinates) {
64996 var x = coordinates[0], y = coordinates[1];
64997 return point = null,
64998 (lower48Point.point(x, y), point)
64999 || (alaskaPoint.point(x, y), point)
65000 || (hawaiiPoint.point(x, y), point);
65001 }
65002
65003 albersUsa.invert = function(coordinates) {
65004 var k = lower48.scale(),
65005 t = lower48.translate(),
65006 x = (coordinates[0] - t[0]) / k,
65007 y = (coordinates[1] - t[1]) / k;
65008 return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska
65009 : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii
65010 : lower48).invert(coordinates);
65011 };
65012
65013 albersUsa.stream = function(stream) {
65014 return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);
65015 };
65016
65017 albersUsa.precision = function(_) {
65018 if (!arguments.length) return lower48.precision();
65019 lower48.precision(_), alaska.precision(_), hawaii.precision(_);
65020 return reset();
65021 };
65022
65023 albersUsa.scale = function(_) {
65024 if (!arguments.length) return lower48.scale();
65025 lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);
65026 return albersUsa.translate(lower48.translate());
65027 };
65028
65029 albersUsa.translate = function(_) {
65030 if (!arguments.length) return lower48.translate();
65031 var k = lower48.scale(), x = +_[0], y = +_[1];
65032
65033 lower48Point = lower48
65034 .translate(_)
65035 .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])
65036 .stream(pointStream);
65037
65038 alaskaPoint = alaska
65039 .translate([x - 0.307 * k, y + 0.201 * k])
65040 .clipExtent([[x - 0.425 * k + _math_js__WEBPACK_IMPORTED_MODULE_2__.epsilon, y + 0.120 * k + _math_js__WEBPACK_IMPORTED_MODULE_2__.epsilon], [x - 0.214 * k - _math_js__WEBPACK_IMPORTED_MODULE_2__.epsilon, y + 0.234 * k - _math_js__WEBPACK_IMPORTED_MODULE_2__.epsilon]])
65041 .stream(pointStream);
65042
65043 hawaiiPoint = hawaii
65044 .translate([x - 0.205 * k, y + 0.212 * k])
65045 .clipExtent([[x - 0.214 * k + _math_js__WEBPACK_IMPORTED_MODULE_2__.epsilon, y + 0.166 * k + _math_js__WEBPACK_IMPORTED_MODULE_2__.epsilon], [x - 0.115 * k - _math_js__WEBPACK_IMPORTED_MODULE_2__.epsilon, y + 0.234 * k - _math_js__WEBPACK_IMPORTED_MODULE_2__.epsilon]])
65046 .stream(pointStream);
65047
65048 return reset();
65049 };
65050
65051 albersUsa.fitExtent = function(extent, object) {
65052 return (0,_fit_js__WEBPACK_IMPORTED_MODULE_3__.fitExtent)(albersUsa, extent, object);
65053 };
65054
65055 albersUsa.fitSize = function(size, object) {
65056 return (0,_fit_js__WEBPACK_IMPORTED_MODULE_3__.fitSize)(albersUsa, size, object);
65057 };
65058
65059 albersUsa.fitWidth = function(width, object) {
65060 return (0,_fit_js__WEBPACK_IMPORTED_MODULE_3__.fitWidth)(albersUsa, width, object);
65061 };
65062
65063 albersUsa.fitHeight = function(height, object) {
65064 return (0,_fit_js__WEBPACK_IMPORTED_MODULE_3__.fitHeight)(albersUsa, height, object);
65065 };
65066
65067 function reset() {
65068 cache = cacheStream = null;
65069 return albersUsa;
65070 }
65071
65072 return albersUsa.scale(1070);
65073}
65074
65075
65076/***/ }),
65077
65078/***/ "./node_modules/d3-geo/src/projection/azimuthal.js":
65079/*!*********************************************************!*\
65080 !*** ./node_modules/d3-geo/src/projection/azimuthal.js ***!
65081 \*********************************************************/
65082/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65083
65084"use strict";
65085__webpack_require__.r(__webpack_exports__);
65086/* harmony export */ __webpack_require__.d(__webpack_exports__, {
65087/* harmony export */ "azimuthalInvert": () => (/* binding */ azimuthalInvert),
65088/* harmony export */ "azimuthalRaw": () => (/* binding */ azimuthalRaw)
65089/* harmony export */ });
65090/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
65091
65092
65093function azimuthalRaw(scale) {
65094 return function(x, y) {
65095 var cx = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(x),
65096 cy = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(y),
65097 k = scale(cx * cy);
65098 if (k === Infinity) return [2, 0];
65099 return [
65100 k * cy * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(x),
65101 k * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(y)
65102 ];
65103 }
65104}
65105
65106function azimuthalInvert(angle) {
65107 return function(x, y) {
65108 var z = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)(x * x + y * y),
65109 c = angle(z),
65110 sc = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(c),
65111 cc = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(c);
65112 return [
65113 (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(x * sc, z * cc),
65114 (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.asin)(z && y * sc / z)
65115 ];
65116 }
65117}
65118
65119
65120/***/ }),
65121
65122/***/ "./node_modules/d3-geo/src/projection/azimuthalEqualArea.js":
65123/*!******************************************************************!*\
65124 !*** ./node_modules/d3-geo/src/projection/azimuthalEqualArea.js ***!
65125 \******************************************************************/
65126/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65127
65128"use strict";
65129__webpack_require__.r(__webpack_exports__);
65130/* harmony export */ __webpack_require__.d(__webpack_exports__, {
65131/* harmony export */ "azimuthalEqualAreaRaw": () => (/* binding */ azimuthalEqualAreaRaw),
65132/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
65133/* harmony export */ });
65134/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
65135/* harmony import */ var _azimuthal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./azimuthal.js */ "./node_modules/d3-geo/src/projection/azimuthal.js");
65136/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
65137
65138
65139
65140
65141var azimuthalEqualAreaRaw = (0,_azimuthal_js__WEBPACK_IMPORTED_MODULE_0__.azimuthalRaw)(function(cxcy) {
65142 return (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sqrt)(2 / (1 + cxcy));
65143});
65144
65145azimuthalEqualAreaRaw.invert = (0,_azimuthal_js__WEBPACK_IMPORTED_MODULE_0__.azimuthalInvert)(function(z) {
65146 return 2 * (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.asin)(z / 2);
65147});
65148
65149/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
65150 return (0,_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(azimuthalEqualAreaRaw)
65151 .scale(124.75)
65152 .clipAngle(180 - 1e-3);
65153}
65154
65155
65156/***/ }),
65157
65158/***/ "./node_modules/d3-geo/src/projection/azimuthalEquidistant.js":
65159/*!********************************************************************!*\
65160 !*** ./node_modules/d3-geo/src/projection/azimuthalEquidistant.js ***!
65161 \********************************************************************/
65162/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65163
65164"use strict";
65165__webpack_require__.r(__webpack_exports__);
65166/* harmony export */ __webpack_require__.d(__webpack_exports__, {
65167/* harmony export */ "azimuthalEquidistantRaw": () => (/* binding */ azimuthalEquidistantRaw),
65168/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
65169/* harmony export */ });
65170/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
65171/* harmony import */ var _azimuthal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./azimuthal.js */ "./node_modules/d3-geo/src/projection/azimuthal.js");
65172/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
65173
65174
65175
65176
65177var azimuthalEquidistantRaw = (0,_azimuthal_js__WEBPACK_IMPORTED_MODULE_0__.azimuthalRaw)(function(c) {
65178 return (c = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.acos)(c)) && c / (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(c);
65179});
65180
65181azimuthalEquidistantRaw.invert = (0,_azimuthal_js__WEBPACK_IMPORTED_MODULE_0__.azimuthalInvert)(function(z) {
65182 return z;
65183});
65184
65185/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
65186 return (0,_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(azimuthalEquidistantRaw)
65187 .scale(79.4188)
65188 .clipAngle(180 - 1e-3);
65189}
65190
65191
65192/***/ }),
65193
65194/***/ "./node_modules/d3-geo/src/projection/conic.js":
65195/*!*****************************************************!*\
65196 !*** ./node_modules/d3-geo/src/projection/conic.js ***!
65197 \*****************************************************/
65198/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65199
65200"use strict";
65201__webpack_require__.r(__webpack_exports__);
65202/* harmony export */ __webpack_require__.d(__webpack_exports__, {
65203/* harmony export */ "conicProjection": () => (/* binding */ conicProjection)
65204/* harmony export */ });
65205/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
65206/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
65207
65208
65209
65210function conicProjection(projectAt) {
65211 var phi0 = 0,
65212 phi1 = _math_js__WEBPACK_IMPORTED_MODULE_0__.pi / 3,
65213 m = (0,_index_js__WEBPACK_IMPORTED_MODULE_1__.projectionMutator)(projectAt),
65214 p = m(phi0, phi1);
65215
65216 p.parallels = function(_) {
65217 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];
65218 };
65219
65220 return p;
65221}
65222
65223
65224/***/ }),
65225
65226/***/ "./node_modules/d3-geo/src/projection/conicConformal.js":
65227/*!**************************************************************!*\
65228 !*** ./node_modules/d3-geo/src/projection/conicConformal.js ***!
65229 \**************************************************************/
65230/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65231
65232"use strict";
65233__webpack_require__.r(__webpack_exports__);
65234/* harmony export */ __webpack_require__.d(__webpack_exports__, {
65235/* harmony export */ "conicConformalRaw": () => (/* binding */ conicConformalRaw),
65236/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
65237/* harmony export */ });
65238/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
65239/* harmony import */ var _conic_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./conic.js */ "./node_modules/d3-geo/src/projection/conic.js");
65240/* harmony import */ var _mercator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mercator.js */ "./node_modules/d3-geo/src/projection/mercator.js");
65241
65242
65243
65244
65245function tany(y) {
65246 return (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.tan)((_math_js__WEBPACK_IMPORTED_MODULE_0__.halfPi + y) / 2);
65247}
65248
65249function conicConformalRaw(y0, y1) {
65250 var cy0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(y0),
65251 n = y0 === y1 ? (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(y0) : (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.log)(cy0 / (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(y1)) / (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.log)(tany(y1) / tany(y0)),
65252 f = cy0 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.pow)(tany(y0), n) / n;
65253
65254 if (!n) return _mercator_js__WEBPACK_IMPORTED_MODULE_1__.mercatorRaw;
65255
65256 function project(x, y) {
65257 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; }
65258 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; }
65259 var r = f / (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.pow)(tany(y), n);
65260 return [r * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(n * x), f - r * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(n * x)];
65261 }
65262
65263 project.invert = function(x, y) {
65264 var fy = f - y, r = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sign)(n) * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)(x * x + fy * fy),
65265 l = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(x, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(fy)) * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sign)(fy);
65266 if (fy * n < 0)
65267 l -= _math_js__WEBPACK_IMPORTED_MODULE_0__.pi * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sign)(x) * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sign)(fy);
65268 return [l / n, 2 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan)((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.pow)(f / r, 1 / n)) - _math_js__WEBPACK_IMPORTED_MODULE_0__.halfPi];
65269 };
65270
65271 return project;
65272}
65273
65274/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
65275 return (0,_conic_js__WEBPACK_IMPORTED_MODULE_2__.conicProjection)(conicConformalRaw)
65276 .scale(109.5)
65277 .parallels([30, 30]);
65278}
65279
65280
65281/***/ }),
65282
65283/***/ "./node_modules/d3-geo/src/projection/conicEqualArea.js":
65284/*!**************************************************************!*\
65285 !*** ./node_modules/d3-geo/src/projection/conicEqualArea.js ***!
65286 \**************************************************************/
65287/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65288
65289"use strict";
65290__webpack_require__.r(__webpack_exports__);
65291/* harmony export */ __webpack_require__.d(__webpack_exports__, {
65292/* harmony export */ "conicEqualAreaRaw": () => (/* binding */ conicEqualAreaRaw),
65293/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
65294/* harmony export */ });
65295/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
65296/* harmony import */ var _conic_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./conic.js */ "./node_modules/d3-geo/src/projection/conic.js");
65297/* harmony import */ var _cylindricalEqualArea_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cylindricalEqualArea.js */ "./node_modules/d3-geo/src/projection/cylindricalEqualArea.js");
65298
65299
65300
65301
65302function conicEqualAreaRaw(y0, y1) {
65303 var sy0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(y0), n = (sy0 + (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(y1)) / 2;
65304
65305 // Are the parallels symmetrical around the Equator?
65306 if ((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(n) < _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) return (0,_cylindricalEqualArea_js__WEBPACK_IMPORTED_MODULE_1__.cylindricalEqualAreaRaw)(y0);
65307
65308 var c = 1 + sy0 * (2 * n - sy0), r0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)(c) / n;
65309
65310 function project(x, y) {
65311 var r = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)(c - 2 * n * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(y)) / n;
65312 return [r * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(x *= n), r0 - r * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(x)];
65313 }
65314
65315 project.invert = function(x, y) {
65316 var r0y = r0 - y,
65317 l = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(x, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(r0y)) * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sign)(r0y);
65318 if (r0y * n < 0)
65319 l -= _math_js__WEBPACK_IMPORTED_MODULE_0__.pi * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sign)(x) * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sign)(r0y);
65320 return [l / n, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.asin)((c - (x * x + r0y * r0y) * n * n) / (2 * n))];
65321 };
65322
65323 return project;
65324}
65325
65326/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
65327 return (0,_conic_js__WEBPACK_IMPORTED_MODULE_2__.conicProjection)(conicEqualAreaRaw)
65328 .scale(155.424)
65329 .center([0, 33.6442]);
65330}
65331
65332
65333/***/ }),
65334
65335/***/ "./node_modules/d3-geo/src/projection/conicEquidistant.js":
65336/*!****************************************************************!*\
65337 !*** ./node_modules/d3-geo/src/projection/conicEquidistant.js ***!
65338 \****************************************************************/
65339/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65340
65341"use strict";
65342__webpack_require__.r(__webpack_exports__);
65343/* harmony export */ __webpack_require__.d(__webpack_exports__, {
65344/* harmony export */ "conicEquidistantRaw": () => (/* binding */ conicEquidistantRaw),
65345/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
65346/* harmony export */ });
65347/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
65348/* harmony import */ var _conic_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./conic.js */ "./node_modules/d3-geo/src/projection/conic.js");
65349/* harmony import */ var _equirectangular_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./equirectangular.js */ "./node_modules/d3-geo/src/projection/equirectangular.js");
65350
65351
65352
65353
65354function conicEquidistantRaw(y0, y1) {
65355 var cy0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(y0),
65356 n = y0 === y1 ? (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(y0) : (cy0 - (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(y1)) / (y1 - y0),
65357 g = cy0 / n + y0;
65358
65359 if ((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(n) < _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) return _equirectangular_js__WEBPACK_IMPORTED_MODULE_1__.equirectangularRaw;
65360
65361 function project(x, y) {
65362 var gy = g - y, nx = n * x;
65363 return [gy * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(nx), g - gy * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(nx)];
65364 }
65365
65366 project.invert = function(x, y) {
65367 var gy = g - y,
65368 l = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(x, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(gy)) * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sign)(gy);
65369 if (gy * n < 0)
65370 l -= _math_js__WEBPACK_IMPORTED_MODULE_0__.pi * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sign)(x) * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sign)(gy);
65371 return [l / n, g - (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sign)(n) * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)(x * x + gy * gy)];
65372 };
65373
65374 return project;
65375}
65376
65377/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
65378 return (0,_conic_js__WEBPACK_IMPORTED_MODULE_2__.conicProjection)(conicEquidistantRaw)
65379 .scale(131.154)
65380 .center([0, 13.9389]);
65381}
65382
65383
65384/***/ }),
65385
65386/***/ "./node_modules/d3-geo/src/projection/cylindricalEqualArea.js":
65387/*!********************************************************************!*\
65388 !*** ./node_modules/d3-geo/src/projection/cylindricalEqualArea.js ***!
65389 \********************************************************************/
65390/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65391
65392"use strict";
65393__webpack_require__.r(__webpack_exports__);
65394/* harmony export */ __webpack_require__.d(__webpack_exports__, {
65395/* harmony export */ "cylindricalEqualAreaRaw": () => (/* binding */ cylindricalEqualAreaRaw)
65396/* harmony export */ });
65397/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
65398
65399
65400function cylindricalEqualAreaRaw(phi0) {
65401 var cosPhi0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(phi0);
65402
65403 function forward(lambda, phi) {
65404 return [lambda * cosPhi0, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(phi) / cosPhi0];
65405 }
65406
65407 forward.invert = function(x, y) {
65408 return [x / cosPhi0, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.asin)(y * cosPhi0)];
65409 };
65410
65411 return forward;
65412}
65413
65414
65415/***/ }),
65416
65417/***/ "./node_modules/d3-geo/src/projection/equalEarth.js":
65418/*!**********************************************************!*\
65419 !*** ./node_modules/d3-geo/src/projection/equalEarth.js ***!
65420 \**********************************************************/
65421/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65422
65423"use strict";
65424__webpack_require__.r(__webpack_exports__);
65425/* harmony export */ __webpack_require__.d(__webpack_exports__, {
65426/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
65427/* harmony export */ "equalEarthRaw": () => (/* binding */ equalEarthRaw)
65428/* harmony export */ });
65429/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
65430/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
65431
65432
65433
65434var A1 = 1.340264,
65435 A2 = -0.081106,
65436 A3 = 0.000893,
65437 A4 = 0.003796,
65438 M = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)(3) / 2,
65439 iterations = 12;
65440
65441function equalEarthRaw(lambda, phi) {
65442 var l = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.asin)(M * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(phi)), l2 = l * l, l6 = l2 * l2 * l2;
65443 return [
65444 lambda * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),
65445 l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))
65446 ];
65447}
65448
65449equalEarthRaw.invert = function(x, y) {
65450 var l = y, l2 = l * l, l6 = l2 * l2 * l2;
65451 for (var i = 0, delta, fy, fpy; i < iterations; ++i) {
65452 fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;
65453 fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);
65454 l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;
65455 if ((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(delta) < _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon2) break;
65456 }
65457 return [
65458 M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(l),
65459 (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.asin)((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(l) / M)
65460 ];
65461};
65462
65463/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
65464 return (0,_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(equalEarthRaw)
65465 .scale(177.158);
65466}
65467
65468
65469/***/ }),
65470
65471/***/ "./node_modules/d3-geo/src/projection/equirectangular.js":
65472/*!***************************************************************!*\
65473 !*** ./node_modules/d3-geo/src/projection/equirectangular.js ***!
65474 \***************************************************************/
65475/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65476
65477"use strict";
65478__webpack_require__.r(__webpack_exports__);
65479/* harmony export */ __webpack_require__.d(__webpack_exports__, {
65480/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
65481/* harmony export */ "equirectangularRaw": () => (/* binding */ equirectangularRaw)
65482/* harmony export */ });
65483/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
65484
65485
65486function equirectangularRaw(lambda, phi) {
65487 return [lambda, phi];
65488}
65489
65490equirectangularRaw.invert = equirectangularRaw;
65491
65492/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
65493 return (0,_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(equirectangularRaw)
65494 .scale(152.63);
65495}
65496
65497
65498/***/ }),
65499
65500/***/ "./node_modules/d3-geo/src/projection/fit.js":
65501/*!***************************************************!*\
65502 !*** ./node_modules/d3-geo/src/projection/fit.js ***!
65503 \***************************************************/
65504/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65505
65506"use strict";
65507__webpack_require__.r(__webpack_exports__);
65508/* harmony export */ __webpack_require__.d(__webpack_exports__, {
65509/* harmony export */ "fitExtent": () => (/* binding */ fitExtent),
65510/* harmony export */ "fitHeight": () => (/* binding */ fitHeight),
65511/* harmony export */ "fitSize": () => (/* binding */ fitSize),
65512/* harmony export */ "fitWidth": () => (/* binding */ fitWidth)
65513/* harmony export */ });
65514/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../stream.js */ "./node_modules/d3-geo/src/stream.js");
65515/* harmony import */ var _path_bounds_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../path/bounds.js */ "./node_modules/d3-geo/src/path/bounds.js");
65516
65517
65518
65519function fit(projection, fitBounds, object) {
65520 var clip = projection.clipExtent && projection.clipExtent();
65521 projection.scale(150).translate([0, 0]);
65522 if (clip != null) projection.clipExtent(null);
65523 (0,_stream_js__WEBPACK_IMPORTED_MODULE_0__["default"])(object, projection.stream(_path_bounds_js__WEBPACK_IMPORTED_MODULE_1__["default"]));
65524 fitBounds(_path_bounds_js__WEBPACK_IMPORTED_MODULE_1__["default"].result());
65525 if (clip != null) projection.clipExtent(clip);
65526 return projection;
65527}
65528
65529function fitExtent(projection, extent, object) {
65530 return fit(projection, function(b) {
65531 var w = extent[1][0] - extent[0][0],
65532 h = extent[1][1] - extent[0][1],
65533 k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),
65534 x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,
65535 y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;
65536 projection.scale(150 * k).translate([x, y]);
65537 }, object);
65538}
65539
65540function fitSize(projection, size, object) {
65541 return fitExtent(projection, [[0, 0], size], object);
65542}
65543
65544function fitWidth(projection, width, object) {
65545 return fit(projection, function(b) {
65546 var w = +width,
65547 k = w / (b[1][0] - b[0][0]),
65548 x = (w - k * (b[1][0] + b[0][0])) / 2,
65549 y = -k * b[0][1];
65550 projection.scale(150 * k).translate([x, y]);
65551 }, object);
65552}
65553
65554function fitHeight(projection, height, object) {
65555 return fit(projection, function(b) {
65556 var h = +height,
65557 k = h / (b[1][1] - b[0][1]),
65558 x = -k * b[0][0],
65559 y = (h - k * (b[1][1] + b[0][1])) / 2;
65560 projection.scale(150 * k).translate([x, y]);
65561 }, object);
65562}
65563
65564
65565/***/ }),
65566
65567/***/ "./node_modules/d3-geo/src/projection/gnomonic.js":
65568/*!********************************************************!*\
65569 !*** ./node_modules/d3-geo/src/projection/gnomonic.js ***!
65570 \********************************************************/
65571/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65572
65573"use strict";
65574__webpack_require__.r(__webpack_exports__);
65575/* harmony export */ __webpack_require__.d(__webpack_exports__, {
65576/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
65577/* harmony export */ "gnomonicRaw": () => (/* binding */ gnomonicRaw)
65578/* harmony export */ });
65579/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
65580/* harmony import */ var _azimuthal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal.js */ "./node_modules/d3-geo/src/projection/azimuthal.js");
65581/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
65582
65583
65584
65585
65586function gnomonicRaw(x, y) {
65587 var cy = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(y), k = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(x) * cy;
65588 return [cy * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(x) / k, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(y) / k];
65589}
65590
65591gnomonicRaw.invert = (0,_azimuthal_js__WEBPACK_IMPORTED_MODULE_1__.azimuthalInvert)(_math_js__WEBPACK_IMPORTED_MODULE_0__.atan);
65592
65593/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
65594 return (0,_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(gnomonicRaw)
65595 .scale(144.049)
65596 .clipAngle(60);
65597}
65598
65599
65600/***/ }),
65601
65602/***/ "./node_modules/d3-geo/src/projection/identity.js":
65603/*!********************************************************!*\
65604 !*** ./node_modules/d3-geo/src/projection/identity.js ***!
65605 \********************************************************/
65606/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65607
65608"use strict";
65609__webpack_require__.r(__webpack_exports__);
65610/* harmony export */ __webpack_require__.d(__webpack_exports__, {
65611/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
65612/* harmony export */ });
65613/* harmony import */ var _clip_rectangle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../clip/rectangle.js */ "./node_modules/d3-geo/src/clip/rectangle.js");
65614/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../identity.js */ "./node_modules/d3-geo/src/identity.js");
65615/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../transform.js */ "./node_modules/d3-geo/src/transform.js");
65616/* harmony import */ var _fit_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./fit.js */ "./node_modules/d3-geo/src/projection/fit.js");
65617/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
65618
65619
65620
65621
65622
65623
65624/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
65625 var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, // scale, translate and reflect
65626 alpha = 0, ca, sa, // angle
65627 x0 = null, y0, x1, y1, // clip extent
65628 kx = 1, ky = 1,
65629 transform = (0,_transform_js__WEBPACK_IMPORTED_MODULE_0__.transformer)({
65630 point: function(x, y) {
65631 var p = projection([x, y])
65632 this.stream.point(p[0], p[1]);
65633 }
65634 }),
65635 postclip = _identity_js__WEBPACK_IMPORTED_MODULE_1__["default"],
65636 cache,
65637 cacheStream;
65638
65639 function reset() {
65640 kx = k * sx;
65641 ky = k * sy;
65642 cache = cacheStream = null;
65643 return projection;
65644 }
65645
65646 function projection (p) {
65647 var x = p[0] * kx, y = p[1] * ky;
65648 if (alpha) {
65649 var t = y * ca - x * sa;
65650 x = x * ca + y * sa;
65651 y = t;
65652 }
65653 return [x + tx, y + ty];
65654 }
65655 projection.invert = function(p) {
65656 var x = p[0] - tx, y = p[1] - ty;
65657 if (alpha) {
65658 var t = y * ca + x * sa;
65659 x = x * ca - y * sa;
65660 y = t;
65661 }
65662 return [x / kx, y / ky];
65663 };
65664 projection.stream = function(stream) {
65665 return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));
65666 };
65667 projection.postclip = function(_) {
65668 return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;
65669 };
65670 projection.clipExtent = function(_) {
65671 return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, _identity_js__WEBPACK_IMPORTED_MODULE_1__["default"]) : (0,_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]];
65672 };
65673 projection.scale = function(_) {
65674 return arguments.length ? (k = +_, reset()) : k;
65675 };
65676 projection.translate = function(_) {
65677 return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty];
65678 }
65679 projection.angle = function(_) {
65680 return arguments.length ? (alpha = _ % 360 * _math_js__WEBPACK_IMPORTED_MODULE_3__.radians, sa = (0,_math_js__WEBPACK_IMPORTED_MODULE_3__.sin)(alpha), ca = (0,_math_js__WEBPACK_IMPORTED_MODULE_3__.cos)(alpha), reset()) : alpha * _math_js__WEBPACK_IMPORTED_MODULE_3__.degrees;
65681 };
65682 projection.reflectX = function(_) {
65683 return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0;
65684 };
65685 projection.reflectY = function(_) {
65686 return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0;
65687 };
65688 projection.fitExtent = function(extent, object) {
65689 return (0,_fit_js__WEBPACK_IMPORTED_MODULE_4__.fitExtent)(projection, extent, object);
65690 };
65691 projection.fitSize = function(size, object) {
65692 return (0,_fit_js__WEBPACK_IMPORTED_MODULE_4__.fitSize)(projection, size, object);
65693 };
65694 projection.fitWidth = function(width, object) {
65695 return (0,_fit_js__WEBPACK_IMPORTED_MODULE_4__.fitWidth)(projection, width, object);
65696 };
65697 projection.fitHeight = function(height, object) {
65698 return (0,_fit_js__WEBPACK_IMPORTED_MODULE_4__.fitHeight)(projection, height, object);
65699 };
65700
65701 return projection;
65702}
65703
65704
65705/***/ }),
65706
65707/***/ "./node_modules/d3-geo/src/projection/index.js":
65708/*!*****************************************************!*\
65709 !*** ./node_modules/d3-geo/src/projection/index.js ***!
65710 \*****************************************************/
65711/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65712
65713"use strict";
65714__webpack_require__.r(__webpack_exports__);
65715/* harmony export */ __webpack_require__.d(__webpack_exports__, {
65716/* harmony export */ "default": () => (/* binding */ projection),
65717/* harmony export */ "projectionMutator": () => (/* binding */ projectionMutator)
65718/* harmony export */ });
65719/* harmony import */ var _clip_antimeridian_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../clip/antimeridian.js */ "./node_modules/d3-geo/src/clip/antimeridian.js");
65720/* harmony import */ var _clip_circle_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../clip/circle.js */ "./node_modules/d3-geo/src/clip/circle.js");
65721/* harmony import */ var _clip_rectangle_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../clip/rectangle.js */ "./node_modules/d3-geo/src/clip/rectangle.js");
65722/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../compose.js */ "./node_modules/d3-geo/src/compose.js");
65723/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../identity.js */ "./node_modules/d3-geo/src/identity.js");
65724/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
65725/* harmony import */ var _rotation_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../rotation.js */ "./node_modules/d3-geo/src/rotation.js");
65726/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../transform.js */ "./node_modules/d3-geo/src/transform.js");
65727/* harmony import */ var _fit_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./fit.js */ "./node_modules/d3-geo/src/projection/fit.js");
65728/* harmony import */ var _resample_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./resample.js */ "./node_modules/d3-geo/src/projection/resample.js");
65729
65730
65731
65732
65733
65734
65735
65736
65737
65738
65739
65740var transformRadians = (0,_transform_js__WEBPACK_IMPORTED_MODULE_0__.transformer)({
65741 point: function(x, y) {
65742 this.stream.point(x * _math_js__WEBPACK_IMPORTED_MODULE_1__.radians, y * _math_js__WEBPACK_IMPORTED_MODULE_1__.radians);
65743 }
65744});
65745
65746function transformRotate(rotate) {
65747 return (0,_transform_js__WEBPACK_IMPORTED_MODULE_0__.transformer)({
65748 point: function(x, y) {
65749 var r = rotate(x, y);
65750 return this.stream.point(r[0], r[1]);
65751 }
65752 });
65753}
65754
65755function scaleTranslate(k, dx, dy, sx, sy) {
65756 function transform(x, y) {
65757 x *= sx; y *= sy;
65758 return [dx + k * x, dy - k * y];
65759 }
65760 transform.invert = function(x, y) {
65761 return [(x - dx) / k * sx, (dy - y) / k * sy];
65762 };
65763 return transform;
65764}
65765
65766function scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {
65767 if (!alpha) return scaleTranslate(k, dx, dy, sx, sy);
65768 var cosAlpha = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.cos)(alpha),
65769 sinAlpha = (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sin)(alpha),
65770 a = cosAlpha * k,
65771 b = sinAlpha * k,
65772 ai = cosAlpha / k,
65773 bi = sinAlpha / k,
65774 ci = (sinAlpha * dy - cosAlpha * dx) / k,
65775 fi = (sinAlpha * dx + cosAlpha * dy) / k;
65776 function transform(x, y) {
65777 x *= sx; y *= sy;
65778 return [a * x - b * y + dx, dy - b * x - a * y];
65779 }
65780 transform.invert = function(x, y) {
65781 return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];
65782 };
65783 return transform;
65784}
65785
65786function projection(project) {
65787 return projectionMutator(function() { return project; })();
65788}
65789
65790function projectionMutator(projectAt) {
65791 var project,
65792 k = 150, // scale
65793 x = 480, y = 250, // translate
65794 lambda = 0, phi = 0, // center
65795 deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate
65796 alpha = 0, // post-rotate angle
65797 sx = 1, // reflectX
65798 sy = 1, // reflectX
65799 theta = null, preclip = _clip_antimeridian_js__WEBPACK_IMPORTED_MODULE_2__["default"], // pre-clip angle
65800 x0 = null, y0, x1, y1, postclip = _identity_js__WEBPACK_IMPORTED_MODULE_3__["default"], // post-clip extent
65801 delta2 = 0.5, // precision
65802 projectResample,
65803 projectTransform,
65804 projectRotateTransform,
65805 cache,
65806 cacheStream;
65807
65808 function projection(point) {
65809 return projectRotateTransform(point[0] * _math_js__WEBPACK_IMPORTED_MODULE_1__.radians, point[1] * _math_js__WEBPACK_IMPORTED_MODULE_1__.radians);
65810 }
65811
65812 function invert(point) {
65813 point = projectRotateTransform.invert(point[0], point[1]);
65814 return point && [point[0] * _math_js__WEBPACK_IMPORTED_MODULE_1__.degrees, point[1] * _math_js__WEBPACK_IMPORTED_MODULE_1__.degrees];
65815 }
65816
65817 projection.stream = function(stream) {
65818 return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));
65819 };
65820
65821 projection.preclip = function(_) {
65822 return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;
65823 };
65824
65825 projection.postclip = function(_) {
65826 return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;
65827 };
65828
65829 projection.clipAngle = function(_) {
65830 return arguments.length ? (preclip = +_ ? (0,_clip_circle_js__WEBPACK_IMPORTED_MODULE_4__["default"])(theta = _ * _math_js__WEBPACK_IMPORTED_MODULE_1__.radians) : (theta = null, _clip_antimeridian_js__WEBPACK_IMPORTED_MODULE_2__["default"]), reset()) : theta * _math_js__WEBPACK_IMPORTED_MODULE_1__.degrees;
65831 };
65832
65833 projection.clipExtent = function(_) {
65834 return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, _identity_js__WEBPACK_IMPORTED_MODULE_3__["default"]) : (0,_clip_rectangle_js__WEBPACK_IMPORTED_MODULE_5__["default"])(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];
65835 };
65836
65837 projection.scale = function(_) {
65838 return arguments.length ? (k = +_, recenter()) : k;
65839 };
65840
65841 projection.translate = function(_) {
65842 return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];
65843 };
65844
65845 projection.center = function(_) {
65846 return arguments.length ? (lambda = _[0] % 360 * _math_js__WEBPACK_IMPORTED_MODULE_1__.radians, phi = _[1] % 360 * _math_js__WEBPACK_IMPORTED_MODULE_1__.radians, recenter()) : [lambda * _math_js__WEBPACK_IMPORTED_MODULE_1__.degrees, phi * _math_js__WEBPACK_IMPORTED_MODULE_1__.degrees];
65847 };
65848
65849 projection.rotate = function(_) {
65850 return arguments.length ? (deltaLambda = _[0] % 360 * _math_js__WEBPACK_IMPORTED_MODULE_1__.radians, deltaPhi = _[1] % 360 * _math_js__WEBPACK_IMPORTED_MODULE_1__.radians, deltaGamma = _.length > 2 ? _[2] % 360 * _math_js__WEBPACK_IMPORTED_MODULE_1__.radians : 0, recenter()) : [deltaLambda * _math_js__WEBPACK_IMPORTED_MODULE_1__.degrees, deltaPhi * _math_js__WEBPACK_IMPORTED_MODULE_1__.degrees, deltaGamma * _math_js__WEBPACK_IMPORTED_MODULE_1__.degrees];
65851 };
65852
65853 projection.angle = function(_) {
65854 return arguments.length ? (alpha = _ % 360 * _math_js__WEBPACK_IMPORTED_MODULE_1__.radians, recenter()) : alpha * _math_js__WEBPACK_IMPORTED_MODULE_1__.degrees;
65855 };
65856
65857 projection.reflectX = function(_) {
65858 return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;
65859 };
65860
65861 projection.reflectY = function(_) {
65862 return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;
65863 };
65864
65865 projection.precision = function(_) {
65866 return arguments.length ? (projectResample = (0,_resample_js__WEBPACK_IMPORTED_MODULE_6__["default"])(projectTransform, delta2 = _ * _), reset()) : (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.sqrt)(delta2);
65867 };
65868
65869 projection.fitExtent = function(extent, object) {
65870 return (0,_fit_js__WEBPACK_IMPORTED_MODULE_7__.fitExtent)(projection, extent, object);
65871 };
65872
65873 projection.fitSize = function(size, object) {
65874 return (0,_fit_js__WEBPACK_IMPORTED_MODULE_7__.fitSize)(projection, size, object);
65875 };
65876
65877 projection.fitWidth = function(width, object) {
65878 return (0,_fit_js__WEBPACK_IMPORTED_MODULE_7__.fitWidth)(projection, width, object);
65879 };
65880
65881 projection.fitHeight = function(height, object) {
65882 return (0,_fit_js__WEBPACK_IMPORTED_MODULE_7__.fitHeight)(projection, height, object);
65883 };
65884
65885 function recenter() {
65886 var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),
65887 transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha);
65888 rotate = (0,_rotation_js__WEBPACK_IMPORTED_MODULE_8__.rotateRadians)(deltaLambda, deltaPhi, deltaGamma);
65889 projectTransform = (0,_compose_js__WEBPACK_IMPORTED_MODULE_9__["default"])(project, transform);
65890 projectRotateTransform = (0,_compose_js__WEBPACK_IMPORTED_MODULE_9__["default"])(rotate, projectTransform);
65891 projectResample = (0,_resample_js__WEBPACK_IMPORTED_MODULE_6__["default"])(projectTransform, delta2);
65892 return reset();
65893 }
65894
65895 function reset() {
65896 cache = cacheStream = null;
65897 return projection;
65898 }
65899
65900 return function() {
65901 project = projectAt.apply(this, arguments);
65902 projection.invert = project.invert && invert;
65903 return recenter();
65904 };
65905}
65906
65907
65908/***/ }),
65909
65910/***/ "./node_modules/d3-geo/src/projection/mercator.js":
65911/*!********************************************************!*\
65912 !*** ./node_modules/d3-geo/src/projection/mercator.js ***!
65913 \********************************************************/
65914/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65915
65916"use strict";
65917__webpack_require__.r(__webpack_exports__);
65918/* harmony export */ __webpack_require__.d(__webpack_exports__, {
65919/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
65920/* harmony export */ "mercatorProjection": () => (/* binding */ mercatorProjection),
65921/* harmony export */ "mercatorRaw": () => (/* binding */ mercatorRaw)
65922/* harmony export */ });
65923/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
65924/* harmony import */ var _rotation_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../rotation.js */ "./node_modules/d3-geo/src/rotation.js");
65925/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
65926
65927
65928
65929
65930function mercatorRaw(lambda, phi) {
65931 return [lambda, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.log)((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.tan)((_math_js__WEBPACK_IMPORTED_MODULE_0__.halfPi + phi) / 2))];
65932}
65933
65934mercatorRaw.invert = function(x, y) {
65935 return [x, 2 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan)((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.exp)(y)) - _math_js__WEBPACK_IMPORTED_MODULE_0__.halfPi];
65936};
65937
65938/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
65939 return mercatorProjection(mercatorRaw)
65940 .scale(961 / _math_js__WEBPACK_IMPORTED_MODULE_0__.tau);
65941}
65942
65943function mercatorProjection(project) {
65944 var m = (0,_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(project),
65945 center = m.center,
65946 scale = m.scale,
65947 translate = m.translate,
65948 clipExtent = m.clipExtent,
65949 x0 = null, y0, x1, y1; // clip extent
65950
65951 m.scale = function(_) {
65952 return arguments.length ? (scale(_), reclip()) : scale();
65953 };
65954
65955 m.translate = function(_) {
65956 return arguments.length ? (translate(_), reclip()) : translate();
65957 };
65958
65959 m.center = function(_) {
65960 return arguments.length ? (center(_), reclip()) : center();
65961 };
65962
65963 m.clipExtent = function(_) {
65964 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]];
65965 };
65966
65967 function reclip() {
65968 var k = _math_js__WEBPACK_IMPORTED_MODULE_0__.pi * scale(),
65969 t = m((0,_rotation_js__WEBPACK_IMPORTED_MODULE_2__["default"])(m.rotate()).invert([0, 0]));
65970 return clipExtent(x0 == null
65971 ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw
65972 ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]
65973 : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);
65974 }
65975
65976 return reclip();
65977}
65978
65979
65980/***/ }),
65981
65982/***/ "./node_modules/d3-geo/src/projection/naturalEarth1.js":
65983/*!*************************************************************!*\
65984 !*** ./node_modules/d3-geo/src/projection/naturalEarth1.js ***!
65985 \*************************************************************/
65986/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65987
65988"use strict";
65989__webpack_require__.r(__webpack_exports__);
65990/* harmony export */ __webpack_require__.d(__webpack_exports__, {
65991/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
65992/* harmony export */ "naturalEarth1Raw": () => (/* binding */ naturalEarth1Raw)
65993/* harmony export */ });
65994/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
65995/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
65996
65997
65998
65999function naturalEarth1Raw(lambda, phi) {
66000 var phi2 = phi * phi, phi4 = phi2 * phi2;
66001 return [
66002 lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),
66003 phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))
66004 ];
66005}
66006
66007naturalEarth1Raw.invert = function(x, y) {
66008 var phi = y, i = 25, delta;
66009 do {
66010 var phi2 = phi * phi, phi4 = phi2 * phi2;
66011 phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /
66012 (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));
66013 } while ((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(delta) > _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon && --i > 0);
66014 return [
66015 x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),
66016 phi
66017 ];
66018};
66019
66020/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
66021 return (0,_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(naturalEarth1Raw)
66022 .scale(175.295);
66023}
66024
66025
66026/***/ }),
66027
66028/***/ "./node_modules/d3-geo/src/projection/orthographic.js":
66029/*!************************************************************!*\
66030 !*** ./node_modules/d3-geo/src/projection/orthographic.js ***!
66031 \************************************************************/
66032/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66033
66034"use strict";
66035__webpack_require__.r(__webpack_exports__);
66036/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66037/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
66038/* harmony export */ "orthographicRaw": () => (/* binding */ orthographicRaw)
66039/* harmony export */ });
66040/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
66041/* harmony import */ var _azimuthal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal.js */ "./node_modules/d3-geo/src/projection/azimuthal.js");
66042/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
66043
66044
66045
66046
66047function orthographicRaw(x, y) {
66048 return [(0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(y) * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(x), (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(y)];
66049}
66050
66051orthographicRaw.invert = (0,_azimuthal_js__WEBPACK_IMPORTED_MODULE_1__.azimuthalInvert)(_math_js__WEBPACK_IMPORTED_MODULE_0__.asin);
66052
66053/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
66054 return (0,_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(orthographicRaw)
66055 .scale(249.5)
66056 .clipAngle(90 + _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon);
66057}
66058
66059
66060/***/ }),
66061
66062/***/ "./node_modules/d3-geo/src/projection/resample.js":
66063/*!********************************************************!*\
66064 !*** ./node_modules/d3-geo/src/projection/resample.js ***!
66065 \********************************************************/
66066/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66067
66068"use strict";
66069__webpack_require__.r(__webpack_exports__);
66070/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66071/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
66072/* harmony export */ });
66073/* harmony import */ var _cartesian_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../cartesian.js */ "./node_modules/d3-geo/src/cartesian.js");
66074/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
66075/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../transform.js */ "./node_modules/d3-geo/src/transform.js");
66076
66077
66078
66079
66080var maxDepth = 16, // maximum depth of subdivision
66081 cosMinDistance = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(30 * _math_js__WEBPACK_IMPORTED_MODULE_0__.radians); // cos(minimum angular distance)
66082
66083/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(project, delta2) {
66084 return +delta2 ? resample(project, delta2) : resampleNone(project);
66085}
66086
66087function resampleNone(project) {
66088 return (0,_transform_js__WEBPACK_IMPORTED_MODULE_1__.transformer)({
66089 point: function(x, y) {
66090 x = project(x, y);
66091 this.stream.point(x[0], x[1]);
66092 }
66093 });
66094}
66095
66096function resample(project, delta2) {
66097
66098 function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {
66099 var dx = x1 - x0,
66100 dy = y1 - y0,
66101 d2 = dx * dx + dy * dy;
66102 if (d2 > 4 * delta2 && depth--) {
66103 var a = a0 + a1,
66104 b = b0 + b1,
66105 c = c0 + c1,
66106 m = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)(a * a + b * b + c * c),
66107 phi2 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.asin)(c /= m),
66108 lambda2 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(c) - 1) < _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon || (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(lambda0 - lambda1) < _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon ? (lambda0 + lambda1) / 2 : (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(b, a),
66109 p = project(lambda2, phi2),
66110 x2 = p[0],
66111 y2 = p[1],
66112 dx2 = x2 - x0,
66113 dy2 = y2 - y0,
66114 dz = dy * dx2 - dx * dy2;
66115 if (dz * dz / d2 > delta2 // perpendicular projected distance
66116 || (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end
66117 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance
66118 resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);
66119 stream.point(x2, y2);
66120 resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);
66121 }
66122 }
66123 }
66124 return function(stream) {
66125 var lambda00, x00, y00, a00, b00, c00, // first point
66126 lambda0, x0, y0, a0, b0, c0; // previous point
66127
66128 var resampleStream = {
66129 point: point,
66130 lineStart: lineStart,
66131 lineEnd: lineEnd,
66132 polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },
66133 polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }
66134 };
66135
66136 function point(x, y) {
66137 x = project(x, y);
66138 stream.point(x[0], x[1]);
66139 }
66140
66141 function lineStart() {
66142 x0 = NaN;
66143 resampleStream.point = linePoint;
66144 stream.lineStart();
66145 }
66146
66147 function linePoint(lambda, phi) {
66148 var c = (0,_cartesian_js__WEBPACK_IMPORTED_MODULE_2__.cartesian)([lambda, phi]), p = project(lambda, phi);
66149 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);
66150 stream.point(x0, y0);
66151 }
66152
66153 function lineEnd() {
66154 resampleStream.point = point;
66155 stream.lineEnd();
66156 }
66157
66158 function ringStart() {
66159 lineStart();
66160 resampleStream.point = ringPoint;
66161 resampleStream.lineEnd = ringEnd;
66162 }
66163
66164 function ringPoint(lambda, phi) {
66165 linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
66166 resampleStream.point = linePoint;
66167 }
66168
66169 function ringEnd() {
66170 resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);
66171 resampleStream.lineEnd = lineEnd;
66172 lineEnd();
66173 }
66174
66175 return resampleStream;
66176 };
66177}
66178
66179
66180/***/ }),
66181
66182/***/ "./node_modules/d3-geo/src/projection/stereographic.js":
66183/*!*************************************************************!*\
66184 !*** ./node_modules/d3-geo/src/projection/stereographic.js ***!
66185 \*************************************************************/
66186/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66187
66188"use strict";
66189__webpack_require__.r(__webpack_exports__);
66190/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66191/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
66192/* harmony export */ "stereographicRaw": () => (/* binding */ stereographicRaw)
66193/* harmony export */ });
66194/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
66195/* harmony import */ var _azimuthal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal.js */ "./node_modules/d3-geo/src/projection/azimuthal.js");
66196/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-geo/src/projection/index.js");
66197
66198
66199
66200
66201function stereographicRaw(x, y) {
66202 var cy = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(y), k = 1 + (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(x) * cy;
66203 return [cy * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(x) / k, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(y) / k];
66204}
66205
66206stereographicRaw.invert = (0,_azimuthal_js__WEBPACK_IMPORTED_MODULE_1__.azimuthalInvert)(function(z) {
66207 return 2 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan)(z);
66208});
66209
66210/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
66211 return (0,_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(stereographicRaw)
66212 .scale(250)
66213 .clipAngle(142);
66214}
66215
66216
66217/***/ }),
66218
66219/***/ "./node_modules/d3-geo/src/projection/transverseMercator.js":
66220/*!******************************************************************!*\
66221 !*** ./node_modules/d3-geo/src/projection/transverseMercator.js ***!
66222 \******************************************************************/
66223/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66224
66225"use strict";
66226__webpack_require__.r(__webpack_exports__);
66227/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66228/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
66229/* harmony export */ "transverseMercatorRaw": () => (/* binding */ transverseMercatorRaw)
66230/* harmony export */ });
66231/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-geo/src/math.js");
66232/* harmony import */ var _mercator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mercator.js */ "./node_modules/d3-geo/src/projection/mercator.js");
66233
66234
66235
66236function transverseMercatorRaw(lambda, phi) {
66237 return [(0,_math_js__WEBPACK_IMPORTED_MODULE_0__.log)((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.tan)((_math_js__WEBPACK_IMPORTED_MODULE_0__.halfPi + phi) / 2)), -lambda];
66238}
66239
66240transverseMercatorRaw.invert = function(x, y) {
66241 return [-y, 2 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan)((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.exp)(x)) - _math_js__WEBPACK_IMPORTED_MODULE_0__.halfPi];
66242};
66243
66244/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
66245 var m = (0,_mercator_js__WEBPACK_IMPORTED_MODULE_1__.mercatorProjection)(transverseMercatorRaw),
66246 center = m.center,
66247 rotate = m.rotate;
66248
66249 m.center = function(_) {
66250 return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);
66251 };
66252
66253 m.rotate = function(_) {
66254 return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);
66255 };
66256
66257 return rotate([0, 0, 90])
66258 .scale(159.155);
66259}
66260
66261
66262/***/ }),
66263
66264/***/ "./node_modules/d3-geo/src/rotation.js":
66265/*!*********************************************!*\
66266 !*** ./node_modules/d3-geo/src/rotation.js ***!
66267 \*********************************************/
66268/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66269
66270"use strict";
66271__webpack_require__.r(__webpack_exports__);
66272/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66273/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
66274/* harmony export */ "rotateRadians": () => (/* binding */ rotateRadians)
66275/* harmony export */ });
66276/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compose.js */ "./node_modules/d3-geo/src/compose.js");
66277/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-geo/src/math.js");
66278
66279
66280
66281function rotationIdentity(lambda, phi) {
66282 return [(0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(lambda) > _math_js__WEBPACK_IMPORTED_MODULE_0__.pi ? lambda + Math.round(-lambda / _math_js__WEBPACK_IMPORTED_MODULE_0__.tau) * _math_js__WEBPACK_IMPORTED_MODULE_0__.tau : lambda, phi];
66283}
66284
66285rotationIdentity.invert = rotationIdentity;
66286
66287function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {
66288 return (deltaLambda %= _math_js__WEBPACK_IMPORTED_MODULE_0__.tau) ? (deltaPhi || deltaGamma ? (0,_compose_js__WEBPACK_IMPORTED_MODULE_1__["default"])(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))
66289 : rotationLambda(deltaLambda))
66290 : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)
66291 : rotationIdentity);
66292}
66293
66294function forwardRotationLambda(deltaLambda) {
66295 return function(lambda, phi) {
66296 return lambda += deltaLambda, [lambda > _math_js__WEBPACK_IMPORTED_MODULE_0__.pi ? lambda - _math_js__WEBPACK_IMPORTED_MODULE_0__.tau : lambda < -_math_js__WEBPACK_IMPORTED_MODULE_0__.pi ? lambda + _math_js__WEBPACK_IMPORTED_MODULE_0__.tau : lambda, phi];
66297 };
66298}
66299
66300function rotationLambda(deltaLambda) {
66301 var rotation = forwardRotationLambda(deltaLambda);
66302 rotation.invert = forwardRotationLambda(-deltaLambda);
66303 return rotation;
66304}
66305
66306function rotationPhiGamma(deltaPhi, deltaGamma) {
66307 var cosDeltaPhi = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(deltaPhi),
66308 sinDeltaPhi = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(deltaPhi),
66309 cosDeltaGamma = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(deltaGamma),
66310 sinDeltaGamma = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(deltaGamma);
66311
66312 function rotation(lambda, phi) {
66313 var cosPhi = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(phi),
66314 x = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(lambda) * cosPhi,
66315 y = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(lambda) * cosPhi,
66316 z = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(phi),
66317 k = z * cosDeltaPhi + x * sinDeltaPhi;
66318 return [
66319 (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),
66320 (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.asin)(k * cosDeltaGamma + y * sinDeltaGamma)
66321 ];
66322 }
66323
66324 rotation.invert = function(lambda, phi) {
66325 var cosPhi = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(phi),
66326 x = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(lambda) * cosPhi,
66327 y = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(lambda) * cosPhi,
66328 z = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(phi),
66329 k = z * cosDeltaGamma - y * sinDeltaGamma;
66330 return [
66331 (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),
66332 (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.asin)(k * cosDeltaPhi - x * sinDeltaPhi)
66333 ];
66334 };
66335
66336 return rotation;
66337}
66338
66339/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(rotate) {
66340 rotate = rotateRadians(rotate[0] * _math_js__WEBPACK_IMPORTED_MODULE_0__.radians, rotate[1] * _math_js__WEBPACK_IMPORTED_MODULE_0__.radians, rotate.length > 2 ? rotate[2] * _math_js__WEBPACK_IMPORTED_MODULE_0__.radians : 0);
66341
66342 function forward(coordinates) {
66343 coordinates = rotate(coordinates[0] * _math_js__WEBPACK_IMPORTED_MODULE_0__.radians, coordinates[1] * _math_js__WEBPACK_IMPORTED_MODULE_0__.radians);
66344 return coordinates[0] *= _math_js__WEBPACK_IMPORTED_MODULE_0__.degrees, coordinates[1] *= _math_js__WEBPACK_IMPORTED_MODULE_0__.degrees, coordinates;
66345 }
66346
66347 forward.invert = function(coordinates) {
66348 coordinates = rotate.invert(coordinates[0] * _math_js__WEBPACK_IMPORTED_MODULE_0__.radians, coordinates[1] * _math_js__WEBPACK_IMPORTED_MODULE_0__.radians);
66349 return coordinates[0] *= _math_js__WEBPACK_IMPORTED_MODULE_0__.degrees, coordinates[1] *= _math_js__WEBPACK_IMPORTED_MODULE_0__.degrees, coordinates;
66350 };
66351
66352 return forward;
66353}
66354
66355
66356/***/ }),
66357
66358/***/ "./node_modules/d3-geo/src/stream.js":
66359/*!*******************************************!*\
66360 !*** ./node_modules/d3-geo/src/stream.js ***!
66361 \*******************************************/
66362/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66363
66364"use strict";
66365__webpack_require__.r(__webpack_exports__);
66366/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66367/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
66368/* harmony export */ });
66369function streamGeometry(geometry, stream) {
66370 if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {
66371 streamGeometryType[geometry.type](geometry, stream);
66372 }
66373}
66374
66375var streamObjectType = {
66376 Feature: function(object, stream) {
66377 streamGeometry(object.geometry, stream);
66378 },
66379 FeatureCollection: function(object, stream) {
66380 var features = object.features, i = -1, n = features.length;
66381 while (++i < n) streamGeometry(features[i].geometry, stream);
66382 }
66383};
66384
66385var streamGeometryType = {
66386 Sphere: function(object, stream) {
66387 stream.sphere();
66388 },
66389 Point: function(object, stream) {
66390 object = object.coordinates;
66391 stream.point(object[0], object[1], object[2]);
66392 },
66393 MultiPoint: function(object, stream) {
66394 var coordinates = object.coordinates, i = -1, n = coordinates.length;
66395 while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);
66396 },
66397 LineString: function(object, stream) {
66398 streamLine(object.coordinates, stream, 0);
66399 },
66400 MultiLineString: function(object, stream) {
66401 var coordinates = object.coordinates, i = -1, n = coordinates.length;
66402 while (++i < n) streamLine(coordinates[i], stream, 0);
66403 },
66404 Polygon: function(object, stream) {
66405 streamPolygon(object.coordinates, stream);
66406 },
66407 MultiPolygon: function(object, stream) {
66408 var coordinates = object.coordinates, i = -1, n = coordinates.length;
66409 while (++i < n) streamPolygon(coordinates[i], stream);
66410 },
66411 GeometryCollection: function(object, stream) {
66412 var geometries = object.geometries, i = -1, n = geometries.length;
66413 while (++i < n) streamGeometry(geometries[i], stream);
66414 }
66415};
66416
66417function streamLine(coordinates, stream, closed) {
66418 var i = -1, n = coordinates.length - closed, coordinate;
66419 stream.lineStart();
66420 while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);
66421 stream.lineEnd();
66422}
66423
66424function streamPolygon(coordinates, stream) {
66425 var i = -1, n = coordinates.length;
66426 stream.polygonStart();
66427 while (++i < n) streamLine(coordinates[i], stream, 1);
66428 stream.polygonEnd();
66429}
66430
66431/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(object, stream) {
66432 if (object && streamObjectType.hasOwnProperty(object.type)) {
66433 streamObjectType[object.type](object, stream);
66434 } else {
66435 streamGeometry(object, stream);
66436 }
66437}
66438
66439
66440/***/ }),
66441
66442/***/ "./node_modules/d3-geo/src/transform.js":
66443/*!**********************************************!*\
66444 !*** ./node_modules/d3-geo/src/transform.js ***!
66445 \**********************************************/
66446/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66447
66448"use strict";
66449__webpack_require__.r(__webpack_exports__);
66450/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66451/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
66452/* harmony export */ "transformer": () => (/* binding */ transformer)
66453/* harmony export */ });
66454/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(methods) {
66455 return {
66456 stream: transformer(methods)
66457 };
66458}
66459
66460function transformer(methods) {
66461 return function(stream) {
66462 var s = new TransformStream;
66463 for (var key in methods) s[key] = methods[key];
66464 s.stream = stream;
66465 return s;
66466 };
66467}
66468
66469function TransformStream() {}
66470
66471TransformStream.prototype = {
66472 constructor: TransformStream,
66473 point: function(x, y) { this.stream.point(x, y); },
66474 sphere: function() { this.stream.sphere(); },
66475 lineStart: function() { this.stream.lineStart(); },
66476 lineEnd: function() { this.stream.lineEnd(); },
66477 polygonStart: function() { this.stream.polygonStart(); },
66478 polygonEnd: function() { this.stream.polygonEnd(); }
66479};
66480
66481
66482/***/ }),
66483
66484/***/ "./node_modules/d3-hierarchy/src/accessors.js":
66485/*!****************************************************!*\
66486 !*** ./node_modules/d3-hierarchy/src/accessors.js ***!
66487 \****************************************************/
66488/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66489
66490"use strict";
66491__webpack_require__.r(__webpack_exports__);
66492/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66493/* harmony export */ "optional": () => (/* binding */ optional),
66494/* harmony export */ "required": () => (/* binding */ required)
66495/* harmony export */ });
66496function optional(f) {
66497 return f == null ? null : required(f);
66498}
66499
66500function required(f) {
66501 if (typeof f !== "function") throw new Error;
66502 return f;
66503}
66504
66505
66506/***/ }),
66507
66508/***/ "./node_modules/d3-hierarchy/src/array.js":
66509/*!************************************************!*\
66510 !*** ./node_modules/d3-hierarchy/src/array.js ***!
66511 \************************************************/
66512/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66513
66514"use strict";
66515__webpack_require__.r(__webpack_exports__);
66516/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66517/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
66518/* harmony export */ "shuffle": () => (/* binding */ shuffle)
66519/* harmony export */ });
66520/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x) {
66521 return typeof x === "object" && "length" in x
66522 ? x // Array, TypedArray, NodeList, array-like
66523 : Array.from(x); // Map, Set, iterable, string, or anything else
66524}
66525
66526function shuffle(array) {
66527 var m = array.length,
66528 t,
66529 i;
66530
66531 while (m) {
66532 i = Math.random() * m-- | 0;
66533 t = array[m];
66534 array[m] = array[i];
66535 array[i] = t;
66536 }
66537
66538 return array;
66539}
66540
66541
66542/***/ }),
66543
66544/***/ "./node_modules/d3-hierarchy/src/cluster.js":
66545/*!**************************************************!*\
66546 !*** ./node_modules/d3-hierarchy/src/cluster.js ***!
66547 \**************************************************/
66548/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66549
66550"use strict";
66551__webpack_require__.r(__webpack_exports__);
66552/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66553/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
66554/* harmony export */ });
66555function defaultSeparation(a, b) {
66556 return a.parent === b.parent ? 1 : 2;
66557}
66558
66559function meanX(children) {
66560 return children.reduce(meanXReduce, 0) / children.length;
66561}
66562
66563function meanXReduce(x, c) {
66564 return x + c.x;
66565}
66566
66567function maxY(children) {
66568 return 1 + children.reduce(maxYReduce, 0);
66569}
66570
66571function maxYReduce(y, c) {
66572 return Math.max(y, c.y);
66573}
66574
66575function leafLeft(node) {
66576 var children;
66577 while (children = node.children) node = children[0];
66578 return node;
66579}
66580
66581function leafRight(node) {
66582 var children;
66583 while (children = node.children) node = children[children.length - 1];
66584 return node;
66585}
66586
66587/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
66588 var separation = defaultSeparation,
66589 dx = 1,
66590 dy = 1,
66591 nodeSize = false;
66592
66593 function cluster(root) {
66594 var previousNode,
66595 x = 0;
66596
66597 // First walk, computing the initial x & y values.
66598 root.eachAfter(function(node) {
66599 var children = node.children;
66600 if (children) {
66601 node.x = meanX(children);
66602 node.y = maxY(children);
66603 } else {
66604 node.x = previousNode ? x += separation(node, previousNode) : 0;
66605 node.y = 0;
66606 previousNode = node;
66607 }
66608 });
66609
66610 var left = leafLeft(root),
66611 right = leafRight(root),
66612 x0 = left.x - separation(left, right) / 2,
66613 x1 = right.x + separation(right, left) / 2;
66614
66615 // Second walk, normalizing x & y to the desired size.
66616 return root.eachAfter(nodeSize ? function(node) {
66617 node.x = (node.x - root.x) * dx;
66618 node.y = (root.y - node.y) * dy;
66619 } : function(node) {
66620 node.x = (node.x - x0) / (x1 - x0) * dx;
66621 node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;
66622 });
66623 }
66624
66625 cluster.separation = function(x) {
66626 return arguments.length ? (separation = x, cluster) : separation;
66627 };
66628
66629 cluster.size = function(x) {
66630 return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);
66631 };
66632
66633 cluster.nodeSize = function(x) {
66634 return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);
66635 };
66636
66637 return cluster;
66638}
66639
66640
66641/***/ }),
66642
66643/***/ "./node_modules/d3-hierarchy/src/constant.js":
66644/*!***************************************************!*\
66645 !*** ./node_modules/d3-hierarchy/src/constant.js ***!
66646 \***************************************************/
66647/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66648
66649"use strict";
66650__webpack_require__.r(__webpack_exports__);
66651/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66652/* harmony export */ "constantZero": () => (/* binding */ constantZero),
66653/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
66654/* harmony export */ });
66655function constantZero() {
66656 return 0;
66657}
66658
66659/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x) {
66660 return function() {
66661 return x;
66662 };
66663}
66664
66665
66666/***/ }),
66667
66668/***/ "./node_modules/d3-hierarchy/src/hierarchy/ancestors.js":
66669/*!**************************************************************!*\
66670 !*** ./node_modules/d3-hierarchy/src/hierarchy/ancestors.js ***!
66671 \**************************************************************/
66672/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66673
66674"use strict";
66675__webpack_require__.r(__webpack_exports__);
66676/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66677/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
66678/* harmony export */ });
66679/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
66680 var node = this, nodes = [node];
66681 while (node = node.parent) {
66682 nodes.push(node);
66683 }
66684 return nodes;
66685}
66686
66687
66688/***/ }),
66689
66690/***/ "./node_modules/d3-hierarchy/src/hierarchy/count.js":
66691/*!**********************************************************!*\
66692 !*** ./node_modules/d3-hierarchy/src/hierarchy/count.js ***!
66693 \**********************************************************/
66694/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66695
66696"use strict";
66697__webpack_require__.r(__webpack_exports__);
66698/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66699/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
66700/* harmony export */ });
66701function count(node) {
66702 var sum = 0,
66703 children = node.children,
66704 i = children && children.length;
66705 if (!i) sum = 1;
66706 else while (--i >= 0) sum += children[i].value;
66707 node.value = sum;
66708}
66709
66710/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
66711 return this.eachAfter(count);
66712}
66713
66714
66715/***/ }),
66716
66717/***/ "./node_modules/d3-hierarchy/src/hierarchy/descendants.js":
66718/*!****************************************************************!*\
66719 !*** ./node_modules/d3-hierarchy/src/hierarchy/descendants.js ***!
66720 \****************************************************************/
66721/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66722
66723"use strict";
66724__webpack_require__.r(__webpack_exports__);
66725/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66726/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
66727/* harmony export */ });
66728/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
66729 return Array.from(this);
66730}
66731
66732
66733/***/ }),
66734
66735/***/ "./node_modules/d3-hierarchy/src/hierarchy/each.js":
66736/*!*********************************************************!*\
66737 !*** ./node_modules/d3-hierarchy/src/hierarchy/each.js ***!
66738 \*********************************************************/
66739/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66740
66741"use strict";
66742__webpack_require__.r(__webpack_exports__);
66743/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66744/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
66745/* harmony export */ });
66746/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(callback, that) {
66747 let index = -1;
66748 for (const node of this) {
66749 callback.call(that, node, ++index, this);
66750 }
66751 return this;
66752}
66753
66754
66755/***/ }),
66756
66757/***/ "./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js":
66758/*!**************************************************************!*\
66759 !*** ./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js ***!
66760 \**************************************************************/
66761/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66762
66763"use strict";
66764__webpack_require__.r(__webpack_exports__);
66765/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66766/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
66767/* harmony export */ });
66768/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(callback, that) {
66769 var node = this, nodes = [node], next = [], children, i, n, index = -1;
66770 while (node = nodes.pop()) {
66771 next.push(node);
66772 if (children = node.children) {
66773 for (i = 0, n = children.length; i < n; ++i) {
66774 nodes.push(children[i]);
66775 }
66776 }
66777 }
66778 while (node = next.pop()) {
66779 callback.call(that, node, ++index, this);
66780 }
66781 return this;
66782}
66783
66784
66785/***/ }),
66786
66787/***/ "./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js":
66788/*!***************************************************************!*\
66789 !*** ./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js ***!
66790 \***************************************************************/
66791/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66792
66793"use strict";
66794__webpack_require__.r(__webpack_exports__);
66795/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66796/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
66797/* harmony export */ });
66798/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(callback, that) {
66799 var node = this, nodes = [node], children, i, index = -1;
66800 while (node = nodes.pop()) {
66801 callback.call(that, node, ++index, this);
66802 if (children = node.children) {
66803 for (i = children.length - 1; i >= 0; --i) {
66804 nodes.push(children[i]);
66805 }
66806 }
66807 }
66808 return this;
66809}
66810
66811
66812/***/ }),
66813
66814/***/ "./node_modules/d3-hierarchy/src/hierarchy/find.js":
66815/*!*********************************************************!*\
66816 !*** ./node_modules/d3-hierarchy/src/hierarchy/find.js ***!
66817 \*********************************************************/
66818/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66819
66820"use strict";
66821__webpack_require__.r(__webpack_exports__);
66822/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66823/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
66824/* harmony export */ });
66825/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(callback, that) {
66826 let index = -1;
66827 for (const node of this) {
66828 if (callback.call(that, node, ++index, this)) {
66829 return node;
66830 }
66831 }
66832}
66833
66834
66835/***/ }),
66836
66837/***/ "./node_modules/d3-hierarchy/src/hierarchy/index.js":
66838/*!**********************************************************!*\
66839 !*** ./node_modules/d3-hierarchy/src/hierarchy/index.js ***!
66840 \**********************************************************/
66841/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66842
66843"use strict";
66844__webpack_require__.r(__webpack_exports__);
66845/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66846/* harmony export */ "Node": () => (/* binding */ Node),
66847/* harmony export */ "computeHeight": () => (/* binding */ computeHeight),
66848/* harmony export */ "default": () => (/* binding */ hierarchy)
66849/* harmony export */ });
66850/* harmony import */ var _count_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./count.js */ "./node_modules/d3-hierarchy/src/hierarchy/count.js");
66851/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./each.js */ "./node_modules/d3-hierarchy/src/hierarchy/each.js");
66852/* harmony import */ var _eachBefore_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./eachBefore.js */ "./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js");
66853/* harmony import */ var _eachAfter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./eachAfter.js */ "./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js");
66854/* harmony import */ var _find_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./find.js */ "./node_modules/d3-hierarchy/src/hierarchy/find.js");
66855/* harmony import */ var _sum_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./sum.js */ "./node_modules/d3-hierarchy/src/hierarchy/sum.js");
66856/* harmony import */ var _sort_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./sort.js */ "./node_modules/d3-hierarchy/src/hierarchy/sort.js");
66857/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./path.js */ "./node_modules/d3-hierarchy/src/hierarchy/path.js");
66858/* harmony import */ var _ancestors_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ancestors.js */ "./node_modules/d3-hierarchy/src/hierarchy/ancestors.js");
66859/* harmony import */ var _descendants_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./descendants.js */ "./node_modules/d3-hierarchy/src/hierarchy/descendants.js");
66860/* harmony import */ var _leaves_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./leaves.js */ "./node_modules/d3-hierarchy/src/hierarchy/leaves.js");
66861/* harmony import */ var _links_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./links.js */ "./node_modules/d3-hierarchy/src/hierarchy/links.js");
66862/* harmony import */ var _iterator_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./iterator.js */ "./node_modules/d3-hierarchy/src/hierarchy/iterator.js");
66863
66864
66865
66866
66867
66868
66869
66870
66871
66872
66873
66874
66875
66876
66877function hierarchy(data, children) {
66878 if (data instanceof Map) {
66879 data = [undefined, data];
66880 if (children === undefined) children = mapChildren;
66881 } else if (children === undefined) {
66882 children = objectChildren;
66883 }
66884
66885 var root = new Node(data),
66886 node,
66887 nodes = [root],
66888 child,
66889 childs,
66890 i,
66891 n;
66892
66893 while (node = nodes.pop()) {
66894 if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {
66895 node.children = childs;
66896 for (i = n - 1; i >= 0; --i) {
66897 nodes.push(child = childs[i] = new Node(childs[i]));
66898 child.parent = node;
66899 child.depth = node.depth + 1;
66900 }
66901 }
66902 }
66903
66904 return root.eachBefore(computeHeight);
66905}
66906
66907function node_copy() {
66908 return hierarchy(this).eachBefore(copyData);
66909}
66910
66911function objectChildren(d) {
66912 return d.children;
66913}
66914
66915function mapChildren(d) {
66916 return Array.isArray(d) ? d[1] : null;
66917}
66918
66919function copyData(node) {
66920 if (node.data.value !== undefined) node.value = node.data.value;
66921 node.data = node.data.data;
66922}
66923
66924function computeHeight(node) {
66925 var height = 0;
66926 do node.height = height;
66927 while ((node = node.parent) && (node.height < ++height));
66928}
66929
66930function Node(data) {
66931 this.data = data;
66932 this.depth =
66933 this.height = 0;
66934 this.parent = null;
66935}
66936
66937Node.prototype = hierarchy.prototype = {
66938 constructor: Node,
66939 count: _count_js__WEBPACK_IMPORTED_MODULE_0__["default"],
66940 each: _each_js__WEBPACK_IMPORTED_MODULE_1__["default"],
66941 eachAfter: _eachAfter_js__WEBPACK_IMPORTED_MODULE_2__["default"],
66942 eachBefore: _eachBefore_js__WEBPACK_IMPORTED_MODULE_3__["default"],
66943 find: _find_js__WEBPACK_IMPORTED_MODULE_4__["default"],
66944 sum: _sum_js__WEBPACK_IMPORTED_MODULE_5__["default"],
66945 sort: _sort_js__WEBPACK_IMPORTED_MODULE_6__["default"],
66946 path: _path_js__WEBPACK_IMPORTED_MODULE_7__["default"],
66947 ancestors: _ancestors_js__WEBPACK_IMPORTED_MODULE_8__["default"],
66948 descendants: _descendants_js__WEBPACK_IMPORTED_MODULE_9__["default"],
66949 leaves: _leaves_js__WEBPACK_IMPORTED_MODULE_10__["default"],
66950 links: _links_js__WEBPACK_IMPORTED_MODULE_11__["default"],
66951 copy: node_copy,
66952 [Symbol.iterator]: _iterator_js__WEBPACK_IMPORTED_MODULE_12__["default"]
66953};
66954
66955
66956/***/ }),
66957
66958/***/ "./node_modules/d3-hierarchy/src/hierarchy/iterator.js":
66959/*!*************************************************************!*\
66960 !*** ./node_modules/d3-hierarchy/src/hierarchy/iterator.js ***!
66961 \*************************************************************/
66962/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66963
66964"use strict";
66965__webpack_require__.r(__webpack_exports__);
66966/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66967/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
66968/* harmony export */ });
66969/* harmony default export */ function* __WEBPACK_DEFAULT_EXPORT__() {
66970 var node = this, current, next = [node], children, i, n;
66971 do {
66972 current = next.reverse(), next = [];
66973 while (node = current.pop()) {
66974 yield node;
66975 if (children = node.children) {
66976 for (i = 0, n = children.length; i < n; ++i) {
66977 next.push(children[i]);
66978 }
66979 }
66980 }
66981 } while (next.length);
66982}
66983
66984
66985/***/ }),
66986
66987/***/ "./node_modules/d3-hierarchy/src/hierarchy/leaves.js":
66988/*!***********************************************************!*\
66989 !*** ./node_modules/d3-hierarchy/src/hierarchy/leaves.js ***!
66990 \***********************************************************/
66991/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
66992
66993"use strict";
66994__webpack_require__.r(__webpack_exports__);
66995/* harmony export */ __webpack_require__.d(__webpack_exports__, {
66996/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
66997/* harmony export */ });
66998/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
66999 var leaves = [];
67000 this.eachBefore(function(node) {
67001 if (!node.children) {
67002 leaves.push(node);
67003 }
67004 });
67005 return leaves;
67006}
67007
67008
67009/***/ }),
67010
67011/***/ "./node_modules/d3-hierarchy/src/hierarchy/links.js":
67012/*!**********************************************************!*\
67013 !*** ./node_modules/d3-hierarchy/src/hierarchy/links.js ***!
67014 \**********************************************************/
67015/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
67016
67017"use strict";
67018__webpack_require__.r(__webpack_exports__);
67019/* harmony export */ __webpack_require__.d(__webpack_exports__, {
67020/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
67021/* harmony export */ });
67022/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
67023 var root = this, links = [];
67024 root.each(function(node) {
67025 if (node !== root) { // Don’t include the root’s parent, if any.
67026 links.push({source: node.parent, target: node});
67027 }
67028 });
67029 return links;
67030}
67031
67032
67033/***/ }),
67034
67035/***/ "./node_modules/d3-hierarchy/src/hierarchy/path.js":
67036/*!*********************************************************!*\
67037 !*** ./node_modules/d3-hierarchy/src/hierarchy/path.js ***!
67038 \*********************************************************/
67039/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
67040
67041"use strict";
67042__webpack_require__.r(__webpack_exports__);
67043/* harmony export */ __webpack_require__.d(__webpack_exports__, {
67044/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
67045/* harmony export */ });
67046/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(end) {
67047 var start = this,
67048 ancestor = leastCommonAncestor(start, end),
67049 nodes = [start];
67050 while (start !== ancestor) {
67051 start = start.parent;
67052 nodes.push(start);
67053 }
67054 var k = nodes.length;
67055 while (end !== ancestor) {
67056 nodes.splice(k, 0, end);
67057 end = end.parent;
67058 }
67059 return nodes;
67060}
67061
67062function leastCommonAncestor(a, b) {
67063 if (a === b) return a;
67064 var aNodes = a.ancestors(),
67065 bNodes = b.ancestors(),
67066 c = null;
67067 a = aNodes.pop();
67068 b = bNodes.pop();
67069 while (a === b) {
67070 c = a;
67071 a = aNodes.pop();
67072 b = bNodes.pop();
67073 }
67074 return c;
67075}
67076
67077
67078/***/ }),
67079
67080/***/ "./node_modules/d3-hierarchy/src/hierarchy/sort.js":
67081/*!*********************************************************!*\
67082 !*** ./node_modules/d3-hierarchy/src/hierarchy/sort.js ***!
67083 \*********************************************************/
67084/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
67085
67086"use strict";
67087__webpack_require__.r(__webpack_exports__);
67088/* harmony export */ __webpack_require__.d(__webpack_exports__, {
67089/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
67090/* harmony export */ });
67091/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(compare) {
67092 return this.eachBefore(function(node) {
67093 if (node.children) {
67094 node.children.sort(compare);
67095 }
67096 });
67097}
67098
67099
67100/***/ }),
67101
67102/***/ "./node_modules/d3-hierarchy/src/hierarchy/sum.js":
67103/*!********************************************************!*\
67104 !*** ./node_modules/d3-hierarchy/src/hierarchy/sum.js ***!
67105 \********************************************************/
67106/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
67107
67108"use strict";
67109__webpack_require__.r(__webpack_exports__);
67110/* harmony export */ __webpack_require__.d(__webpack_exports__, {
67111/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
67112/* harmony export */ });
67113/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) {
67114 return this.eachAfter(function(node) {
67115 var sum = +value(node.data) || 0,
67116 children = node.children,
67117 i = children && children.length;
67118 while (--i >= 0) sum += children[i].value;
67119 node.value = sum;
67120 });
67121}
67122
67123
67124/***/ }),
67125
67126/***/ "./node_modules/d3-hierarchy/src/index.js":
67127/*!************************************************!*\
67128 !*** ./node_modules/d3-hierarchy/src/index.js ***!
67129 \************************************************/
67130/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
67131
67132"use strict";
67133__webpack_require__.r(__webpack_exports__);
67134/* harmony export */ __webpack_require__.d(__webpack_exports__, {
67135/* harmony export */ "Node": () => (/* reexport safe */ _hierarchy_index_js__WEBPACK_IMPORTED_MODULE_1__.Node),
67136/* harmony export */ "cluster": () => (/* reexport safe */ _cluster_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
67137/* harmony export */ "hierarchy": () => (/* reexport safe */ _hierarchy_index_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
67138/* harmony export */ "pack": () => (/* reexport safe */ _pack_index_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
67139/* harmony export */ "packEnclose": () => (/* reexport safe */ _pack_enclose_js__WEBPACK_IMPORTED_MODULE_4__["default"]),
67140/* harmony export */ "packSiblings": () => (/* reexport safe */ _pack_siblings_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
67141/* harmony export */ "partition": () => (/* reexport safe */ _partition_js__WEBPACK_IMPORTED_MODULE_5__["default"]),
67142/* harmony export */ "stratify": () => (/* reexport safe */ _stratify_js__WEBPACK_IMPORTED_MODULE_6__["default"]),
67143/* harmony export */ "tree": () => (/* reexport safe */ _tree_js__WEBPACK_IMPORTED_MODULE_7__["default"]),
67144/* harmony export */ "treemap": () => (/* reexport safe */ _treemap_index_js__WEBPACK_IMPORTED_MODULE_8__["default"]),
67145/* harmony export */ "treemapBinary": () => (/* reexport safe */ _treemap_binary_js__WEBPACK_IMPORTED_MODULE_9__["default"]),
67146/* harmony export */ "treemapDice": () => (/* reexport safe */ _treemap_dice_js__WEBPACK_IMPORTED_MODULE_10__["default"]),
67147/* harmony export */ "treemapResquarify": () => (/* reexport safe */ _treemap_resquarify_js__WEBPACK_IMPORTED_MODULE_14__["default"]),
67148/* harmony export */ "treemapSlice": () => (/* reexport safe */ _treemap_slice_js__WEBPACK_IMPORTED_MODULE_11__["default"]),
67149/* harmony export */ "treemapSliceDice": () => (/* reexport safe */ _treemap_sliceDice_js__WEBPACK_IMPORTED_MODULE_12__["default"]),
67150/* harmony export */ "treemapSquarify": () => (/* reexport safe */ _treemap_squarify_js__WEBPACK_IMPORTED_MODULE_13__["default"])
67151/* harmony export */ });
67152/* harmony import */ var _cluster_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cluster.js */ "./node_modules/d3-hierarchy/src/cluster.js");
67153/* harmony import */ var _hierarchy_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hierarchy/index.js */ "./node_modules/d3-hierarchy/src/hierarchy/index.js");
67154/* harmony import */ var _pack_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pack/index.js */ "./node_modules/d3-hierarchy/src/pack/index.js");
67155/* harmony import */ var _pack_siblings_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pack/siblings.js */ "./node_modules/d3-hierarchy/src/pack/siblings.js");
67156/* harmony import */ var _pack_enclose_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pack/enclose.js */ "./node_modules/d3-hierarchy/src/pack/enclose.js");
67157/* harmony import */ var _partition_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./partition.js */ "./node_modules/d3-hierarchy/src/partition.js");
67158/* harmony import */ var _stratify_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./stratify.js */ "./node_modules/d3-hierarchy/src/stratify.js");
67159/* harmony import */ var _tree_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./tree.js */ "./node_modules/d3-hierarchy/src/tree.js");
67160/* harmony import */ var _treemap_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./treemap/index.js */ "./node_modules/d3-hierarchy/src/treemap/index.js");
67161/* harmony import */ var _treemap_binary_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./treemap/binary.js */ "./node_modules/d3-hierarchy/src/treemap/binary.js");
67162/* harmony import */ var _treemap_dice_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./treemap/dice.js */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
67163/* harmony import */ var _treemap_slice_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./treemap/slice.js */ "./node_modules/d3-hierarchy/src/treemap/slice.js");
67164/* harmony import */ var _treemap_sliceDice_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./treemap/sliceDice.js */ "./node_modules/d3-hierarchy/src/treemap/sliceDice.js");
67165/* harmony import */ var _treemap_squarify_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./treemap/squarify.js */ "./node_modules/d3-hierarchy/src/treemap/squarify.js");
67166/* harmony import */ var _treemap_resquarify_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./treemap/resquarify.js */ "./node_modules/d3-hierarchy/src/treemap/resquarify.js");
67167
67168
67169
67170
67171
67172
67173
67174
67175
67176
67177
67178
67179
67180
67181
67182
67183
67184/***/ }),
67185
67186/***/ "./node_modules/d3-hierarchy/src/pack/enclose.js":
67187/*!*******************************************************!*\
67188 !*** ./node_modules/d3-hierarchy/src/pack/enclose.js ***!
67189 \*******************************************************/
67190/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
67191
67192"use strict";
67193__webpack_require__.r(__webpack_exports__);
67194/* harmony export */ __webpack_require__.d(__webpack_exports__, {
67195/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
67196/* harmony export */ });
67197/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../array.js */ "./node_modules/d3-hierarchy/src/array.js");
67198
67199
67200/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(circles) {
67201 var i = 0, n = (circles = (0,_array_js__WEBPACK_IMPORTED_MODULE_0__.shuffle)(Array.from(circles))).length, B = [], p, e;
67202
67203 while (i < n) {
67204 p = circles[i];
67205 if (e && enclosesWeak(e, p)) ++i;
67206 else e = encloseBasis(B = extendBasis(B, p)), i = 0;
67207 }
67208
67209 return e;
67210}
67211
67212function extendBasis(B, p) {
67213 var i, j;
67214
67215 if (enclosesWeakAll(p, B)) return [p];
67216
67217 // If we get here then B must have at least one element.
67218 for (i = 0; i < B.length; ++i) {
67219 if (enclosesNot(p, B[i])
67220 && enclosesWeakAll(encloseBasis2(B[i], p), B)) {
67221 return [B[i], p];
67222 }
67223 }
67224
67225 // If we get here then B must have at least two elements.
67226 for (i = 0; i < B.length - 1; ++i) {
67227 for (j = i + 1; j < B.length; ++j) {
67228 if (enclosesNot(encloseBasis2(B[i], B[j]), p)
67229 && enclosesNot(encloseBasis2(B[i], p), B[j])
67230 && enclosesNot(encloseBasis2(B[j], p), B[i])
67231 && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {
67232 return [B[i], B[j], p];
67233 }
67234 }
67235 }
67236
67237 // If we get here then something is very wrong.
67238 throw new Error;
67239}
67240
67241function enclosesNot(a, b) {
67242 var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;
67243 return dr < 0 || dr * dr < dx * dx + dy * dy;
67244}
67245
67246function enclosesWeak(a, b) {
67247 var dr = a.r - b.r + Math.max(a.r, b.r, 1) * 1e-9, dx = b.x - a.x, dy = b.y - a.y;
67248 return dr > 0 && dr * dr > dx * dx + dy * dy;
67249}
67250
67251function enclosesWeakAll(a, B) {
67252 for (var i = 0; i < B.length; ++i) {
67253 if (!enclosesWeak(a, B[i])) {
67254 return false;
67255 }
67256 }
67257 return true;
67258}
67259
67260function encloseBasis(B) {
67261 switch (B.length) {
67262 case 1: return encloseBasis1(B[0]);
67263 case 2: return encloseBasis2(B[0], B[1]);
67264 case 3: return encloseBasis3(B[0], B[1], B[2]);
67265 }
67266}
67267
67268function encloseBasis1(a) {
67269 return {
67270 x: a.x,
67271 y: a.y,
67272 r: a.r
67273 };
67274}
67275
67276function encloseBasis2(a, b) {
67277 var x1 = a.x, y1 = a.y, r1 = a.r,
67278 x2 = b.x, y2 = b.y, r2 = b.r,
67279 x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,
67280 l = Math.sqrt(x21 * x21 + y21 * y21);
67281 return {
67282 x: (x1 + x2 + x21 / l * r21) / 2,
67283 y: (y1 + y2 + y21 / l * r21) / 2,
67284 r: (l + r1 + r2) / 2
67285 };
67286}
67287
67288function encloseBasis3(a, b, c) {
67289 var x1 = a.x, y1 = a.y, r1 = a.r,
67290 x2 = b.x, y2 = b.y, r2 = b.r,
67291 x3 = c.x, y3 = c.y, r3 = c.r,
67292 a2 = x1 - x2,
67293 a3 = x1 - x3,
67294 b2 = y1 - y2,
67295 b3 = y1 - y3,
67296 c2 = r2 - r1,
67297 c3 = r3 - r1,
67298 d1 = x1 * x1 + y1 * y1 - r1 * r1,
67299 d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,
67300 d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,
67301 ab = a3 * b2 - a2 * b3,
67302 xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,
67303 xb = (b3 * c2 - b2 * c3) / ab,
67304 ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,
67305 yb = (a2 * c3 - a3 * c2) / ab,
67306 A = xb * xb + yb * yb - 1,
67307 B = 2 * (r1 + xa * xb + ya * yb),
67308 C = xa * xa + ya * ya - r1 * r1,
67309 r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);
67310 return {
67311 x: x1 + xa + xb * r,
67312 y: y1 + ya + yb * r,
67313 r: r
67314 };
67315}
67316
67317
67318/***/ }),
67319
67320/***/ "./node_modules/d3-hierarchy/src/pack/index.js":
67321/*!*****************************************************!*\
67322 !*** ./node_modules/d3-hierarchy/src/pack/index.js ***!
67323 \*****************************************************/
67324/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
67325
67326"use strict";
67327__webpack_require__.r(__webpack_exports__);
67328/* harmony export */ __webpack_require__.d(__webpack_exports__, {
67329/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
67330/* harmony export */ });
67331/* harmony import */ var _siblings_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./siblings.js */ "./node_modules/d3-hierarchy/src/pack/siblings.js");
67332/* harmony import */ var _accessors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../accessors.js */ "./node_modules/d3-hierarchy/src/accessors.js");
67333/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constant.js */ "./node_modules/d3-hierarchy/src/constant.js");
67334
67335
67336
67337
67338function defaultRadius(d) {
67339 return Math.sqrt(d.value);
67340}
67341
67342/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
67343 var radius = null,
67344 dx = 1,
67345 dy = 1,
67346 padding = _constant_js__WEBPACK_IMPORTED_MODULE_0__.constantZero;
67347
67348 function pack(root) {
67349 root.x = dx / 2, root.y = dy / 2;
67350 if (radius) {
67351 root.eachBefore(radiusLeaf(radius))
67352 .eachAfter(packChildren(padding, 0.5))
67353 .eachBefore(translateChild(1));
67354 } else {
67355 root.eachBefore(radiusLeaf(defaultRadius))
67356 .eachAfter(packChildren(_constant_js__WEBPACK_IMPORTED_MODULE_0__.constantZero, 1))
67357 .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))
67358 .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));
67359 }
67360 return root;
67361 }
67362
67363 pack.radius = function(x) {
67364 return arguments.length ? (radius = (0,_accessors_js__WEBPACK_IMPORTED_MODULE_1__.optional)(x), pack) : radius;
67365 };
67366
67367 pack.size = function(x) {
67368 return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];
67369 };
67370
67371 pack.padding = function(x) {
67372 return arguments.length ? (padding = typeof x === "function" ? x : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+x), pack) : padding;
67373 };
67374
67375 return pack;
67376}
67377
67378function radiusLeaf(radius) {
67379 return function(node) {
67380 if (!node.children) {
67381 node.r = Math.max(0, +radius(node) || 0);
67382 }
67383 };
67384}
67385
67386function packChildren(padding, k) {
67387 return function(node) {
67388 if (children = node.children) {
67389 var children,
67390 i,
67391 n = children.length,
67392 r = padding(node) * k || 0,
67393 e;
67394
67395 if (r) for (i = 0; i < n; ++i) children[i].r += r;
67396 e = (0,_siblings_js__WEBPACK_IMPORTED_MODULE_2__.packEnclose)(children);
67397 if (r) for (i = 0; i < n; ++i) children[i].r -= r;
67398 node.r = e + r;
67399 }
67400 };
67401}
67402
67403function translateChild(k) {
67404 return function(node) {
67405 var parent = node.parent;
67406 node.r *= k;
67407 if (parent) {
67408 node.x = parent.x + k * node.x;
67409 node.y = parent.y + k * node.y;
67410 }
67411 };
67412}
67413
67414
67415/***/ }),
67416
67417/***/ "./node_modules/d3-hierarchy/src/pack/siblings.js":
67418/*!********************************************************!*\
67419 !*** ./node_modules/d3-hierarchy/src/pack/siblings.js ***!
67420 \********************************************************/
67421/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
67422
67423"use strict";
67424__webpack_require__.r(__webpack_exports__);
67425/* harmony export */ __webpack_require__.d(__webpack_exports__, {
67426/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
67427/* harmony export */ "packEnclose": () => (/* binding */ packEnclose)
67428/* harmony export */ });
67429/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../array.js */ "./node_modules/d3-hierarchy/src/array.js");
67430/* harmony import */ var _enclose_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./enclose.js */ "./node_modules/d3-hierarchy/src/pack/enclose.js");
67431
67432
67433
67434function place(b, a, c) {
67435 var dx = b.x - a.x, x, a2,
67436 dy = b.y - a.y, y, b2,
67437 d2 = dx * dx + dy * dy;
67438 if (d2) {
67439 a2 = a.r + c.r, a2 *= a2;
67440 b2 = b.r + c.r, b2 *= b2;
67441 if (a2 > b2) {
67442 x = (d2 + b2 - a2) / (2 * d2);
67443 y = Math.sqrt(Math.max(0, b2 / d2 - x * x));
67444 c.x = b.x - x * dx - y * dy;
67445 c.y = b.y - x * dy + y * dx;
67446 } else {
67447 x = (d2 + a2 - b2) / (2 * d2);
67448 y = Math.sqrt(Math.max(0, a2 / d2 - x * x));
67449 c.x = a.x + x * dx - y * dy;
67450 c.y = a.y + x * dy + y * dx;
67451 }
67452 } else {
67453 c.x = a.x + c.r;
67454 c.y = a.y;
67455 }
67456}
67457
67458function intersects(a, b) {
67459 var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;
67460 return dr > 0 && dr * dr > dx * dx + dy * dy;
67461}
67462
67463function score(node) {
67464 var a = node._,
67465 b = node.next._,
67466 ab = a.r + b.r,
67467 dx = (a.x * b.r + b.x * a.r) / ab,
67468 dy = (a.y * b.r + b.y * a.r) / ab;
67469 return dx * dx + dy * dy;
67470}
67471
67472function Node(circle) {
67473 this._ = circle;
67474 this.next = null;
67475 this.previous = null;
67476}
67477
67478function packEnclose(circles) {
67479 if (!(n = (circles = (0,_array_js__WEBPACK_IMPORTED_MODULE_0__["default"])(circles)).length)) return 0;
67480
67481 var a, b, c, n, aa, ca, i, j, k, sj, sk;
67482
67483 // Place the first circle.
67484 a = circles[0], a.x = 0, a.y = 0;
67485 if (!(n > 1)) return a.r;
67486
67487 // Place the second circle.
67488 b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;
67489 if (!(n > 2)) return a.r + b.r;
67490
67491 // Place the third circle.
67492 place(b, a, c = circles[2]);
67493
67494 // Initialize the front-chain using the first three circles a, b and c.
67495 a = new Node(a), b = new Node(b), c = new Node(c);
67496 a.next = c.previous = b;
67497 b.next = a.previous = c;
67498 c.next = b.previous = a;
67499
67500 // Attempt to place each remaining circle…
67501 pack: for (i = 3; i < n; ++i) {
67502 place(a._, b._, c = circles[i]), c = new Node(c);
67503
67504 // Find the closest intersecting circle on the front-chain, if any.
67505 // “Closeness” is determined by linear distance along the front-chain.
67506 // “Ahead” or “behind” is likewise determined by linear distance.
67507 j = b.next, k = a.previous, sj = b._.r, sk = a._.r;
67508 do {
67509 if (sj <= sk) {
67510 if (intersects(j._, c._)) {
67511 b = j, a.next = b, b.previous = a, --i;
67512 continue pack;
67513 }
67514 sj += j._.r, j = j.next;
67515 } else {
67516 if (intersects(k._, c._)) {
67517 a = k, a.next = b, b.previous = a, --i;
67518 continue pack;
67519 }
67520 sk += k._.r, k = k.previous;
67521 }
67522 } while (j !== k.next);
67523
67524 // Success! Insert the new circle c between a and b.
67525 c.previous = a, c.next = b, a.next = b.previous = b = c;
67526
67527 // Compute the new closest circle pair to the centroid.
67528 aa = score(a);
67529 while ((c = c.next) !== b) {
67530 if ((ca = score(c)) < aa) {
67531 a = c, aa = ca;
67532 }
67533 }
67534 b = a.next;
67535 }
67536
67537 // Compute the enclosing circle of the front chain.
67538 a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = (0,_enclose_js__WEBPACK_IMPORTED_MODULE_1__["default"])(a);
67539
67540 // Translate the circles to put the enclosing circle around the origin.
67541 for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;
67542
67543 return c.r;
67544}
67545
67546/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(circles) {
67547 packEnclose(circles);
67548 return circles;
67549}
67550
67551
67552/***/ }),
67553
67554/***/ "./node_modules/d3-hierarchy/src/partition.js":
67555/*!****************************************************!*\
67556 !*** ./node_modules/d3-hierarchy/src/partition.js ***!
67557 \****************************************************/
67558/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
67559
67560"use strict";
67561__webpack_require__.r(__webpack_exports__);
67562/* harmony export */ __webpack_require__.d(__webpack_exports__, {
67563/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
67564/* harmony export */ });
67565/* harmony import */ var _treemap_round_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./treemap/round.js */ "./node_modules/d3-hierarchy/src/treemap/round.js");
67566/* harmony import */ var _treemap_dice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./treemap/dice.js */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
67567
67568
67569
67570/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
67571 var dx = 1,
67572 dy = 1,
67573 padding = 0,
67574 round = false;
67575
67576 function partition(root) {
67577 var n = root.height + 1;
67578 root.x0 =
67579 root.y0 = padding;
67580 root.x1 = dx;
67581 root.y1 = dy / n;
67582 root.eachBefore(positionNode(dy, n));
67583 if (round) root.eachBefore(_treemap_round_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
67584 return root;
67585 }
67586
67587 function positionNode(dy, n) {
67588 return function(node) {
67589 if (node.children) {
67590 (0,_treemap_dice_js__WEBPACK_IMPORTED_MODULE_1__["default"])(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);
67591 }
67592 var x0 = node.x0,
67593 y0 = node.y0,
67594 x1 = node.x1 - padding,
67595 y1 = node.y1 - padding;
67596 if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
67597 if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
67598 node.x0 = x0;
67599 node.y0 = y0;
67600 node.x1 = x1;
67601 node.y1 = y1;
67602 };
67603 }
67604
67605 partition.round = function(x) {
67606 return arguments.length ? (round = !!x, partition) : round;
67607 };
67608
67609 partition.size = function(x) {
67610 return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];
67611 };
67612
67613 partition.padding = function(x) {
67614 return arguments.length ? (padding = +x, partition) : padding;
67615 };
67616
67617 return partition;
67618}
67619
67620
67621/***/ }),
67622
67623/***/ "./node_modules/d3-hierarchy/src/stratify.js":
67624/*!***************************************************!*\
67625 !*** ./node_modules/d3-hierarchy/src/stratify.js ***!
67626 \***************************************************/
67627/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
67628
67629"use strict";
67630__webpack_require__.r(__webpack_exports__);
67631/* harmony export */ __webpack_require__.d(__webpack_exports__, {
67632/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
67633/* harmony export */ });
67634/* harmony import */ var _accessors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./accessors.js */ "./node_modules/d3-hierarchy/src/accessors.js");
67635/* harmony import */ var _hierarchy_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hierarchy/index.js */ "./node_modules/d3-hierarchy/src/hierarchy/index.js");
67636
67637
67638
67639var preroot = {depth: -1},
67640 ambiguous = {},
67641 imputed = {};
67642
67643function defaultId(d) {
67644 return d.id;
67645}
67646
67647function defaultParentId(d) {
67648 return d.parentId;
67649}
67650
67651/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
67652 var id = defaultId,
67653 parentId = defaultParentId,
67654 path;
67655
67656 function stratify(data) {
67657 var nodes = Array.from(data),
67658 currentId = id,
67659 currentParentId = parentId,
67660 n,
67661 d,
67662 i,
67663 root,
67664 parent,
67665 node,
67666 nodeId,
67667 nodeKey,
67668 nodeByKey = new Map;
67669
67670 if (path != null) {
67671 const I = nodes.map((d, i) => normalize(path(d, i, data)));
67672 const P = I.map(parentof);
67673 const S = new Set(I).add("");
67674 for (const i of P) {
67675 if (!S.has(i)) {
67676 S.add(i);
67677 I.push(i);
67678 P.push(parentof(i));
67679 nodes.push(imputed);
67680 }
67681 }
67682 currentId = (_, i) => I[i];
67683 currentParentId = (_, i) => P[i];
67684 }
67685
67686 for (i = 0, n = nodes.length; i < n; ++i) {
67687 d = nodes[i], node = nodes[i] = new _hierarchy_index_js__WEBPACK_IMPORTED_MODULE_0__.Node(d);
67688 if ((nodeId = currentId(d, i, data)) != null && (nodeId += "")) {
67689 nodeKey = node.id = nodeId;
67690 nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node);
67691 }
67692 if ((nodeId = currentParentId(d, i, data)) != null && (nodeId += "")) {
67693 node.parent = nodeId;
67694 }
67695 }
67696
67697 for (i = 0; i < n; ++i) {
67698 node = nodes[i];
67699 if (nodeId = node.parent) {
67700 parent = nodeByKey.get(nodeId);
67701 if (!parent) throw new Error("missing: " + nodeId);
67702 if (parent === ambiguous) throw new Error("ambiguous: " + nodeId);
67703 if (parent.children) parent.children.push(node);
67704 else parent.children = [node];
67705 node.parent = parent;
67706 } else {
67707 if (root) throw new Error("multiple roots");
67708 root = node;
67709 }
67710 }
67711
67712 if (!root) throw new Error("no root");
67713
67714 // When imputing internal nodes, only introduce roots if needed.
67715 // Then replace the imputed marker data with null.
67716 if (path != null) {
67717 while (root.data === imputed && root.children.length === 1) {
67718 root = root.children[0], --n;
67719 }
67720 for (let i = nodes.length - 1; i >= 0; --i) {
67721 node = nodes[i];
67722 if (node.data !== imputed) break;
67723 node.data = null;
67724 }
67725 }
67726
67727 root.parent = preroot;
67728 root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(_hierarchy_index_js__WEBPACK_IMPORTED_MODULE_0__.computeHeight);
67729 root.parent = null;
67730 if (n > 0) throw new Error("cycle");
67731
67732 return root;
67733 }
67734
67735 stratify.id = function(x) {
67736 return arguments.length ? (id = (0,_accessors_js__WEBPACK_IMPORTED_MODULE_1__.optional)(x), stratify) : id;
67737 };
67738
67739 stratify.parentId = function(x) {
67740 return arguments.length ? (parentId = (0,_accessors_js__WEBPACK_IMPORTED_MODULE_1__.optional)(x), stratify) : parentId;
67741 };
67742
67743 stratify.path = function(x) {
67744 return arguments.length ? (path = (0,_accessors_js__WEBPACK_IMPORTED_MODULE_1__.optional)(x), stratify) : path;
67745 };
67746
67747 return stratify;
67748}
67749
67750// To normalize a path, we coerce to a string, strip the trailing slash if any
67751// (as long as the trailing slash is not immediately preceded by another slash),
67752// and add leading slash if missing.
67753function normalize(path) {
67754 path = `${path}`;
67755 let i = path.length;
67756 if (slash(path, i - 1) && !slash(path, i - 2)) path = path.slice(0, -1);
67757 return path[0] === "/" ? path : `/${path}`;
67758}
67759
67760// Walk backwards to find the first slash that is not the leading slash, e.g.:
67761// "/foo/bar" ⇥ "/foo", "/foo" ⇥ "/", "/" ↦ "". (The root is special-cased
67762// because the id of the root must be a truthy value.)
67763function parentof(path) {
67764 let i = path.length;
67765 if (i < 2) return "";
67766 while (--i > 1) if (slash(path, i)) break;
67767 return path.slice(0, i);
67768}
67769
67770// Slashes can be escaped; to determine whether a slash is a path delimiter, we
67771// count the number of preceding backslashes escaping the forward slash: an odd
67772// number indicates an escaped forward slash.
67773function slash(path, i) {
67774 if (path[i] === "/") {
67775 let k = 0;
67776 while (i > 0 && path[--i] === "\\") ++k;
67777 if ((k & 1) === 0) return true;
67778 }
67779 return false;
67780}
67781
67782
67783/***/ }),
67784
67785/***/ "./node_modules/d3-hierarchy/src/tree.js":
67786/*!***********************************************!*\
67787 !*** ./node_modules/d3-hierarchy/src/tree.js ***!
67788 \***********************************************/
67789/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
67790
67791"use strict";
67792__webpack_require__.r(__webpack_exports__);
67793/* harmony export */ __webpack_require__.d(__webpack_exports__, {
67794/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
67795/* harmony export */ });
67796/* harmony import */ var _hierarchy_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hierarchy/index.js */ "./node_modules/d3-hierarchy/src/hierarchy/index.js");
67797
67798
67799function defaultSeparation(a, b) {
67800 return a.parent === b.parent ? 1 : 2;
67801}
67802
67803// function radialSeparation(a, b) {
67804// return (a.parent === b.parent ? 1 : 2) / a.depth;
67805// }
67806
67807// This function is used to traverse the left contour of a subtree (or
67808// subforest). It returns the successor of v on this contour. This successor is
67809// either given by the leftmost child of v or by the thread of v. The function
67810// returns null if and only if v is on the highest level of its subtree.
67811function nextLeft(v) {
67812 var children = v.children;
67813 return children ? children[0] : v.t;
67814}
67815
67816// This function works analogously to nextLeft.
67817function nextRight(v) {
67818 var children = v.children;
67819 return children ? children[children.length - 1] : v.t;
67820}
67821
67822// Shifts the current subtree rooted at w+. This is done by increasing
67823// prelim(w+) and mod(w+) by shift.
67824function moveSubtree(wm, wp, shift) {
67825 var change = shift / (wp.i - wm.i);
67826 wp.c -= change;
67827 wp.s += shift;
67828 wm.c += change;
67829 wp.z += shift;
67830 wp.m += shift;
67831}
67832
67833// All other shifts, applied to the smaller subtrees between w- and w+, are
67834// performed by this function. To prepare the shifts, we have to adjust
67835// change(w+), shift(w+), and change(w-).
67836function executeShifts(v) {
67837 var shift = 0,
67838 change = 0,
67839 children = v.children,
67840 i = children.length,
67841 w;
67842 while (--i >= 0) {
67843 w = children[i];
67844 w.z += shift;
67845 w.m += shift;
67846 shift += w.s + (change += w.c);
67847 }
67848}
67849
67850// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,
67851// returns the specified (default) ancestor.
67852function nextAncestor(vim, v, ancestor) {
67853 return vim.a.parent === v.parent ? vim.a : ancestor;
67854}
67855
67856function TreeNode(node, i) {
67857 this._ = node;
67858 this.parent = null;
67859 this.children = null;
67860 this.A = null; // default ancestor
67861 this.a = this; // ancestor
67862 this.z = 0; // prelim
67863 this.m = 0; // mod
67864 this.c = 0; // change
67865 this.s = 0; // shift
67866 this.t = null; // thread
67867 this.i = i; // number
67868}
67869
67870TreeNode.prototype = Object.create(_hierarchy_index_js__WEBPACK_IMPORTED_MODULE_0__.Node.prototype);
67871
67872function treeRoot(root) {
67873 var tree = new TreeNode(root, 0),
67874 node,
67875 nodes = [tree],
67876 child,
67877 children,
67878 i,
67879 n;
67880
67881 while (node = nodes.pop()) {
67882 if (children = node._.children) {
67883 node.children = new Array(n = children.length);
67884 for (i = n - 1; i >= 0; --i) {
67885 nodes.push(child = node.children[i] = new TreeNode(children[i], i));
67886 child.parent = node;
67887 }
67888 }
67889 }
67890
67891 (tree.parent = new TreeNode(null, 0)).children = [tree];
67892 return tree;
67893}
67894
67895// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm
67896/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
67897 var separation = defaultSeparation,
67898 dx = 1,
67899 dy = 1,
67900 nodeSize = null;
67901
67902 function tree(root) {
67903 var t = treeRoot(root);
67904
67905 // Compute the layout using Buchheim et al.’s algorithm.
67906 t.eachAfter(firstWalk), t.parent.m = -t.z;
67907 t.eachBefore(secondWalk);
67908
67909 // If a fixed node size is specified, scale x and y.
67910 if (nodeSize) root.eachBefore(sizeNode);
67911
67912 // If a fixed tree size is specified, scale x and y based on the extent.
67913 // Compute the left-most, right-most, and depth-most nodes for extents.
67914 else {
67915 var left = root,
67916 right = root,
67917 bottom = root;
67918 root.eachBefore(function(node) {
67919 if (node.x < left.x) left = node;
67920 if (node.x > right.x) right = node;
67921 if (node.depth > bottom.depth) bottom = node;
67922 });
67923 var s = left === right ? 1 : separation(left, right) / 2,
67924 tx = s - left.x,
67925 kx = dx / (right.x + s + tx),
67926 ky = dy / (bottom.depth || 1);
67927 root.eachBefore(function(node) {
67928 node.x = (node.x + tx) * kx;
67929 node.y = node.depth * ky;
67930 });
67931 }
67932
67933 return root;
67934 }
67935
67936 // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is
67937 // applied recursively to the children of v, as well as the function
67938 // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the
67939 // node v is placed to the midpoint of its outermost children.
67940 function firstWalk(v) {
67941 var children = v.children,
67942 siblings = v.parent.children,
67943 w = v.i ? siblings[v.i - 1] : null;
67944 if (children) {
67945 executeShifts(v);
67946 var midpoint = (children[0].z + children[children.length - 1].z) / 2;
67947 if (w) {
67948 v.z = w.z + separation(v._, w._);
67949 v.m = v.z - midpoint;
67950 } else {
67951 v.z = midpoint;
67952 }
67953 } else if (w) {
67954 v.z = w.z + separation(v._, w._);
67955 }
67956 v.parent.A = apportion(v, w, v.parent.A || siblings[0]);
67957 }
67958
67959 // Computes all real x-coordinates by summing up the modifiers recursively.
67960 function secondWalk(v) {
67961 v._.x = v.z + v.parent.m;
67962 v.m += v.parent.m;
67963 }
67964
67965 // The core of the algorithm. Here, a new subtree is combined with the
67966 // previous subtrees. Threads are used to traverse the inside and outside
67967 // contours of the left and right subtree up to the highest common level. The
67968 // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the
67969 // superscript o means outside and i means inside, the subscript - means left
67970 // subtree and + means right subtree. For summing up the modifiers along the
67971 // contour, we use respective variables si+, si-, so-, and so+. Whenever two
67972 // nodes of the inside contours conflict, we compute the left one of the
67973 // greatest uncommon ancestors using the function ANCESTOR and call MOVE
67974 // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.
67975 // Finally, we add a new thread (if necessary).
67976 function apportion(v, w, ancestor) {
67977 if (w) {
67978 var vip = v,
67979 vop = v,
67980 vim = w,
67981 vom = vip.parent.children[0],
67982 sip = vip.m,
67983 sop = vop.m,
67984 sim = vim.m,
67985 som = vom.m,
67986 shift;
67987 while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {
67988 vom = nextLeft(vom);
67989 vop = nextRight(vop);
67990 vop.a = v;
67991 shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);
67992 if (shift > 0) {
67993 moveSubtree(nextAncestor(vim, v, ancestor), v, shift);
67994 sip += shift;
67995 sop += shift;
67996 }
67997 sim += vim.m;
67998 sip += vip.m;
67999 som += vom.m;
68000 sop += vop.m;
68001 }
68002 if (vim && !nextRight(vop)) {
68003 vop.t = vim;
68004 vop.m += sim - sop;
68005 }
68006 if (vip && !nextLeft(vom)) {
68007 vom.t = vip;
68008 vom.m += sip - som;
68009 ancestor = v;
68010 }
68011 }
68012 return ancestor;
68013 }
68014
68015 function sizeNode(node) {
68016 node.x *= dx;
68017 node.y = node.depth * dy;
68018 }
68019
68020 tree.separation = function(x) {
68021 return arguments.length ? (separation = x, tree) : separation;
68022 };
68023
68024 tree.size = function(x) {
68025 return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);
68026 };
68027
68028 tree.nodeSize = function(x) {
68029 return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);
68030 };
68031
68032 return tree;
68033}
68034
68035
68036/***/ }),
68037
68038/***/ "./node_modules/d3-hierarchy/src/treemap/binary.js":
68039/*!*********************************************************!*\
68040 !*** ./node_modules/d3-hierarchy/src/treemap/binary.js ***!
68041 \*********************************************************/
68042/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68043
68044"use strict";
68045__webpack_require__.r(__webpack_exports__);
68046/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68047/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
68048/* harmony export */ });
68049/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(parent, x0, y0, x1, y1) {
68050 var nodes = parent.children,
68051 i, n = nodes.length,
68052 sum, sums = new Array(n + 1);
68053
68054 for (sums[0] = sum = i = 0; i < n; ++i) {
68055 sums[i + 1] = sum += nodes[i].value;
68056 }
68057
68058 partition(0, n, parent.value, x0, y0, x1, y1);
68059
68060 function partition(i, j, value, x0, y0, x1, y1) {
68061 if (i >= j - 1) {
68062 var node = nodes[i];
68063 node.x0 = x0, node.y0 = y0;
68064 node.x1 = x1, node.y1 = y1;
68065 return;
68066 }
68067
68068 var valueOffset = sums[i],
68069 valueTarget = (value / 2) + valueOffset,
68070 k = i + 1,
68071 hi = j - 1;
68072
68073 while (k < hi) {
68074 var mid = k + hi >>> 1;
68075 if (sums[mid] < valueTarget) k = mid + 1;
68076 else hi = mid;
68077 }
68078
68079 if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;
68080
68081 var valueLeft = sums[k] - valueOffset,
68082 valueRight = value - valueLeft;
68083
68084 if ((x1 - x0) > (y1 - y0)) {
68085 var xk = value ? (x0 * valueRight + x1 * valueLeft) / value : x1;
68086 partition(i, k, valueLeft, x0, y0, xk, y1);
68087 partition(k, j, valueRight, xk, y0, x1, y1);
68088 } else {
68089 var yk = value ? (y0 * valueRight + y1 * valueLeft) / value : y1;
68090 partition(i, k, valueLeft, x0, y0, x1, yk);
68091 partition(k, j, valueRight, x0, yk, x1, y1);
68092 }
68093 }
68094}
68095
68096
68097/***/ }),
68098
68099/***/ "./node_modules/d3-hierarchy/src/treemap/dice.js":
68100/*!*******************************************************!*\
68101 !*** ./node_modules/d3-hierarchy/src/treemap/dice.js ***!
68102 \*******************************************************/
68103/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68104
68105"use strict";
68106__webpack_require__.r(__webpack_exports__);
68107/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68108/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
68109/* harmony export */ });
68110/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(parent, x0, y0, x1, y1) {
68111 var nodes = parent.children,
68112 node,
68113 i = -1,
68114 n = nodes.length,
68115 k = parent.value && (x1 - x0) / parent.value;
68116
68117 while (++i < n) {
68118 node = nodes[i], node.y0 = y0, node.y1 = y1;
68119 node.x0 = x0, node.x1 = x0 += node.value * k;
68120 }
68121}
68122
68123
68124/***/ }),
68125
68126/***/ "./node_modules/d3-hierarchy/src/treemap/index.js":
68127/*!********************************************************!*\
68128 !*** ./node_modules/d3-hierarchy/src/treemap/index.js ***!
68129 \********************************************************/
68130/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68131
68132"use strict";
68133__webpack_require__.r(__webpack_exports__);
68134/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68135/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
68136/* harmony export */ });
68137/* harmony import */ var _round_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./round.js */ "./node_modules/d3-hierarchy/src/treemap/round.js");
68138/* harmony import */ var _squarify_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./squarify.js */ "./node_modules/d3-hierarchy/src/treemap/squarify.js");
68139/* harmony import */ var _accessors_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../accessors.js */ "./node_modules/d3-hierarchy/src/accessors.js");
68140/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constant.js */ "./node_modules/d3-hierarchy/src/constant.js");
68141
68142
68143
68144
68145
68146/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
68147 var tile = _squarify_js__WEBPACK_IMPORTED_MODULE_0__["default"],
68148 round = false,
68149 dx = 1,
68150 dy = 1,
68151 paddingStack = [0],
68152 paddingInner = _constant_js__WEBPACK_IMPORTED_MODULE_1__.constantZero,
68153 paddingTop = _constant_js__WEBPACK_IMPORTED_MODULE_1__.constantZero,
68154 paddingRight = _constant_js__WEBPACK_IMPORTED_MODULE_1__.constantZero,
68155 paddingBottom = _constant_js__WEBPACK_IMPORTED_MODULE_1__.constantZero,
68156 paddingLeft = _constant_js__WEBPACK_IMPORTED_MODULE_1__.constantZero;
68157
68158 function treemap(root) {
68159 root.x0 =
68160 root.y0 = 0;
68161 root.x1 = dx;
68162 root.y1 = dy;
68163 root.eachBefore(positionNode);
68164 paddingStack = [0];
68165 if (round) root.eachBefore(_round_js__WEBPACK_IMPORTED_MODULE_2__["default"]);
68166 return root;
68167 }
68168
68169 function positionNode(node) {
68170 var p = paddingStack[node.depth],
68171 x0 = node.x0 + p,
68172 y0 = node.y0 + p,
68173 x1 = node.x1 - p,
68174 y1 = node.y1 - p;
68175 if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
68176 if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
68177 node.x0 = x0;
68178 node.y0 = y0;
68179 node.x1 = x1;
68180 node.y1 = y1;
68181 if (node.children) {
68182 p = paddingStack[node.depth + 1] = paddingInner(node) / 2;
68183 x0 += paddingLeft(node) - p;
68184 y0 += paddingTop(node) - p;
68185 x1 -= paddingRight(node) - p;
68186 y1 -= paddingBottom(node) - p;
68187 if (x1 < x0) x0 = x1 = (x0 + x1) / 2;
68188 if (y1 < y0) y0 = y1 = (y0 + y1) / 2;
68189 tile(node, x0, y0, x1, y1);
68190 }
68191 }
68192
68193 treemap.round = function(x) {
68194 return arguments.length ? (round = !!x, treemap) : round;
68195 };
68196
68197 treemap.size = function(x) {
68198 return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];
68199 };
68200
68201 treemap.tile = function(x) {
68202 return arguments.length ? (tile = (0,_accessors_js__WEBPACK_IMPORTED_MODULE_3__.required)(x), treemap) : tile;
68203 };
68204
68205 treemap.padding = function(x) {
68206 return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();
68207 };
68208
68209 treemap.paddingInner = function(x) {
68210 return arguments.length ? (paddingInner = typeof x === "function" ? x : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+x), treemap) : paddingInner;
68211 };
68212
68213 treemap.paddingOuter = function(x) {
68214 return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();
68215 };
68216
68217 treemap.paddingTop = function(x) {
68218 return arguments.length ? (paddingTop = typeof x === "function" ? x : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+x), treemap) : paddingTop;
68219 };
68220
68221 treemap.paddingRight = function(x) {
68222 return arguments.length ? (paddingRight = typeof x === "function" ? x : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+x), treemap) : paddingRight;
68223 };
68224
68225 treemap.paddingBottom = function(x) {
68226 return arguments.length ? (paddingBottom = typeof x === "function" ? x : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+x), treemap) : paddingBottom;
68227 };
68228
68229 treemap.paddingLeft = function(x) {
68230 return arguments.length ? (paddingLeft = typeof x === "function" ? x : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+x), treemap) : paddingLeft;
68231 };
68232
68233 return treemap;
68234}
68235
68236
68237/***/ }),
68238
68239/***/ "./node_modules/d3-hierarchy/src/treemap/resquarify.js":
68240/*!*************************************************************!*\
68241 !*** ./node_modules/d3-hierarchy/src/treemap/resquarify.js ***!
68242 \*************************************************************/
68243/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68244
68245"use strict";
68246__webpack_require__.r(__webpack_exports__);
68247/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68248/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
68249/* harmony export */ });
68250/* harmony import */ var _dice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dice.js */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
68251/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice.js */ "./node_modules/d3-hierarchy/src/treemap/slice.js");
68252/* harmony import */ var _squarify_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./squarify.js */ "./node_modules/d3-hierarchy/src/treemap/squarify.js");
68253
68254
68255
68256
68257/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function custom(ratio) {
68258
68259 function resquarify(parent, x0, y0, x1, y1) {
68260 if ((rows = parent._squarify) && (rows.ratio === ratio)) {
68261 var rows,
68262 row,
68263 nodes,
68264 i,
68265 j = -1,
68266 n,
68267 m = rows.length,
68268 value = parent.value;
68269
68270 while (++j < m) {
68271 row = rows[j], nodes = row.children;
68272 for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;
68273 if (row.dice) (0,_dice_js__WEBPACK_IMPORTED_MODULE_0__["default"])(row, x0, y0, x1, value ? y0 += (y1 - y0) * row.value / value : y1);
68274 else (0,_slice_js__WEBPACK_IMPORTED_MODULE_1__["default"])(row, x0, y0, value ? x0 += (x1 - x0) * row.value / value : x1, y1);
68275 value -= row.value;
68276 }
68277 } else {
68278 parent._squarify = rows = (0,_squarify_js__WEBPACK_IMPORTED_MODULE_2__.squarifyRatio)(ratio, parent, x0, y0, x1, y1);
68279 rows.ratio = ratio;
68280 }
68281 }
68282
68283 resquarify.ratio = function(x) {
68284 return custom((x = +x) > 1 ? x : 1);
68285 };
68286
68287 return resquarify;
68288})(_squarify_js__WEBPACK_IMPORTED_MODULE_2__.phi));
68289
68290
68291/***/ }),
68292
68293/***/ "./node_modules/d3-hierarchy/src/treemap/round.js":
68294/*!********************************************************!*\
68295 !*** ./node_modules/d3-hierarchy/src/treemap/round.js ***!
68296 \********************************************************/
68297/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68298
68299"use strict";
68300__webpack_require__.r(__webpack_exports__);
68301/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68302/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
68303/* harmony export */ });
68304/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(node) {
68305 node.x0 = Math.round(node.x0);
68306 node.y0 = Math.round(node.y0);
68307 node.x1 = Math.round(node.x1);
68308 node.y1 = Math.round(node.y1);
68309}
68310
68311
68312/***/ }),
68313
68314/***/ "./node_modules/d3-hierarchy/src/treemap/slice.js":
68315/*!********************************************************!*\
68316 !*** ./node_modules/d3-hierarchy/src/treemap/slice.js ***!
68317 \********************************************************/
68318/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68319
68320"use strict";
68321__webpack_require__.r(__webpack_exports__);
68322/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68323/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
68324/* harmony export */ });
68325/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(parent, x0, y0, x1, y1) {
68326 var nodes = parent.children,
68327 node,
68328 i = -1,
68329 n = nodes.length,
68330 k = parent.value && (y1 - y0) / parent.value;
68331
68332 while (++i < n) {
68333 node = nodes[i], node.x0 = x0, node.x1 = x1;
68334 node.y0 = y0, node.y1 = y0 += node.value * k;
68335 }
68336}
68337
68338
68339/***/ }),
68340
68341/***/ "./node_modules/d3-hierarchy/src/treemap/sliceDice.js":
68342/*!************************************************************!*\
68343 !*** ./node_modules/d3-hierarchy/src/treemap/sliceDice.js ***!
68344 \************************************************************/
68345/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68346
68347"use strict";
68348__webpack_require__.r(__webpack_exports__);
68349/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68350/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
68351/* harmony export */ });
68352/* harmony import */ var _dice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dice.js */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
68353/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./slice.js */ "./node_modules/d3-hierarchy/src/treemap/slice.js");
68354
68355
68356
68357/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(parent, x0, y0, x1, y1) {
68358 (parent.depth & 1 ? _slice_js__WEBPACK_IMPORTED_MODULE_0__["default"] : _dice_js__WEBPACK_IMPORTED_MODULE_1__["default"])(parent, x0, y0, x1, y1);
68359}
68360
68361
68362/***/ }),
68363
68364/***/ "./node_modules/d3-hierarchy/src/treemap/squarify.js":
68365/*!***********************************************************!*\
68366 !*** ./node_modules/d3-hierarchy/src/treemap/squarify.js ***!
68367 \***********************************************************/
68368/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68369
68370"use strict";
68371__webpack_require__.r(__webpack_exports__);
68372/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68373/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
68374/* harmony export */ "phi": () => (/* binding */ phi),
68375/* harmony export */ "squarifyRatio": () => (/* binding */ squarifyRatio)
68376/* harmony export */ });
68377/* harmony import */ var _dice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dice.js */ "./node_modules/d3-hierarchy/src/treemap/dice.js");
68378/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice.js */ "./node_modules/d3-hierarchy/src/treemap/slice.js");
68379
68380
68381
68382var phi = (1 + Math.sqrt(5)) / 2;
68383
68384function squarifyRatio(ratio, parent, x0, y0, x1, y1) {
68385 var rows = [],
68386 nodes = parent.children,
68387 row,
68388 nodeValue,
68389 i0 = 0,
68390 i1 = 0,
68391 n = nodes.length,
68392 dx, dy,
68393 value = parent.value,
68394 sumValue,
68395 minValue,
68396 maxValue,
68397 newRatio,
68398 minRatio,
68399 alpha,
68400 beta;
68401
68402 while (i0 < n) {
68403 dx = x1 - x0, dy = y1 - y0;
68404
68405 // Find the next non-empty node.
68406 do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);
68407 minValue = maxValue = sumValue;
68408 alpha = Math.max(dy / dx, dx / dy) / (value * ratio);
68409 beta = sumValue * sumValue * alpha;
68410 minRatio = Math.max(maxValue / beta, beta / minValue);
68411
68412 // Keep adding nodes while the aspect ratio maintains or improves.
68413 for (; i1 < n; ++i1) {
68414 sumValue += nodeValue = nodes[i1].value;
68415 if (nodeValue < minValue) minValue = nodeValue;
68416 if (nodeValue > maxValue) maxValue = nodeValue;
68417 beta = sumValue * sumValue * alpha;
68418 newRatio = Math.max(maxValue / beta, beta / minValue);
68419 if (newRatio > minRatio) { sumValue -= nodeValue; break; }
68420 minRatio = newRatio;
68421 }
68422
68423 // Position and record the row orientation.
68424 rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});
68425 if (row.dice) (0,_dice_js__WEBPACK_IMPORTED_MODULE_0__["default"])(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);
68426 else (0,_slice_js__WEBPACK_IMPORTED_MODULE_1__["default"])(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);
68427 value -= sumValue, i0 = i1;
68428 }
68429
68430 return rows;
68431}
68432
68433/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function custom(ratio) {
68434
68435 function squarify(parent, x0, y0, x1, y1) {
68436 squarifyRatio(ratio, parent, x0, y0, x1, y1);
68437 }
68438
68439 squarify.ratio = function(x) {
68440 return custom((x = +x) > 1 ? x : 1);
68441 };
68442
68443 return squarify;
68444})(phi));
68445
68446
68447/***/ }),
68448
68449/***/ "./node_modules/d3-interpolate/src/array.js":
68450/*!**************************************************!*\
68451 !*** ./node_modules/d3-interpolate/src/array.js ***!
68452 \**************************************************/
68453/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68454
68455"use strict";
68456__webpack_require__.r(__webpack_exports__);
68457/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68458/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
68459/* harmony export */ "genericArray": () => (/* binding */ genericArray)
68460/* harmony export */ });
68461/* harmony import */ var _value_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./value.js */ "./node_modules/d3-interpolate/src/value.js");
68462/* harmony import */ var _numberArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./numberArray.js */ "./node_modules/d3-interpolate/src/numberArray.js");
68463
68464
68465
68466/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {
68467 return ((0,_numberArray_js__WEBPACK_IMPORTED_MODULE_0__.isNumberArray)(b) ? _numberArray_js__WEBPACK_IMPORTED_MODULE_0__["default"] : genericArray)(a, b);
68468}
68469
68470function genericArray(a, b) {
68471 var nb = b ? b.length : 0,
68472 na = a ? Math.min(nb, a.length) : 0,
68473 x = new Array(na),
68474 c = new Array(nb),
68475 i;
68476
68477 for (i = 0; i < na; ++i) x[i] = (0,_value_js__WEBPACK_IMPORTED_MODULE_1__["default"])(a[i], b[i]);
68478 for (; i < nb; ++i) c[i] = b[i];
68479
68480 return function(t) {
68481 for (i = 0; i < na; ++i) c[i] = x[i](t);
68482 return c;
68483 };
68484}
68485
68486
68487/***/ }),
68488
68489/***/ "./node_modules/d3-interpolate/src/basis.js":
68490/*!**************************************************!*\
68491 !*** ./node_modules/d3-interpolate/src/basis.js ***!
68492 \**************************************************/
68493/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68494
68495"use strict";
68496__webpack_require__.r(__webpack_exports__);
68497/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68498/* harmony export */ "basis": () => (/* binding */ basis),
68499/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
68500/* harmony export */ });
68501function basis(t1, v0, v1, v2, v3) {
68502 var t2 = t1 * t1, t3 = t2 * t1;
68503 return ((1 - 3 * t1 + 3 * t2 - t3) * v0
68504 + (4 - 6 * t2 + 3 * t3) * v1
68505 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2
68506 + t3 * v3) / 6;
68507}
68508
68509/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(values) {
68510 var n = values.length - 1;
68511 return function(t) {
68512 var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),
68513 v1 = values[i],
68514 v2 = values[i + 1],
68515 v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,
68516 v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;
68517 return basis((t - i / n) * n, v0, v1, v2, v3);
68518 };
68519}
68520
68521
68522/***/ }),
68523
68524/***/ "./node_modules/d3-interpolate/src/basisClosed.js":
68525/*!********************************************************!*\
68526 !*** ./node_modules/d3-interpolate/src/basisClosed.js ***!
68527 \********************************************************/
68528/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68529
68530"use strict";
68531__webpack_require__.r(__webpack_exports__);
68532/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68533/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
68534/* harmony export */ });
68535/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./basis.js */ "./node_modules/d3-interpolate/src/basis.js");
68536
68537
68538/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(values) {
68539 var n = values.length;
68540 return function(t) {
68541 var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),
68542 v0 = values[(i + n - 1) % n],
68543 v1 = values[i % n],
68544 v2 = values[(i + 1) % n],
68545 v3 = values[(i + 2) % n];
68546 return (0,_basis_js__WEBPACK_IMPORTED_MODULE_0__.basis)((t - i / n) * n, v0, v1, v2, v3);
68547 };
68548}
68549
68550
68551/***/ }),
68552
68553/***/ "./node_modules/d3-interpolate/src/color.js":
68554/*!**************************************************!*\
68555 !*** ./node_modules/d3-interpolate/src/color.js ***!
68556 \**************************************************/
68557/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68558
68559"use strict";
68560__webpack_require__.r(__webpack_exports__);
68561/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68562/* harmony export */ "default": () => (/* binding */ nogamma),
68563/* harmony export */ "gamma": () => (/* binding */ gamma),
68564/* harmony export */ "hue": () => (/* binding */ hue)
68565/* harmony export */ });
68566/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-interpolate/src/constant.js");
68567
68568
68569function linear(a, d) {
68570 return function(t) {
68571 return a + t * d;
68572 };
68573}
68574
68575function exponential(a, b, y) {
68576 return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {
68577 return Math.pow(a + t * b, y);
68578 };
68579}
68580
68581function hue(a, b) {
68582 var d = b - a;
68583 return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(isNaN(a) ? b : a);
68584}
68585
68586function gamma(y) {
68587 return (y = +y) === 1 ? nogamma : function(a, b) {
68588 return b - a ? exponential(a, b, y) : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(isNaN(a) ? b : a);
68589 };
68590}
68591
68592function nogamma(a, b) {
68593 var d = b - a;
68594 return d ? linear(a, d) : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(isNaN(a) ? b : a);
68595}
68596
68597
68598/***/ }),
68599
68600/***/ "./node_modules/d3-interpolate/src/constant.js":
68601/*!*****************************************************!*\
68602 !*** ./node_modules/d3-interpolate/src/constant.js ***!
68603 \*****************************************************/
68604/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68605
68606"use strict";
68607__webpack_require__.r(__webpack_exports__);
68608/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68609/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
68610/* harmony export */ });
68611/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (x => () => x);
68612
68613
68614/***/ }),
68615
68616/***/ "./node_modules/d3-interpolate/src/cubehelix.js":
68617/*!******************************************************!*\
68618 !*** ./node_modules/d3-interpolate/src/cubehelix.js ***!
68619 \******************************************************/
68620/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68621
68622"use strict";
68623__webpack_require__.r(__webpack_exports__);
68624/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68625/* harmony export */ "cubehelixLong": () => (/* binding */ cubehelixLong),
68626/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
68627/* harmony export */ });
68628/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/cubehelix.js");
68629/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-interpolate/src/color.js");
68630
68631
68632
68633function cubehelix(hue) {
68634 return (function cubehelixGamma(y) {
68635 y = +y;
68636
68637 function cubehelix(start, end) {
68638 var h = hue((start = (0,d3_color__WEBPACK_IMPORTED_MODULE_0__["default"])(start)).h, (end = (0,d3_color__WEBPACK_IMPORTED_MODULE_0__["default"])(end)).h),
68639 s = (0,_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.s, end.s),
68640 l = (0,_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.l, end.l),
68641 opacity = (0,_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.opacity, end.opacity);
68642 return function(t) {
68643 start.h = h(t);
68644 start.s = s(t);
68645 start.l = l(Math.pow(t, y));
68646 start.opacity = opacity(t);
68647 return start + "";
68648 };
68649 }
68650
68651 cubehelix.gamma = cubehelixGamma;
68652
68653 return cubehelix;
68654 })(1);
68655}
68656
68657/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (cubehelix(_color_js__WEBPACK_IMPORTED_MODULE_1__.hue));
68658var cubehelixLong = cubehelix(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"]);
68659
68660
68661/***/ }),
68662
68663/***/ "./node_modules/d3-interpolate/src/date.js":
68664/*!*************************************************!*\
68665 !*** ./node_modules/d3-interpolate/src/date.js ***!
68666 \*************************************************/
68667/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68668
68669"use strict";
68670__webpack_require__.r(__webpack_exports__);
68671/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68672/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
68673/* harmony export */ });
68674/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {
68675 var d = new Date;
68676 return a = +a, b = +b, function(t) {
68677 return d.setTime(a * (1 - t) + b * t), d;
68678 };
68679}
68680
68681
68682/***/ }),
68683
68684/***/ "./node_modules/d3-interpolate/src/discrete.js":
68685/*!*****************************************************!*\
68686 !*** ./node_modules/d3-interpolate/src/discrete.js ***!
68687 \*****************************************************/
68688/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68689
68690"use strict";
68691__webpack_require__.r(__webpack_exports__);
68692/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68693/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
68694/* harmony export */ });
68695/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(range) {
68696 var n = range.length;
68697 return function(t) {
68698 return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
68699 };
68700}
68701
68702
68703/***/ }),
68704
68705/***/ "./node_modules/d3-interpolate/src/hcl.js":
68706/*!************************************************!*\
68707 !*** ./node_modules/d3-interpolate/src/hcl.js ***!
68708 \************************************************/
68709/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68710
68711"use strict";
68712__webpack_require__.r(__webpack_exports__);
68713/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68714/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
68715/* harmony export */ "hclLong": () => (/* binding */ hclLong)
68716/* harmony export */ });
68717/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/lab.js");
68718/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-interpolate/src/color.js");
68719
68720
68721
68722function hcl(hue) {
68723 return function(start, end) {
68724 var h = hue((start = (0,d3_color__WEBPACK_IMPORTED_MODULE_0__.hcl)(start)).h, (end = (0,d3_color__WEBPACK_IMPORTED_MODULE_0__.hcl)(end)).h),
68725 c = (0,_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.c, end.c),
68726 l = (0,_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.l, end.l),
68727 opacity = (0,_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.opacity, end.opacity);
68728 return function(t) {
68729 start.h = h(t);
68730 start.c = c(t);
68731 start.l = l(t);
68732 start.opacity = opacity(t);
68733 return start + "";
68734 };
68735 }
68736}
68737
68738/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (hcl(_color_js__WEBPACK_IMPORTED_MODULE_1__.hue));
68739var hclLong = hcl(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"]);
68740
68741
68742/***/ }),
68743
68744/***/ "./node_modules/d3-interpolate/src/hsl.js":
68745/*!************************************************!*\
68746 !*** ./node_modules/d3-interpolate/src/hsl.js ***!
68747 \************************************************/
68748/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68749
68750"use strict";
68751__webpack_require__.r(__webpack_exports__);
68752/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68753/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
68754/* harmony export */ "hslLong": () => (/* binding */ hslLong)
68755/* harmony export */ });
68756/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/color.js");
68757/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-interpolate/src/color.js");
68758
68759
68760
68761function hsl(hue) {
68762 return function(start, end) {
68763 var h = hue((start = (0,d3_color__WEBPACK_IMPORTED_MODULE_0__.hsl)(start)).h, (end = (0,d3_color__WEBPACK_IMPORTED_MODULE_0__.hsl)(end)).h),
68764 s = (0,_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.s, end.s),
68765 l = (0,_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.l, end.l),
68766 opacity = (0,_color_js__WEBPACK_IMPORTED_MODULE_1__["default"])(start.opacity, end.opacity);
68767 return function(t) {
68768 start.h = h(t);
68769 start.s = s(t);
68770 start.l = l(t);
68771 start.opacity = opacity(t);
68772 return start + "";
68773 };
68774 }
68775}
68776
68777/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (hsl(_color_js__WEBPACK_IMPORTED_MODULE_1__.hue));
68778var hslLong = hsl(_color_js__WEBPACK_IMPORTED_MODULE_1__["default"]);
68779
68780
68781/***/ }),
68782
68783/***/ "./node_modules/d3-interpolate/src/hue.js":
68784/*!************************************************!*\
68785 !*** ./node_modules/d3-interpolate/src/hue.js ***!
68786 \************************************************/
68787/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68788
68789"use strict";
68790__webpack_require__.r(__webpack_exports__);
68791/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68792/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
68793/* harmony export */ });
68794/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-interpolate/src/color.js");
68795
68796
68797/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {
68798 var i = (0,_color_js__WEBPACK_IMPORTED_MODULE_0__.hue)(+a, +b);
68799 return function(t) {
68800 var x = i(t);
68801 return x - 360 * Math.floor(x / 360);
68802 };
68803}
68804
68805
68806/***/ }),
68807
68808/***/ "./node_modules/d3-interpolate/src/index.js":
68809/*!**************************************************!*\
68810 !*** ./node_modules/d3-interpolate/src/index.js ***!
68811 \**************************************************/
68812/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68813
68814"use strict";
68815__webpack_require__.r(__webpack_exports__);
68816/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68817/* harmony export */ "interpolate": () => (/* reexport safe */ _value_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
68818/* harmony export */ "interpolateArray": () => (/* reexport safe */ _array_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
68819/* harmony export */ "interpolateBasis": () => (/* reexport safe */ _basis_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
68820/* harmony export */ "interpolateBasisClosed": () => (/* reexport safe */ _basisClosed_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
68821/* harmony export */ "interpolateCubehelix": () => (/* reexport safe */ _cubehelix_js__WEBPACK_IMPORTED_MODULE_18__["default"]),
68822/* harmony export */ "interpolateCubehelixLong": () => (/* reexport safe */ _cubehelix_js__WEBPACK_IMPORTED_MODULE_18__.cubehelixLong),
68823/* harmony export */ "interpolateDate": () => (/* reexport safe */ _date_js__WEBPACK_IMPORTED_MODULE_4__["default"]),
68824/* harmony export */ "interpolateDiscrete": () => (/* reexport safe */ _discrete_js__WEBPACK_IMPORTED_MODULE_5__["default"]),
68825/* harmony export */ "interpolateHcl": () => (/* reexport safe */ _hcl_js__WEBPACK_IMPORTED_MODULE_17__["default"]),
68826/* harmony export */ "interpolateHclLong": () => (/* reexport safe */ _hcl_js__WEBPACK_IMPORTED_MODULE_17__.hclLong),
68827/* harmony export */ "interpolateHsl": () => (/* reexport safe */ _hsl_js__WEBPACK_IMPORTED_MODULE_15__["default"]),
68828/* harmony export */ "interpolateHslLong": () => (/* reexport safe */ _hsl_js__WEBPACK_IMPORTED_MODULE_15__.hslLong),
68829/* harmony export */ "interpolateHue": () => (/* reexport safe */ _hue_js__WEBPACK_IMPORTED_MODULE_6__["default"]),
68830/* harmony export */ "interpolateLab": () => (/* reexport safe */ _lab_js__WEBPACK_IMPORTED_MODULE_16__["default"]),
68831/* harmony export */ "interpolateNumber": () => (/* reexport safe */ _number_js__WEBPACK_IMPORTED_MODULE_7__["default"]),
68832/* harmony export */ "interpolateNumberArray": () => (/* reexport safe */ _numberArray_js__WEBPACK_IMPORTED_MODULE_8__["default"]),
68833/* harmony export */ "interpolateObject": () => (/* reexport safe */ _object_js__WEBPACK_IMPORTED_MODULE_9__["default"]),
68834/* harmony export */ "interpolateRgb": () => (/* reexport safe */ _rgb_js__WEBPACK_IMPORTED_MODULE_14__["default"]),
68835/* harmony export */ "interpolateRgbBasis": () => (/* reexport safe */ _rgb_js__WEBPACK_IMPORTED_MODULE_14__.rgbBasis),
68836/* harmony export */ "interpolateRgbBasisClosed": () => (/* reexport safe */ _rgb_js__WEBPACK_IMPORTED_MODULE_14__.rgbBasisClosed),
68837/* harmony export */ "interpolateRound": () => (/* reexport safe */ _round_js__WEBPACK_IMPORTED_MODULE_10__["default"]),
68838/* harmony export */ "interpolateString": () => (/* reexport safe */ _string_js__WEBPACK_IMPORTED_MODULE_11__["default"]),
68839/* harmony export */ "interpolateTransformCss": () => (/* reexport safe */ _transform_index_js__WEBPACK_IMPORTED_MODULE_12__.interpolateTransformCss),
68840/* harmony export */ "interpolateTransformSvg": () => (/* reexport safe */ _transform_index_js__WEBPACK_IMPORTED_MODULE_12__.interpolateTransformSvg),
68841/* harmony export */ "interpolateZoom": () => (/* reexport safe */ _zoom_js__WEBPACK_IMPORTED_MODULE_13__["default"]),
68842/* harmony export */ "piecewise": () => (/* reexport safe */ _piecewise_js__WEBPACK_IMPORTED_MODULE_19__["default"]),
68843/* harmony export */ "quantize": () => (/* reexport safe */ _quantize_js__WEBPACK_IMPORTED_MODULE_20__["default"])
68844/* harmony export */ });
68845/* harmony import */ var _value_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./value.js */ "./node_modules/d3-interpolate/src/value.js");
68846/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array.js */ "./node_modules/d3-interpolate/src/array.js");
68847/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./basis.js */ "./node_modules/d3-interpolate/src/basis.js");
68848/* harmony import */ var _basisClosed_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./basisClosed.js */ "./node_modules/d3-interpolate/src/basisClosed.js");
68849/* harmony import */ var _date_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./date.js */ "./node_modules/d3-interpolate/src/date.js");
68850/* harmony import */ var _discrete_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./discrete.js */ "./node_modules/d3-interpolate/src/discrete.js");
68851/* harmony import */ var _hue_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./hue.js */ "./node_modules/d3-interpolate/src/hue.js");
68852/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./number.js */ "./node_modules/d3-interpolate/src/number.js");
68853/* harmony import */ var _numberArray_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./numberArray.js */ "./node_modules/d3-interpolate/src/numberArray.js");
68854/* harmony import */ var _object_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./object.js */ "./node_modules/d3-interpolate/src/object.js");
68855/* harmony import */ var _round_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./round.js */ "./node_modules/d3-interpolate/src/round.js");
68856/* harmony import */ var _string_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./string.js */ "./node_modules/d3-interpolate/src/string.js");
68857/* harmony import */ var _transform_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./transform/index.js */ "./node_modules/d3-interpolate/src/transform/index.js");
68858/* harmony import */ var _zoom_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./zoom.js */ "./node_modules/d3-interpolate/src/zoom.js");
68859/* harmony import */ var _rgb_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./rgb.js */ "./node_modules/d3-interpolate/src/rgb.js");
68860/* harmony import */ var _hsl_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./hsl.js */ "./node_modules/d3-interpolate/src/hsl.js");
68861/* harmony import */ var _lab_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./lab.js */ "./node_modules/d3-interpolate/src/lab.js");
68862/* harmony import */ var _hcl_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./hcl.js */ "./node_modules/d3-interpolate/src/hcl.js");
68863/* harmony import */ var _cubehelix_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./cubehelix.js */ "./node_modules/d3-interpolate/src/cubehelix.js");
68864/* harmony import */ var _piecewise_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./piecewise.js */ "./node_modules/d3-interpolate/src/piecewise.js");
68865/* harmony import */ var _quantize_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./quantize.js */ "./node_modules/d3-interpolate/src/quantize.js");
68866
68867
68868
68869
68870
68871
68872
68873
68874
68875
68876
68877
68878
68879
68880
68881
68882
68883
68884
68885
68886
68887
68888
68889/***/ }),
68890
68891/***/ "./node_modules/d3-interpolate/src/lab.js":
68892/*!************************************************!*\
68893 !*** ./node_modules/d3-interpolate/src/lab.js ***!
68894 \************************************************/
68895/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68896
68897"use strict";
68898__webpack_require__.r(__webpack_exports__);
68899/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68900/* harmony export */ "default": () => (/* binding */ lab)
68901/* harmony export */ });
68902/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/lab.js");
68903/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-interpolate/src/color.js");
68904
68905
68906
68907function lab(start, end) {
68908 var l = (0,_color_js__WEBPACK_IMPORTED_MODULE_0__["default"])((start = (0,d3_color__WEBPACK_IMPORTED_MODULE_1__["default"])(start)).l, (end = (0,d3_color__WEBPACK_IMPORTED_MODULE_1__["default"])(end)).l),
68909 a = (0,_color_js__WEBPACK_IMPORTED_MODULE_0__["default"])(start.a, end.a),
68910 b = (0,_color_js__WEBPACK_IMPORTED_MODULE_0__["default"])(start.b, end.b),
68911 opacity = (0,_color_js__WEBPACK_IMPORTED_MODULE_0__["default"])(start.opacity, end.opacity);
68912 return function(t) {
68913 start.l = l(t);
68914 start.a = a(t);
68915 start.b = b(t);
68916 start.opacity = opacity(t);
68917 return start + "";
68918 };
68919}
68920
68921
68922/***/ }),
68923
68924/***/ "./node_modules/d3-interpolate/src/number.js":
68925/*!***************************************************!*\
68926 !*** ./node_modules/d3-interpolate/src/number.js ***!
68927 \***************************************************/
68928/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68929
68930"use strict";
68931__webpack_require__.r(__webpack_exports__);
68932/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68933/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
68934/* harmony export */ });
68935/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {
68936 return a = +a, b = +b, function(t) {
68937 return a * (1 - t) + b * t;
68938 };
68939}
68940
68941
68942/***/ }),
68943
68944/***/ "./node_modules/d3-interpolate/src/numberArray.js":
68945/*!********************************************************!*\
68946 !*** ./node_modules/d3-interpolate/src/numberArray.js ***!
68947 \********************************************************/
68948/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68949
68950"use strict";
68951__webpack_require__.r(__webpack_exports__);
68952/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68953/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
68954/* harmony export */ "isNumberArray": () => (/* binding */ isNumberArray)
68955/* harmony export */ });
68956/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {
68957 if (!b) b = [];
68958 var n = a ? Math.min(b.length, a.length) : 0,
68959 c = b.slice(),
68960 i;
68961 return function(t) {
68962 for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;
68963 return c;
68964 };
68965}
68966
68967function isNumberArray(x) {
68968 return ArrayBuffer.isView(x) && !(x instanceof DataView);
68969}
68970
68971
68972/***/ }),
68973
68974/***/ "./node_modules/d3-interpolate/src/object.js":
68975/*!***************************************************!*\
68976 !*** ./node_modules/d3-interpolate/src/object.js ***!
68977 \***************************************************/
68978/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
68979
68980"use strict";
68981__webpack_require__.r(__webpack_exports__);
68982/* harmony export */ __webpack_require__.d(__webpack_exports__, {
68983/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
68984/* harmony export */ });
68985/* harmony import */ var _value_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./value.js */ "./node_modules/d3-interpolate/src/value.js");
68986
68987
68988/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {
68989 var i = {},
68990 c = {},
68991 k;
68992
68993 if (a === null || typeof a !== "object") a = {};
68994 if (b === null || typeof b !== "object") b = {};
68995
68996 for (k in b) {
68997 if (k in a) {
68998 i[k] = (0,_value_js__WEBPACK_IMPORTED_MODULE_0__["default"])(a[k], b[k]);
68999 } else {
69000 c[k] = b[k];
69001 }
69002 }
69003
69004 return function(t) {
69005 for (k in i) c[k] = i[k](t);
69006 return c;
69007 };
69008}
69009
69010
69011/***/ }),
69012
69013/***/ "./node_modules/d3-interpolate/src/piecewise.js":
69014/*!******************************************************!*\
69015 !*** ./node_modules/d3-interpolate/src/piecewise.js ***!
69016 \******************************************************/
69017/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69018
69019"use strict";
69020__webpack_require__.r(__webpack_exports__);
69021/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69022/* harmony export */ "default": () => (/* binding */ piecewise)
69023/* harmony export */ });
69024/* harmony import */ var _value_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./value.js */ "./node_modules/d3-interpolate/src/value.js");
69025
69026
69027function piecewise(interpolate, values) {
69028 if (values === undefined) values = interpolate, interpolate = _value_js__WEBPACK_IMPORTED_MODULE_0__["default"];
69029 var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);
69030 while (i < n) I[i] = interpolate(v, v = values[++i]);
69031 return function(t) {
69032 var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));
69033 return I[i](t - i);
69034 };
69035}
69036
69037
69038/***/ }),
69039
69040/***/ "./node_modules/d3-interpolate/src/quantize.js":
69041/*!*****************************************************!*\
69042 !*** ./node_modules/d3-interpolate/src/quantize.js ***!
69043 \*****************************************************/
69044/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69045
69046"use strict";
69047__webpack_require__.r(__webpack_exports__);
69048/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69049/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
69050/* harmony export */ });
69051/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(interpolator, n) {
69052 var samples = new Array(n);
69053 for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));
69054 return samples;
69055}
69056
69057
69058/***/ }),
69059
69060/***/ "./node_modules/d3-interpolate/src/rgb.js":
69061/*!************************************************!*\
69062 !*** ./node_modules/d3-interpolate/src/rgb.js ***!
69063 \************************************************/
69064/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69065
69066"use strict";
69067__webpack_require__.r(__webpack_exports__);
69068/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69069/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
69070/* harmony export */ "rgbBasis": () => (/* binding */ rgbBasis),
69071/* harmony export */ "rgbBasisClosed": () => (/* binding */ rgbBasisClosed)
69072/* harmony export */ });
69073/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/color.js");
69074/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./basis.js */ "./node_modules/d3-interpolate/src/basis.js");
69075/* harmony import */ var _basisClosed_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./basisClosed.js */ "./node_modules/d3-interpolate/src/basisClosed.js");
69076/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color.js */ "./node_modules/d3-interpolate/src/color.js");
69077
69078
69079
69080
69081
69082/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function rgbGamma(y) {
69083 var color = (0,_color_js__WEBPACK_IMPORTED_MODULE_0__.gamma)(y);
69084
69085 function rgb(start, end) {
69086 var r = color((start = (0,d3_color__WEBPACK_IMPORTED_MODULE_1__.rgb)(start)).r, (end = (0,d3_color__WEBPACK_IMPORTED_MODULE_1__.rgb)(end)).r),
69087 g = color(start.g, end.g),
69088 b = color(start.b, end.b),
69089 opacity = (0,_color_js__WEBPACK_IMPORTED_MODULE_0__["default"])(start.opacity, end.opacity);
69090 return function(t) {
69091 start.r = r(t);
69092 start.g = g(t);
69093 start.b = b(t);
69094 start.opacity = opacity(t);
69095 return start + "";
69096 };
69097 }
69098
69099 rgb.gamma = rgbGamma;
69100
69101 return rgb;
69102})(1));
69103
69104function rgbSpline(spline) {
69105 return function(colors) {
69106 var n = colors.length,
69107 r = new Array(n),
69108 g = new Array(n),
69109 b = new Array(n),
69110 i, color;
69111 for (i = 0; i < n; ++i) {
69112 color = (0,d3_color__WEBPACK_IMPORTED_MODULE_1__.rgb)(colors[i]);
69113 r[i] = color.r || 0;
69114 g[i] = color.g || 0;
69115 b[i] = color.b || 0;
69116 }
69117 r = spline(r);
69118 g = spline(g);
69119 b = spline(b);
69120 color.opacity = 1;
69121 return function(t) {
69122 color.r = r(t);
69123 color.g = g(t);
69124 color.b = b(t);
69125 return color + "";
69126 };
69127 };
69128}
69129
69130var rgbBasis = rgbSpline(_basis_js__WEBPACK_IMPORTED_MODULE_2__["default"]);
69131var rgbBasisClosed = rgbSpline(_basisClosed_js__WEBPACK_IMPORTED_MODULE_3__["default"]);
69132
69133
69134/***/ }),
69135
69136/***/ "./node_modules/d3-interpolate/src/round.js":
69137/*!**************************************************!*\
69138 !*** ./node_modules/d3-interpolate/src/round.js ***!
69139 \**************************************************/
69140/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69141
69142"use strict";
69143__webpack_require__.r(__webpack_exports__);
69144/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69145/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
69146/* harmony export */ });
69147/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {
69148 return a = +a, b = +b, function(t) {
69149 return Math.round(a * (1 - t) + b * t);
69150 };
69151}
69152
69153
69154/***/ }),
69155
69156/***/ "./node_modules/d3-interpolate/src/string.js":
69157/*!***************************************************!*\
69158 !*** ./node_modules/d3-interpolate/src/string.js ***!
69159 \***************************************************/
69160/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69161
69162"use strict";
69163__webpack_require__.r(__webpack_exports__);
69164/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69165/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
69166/* harmony export */ });
69167/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.js */ "./node_modules/d3-interpolate/src/number.js");
69168
69169
69170var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
69171 reB = new RegExp(reA.source, "g");
69172
69173function zero(b) {
69174 return function() {
69175 return b;
69176 };
69177}
69178
69179function one(b) {
69180 return function(t) {
69181 return b(t) + "";
69182 };
69183}
69184
69185/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {
69186 var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b
69187 am, // current match in a
69188 bm, // current match in b
69189 bs, // string preceding current number in b, if any
69190 i = -1, // index in s
69191 s = [], // string constants and placeholders
69192 q = []; // number interpolators
69193
69194 // Coerce inputs to strings.
69195 a = a + "", b = b + "";
69196
69197 // Interpolate pairs of numbers in a & b.
69198 while ((am = reA.exec(a))
69199 && (bm = reB.exec(b))) {
69200 if ((bs = bm.index) > bi) { // a string precedes the next number in b
69201 bs = b.slice(bi, bs);
69202 if (s[i]) s[i] += bs; // coalesce with previous string
69203 else s[++i] = bs;
69204 }
69205 if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match
69206 if (s[i]) s[i] += bm; // coalesce with previous string
69207 else s[++i] = bm;
69208 } else { // interpolate non-matching numbers
69209 s[++i] = null;
69210 q.push({i: i, x: (0,_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(am, bm)});
69211 }
69212 bi = reB.lastIndex;
69213 }
69214
69215 // Add remains of b.
69216 if (bi < b.length) {
69217 bs = b.slice(bi);
69218 if (s[i]) s[i] += bs; // coalesce with previous string
69219 else s[++i] = bs;
69220 }
69221
69222 // Special optimization for only a single match.
69223 // Otherwise, interpolate each of the numbers and rejoin the string.
69224 return s.length < 2 ? (q[0]
69225 ? one(q[0].x)
69226 : zero(b))
69227 : (b = q.length, function(t) {
69228 for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
69229 return s.join("");
69230 });
69231}
69232
69233
69234/***/ }),
69235
69236/***/ "./node_modules/d3-interpolate/src/transform/decompose.js":
69237/*!****************************************************************!*\
69238 !*** ./node_modules/d3-interpolate/src/transform/decompose.js ***!
69239 \****************************************************************/
69240/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69241
69242"use strict";
69243__webpack_require__.r(__webpack_exports__);
69244/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69245/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
69246/* harmony export */ "identity": () => (/* binding */ identity)
69247/* harmony export */ });
69248var degrees = 180 / Math.PI;
69249
69250var identity = {
69251 translateX: 0,
69252 translateY: 0,
69253 rotate: 0,
69254 skewX: 0,
69255 scaleX: 1,
69256 scaleY: 1
69257};
69258
69259/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b, c, d, e, f) {
69260 var scaleX, scaleY, skewX;
69261 if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;
69262 if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;
69263 if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;
69264 if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
69265 return {
69266 translateX: e,
69267 translateY: f,
69268 rotate: Math.atan2(b, a) * degrees,
69269 skewX: Math.atan(skewX) * degrees,
69270 scaleX: scaleX,
69271 scaleY: scaleY
69272 };
69273}
69274
69275
69276/***/ }),
69277
69278/***/ "./node_modules/d3-interpolate/src/transform/index.js":
69279/*!************************************************************!*\
69280 !*** ./node_modules/d3-interpolate/src/transform/index.js ***!
69281 \************************************************************/
69282/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69283
69284"use strict";
69285__webpack_require__.r(__webpack_exports__);
69286/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69287/* harmony export */ "interpolateTransformCss": () => (/* binding */ interpolateTransformCss),
69288/* harmony export */ "interpolateTransformSvg": () => (/* binding */ interpolateTransformSvg)
69289/* harmony export */ });
69290/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../number.js */ "./node_modules/d3-interpolate/src/number.js");
69291/* harmony import */ var _parse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parse.js */ "./node_modules/d3-interpolate/src/transform/parse.js");
69292
69293
69294
69295function interpolateTransform(parse, pxComma, pxParen, degParen) {
69296
69297 function pop(s) {
69298 return s.length ? s.pop() + " " : "";
69299 }
69300
69301 function translate(xa, ya, xb, yb, s, q) {
69302 if (xa !== xb || ya !== yb) {
69303 var i = s.push("translate(", null, pxComma, null, pxParen);
69304 q.push({i: i - 4, x: (0,_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(xa, xb)}, {i: i - 2, x: (0,_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(ya, yb)});
69305 } else if (xb || yb) {
69306 s.push("translate(" + xb + pxComma + yb + pxParen);
69307 }
69308 }
69309
69310 function rotate(a, b, s, q) {
69311 if (a !== b) {
69312 if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path
69313 q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: (0,_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(a, b)});
69314 } else if (b) {
69315 s.push(pop(s) + "rotate(" + b + degParen);
69316 }
69317 }
69318
69319 function skewX(a, b, s, q) {
69320 if (a !== b) {
69321 q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: (0,_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(a, b)});
69322 } else if (b) {
69323 s.push(pop(s) + "skewX(" + b + degParen);
69324 }
69325 }
69326
69327 function scale(xa, ya, xb, yb, s, q) {
69328 if (xa !== xb || ya !== yb) {
69329 var i = s.push(pop(s) + "scale(", null, ",", null, ")");
69330 q.push({i: i - 4, x: (0,_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(xa, xb)}, {i: i - 2, x: (0,_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(ya, yb)});
69331 } else if (xb !== 1 || yb !== 1) {
69332 s.push(pop(s) + "scale(" + xb + "," + yb + ")");
69333 }
69334 }
69335
69336 return function(a, b) {
69337 var s = [], // string constants and placeholders
69338 q = []; // number interpolators
69339 a = parse(a), b = parse(b);
69340 translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);
69341 rotate(a.rotate, b.rotate, s, q);
69342 skewX(a.skewX, b.skewX, s, q);
69343 scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);
69344 a = b = null; // gc
69345 return function(t) {
69346 var i = -1, n = q.length, o;
69347 while (++i < n) s[(o = q[i]).i] = o.x(t);
69348 return s.join("");
69349 };
69350 };
69351}
69352
69353var interpolateTransformCss = interpolateTransform(_parse_js__WEBPACK_IMPORTED_MODULE_1__.parseCss, "px, ", "px)", "deg)");
69354var interpolateTransformSvg = interpolateTransform(_parse_js__WEBPACK_IMPORTED_MODULE_1__.parseSvg, ", ", ")", ")");
69355
69356
69357/***/ }),
69358
69359/***/ "./node_modules/d3-interpolate/src/transform/parse.js":
69360/*!************************************************************!*\
69361 !*** ./node_modules/d3-interpolate/src/transform/parse.js ***!
69362 \************************************************************/
69363/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69364
69365"use strict";
69366__webpack_require__.r(__webpack_exports__);
69367/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69368/* harmony export */ "parseCss": () => (/* binding */ parseCss),
69369/* harmony export */ "parseSvg": () => (/* binding */ parseSvg)
69370/* harmony export */ });
69371/* harmony import */ var _decompose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./decompose.js */ "./node_modules/d3-interpolate/src/transform/decompose.js");
69372
69373
69374var svgNode;
69375
69376/* eslint-disable no-undef */
69377function parseCss(value) {
69378 const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + "");
69379 return m.isIdentity ? _decompose_js__WEBPACK_IMPORTED_MODULE_0__.identity : (0,_decompose_js__WEBPACK_IMPORTED_MODULE_0__["default"])(m.a, m.b, m.c, m.d, m.e, m.f);
69380}
69381
69382function parseSvg(value) {
69383 if (value == null) return _decompose_js__WEBPACK_IMPORTED_MODULE_0__.identity;
69384 if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
69385 svgNode.setAttribute("transform", value);
69386 if (!(value = svgNode.transform.baseVal.consolidate())) return _decompose_js__WEBPACK_IMPORTED_MODULE_0__.identity;
69387 value = value.matrix;
69388 return (0,_decompose_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value.a, value.b, value.c, value.d, value.e, value.f);
69389}
69390
69391
69392/***/ }),
69393
69394/***/ "./node_modules/d3-interpolate/src/value.js":
69395/*!**************************************************!*\
69396 !*** ./node_modules/d3-interpolate/src/value.js ***!
69397 \**************************************************/
69398/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69399
69400"use strict";
69401__webpack_require__.r(__webpack_exports__);
69402/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69403/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
69404/* harmony export */ });
69405/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/color.js");
69406/* harmony import */ var _rgb_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rgb.js */ "./node_modules/d3-interpolate/src/rgb.js");
69407/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./array.js */ "./node_modules/d3-interpolate/src/array.js");
69408/* harmony import */ var _date_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./date.js */ "./node_modules/d3-interpolate/src/date.js");
69409/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./number.js */ "./node_modules/d3-interpolate/src/number.js");
69410/* harmony import */ var _object_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./object.js */ "./node_modules/d3-interpolate/src/object.js");
69411/* harmony import */ var _string_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./string.js */ "./node_modules/d3-interpolate/src/string.js");
69412/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-interpolate/src/constant.js");
69413/* harmony import */ var _numberArray_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./numberArray.js */ "./node_modules/d3-interpolate/src/numberArray.js");
69414
69415
69416
69417
69418
69419
69420
69421
69422
69423
69424/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {
69425 var t = typeof b, c;
69426 return b == null || t === "boolean" ? (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(b)
69427 : (t === "number" ? _number_js__WEBPACK_IMPORTED_MODULE_1__["default"]
69428 : t === "string" ? ((c = (0,d3_color__WEBPACK_IMPORTED_MODULE_2__["default"])(b)) ? (b = c, _rgb_js__WEBPACK_IMPORTED_MODULE_3__["default"]) : _string_js__WEBPACK_IMPORTED_MODULE_4__["default"])
69429 : b instanceof d3_color__WEBPACK_IMPORTED_MODULE_2__["default"] ? _rgb_js__WEBPACK_IMPORTED_MODULE_3__["default"]
69430 : b instanceof Date ? _date_js__WEBPACK_IMPORTED_MODULE_5__["default"]
69431 : (0,_numberArray_js__WEBPACK_IMPORTED_MODULE_6__.isNumberArray)(b) ? _numberArray_js__WEBPACK_IMPORTED_MODULE_6__["default"]
69432 : Array.isArray(b) ? _array_js__WEBPACK_IMPORTED_MODULE_7__.genericArray
69433 : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? _object_js__WEBPACK_IMPORTED_MODULE_8__["default"]
69434 : _number_js__WEBPACK_IMPORTED_MODULE_1__["default"])(a, b);
69435}
69436
69437
69438/***/ }),
69439
69440/***/ "./node_modules/d3-interpolate/src/zoom.js":
69441/*!*************************************************!*\
69442 !*** ./node_modules/d3-interpolate/src/zoom.js ***!
69443 \*************************************************/
69444/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69445
69446"use strict";
69447__webpack_require__.r(__webpack_exports__);
69448/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69449/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
69450/* harmony export */ });
69451var epsilon2 = 1e-12;
69452
69453function cosh(x) {
69454 return ((x = Math.exp(x)) + 1 / x) / 2;
69455}
69456
69457function sinh(x) {
69458 return ((x = Math.exp(x)) - 1 / x) / 2;
69459}
69460
69461function tanh(x) {
69462 return ((x = Math.exp(2 * x)) - 1) / (x + 1);
69463}
69464
69465/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function zoomRho(rho, rho2, rho4) {
69466
69467 // p0 = [ux0, uy0, w0]
69468 // p1 = [ux1, uy1, w1]
69469 function zoom(p0, p1) {
69470 var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],
69471 ux1 = p1[0], uy1 = p1[1], w1 = p1[2],
69472 dx = ux1 - ux0,
69473 dy = uy1 - uy0,
69474 d2 = dx * dx + dy * dy,
69475 i,
69476 S;
69477
69478 // Special case for u0 ≅ u1.
69479 if (d2 < epsilon2) {
69480 S = Math.log(w1 / w0) / rho;
69481 i = function(t) {
69482 return [
69483 ux0 + t * dx,
69484 uy0 + t * dy,
69485 w0 * Math.exp(rho * t * S)
69486 ];
69487 }
69488 }
69489
69490 // General case.
69491 else {
69492 var d1 = Math.sqrt(d2),
69493 b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),
69494 b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),
69495 r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),
69496 r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
69497 S = (r1 - r0) / rho;
69498 i = function(t) {
69499 var s = t * S,
69500 coshr0 = cosh(r0),
69501 u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));
69502 return [
69503 ux0 + u * dx,
69504 uy0 + u * dy,
69505 w0 * coshr0 / cosh(rho * s + r0)
69506 ];
69507 }
69508 }
69509
69510 i.duration = S * 1000 * rho / Math.SQRT2;
69511
69512 return i;
69513 }
69514
69515 zoom.rho = function(_) {
69516 var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;
69517 return zoomRho(_1, _2, _4);
69518 };
69519
69520 return zoom;
69521})(Math.SQRT2, 2, 4));
69522
69523
69524/***/ }),
69525
69526/***/ "./node_modules/d3-path/src/index.js":
69527/*!*******************************************!*\
69528 !*** ./node_modules/d3-path/src/index.js ***!
69529 \*******************************************/
69530/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69531
69532"use strict";
69533__webpack_require__.r(__webpack_exports__);
69534/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69535/* harmony export */ "path": () => (/* reexport safe */ _path_js__WEBPACK_IMPORTED_MODULE_0__["default"])
69536/* harmony export */ });
69537/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./path.js */ "./node_modules/d3-path/src/path.js");
69538
69539
69540
69541/***/ }),
69542
69543/***/ "./node_modules/d3-path/src/path.js":
69544/*!******************************************!*\
69545 !*** ./node_modules/d3-path/src/path.js ***!
69546 \******************************************/
69547/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69548
69549"use strict";
69550__webpack_require__.r(__webpack_exports__);
69551/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69552/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
69553/* harmony export */ });
69554const pi = Math.PI,
69555 tau = 2 * pi,
69556 epsilon = 1e-6,
69557 tauEpsilon = tau - epsilon;
69558
69559function Path() {
69560 this._x0 = this._y0 = // start of current subpath
69561 this._x1 = this._y1 = null; // end of current subpath
69562 this._ = "";
69563}
69564
69565function path() {
69566 return new Path;
69567}
69568
69569Path.prototype = path.prototype = {
69570 constructor: Path,
69571 moveTo: function(x, y) {
69572 this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y);
69573 },
69574 closePath: function() {
69575 if (this._x1 !== null) {
69576 this._x1 = this._x0, this._y1 = this._y0;
69577 this._ += "Z";
69578 }
69579 },
69580 lineTo: function(x, y) {
69581 this._ += "L" + (this._x1 = +x) + "," + (this._y1 = +y);
69582 },
69583 quadraticCurveTo: function(x1, y1, x, y) {
69584 this._ += "Q" + (+x1) + "," + (+y1) + "," + (this._x1 = +x) + "," + (this._y1 = +y);
69585 },
69586 bezierCurveTo: function(x1, y1, x2, y2, x, y) {
69587 this._ += "C" + (+x1) + "," + (+y1) + "," + (+x2) + "," + (+y2) + "," + (this._x1 = +x) + "," + (this._y1 = +y);
69588 },
69589 arcTo: function(x1, y1, x2, y2, r) {
69590 x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
69591 var x0 = this._x1,
69592 y0 = this._y1,
69593 x21 = x2 - x1,
69594 y21 = y2 - y1,
69595 x01 = x0 - x1,
69596 y01 = y0 - y1,
69597 l01_2 = x01 * x01 + y01 * y01;
69598
69599 // Is the radius negative? Error.
69600 if (r < 0) throw new Error("negative radius: " + r);
69601
69602 // Is this path empty? Move to (x1,y1).
69603 if (this._x1 === null) {
69604 this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1);
69605 }
69606
69607 // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.
69608 else if (!(l01_2 > epsilon));
69609
69610 // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?
69611 // Equivalently, is (x1,y1) coincident with (x2,y2)?
69612 // Or, is the radius zero? Line to (x1,y1).
69613 else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {
69614 this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1);
69615 }
69616
69617 // Otherwise, draw an arc!
69618 else {
69619 var x20 = x2 - x0,
69620 y20 = y2 - y0,
69621 l21_2 = x21 * x21 + y21 * y21,
69622 l20_2 = x20 * x20 + y20 * y20,
69623 l21 = Math.sqrt(l21_2),
69624 l01 = Math.sqrt(l01_2),
69625 l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),
69626 t01 = l / l01,
69627 t21 = l / l21;
69628
69629 // If the start tangent is not coincident with (x0,y0), line to.
69630 if (Math.abs(t01 - 1) > epsilon) {
69631 this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01);
69632 }
69633
69634 this._ += "A" + r + "," + r + ",0,0," + (+(y01 * x20 > x01 * y20)) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21);
69635 }
69636 },
69637 arc: function(x, y, r, a0, a1, ccw) {
69638 x = +x, y = +y, r = +r, ccw = !!ccw;
69639 var dx = r * Math.cos(a0),
69640 dy = r * Math.sin(a0),
69641 x0 = x + dx,
69642 y0 = y + dy,
69643 cw = 1 ^ ccw,
69644 da = ccw ? a0 - a1 : a1 - a0;
69645
69646 // Is the radius negative? Error.
69647 if (r < 0) throw new Error("negative radius: " + r);
69648
69649 // Is this path empty? Move to (x0,y0).
69650 if (this._x1 === null) {
69651 this._ += "M" + x0 + "," + y0;
69652 }
69653
69654 // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).
69655 else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {
69656 this._ += "L" + x0 + "," + y0;
69657 }
69658
69659 // Is this arc empty? We’re done.
69660 if (!r) return;
69661
69662 // Does the angle go the wrong way? Flip the direction.
69663 if (da < 0) da = da % tau + tau;
69664
69665 // Is this a complete circle? Draw two arcs to complete the circle.
69666 if (da > tauEpsilon) {
69667 this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x - dx) + "," + (y - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0);
69668 }
69669
69670 // Is this arc non-empty? Draw an arc!
69671 else if (da > epsilon) {
69672 this._ += "A" + r + "," + r + ",0," + (+(da >= pi)) + "," + cw + "," + (this._x1 = x + r * Math.cos(a1)) + "," + (this._y1 = y + r * Math.sin(a1));
69673 }
69674 },
69675 rect: function(x, y, w, h) {
69676 this._ += "M" + (this._x0 = this._x1 = +x) + "," + (this._y0 = this._y1 = +y) + "h" + (+w) + "v" + (+h) + "h" + (-w) + "Z";
69677 },
69678 toString: function() {
69679 return this._;
69680 }
69681};
69682
69683/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (path);
69684
69685
69686/***/ }),
69687
69688/***/ "./node_modules/d3-polygon/src/area.js":
69689/*!*********************************************!*\
69690 !*** ./node_modules/d3-polygon/src/area.js ***!
69691 \*********************************************/
69692/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69693
69694"use strict";
69695__webpack_require__.r(__webpack_exports__);
69696/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69697/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
69698/* harmony export */ });
69699/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(polygon) {
69700 var i = -1,
69701 n = polygon.length,
69702 a,
69703 b = polygon[n - 1],
69704 area = 0;
69705
69706 while (++i < n) {
69707 a = b;
69708 b = polygon[i];
69709 area += a[1] * b[0] - a[0] * b[1];
69710 }
69711
69712 return area / 2;
69713}
69714
69715
69716/***/ }),
69717
69718/***/ "./node_modules/d3-polygon/src/centroid.js":
69719/*!*************************************************!*\
69720 !*** ./node_modules/d3-polygon/src/centroid.js ***!
69721 \*************************************************/
69722/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69723
69724"use strict";
69725__webpack_require__.r(__webpack_exports__);
69726/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69727/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
69728/* harmony export */ });
69729/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(polygon) {
69730 var i = -1,
69731 n = polygon.length,
69732 x = 0,
69733 y = 0,
69734 a,
69735 b = polygon[n - 1],
69736 c,
69737 k = 0;
69738
69739 while (++i < n) {
69740 a = b;
69741 b = polygon[i];
69742 k += c = a[0] * b[1] - b[0] * a[1];
69743 x += (a[0] + b[0]) * c;
69744 y += (a[1] + b[1]) * c;
69745 }
69746
69747 return k *= 3, [x / k, y / k];
69748}
69749
69750
69751/***/ }),
69752
69753/***/ "./node_modules/d3-polygon/src/contains.js":
69754/*!*************************************************!*\
69755 !*** ./node_modules/d3-polygon/src/contains.js ***!
69756 \*************************************************/
69757/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69758
69759"use strict";
69760__webpack_require__.r(__webpack_exports__);
69761/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69762/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
69763/* harmony export */ });
69764/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(polygon, point) {
69765 var n = polygon.length,
69766 p = polygon[n - 1],
69767 x = point[0], y = point[1],
69768 x0 = p[0], y0 = p[1],
69769 x1, y1,
69770 inside = false;
69771
69772 for (var i = 0; i < n; ++i) {
69773 p = polygon[i], x1 = p[0], y1 = p[1];
69774 if (((y1 > y) !== (y0 > y)) && (x < (x0 - x1) * (y - y1) / (y0 - y1) + x1)) inside = !inside;
69775 x0 = x1, y0 = y1;
69776 }
69777
69778 return inside;
69779}
69780
69781
69782/***/ }),
69783
69784/***/ "./node_modules/d3-polygon/src/cross.js":
69785/*!**********************************************!*\
69786 !*** ./node_modules/d3-polygon/src/cross.js ***!
69787 \**********************************************/
69788/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69789
69790"use strict";
69791__webpack_require__.r(__webpack_exports__);
69792/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69793/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
69794/* harmony export */ });
69795// Returns the 2D cross product of AB and AC vectors, i.e., the z-component of
69796// the 3D cross product in a quadrant I Cartesian coordinate system (+x is
69797// right, +y is up). Returns a positive value if ABC is counter-clockwise,
69798// negative if clockwise, and zero if the points are collinear.
69799/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b, c) {
69800 return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);
69801}
69802
69803
69804/***/ }),
69805
69806/***/ "./node_modules/d3-polygon/src/hull.js":
69807/*!*********************************************!*\
69808 !*** ./node_modules/d3-polygon/src/hull.js ***!
69809 \*********************************************/
69810/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69811
69812"use strict";
69813__webpack_require__.r(__webpack_exports__);
69814/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69815/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
69816/* harmony export */ });
69817/* harmony import */ var _cross_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cross.js */ "./node_modules/d3-polygon/src/cross.js");
69818
69819
69820function lexicographicOrder(a, b) {
69821 return a[0] - b[0] || a[1] - b[1];
69822}
69823
69824// Computes the upper convex hull per the monotone chain algorithm.
69825// Assumes points.length >= 3, is sorted by x, unique in y.
69826// Returns an array of indices into points in left-to-right order.
69827function computeUpperHullIndexes(points) {
69828 const n = points.length,
69829 indexes = [0, 1];
69830 let size = 2, i;
69831
69832 for (i = 2; i < n; ++i) {
69833 while (size > 1 && (0,_cross_js__WEBPACK_IMPORTED_MODULE_0__["default"])(points[indexes[size - 2]], points[indexes[size - 1]], points[i]) <= 0) --size;
69834 indexes[size++] = i;
69835 }
69836
69837 return indexes.slice(0, size); // remove popped points
69838}
69839
69840/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(points) {
69841 if ((n = points.length) < 3) return null;
69842
69843 var i,
69844 n,
69845 sortedPoints = new Array(n),
69846 flippedPoints = new Array(n);
69847
69848 for (i = 0; i < n; ++i) sortedPoints[i] = [+points[i][0], +points[i][1], i];
69849 sortedPoints.sort(lexicographicOrder);
69850 for (i = 0; i < n; ++i) flippedPoints[i] = [sortedPoints[i][0], -sortedPoints[i][1]];
69851
69852 var upperIndexes = computeUpperHullIndexes(sortedPoints),
69853 lowerIndexes = computeUpperHullIndexes(flippedPoints);
69854
69855 // Construct the hull polygon, removing possible duplicate endpoints.
69856 var skipLeft = lowerIndexes[0] === upperIndexes[0],
69857 skipRight = lowerIndexes[lowerIndexes.length - 1] === upperIndexes[upperIndexes.length - 1],
69858 hull = [];
69859
69860 // Add upper hull in right-to-l order.
69861 // Then add lower hull in left-to-right order.
69862 for (i = upperIndexes.length - 1; i >= 0; --i) hull.push(points[sortedPoints[upperIndexes[i]][2]]);
69863 for (i = +skipLeft; i < lowerIndexes.length - skipRight; ++i) hull.push(points[sortedPoints[lowerIndexes[i]][2]]);
69864
69865 return hull;
69866}
69867
69868
69869/***/ }),
69870
69871/***/ "./node_modules/d3-polygon/src/index.js":
69872/*!**********************************************!*\
69873 !*** ./node_modules/d3-polygon/src/index.js ***!
69874 \**********************************************/
69875/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69876
69877"use strict";
69878__webpack_require__.r(__webpack_exports__);
69879/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69880/* harmony export */ "polygonArea": () => (/* reexport safe */ _area_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
69881/* harmony export */ "polygonCentroid": () => (/* reexport safe */ _centroid_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
69882/* harmony export */ "polygonContains": () => (/* reexport safe */ _contains_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
69883/* harmony export */ "polygonHull": () => (/* reexport safe */ _hull_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
69884/* harmony export */ "polygonLength": () => (/* reexport safe */ _length_js__WEBPACK_IMPORTED_MODULE_4__["default"])
69885/* harmony export */ });
69886/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./area.js */ "./node_modules/d3-polygon/src/area.js");
69887/* harmony import */ var _centroid_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./centroid.js */ "./node_modules/d3-polygon/src/centroid.js");
69888/* harmony import */ var _hull_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hull.js */ "./node_modules/d3-polygon/src/hull.js");
69889/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./contains.js */ "./node_modules/d3-polygon/src/contains.js");
69890/* harmony import */ var _length_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./length.js */ "./node_modules/d3-polygon/src/length.js");
69891
69892
69893
69894
69895
69896
69897
69898/***/ }),
69899
69900/***/ "./node_modules/d3-polygon/src/length.js":
69901/*!***********************************************!*\
69902 !*** ./node_modules/d3-polygon/src/length.js ***!
69903 \***********************************************/
69904/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69905
69906"use strict";
69907__webpack_require__.r(__webpack_exports__);
69908/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69909/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
69910/* harmony export */ });
69911/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(polygon) {
69912 var i = -1,
69913 n = polygon.length,
69914 b = polygon[n - 1],
69915 xa,
69916 ya,
69917 xb = b[0],
69918 yb = b[1],
69919 perimeter = 0;
69920
69921 while (++i < n) {
69922 xa = xb;
69923 ya = yb;
69924 b = polygon[i];
69925 xb = b[0];
69926 yb = b[1];
69927 xa -= xb;
69928 ya -= yb;
69929 perimeter += Math.hypot(xa, ya);
69930 }
69931
69932 return perimeter;
69933}
69934
69935
69936/***/ }),
69937
69938/***/ "./node_modules/d3-quadtree/src/add.js":
69939/*!*********************************************!*\
69940 !*** ./node_modules/d3-quadtree/src/add.js ***!
69941 \*********************************************/
69942/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
69943
69944"use strict";
69945__webpack_require__.r(__webpack_exports__);
69946/* harmony export */ __webpack_require__.d(__webpack_exports__, {
69947/* harmony export */ "addAll": () => (/* binding */ addAll),
69948/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
69949/* harmony export */ });
69950/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(d) {
69951 const x = +this._x.call(null, d),
69952 y = +this._y.call(null, d);
69953 return add(this.cover(x, y), x, y, d);
69954}
69955
69956function add(tree, x, y, d) {
69957 if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points
69958
69959 var parent,
69960 node = tree._root,
69961 leaf = {data: d},
69962 x0 = tree._x0,
69963 y0 = tree._y0,
69964 x1 = tree._x1,
69965 y1 = tree._y1,
69966 xm,
69967 ym,
69968 xp,
69969 yp,
69970 right,
69971 bottom,
69972 i,
69973 j;
69974
69975 // If the tree is empty, initialize the root as a leaf.
69976 if (!node) return tree._root = leaf, tree;
69977
69978 // Find the existing leaf for the new point, or add it.
69979 while (node.length) {
69980 if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
69981 if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
69982 if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;
69983 }
69984
69985 // Is the new point is exactly coincident with the existing point?
69986 xp = +tree._x.call(null, node.data);
69987 yp = +tree._y.call(null, node.data);
69988 if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;
69989
69990 // Otherwise, split the leaf node until the old and new point are separated.
69991 do {
69992 parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);
69993 if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
69994 if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
69995 } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));
69996 return parent[j] = node, parent[i] = leaf, tree;
69997}
69998
69999function addAll(data) {
70000 var d, i, n = data.length,
70001 x,
70002 y,
70003 xz = new Array(n),
70004 yz = new Array(n),
70005 x0 = Infinity,
70006 y0 = Infinity,
70007 x1 = -Infinity,
70008 y1 = -Infinity;
70009
70010 // Compute the points and their extent.
70011 for (i = 0; i < n; ++i) {
70012 if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;
70013 xz[i] = x;
70014 yz[i] = y;
70015 if (x < x0) x0 = x;
70016 if (x > x1) x1 = x;
70017 if (y < y0) y0 = y;
70018 if (y > y1) y1 = y;
70019 }
70020
70021 // If there were no (valid) points, abort.
70022 if (x0 > x1 || y0 > y1) return this;
70023
70024 // Expand the tree to cover the new points.
70025 this.cover(x0, y0).cover(x1, y1);
70026
70027 // Add the new points.
70028 for (i = 0; i < n; ++i) {
70029 add(this, xz[i], yz[i], data[i]);
70030 }
70031
70032 return this;
70033}
70034
70035
70036/***/ }),
70037
70038/***/ "./node_modules/d3-quadtree/src/cover.js":
70039/*!***********************************************!*\
70040 !*** ./node_modules/d3-quadtree/src/cover.js ***!
70041 \***********************************************/
70042/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70043
70044"use strict";
70045__webpack_require__.r(__webpack_exports__);
70046/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70047/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
70048/* harmony export */ });
70049/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x, y) {
70050 if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points
70051
70052 var x0 = this._x0,
70053 y0 = this._y0,
70054 x1 = this._x1,
70055 y1 = this._y1;
70056
70057 // If the quadtree has no extent, initialize them.
70058 // Integer extent are necessary so that if we later double the extent,
70059 // the existing quadrant boundaries don’t change due to floating point error!
70060 if (isNaN(x0)) {
70061 x1 = (x0 = Math.floor(x)) + 1;
70062 y1 = (y0 = Math.floor(y)) + 1;
70063 }
70064
70065 // Otherwise, double repeatedly to cover.
70066 else {
70067 var z = x1 - x0 || 1,
70068 node = this._root,
70069 parent,
70070 i;
70071
70072 while (x0 > x || x >= x1 || y0 > y || y >= y1) {
70073 i = (y < y0) << 1 | (x < x0);
70074 parent = new Array(4), parent[i] = node, node = parent, z *= 2;
70075 switch (i) {
70076 case 0: x1 = x0 + z, y1 = y0 + z; break;
70077 case 1: x0 = x1 - z, y1 = y0 + z; break;
70078 case 2: x1 = x0 + z, y0 = y1 - z; break;
70079 case 3: x0 = x1 - z, y0 = y1 - z; break;
70080 }
70081 }
70082
70083 if (this._root && this._root.length) this._root = node;
70084 }
70085
70086 this._x0 = x0;
70087 this._y0 = y0;
70088 this._x1 = x1;
70089 this._y1 = y1;
70090 return this;
70091}
70092
70093
70094/***/ }),
70095
70096/***/ "./node_modules/d3-quadtree/src/data.js":
70097/*!**********************************************!*\
70098 !*** ./node_modules/d3-quadtree/src/data.js ***!
70099 \**********************************************/
70100/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70101
70102"use strict";
70103__webpack_require__.r(__webpack_exports__);
70104/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70105/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
70106/* harmony export */ });
70107/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
70108 var data = [];
70109 this.visit(function(node) {
70110 if (!node.length) do data.push(node.data); while (node = node.next)
70111 });
70112 return data;
70113}
70114
70115
70116/***/ }),
70117
70118/***/ "./node_modules/d3-quadtree/src/extent.js":
70119/*!************************************************!*\
70120 !*** ./node_modules/d3-quadtree/src/extent.js ***!
70121 \************************************************/
70122/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70123
70124"use strict";
70125__webpack_require__.r(__webpack_exports__);
70126/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70127/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
70128/* harmony export */ });
70129/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(_) {
70130 return arguments.length
70131 ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])
70132 : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];
70133}
70134
70135
70136/***/ }),
70137
70138/***/ "./node_modules/d3-quadtree/src/find.js":
70139/*!**********************************************!*\
70140 !*** ./node_modules/d3-quadtree/src/find.js ***!
70141 \**********************************************/
70142/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70143
70144"use strict";
70145__webpack_require__.r(__webpack_exports__);
70146/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70147/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
70148/* harmony export */ });
70149/* harmony import */ var _quad_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quad.js */ "./node_modules/d3-quadtree/src/quad.js");
70150
70151
70152/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x, y, radius) {
70153 var data,
70154 x0 = this._x0,
70155 y0 = this._y0,
70156 x1,
70157 y1,
70158 x2,
70159 y2,
70160 x3 = this._x1,
70161 y3 = this._y1,
70162 quads = [],
70163 node = this._root,
70164 q,
70165 i;
70166
70167 if (node) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](node, x0, y0, x3, y3));
70168 if (radius == null) radius = Infinity;
70169 else {
70170 x0 = x - radius, y0 = y - radius;
70171 x3 = x + radius, y3 = y + radius;
70172 radius *= radius;
70173 }
70174
70175 while (q = quads.pop()) {
70176
70177 // Stop searching if this quadrant can’t contain a closer node.
70178 if (!(node = q.node)
70179 || (x1 = q.x0) > x3
70180 || (y1 = q.y0) > y3
70181 || (x2 = q.x1) < x0
70182 || (y2 = q.y1) < y0) continue;
70183
70184 // Bisect the current quadrant.
70185 if (node.length) {
70186 var xm = (x1 + x2) / 2,
70187 ym = (y1 + y2) / 2;
70188
70189 quads.push(
70190 new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](node[3], xm, ym, x2, y2),
70191 new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](node[2], x1, ym, xm, y2),
70192 new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](node[1], xm, y1, x2, ym),
70193 new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](node[0], x1, y1, xm, ym)
70194 );
70195
70196 // Visit the closest quadrant first.
70197 if (i = (y >= ym) << 1 | (x >= xm)) {
70198 q = quads[quads.length - 1];
70199 quads[quads.length - 1] = quads[quads.length - 1 - i];
70200 quads[quads.length - 1 - i] = q;
70201 }
70202 }
70203
70204 // Visit this point. (Visiting coincident points isn’t necessary!)
70205 else {
70206 var dx = x - +this._x.call(null, node.data),
70207 dy = y - +this._y.call(null, node.data),
70208 d2 = dx * dx + dy * dy;
70209 if (d2 < radius) {
70210 var d = Math.sqrt(radius = d2);
70211 x0 = x - d, y0 = y - d;
70212 x3 = x + d, y3 = y + d;
70213 data = node.data;
70214 }
70215 }
70216 }
70217
70218 return data;
70219}
70220
70221
70222/***/ }),
70223
70224/***/ "./node_modules/d3-quadtree/src/index.js":
70225/*!***********************************************!*\
70226 !*** ./node_modules/d3-quadtree/src/index.js ***!
70227 \***********************************************/
70228/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70229
70230"use strict";
70231__webpack_require__.r(__webpack_exports__);
70232/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70233/* harmony export */ "quadtree": () => (/* reexport safe */ _quadtree_js__WEBPACK_IMPORTED_MODULE_0__["default"])
70234/* harmony export */ });
70235/* harmony import */ var _quadtree_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quadtree.js */ "./node_modules/d3-quadtree/src/quadtree.js");
70236
70237
70238
70239/***/ }),
70240
70241/***/ "./node_modules/d3-quadtree/src/quad.js":
70242/*!**********************************************!*\
70243 !*** ./node_modules/d3-quadtree/src/quad.js ***!
70244 \**********************************************/
70245/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70246
70247"use strict";
70248__webpack_require__.r(__webpack_exports__);
70249/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70250/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
70251/* harmony export */ });
70252/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(node, x0, y0, x1, y1) {
70253 this.node = node;
70254 this.x0 = x0;
70255 this.y0 = y0;
70256 this.x1 = x1;
70257 this.y1 = y1;
70258}
70259
70260
70261/***/ }),
70262
70263/***/ "./node_modules/d3-quadtree/src/quadtree.js":
70264/*!**************************************************!*\
70265 !*** ./node_modules/d3-quadtree/src/quadtree.js ***!
70266 \**************************************************/
70267/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70268
70269"use strict";
70270__webpack_require__.r(__webpack_exports__);
70271/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70272/* harmony export */ "default": () => (/* binding */ quadtree)
70273/* harmony export */ });
70274/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./add.js */ "./node_modules/d3-quadtree/src/add.js");
70275/* harmony import */ var _cover_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cover.js */ "./node_modules/d3-quadtree/src/cover.js");
70276/* harmony import */ var _data_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./data.js */ "./node_modules/d3-quadtree/src/data.js");
70277/* harmony import */ var _extent_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./extent.js */ "./node_modules/d3-quadtree/src/extent.js");
70278/* harmony import */ var _find_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./find.js */ "./node_modules/d3-quadtree/src/find.js");
70279/* harmony import */ var _remove_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./remove.js */ "./node_modules/d3-quadtree/src/remove.js");
70280/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./root.js */ "./node_modules/d3-quadtree/src/root.js");
70281/* harmony import */ var _size_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./size.js */ "./node_modules/d3-quadtree/src/size.js");
70282/* harmony import */ var _visit_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./visit.js */ "./node_modules/d3-quadtree/src/visit.js");
70283/* harmony import */ var _visitAfter_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./visitAfter.js */ "./node_modules/d3-quadtree/src/visitAfter.js");
70284/* harmony import */ var _x_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./x.js */ "./node_modules/d3-quadtree/src/x.js");
70285/* harmony import */ var _y_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./y.js */ "./node_modules/d3-quadtree/src/y.js");
70286
70287
70288
70289
70290
70291
70292
70293
70294
70295
70296
70297
70298
70299function quadtree(nodes, x, y) {
70300 var tree = new Quadtree(x == null ? _x_js__WEBPACK_IMPORTED_MODULE_0__.defaultX : x, y == null ? _y_js__WEBPACK_IMPORTED_MODULE_1__.defaultY : y, NaN, NaN, NaN, NaN);
70301 return nodes == null ? tree : tree.addAll(nodes);
70302}
70303
70304function Quadtree(x, y, x0, y0, x1, y1) {
70305 this._x = x;
70306 this._y = y;
70307 this._x0 = x0;
70308 this._y0 = y0;
70309 this._x1 = x1;
70310 this._y1 = y1;
70311 this._root = undefined;
70312}
70313
70314function leaf_copy(leaf) {
70315 var copy = {data: leaf.data}, next = copy;
70316 while (leaf = leaf.next) next = next.next = {data: leaf.data};
70317 return copy;
70318}
70319
70320var treeProto = quadtree.prototype = Quadtree.prototype;
70321
70322treeProto.copy = function() {
70323 var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),
70324 node = this._root,
70325 nodes,
70326 child;
70327
70328 if (!node) return copy;
70329
70330 if (!node.length) return copy._root = leaf_copy(node), copy;
70331
70332 nodes = [{source: node, target: copy._root = new Array(4)}];
70333 while (node = nodes.pop()) {
70334 for (var i = 0; i < 4; ++i) {
70335 if (child = node.source[i]) {
70336 if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});
70337 else node.target[i] = leaf_copy(child);
70338 }
70339 }
70340 }
70341
70342 return copy;
70343};
70344
70345treeProto.add = _add_js__WEBPACK_IMPORTED_MODULE_2__["default"];
70346treeProto.addAll = _add_js__WEBPACK_IMPORTED_MODULE_2__.addAll;
70347treeProto.cover = _cover_js__WEBPACK_IMPORTED_MODULE_3__["default"];
70348treeProto.data = _data_js__WEBPACK_IMPORTED_MODULE_4__["default"];
70349treeProto.extent = _extent_js__WEBPACK_IMPORTED_MODULE_5__["default"];
70350treeProto.find = _find_js__WEBPACK_IMPORTED_MODULE_6__["default"];
70351treeProto.remove = _remove_js__WEBPACK_IMPORTED_MODULE_7__["default"];
70352treeProto.removeAll = _remove_js__WEBPACK_IMPORTED_MODULE_7__.removeAll;
70353treeProto.root = _root_js__WEBPACK_IMPORTED_MODULE_8__["default"];
70354treeProto.size = _size_js__WEBPACK_IMPORTED_MODULE_9__["default"];
70355treeProto.visit = _visit_js__WEBPACK_IMPORTED_MODULE_10__["default"];
70356treeProto.visitAfter = _visitAfter_js__WEBPACK_IMPORTED_MODULE_11__["default"];
70357treeProto.x = _x_js__WEBPACK_IMPORTED_MODULE_0__["default"];
70358treeProto.y = _y_js__WEBPACK_IMPORTED_MODULE_1__["default"];
70359
70360
70361/***/ }),
70362
70363/***/ "./node_modules/d3-quadtree/src/remove.js":
70364/*!************************************************!*\
70365 !*** ./node_modules/d3-quadtree/src/remove.js ***!
70366 \************************************************/
70367/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70368
70369"use strict";
70370__webpack_require__.r(__webpack_exports__);
70371/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70372/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
70373/* harmony export */ "removeAll": () => (/* binding */ removeAll)
70374/* harmony export */ });
70375/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(d) {
70376 if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points
70377
70378 var parent,
70379 node = this._root,
70380 retainer,
70381 previous,
70382 next,
70383 x0 = this._x0,
70384 y0 = this._y0,
70385 x1 = this._x1,
70386 y1 = this._y1,
70387 x,
70388 y,
70389 xm,
70390 ym,
70391 right,
70392 bottom,
70393 i,
70394 j;
70395
70396 // If the tree is empty, initialize the root as a leaf.
70397 if (!node) return this;
70398
70399 // Find the leaf node for the point.
70400 // While descending, also retain the deepest parent with a non-removed sibling.
70401 if (node.length) while (true) {
70402 if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;
70403 if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;
70404 if (!(parent = node, node = node[i = bottom << 1 | right])) return this;
70405 if (!node.length) break;
70406 if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;
70407 }
70408
70409 // Find the point to remove.
70410 while (node.data !== d) if (!(previous = node, node = node.next)) return this;
70411 if (next = node.next) delete node.next;
70412
70413 // If there are multiple coincident points, remove just the point.
70414 if (previous) return (next ? previous.next = next : delete previous.next), this;
70415
70416 // If this is the root point, remove it.
70417 if (!parent) return this._root = next, this;
70418
70419 // Remove this leaf.
70420 next ? parent[i] = next : delete parent[i];
70421
70422 // If the parent now contains exactly one leaf, collapse superfluous parents.
70423 if ((node = parent[0] || parent[1] || parent[2] || parent[3])
70424 && node === (parent[3] || parent[2] || parent[1] || parent[0])
70425 && !node.length) {
70426 if (retainer) retainer[j] = node;
70427 else this._root = node;
70428 }
70429
70430 return this;
70431}
70432
70433function removeAll(data) {
70434 for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);
70435 return this;
70436}
70437
70438
70439/***/ }),
70440
70441/***/ "./node_modules/d3-quadtree/src/root.js":
70442/*!**********************************************!*\
70443 !*** ./node_modules/d3-quadtree/src/root.js ***!
70444 \**********************************************/
70445/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70446
70447"use strict";
70448__webpack_require__.r(__webpack_exports__);
70449/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70450/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
70451/* harmony export */ });
70452/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
70453 return this._root;
70454}
70455
70456
70457/***/ }),
70458
70459/***/ "./node_modules/d3-quadtree/src/size.js":
70460/*!**********************************************!*\
70461 !*** ./node_modules/d3-quadtree/src/size.js ***!
70462 \**********************************************/
70463/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70464
70465"use strict";
70466__webpack_require__.r(__webpack_exports__);
70467/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70468/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
70469/* harmony export */ });
70470/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
70471 var size = 0;
70472 this.visit(function(node) {
70473 if (!node.length) do ++size; while (node = node.next)
70474 });
70475 return size;
70476}
70477
70478
70479/***/ }),
70480
70481/***/ "./node_modules/d3-quadtree/src/visit.js":
70482/*!***********************************************!*\
70483 !*** ./node_modules/d3-quadtree/src/visit.js ***!
70484 \***********************************************/
70485/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70486
70487"use strict";
70488__webpack_require__.r(__webpack_exports__);
70489/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70490/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
70491/* harmony export */ });
70492/* harmony import */ var _quad_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quad.js */ "./node_modules/d3-quadtree/src/quad.js");
70493
70494
70495/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(callback) {
70496 var quads = [], q, node = this._root, child, x0, y0, x1, y1;
70497 if (node) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](node, this._x0, this._y0, this._x1, this._y1));
70498 while (q = quads.pop()) {
70499 if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {
70500 var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
70501 if (child = node[3]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](child, xm, ym, x1, y1));
70502 if (child = node[2]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](child, x0, ym, xm, y1));
70503 if (child = node[1]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](child, xm, y0, x1, ym));
70504 if (child = node[0]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](child, x0, y0, xm, ym));
70505 }
70506 }
70507 return this;
70508}
70509
70510
70511/***/ }),
70512
70513/***/ "./node_modules/d3-quadtree/src/visitAfter.js":
70514/*!****************************************************!*\
70515 !*** ./node_modules/d3-quadtree/src/visitAfter.js ***!
70516 \****************************************************/
70517/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70518
70519"use strict";
70520__webpack_require__.r(__webpack_exports__);
70521/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70522/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
70523/* harmony export */ });
70524/* harmony import */ var _quad_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quad.js */ "./node_modules/d3-quadtree/src/quad.js");
70525
70526
70527/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(callback) {
70528 var quads = [], next = [], q;
70529 if (this._root) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](this._root, this._x0, this._y0, this._x1, this._y1));
70530 while (q = quads.pop()) {
70531 var node = q.node;
70532 if (node.length) {
70533 var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;
70534 if (child = node[0]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](child, x0, y0, xm, ym));
70535 if (child = node[1]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](child, xm, y0, x1, ym));
70536 if (child = node[2]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](child, x0, ym, xm, y1));
70537 if (child = node[3]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__["default"](child, xm, ym, x1, y1));
70538 }
70539 next.push(q);
70540 }
70541 while (q = next.pop()) {
70542 callback(q.node, q.x0, q.y0, q.x1, q.y1);
70543 }
70544 return this;
70545}
70546
70547
70548/***/ }),
70549
70550/***/ "./node_modules/d3-quadtree/src/x.js":
70551/*!*******************************************!*\
70552 !*** ./node_modules/d3-quadtree/src/x.js ***!
70553 \*******************************************/
70554/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70555
70556"use strict";
70557__webpack_require__.r(__webpack_exports__);
70558/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70559/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
70560/* harmony export */ "defaultX": () => (/* binding */ defaultX)
70561/* harmony export */ });
70562function defaultX(d) {
70563 return d[0];
70564}
70565
70566/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(_) {
70567 return arguments.length ? (this._x = _, this) : this._x;
70568}
70569
70570
70571/***/ }),
70572
70573/***/ "./node_modules/d3-quadtree/src/y.js":
70574/*!*******************************************!*\
70575 !*** ./node_modules/d3-quadtree/src/y.js ***!
70576 \*******************************************/
70577/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70578
70579"use strict";
70580__webpack_require__.r(__webpack_exports__);
70581/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70582/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
70583/* harmony export */ "defaultY": () => (/* binding */ defaultY)
70584/* harmony export */ });
70585function defaultY(d) {
70586 return d[1];
70587}
70588
70589/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(_) {
70590 return arguments.length ? (this._y = _, this) : this._y;
70591}
70592
70593
70594/***/ }),
70595
70596/***/ "./node_modules/d3-random/src/bates.js":
70597/*!*********************************************!*\
70598 !*** ./node_modules/d3-random/src/bates.js ***!
70599 \*********************************************/
70600/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70601
70602"use strict";
70603__webpack_require__.r(__webpack_exports__);
70604/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70605/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
70606/* harmony export */ });
70607/* harmony import */ var _defaultSource_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultSource.js */ "./node_modules/d3-random/src/defaultSource.js");
70608/* harmony import */ var _irwinHall_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./irwinHall.js */ "./node_modules/d3-random/src/irwinHall.js");
70609
70610
70611
70612/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function sourceRandomBates(source) {
70613 var I = _irwinHall_js__WEBPACK_IMPORTED_MODULE_0__["default"].source(source);
70614
70615 function randomBates(n) {
70616 // use limiting distribution at n === 0
70617 if ((n = +n) === 0) return source;
70618 var randomIrwinHall = I(n);
70619 return function() {
70620 return randomIrwinHall() / n;
70621 };
70622 }
70623
70624 randomBates.source = sourceRandomBates;
70625
70626 return randomBates;
70627})(_defaultSource_js__WEBPACK_IMPORTED_MODULE_1__["default"]));
70628
70629
70630/***/ }),
70631
70632/***/ "./node_modules/d3-random/src/bernoulli.js":
70633/*!*************************************************!*\
70634 !*** ./node_modules/d3-random/src/bernoulli.js ***!
70635 \*************************************************/
70636/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70637
70638"use strict";
70639__webpack_require__.r(__webpack_exports__);
70640/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70641/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
70642/* harmony export */ });
70643/* harmony import */ var _defaultSource_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource.js */ "./node_modules/d3-random/src/defaultSource.js");
70644
70645
70646/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function sourceRandomBernoulli(source) {
70647 function randomBernoulli(p) {
70648 if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p");
70649 return function() {
70650 return Math.floor(source() + p);
70651 };
70652 }
70653
70654 randomBernoulli.source = sourceRandomBernoulli;
70655
70656 return randomBernoulli;
70657})(_defaultSource_js__WEBPACK_IMPORTED_MODULE_0__["default"]));
70658
70659
70660/***/ }),
70661
70662/***/ "./node_modules/d3-random/src/beta.js":
70663/*!********************************************!*\
70664 !*** ./node_modules/d3-random/src/beta.js ***!
70665 \********************************************/
70666/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70667
70668"use strict";
70669__webpack_require__.r(__webpack_exports__);
70670/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70671/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
70672/* harmony export */ });
70673/* harmony import */ var _defaultSource_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultSource.js */ "./node_modules/d3-random/src/defaultSource.js");
70674/* harmony import */ var _gamma_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./gamma.js */ "./node_modules/d3-random/src/gamma.js");
70675
70676
70677
70678/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function sourceRandomBeta(source) {
70679 var G = _gamma_js__WEBPACK_IMPORTED_MODULE_0__["default"].source(source);
70680
70681 function randomBeta(alpha, beta) {
70682 var X = G(alpha),
70683 Y = G(beta);
70684 return function() {
70685 var x = X();
70686 return x === 0 ? 0 : x / (x + Y());
70687 };
70688 }
70689
70690 randomBeta.source = sourceRandomBeta;
70691
70692 return randomBeta;
70693})(_defaultSource_js__WEBPACK_IMPORTED_MODULE_1__["default"]));
70694
70695
70696/***/ }),
70697
70698/***/ "./node_modules/d3-random/src/binomial.js":
70699/*!************************************************!*\
70700 !*** ./node_modules/d3-random/src/binomial.js ***!
70701 \************************************************/
70702/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70703
70704"use strict";
70705__webpack_require__.r(__webpack_exports__);
70706/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70707/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
70708/* harmony export */ });
70709/* harmony import */ var _defaultSource_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./defaultSource.js */ "./node_modules/d3-random/src/defaultSource.js");
70710/* harmony import */ var _beta_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./beta.js */ "./node_modules/d3-random/src/beta.js");
70711/* harmony import */ var _geometric_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./geometric.js */ "./node_modules/d3-random/src/geometric.js");
70712
70713
70714
70715
70716/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function sourceRandomBinomial(source) {
70717 var G = _geometric_js__WEBPACK_IMPORTED_MODULE_0__["default"].source(source),
70718 B = _beta_js__WEBPACK_IMPORTED_MODULE_1__["default"].source(source);
70719
70720 function randomBinomial(n, p) {
70721 n = +n;
70722 if ((p = +p) >= 1) return () => n;
70723 if (p <= 0) return () => 0;
70724 return function() {
70725 var acc = 0, nn = n, pp = p;
70726 while (nn * pp > 16 && nn * (1 - pp) > 16) {
70727 var i = Math.floor((nn + 1) * pp),
70728 y = B(i, nn - i + 1)();
70729 if (y <= pp) {
70730 acc += i;
70731 nn -= i;
70732 pp = (pp - y) / (1 - y);
70733 } else {
70734 nn = i - 1;
70735 pp /= y;
70736 }
70737 }
70738 var sign = pp < 0.5,
70739 pFinal = sign ? pp : 1 - pp,
70740 g = G(pFinal);
70741 for (var s = g(), k = 0; s <= nn; ++k) s += g();
70742 return acc + (sign ? k : nn - k);
70743 };
70744 }
70745
70746 randomBinomial.source = sourceRandomBinomial;
70747
70748 return randomBinomial;
70749})(_defaultSource_js__WEBPACK_IMPORTED_MODULE_2__["default"]));
70750
70751
70752/***/ }),
70753
70754/***/ "./node_modules/d3-random/src/cauchy.js":
70755/*!**********************************************!*\
70756 !*** ./node_modules/d3-random/src/cauchy.js ***!
70757 \**********************************************/
70758/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70759
70760"use strict";
70761__webpack_require__.r(__webpack_exports__);
70762/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70763/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
70764/* harmony export */ });
70765/* harmony import */ var _defaultSource_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource.js */ "./node_modules/d3-random/src/defaultSource.js");
70766
70767
70768/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function sourceRandomCauchy(source) {
70769 function randomCauchy(a, b) {
70770 a = a == null ? 0 : +a;
70771 b = b == null ? 1 : +b;
70772 return function() {
70773 return a + b * Math.tan(Math.PI * source());
70774 };
70775 }
70776
70777 randomCauchy.source = sourceRandomCauchy;
70778
70779 return randomCauchy;
70780})(_defaultSource_js__WEBPACK_IMPORTED_MODULE_0__["default"]));
70781
70782
70783/***/ }),
70784
70785/***/ "./node_modules/d3-random/src/defaultSource.js":
70786/*!*****************************************************!*\
70787 !*** ./node_modules/d3-random/src/defaultSource.js ***!
70788 \*****************************************************/
70789/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70790
70791"use strict";
70792__webpack_require__.r(__webpack_exports__);
70793/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70794/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
70795/* harmony export */ });
70796/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Math.random);
70797
70798
70799/***/ }),
70800
70801/***/ "./node_modules/d3-random/src/exponential.js":
70802/*!***************************************************!*\
70803 !*** ./node_modules/d3-random/src/exponential.js ***!
70804 \***************************************************/
70805/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70806
70807"use strict";
70808__webpack_require__.r(__webpack_exports__);
70809/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70810/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
70811/* harmony export */ });
70812/* harmony import */ var _defaultSource_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource.js */ "./node_modules/d3-random/src/defaultSource.js");
70813
70814
70815/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function sourceRandomExponential(source) {
70816 function randomExponential(lambda) {
70817 return function() {
70818 return -Math.log1p(-source()) / lambda;
70819 };
70820 }
70821
70822 randomExponential.source = sourceRandomExponential;
70823
70824 return randomExponential;
70825})(_defaultSource_js__WEBPACK_IMPORTED_MODULE_0__["default"]));
70826
70827
70828/***/ }),
70829
70830/***/ "./node_modules/d3-random/src/gamma.js":
70831/*!*********************************************!*\
70832 !*** ./node_modules/d3-random/src/gamma.js ***!
70833 \*********************************************/
70834/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70835
70836"use strict";
70837__webpack_require__.r(__webpack_exports__);
70838/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70839/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
70840/* harmony export */ });
70841/* harmony import */ var _defaultSource_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultSource.js */ "./node_modules/d3-random/src/defaultSource.js");
70842/* harmony import */ var _normal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./normal.js */ "./node_modules/d3-random/src/normal.js");
70843
70844
70845
70846/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function sourceRandomGamma(source) {
70847 var randomNormal = _normal_js__WEBPACK_IMPORTED_MODULE_0__["default"].source(source)();
70848
70849 function randomGamma(k, theta) {
70850 if ((k = +k) < 0) throw new RangeError("invalid k");
70851 // degenerate distribution if k === 0
70852 if (k === 0) return () => 0;
70853 theta = theta == null ? 1 : +theta;
70854 // exponential distribution if k === 1
70855 if (k === 1) return () => -Math.log1p(-source()) * theta;
70856
70857 var d = (k < 1 ? k + 1 : k) - 1 / 3,
70858 c = 1 / (3 * Math.sqrt(d)),
70859 multiplier = k < 1 ? () => Math.pow(source(), 1 / k) : () => 1;
70860 return function() {
70861 do {
70862 do {
70863 var x = randomNormal(),
70864 v = 1 + c * x;
70865 } while (v <= 0);
70866 v *= v * v;
70867 var u = 1 - source();
70868 } while (u >= 1 - 0.0331 * x * x * x * x && Math.log(u) >= 0.5 * x * x + d * (1 - v + Math.log(v)));
70869 return d * v * multiplier() * theta;
70870 };
70871 }
70872
70873 randomGamma.source = sourceRandomGamma;
70874
70875 return randomGamma;
70876})(_defaultSource_js__WEBPACK_IMPORTED_MODULE_1__["default"]));
70877
70878
70879/***/ }),
70880
70881/***/ "./node_modules/d3-random/src/geometric.js":
70882/*!*************************************************!*\
70883 !*** ./node_modules/d3-random/src/geometric.js ***!
70884 \*************************************************/
70885/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70886
70887"use strict";
70888__webpack_require__.r(__webpack_exports__);
70889/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70890/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
70891/* harmony export */ });
70892/* harmony import */ var _defaultSource_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource.js */ "./node_modules/d3-random/src/defaultSource.js");
70893
70894
70895/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function sourceRandomGeometric(source) {
70896 function randomGeometric(p) {
70897 if ((p = +p) < 0 || p > 1) throw new RangeError("invalid p");
70898 if (p === 0) return () => Infinity;
70899 if (p === 1) return () => 1;
70900 p = Math.log1p(-p);
70901 return function() {
70902 return 1 + Math.floor(Math.log1p(-source()) / p);
70903 };
70904 }
70905
70906 randomGeometric.source = sourceRandomGeometric;
70907
70908 return randomGeometric;
70909})(_defaultSource_js__WEBPACK_IMPORTED_MODULE_0__["default"]));
70910
70911
70912/***/ }),
70913
70914/***/ "./node_modules/d3-random/src/index.js":
70915/*!*********************************************!*\
70916 !*** ./node_modules/d3-random/src/index.js ***!
70917 \*********************************************/
70918/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70919
70920"use strict";
70921__webpack_require__.r(__webpack_exports__);
70922/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70923/* harmony export */ "randomBates": () => (/* reexport safe */ _bates_js__WEBPACK_IMPORTED_MODULE_4__["default"]),
70924/* harmony export */ "randomBernoulli": () => (/* reexport safe */ _bernoulli_js__WEBPACK_IMPORTED_MODULE_8__["default"]),
70925/* harmony export */ "randomBeta": () => (/* reexport safe */ _beta_js__WEBPACK_IMPORTED_MODULE_12__["default"]),
70926/* harmony export */ "randomBinomial": () => (/* reexport safe */ _binomial_js__WEBPACK_IMPORTED_MODULE_10__["default"]),
70927/* harmony export */ "randomCauchy": () => (/* reexport safe */ _cauchy_js__WEBPACK_IMPORTED_MODULE_14__["default"]),
70928/* harmony export */ "randomExponential": () => (/* reexport safe */ _exponential_js__WEBPACK_IMPORTED_MODULE_6__["default"]),
70929/* harmony export */ "randomGamma": () => (/* reexport safe */ _gamma_js__WEBPACK_IMPORTED_MODULE_11__["default"]),
70930/* harmony export */ "randomGeometric": () => (/* reexport safe */ _geometric_js__WEBPACK_IMPORTED_MODULE_9__["default"]),
70931/* harmony export */ "randomInt": () => (/* reexport safe */ _int_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
70932/* harmony export */ "randomIrwinHall": () => (/* reexport safe */ _irwinHall_js__WEBPACK_IMPORTED_MODULE_5__["default"]),
70933/* harmony export */ "randomLcg": () => (/* reexport safe */ _lcg_js__WEBPACK_IMPORTED_MODULE_17__["default"]),
70934/* harmony export */ "randomLogNormal": () => (/* reexport safe */ _logNormal_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
70935/* harmony export */ "randomLogistic": () => (/* reexport safe */ _logistic_js__WEBPACK_IMPORTED_MODULE_15__["default"]),
70936/* harmony export */ "randomNormal": () => (/* reexport safe */ _normal_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
70937/* harmony export */ "randomPareto": () => (/* reexport safe */ _pareto_js__WEBPACK_IMPORTED_MODULE_7__["default"]),
70938/* harmony export */ "randomPoisson": () => (/* reexport safe */ _poisson_js__WEBPACK_IMPORTED_MODULE_16__["default"]),
70939/* harmony export */ "randomUniform": () => (/* reexport safe */ _uniform_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
70940/* harmony export */ "randomWeibull": () => (/* reexport safe */ _weibull_js__WEBPACK_IMPORTED_MODULE_13__["default"])
70941/* harmony export */ });
70942/* harmony import */ var _uniform_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uniform.js */ "./node_modules/d3-random/src/uniform.js");
70943/* harmony import */ var _int_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./int.js */ "./node_modules/d3-random/src/int.js");
70944/* harmony import */ var _normal_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./normal.js */ "./node_modules/d3-random/src/normal.js");
70945/* harmony import */ var _logNormal_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./logNormal.js */ "./node_modules/d3-random/src/logNormal.js");
70946/* harmony import */ var _bates_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./bates.js */ "./node_modules/d3-random/src/bates.js");
70947/* harmony import */ var _irwinHall_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./irwinHall.js */ "./node_modules/d3-random/src/irwinHall.js");
70948/* harmony import */ var _exponential_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./exponential.js */ "./node_modules/d3-random/src/exponential.js");
70949/* harmony import */ var _pareto_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./pareto.js */ "./node_modules/d3-random/src/pareto.js");
70950/* harmony import */ var _bernoulli_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./bernoulli.js */ "./node_modules/d3-random/src/bernoulli.js");
70951/* harmony import */ var _geometric_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./geometric.js */ "./node_modules/d3-random/src/geometric.js");
70952/* harmony import */ var _binomial_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./binomial.js */ "./node_modules/d3-random/src/binomial.js");
70953/* harmony import */ var _gamma_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./gamma.js */ "./node_modules/d3-random/src/gamma.js");
70954/* harmony import */ var _beta_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./beta.js */ "./node_modules/d3-random/src/beta.js");
70955/* harmony import */ var _weibull_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./weibull.js */ "./node_modules/d3-random/src/weibull.js");
70956/* harmony import */ var _cauchy_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./cauchy.js */ "./node_modules/d3-random/src/cauchy.js");
70957/* harmony import */ var _logistic_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./logistic.js */ "./node_modules/d3-random/src/logistic.js");
70958/* harmony import */ var _poisson_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./poisson.js */ "./node_modules/d3-random/src/poisson.js");
70959/* harmony import */ var _lcg_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./lcg.js */ "./node_modules/d3-random/src/lcg.js");
70960
70961
70962
70963
70964
70965
70966
70967
70968
70969
70970
70971
70972
70973
70974
70975
70976
70977
70978
70979
70980/***/ }),
70981
70982/***/ "./node_modules/d3-random/src/int.js":
70983/*!*******************************************!*\
70984 !*** ./node_modules/d3-random/src/int.js ***!
70985 \*******************************************/
70986/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
70987
70988"use strict";
70989__webpack_require__.r(__webpack_exports__);
70990/* harmony export */ __webpack_require__.d(__webpack_exports__, {
70991/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
70992/* harmony export */ });
70993/* harmony import */ var _defaultSource_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource.js */ "./node_modules/d3-random/src/defaultSource.js");
70994
70995
70996/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function sourceRandomInt(source) {
70997 function randomInt(min, max) {
70998 if (arguments.length < 2) max = min, min = 0;
70999 min = Math.floor(min);
71000 max = Math.floor(max) - min;
71001 return function() {
71002 return Math.floor(source() * max + min);
71003 };
71004 }
71005
71006 randomInt.source = sourceRandomInt;
71007
71008 return randomInt;
71009})(_defaultSource_js__WEBPACK_IMPORTED_MODULE_0__["default"]));
71010
71011
71012/***/ }),
71013
71014/***/ "./node_modules/d3-random/src/irwinHall.js":
71015/*!*************************************************!*\
71016 !*** ./node_modules/d3-random/src/irwinHall.js ***!
71017 \*************************************************/
71018/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71019
71020"use strict";
71021__webpack_require__.r(__webpack_exports__);
71022/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71023/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71024/* harmony export */ });
71025/* harmony import */ var _defaultSource_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource.js */ "./node_modules/d3-random/src/defaultSource.js");
71026
71027
71028/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function sourceRandomIrwinHall(source) {
71029 function randomIrwinHall(n) {
71030 if ((n = +n) <= 0) return () => 0;
71031 return function() {
71032 for (var sum = 0, i = n; i > 1; --i) sum += source();
71033 return sum + i * source();
71034 };
71035 }
71036
71037 randomIrwinHall.source = sourceRandomIrwinHall;
71038
71039 return randomIrwinHall;
71040})(_defaultSource_js__WEBPACK_IMPORTED_MODULE_0__["default"]));
71041
71042
71043/***/ }),
71044
71045/***/ "./node_modules/d3-random/src/lcg.js":
71046/*!*******************************************!*\
71047 !*** ./node_modules/d3-random/src/lcg.js ***!
71048 \*******************************************/
71049/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71050
71051"use strict";
71052__webpack_require__.r(__webpack_exports__);
71053/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71054/* harmony export */ "default": () => (/* binding */ lcg)
71055/* harmony export */ });
71056// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use
71057const mul = 0x19660D;
71058const inc = 0x3C6EF35F;
71059const eps = 1 / 0x100000000;
71060
71061function lcg(seed = Math.random()) {
71062 let state = (0 <= seed && seed < 1 ? seed / eps : Math.abs(seed)) | 0;
71063 return () => (state = mul * state + inc | 0, eps * (state >>> 0));
71064}
71065
71066
71067/***/ }),
71068
71069/***/ "./node_modules/d3-random/src/logNormal.js":
71070/*!*************************************************!*\
71071 !*** ./node_modules/d3-random/src/logNormal.js ***!
71072 \*************************************************/
71073/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71074
71075"use strict";
71076__webpack_require__.r(__webpack_exports__);
71077/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71078/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71079/* harmony export */ });
71080/* harmony import */ var _defaultSource_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultSource.js */ "./node_modules/d3-random/src/defaultSource.js");
71081/* harmony import */ var _normal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./normal.js */ "./node_modules/d3-random/src/normal.js");
71082
71083
71084
71085/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function sourceRandomLogNormal(source) {
71086 var N = _normal_js__WEBPACK_IMPORTED_MODULE_0__["default"].source(source);
71087
71088 function randomLogNormal() {
71089 var randomNormal = N.apply(this, arguments);
71090 return function() {
71091 return Math.exp(randomNormal());
71092 };
71093 }
71094
71095 randomLogNormal.source = sourceRandomLogNormal;
71096
71097 return randomLogNormal;
71098})(_defaultSource_js__WEBPACK_IMPORTED_MODULE_1__["default"]));
71099
71100
71101/***/ }),
71102
71103/***/ "./node_modules/d3-random/src/logistic.js":
71104/*!************************************************!*\
71105 !*** ./node_modules/d3-random/src/logistic.js ***!
71106 \************************************************/
71107/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71108
71109"use strict";
71110__webpack_require__.r(__webpack_exports__);
71111/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71112/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71113/* harmony export */ });
71114/* harmony import */ var _defaultSource_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource.js */ "./node_modules/d3-random/src/defaultSource.js");
71115
71116
71117/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function sourceRandomLogistic(source) {
71118 function randomLogistic(a, b) {
71119 a = a == null ? 0 : +a;
71120 b = b == null ? 1 : +b;
71121 return function() {
71122 var u = source();
71123 return a + b * Math.log(u / (1 - u));
71124 };
71125 }
71126
71127 randomLogistic.source = sourceRandomLogistic;
71128
71129 return randomLogistic;
71130})(_defaultSource_js__WEBPACK_IMPORTED_MODULE_0__["default"]));
71131
71132
71133/***/ }),
71134
71135/***/ "./node_modules/d3-random/src/normal.js":
71136/*!**********************************************!*\
71137 !*** ./node_modules/d3-random/src/normal.js ***!
71138 \**********************************************/
71139/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71140
71141"use strict";
71142__webpack_require__.r(__webpack_exports__);
71143/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71144/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71145/* harmony export */ });
71146/* harmony import */ var _defaultSource_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource.js */ "./node_modules/d3-random/src/defaultSource.js");
71147
71148
71149/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function sourceRandomNormal(source) {
71150 function randomNormal(mu, sigma) {
71151 var x, r;
71152 mu = mu == null ? 0 : +mu;
71153 sigma = sigma == null ? 1 : +sigma;
71154 return function() {
71155 var y;
71156
71157 // If available, use the second previously-generated uniform random.
71158 if (x != null) y = x, x = null;
71159
71160 // Otherwise, generate a new x and y.
71161 else do {
71162 x = source() * 2 - 1;
71163 y = source() * 2 - 1;
71164 r = x * x + y * y;
71165 } while (!r || r > 1);
71166
71167 return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);
71168 };
71169 }
71170
71171 randomNormal.source = sourceRandomNormal;
71172
71173 return randomNormal;
71174})(_defaultSource_js__WEBPACK_IMPORTED_MODULE_0__["default"]));
71175
71176
71177/***/ }),
71178
71179/***/ "./node_modules/d3-random/src/pareto.js":
71180/*!**********************************************!*\
71181 !*** ./node_modules/d3-random/src/pareto.js ***!
71182 \**********************************************/
71183/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71184
71185"use strict";
71186__webpack_require__.r(__webpack_exports__);
71187/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71188/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71189/* harmony export */ });
71190/* harmony import */ var _defaultSource_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource.js */ "./node_modules/d3-random/src/defaultSource.js");
71191
71192
71193/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function sourceRandomPareto(source) {
71194 function randomPareto(alpha) {
71195 if ((alpha = +alpha) < 0) throw new RangeError("invalid alpha");
71196 alpha = 1 / -alpha;
71197 return function() {
71198 return Math.pow(1 - source(), alpha);
71199 };
71200 }
71201
71202 randomPareto.source = sourceRandomPareto;
71203
71204 return randomPareto;
71205})(_defaultSource_js__WEBPACK_IMPORTED_MODULE_0__["default"]));
71206
71207
71208/***/ }),
71209
71210/***/ "./node_modules/d3-random/src/poisson.js":
71211/*!***********************************************!*\
71212 !*** ./node_modules/d3-random/src/poisson.js ***!
71213 \***********************************************/
71214/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71215
71216"use strict";
71217__webpack_require__.r(__webpack_exports__);
71218/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71219/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71220/* harmony export */ });
71221/* harmony import */ var _defaultSource_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./defaultSource.js */ "./node_modules/d3-random/src/defaultSource.js");
71222/* harmony import */ var _binomial_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./binomial.js */ "./node_modules/d3-random/src/binomial.js");
71223/* harmony import */ var _gamma_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./gamma.js */ "./node_modules/d3-random/src/gamma.js");
71224
71225
71226
71227
71228/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function sourceRandomPoisson(source) {
71229 var G = _gamma_js__WEBPACK_IMPORTED_MODULE_0__["default"].source(source),
71230 B = _binomial_js__WEBPACK_IMPORTED_MODULE_1__["default"].source(source);
71231
71232 function randomPoisson(lambda) {
71233 return function() {
71234 var acc = 0, l = lambda;
71235 while (l > 16) {
71236 var n = Math.floor(0.875 * l),
71237 t = G(n)();
71238 if (t > l) return acc + B(n - 1, l / t)();
71239 acc += n;
71240 l -= t;
71241 }
71242 for (var s = -Math.log1p(-source()), k = 0; s <= l; ++k) s -= Math.log1p(-source());
71243 return acc + k;
71244 };
71245 }
71246
71247 randomPoisson.source = sourceRandomPoisson;
71248
71249 return randomPoisson;
71250})(_defaultSource_js__WEBPACK_IMPORTED_MODULE_2__["default"]));
71251
71252
71253/***/ }),
71254
71255/***/ "./node_modules/d3-random/src/uniform.js":
71256/*!***********************************************!*\
71257 !*** ./node_modules/d3-random/src/uniform.js ***!
71258 \***********************************************/
71259/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71260
71261"use strict";
71262__webpack_require__.r(__webpack_exports__);
71263/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71264/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71265/* harmony export */ });
71266/* harmony import */ var _defaultSource_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource.js */ "./node_modules/d3-random/src/defaultSource.js");
71267
71268
71269/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function sourceRandomUniform(source) {
71270 function randomUniform(min, max) {
71271 min = min == null ? 0 : +min;
71272 max = max == null ? 1 : +max;
71273 if (arguments.length === 1) max = min, min = 0;
71274 else max -= min;
71275 return function() {
71276 return source() * max + min;
71277 };
71278 }
71279
71280 randomUniform.source = sourceRandomUniform;
71281
71282 return randomUniform;
71283})(_defaultSource_js__WEBPACK_IMPORTED_MODULE_0__["default"]));
71284
71285
71286/***/ }),
71287
71288/***/ "./node_modules/d3-random/src/weibull.js":
71289/*!***********************************************!*\
71290 !*** ./node_modules/d3-random/src/weibull.js ***!
71291 \***********************************************/
71292/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71293
71294"use strict";
71295__webpack_require__.r(__webpack_exports__);
71296/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71297/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71298/* harmony export */ });
71299/* harmony import */ var _defaultSource_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultSource.js */ "./node_modules/d3-random/src/defaultSource.js");
71300
71301
71302/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function sourceRandomWeibull(source) {
71303 function randomWeibull(k, a, b) {
71304 var outerFunc;
71305 if ((k = +k) === 0) {
71306 outerFunc = x => -Math.log(x);
71307 } else {
71308 k = 1 / k;
71309 outerFunc = x => Math.pow(x, k);
71310 }
71311 a = a == null ? 0 : +a;
71312 b = b == null ? 1 : +b;
71313 return function() {
71314 return a + b * outerFunc(-Math.log1p(-source()));
71315 };
71316 }
71317
71318 randomWeibull.source = sourceRandomWeibull;
71319
71320 return randomWeibull;
71321})(_defaultSource_js__WEBPACK_IMPORTED_MODULE_0__["default"]));
71322
71323
71324/***/ }),
71325
71326/***/ "./node_modules/d3-scale-chromatic/src/categorical/Accent.js":
71327/*!*******************************************************************!*\
71328 !*** ./node_modules/d3-scale-chromatic/src/categorical/Accent.js ***!
71329 \*******************************************************************/
71330/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71331
71332"use strict";
71333__webpack_require__.r(__webpack_exports__);
71334/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71335/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71336/* harmony export */ });
71337/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71338
71339
71340/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"));
71341
71342
71343/***/ }),
71344
71345/***/ "./node_modules/d3-scale-chromatic/src/categorical/Dark2.js":
71346/*!******************************************************************!*\
71347 !*** ./node_modules/d3-scale-chromatic/src/categorical/Dark2.js ***!
71348 \******************************************************************/
71349/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71350
71351"use strict";
71352__webpack_require__.r(__webpack_exports__);
71353/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71354/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71355/* harmony export */ });
71356/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71357
71358
71359/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"));
71360
71361
71362/***/ }),
71363
71364/***/ "./node_modules/d3-scale-chromatic/src/categorical/Paired.js":
71365/*!*******************************************************************!*\
71366 !*** ./node_modules/d3-scale-chromatic/src/categorical/Paired.js ***!
71367 \*******************************************************************/
71368/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71369
71370"use strict";
71371__webpack_require__.r(__webpack_exports__);
71372/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71373/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71374/* harmony export */ });
71375/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71376
71377
71378/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"));
71379
71380
71381/***/ }),
71382
71383/***/ "./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js":
71384/*!********************************************************************!*\
71385 !*** ./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js ***!
71386 \********************************************************************/
71387/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71388
71389"use strict";
71390__webpack_require__.r(__webpack_exports__);
71391/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71392/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71393/* harmony export */ });
71394/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71395
71396
71397/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"));
71398
71399
71400/***/ }),
71401
71402/***/ "./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js":
71403/*!********************************************************************!*\
71404 !*** ./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js ***!
71405 \********************************************************************/
71406/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71407
71408"use strict";
71409__webpack_require__.r(__webpack_exports__);
71410/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71411/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71412/* harmony export */ });
71413/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71414
71415
71416/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"));
71417
71418
71419/***/ }),
71420
71421/***/ "./node_modules/d3-scale-chromatic/src/categorical/Set1.js":
71422/*!*****************************************************************!*\
71423 !*** ./node_modules/d3-scale-chromatic/src/categorical/Set1.js ***!
71424 \*****************************************************************/
71425/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71426
71427"use strict";
71428__webpack_require__.r(__webpack_exports__);
71429/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71430/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71431/* harmony export */ });
71432/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71433
71434
71435/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"));
71436
71437
71438/***/ }),
71439
71440/***/ "./node_modules/d3-scale-chromatic/src/categorical/Set2.js":
71441/*!*****************************************************************!*\
71442 !*** ./node_modules/d3-scale-chromatic/src/categorical/Set2.js ***!
71443 \*****************************************************************/
71444/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71445
71446"use strict";
71447__webpack_require__.r(__webpack_exports__);
71448/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71449/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71450/* harmony export */ });
71451/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71452
71453
71454/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"));
71455
71456
71457/***/ }),
71458
71459/***/ "./node_modules/d3-scale-chromatic/src/categorical/Set3.js":
71460/*!*****************************************************************!*\
71461 !*** ./node_modules/d3-scale-chromatic/src/categorical/Set3.js ***!
71462 \*****************************************************************/
71463/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71464
71465"use strict";
71466__webpack_require__.r(__webpack_exports__);
71467/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71468/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71469/* harmony export */ });
71470/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71471
71472
71473/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"));
71474
71475
71476/***/ }),
71477
71478/***/ "./node_modules/d3-scale-chromatic/src/categorical/Tableau10.js":
71479/*!**********************************************************************!*\
71480 !*** ./node_modules/d3-scale-chromatic/src/categorical/Tableau10.js ***!
71481 \**********************************************************************/
71482/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71483
71484"use strict";
71485__webpack_require__.r(__webpack_exports__);
71486/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71487/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71488/* harmony export */ });
71489/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71490
71491
71492/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"));
71493
71494
71495/***/ }),
71496
71497/***/ "./node_modules/d3-scale-chromatic/src/categorical/category10.js":
71498/*!***********************************************************************!*\
71499 !*** ./node_modules/d3-scale-chromatic/src/categorical/category10.js ***!
71500 \***********************************************************************/
71501/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71502
71503"use strict";
71504__webpack_require__.r(__webpack_exports__);
71505/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71506/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
71507/* harmony export */ });
71508/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71509
71510
71511/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"));
71512
71513
71514/***/ }),
71515
71516/***/ "./node_modules/d3-scale-chromatic/src/colors.js":
71517/*!*******************************************************!*\
71518 !*** ./node_modules/d3-scale-chromatic/src/colors.js ***!
71519 \*******************************************************/
71520/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71521
71522"use strict";
71523__webpack_require__.r(__webpack_exports__);
71524/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71525/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
71526/* harmony export */ });
71527/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(specifier) {
71528 var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;
71529 while (i < n) colors[i] = "#" + specifier.slice(i * 6, ++i * 6);
71530 return colors;
71531}
71532
71533
71534/***/ }),
71535
71536/***/ "./node_modules/d3-scale-chromatic/src/diverging/BrBG.js":
71537/*!***************************************************************!*\
71538 !*** ./node_modules/d3-scale-chromatic/src/diverging/BrBG.js ***!
71539 \***************************************************************/
71540/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71541
71542"use strict";
71543__webpack_require__.r(__webpack_exports__);
71544/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71545/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
71546/* harmony export */ "scheme": () => (/* binding */ scheme)
71547/* harmony export */ });
71548/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71549/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
71550
71551
71552
71553var scheme = new Array(3).concat(
71554 "d8b365f5f5f55ab4ac",
71555 "a6611adfc27d80cdc1018571",
71556 "a6611adfc27df5f5f580cdc1018571",
71557 "8c510ad8b365f6e8c3c7eae55ab4ac01665e",
71558 "8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e",
71559 "8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e",
71560 "8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e",
71561 "5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30",
71562 "5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30"
71563).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
71564
71565/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
71566
71567
71568/***/ }),
71569
71570/***/ "./node_modules/d3-scale-chromatic/src/diverging/PRGn.js":
71571/*!***************************************************************!*\
71572 !*** ./node_modules/d3-scale-chromatic/src/diverging/PRGn.js ***!
71573 \***************************************************************/
71574/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71575
71576"use strict";
71577__webpack_require__.r(__webpack_exports__);
71578/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71579/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
71580/* harmony export */ "scheme": () => (/* binding */ scheme)
71581/* harmony export */ });
71582/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71583/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
71584
71585
71586
71587var scheme = new Array(3).concat(
71588 "af8dc3f7f7f77fbf7b",
71589 "7b3294c2a5cfa6dba0008837",
71590 "7b3294c2a5cff7f7f7a6dba0008837",
71591 "762a83af8dc3e7d4e8d9f0d37fbf7b1b7837",
71592 "762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837",
71593 "762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837",
71594 "762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837",
71595 "40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b",
71596 "40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b"
71597).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
71598
71599/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
71600
71601
71602/***/ }),
71603
71604/***/ "./node_modules/d3-scale-chromatic/src/diverging/PiYG.js":
71605/*!***************************************************************!*\
71606 !*** ./node_modules/d3-scale-chromatic/src/diverging/PiYG.js ***!
71607 \***************************************************************/
71608/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71609
71610"use strict";
71611__webpack_require__.r(__webpack_exports__);
71612/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71613/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
71614/* harmony export */ "scheme": () => (/* binding */ scheme)
71615/* harmony export */ });
71616/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71617/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
71618
71619
71620
71621var scheme = new Array(3).concat(
71622 "e9a3c9f7f7f7a1d76a",
71623 "d01c8bf1b6dab8e1864dac26",
71624 "d01c8bf1b6daf7f7f7b8e1864dac26",
71625 "c51b7de9a3c9fde0efe6f5d0a1d76a4d9221",
71626 "c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221",
71627 "c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221",
71628 "c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221",
71629 "8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419",
71630 "8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419"
71631).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
71632
71633/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
71634
71635
71636/***/ }),
71637
71638/***/ "./node_modules/d3-scale-chromatic/src/diverging/PuOr.js":
71639/*!***************************************************************!*\
71640 !*** ./node_modules/d3-scale-chromatic/src/diverging/PuOr.js ***!
71641 \***************************************************************/
71642/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71643
71644"use strict";
71645__webpack_require__.r(__webpack_exports__);
71646/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71647/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
71648/* harmony export */ "scheme": () => (/* binding */ scheme)
71649/* harmony export */ });
71650/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71651/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
71652
71653
71654
71655var scheme = new Array(3).concat(
71656 "998ec3f7f7f7f1a340",
71657 "5e3c99b2abd2fdb863e66101",
71658 "5e3c99b2abd2f7f7f7fdb863e66101",
71659 "542788998ec3d8daebfee0b6f1a340b35806",
71660 "542788998ec3d8daebf7f7f7fee0b6f1a340b35806",
71661 "5427888073acb2abd2d8daebfee0b6fdb863e08214b35806",
71662 "5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806",
71663 "2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08",
71664 "2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08"
71665).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
71666
71667/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
71668
71669
71670/***/ }),
71671
71672/***/ "./node_modules/d3-scale-chromatic/src/diverging/RdBu.js":
71673/*!***************************************************************!*\
71674 !*** ./node_modules/d3-scale-chromatic/src/diverging/RdBu.js ***!
71675 \***************************************************************/
71676/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71677
71678"use strict";
71679__webpack_require__.r(__webpack_exports__);
71680/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71681/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
71682/* harmony export */ "scheme": () => (/* binding */ scheme)
71683/* harmony export */ });
71684/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71685/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
71686
71687
71688
71689var scheme = new Array(3).concat(
71690 "ef8a62f7f7f767a9cf",
71691 "ca0020f4a58292c5de0571b0",
71692 "ca0020f4a582f7f7f792c5de0571b0",
71693 "b2182bef8a62fddbc7d1e5f067a9cf2166ac",
71694 "b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac",
71695 "b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac",
71696 "b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac",
71697 "67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061",
71698 "67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061"
71699).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
71700
71701/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
71702
71703
71704/***/ }),
71705
71706/***/ "./node_modules/d3-scale-chromatic/src/diverging/RdGy.js":
71707/*!***************************************************************!*\
71708 !*** ./node_modules/d3-scale-chromatic/src/diverging/RdGy.js ***!
71709 \***************************************************************/
71710/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71711
71712"use strict";
71713__webpack_require__.r(__webpack_exports__);
71714/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71715/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
71716/* harmony export */ "scheme": () => (/* binding */ scheme)
71717/* harmony export */ });
71718/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71719/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
71720
71721
71722
71723var scheme = new Array(3).concat(
71724 "ef8a62ffffff999999",
71725 "ca0020f4a582bababa404040",
71726 "ca0020f4a582ffffffbababa404040",
71727 "b2182bef8a62fddbc7e0e0e09999994d4d4d",
71728 "b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d",
71729 "b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d",
71730 "b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d",
71731 "67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a",
71732 "67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a"
71733).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
71734
71735/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
71736
71737
71738/***/ }),
71739
71740/***/ "./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js":
71741/*!*****************************************************************!*\
71742 !*** ./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js ***!
71743 \*****************************************************************/
71744/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71745
71746"use strict";
71747__webpack_require__.r(__webpack_exports__);
71748/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71749/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
71750/* harmony export */ "scheme": () => (/* binding */ scheme)
71751/* harmony export */ });
71752/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71753/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
71754
71755
71756
71757var scheme = new Array(3).concat(
71758 "fc8d59ffffbf91bfdb",
71759 "d7191cfdae61abd9e92c7bb6",
71760 "d7191cfdae61ffffbfabd9e92c7bb6",
71761 "d73027fc8d59fee090e0f3f891bfdb4575b4",
71762 "d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4",
71763 "d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4",
71764 "d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4",
71765 "a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695",
71766 "a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695"
71767).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
71768
71769/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
71770
71771
71772/***/ }),
71773
71774/***/ "./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js":
71775/*!*****************************************************************!*\
71776 !*** ./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js ***!
71777 \*****************************************************************/
71778/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71779
71780"use strict";
71781__webpack_require__.r(__webpack_exports__);
71782/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71783/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
71784/* harmony export */ "scheme": () => (/* binding */ scheme)
71785/* harmony export */ });
71786/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71787/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
71788
71789
71790
71791var scheme = new Array(3).concat(
71792 "fc8d59ffffbf91cf60",
71793 "d7191cfdae61a6d96a1a9641",
71794 "d7191cfdae61ffffbfa6d96a1a9641",
71795 "d73027fc8d59fee08bd9ef8b91cf601a9850",
71796 "d73027fc8d59fee08bffffbfd9ef8b91cf601a9850",
71797 "d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850",
71798 "d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850",
71799 "a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837",
71800 "a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837"
71801).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
71802
71803/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
71804
71805
71806/***/ }),
71807
71808/***/ "./node_modules/d3-scale-chromatic/src/diverging/Spectral.js":
71809/*!*******************************************************************!*\
71810 !*** ./node_modules/d3-scale-chromatic/src/diverging/Spectral.js ***!
71811 \*******************************************************************/
71812/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71813
71814"use strict";
71815__webpack_require__.r(__webpack_exports__);
71816/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71817/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
71818/* harmony export */ "scheme": () => (/* binding */ scheme)
71819/* harmony export */ });
71820/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
71821/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
71822
71823
71824
71825var scheme = new Array(3).concat(
71826 "fc8d59ffffbf99d594",
71827 "d7191cfdae61abdda42b83ba",
71828 "d7191cfdae61ffffbfabdda42b83ba",
71829 "d53e4ffc8d59fee08be6f59899d5943288bd",
71830 "d53e4ffc8d59fee08bffffbfe6f59899d5943288bd",
71831 "d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd",
71832 "d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd",
71833 "9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2",
71834 "9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2"
71835).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
71836
71837/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
71838
71839
71840/***/ }),
71841
71842/***/ "./node_modules/d3-scale-chromatic/src/index.js":
71843/*!******************************************************!*\
71844 !*** ./node_modules/d3-scale-chromatic/src/index.js ***!
71845 \******************************************************/
71846/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
71847
71848"use strict";
71849__webpack_require__.r(__webpack_exports__);
71850/* harmony export */ __webpack_require__.d(__webpack_exports__, {
71851/* harmony export */ "interpolateBlues": () => (/* reexport safe */ _sequential_single_Blues_js__WEBPACK_IMPORTED_MODULE_31__["default"]),
71852/* harmony export */ "interpolateBrBG": () => (/* reexport safe */ _diverging_BrBG_js__WEBPACK_IMPORTED_MODULE_10__["default"]),
71853/* harmony export */ "interpolateBuGn": () => (/* reexport safe */ _sequential_multi_BuGn_js__WEBPACK_IMPORTED_MODULE_19__["default"]),
71854/* harmony export */ "interpolateBuPu": () => (/* reexport safe */ _sequential_multi_BuPu_js__WEBPACK_IMPORTED_MODULE_20__["default"]),
71855/* harmony export */ "interpolateCividis": () => (/* reexport safe */ _sequential_multi_cividis_js__WEBPACK_IMPORTED_MODULE_37__["default"]),
71856/* harmony export */ "interpolateCool": () => (/* reexport safe */ _sequential_multi_rainbow_js__WEBPACK_IMPORTED_MODULE_39__.cool),
71857/* harmony export */ "interpolateCubehelixDefault": () => (/* reexport safe */ _sequential_multi_cubehelix_js__WEBPACK_IMPORTED_MODULE_38__["default"]),
71858/* harmony export */ "interpolateGnBu": () => (/* reexport safe */ _sequential_multi_GnBu_js__WEBPACK_IMPORTED_MODULE_21__["default"]),
71859/* harmony export */ "interpolateGreens": () => (/* reexport safe */ _sequential_single_Greens_js__WEBPACK_IMPORTED_MODULE_32__["default"]),
71860/* harmony export */ "interpolateGreys": () => (/* reexport safe */ _sequential_single_Greys_js__WEBPACK_IMPORTED_MODULE_33__["default"]),
71861/* harmony export */ "interpolateInferno": () => (/* reexport safe */ _sequential_multi_viridis_js__WEBPACK_IMPORTED_MODULE_42__.inferno),
71862/* harmony export */ "interpolateMagma": () => (/* reexport safe */ _sequential_multi_viridis_js__WEBPACK_IMPORTED_MODULE_42__.magma),
71863/* harmony export */ "interpolateOrRd": () => (/* reexport safe */ _sequential_multi_OrRd_js__WEBPACK_IMPORTED_MODULE_22__["default"]),
71864/* harmony export */ "interpolateOranges": () => (/* reexport safe */ _sequential_single_Oranges_js__WEBPACK_IMPORTED_MODULE_36__["default"]),
71865/* harmony export */ "interpolatePRGn": () => (/* reexport safe */ _diverging_PRGn_js__WEBPACK_IMPORTED_MODULE_11__["default"]),
71866/* harmony export */ "interpolatePiYG": () => (/* reexport safe */ _diverging_PiYG_js__WEBPACK_IMPORTED_MODULE_12__["default"]),
71867/* harmony export */ "interpolatePlasma": () => (/* reexport safe */ _sequential_multi_viridis_js__WEBPACK_IMPORTED_MODULE_42__.plasma),
71868/* harmony export */ "interpolatePuBu": () => (/* reexport safe */ _sequential_multi_PuBu_js__WEBPACK_IMPORTED_MODULE_24__["default"]),
71869/* harmony export */ "interpolatePuBuGn": () => (/* reexport safe */ _sequential_multi_PuBuGn_js__WEBPACK_IMPORTED_MODULE_23__["default"]),
71870/* harmony export */ "interpolatePuOr": () => (/* reexport safe */ _diverging_PuOr_js__WEBPACK_IMPORTED_MODULE_13__["default"]),
71871/* harmony export */ "interpolatePuRd": () => (/* reexport safe */ _sequential_multi_PuRd_js__WEBPACK_IMPORTED_MODULE_25__["default"]),
71872/* harmony export */ "interpolatePurples": () => (/* reexport safe */ _sequential_single_Purples_js__WEBPACK_IMPORTED_MODULE_34__["default"]),
71873/* harmony export */ "interpolateRainbow": () => (/* reexport safe */ _sequential_multi_rainbow_js__WEBPACK_IMPORTED_MODULE_39__["default"]),
71874/* harmony export */ "interpolateRdBu": () => (/* reexport safe */ _diverging_RdBu_js__WEBPACK_IMPORTED_MODULE_14__["default"]),
71875/* harmony export */ "interpolateRdGy": () => (/* reexport safe */ _diverging_RdGy_js__WEBPACK_IMPORTED_MODULE_15__["default"]),
71876/* harmony export */ "interpolateRdPu": () => (/* reexport safe */ _sequential_multi_RdPu_js__WEBPACK_IMPORTED_MODULE_26__["default"]),
71877/* harmony export */ "interpolateRdYlBu": () => (/* reexport safe */ _diverging_RdYlBu_js__WEBPACK_IMPORTED_MODULE_16__["default"]),
71878/* harmony export */ "interpolateRdYlGn": () => (/* reexport safe */ _diverging_RdYlGn_js__WEBPACK_IMPORTED_MODULE_17__["default"]),
71879/* harmony export */ "interpolateReds": () => (/* reexport safe */ _sequential_single_Reds_js__WEBPACK_IMPORTED_MODULE_35__["default"]),
71880/* harmony export */ "interpolateSinebow": () => (/* reexport safe */ _sequential_multi_sinebow_js__WEBPACK_IMPORTED_MODULE_40__["default"]),
71881/* harmony export */ "interpolateSpectral": () => (/* reexport safe */ _diverging_Spectral_js__WEBPACK_IMPORTED_MODULE_18__["default"]),
71882/* harmony export */ "interpolateTurbo": () => (/* reexport safe */ _sequential_multi_turbo_js__WEBPACK_IMPORTED_MODULE_41__["default"]),
71883/* harmony export */ "interpolateViridis": () => (/* reexport safe */ _sequential_multi_viridis_js__WEBPACK_IMPORTED_MODULE_42__["default"]),
71884/* harmony export */ "interpolateWarm": () => (/* reexport safe */ _sequential_multi_rainbow_js__WEBPACK_IMPORTED_MODULE_39__.warm),
71885/* harmony export */ "interpolateYlGn": () => (/* reexport safe */ _sequential_multi_YlGn_js__WEBPACK_IMPORTED_MODULE_28__["default"]),
71886/* harmony export */ "interpolateYlGnBu": () => (/* reexport safe */ _sequential_multi_YlGnBu_js__WEBPACK_IMPORTED_MODULE_27__["default"]),
71887/* harmony export */ "interpolateYlOrBr": () => (/* reexport safe */ _sequential_multi_YlOrBr_js__WEBPACK_IMPORTED_MODULE_29__["default"]),
71888/* harmony export */ "interpolateYlOrRd": () => (/* reexport safe */ _sequential_multi_YlOrRd_js__WEBPACK_IMPORTED_MODULE_30__["default"]),
71889/* harmony export */ "schemeAccent": () => (/* reexport safe */ _categorical_Accent_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
71890/* harmony export */ "schemeBlues": () => (/* reexport safe */ _sequential_single_Blues_js__WEBPACK_IMPORTED_MODULE_31__.scheme),
71891/* harmony export */ "schemeBrBG": () => (/* reexport safe */ _diverging_BrBG_js__WEBPACK_IMPORTED_MODULE_10__.scheme),
71892/* harmony export */ "schemeBuGn": () => (/* reexport safe */ _sequential_multi_BuGn_js__WEBPACK_IMPORTED_MODULE_19__.scheme),
71893/* harmony export */ "schemeBuPu": () => (/* reexport safe */ _sequential_multi_BuPu_js__WEBPACK_IMPORTED_MODULE_20__.scheme),
71894/* harmony export */ "schemeCategory10": () => (/* reexport safe */ _categorical_category10_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
71895/* harmony export */ "schemeDark2": () => (/* reexport safe */ _categorical_Dark2_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
71896/* harmony export */ "schemeGnBu": () => (/* reexport safe */ _sequential_multi_GnBu_js__WEBPACK_IMPORTED_MODULE_21__.scheme),
71897/* harmony export */ "schemeGreens": () => (/* reexport safe */ _sequential_single_Greens_js__WEBPACK_IMPORTED_MODULE_32__.scheme),
71898/* harmony export */ "schemeGreys": () => (/* reexport safe */ _sequential_single_Greys_js__WEBPACK_IMPORTED_MODULE_33__.scheme),
71899/* harmony export */ "schemeOrRd": () => (/* reexport safe */ _sequential_multi_OrRd_js__WEBPACK_IMPORTED_MODULE_22__.scheme),
71900/* harmony export */ "schemeOranges": () => (/* reexport safe */ _sequential_single_Oranges_js__WEBPACK_IMPORTED_MODULE_36__.scheme),
71901/* harmony export */ "schemePRGn": () => (/* reexport safe */ _diverging_PRGn_js__WEBPACK_IMPORTED_MODULE_11__.scheme),
71902/* harmony export */ "schemePaired": () => (/* reexport safe */ _categorical_Paired_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
71903/* harmony export */ "schemePastel1": () => (/* reexport safe */ _categorical_Pastel1_js__WEBPACK_IMPORTED_MODULE_4__["default"]),
71904/* harmony export */ "schemePastel2": () => (/* reexport safe */ _categorical_Pastel2_js__WEBPACK_IMPORTED_MODULE_5__["default"]),
71905/* harmony export */ "schemePiYG": () => (/* reexport safe */ _diverging_PiYG_js__WEBPACK_IMPORTED_MODULE_12__.scheme),
71906/* harmony export */ "schemePuBu": () => (/* reexport safe */ _sequential_multi_PuBu_js__WEBPACK_IMPORTED_MODULE_24__.scheme),
71907/* harmony export */ "schemePuBuGn": () => (/* reexport safe */ _sequential_multi_PuBuGn_js__WEBPACK_IMPORTED_MODULE_23__.scheme),
71908/* harmony export */ "schemePuOr": () => (/* reexport safe */ _diverging_PuOr_js__WEBPACK_IMPORTED_MODULE_13__.scheme),
71909/* harmony export */ "schemePuRd": () => (/* reexport safe */ _sequential_multi_PuRd_js__WEBPACK_IMPORTED_MODULE_25__.scheme),
71910/* harmony export */ "schemePurples": () => (/* reexport safe */ _sequential_single_Purples_js__WEBPACK_IMPORTED_MODULE_34__.scheme),
71911/* harmony export */ "schemeRdBu": () => (/* reexport safe */ _diverging_RdBu_js__WEBPACK_IMPORTED_MODULE_14__.scheme),
71912/* harmony export */ "schemeRdGy": () => (/* reexport safe */ _diverging_RdGy_js__WEBPACK_IMPORTED_MODULE_15__.scheme),
71913/* harmony export */ "schemeRdPu": () => (/* reexport safe */ _sequential_multi_RdPu_js__WEBPACK_IMPORTED_MODULE_26__.scheme),
71914/* harmony export */ "schemeRdYlBu": () => (/* reexport safe */ _diverging_RdYlBu_js__WEBPACK_IMPORTED_MODULE_16__.scheme),
71915/* harmony export */ "schemeRdYlGn": () => (/* reexport safe */ _diverging_RdYlGn_js__WEBPACK_IMPORTED_MODULE_17__.scheme),
71916/* harmony export */ "schemeReds": () => (/* reexport safe */ _sequential_single_Reds_js__WEBPACK_IMPORTED_MODULE_35__.scheme),
71917/* harmony export */ "schemeSet1": () => (/* reexport safe */ _categorical_Set1_js__WEBPACK_IMPORTED_MODULE_6__["default"]),
71918/* harmony export */ "schemeSet2": () => (/* reexport safe */ _categorical_Set2_js__WEBPACK_IMPORTED_MODULE_7__["default"]),
71919/* harmony export */ "schemeSet3": () => (/* reexport safe */ _categorical_Set3_js__WEBPACK_IMPORTED_MODULE_8__["default"]),
71920/* harmony export */ "schemeSpectral": () => (/* reexport safe */ _diverging_Spectral_js__WEBPACK_IMPORTED_MODULE_18__.scheme),
71921/* harmony export */ "schemeTableau10": () => (/* reexport safe */ _categorical_Tableau10_js__WEBPACK_IMPORTED_MODULE_9__["default"]),
71922/* harmony export */ "schemeYlGn": () => (/* reexport safe */ _sequential_multi_YlGn_js__WEBPACK_IMPORTED_MODULE_28__.scheme),
71923/* harmony export */ "schemeYlGnBu": () => (/* reexport safe */ _sequential_multi_YlGnBu_js__WEBPACK_IMPORTED_MODULE_27__.scheme),
71924/* harmony export */ "schemeYlOrBr": () => (/* reexport safe */ _sequential_multi_YlOrBr_js__WEBPACK_IMPORTED_MODULE_29__.scheme),
71925/* harmony export */ "schemeYlOrRd": () => (/* reexport safe */ _sequential_multi_YlOrRd_js__WEBPACK_IMPORTED_MODULE_30__.scheme)
71926/* harmony export */ });
71927/* harmony import */ var _categorical_category10_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./categorical/category10.js */ "./node_modules/d3-scale-chromatic/src/categorical/category10.js");
71928/* harmony import */ var _categorical_Accent_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./categorical/Accent.js */ "./node_modules/d3-scale-chromatic/src/categorical/Accent.js");
71929/* harmony import */ var _categorical_Dark2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./categorical/Dark2.js */ "./node_modules/d3-scale-chromatic/src/categorical/Dark2.js");
71930/* harmony import */ var _categorical_Paired_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./categorical/Paired.js */ "./node_modules/d3-scale-chromatic/src/categorical/Paired.js");
71931/* harmony import */ var _categorical_Pastel1_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./categorical/Pastel1.js */ "./node_modules/d3-scale-chromatic/src/categorical/Pastel1.js");
71932/* harmony import */ var _categorical_Pastel2_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./categorical/Pastel2.js */ "./node_modules/d3-scale-chromatic/src/categorical/Pastel2.js");
71933/* harmony import */ var _categorical_Set1_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./categorical/Set1.js */ "./node_modules/d3-scale-chromatic/src/categorical/Set1.js");
71934/* harmony import */ var _categorical_Set2_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./categorical/Set2.js */ "./node_modules/d3-scale-chromatic/src/categorical/Set2.js");
71935/* harmony import */ var _categorical_Set3_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./categorical/Set3.js */ "./node_modules/d3-scale-chromatic/src/categorical/Set3.js");
71936/* harmony import */ var _categorical_Tableau10_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./categorical/Tableau10.js */ "./node_modules/d3-scale-chromatic/src/categorical/Tableau10.js");
71937/* harmony import */ var _diverging_BrBG_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./diverging/BrBG.js */ "./node_modules/d3-scale-chromatic/src/diverging/BrBG.js");
71938/* harmony import */ var _diverging_PRGn_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./diverging/PRGn.js */ "./node_modules/d3-scale-chromatic/src/diverging/PRGn.js");
71939/* harmony import */ var _diverging_PiYG_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./diverging/PiYG.js */ "./node_modules/d3-scale-chromatic/src/diverging/PiYG.js");
71940/* harmony import */ var _diverging_PuOr_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./diverging/PuOr.js */ "./node_modules/d3-scale-chromatic/src/diverging/PuOr.js");
71941/* harmony import */ var _diverging_RdBu_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./diverging/RdBu.js */ "./node_modules/d3-scale-chromatic/src/diverging/RdBu.js");
71942/* harmony import */ var _diverging_RdGy_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./diverging/RdGy.js */ "./node_modules/d3-scale-chromatic/src/diverging/RdGy.js");
71943/* harmony import */ var _diverging_RdYlBu_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./diverging/RdYlBu.js */ "./node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js");
71944/* harmony import */ var _diverging_RdYlGn_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./diverging/RdYlGn.js */ "./node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js");
71945/* harmony import */ var _diverging_Spectral_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./diverging/Spectral.js */ "./node_modules/d3-scale-chromatic/src/diverging/Spectral.js");
71946/* 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");
71947/* 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");
71948/* 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");
71949/* 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");
71950/* 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");
71951/* 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");
71952/* 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");
71953/* 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");
71954/* 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");
71955/* 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");
71956/* 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");
71957/* 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");
71958/* 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");
71959/* 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");
71960/* 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");
71961/* 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");
71962/* 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");
71963/* 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");
71964/* 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");
71965/* 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");
71966/* 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");
71967/* 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");
71968/* 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");
71969/* 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");
71970
71971
71972
71973
71974
71975
71976
71977
71978
71979
71980
71981
71982
71983
71984
71985
71986
71987
71988
71989
71990
71991
71992
71993
71994
71995
71996
71997
71998
71999
72000
72001
72002
72003
72004
72005
72006
72007
72008
72009
72010
72011
72012
72013
72014
72015/***/ }),
72016
72017/***/ "./node_modules/d3-scale-chromatic/src/ramp.js":
72018/*!*****************************************************!*\
72019 !*** ./node_modules/d3-scale-chromatic/src/ramp.js ***!
72020 \*****************************************************/
72021/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72022
72023"use strict";
72024__webpack_require__.r(__webpack_exports__);
72025/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72026/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
72027/* harmony export */ });
72028/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/rgb.js");
72029
72030
72031/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (scheme => (0,d3_interpolate__WEBPACK_IMPORTED_MODULE_0__.rgbBasis)(scheme[scheme.length - 1]));
72032
72033
72034/***/ }),
72035
72036/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js":
72037/*!**********************************************************************!*\
72038 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js ***!
72039 \**********************************************************************/
72040/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72041
72042"use strict";
72043__webpack_require__.r(__webpack_exports__);
72044/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72045/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72046/* harmony export */ "scheme": () => (/* binding */ scheme)
72047/* harmony export */ });
72048/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72049/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72050
72051
72052
72053var scheme = new Array(3).concat(
72054 "e5f5f999d8c92ca25f",
72055 "edf8fbb2e2e266c2a4238b45",
72056 "edf8fbb2e2e266c2a42ca25f006d2c",
72057 "edf8fbccece699d8c966c2a42ca25f006d2c",
72058 "edf8fbccece699d8c966c2a441ae76238b45005824",
72059 "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824",
72060 "f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b"
72061).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72062
72063/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72064
72065
72066/***/ }),
72067
72068/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js":
72069/*!**********************************************************************!*\
72070 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js ***!
72071 \**********************************************************************/
72072/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72073
72074"use strict";
72075__webpack_require__.r(__webpack_exports__);
72076/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72077/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72078/* harmony export */ "scheme": () => (/* binding */ scheme)
72079/* harmony export */ });
72080/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72081/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72082
72083
72084
72085var scheme = new Array(3).concat(
72086 "e0ecf49ebcda8856a7",
72087 "edf8fbb3cde38c96c688419d",
72088 "edf8fbb3cde38c96c68856a7810f7c",
72089 "edf8fbbfd3e69ebcda8c96c68856a7810f7c",
72090 "edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b",
72091 "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b",
72092 "f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b"
72093).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72094
72095/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72096
72097
72098/***/ }),
72099
72100/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js":
72101/*!**********************************************************************!*\
72102 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js ***!
72103 \**********************************************************************/
72104/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72105
72106"use strict";
72107__webpack_require__.r(__webpack_exports__);
72108/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72109/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72110/* harmony export */ "scheme": () => (/* binding */ scheme)
72111/* harmony export */ });
72112/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72113/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72114
72115
72116
72117var scheme = new Array(3).concat(
72118 "e0f3dba8ddb543a2ca",
72119 "f0f9e8bae4bc7bccc42b8cbe",
72120 "f0f9e8bae4bc7bccc443a2ca0868ac",
72121 "f0f9e8ccebc5a8ddb57bccc443a2ca0868ac",
72122 "f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e",
72123 "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e",
72124 "f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081"
72125).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72126
72127/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72128
72129
72130/***/ }),
72131
72132/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js":
72133/*!**********************************************************************!*\
72134 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js ***!
72135 \**********************************************************************/
72136/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72137
72138"use strict";
72139__webpack_require__.r(__webpack_exports__);
72140/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72141/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72142/* harmony export */ "scheme": () => (/* binding */ scheme)
72143/* harmony export */ });
72144/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72145/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72146
72147
72148
72149var scheme = new Array(3).concat(
72150 "fee8c8fdbb84e34a33",
72151 "fef0d9fdcc8afc8d59d7301f",
72152 "fef0d9fdcc8afc8d59e34a33b30000",
72153 "fef0d9fdd49efdbb84fc8d59e34a33b30000",
72154 "fef0d9fdd49efdbb84fc8d59ef6548d7301f990000",
72155 "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000",
72156 "fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000"
72157).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72158
72159/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72160
72161
72162/***/ }),
72163
72164/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js":
72165/*!**********************************************************************!*\
72166 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js ***!
72167 \**********************************************************************/
72168/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72169
72170"use strict";
72171__webpack_require__.r(__webpack_exports__);
72172/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72173/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72174/* harmony export */ "scheme": () => (/* binding */ scheme)
72175/* harmony export */ });
72176/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72177/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72178
72179
72180
72181var scheme = new Array(3).concat(
72182 "ece7f2a6bddb2b8cbe",
72183 "f1eef6bdc9e174a9cf0570b0",
72184 "f1eef6bdc9e174a9cf2b8cbe045a8d",
72185 "f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d",
72186 "f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b",
72187 "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b",
72188 "fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858"
72189).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72190
72191/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72192
72193
72194/***/ }),
72195
72196/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js":
72197/*!************************************************************************!*\
72198 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js ***!
72199 \************************************************************************/
72200/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72201
72202"use strict";
72203__webpack_require__.r(__webpack_exports__);
72204/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72205/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72206/* harmony export */ "scheme": () => (/* binding */ scheme)
72207/* harmony export */ });
72208/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72209/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72210
72211
72212
72213var scheme = new Array(3).concat(
72214 "ece2f0a6bddb1c9099",
72215 "f6eff7bdc9e167a9cf02818a",
72216 "f6eff7bdc9e167a9cf1c9099016c59",
72217 "f6eff7d0d1e6a6bddb67a9cf1c9099016c59",
72218 "f6eff7d0d1e6a6bddb67a9cf3690c002818a016450",
72219 "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450",
72220 "fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636"
72221).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72222
72223/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72224
72225
72226/***/ }),
72227
72228/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js":
72229/*!**********************************************************************!*\
72230 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js ***!
72231 \**********************************************************************/
72232/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72233
72234"use strict";
72235__webpack_require__.r(__webpack_exports__);
72236/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72237/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72238/* harmony export */ "scheme": () => (/* binding */ scheme)
72239/* harmony export */ });
72240/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72241/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72242
72243
72244
72245var scheme = new Array(3).concat(
72246 "e7e1efc994c7dd1c77",
72247 "f1eef6d7b5d8df65b0ce1256",
72248 "f1eef6d7b5d8df65b0dd1c77980043",
72249 "f1eef6d4b9dac994c7df65b0dd1c77980043",
72250 "f1eef6d4b9dac994c7df65b0e7298ace125691003f",
72251 "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f",
72252 "f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f"
72253).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72254
72255/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72256
72257
72258/***/ }),
72259
72260/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js":
72261/*!**********************************************************************!*\
72262 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js ***!
72263 \**********************************************************************/
72264/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72265
72266"use strict";
72267__webpack_require__.r(__webpack_exports__);
72268/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72269/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72270/* harmony export */ "scheme": () => (/* binding */ scheme)
72271/* harmony export */ });
72272/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72273/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72274
72275
72276
72277var scheme = new Array(3).concat(
72278 "fde0ddfa9fb5c51b8a",
72279 "feebe2fbb4b9f768a1ae017e",
72280 "feebe2fbb4b9f768a1c51b8a7a0177",
72281 "feebe2fcc5c0fa9fb5f768a1c51b8a7a0177",
72282 "feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177",
72283 "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177",
72284 "fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a"
72285).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72286
72287/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72288
72289
72290/***/ }),
72291
72292/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js":
72293/*!**********************************************************************!*\
72294 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js ***!
72295 \**********************************************************************/
72296/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72297
72298"use strict";
72299__webpack_require__.r(__webpack_exports__);
72300/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72301/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72302/* harmony export */ "scheme": () => (/* binding */ scheme)
72303/* harmony export */ });
72304/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72305/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72306
72307
72308
72309var scheme = new Array(3).concat(
72310 "f7fcb9addd8e31a354",
72311 "ffffccc2e69978c679238443",
72312 "ffffccc2e69978c67931a354006837",
72313 "ffffccd9f0a3addd8e78c67931a354006837",
72314 "ffffccd9f0a3addd8e78c67941ab5d238443005a32",
72315 "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32",
72316 "ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529"
72317).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72318
72319/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72320
72321
72322/***/ }),
72323
72324/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js":
72325/*!************************************************************************!*\
72326 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js ***!
72327 \************************************************************************/
72328/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72329
72330"use strict";
72331__webpack_require__.r(__webpack_exports__);
72332/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72333/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72334/* harmony export */ "scheme": () => (/* binding */ scheme)
72335/* harmony export */ });
72336/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72337/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72338
72339
72340
72341var scheme = new Array(3).concat(
72342 "edf8b17fcdbb2c7fb8",
72343 "ffffcca1dab441b6c4225ea8",
72344 "ffffcca1dab441b6c42c7fb8253494",
72345 "ffffccc7e9b47fcdbb41b6c42c7fb8253494",
72346 "ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84",
72347 "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84",
72348 "ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58"
72349).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72350
72351/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72352
72353
72354/***/ }),
72355
72356/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js":
72357/*!************************************************************************!*\
72358 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js ***!
72359 \************************************************************************/
72360/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72361
72362"use strict";
72363__webpack_require__.r(__webpack_exports__);
72364/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72365/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72366/* harmony export */ "scheme": () => (/* binding */ scheme)
72367/* harmony export */ });
72368/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72369/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72370
72371
72372
72373var scheme = new Array(3).concat(
72374 "fff7bcfec44fd95f0e",
72375 "ffffd4fed98efe9929cc4c02",
72376 "ffffd4fed98efe9929d95f0e993404",
72377 "ffffd4fee391fec44ffe9929d95f0e993404",
72378 "ffffd4fee391fec44ffe9929ec7014cc4c028c2d04",
72379 "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04",
72380 "ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506"
72381).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72382
72383/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72384
72385
72386/***/ }),
72387
72388/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js":
72389/*!************************************************************************!*\
72390 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js ***!
72391 \************************************************************************/
72392/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72393
72394"use strict";
72395__webpack_require__.r(__webpack_exports__);
72396/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72397/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72398/* harmony export */ "scheme": () => (/* binding */ scheme)
72399/* harmony export */ });
72400/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72401/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72402
72403
72404
72405var scheme = new Array(3).concat(
72406 "ffeda0feb24cf03b20",
72407 "ffffb2fecc5cfd8d3ce31a1c",
72408 "ffffb2fecc5cfd8d3cf03b20bd0026",
72409 "ffffb2fed976feb24cfd8d3cf03b20bd0026",
72410 "ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026",
72411 "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026",
72412 "ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026"
72413).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72414
72415/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72416
72417
72418/***/ }),
72419
72420/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js":
72421/*!*************************************************************************!*\
72422 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js ***!
72423 \*************************************************************************/
72424/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72425
72426"use strict";
72427__webpack_require__.r(__webpack_exports__);
72428/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72429/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
72430/* harmony export */ });
72431/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(t) {
72432 t = Math.max(0, Math.min(1, t));
72433 return "rgb("
72434 + 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))))))) + ", "
72435 + 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))))))) + ", "
72436 + 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)))))))
72437 + ")";
72438}
72439
72440
72441/***/ }),
72442
72443/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js":
72444/*!***************************************************************************!*\
72445 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js ***!
72446 \***************************************************************************/
72447/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72448
72449"use strict";
72450__webpack_require__.r(__webpack_exports__);
72451/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72452/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
72453/* harmony export */ });
72454/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/cubehelix.js");
72455/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/cubehelix.js");
72456
72457
72458
72459/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,d3_interpolate__WEBPACK_IMPORTED_MODULE_0__.cubehelixLong)((0,d3_color__WEBPACK_IMPORTED_MODULE_1__["default"])(300, 0.5, 0.0), (0,d3_color__WEBPACK_IMPORTED_MODULE_1__["default"])(-240, 0.5, 1.0)));
72460
72461
72462/***/ }),
72463
72464/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js":
72465/*!*************************************************************************!*\
72466 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js ***!
72467 \*************************************************************************/
72468/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72469
72470"use strict";
72471__webpack_require__.r(__webpack_exports__);
72472/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72473/* harmony export */ "cool": () => (/* binding */ cool),
72474/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
72475/* harmony export */ "warm": () => (/* binding */ warm)
72476/* harmony export */ });
72477/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/cubehelix.js");
72478/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/cubehelix.js");
72479
72480
72481
72482var warm = (0,d3_interpolate__WEBPACK_IMPORTED_MODULE_0__.cubehelixLong)((0,d3_color__WEBPACK_IMPORTED_MODULE_1__["default"])(-100, 0.75, 0.35), (0,d3_color__WEBPACK_IMPORTED_MODULE_1__["default"])(80, 1.50, 0.8));
72483
72484var cool = (0,d3_interpolate__WEBPACK_IMPORTED_MODULE_0__.cubehelixLong)((0,d3_color__WEBPACK_IMPORTED_MODULE_1__["default"])(260, 0.75, 0.35), (0,d3_color__WEBPACK_IMPORTED_MODULE_1__["default"])(80, 1.50, 0.8));
72485
72486var c = (0,d3_color__WEBPACK_IMPORTED_MODULE_1__["default"])();
72487
72488/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(t) {
72489 if (t < 0 || t > 1) t -= Math.floor(t);
72490 var ts = Math.abs(t - 0.5);
72491 c.h = 360 * t - 100;
72492 c.s = 1.5 - 1.5 * ts;
72493 c.l = 0.8 - 0.9 * ts;
72494 return c + "";
72495}
72496
72497
72498/***/ }),
72499
72500/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js":
72501/*!*************************************************************************!*\
72502 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js ***!
72503 \*************************************************************************/
72504/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72505
72506"use strict";
72507__webpack_require__.r(__webpack_exports__);
72508/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72509/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
72510/* harmony export */ });
72511/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/color.js");
72512
72513
72514var c = (0,d3_color__WEBPACK_IMPORTED_MODULE_0__.rgb)(),
72515 pi_1_3 = Math.PI / 3,
72516 pi_2_3 = Math.PI * 2 / 3;
72517
72518/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(t) {
72519 var x;
72520 t = (0.5 - t) * Math.PI;
72521 c.r = 255 * (x = Math.sin(t)) * x;
72522 c.g = 255 * (x = Math.sin(t + pi_1_3)) * x;
72523 c.b = 255 * (x = Math.sin(t + pi_2_3)) * x;
72524 return c + "";
72525}
72526
72527
72528/***/ }),
72529
72530/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js":
72531/*!***********************************************************************!*\
72532 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js ***!
72533 \***********************************************************************/
72534/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72535
72536"use strict";
72537__webpack_require__.r(__webpack_exports__);
72538/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72539/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
72540/* harmony export */ });
72541/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(t) {
72542 t = Math.max(0, Math.min(1, t));
72543 return "rgb("
72544 + 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))))))) + ", "
72545 + 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))))))) + ", "
72546 + Math.max(0, Math.min(255, Math.round(27.2 + t * (3211.1 - t * (15327.97 - t * (27814 - t * (22569.18 - t * 6838.66)))))))
72547 + ")";
72548}
72549
72550
72551/***/ }),
72552
72553/***/ "./node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js":
72554/*!*************************************************************************!*\
72555 !*** ./node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js ***!
72556 \*************************************************************************/
72557/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72558
72559"use strict";
72560__webpack_require__.r(__webpack_exports__);
72561/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72562/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72563/* harmony export */ "inferno": () => (/* binding */ inferno),
72564/* harmony export */ "magma": () => (/* binding */ magma),
72565/* harmony export */ "plasma": () => (/* binding */ plasma)
72566/* harmony export */ });
72567/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72568
72569
72570function ramp(range) {
72571 var n = range.length;
72572 return function(t) {
72573 return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];
72574 };
72575}
72576
72577/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ramp((0,_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")));
72578
72579var magma = ramp((0,_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf"));
72580
72581var inferno = ramp((0,_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4"));
72582
72583var plasma = ramp((0,_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));
72584
72585
72586/***/ }),
72587
72588/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Blues.js":
72589/*!************************************************************************!*\
72590 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Blues.js ***!
72591 \************************************************************************/
72592/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72593
72594"use strict";
72595__webpack_require__.r(__webpack_exports__);
72596/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72597/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72598/* harmony export */ "scheme": () => (/* binding */ scheme)
72599/* harmony export */ });
72600/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72601/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72602
72603
72604
72605var scheme = new Array(3).concat(
72606 "deebf79ecae13182bd",
72607 "eff3ffbdd7e76baed62171b5",
72608 "eff3ffbdd7e76baed63182bd08519c",
72609 "eff3ffc6dbef9ecae16baed63182bd08519c",
72610 "eff3ffc6dbef9ecae16baed64292c62171b5084594",
72611 "f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594",
72612 "f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b"
72613).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72614
72615/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72616
72617
72618/***/ }),
72619
72620/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Greens.js":
72621/*!*************************************************************************!*\
72622 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Greens.js ***!
72623 \*************************************************************************/
72624/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72625
72626"use strict";
72627__webpack_require__.r(__webpack_exports__);
72628/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72629/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72630/* harmony export */ "scheme": () => (/* binding */ scheme)
72631/* harmony export */ });
72632/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72633/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72634
72635
72636
72637var scheme = new Array(3).concat(
72638 "e5f5e0a1d99b31a354",
72639 "edf8e9bae4b374c476238b45",
72640 "edf8e9bae4b374c47631a354006d2c",
72641 "edf8e9c7e9c0a1d99b74c47631a354006d2c",
72642 "edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32",
72643 "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32",
72644 "f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b"
72645).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72646
72647/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72648
72649
72650/***/ }),
72651
72652/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Greys.js":
72653/*!************************************************************************!*\
72654 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Greys.js ***!
72655 \************************************************************************/
72656/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72657
72658"use strict";
72659__webpack_require__.r(__webpack_exports__);
72660/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72661/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72662/* harmony export */ "scheme": () => (/* binding */ scheme)
72663/* harmony export */ });
72664/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72665/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72666
72667
72668
72669var scheme = new Array(3).concat(
72670 "f0f0f0bdbdbd636363",
72671 "f7f7f7cccccc969696525252",
72672 "f7f7f7cccccc969696636363252525",
72673 "f7f7f7d9d9d9bdbdbd969696636363252525",
72674 "f7f7f7d9d9d9bdbdbd969696737373525252252525",
72675 "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525",
72676 "fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000"
72677).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72678
72679/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72680
72681
72682/***/ }),
72683
72684/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js":
72685/*!**************************************************************************!*\
72686 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js ***!
72687 \**************************************************************************/
72688/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72689
72690"use strict";
72691__webpack_require__.r(__webpack_exports__);
72692/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72693/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72694/* harmony export */ "scheme": () => (/* binding */ scheme)
72695/* harmony export */ });
72696/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72697/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72698
72699
72700
72701var scheme = new Array(3).concat(
72702 "fee6cefdae6be6550d",
72703 "feeddefdbe85fd8d3cd94701",
72704 "feeddefdbe85fd8d3ce6550da63603",
72705 "feeddefdd0a2fdae6bfd8d3ce6550da63603",
72706 "feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04",
72707 "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04",
72708 "fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704"
72709).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72710
72711/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72712
72713
72714/***/ }),
72715
72716/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Purples.js":
72717/*!**************************************************************************!*\
72718 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Purples.js ***!
72719 \**************************************************************************/
72720/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72721
72722"use strict";
72723__webpack_require__.r(__webpack_exports__);
72724/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72725/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72726/* harmony export */ "scheme": () => (/* binding */ scheme)
72727/* harmony export */ });
72728/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72729/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72730
72731
72732
72733var scheme = new Array(3).concat(
72734 "efedf5bcbddc756bb1",
72735 "f2f0f7cbc9e29e9ac86a51a3",
72736 "f2f0f7cbc9e29e9ac8756bb154278f",
72737 "f2f0f7dadaebbcbddc9e9ac8756bb154278f",
72738 "f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486",
72739 "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486",
72740 "fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d"
72741).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72742
72743/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72744
72745
72746/***/ }),
72747
72748/***/ "./node_modules/d3-scale-chromatic/src/sequential-single/Reds.js":
72749/*!***********************************************************************!*\
72750 !*** ./node_modules/d3-scale-chromatic/src/sequential-single/Reds.js ***!
72751 \***********************************************************************/
72752/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72753
72754"use strict";
72755__webpack_require__.r(__webpack_exports__);
72756/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72757/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
72758/* harmony export */ "scheme": () => (/* binding */ scheme)
72759/* harmony export */ });
72760/* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../colors.js */ "./node_modules/d3-scale-chromatic/src/colors.js");
72761/* harmony import */ var _ramp_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ramp.js */ "./node_modules/d3-scale-chromatic/src/ramp.js");
72762
72763
72764
72765var scheme = new Array(3).concat(
72766 "fee0d2fc9272de2d26",
72767 "fee5d9fcae91fb6a4acb181d",
72768 "fee5d9fcae91fb6a4ade2d26a50f15",
72769 "fee5d9fcbba1fc9272fb6a4ade2d26a50f15",
72770 "fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d",
72771 "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d",
72772 "fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d"
72773).map(_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
72774
72775/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_ramp_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scheme));
72776
72777
72778/***/ }),
72779
72780/***/ "./node_modules/d3-scale/src/band.js":
72781/*!*******************************************!*\
72782 !*** ./node_modules/d3-scale/src/band.js ***!
72783 \*******************************************/
72784/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72785
72786"use strict";
72787__webpack_require__.r(__webpack_exports__);
72788/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72789/* harmony export */ "default": () => (/* binding */ band),
72790/* harmony export */ "point": () => (/* binding */ point)
72791/* harmony export */ });
72792/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/range.js");
72793/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init.js */ "./node_modules/d3-scale/src/init.js");
72794/* harmony import */ var _ordinal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ordinal.js */ "./node_modules/d3-scale/src/ordinal.js");
72795
72796
72797
72798
72799function band() {
72800 var scale = (0,_ordinal_js__WEBPACK_IMPORTED_MODULE_0__["default"])().unknown(undefined),
72801 domain = scale.domain,
72802 ordinalRange = scale.range,
72803 r0 = 0,
72804 r1 = 1,
72805 step,
72806 bandwidth,
72807 round = false,
72808 paddingInner = 0,
72809 paddingOuter = 0,
72810 align = 0.5;
72811
72812 delete scale.unknown;
72813
72814 function rescale() {
72815 var n = domain().length,
72816 reverse = r1 < r0,
72817 start = reverse ? r1 : r0,
72818 stop = reverse ? r0 : r1;
72819 step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);
72820 if (round) step = Math.floor(step);
72821 start += (stop - start - step * (n - paddingInner)) * align;
72822 bandwidth = step * (1 - paddingInner);
72823 if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);
72824 var values = (0,d3_array__WEBPACK_IMPORTED_MODULE_1__["default"])(n).map(function(i) { return start + step * i; });
72825 return ordinalRange(reverse ? values.reverse() : values);
72826 }
72827
72828 scale.domain = function(_) {
72829 return arguments.length ? (domain(_), rescale()) : domain();
72830 };
72831
72832 scale.range = function(_) {
72833 return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];
72834 };
72835
72836 scale.rangeRound = function(_) {
72837 return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();
72838 };
72839
72840 scale.bandwidth = function() {
72841 return bandwidth;
72842 };
72843
72844 scale.step = function() {
72845 return step;
72846 };
72847
72848 scale.round = function(_) {
72849 return arguments.length ? (round = !!_, rescale()) : round;
72850 };
72851
72852 scale.padding = function(_) {
72853 return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;
72854 };
72855
72856 scale.paddingInner = function(_) {
72857 return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;
72858 };
72859
72860 scale.paddingOuter = function(_) {
72861 return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;
72862 };
72863
72864 scale.align = function(_) {
72865 return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;
72866 };
72867
72868 scale.copy = function() {
72869 return band(domain(), [r0, r1])
72870 .round(round)
72871 .paddingInner(paddingInner)
72872 .paddingOuter(paddingOuter)
72873 .align(align);
72874 };
72875
72876 return _init_js__WEBPACK_IMPORTED_MODULE_2__.initRange.apply(rescale(), arguments);
72877}
72878
72879function pointish(scale) {
72880 var copy = scale.copy;
72881
72882 scale.padding = scale.paddingOuter;
72883 delete scale.paddingInner;
72884 delete scale.paddingOuter;
72885
72886 scale.copy = function() {
72887 return pointish(copy());
72888 };
72889
72890 return scale;
72891}
72892
72893function point() {
72894 return pointish(band.apply(null, arguments).paddingInner(1));
72895}
72896
72897
72898/***/ }),
72899
72900/***/ "./node_modules/d3-scale/src/constant.js":
72901/*!***********************************************!*\
72902 !*** ./node_modules/d3-scale/src/constant.js ***!
72903 \***********************************************/
72904/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72905
72906"use strict";
72907__webpack_require__.r(__webpack_exports__);
72908/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72909/* harmony export */ "default": () => (/* binding */ constants)
72910/* harmony export */ });
72911function constants(x) {
72912 return function() {
72913 return x;
72914 };
72915}
72916
72917
72918/***/ }),
72919
72920/***/ "./node_modules/d3-scale/src/continuous.js":
72921/*!*************************************************!*\
72922 !*** ./node_modules/d3-scale/src/continuous.js ***!
72923 \*************************************************/
72924/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
72925
72926"use strict";
72927__webpack_require__.r(__webpack_exports__);
72928/* harmony export */ __webpack_require__.d(__webpack_exports__, {
72929/* harmony export */ "copy": () => (/* binding */ copy),
72930/* harmony export */ "default": () => (/* binding */ continuous),
72931/* harmony export */ "identity": () => (/* binding */ identity),
72932/* harmony export */ "transformer": () => (/* binding */ transformer)
72933/* harmony export */ });
72934/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/bisect.js");
72935/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/value.js");
72936/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/number.js");
72937/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/round.js");
72938/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-scale/src/constant.js");
72939/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./number.js */ "./node_modules/d3-scale/src/number.js");
72940
72941
72942
72943
72944
72945var unit = [0, 1];
72946
72947function identity(x) {
72948 return x;
72949}
72950
72951function normalize(a, b) {
72952 return (b -= (a = +a))
72953 ? function(x) { return (x - a) / b; }
72954 : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(isNaN(b) ? NaN : 0.5);
72955}
72956
72957function clamper(a, b) {
72958 var t;
72959 if (a > b) t = a, a = b, b = t;
72960 return function(x) { return Math.max(a, Math.min(b, x)); };
72961}
72962
72963// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].
72964// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].
72965function bimap(domain, range, interpolate) {
72966 var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];
72967 if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);
72968 else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);
72969 return function(x) { return r0(d0(x)); };
72970}
72971
72972function polymap(domain, range, interpolate) {
72973 var j = Math.min(domain.length, range.length) - 1,
72974 d = new Array(j),
72975 r = new Array(j),
72976 i = -1;
72977
72978 // Reverse descending domains.
72979 if (domain[j] < domain[0]) {
72980 domain = domain.slice().reverse();
72981 range = range.slice().reverse();
72982 }
72983
72984 while (++i < j) {
72985 d[i] = normalize(domain[i], domain[i + 1]);
72986 r[i] = interpolate(range[i], range[i + 1]);
72987 }
72988
72989 return function(x) {
72990 var i = (0,d3_array__WEBPACK_IMPORTED_MODULE_1__["default"])(domain, x, 1, j) - 1;
72991 return r[i](d[i](x));
72992 };
72993}
72994
72995function copy(source, target) {
72996 return target
72997 .domain(source.domain())
72998 .range(source.range())
72999 .interpolate(source.interpolate())
73000 .clamp(source.clamp())
73001 .unknown(source.unknown());
73002}
73003
73004function transformer() {
73005 var domain = unit,
73006 range = unit,
73007 interpolate = d3_interpolate__WEBPACK_IMPORTED_MODULE_2__["default"],
73008 transform,
73009 untransform,
73010 unknown,
73011 clamp = identity,
73012 piecewise,
73013 output,
73014 input;
73015
73016 function rescale() {
73017 var n = Math.min(domain.length, range.length);
73018 if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);
73019 piecewise = n > 2 ? polymap : bimap;
73020 output = input = null;
73021 return scale;
73022 }
73023
73024 function scale(x) {
73025 return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));
73026 }
73027
73028 scale.invert = function(y) {
73029 return clamp(untransform((input || (input = piecewise(range, domain.map(transform), d3_interpolate__WEBPACK_IMPORTED_MODULE_3__["default"])))(y)));
73030 };
73031
73032 scale.domain = function(_) {
73033 return arguments.length ? (domain = Array.from(_, _number_js__WEBPACK_IMPORTED_MODULE_4__["default"]), rescale()) : domain.slice();
73034 };
73035
73036 scale.range = function(_) {
73037 return arguments.length ? (range = Array.from(_), rescale()) : range.slice();
73038 };
73039
73040 scale.rangeRound = function(_) {
73041 return range = Array.from(_), interpolate = d3_interpolate__WEBPACK_IMPORTED_MODULE_5__["default"], rescale();
73042 };
73043
73044 scale.clamp = function(_) {
73045 return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;
73046 };
73047
73048 scale.interpolate = function(_) {
73049 return arguments.length ? (interpolate = _, rescale()) : interpolate;
73050 };
73051
73052 scale.unknown = function(_) {
73053 return arguments.length ? (unknown = _, scale) : unknown;
73054 };
73055
73056 return function(t, u) {
73057 transform = t, untransform = u;
73058 return rescale();
73059 };
73060}
73061
73062function continuous() {
73063 return transformer()(identity, identity);
73064}
73065
73066
73067/***/ }),
73068
73069/***/ "./node_modules/d3-scale/src/diverging.js":
73070/*!************************************************!*\
73071 !*** ./node_modules/d3-scale/src/diverging.js ***!
73072 \************************************************/
73073/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
73074
73075"use strict";
73076__webpack_require__.r(__webpack_exports__);
73077/* harmony export */ __webpack_require__.d(__webpack_exports__, {
73078/* harmony export */ "default": () => (/* binding */ diverging),
73079/* harmony export */ "divergingLog": () => (/* binding */ divergingLog),
73080/* harmony export */ "divergingPow": () => (/* binding */ divergingPow),
73081/* harmony export */ "divergingSqrt": () => (/* binding */ divergingSqrt),
73082/* harmony export */ "divergingSymlog": () => (/* binding */ divergingSymlog)
73083/* harmony export */ });
73084/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/piecewise.js");
73085/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/value.js");
73086/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/round.js");
73087/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./continuous.js */ "./node_modules/d3-scale/src/continuous.js");
73088/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./init.js */ "./node_modules/d3-scale/src/init.js");
73089/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./linear.js */ "./node_modules/d3-scale/src/linear.js");
73090/* harmony import */ var _log_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./log.js */ "./node_modules/d3-scale/src/log.js");
73091/* harmony import */ var _sequential_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./sequential.js */ "./node_modules/d3-scale/src/sequential.js");
73092/* harmony import */ var _symlog_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./symlog.js */ "./node_modules/d3-scale/src/symlog.js");
73093/* harmony import */ var _pow_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./pow.js */ "./node_modules/d3-scale/src/pow.js");
73094
73095
73096
73097
73098
73099
73100
73101
73102
73103function transformer() {
73104 var x0 = 0,
73105 x1 = 0.5,
73106 x2 = 1,
73107 s = 1,
73108 t0,
73109 t1,
73110 t2,
73111 k10,
73112 k21,
73113 interpolator = _continuous_js__WEBPACK_IMPORTED_MODULE_0__.identity,
73114 transform,
73115 clamp = false,
73116 unknown;
73117
73118 function scale(x) {
73119 return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));
73120 }
73121
73122 scale.domain = function(_) {
73123 return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];
73124 };
73125
73126 scale.clamp = function(_) {
73127 return arguments.length ? (clamp = !!_, scale) : clamp;
73128 };
73129
73130 scale.interpolator = function(_) {
73131 return arguments.length ? (interpolator = _, scale) : interpolator;
73132 };
73133
73134 function range(interpolate) {
73135 return function(_) {
73136 var r0, r1, r2;
73137 return arguments.length ? ([r0, r1, r2] = _, interpolator = (0,d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["default"])(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];
73138 };
73139 }
73140
73141 scale.range = range(d3_interpolate__WEBPACK_IMPORTED_MODULE_2__["default"]);
73142
73143 scale.rangeRound = range(d3_interpolate__WEBPACK_IMPORTED_MODULE_3__["default"]);
73144
73145 scale.unknown = function(_) {
73146 return arguments.length ? (unknown = _, scale) : unknown;
73147 };
73148
73149 return function(t) {
73150 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), s = t1 < t0 ? -1 : 1;
73151 return scale;
73152 };
73153}
73154
73155function diverging() {
73156 var scale = (0,_linear_js__WEBPACK_IMPORTED_MODULE_4__.linearish)(transformer()(_continuous_js__WEBPACK_IMPORTED_MODULE_0__.identity));
73157
73158 scale.copy = function() {
73159 return (0,_sequential_js__WEBPACK_IMPORTED_MODULE_5__.copy)(scale, diverging());
73160 };
73161
73162 return _init_js__WEBPACK_IMPORTED_MODULE_6__.initInterpolator.apply(scale, arguments);
73163}
73164
73165function divergingLog() {
73166 var scale = (0,_log_js__WEBPACK_IMPORTED_MODULE_7__.loggish)(transformer()).domain([0.1, 1, 10]);
73167
73168 scale.copy = function() {
73169 return (0,_sequential_js__WEBPACK_IMPORTED_MODULE_5__.copy)(scale, divergingLog()).base(scale.base());
73170 };
73171
73172 return _init_js__WEBPACK_IMPORTED_MODULE_6__.initInterpolator.apply(scale, arguments);
73173}
73174
73175function divergingSymlog() {
73176 var scale = (0,_symlog_js__WEBPACK_IMPORTED_MODULE_8__.symlogish)(transformer());
73177
73178 scale.copy = function() {
73179 return (0,_sequential_js__WEBPACK_IMPORTED_MODULE_5__.copy)(scale, divergingSymlog()).constant(scale.constant());
73180 };
73181
73182 return _init_js__WEBPACK_IMPORTED_MODULE_6__.initInterpolator.apply(scale, arguments);
73183}
73184
73185function divergingPow() {
73186 var scale = (0,_pow_js__WEBPACK_IMPORTED_MODULE_9__.powish)(transformer());
73187
73188 scale.copy = function() {
73189 return (0,_sequential_js__WEBPACK_IMPORTED_MODULE_5__.copy)(scale, divergingPow()).exponent(scale.exponent());
73190 };
73191
73192 return _init_js__WEBPACK_IMPORTED_MODULE_6__.initInterpolator.apply(scale, arguments);
73193}
73194
73195function divergingSqrt() {
73196 return divergingPow.apply(null, arguments).exponent(0.5);
73197}
73198
73199
73200/***/ }),
73201
73202/***/ "./node_modules/d3-scale/src/identity.js":
73203/*!***********************************************!*\
73204 !*** ./node_modules/d3-scale/src/identity.js ***!
73205 \***********************************************/
73206/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
73207
73208"use strict";
73209__webpack_require__.r(__webpack_exports__);
73210/* harmony export */ __webpack_require__.d(__webpack_exports__, {
73211/* harmony export */ "default": () => (/* binding */ identity)
73212/* harmony export */ });
73213/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./linear.js */ "./node_modules/d3-scale/src/linear.js");
73214/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.js */ "./node_modules/d3-scale/src/number.js");
73215
73216
73217
73218function identity(domain) {
73219 var unknown;
73220
73221 function scale(x) {
73222 return x == null || isNaN(x = +x) ? unknown : x;
73223 }
73224
73225 scale.invert = scale;
73226
73227 scale.domain = scale.range = function(_) {
73228 return arguments.length ? (domain = Array.from(_, _number_js__WEBPACK_IMPORTED_MODULE_0__["default"]), scale) : domain.slice();
73229 };
73230
73231 scale.unknown = function(_) {
73232 return arguments.length ? (unknown = _, scale) : unknown;
73233 };
73234
73235 scale.copy = function() {
73236 return identity(domain).unknown(unknown);
73237 };
73238
73239 domain = arguments.length ? Array.from(domain, _number_js__WEBPACK_IMPORTED_MODULE_0__["default"]) : [0, 1];
73240
73241 return (0,_linear_js__WEBPACK_IMPORTED_MODULE_1__.linearish)(scale);
73242}
73243
73244
73245/***/ }),
73246
73247/***/ "./node_modules/d3-scale/src/index.js":
73248/*!********************************************!*\
73249 !*** ./node_modules/d3-scale/src/index.js ***!
73250 \********************************************/
73251/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
73252
73253"use strict";
73254__webpack_require__.r(__webpack_exports__);
73255/* harmony export */ __webpack_require__.d(__webpack_exports__, {
73256/* harmony export */ "scaleBand": () => (/* reexport safe */ _band_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
73257/* harmony export */ "scaleDiverging": () => (/* reexport safe */ _diverging_js__WEBPACK_IMPORTED_MODULE_15__["default"]),
73258/* harmony export */ "scaleDivergingLog": () => (/* reexport safe */ _diverging_js__WEBPACK_IMPORTED_MODULE_15__.divergingLog),
73259/* harmony export */ "scaleDivergingPow": () => (/* reexport safe */ _diverging_js__WEBPACK_IMPORTED_MODULE_15__.divergingPow),
73260/* harmony export */ "scaleDivergingSqrt": () => (/* reexport safe */ _diverging_js__WEBPACK_IMPORTED_MODULE_15__.divergingSqrt),
73261/* harmony export */ "scaleDivergingSymlog": () => (/* reexport safe */ _diverging_js__WEBPACK_IMPORTED_MODULE_15__.divergingSymlog),
73262/* harmony export */ "scaleIdentity": () => (/* reexport safe */ _identity_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
73263/* harmony export */ "scaleImplicit": () => (/* reexport safe */ _ordinal_js__WEBPACK_IMPORTED_MODULE_5__.implicit),
73264/* harmony export */ "scaleLinear": () => (/* reexport safe */ _linear_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
73265/* harmony export */ "scaleLog": () => (/* reexport safe */ _log_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
73266/* harmony export */ "scaleOrdinal": () => (/* reexport safe */ _ordinal_js__WEBPACK_IMPORTED_MODULE_5__["default"]),
73267/* harmony export */ "scalePoint": () => (/* reexport safe */ _band_js__WEBPACK_IMPORTED_MODULE_0__.point),
73268/* harmony export */ "scalePow": () => (/* reexport safe */ _pow_js__WEBPACK_IMPORTED_MODULE_6__["default"]),
73269/* harmony export */ "scaleQuantile": () => (/* reexport safe */ _quantile_js__WEBPACK_IMPORTED_MODULE_8__["default"]),
73270/* harmony export */ "scaleQuantize": () => (/* reexport safe */ _quantize_js__WEBPACK_IMPORTED_MODULE_9__["default"]),
73271/* harmony export */ "scaleRadial": () => (/* reexport safe */ _radial_js__WEBPACK_IMPORTED_MODULE_7__["default"]),
73272/* harmony export */ "scaleSequential": () => (/* reexport safe */ _sequential_js__WEBPACK_IMPORTED_MODULE_13__["default"]),
73273/* harmony export */ "scaleSequentialLog": () => (/* reexport safe */ _sequential_js__WEBPACK_IMPORTED_MODULE_13__.sequentialLog),
73274/* harmony export */ "scaleSequentialPow": () => (/* reexport safe */ _sequential_js__WEBPACK_IMPORTED_MODULE_13__.sequentialPow),
73275/* harmony export */ "scaleSequentialQuantile": () => (/* reexport safe */ _sequentialQuantile_js__WEBPACK_IMPORTED_MODULE_14__["default"]),
73276/* harmony export */ "scaleSequentialSqrt": () => (/* reexport safe */ _sequential_js__WEBPACK_IMPORTED_MODULE_13__.sequentialSqrt),
73277/* harmony export */ "scaleSequentialSymlog": () => (/* reexport safe */ _sequential_js__WEBPACK_IMPORTED_MODULE_13__.sequentialSymlog),
73278/* harmony export */ "scaleSqrt": () => (/* reexport safe */ _pow_js__WEBPACK_IMPORTED_MODULE_6__.sqrt),
73279/* harmony export */ "scaleSymlog": () => (/* reexport safe */ _symlog_js__WEBPACK_IMPORTED_MODULE_4__["default"]),
73280/* harmony export */ "scaleThreshold": () => (/* reexport safe */ _threshold_js__WEBPACK_IMPORTED_MODULE_10__["default"]),
73281/* harmony export */ "scaleTime": () => (/* reexport safe */ _time_js__WEBPACK_IMPORTED_MODULE_11__["default"]),
73282/* harmony export */ "scaleUtc": () => (/* reexport safe */ _utcTime_js__WEBPACK_IMPORTED_MODULE_12__["default"]),
73283/* harmony export */ "tickFormat": () => (/* reexport safe */ _tickFormat_js__WEBPACK_IMPORTED_MODULE_16__["default"])
73284/* harmony export */ });
73285/* harmony import */ var _band_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./band.js */ "./node_modules/d3-scale/src/band.js");
73286/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./identity.js */ "./node_modules/d3-scale/src/identity.js");
73287/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./linear.js */ "./node_modules/d3-scale/src/linear.js");
73288/* harmony import */ var _log_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./log.js */ "./node_modules/d3-scale/src/log.js");
73289/* harmony import */ var _symlog_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./symlog.js */ "./node_modules/d3-scale/src/symlog.js");
73290/* harmony import */ var _ordinal_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ordinal.js */ "./node_modules/d3-scale/src/ordinal.js");
73291/* harmony import */ var _pow_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pow.js */ "./node_modules/d3-scale/src/pow.js");
73292/* harmony import */ var _radial_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./radial.js */ "./node_modules/d3-scale/src/radial.js");
73293/* harmony import */ var _quantile_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./quantile.js */ "./node_modules/d3-scale/src/quantile.js");
73294/* harmony import */ var _quantize_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./quantize.js */ "./node_modules/d3-scale/src/quantize.js");
73295/* harmony import */ var _threshold_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./threshold.js */ "./node_modules/d3-scale/src/threshold.js");
73296/* harmony import */ var _time_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./time.js */ "./node_modules/d3-scale/src/time.js");
73297/* harmony import */ var _utcTime_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utcTime.js */ "./node_modules/d3-scale/src/utcTime.js");
73298/* harmony import */ var _sequential_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./sequential.js */ "./node_modules/d3-scale/src/sequential.js");
73299/* harmony import */ var _sequentialQuantile_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./sequentialQuantile.js */ "./node_modules/d3-scale/src/sequentialQuantile.js");
73300/* harmony import */ var _diverging_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./diverging.js */ "./node_modules/d3-scale/src/diverging.js");
73301/* harmony import */ var _tickFormat_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./tickFormat.js */ "./node_modules/d3-scale/src/tickFormat.js");
73302
73303
73304
73305
73306
73307
73308
73309
73310
73311
73312
73313
73314
73315
73316
73317
73318
73319
73320
73321
73322
73323
73324
73325
73326
73327
73328
73329
73330
73331
73332
73333
73334
73335
73336
73337/***/ }),
73338
73339/***/ "./node_modules/d3-scale/src/init.js":
73340/*!*******************************************!*\
73341 !*** ./node_modules/d3-scale/src/init.js ***!
73342 \*******************************************/
73343/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
73344
73345"use strict";
73346__webpack_require__.r(__webpack_exports__);
73347/* harmony export */ __webpack_require__.d(__webpack_exports__, {
73348/* harmony export */ "initInterpolator": () => (/* binding */ initInterpolator),
73349/* harmony export */ "initRange": () => (/* binding */ initRange)
73350/* harmony export */ });
73351function initRange(domain, range) {
73352 switch (arguments.length) {
73353 case 0: break;
73354 case 1: this.range(domain); break;
73355 default: this.range(range).domain(domain); break;
73356 }
73357 return this;
73358}
73359
73360function initInterpolator(domain, interpolator) {
73361 switch (arguments.length) {
73362 case 0: break;
73363 case 1: {
73364 if (typeof domain === "function") this.interpolator(domain);
73365 else this.range(domain);
73366 break;
73367 }
73368 default: {
73369 this.domain(domain);
73370 if (typeof interpolator === "function") this.interpolator(interpolator);
73371 else this.range(interpolator);
73372 break;
73373 }
73374 }
73375 return this;
73376}
73377
73378
73379/***/ }),
73380
73381/***/ "./node_modules/d3-scale/src/linear.js":
73382/*!*********************************************!*\
73383 !*** ./node_modules/d3-scale/src/linear.js ***!
73384 \*********************************************/
73385/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
73386
73387"use strict";
73388__webpack_require__.r(__webpack_exports__);
73389/* harmony export */ __webpack_require__.d(__webpack_exports__, {
73390/* harmony export */ "default": () => (/* binding */ linear),
73391/* harmony export */ "linearish": () => (/* binding */ linearish)
73392/* harmony export */ });
73393/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/ticks.js");
73394/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./continuous.js */ "./node_modules/d3-scale/src/continuous.js");
73395/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./init.js */ "./node_modules/d3-scale/src/init.js");
73396/* harmony import */ var _tickFormat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tickFormat.js */ "./node_modules/d3-scale/src/tickFormat.js");
73397
73398
73399
73400
73401
73402function linearish(scale) {
73403 var domain = scale.domain;
73404
73405 scale.ticks = function(count) {
73406 var d = domain();
73407 return (0,d3_array__WEBPACK_IMPORTED_MODULE_0__["default"])(d[0], d[d.length - 1], count == null ? 10 : count);
73408 };
73409
73410 scale.tickFormat = function(count, specifier) {
73411 var d = domain();
73412 return (0,_tickFormat_js__WEBPACK_IMPORTED_MODULE_1__["default"])(d[0], d[d.length - 1], count == null ? 10 : count, specifier);
73413 };
73414
73415 scale.nice = function(count) {
73416 if (count == null) count = 10;
73417
73418 var d = domain();
73419 var i0 = 0;
73420 var i1 = d.length - 1;
73421 var start = d[i0];
73422 var stop = d[i1];
73423 var prestep;
73424 var step;
73425 var maxIter = 10;
73426
73427 if (stop < start) {
73428 step = start, start = stop, stop = step;
73429 step = i0, i0 = i1, i1 = step;
73430 }
73431
73432 while (maxIter-- > 0) {
73433 step = (0,d3_array__WEBPACK_IMPORTED_MODULE_0__.tickIncrement)(start, stop, count);
73434 if (step === prestep) {
73435 d[i0] = start
73436 d[i1] = stop
73437 return domain(d);
73438 } else if (step > 0) {
73439 start = Math.floor(start / step) * step;
73440 stop = Math.ceil(stop / step) * step;
73441 } else if (step < 0) {
73442 start = Math.ceil(start * step) / step;
73443 stop = Math.floor(stop * step) / step;
73444 } else {
73445 break;
73446 }
73447 prestep = step;
73448 }
73449
73450 return scale;
73451 };
73452
73453 return scale;
73454}
73455
73456function linear() {
73457 var scale = (0,_continuous_js__WEBPACK_IMPORTED_MODULE_2__["default"])();
73458
73459 scale.copy = function() {
73460 return (0,_continuous_js__WEBPACK_IMPORTED_MODULE_2__.copy)(scale, linear());
73461 };
73462
73463 _init_js__WEBPACK_IMPORTED_MODULE_3__.initRange.apply(scale, arguments);
73464
73465 return linearish(scale);
73466}
73467
73468
73469/***/ }),
73470
73471/***/ "./node_modules/d3-scale/src/log.js":
73472/*!******************************************!*\
73473 !*** ./node_modules/d3-scale/src/log.js ***!
73474 \******************************************/
73475/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
73476
73477"use strict";
73478__webpack_require__.r(__webpack_exports__);
73479/* harmony export */ __webpack_require__.d(__webpack_exports__, {
73480/* harmony export */ "default": () => (/* binding */ log),
73481/* harmony export */ "loggish": () => (/* binding */ loggish)
73482/* harmony export */ });
73483/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/ticks.js");
73484/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-format */ "./node_modules/d3-format/src/formatSpecifier.js");
73485/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-format */ "./node_modules/d3-format/src/defaultLocale.js");
73486/* harmony import */ var _nice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nice.js */ "./node_modules/d3-scale/src/nice.js");
73487/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./continuous.js */ "./node_modules/d3-scale/src/continuous.js");
73488/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./init.js */ "./node_modules/d3-scale/src/init.js");
73489
73490
73491
73492
73493
73494
73495function transformLog(x) {
73496 return Math.log(x);
73497}
73498
73499function transformExp(x) {
73500 return Math.exp(x);
73501}
73502
73503function transformLogn(x) {
73504 return -Math.log(-x);
73505}
73506
73507function transformExpn(x) {
73508 return -Math.exp(-x);
73509}
73510
73511function pow10(x) {
73512 return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x;
73513}
73514
73515function powp(base) {
73516 return base === 10 ? pow10
73517 : base === Math.E ? Math.exp
73518 : x => Math.pow(base, x);
73519}
73520
73521function logp(base) {
73522 return base === Math.E ? Math.log
73523 : base === 10 && Math.log10
73524 || base === 2 && Math.log2
73525 || (base = Math.log(base), x => Math.log(x) / base);
73526}
73527
73528function reflect(f) {
73529 return (x, k) => -f(-x, k);
73530}
73531
73532function loggish(transform) {
73533 const scale = transform(transformLog, transformExp);
73534 const domain = scale.domain;
73535 let base = 10;
73536 let logs;
73537 let pows;
73538
73539 function rescale() {
73540 logs = logp(base), pows = powp(base);
73541 if (domain()[0] < 0) {
73542 logs = reflect(logs), pows = reflect(pows);
73543 transform(transformLogn, transformExpn);
73544 } else {
73545 transform(transformLog, transformExp);
73546 }
73547 return scale;
73548 }
73549
73550 scale.base = function(_) {
73551 return arguments.length ? (base = +_, rescale()) : base;
73552 };
73553
73554 scale.domain = function(_) {
73555 return arguments.length ? (domain(_), rescale()) : domain();
73556 };
73557
73558 scale.ticks = count => {
73559 const d = domain();
73560 let u = d[0];
73561 let v = d[d.length - 1];
73562 const r = v < u;
73563
73564 if (r) ([u, v] = [v, u]);
73565
73566 let i = logs(u);
73567 let j = logs(v);
73568 let k;
73569 let t;
73570 const n = count == null ? 10 : +count;
73571 let z = [];
73572
73573 if (!(base % 1) && j - i < n) {
73574 i = Math.floor(i), j = Math.ceil(j);
73575 if (u > 0) for (; i <= j; ++i) {
73576 for (k = 1; k < base; ++k) {
73577 t = i < 0 ? k / pows(-i) : k * pows(i);
73578 if (t < u) continue;
73579 if (t > v) break;
73580 z.push(t);
73581 }
73582 } else for (; i <= j; ++i) {
73583 for (k = base - 1; k >= 1; --k) {
73584 t = i > 0 ? k / pows(-i) : k * pows(i);
73585 if (t < u) continue;
73586 if (t > v) break;
73587 z.push(t);
73588 }
73589 }
73590 if (z.length * 2 < n) z = (0,d3_array__WEBPACK_IMPORTED_MODULE_0__["default"])(u, v, n);
73591 } else {
73592 z = (0,d3_array__WEBPACK_IMPORTED_MODULE_0__["default"])(i, j, Math.min(j - i, n)).map(pows);
73593 }
73594 return r ? z.reverse() : z;
73595 };
73596
73597 scale.tickFormat = (count, specifier) => {
73598 if (count == null) count = 10;
73599 if (specifier == null) specifier = base === 10 ? "s" : ",";
73600 if (typeof specifier !== "function") {
73601 if (!(base % 1) && (specifier = (0,d3_format__WEBPACK_IMPORTED_MODULE_1__["default"])(specifier)).precision == null) specifier.trim = true;
73602 specifier = (0,d3_format__WEBPACK_IMPORTED_MODULE_2__.format)(specifier);
73603 }
73604 if (count === Infinity) return specifier;
73605 const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?
73606 return d => {
73607 let i = d / pows(Math.round(logs(d)));
73608 if (i * base < base - 0.5) i *= base;
73609 return i <= k ? specifier(d) : "";
73610 };
73611 };
73612
73613 scale.nice = () => {
73614 return domain((0,_nice_js__WEBPACK_IMPORTED_MODULE_3__["default"])(domain(), {
73615 floor: x => pows(Math.floor(logs(x))),
73616 ceil: x => pows(Math.ceil(logs(x)))
73617 }));
73618 };
73619
73620 return scale;
73621}
73622
73623function log() {
73624 const scale = loggish((0,_continuous_js__WEBPACK_IMPORTED_MODULE_4__.transformer)()).domain([1, 10]);
73625 scale.copy = () => (0,_continuous_js__WEBPACK_IMPORTED_MODULE_4__.copy)(scale, log()).base(scale.base());
73626 _init_js__WEBPACK_IMPORTED_MODULE_5__.initRange.apply(scale, arguments);
73627 return scale;
73628}
73629
73630
73631/***/ }),
73632
73633/***/ "./node_modules/d3-scale/src/nice.js":
73634/*!*******************************************!*\
73635 !*** ./node_modules/d3-scale/src/nice.js ***!
73636 \*******************************************/
73637/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
73638
73639"use strict";
73640__webpack_require__.r(__webpack_exports__);
73641/* harmony export */ __webpack_require__.d(__webpack_exports__, {
73642/* harmony export */ "default": () => (/* binding */ nice)
73643/* harmony export */ });
73644function nice(domain, interval) {
73645 domain = domain.slice();
73646
73647 var i0 = 0,
73648 i1 = domain.length - 1,
73649 x0 = domain[i0],
73650 x1 = domain[i1],
73651 t;
73652
73653 if (x1 < x0) {
73654 t = i0, i0 = i1, i1 = t;
73655 t = x0, x0 = x1, x1 = t;
73656 }
73657
73658 domain[i0] = interval.floor(x0);
73659 domain[i1] = interval.ceil(x1);
73660 return domain;
73661}
73662
73663
73664/***/ }),
73665
73666/***/ "./node_modules/d3-scale/src/number.js":
73667/*!*********************************************!*\
73668 !*** ./node_modules/d3-scale/src/number.js ***!
73669 \*********************************************/
73670/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
73671
73672"use strict";
73673__webpack_require__.r(__webpack_exports__);
73674/* harmony export */ __webpack_require__.d(__webpack_exports__, {
73675/* harmony export */ "default": () => (/* binding */ number)
73676/* harmony export */ });
73677function number(x) {
73678 return +x;
73679}
73680
73681
73682/***/ }),
73683
73684/***/ "./node_modules/d3-scale/src/ordinal.js":
73685/*!**********************************************!*\
73686 !*** ./node_modules/d3-scale/src/ordinal.js ***!
73687 \**********************************************/
73688/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
73689
73690"use strict";
73691__webpack_require__.r(__webpack_exports__);
73692/* harmony export */ __webpack_require__.d(__webpack_exports__, {
73693/* harmony export */ "default": () => (/* binding */ ordinal),
73694/* harmony export */ "implicit": () => (/* binding */ implicit)
73695/* harmony export */ });
73696/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/internmap/src/index.js");
73697/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./init.js */ "./node_modules/d3-scale/src/init.js");
73698
73699
73700
73701const implicit = Symbol("implicit");
73702
73703function ordinal() {
73704 var index = new d3_array__WEBPACK_IMPORTED_MODULE_0__.InternMap(),
73705 domain = [],
73706 range = [],
73707 unknown = implicit;
73708
73709 function scale(d) {
73710 let i = index.get(d);
73711 if (i === undefined) {
73712 if (unknown !== implicit) return unknown;
73713 index.set(d, i = domain.push(d) - 1);
73714 }
73715 return range[i % range.length];
73716 }
73717
73718 scale.domain = function(_) {
73719 if (!arguments.length) return domain.slice();
73720 domain = [], index = new d3_array__WEBPACK_IMPORTED_MODULE_0__.InternMap();
73721 for (const value of _) {
73722 if (index.has(value)) continue;
73723 index.set(value, domain.push(value) - 1);
73724 }
73725 return scale;
73726 };
73727
73728 scale.range = function(_) {
73729 return arguments.length ? (range = Array.from(_), scale) : range.slice();
73730 };
73731
73732 scale.unknown = function(_) {
73733 return arguments.length ? (unknown = _, scale) : unknown;
73734 };
73735
73736 scale.copy = function() {
73737 return ordinal(domain, range).unknown(unknown);
73738 };
73739
73740 _init_js__WEBPACK_IMPORTED_MODULE_1__.initRange.apply(scale, arguments);
73741
73742 return scale;
73743}
73744
73745
73746/***/ }),
73747
73748/***/ "./node_modules/d3-scale/src/pow.js":
73749/*!******************************************!*\
73750 !*** ./node_modules/d3-scale/src/pow.js ***!
73751 \******************************************/
73752/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
73753
73754"use strict";
73755__webpack_require__.r(__webpack_exports__);
73756/* harmony export */ __webpack_require__.d(__webpack_exports__, {
73757/* harmony export */ "default": () => (/* binding */ pow),
73758/* harmony export */ "powish": () => (/* binding */ powish),
73759/* harmony export */ "sqrt": () => (/* binding */ sqrt)
73760/* harmony export */ });
73761/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./linear.js */ "./node_modules/d3-scale/src/linear.js");
73762/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./continuous.js */ "./node_modules/d3-scale/src/continuous.js");
73763/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init.js */ "./node_modules/d3-scale/src/init.js");
73764
73765
73766
73767
73768function transformPow(exponent) {
73769 return function(x) {
73770 return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);
73771 };
73772}
73773
73774function transformSqrt(x) {
73775 return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);
73776}
73777
73778function transformSquare(x) {
73779 return x < 0 ? -x * x : x * x;
73780}
73781
73782function powish(transform) {
73783 var scale = transform(_continuous_js__WEBPACK_IMPORTED_MODULE_0__.identity, _continuous_js__WEBPACK_IMPORTED_MODULE_0__.identity),
73784 exponent = 1;
73785
73786 function rescale() {
73787 return exponent === 1 ? transform(_continuous_js__WEBPACK_IMPORTED_MODULE_0__.identity, _continuous_js__WEBPACK_IMPORTED_MODULE_0__.identity)
73788 : exponent === 0.5 ? transform(transformSqrt, transformSquare)
73789 : transform(transformPow(exponent), transformPow(1 / exponent));
73790 }
73791
73792 scale.exponent = function(_) {
73793 return arguments.length ? (exponent = +_, rescale()) : exponent;
73794 };
73795
73796 return (0,_linear_js__WEBPACK_IMPORTED_MODULE_1__.linearish)(scale);
73797}
73798
73799function pow() {
73800 var scale = powish((0,_continuous_js__WEBPACK_IMPORTED_MODULE_0__.transformer)());
73801
73802 scale.copy = function() {
73803 return (0,_continuous_js__WEBPACK_IMPORTED_MODULE_0__.copy)(scale, pow()).exponent(scale.exponent());
73804 };
73805
73806 _init_js__WEBPACK_IMPORTED_MODULE_2__.initRange.apply(scale, arguments);
73807
73808 return scale;
73809}
73810
73811function sqrt() {
73812 return pow.apply(null, arguments).exponent(0.5);
73813}
73814
73815
73816/***/ }),
73817
73818/***/ "./node_modules/d3-scale/src/quantile.js":
73819/*!***********************************************!*\
73820 !*** ./node_modules/d3-scale/src/quantile.js ***!
73821 \***********************************************/
73822/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
73823
73824"use strict";
73825__webpack_require__.r(__webpack_exports__);
73826/* harmony export */ __webpack_require__.d(__webpack_exports__, {
73827/* harmony export */ "default": () => (/* binding */ quantile)
73828/* harmony export */ });
73829/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/quantile.js");
73830/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/bisect.js");
73831/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/ascending.js");
73832/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./init.js */ "./node_modules/d3-scale/src/init.js");
73833
73834
73835
73836function quantile() {
73837 var domain = [],
73838 range = [],
73839 thresholds = [],
73840 unknown;
73841
73842 function rescale() {
73843 var i = 0, n = Math.max(1, range.length);
73844 thresholds = new Array(n - 1);
73845 while (++i < n) thresholds[i - 1] = (0,d3_array__WEBPACK_IMPORTED_MODULE_0__.quantileSorted)(domain, i / n);
73846 return scale;
73847 }
73848
73849 function scale(x) {
73850 return x == null || isNaN(x = +x) ? unknown : range[(0,d3_array__WEBPACK_IMPORTED_MODULE_1__["default"])(thresholds, x)];
73851 }
73852
73853 scale.invertExtent = function(y) {
73854 var i = range.indexOf(y);
73855 return i < 0 ? [NaN, NaN] : [
73856 i > 0 ? thresholds[i - 1] : domain[0],
73857 i < thresholds.length ? thresholds[i] : domain[domain.length - 1]
73858 ];
73859 };
73860
73861 scale.domain = function(_) {
73862 if (!arguments.length) return domain.slice();
73863 domain = [];
73864 for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);
73865 domain.sort(d3_array__WEBPACK_IMPORTED_MODULE_2__["default"]);
73866 return rescale();
73867 };
73868
73869 scale.range = function(_) {
73870 return arguments.length ? (range = Array.from(_), rescale()) : range.slice();
73871 };
73872
73873 scale.unknown = function(_) {
73874 return arguments.length ? (unknown = _, scale) : unknown;
73875 };
73876
73877 scale.quantiles = function() {
73878 return thresholds.slice();
73879 };
73880
73881 scale.copy = function() {
73882 return quantile()
73883 .domain(domain)
73884 .range(range)
73885 .unknown(unknown);
73886 };
73887
73888 return _init_js__WEBPACK_IMPORTED_MODULE_3__.initRange.apply(scale, arguments);
73889}
73890
73891
73892/***/ }),
73893
73894/***/ "./node_modules/d3-scale/src/quantize.js":
73895/*!***********************************************!*\
73896 !*** ./node_modules/d3-scale/src/quantize.js ***!
73897 \***********************************************/
73898/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
73899
73900"use strict";
73901__webpack_require__.r(__webpack_exports__);
73902/* harmony export */ __webpack_require__.d(__webpack_exports__, {
73903/* harmony export */ "default": () => (/* binding */ quantize)
73904/* harmony export */ });
73905/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/bisect.js");
73906/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./linear.js */ "./node_modules/d3-scale/src/linear.js");
73907/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./init.js */ "./node_modules/d3-scale/src/init.js");
73908
73909
73910
73911
73912function quantize() {
73913 var x0 = 0,
73914 x1 = 1,
73915 n = 1,
73916 domain = [0.5],
73917 range = [0, 1],
73918 unknown;
73919
73920 function scale(x) {
73921 return x != null && x <= x ? range[(0,d3_array__WEBPACK_IMPORTED_MODULE_0__["default"])(domain, x, 0, n)] : unknown;
73922 }
73923
73924 function rescale() {
73925 var i = -1;
73926 domain = new Array(n);
73927 while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);
73928 return scale;
73929 }
73930
73931 scale.domain = function(_) {
73932 return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];
73933 };
73934
73935 scale.range = function(_) {
73936 return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();
73937 };
73938
73939 scale.invertExtent = function(y) {
73940 var i = range.indexOf(y);
73941 return i < 0 ? [NaN, NaN]
73942 : i < 1 ? [x0, domain[0]]
73943 : i >= n ? [domain[n - 1], x1]
73944 : [domain[i - 1], domain[i]];
73945 };
73946
73947 scale.unknown = function(_) {
73948 return arguments.length ? (unknown = _, scale) : scale;
73949 };
73950
73951 scale.thresholds = function() {
73952 return domain.slice();
73953 };
73954
73955 scale.copy = function() {
73956 return quantize()
73957 .domain([x0, x1])
73958 .range(range)
73959 .unknown(unknown);
73960 };
73961
73962 return _init_js__WEBPACK_IMPORTED_MODULE_1__.initRange.apply((0,_linear_js__WEBPACK_IMPORTED_MODULE_2__.linearish)(scale), arguments);
73963}
73964
73965
73966/***/ }),
73967
73968/***/ "./node_modules/d3-scale/src/radial.js":
73969/*!*********************************************!*\
73970 !*** ./node_modules/d3-scale/src/radial.js ***!
73971 \*********************************************/
73972/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
73973
73974"use strict";
73975__webpack_require__.r(__webpack_exports__);
73976/* harmony export */ __webpack_require__.d(__webpack_exports__, {
73977/* harmony export */ "default": () => (/* binding */ radial)
73978/* harmony export */ });
73979/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./continuous.js */ "./node_modules/d3-scale/src/continuous.js");
73980/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init.js */ "./node_modules/d3-scale/src/init.js");
73981/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./linear.js */ "./node_modules/d3-scale/src/linear.js");
73982/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./number.js */ "./node_modules/d3-scale/src/number.js");
73983
73984
73985
73986
73987
73988function square(x) {
73989 return Math.sign(x) * x * x;
73990}
73991
73992function unsquare(x) {
73993 return Math.sign(x) * Math.sqrt(Math.abs(x));
73994}
73995
73996function radial() {
73997 var squared = (0,_continuous_js__WEBPACK_IMPORTED_MODULE_0__["default"])(),
73998 range = [0, 1],
73999 round = false,
74000 unknown;
74001
74002 function scale(x) {
74003 var y = unsquare(squared(x));
74004 return isNaN(y) ? unknown : round ? Math.round(y) : y;
74005 }
74006
74007 scale.invert = function(y) {
74008 return squared.invert(square(y));
74009 };
74010
74011 scale.domain = function(_) {
74012 return arguments.length ? (squared.domain(_), scale) : squared.domain();
74013 };
74014
74015 scale.range = function(_) {
74016 return arguments.length ? (squared.range((range = Array.from(_, _number_js__WEBPACK_IMPORTED_MODULE_1__["default"])).map(square)), scale) : range.slice();
74017 };
74018
74019 scale.rangeRound = function(_) {
74020 return scale.range(_).round(true);
74021 };
74022
74023 scale.round = function(_) {
74024 return arguments.length ? (round = !!_, scale) : round;
74025 };
74026
74027 scale.clamp = function(_) {
74028 return arguments.length ? (squared.clamp(_), scale) : squared.clamp();
74029 };
74030
74031 scale.unknown = function(_) {
74032 return arguments.length ? (unknown = _, scale) : unknown;
74033 };
74034
74035 scale.copy = function() {
74036 return radial(squared.domain(), range)
74037 .round(round)
74038 .clamp(squared.clamp())
74039 .unknown(unknown);
74040 };
74041
74042 _init_js__WEBPACK_IMPORTED_MODULE_2__.initRange.apply(scale, arguments);
74043
74044 return (0,_linear_js__WEBPACK_IMPORTED_MODULE_3__.linearish)(scale);
74045}
74046
74047
74048/***/ }),
74049
74050/***/ "./node_modules/d3-scale/src/sequential.js":
74051/*!*************************************************!*\
74052 !*** ./node_modules/d3-scale/src/sequential.js ***!
74053 \*************************************************/
74054/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74055
74056"use strict";
74057__webpack_require__.r(__webpack_exports__);
74058/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74059/* harmony export */ "copy": () => (/* binding */ copy),
74060/* harmony export */ "default": () => (/* binding */ sequential),
74061/* harmony export */ "sequentialLog": () => (/* binding */ sequentialLog),
74062/* harmony export */ "sequentialPow": () => (/* binding */ sequentialPow),
74063/* harmony export */ "sequentialSqrt": () => (/* binding */ sequentialSqrt),
74064/* harmony export */ "sequentialSymlog": () => (/* binding */ sequentialSymlog)
74065/* harmony export */ });
74066/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/value.js");
74067/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/round.js");
74068/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./continuous.js */ "./node_modules/d3-scale/src/continuous.js");
74069/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./init.js */ "./node_modules/d3-scale/src/init.js");
74070/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./linear.js */ "./node_modules/d3-scale/src/linear.js");
74071/* harmony import */ var _log_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./log.js */ "./node_modules/d3-scale/src/log.js");
74072/* harmony import */ var _symlog_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./symlog.js */ "./node_modules/d3-scale/src/symlog.js");
74073/* harmony import */ var _pow_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./pow.js */ "./node_modules/d3-scale/src/pow.js");
74074
74075
74076
74077
74078
74079
74080
74081
74082function transformer() {
74083 var x0 = 0,
74084 x1 = 1,
74085 t0,
74086 t1,
74087 k10,
74088 transform,
74089 interpolator = _continuous_js__WEBPACK_IMPORTED_MODULE_0__.identity,
74090 clamp = false,
74091 unknown;
74092
74093 function scale(x) {
74094 return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));
74095 }
74096
74097 scale.domain = function(_) {
74098 return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];
74099 };
74100
74101 scale.clamp = function(_) {
74102 return arguments.length ? (clamp = !!_, scale) : clamp;
74103 };
74104
74105 scale.interpolator = function(_) {
74106 return arguments.length ? (interpolator = _, scale) : interpolator;
74107 };
74108
74109 function range(interpolate) {
74110 return function(_) {
74111 var r0, r1;
74112 return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];
74113 };
74114 }
74115
74116 scale.range = range(d3_interpolate__WEBPACK_IMPORTED_MODULE_1__["default"]);
74117
74118 scale.rangeRound = range(d3_interpolate__WEBPACK_IMPORTED_MODULE_2__["default"]);
74119
74120 scale.unknown = function(_) {
74121 return arguments.length ? (unknown = _, scale) : unknown;
74122 };
74123
74124 return function(t) {
74125 transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);
74126 return scale;
74127 };
74128}
74129
74130function copy(source, target) {
74131 return target
74132 .domain(source.domain())
74133 .interpolator(source.interpolator())
74134 .clamp(source.clamp())
74135 .unknown(source.unknown());
74136}
74137
74138function sequential() {
74139 var scale = (0,_linear_js__WEBPACK_IMPORTED_MODULE_3__.linearish)(transformer()(_continuous_js__WEBPACK_IMPORTED_MODULE_0__.identity));
74140
74141 scale.copy = function() {
74142 return copy(scale, sequential());
74143 };
74144
74145 return _init_js__WEBPACK_IMPORTED_MODULE_4__.initInterpolator.apply(scale, arguments);
74146}
74147
74148function sequentialLog() {
74149 var scale = (0,_log_js__WEBPACK_IMPORTED_MODULE_5__.loggish)(transformer()).domain([1, 10]);
74150
74151 scale.copy = function() {
74152 return copy(scale, sequentialLog()).base(scale.base());
74153 };
74154
74155 return _init_js__WEBPACK_IMPORTED_MODULE_4__.initInterpolator.apply(scale, arguments);
74156}
74157
74158function sequentialSymlog() {
74159 var scale = (0,_symlog_js__WEBPACK_IMPORTED_MODULE_6__.symlogish)(transformer());
74160
74161 scale.copy = function() {
74162 return copy(scale, sequentialSymlog()).constant(scale.constant());
74163 };
74164
74165 return _init_js__WEBPACK_IMPORTED_MODULE_4__.initInterpolator.apply(scale, arguments);
74166}
74167
74168function sequentialPow() {
74169 var scale = (0,_pow_js__WEBPACK_IMPORTED_MODULE_7__.powish)(transformer());
74170
74171 scale.copy = function() {
74172 return copy(scale, sequentialPow()).exponent(scale.exponent());
74173 };
74174
74175 return _init_js__WEBPACK_IMPORTED_MODULE_4__.initInterpolator.apply(scale, arguments);
74176}
74177
74178function sequentialSqrt() {
74179 return sequentialPow.apply(null, arguments).exponent(0.5);
74180}
74181
74182
74183/***/ }),
74184
74185/***/ "./node_modules/d3-scale/src/sequentialQuantile.js":
74186/*!*********************************************************!*\
74187 !*** ./node_modules/d3-scale/src/sequentialQuantile.js ***!
74188 \*********************************************************/
74189/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74190
74191"use strict";
74192__webpack_require__.r(__webpack_exports__);
74193/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74194/* harmony export */ "default": () => (/* binding */ sequentialQuantile)
74195/* harmony export */ });
74196/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/bisect.js");
74197/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/ascending.js");
74198/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/quantile.js");
74199/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./continuous.js */ "./node_modules/d3-scale/src/continuous.js");
74200/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./init.js */ "./node_modules/d3-scale/src/init.js");
74201
74202
74203
74204
74205function sequentialQuantile() {
74206 var domain = [],
74207 interpolator = _continuous_js__WEBPACK_IMPORTED_MODULE_0__.identity;
74208
74209 function scale(x) {
74210 if (x != null && !isNaN(x = +x)) return interpolator(((0,d3_array__WEBPACK_IMPORTED_MODULE_1__["default"])(domain, x, 1) - 1) / (domain.length - 1));
74211 }
74212
74213 scale.domain = function(_) {
74214 if (!arguments.length) return domain.slice();
74215 domain = [];
74216 for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);
74217 domain.sort(d3_array__WEBPACK_IMPORTED_MODULE_2__["default"]);
74218 return scale;
74219 };
74220
74221 scale.interpolator = function(_) {
74222 return arguments.length ? (interpolator = _, scale) : interpolator;
74223 };
74224
74225 scale.range = function() {
74226 return domain.map((d, i) => interpolator(i / (domain.length - 1)));
74227 };
74228
74229 scale.quantiles = function(n) {
74230 return Array.from({length: n + 1}, (_, i) => (0,d3_array__WEBPACK_IMPORTED_MODULE_3__["default"])(domain, i / n));
74231 };
74232
74233 scale.copy = function() {
74234 return sequentialQuantile(interpolator).domain(domain);
74235 };
74236
74237 return _init_js__WEBPACK_IMPORTED_MODULE_4__.initInterpolator.apply(scale, arguments);
74238}
74239
74240
74241/***/ }),
74242
74243/***/ "./node_modules/d3-scale/src/symlog.js":
74244/*!*********************************************!*\
74245 !*** ./node_modules/d3-scale/src/symlog.js ***!
74246 \*********************************************/
74247/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74248
74249"use strict";
74250__webpack_require__.r(__webpack_exports__);
74251/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74252/* harmony export */ "default": () => (/* binding */ symlog),
74253/* harmony export */ "symlogish": () => (/* binding */ symlogish)
74254/* harmony export */ });
74255/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear.js */ "./node_modules/d3-scale/src/linear.js");
74256/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./continuous.js */ "./node_modules/d3-scale/src/continuous.js");
74257/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init.js */ "./node_modules/d3-scale/src/init.js");
74258
74259
74260
74261
74262function transformSymlog(c) {
74263 return function(x) {
74264 return Math.sign(x) * Math.log1p(Math.abs(x / c));
74265 };
74266}
74267
74268function transformSymexp(c) {
74269 return function(x) {
74270 return Math.sign(x) * Math.expm1(Math.abs(x)) * c;
74271 };
74272}
74273
74274function symlogish(transform) {
74275 var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));
74276
74277 scale.constant = function(_) {
74278 return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;
74279 };
74280
74281 return (0,_linear_js__WEBPACK_IMPORTED_MODULE_0__.linearish)(scale);
74282}
74283
74284function symlog() {
74285 var scale = symlogish((0,_continuous_js__WEBPACK_IMPORTED_MODULE_1__.transformer)());
74286
74287 scale.copy = function() {
74288 return (0,_continuous_js__WEBPACK_IMPORTED_MODULE_1__.copy)(scale, symlog()).constant(scale.constant());
74289 };
74290
74291 return _init_js__WEBPACK_IMPORTED_MODULE_2__.initRange.apply(scale, arguments);
74292}
74293
74294
74295/***/ }),
74296
74297/***/ "./node_modules/d3-scale/src/threshold.js":
74298/*!************************************************!*\
74299 !*** ./node_modules/d3-scale/src/threshold.js ***!
74300 \************************************************/
74301/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74302
74303"use strict";
74304__webpack_require__.r(__webpack_exports__);
74305/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74306/* harmony export */ "default": () => (/* binding */ threshold)
74307/* harmony export */ });
74308/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/bisect.js");
74309/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./init.js */ "./node_modules/d3-scale/src/init.js");
74310
74311
74312
74313function threshold() {
74314 var domain = [0.5],
74315 range = [0, 1],
74316 unknown,
74317 n = 1;
74318
74319 function scale(x) {
74320 return x != null && x <= x ? range[(0,d3_array__WEBPACK_IMPORTED_MODULE_0__["default"])(domain, x, 0, n)] : unknown;
74321 }
74322
74323 scale.domain = function(_) {
74324 return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();
74325 };
74326
74327 scale.range = function(_) {
74328 return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();
74329 };
74330
74331 scale.invertExtent = function(y) {
74332 var i = range.indexOf(y);
74333 return [domain[i - 1], domain[i]];
74334 };
74335
74336 scale.unknown = function(_) {
74337 return arguments.length ? (unknown = _, scale) : unknown;
74338 };
74339
74340 scale.copy = function() {
74341 return threshold()
74342 .domain(domain)
74343 .range(range)
74344 .unknown(unknown);
74345 };
74346
74347 return _init_js__WEBPACK_IMPORTED_MODULE_1__.initRange.apply(scale, arguments);
74348}
74349
74350
74351/***/ }),
74352
74353/***/ "./node_modules/d3-scale/src/tickFormat.js":
74354/*!*************************************************!*\
74355 !*** ./node_modules/d3-scale/src/tickFormat.js ***!
74356 \*************************************************/
74357/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74358
74359"use strict";
74360__webpack_require__.r(__webpack_exports__);
74361/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74362/* harmony export */ "default": () => (/* binding */ tickFormat)
74363/* harmony export */ });
74364/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/ticks.js");
74365/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-format */ "./node_modules/d3-format/src/formatSpecifier.js");
74366/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-format */ "./node_modules/d3-format/src/precisionPrefix.js");
74367/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-format */ "./node_modules/d3-format/src/defaultLocale.js");
74368/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-format */ "./node_modules/d3-format/src/precisionRound.js");
74369/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-format */ "./node_modules/d3-format/src/precisionFixed.js");
74370
74371
74372
74373function tickFormat(start, stop, count, specifier) {
74374 var step = (0,d3_array__WEBPACK_IMPORTED_MODULE_0__.tickStep)(start, stop, count),
74375 precision;
74376 specifier = (0,d3_format__WEBPACK_IMPORTED_MODULE_1__["default"])(specifier == null ? ",f" : specifier);
74377 switch (specifier.type) {
74378 case "s": {
74379 var value = Math.max(Math.abs(start), Math.abs(stop));
74380 if (specifier.precision == null && !isNaN(precision = (0,d3_format__WEBPACK_IMPORTED_MODULE_2__["default"])(step, value))) specifier.precision = precision;
74381 return (0,d3_format__WEBPACK_IMPORTED_MODULE_3__.formatPrefix)(specifier, value);
74382 }
74383 case "":
74384 case "e":
74385 case "g":
74386 case "p":
74387 case "r": {
74388 if (specifier.precision == null && !isNaN(precision = (0,d3_format__WEBPACK_IMPORTED_MODULE_4__["default"])(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === "e");
74389 break;
74390 }
74391 case "f":
74392 case "%": {
74393 if (specifier.precision == null && !isNaN(precision = (0,d3_format__WEBPACK_IMPORTED_MODULE_5__["default"])(step))) specifier.precision = precision - (specifier.type === "%") * 2;
74394 break;
74395 }
74396 }
74397 return (0,d3_format__WEBPACK_IMPORTED_MODULE_3__.format)(specifier);
74398}
74399
74400
74401/***/ }),
74402
74403/***/ "./node_modules/d3-scale/src/time.js":
74404/*!*******************************************!*\
74405 !*** ./node_modules/d3-scale/src/time.js ***!
74406 \*******************************************/
74407/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74408
74409"use strict";
74410__webpack_require__.r(__webpack_exports__);
74411/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74412/* harmony export */ "calendar": () => (/* binding */ calendar),
74413/* harmony export */ "default": () => (/* binding */ time)
74414/* harmony export */ });
74415/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/ticks.js");
74416/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/year.js");
74417/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/month.js");
74418/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/week.js");
74419/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/day.js");
74420/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/hour.js");
74421/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/minute.js");
74422/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/second.js");
74423/* harmony import */ var d3_time_format__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! d3-time-format */ "./node_modules/d3-time-format/src/defaultLocale.js");
74424/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./continuous.js */ "./node_modules/d3-scale/src/continuous.js");
74425/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init.js */ "./node_modules/d3-scale/src/init.js");
74426/* harmony import */ var _nice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nice.js */ "./node_modules/d3-scale/src/nice.js");
74427
74428
74429
74430
74431
74432
74433function date(t) {
74434 return new Date(t);
74435}
74436
74437function number(t) {
74438 return t instanceof Date ? +t : +new Date(+t);
74439}
74440
74441function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {
74442 var scale = (0,_continuous_js__WEBPACK_IMPORTED_MODULE_0__["default"])(),
74443 invert = scale.invert,
74444 domain = scale.domain;
74445
74446 var formatMillisecond = format(".%L"),
74447 formatSecond = format(":%S"),
74448 formatMinute = format("%I:%M"),
74449 formatHour = format("%I %p"),
74450 formatDay = format("%a %d"),
74451 formatWeek = format("%b %d"),
74452 formatMonth = format("%B"),
74453 formatYear = format("%Y");
74454
74455 function tickFormat(date) {
74456 return (second(date) < date ? formatMillisecond
74457 : minute(date) < date ? formatSecond
74458 : hour(date) < date ? formatMinute
74459 : day(date) < date ? formatHour
74460 : month(date) < date ? (week(date) < date ? formatDay : formatWeek)
74461 : year(date) < date ? formatMonth
74462 : formatYear)(date);
74463 }
74464
74465 scale.invert = function(y) {
74466 return new Date(invert(y));
74467 };
74468
74469 scale.domain = function(_) {
74470 return arguments.length ? domain(Array.from(_, number)) : domain().map(date);
74471 };
74472
74473 scale.ticks = function(interval) {
74474 var d = domain();
74475 return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);
74476 };
74477
74478 scale.tickFormat = function(count, specifier) {
74479 return specifier == null ? tickFormat : format(specifier);
74480 };
74481
74482 scale.nice = function(interval) {
74483 var d = domain();
74484 if (!interval || typeof interval.range !== "function") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);
74485 return interval ? domain((0,_nice_js__WEBPACK_IMPORTED_MODULE_1__["default"])(d, interval)) : scale;
74486 };
74487
74488 scale.copy = function() {
74489 return (0,_continuous_js__WEBPACK_IMPORTED_MODULE_0__.copy)(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));
74490 };
74491
74492 return scale;
74493}
74494
74495function time() {
74496 return _init_js__WEBPACK_IMPORTED_MODULE_2__.initRange.apply(calendar(d3_time__WEBPACK_IMPORTED_MODULE_3__.timeTicks, d3_time__WEBPACK_IMPORTED_MODULE_3__.timeTickInterval, d3_time__WEBPACK_IMPORTED_MODULE_4__["default"], d3_time__WEBPACK_IMPORTED_MODULE_5__["default"], d3_time__WEBPACK_IMPORTED_MODULE_6__.sunday, d3_time__WEBPACK_IMPORTED_MODULE_7__["default"], d3_time__WEBPACK_IMPORTED_MODULE_8__["default"], d3_time__WEBPACK_IMPORTED_MODULE_9__["default"], d3_time__WEBPACK_IMPORTED_MODULE_10__["default"], d3_time_format__WEBPACK_IMPORTED_MODULE_11__.timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);
74497}
74498
74499
74500/***/ }),
74501
74502/***/ "./node_modules/d3-scale/src/utcTime.js":
74503/*!**********************************************!*\
74504 !*** ./node_modules/d3-scale/src/utcTime.js ***!
74505 \**********************************************/
74506/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74507
74508"use strict";
74509__webpack_require__.r(__webpack_exports__);
74510/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74511/* harmony export */ "default": () => (/* binding */ utcTime)
74512/* harmony export */ });
74513/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/ticks.js");
74514/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/utcYear.js");
74515/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/utcMonth.js");
74516/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/utcWeek.js");
74517/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/utcDay.js");
74518/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/utcHour.js");
74519/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/utcMinute.js");
74520/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/second.js");
74521/* harmony import */ var d3_time_format__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! d3-time-format */ "./node_modules/d3-time-format/src/defaultLocale.js");
74522/* harmony import */ var _time_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./time.js */ "./node_modules/d3-scale/src/time.js");
74523/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./init.js */ "./node_modules/d3-scale/src/init.js");
74524
74525
74526
74527
74528
74529function utcTime() {
74530 return _init_js__WEBPACK_IMPORTED_MODULE_0__.initRange.apply((0,_time_js__WEBPACK_IMPORTED_MODULE_1__.calendar)(d3_time__WEBPACK_IMPORTED_MODULE_2__.utcTicks, d3_time__WEBPACK_IMPORTED_MODULE_2__.utcTickInterval, d3_time__WEBPACK_IMPORTED_MODULE_3__["default"], d3_time__WEBPACK_IMPORTED_MODULE_4__["default"], d3_time__WEBPACK_IMPORTED_MODULE_5__.utcSunday, d3_time__WEBPACK_IMPORTED_MODULE_6__["default"], d3_time__WEBPACK_IMPORTED_MODULE_7__["default"], d3_time__WEBPACK_IMPORTED_MODULE_8__["default"], d3_time__WEBPACK_IMPORTED_MODULE_9__["default"], d3_time_format__WEBPACK_IMPORTED_MODULE_10__.utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);
74531}
74532
74533
74534/***/ }),
74535
74536/***/ "./node_modules/d3-selection/src/array.js":
74537/*!************************************************!*\
74538 !*** ./node_modules/d3-selection/src/array.js ***!
74539 \************************************************/
74540/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74541
74542"use strict";
74543__webpack_require__.r(__webpack_exports__);
74544/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74545/* harmony export */ "default": () => (/* binding */ array)
74546/* harmony export */ });
74547// Given something array like (or null), returns something that is strictly an
74548// array. This is used to ensure that array-like objects passed to d3.selectAll
74549// or selection.selectAll are converted into proper arrays when creating a
74550// selection; we don’t ever want to create a selection backed by a live
74551// HTMLCollection or NodeList. However, note that selection.selectAll will use a
74552// static NodeList as a group, since it safely derived from querySelectorAll.
74553function array(x) {
74554 return x == null ? [] : Array.isArray(x) ? x : Array.from(x);
74555}
74556
74557
74558/***/ }),
74559
74560/***/ "./node_modules/d3-selection/src/constant.js":
74561/*!***************************************************!*\
74562 !*** ./node_modules/d3-selection/src/constant.js ***!
74563 \***************************************************/
74564/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74565
74566"use strict";
74567__webpack_require__.r(__webpack_exports__);
74568/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74569/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
74570/* harmony export */ });
74571/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x) {
74572 return function() {
74573 return x;
74574 };
74575}
74576
74577
74578/***/ }),
74579
74580/***/ "./node_modules/d3-selection/src/create.js":
74581/*!*************************************************!*\
74582 !*** ./node_modules/d3-selection/src/create.js ***!
74583 \*************************************************/
74584/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74585
74586"use strict";
74587__webpack_require__.r(__webpack_exports__);
74588/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74589/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
74590/* harmony export */ });
74591/* harmony import */ var _creator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./creator.js */ "./node_modules/d3-selection/src/creator.js");
74592/* harmony import */ var _select_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./select.js */ "./node_modules/d3-selection/src/select.js");
74593
74594
74595
74596/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name) {
74597 return (0,_select_js__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_creator_js__WEBPACK_IMPORTED_MODULE_1__["default"])(name).call(document.documentElement));
74598}
74599
74600
74601/***/ }),
74602
74603/***/ "./node_modules/d3-selection/src/creator.js":
74604/*!**************************************************!*\
74605 !*** ./node_modules/d3-selection/src/creator.js ***!
74606 \**************************************************/
74607/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74608
74609"use strict";
74610__webpack_require__.r(__webpack_exports__);
74611/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74612/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
74613/* harmony export */ });
74614/* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./namespace.js */ "./node_modules/d3-selection/src/namespace.js");
74615/* harmony import */ var _namespaces_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./namespaces.js */ "./node_modules/d3-selection/src/namespaces.js");
74616
74617
74618
74619function creatorInherit(name) {
74620 return function() {
74621 var document = this.ownerDocument,
74622 uri = this.namespaceURI;
74623 return uri === _namespaces_js__WEBPACK_IMPORTED_MODULE_0__.xhtml && document.documentElement.namespaceURI === _namespaces_js__WEBPACK_IMPORTED_MODULE_0__.xhtml
74624 ? document.createElement(name)
74625 : document.createElementNS(uri, name);
74626 };
74627}
74628
74629function creatorFixed(fullname) {
74630 return function() {
74631 return this.ownerDocument.createElementNS(fullname.space, fullname.local);
74632 };
74633}
74634
74635/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name) {
74636 var fullname = (0,_namespace_js__WEBPACK_IMPORTED_MODULE_1__["default"])(name);
74637 return (fullname.local
74638 ? creatorFixed
74639 : creatorInherit)(fullname);
74640}
74641
74642
74643/***/ }),
74644
74645/***/ "./node_modules/d3-selection/src/index.js":
74646/*!************************************************!*\
74647 !*** ./node_modules/d3-selection/src/index.js ***!
74648 \************************************************/
74649/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74650
74651"use strict";
74652__webpack_require__.r(__webpack_exports__);
74653/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74654/* harmony export */ "create": () => (/* reexport safe */ _create_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
74655/* harmony export */ "creator": () => (/* reexport safe */ _creator_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
74656/* harmony export */ "local": () => (/* reexport safe */ _local_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
74657/* harmony export */ "matcher": () => (/* reexport safe */ _matcher_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
74658/* harmony export */ "namespace": () => (/* reexport safe */ _namespace_js__WEBPACK_IMPORTED_MODULE_4__["default"]),
74659/* harmony export */ "namespaces": () => (/* reexport safe */ _namespaces_js__WEBPACK_IMPORTED_MODULE_5__["default"]),
74660/* harmony export */ "pointer": () => (/* reexport safe */ _pointer_js__WEBPACK_IMPORTED_MODULE_6__["default"]),
74661/* harmony export */ "pointers": () => (/* reexport safe */ _pointers_js__WEBPACK_IMPORTED_MODULE_7__["default"]),
74662/* harmony export */ "select": () => (/* reexport safe */ _select_js__WEBPACK_IMPORTED_MODULE_8__["default"]),
74663/* harmony export */ "selectAll": () => (/* reexport safe */ _selectAll_js__WEBPACK_IMPORTED_MODULE_9__["default"]),
74664/* harmony export */ "selection": () => (/* reexport safe */ _selection_index_js__WEBPACK_IMPORTED_MODULE_10__["default"]),
74665/* harmony export */ "selector": () => (/* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_11__["default"]),
74666/* harmony export */ "selectorAll": () => (/* reexport safe */ _selectorAll_js__WEBPACK_IMPORTED_MODULE_12__["default"]),
74667/* harmony export */ "style": () => (/* reexport safe */ _selection_style_js__WEBPACK_IMPORTED_MODULE_13__.styleValue),
74668/* harmony export */ "window": () => (/* reexport safe */ _window_js__WEBPACK_IMPORTED_MODULE_14__["default"])
74669/* harmony export */ });
74670/* harmony import */ var _create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create.js */ "./node_modules/d3-selection/src/create.js");
74671/* harmony import */ var _creator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./creator.js */ "./node_modules/d3-selection/src/creator.js");
74672/* harmony import */ var _local_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./local.js */ "./node_modules/d3-selection/src/local.js");
74673/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./matcher.js */ "./node_modules/d3-selection/src/matcher.js");
74674/* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./namespace.js */ "./node_modules/d3-selection/src/namespace.js");
74675/* harmony import */ var _namespaces_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./namespaces.js */ "./node_modules/d3-selection/src/namespaces.js");
74676/* harmony import */ var _pointer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pointer.js */ "./node_modules/d3-selection/src/pointer.js");
74677/* harmony import */ var _pointers_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./pointers.js */ "./node_modules/d3-selection/src/pointers.js");
74678/* harmony import */ var _select_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./select.js */ "./node_modules/d3-selection/src/select.js");
74679/* harmony import */ var _selectAll_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./selectAll.js */ "./node_modules/d3-selection/src/selectAll.js");
74680/* harmony import */ var _selection_index_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./selection/index.js */ "./node_modules/d3-selection/src/selection/index.js");
74681/* harmony import */ var _selector_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./selector.js */ "./node_modules/d3-selection/src/selector.js");
74682/* harmony import */ var _selectorAll_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./selectorAll.js */ "./node_modules/d3-selection/src/selectorAll.js");
74683/* harmony import */ var _selection_style_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./selection/style.js */ "./node_modules/d3-selection/src/selection/style.js");
74684/* harmony import */ var _window_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./window.js */ "./node_modules/d3-selection/src/window.js");
74685
74686
74687
74688
74689
74690
74691
74692
74693
74694
74695
74696
74697
74698
74699
74700
74701
74702/***/ }),
74703
74704/***/ "./node_modules/d3-selection/src/local.js":
74705/*!************************************************!*\
74706 !*** ./node_modules/d3-selection/src/local.js ***!
74707 \************************************************/
74708/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74709
74710"use strict";
74711__webpack_require__.r(__webpack_exports__);
74712/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74713/* harmony export */ "default": () => (/* binding */ local)
74714/* harmony export */ });
74715var nextId = 0;
74716
74717function local() {
74718 return new Local;
74719}
74720
74721function Local() {
74722 this._ = "@" + (++nextId).toString(36);
74723}
74724
74725Local.prototype = local.prototype = {
74726 constructor: Local,
74727 get: function(node) {
74728 var id = this._;
74729 while (!(id in node)) if (!(node = node.parentNode)) return;
74730 return node[id];
74731 },
74732 set: function(node, value) {
74733 return node[this._] = value;
74734 },
74735 remove: function(node) {
74736 return this._ in node && delete node[this._];
74737 },
74738 toString: function() {
74739 return this._;
74740 }
74741};
74742
74743
74744/***/ }),
74745
74746/***/ "./node_modules/d3-selection/src/matcher.js":
74747/*!**************************************************!*\
74748 !*** ./node_modules/d3-selection/src/matcher.js ***!
74749 \**************************************************/
74750/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74751
74752"use strict";
74753__webpack_require__.r(__webpack_exports__);
74754/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74755/* harmony export */ "childMatcher": () => (/* binding */ childMatcher),
74756/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
74757/* harmony export */ });
74758/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(selector) {
74759 return function() {
74760 return this.matches(selector);
74761 };
74762}
74763
74764function childMatcher(selector) {
74765 return function(node) {
74766 return node.matches(selector);
74767 };
74768}
74769
74770
74771
74772/***/ }),
74773
74774/***/ "./node_modules/d3-selection/src/namespace.js":
74775/*!****************************************************!*\
74776 !*** ./node_modules/d3-selection/src/namespace.js ***!
74777 \****************************************************/
74778/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74779
74780"use strict";
74781__webpack_require__.r(__webpack_exports__);
74782/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74783/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
74784/* harmony export */ });
74785/* harmony import */ var _namespaces_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./namespaces.js */ "./node_modules/d3-selection/src/namespaces.js");
74786
74787
74788/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name) {
74789 var prefix = name += "", i = prefix.indexOf(":");
74790 if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1);
74791 return _namespaces_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProperty(prefix) ? {space: _namespaces_js__WEBPACK_IMPORTED_MODULE_0__["default"][prefix], local: name} : name; // eslint-disable-line no-prototype-builtins
74792}
74793
74794
74795/***/ }),
74796
74797/***/ "./node_modules/d3-selection/src/namespaces.js":
74798/*!*****************************************************!*\
74799 !*** ./node_modules/d3-selection/src/namespaces.js ***!
74800 \*****************************************************/
74801/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74802
74803"use strict";
74804__webpack_require__.r(__webpack_exports__);
74805/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74806/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
74807/* harmony export */ "xhtml": () => (/* binding */ xhtml)
74808/* harmony export */ });
74809var xhtml = "http://www.w3.org/1999/xhtml";
74810
74811/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
74812 svg: "http://www.w3.org/2000/svg",
74813 xhtml: xhtml,
74814 xlink: "http://www.w3.org/1999/xlink",
74815 xml: "http://www.w3.org/XML/1998/namespace",
74816 xmlns: "http://www.w3.org/2000/xmlns/"
74817});
74818
74819
74820/***/ }),
74821
74822/***/ "./node_modules/d3-selection/src/pointer.js":
74823/*!**************************************************!*\
74824 !*** ./node_modules/d3-selection/src/pointer.js ***!
74825 \**************************************************/
74826/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74827
74828"use strict";
74829__webpack_require__.r(__webpack_exports__);
74830/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74831/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
74832/* harmony export */ });
74833/* harmony import */ var _sourceEvent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sourceEvent.js */ "./node_modules/d3-selection/src/sourceEvent.js");
74834
74835
74836/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(event, node) {
74837 event = (0,_sourceEvent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(event);
74838 if (node === undefined) node = event.currentTarget;
74839 if (node) {
74840 var svg = node.ownerSVGElement || node;
74841 if (svg.createSVGPoint) {
74842 var point = svg.createSVGPoint();
74843 point.x = event.clientX, point.y = event.clientY;
74844 point = point.matrixTransform(node.getScreenCTM().inverse());
74845 return [point.x, point.y];
74846 }
74847 if (node.getBoundingClientRect) {
74848 var rect = node.getBoundingClientRect();
74849 return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
74850 }
74851 }
74852 return [event.pageX, event.pageY];
74853}
74854
74855
74856/***/ }),
74857
74858/***/ "./node_modules/d3-selection/src/pointers.js":
74859/*!***************************************************!*\
74860 !*** ./node_modules/d3-selection/src/pointers.js ***!
74861 \***************************************************/
74862/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74863
74864"use strict";
74865__webpack_require__.r(__webpack_exports__);
74866/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74867/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
74868/* harmony export */ });
74869/* harmony import */ var _pointer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pointer.js */ "./node_modules/d3-selection/src/pointer.js");
74870/* harmony import */ var _sourceEvent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sourceEvent.js */ "./node_modules/d3-selection/src/sourceEvent.js");
74871
74872
74873
74874/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(events, node) {
74875 if (events.target) { // i.e., instanceof Event, not TouchList or iterable
74876 events = (0,_sourceEvent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(events);
74877 if (node === undefined) node = events.currentTarget;
74878 events = events.touches || [events];
74879 }
74880 return Array.from(events, event => (0,_pointer_js__WEBPACK_IMPORTED_MODULE_1__["default"])(event, node));
74881}
74882
74883
74884/***/ }),
74885
74886/***/ "./node_modules/d3-selection/src/select.js":
74887/*!*************************************************!*\
74888 !*** ./node_modules/d3-selection/src/select.js ***!
74889 \*************************************************/
74890/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74891
74892"use strict";
74893__webpack_require__.r(__webpack_exports__);
74894/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74895/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
74896/* harmony export */ });
74897/* harmony import */ var _selection_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selection/index.js */ "./node_modules/d3-selection/src/selection/index.js");
74898
74899
74900/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(selector) {
74901 return typeof selector === "string"
74902 ? new _selection_index_js__WEBPACK_IMPORTED_MODULE_0__.Selection([[document.querySelector(selector)]], [document.documentElement])
74903 : new _selection_index_js__WEBPACK_IMPORTED_MODULE_0__.Selection([[selector]], _selection_index_js__WEBPACK_IMPORTED_MODULE_0__.root);
74904}
74905
74906
74907/***/ }),
74908
74909/***/ "./node_modules/d3-selection/src/selectAll.js":
74910/*!****************************************************!*\
74911 !*** ./node_modules/d3-selection/src/selectAll.js ***!
74912 \****************************************************/
74913/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74914
74915"use strict";
74916__webpack_require__.r(__webpack_exports__);
74917/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74918/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
74919/* harmony export */ });
74920/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array.js */ "./node_modules/d3-selection/src/array.js");
74921/* harmony import */ var _selection_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selection/index.js */ "./node_modules/d3-selection/src/selection/index.js");
74922
74923
74924
74925/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(selector) {
74926 return typeof selector === "string"
74927 ? new _selection_index_js__WEBPACK_IMPORTED_MODULE_0__.Selection([document.querySelectorAll(selector)], [document.documentElement])
74928 : new _selection_index_js__WEBPACK_IMPORTED_MODULE_0__.Selection([(0,_array_js__WEBPACK_IMPORTED_MODULE_1__["default"])(selector)], _selection_index_js__WEBPACK_IMPORTED_MODULE_0__.root);
74929}
74930
74931
74932/***/ }),
74933
74934/***/ "./node_modules/d3-selection/src/selection/append.js":
74935/*!***********************************************************!*\
74936 !*** ./node_modules/d3-selection/src/selection/append.js ***!
74937 \***********************************************************/
74938/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74939
74940"use strict";
74941__webpack_require__.r(__webpack_exports__);
74942/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74943/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
74944/* harmony export */ });
74945/* harmony import */ var _creator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../creator.js */ "./node_modules/d3-selection/src/creator.js");
74946
74947
74948/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name) {
74949 var create = typeof name === "function" ? name : (0,_creator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(name);
74950 return this.select(function() {
74951 return this.appendChild(create.apply(this, arguments));
74952 });
74953}
74954
74955
74956/***/ }),
74957
74958/***/ "./node_modules/d3-selection/src/selection/attr.js":
74959/*!*********************************************************!*\
74960 !*** ./node_modules/d3-selection/src/selection/attr.js ***!
74961 \*********************************************************/
74962/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
74963
74964"use strict";
74965__webpack_require__.r(__webpack_exports__);
74966/* harmony export */ __webpack_require__.d(__webpack_exports__, {
74967/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
74968/* harmony export */ });
74969/* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../namespace.js */ "./node_modules/d3-selection/src/namespace.js");
74970
74971
74972function attrRemove(name) {
74973 return function() {
74974 this.removeAttribute(name);
74975 };
74976}
74977
74978function attrRemoveNS(fullname) {
74979 return function() {
74980 this.removeAttributeNS(fullname.space, fullname.local);
74981 };
74982}
74983
74984function attrConstant(name, value) {
74985 return function() {
74986 this.setAttribute(name, value);
74987 };
74988}
74989
74990function attrConstantNS(fullname, value) {
74991 return function() {
74992 this.setAttributeNS(fullname.space, fullname.local, value);
74993 };
74994}
74995
74996function attrFunction(name, value) {
74997 return function() {
74998 var v = value.apply(this, arguments);
74999 if (v == null) this.removeAttribute(name);
75000 else this.setAttribute(name, v);
75001 };
75002}
75003
75004function attrFunctionNS(fullname, value) {
75005 return function() {
75006 var v = value.apply(this, arguments);
75007 if (v == null) this.removeAttributeNS(fullname.space, fullname.local);
75008 else this.setAttributeNS(fullname.space, fullname.local, v);
75009 };
75010}
75011
75012/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value) {
75013 var fullname = (0,_namespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(name);
75014
75015 if (arguments.length < 2) {
75016 var node = this.node();
75017 return fullname.local
75018 ? node.getAttributeNS(fullname.space, fullname.local)
75019 : node.getAttribute(fullname);
75020 }
75021
75022 return this.each((value == null
75023 ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === "function"
75024 ? (fullname.local ? attrFunctionNS : attrFunction)
75025 : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));
75026}
75027
75028
75029/***/ }),
75030
75031/***/ "./node_modules/d3-selection/src/selection/call.js":
75032/*!*********************************************************!*\
75033 !*** ./node_modules/d3-selection/src/selection/call.js ***!
75034 \*********************************************************/
75035/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75036
75037"use strict";
75038__webpack_require__.r(__webpack_exports__);
75039/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75040/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75041/* harmony export */ });
75042/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
75043 var callback = arguments[0];
75044 arguments[0] = this;
75045 callback.apply(null, arguments);
75046 return this;
75047}
75048
75049
75050/***/ }),
75051
75052/***/ "./node_modules/d3-selection/src/selection/classed.js":
75053/*!************************************************************!*\
75054 !*** ./node_modules/d3-selection/src/selection/classed.js ***!
75055 \************************************************************/
75056/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75057
75058"use strict";
75059__webpack_require__.r(__webpack_exports__);
75060/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75061/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75062/* harmony export */ });
75063function classArray(string) {
75064 return string.trim().split(/^|\s+/);
75065}
75066
75067function classList(node) {
75068 return node.classList || new ClassList(node);
75069}
75070
75071function ClassList(node) {
75072 this._node = node;
75073 this._names = classArray(node.getAttribute("class") || "");
75074}
75075
75076ClassList.prototype = {
75077 add: function(name) {
75078 var i = this._names.indexOf(name);
75079 if (i < 0) {
75080 this._names.push(name);
75081 this._node.setAttribute("class", this._names.join(" "));
75082 }
75083 },
75084 remove: function(name) {
75085 var i = this._names.indexOf(name);
75086 if (i >= 0) {
75087 this._names.splice(i, 1);
75088 this._node.setAttribute("class", this._names.join(" "));
75089 }
75090 },
75091 contains: function(name) {
75092 return this._names.indexOf(name) >= 0;
75093 }
75094};
75095
75096function classedAdd(node, names) {
75097 var list = classList(node), i = -1, n = names.length;
75098 while (++i < n) list.add(names[i]);
75099}
75100
75101function classedRemove(node, names) {
75102 var list = classList(node), i = -1, n = names.length;
75103 while (++i < n) list.remove(names[i]);
75104}
75105
75106function classedTrue(names) {
75107 return function() {
75108 classedAdd(this, names);
75109 };
75110}
75111
75112function classedFalse(names) {
75113 return function() {
75114 classedRemove(this, names);
75115 };
75116}
75117
75118function classedFunction(names, value) {
75119 return function() {
75120 (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);
75121 };
75122}
75123
75124/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value) {
75125 var names = classArray(name + "");
75126
75127 if (arguments.length < 2) {
75128 var list = classList(this.node()), i = -1, n = names.length;
75129 while (++i < n) if (!list.contains(names[i])) return false;
75130 return true;
75131 }
75132
75133 return this.each((typeof value === "function"
75134 ? classedFunction : value
75135 ? classedTrue
75136 : classedFalse)(names, value));
75137}
75138
75139
75140/***/ }),
75141
75142/***/ "./node_modules/d3-selection/src/selection/clone.js":
75143/*!**********************************************************!*\
75144 !*** ./node_modules/d3-selection/src/selection/clone.js ***!
75145 \**********************************************************/
75146/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75147
75148"use strict";
75149__webpack_require__.r(__webpack_exports__);
75150/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75151/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75152/* harmony export */ });
75153function selection_cloneShallow() {
75154 var clone = this.cloneNode(false), parent = this.parentNode;
75155 return parent ? parent.insertBefore(clone, this.nextSibling) : clone;
75156}
75157
75158function selection_cloneDeep() {
75159 var clone = this.cloneNode(true), parent = this.parentNode;
75160 return parent ? parent.insertBefore(clone, this.nextSibling) : clone;
75161}
75162
75163/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(deep) {
75164 return this.select(deep ? selection_cloneDeep : selection_cloneShallow);
75165}
75166
75167
75168/***/ }),
75169
75170/***/ "./node_modules/d3-selection/src/selection/data.js":
75171/*!*********************************************************!*\
75172 !*** ./node_modules/d3-selection/src/selection/data.js ***!
75173 \*********************************************************/
75174/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75175
75176"use strict";
75177__webpack_require__.r(__webpack_exports__);
75178/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75179/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75180/* harmony export */ });
75181/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-selection/src/selection/index.js");
75182/* harmony import */ var _enter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./enter.js */ "./node_modules/d3-selection/src/selection/enter.js");
75183/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constant.js */ "./node_modules/d3-selection/src/constant.js");
75184
75185
75186
75187
75188function bindIndex(parent, group, enter, update, exit, data) {
75189 var i = 0,
75190 node,
75191 groupLength = group.length,
75192 dataLength = data.length;
75193
75194 // Put any non-null nodes that fit into update.
75195 // Put any null nodes into enter.
75196 // Put any remaining data into enter.
75197 for (; i < dataLength; ++i) {
75198 if (node = group[i]) {
75199 node.__data__ = data[i];
75200 update[i] = node;
75201 } else {
75202 enter[i] = new _enter_js__WEBPACK_IMPORTED_MODULE_0__.EnterNode(parent, data[i]);
75203 }
75204 }
75205
75206 // Put any non-null nodes that don’t fit into exit.
75207 for (; i < groupLength; ++i) {
75208 if (node = group[i]) {
75209 exit[i] = node;
75210 }
75211 }
75212}
75213
75214function bindKey(parent, group, enter, update, exit, data, key) {
75215 var i,
75216 node,
75217 nodeByKeyValue = new Map,
75218 groupLength = group.length,
75219 dataLength = data.length,
75220 keyValues = new Array(groupLength),
75221 keyValue;
75222
75223 // Compute the key for each node.
75224 // If multiple nodes have the same key, the duplicates are added to exit.
75225 for (i = 0; i < groupLength; ++i) {
75226 if (node = group[i]) {
75227 keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + "";
75228 if (nodeByKeyValue.has(keyValue)) {
75229 exit[i] = node;
75230 } else {
75231 nodeByKeyValue.set(keyValue, node);
75232 }
75233 }
75234 }
75235
75236 // Compute the key for each datum.
75237 // If there a node associated with this key, join and add it to update.
75238 // If there is not (or the key is a duplicate), add it to enter.
75239 for (i = 0; i < dataLength; ++i) {
75240 keyValue = key.call(parent, data[i], i, data) + "";
75241 if (node = nodeByKeyValue.get(keyValue)) {
75242 update[i] = node;
75243 node.__data__ = data[i];
75244 nodeByKeyValue.delete(keyValue);
75245 } else {
75246 enter[i] = new _enter_js__WEBPACK_IMPORTED_MODULE_0__.EnterNode(parent, data[i]);
75247 }
75248 }
75249
75250 // Add any remaining nodes that were not bound to data to exit.
75251 for (i = 0; i < groupLength; ++i) {
75252 if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {
75253 exit[i] = node;
75254 }
75255 }
75256}
75257
75258function datum(node) {
75259 return node.__data__;
75260}
75261
75262/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value, key) {
75263 if (!arguments.length) return Array.from(this, datum);
75264
75265 var bind = key ? bindKey : bindIndex,
75266 parents = this._parents,
75267 groups = this._groups;
75268
75269 if (typeof value !== "function") value = (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value);
75270
75271 for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {
75272 var parent = parents[j],
75273 group = groups[j],
75274 groupLength = group.length,
75275 data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),
75276 dataLength = data.length,
75277 enterGroup = enter[j] = new Array(dataLength),
75278 updateGroup = update[j] = new Array(dataLength),
75279 exitGroup = exit[j] = new Array(groupLength);
75280
75281 bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);
75282
75283 // Now connect the enter nodes to their following update node, such that
75284 // appendChild can insert the materialized enter node before this node,
75285 // rather than at the end of the parent node.
75286 for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {
75287 if (previous = enterGroup[i0]) {
75288 if (i0 >= i1) i1 = i0 + 1;
75289 while (!(next = updateGroup[i1]) && ++i1 < dataLength);
75290 previous._next = next || null;
75291 }
75292 }
75293 }
75294
75295 update = new _index_js__WEBPACK_IMPORTED_MODULE_2__.Selection(update, parents);
75296 update._enter = enter;
75297 update._exit = exit;
75298 return update;
75299}
75300
75301// Given some data, this returns an array-like view of it: an object that
75302// exposes a length property and allows numeric indexing. Note that unlike
75303// selectAll, this isn’t worried about “live” collections because the resulting
75304// array will only be used briefly while data is being bound. (It is possible to
75305// cause the data to change while iterating by using a key function, but please
75306// don’t; we’d rather avoid a gratuitous copy.)
75307function arraylike(data) {
75308 return typeof data === "object" && "length" in data
75309 ? data // Array, TypedArray, NodeList, array-like
75310 : Array.from(data); // Map, Set, iterable, string, or anything else
75311}
75312
75313
75314/***/ }),
75315
75316/***/ "./node_modules/d3-selection/src/selection/datum.js":
75317/*!**********************************************************!*\
75318 !*** ./node_modules/d3-selection/src/selection/datum.js ***!
75319 \**********************************************************/
75320/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75321
75322"use strict";
75323__webpack_require__.r(__webpack_exports__);
75324/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75325/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75326/* harmony export */ });
75327/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) {
75328 return arguments.length
75329 ? this.property("__data__", value)
75330 : this.node().__data__;
75331}
75332
75333
75334/***/ }),
75335
75336/***/ "./node_modules/d3-selection/src/selection/dispatch.js":
75337/*!*************************************************************!*\
75338 !*** ./node_modules/d3-selection/src/selection/dispatch.js ***!
75339 \*************************************************************/
75340/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75341
75342"use strict";
75343__webpack_require__.r(__webpack_exports__);
75344/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75345/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75346/* harmony export */ });
75347/* harmony import */ var _window_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../window.js */ "./node_modules/d3-selection/src/window.js");
75348
75349
75350function dispatchEvent(node, type, params) {
75351 var window = (0,_window_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node),
75352 event = window.CustomEvent;
75353
75354 if (typeof event === "function") {
75355 event = new event(type, params);
75356 } else {
75357 event = window.document.createEvent("Event");
75358 if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;
75359 else event.initEvent(type, false, false);
75360 }
75361
75362 node.dispatchEvent(event);
75363}
75364
75365function dispatchConstant(type, params) {
75366 return function() {
75367 return dispatchEvent(this, type, params);
75368 };
75369}
75370
75371function dispatchFunction(type, params) {
75372 return function() {
75373 return dispatchEvent(this, type, params.apply(this, arguments));
75374 };
75375}
75376
75377/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(type, params) {
75378 return this.each((typeof params === "function"
75379 ? dispatchFunction
75380 : dispatchConstant)(type, params));
75381}
75382
75383
75384/***/ }),
75385
75386/***/ "./node_modules/d3-selection/src/selection/each.js":
75387/*!*********************************************************!*\
75388 !*** ./node_modules/d3-selection/src/selection/each.js ***!
75389 \*********************************************************/
75390/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75391
75392"use strict";
75393__webpack_require__.r(__webpack_exports__);
75394/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75395/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75396/* harmony export */ });
75397/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(callback) {
75398
75399 for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
75400 for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
75401 if (node = group[i]) callback.call(node, node.__data__, i, group);
75402 }
75403 }
75404
75405 return this;
75406}
75407
75408
75409/***/ }),
75410
75411/***/ "./node_modules/d3-selection/src/selection/empty.js":
75412/*!**********************************************************!*\
75413 !*** ./node_modules/d3-selection/src/selection/empty.js ***!
75414 \**********************************************************/
75415/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75416
75417"use strict";
75418__webpack_require__.r(__webpack_exports__);
75419/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75420/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75421/* harmony export */ });
75422/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
75423 return !this.node();
75424}
75425
75426
75427/***/ }),
75428
75429/***/ "./node_modules/d3-selection/src/selection/enter.js":
75430/*!**********************************************************!*\
75431 !*** ./node_modules/d3-selection/src/selection/enter.js ***!
75432 \**********************************************************/
75433/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75434
75435"use strict";
75436__webpack_require__.r(__webpack_exports__);
75437/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75438/* harmony export */ "EnterNode": () => (/* binding */ EnterNode),
75439/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75440/* harmony export */ });
75441/* harmony import */ var _sparse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sparse.js */ "./node_modules/d3-selection/src/selection/sparse.js");
75442/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-selection/src/selection/index.js");
75443
75444
75445
75446/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
75447 return new _index_js__WEBPACK_IMPORTED_MODULE_0__.Selection(this._enter || this._groups.map(_sparse_js__WEBPACK_IMPORTED_MODULE_1__["default"]), this._parents);
75448}
75449
75450function EnterNode(parent, datum) {
75451 this.ownerDocument = parent.ownerDocument;
75452 this.namespaceURI = parent.namespaceURI;
75453 this._next = null;
75454 this._parent = parent;
75455 this.__data__ = datum;
75456}
75457
75458EnterNode.prototype = {
75459 constructor: EnterNode,
75460 appendChild: function(child) { return this._parent.insertBefore(child, this._next); },
75461 insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },
75462 querySelector: function(selector) { return this._parent.querySelector(selector); },
75463 querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }
75464};
75465
75466
75467/***/ }),
75468
75469/***/ "./node_modules/d3-selection/src/selection/exit.js":
75470/*!*********************************************************!*\
75471 !*** ./node_modules/d3-selection/src/selection/exit.js ***!
75472 \*********************************************************/
75473/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75474
75475"use strict";
75476__webpack_require__.r(__webpack_exports__);
75477/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75478/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75479/* harmony export */ });
75480/* harmony import */ var _sparse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sparse.js */ "./node_modules/d3-selection/src/selection/sparse.js");
75481/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-selection/src/selection/index.js");
75482
75483
75484
75485/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
75486 return new _index_js__WEBPACK_IMPORTED_MODULE_0__.Selection(this._exit || this._groups.map(_sparse_js__WEBPACK_IMPORTED_MODULE_1__["default"]), this._parents);
75487}
75488
75489
75490/***/ }),
75491
75492/***/ "./node_modules/d3-selection/src/selection/filter.js":
75493/*!***********************************************************!*\
75494 !*** ./node_modules/d3-selection/src/selection/filter.js ***!
75495 \***********************************************************/
75496/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75497
75498"use strict";
75499__webpack_require__.r(__webpack_exports__);
75500/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75501/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75502/* harmony export */ });
75503/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-selection/src/selection/index.js");
75504/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../matcher.js */ "./node_modules/d3-selection/src/matcher.js");
75505
75506
75507
75508/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(match) {
75509 if (typeof match !== "function") match = (0,_matcher_js__WEBPACK_IMPORTED_MODULE_0__["default"])(match);
75510
75511 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
75512 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
75513 if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
75514 subgroup.push(node);
75515 }
75516 }
75517 }
75518
75519 return new _index_js__WEBPACK_IMPORTED_MODULE_1__.Selection(subgroups, this._parents);
75520}
75521
75522
75523/***/ }),
75524
75525/***/ "./node_modules/d3-selection/src/selection/html.js":
75526/*!*********************************************************!*\
75527 !*** ./node_modules/d3-selection/src/selection/html.js ***!
75528 \*********************************************************/
75529/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75530
75531"use strict";
75532__webpack_require__.r(__webpack_exports__);
75533/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75534/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75535/* harmony export */ });
75536function htmlRemove() {
75537 this.innerHTML = "";
75538}
75539
75540function htmlConstant(value) {
75541 return function() {
75542 this.innerHTML = value;
75543 };
75544}
75545
75546function htmlFunction(value) {
75547 return function() {
75548 var v = value.apply(this, arguments);
75549 this.innerHTML = v == null ? "" : v;
75550 };
75551}
75552
75553/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) {
75554 return arguments.length
75555 ? this.each(value == null
75556 ? htmlRemove : (typeof value === "function"
75557 ? htmlFunction
75558 : htmlConstant)(value))
75559 : this.node().innerHTML;
75560}
75561
75562
75563/***/ }),
75564
75565/***/ "./node_modules/d3-selection/src/selection/index.js":
75566/*!**********************************************************!*\
75567 !*** ./node_modules/d3-selection/src/selection/index.js ***!
75568 \**********************************************************/
75569/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75570
75571"use strict";
75572__webpack_require__.r(__webpack_exports__);
75573/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75574/* harmony export */ "Selection": () => (/* binding */ Selection),
75575/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
75576/* harmony export */ "root": () => (/* binding */ root)
75577/* harmony export */ });
75578/* harmony import */ var _select_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./select.js */ "./node_modules/d3-selection/src/selection/select.js");
75579/* harmony import */ var _selectAll_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./selectAll.js */ "./node_modules/d3-selection/src/selection/selectAll.js");
75580/* harmony import */ var _selectChild_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./selectChild.js */ "./node_modules/d3-selection/src/selection/selectChild.js");
75581/* harmony import */ var _selectChildren_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./selectChildren.js */ "./node_modules/d3-selection/src/selection/selectChildren.js");
75582/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./filter.js */ "./node_modules/d3-selection/src/selection/filter.js");
75583/* harmony import */ var _data_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./data.js */ "./node_modules/d3-selection/src/selection/data.js");
75584/* harmony import */ var _enter_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./enter.js */ "./node_modules/d3-selection/src/selection/enter.js");
75585/* harmony import */ var _exit_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./exit.js */ "./node_modules/d3-selection/src/selection/exit.js");
75586/* harmony import */ var _join_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./join.js */ "./node_modules/d3-selection/src/selection/join.js");
75587/* harmony import */ var _merge_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./merge.js */ "./node_modules/d3-selection/src/selection/merge.js");
75588/* harmony import */ var _order_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./order.js */ "./node_modules/d3-selection/src/selection/order.js");
75589/* harmony import */ var _sort_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./sort.js */ "./node_modules/d3-selection/src/selection/sort.js");
75590/* harmony import */ var _call_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./call.js */ "./node_modules/d3-selection/src/selection/call.js");
75591/* harmony import */ var _nodes_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./nodes.js */ "./node_modules/d3-selection/src/selection/nodes.js");
75592/* harmony import */ var _node_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./node.js */ "./node_modules/d3-selection/src/selection/node.js");
75593/* harmony import */ var _size_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./size.js */ "./node_modules/d3-selection/src/selection/size.js");
75594/* harmony import */ var _empty_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./empty.js */ "./node_modules/d3-selection/src/selection/empty.js");
75595/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./each.js */ "./node_modules/d3-selection/src/selection/each.js");
75596/* harmony import */ var _attr_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./attr.js */ "./node_modules/d3-selection/src/selection/attr.js");
75597/* harmony import */ var _style_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./style.js */ "./node_modules/d3-selection/src/selection/style.js");
75598/* harmony import */ var _property_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./property.js */ "./node_modules/d3-selection/src/selection/property.js");
75599/* harmony import */ var _classed_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./classed.js */ "./node_modules/d3-selection/src/selection/classed.js");
75600/* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./text.js */ "./node_modules/d3-selection/src/selection/text.js");
75601/* harmony import */ var _html_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./html.js */ "./node_modules/d3-selection/src/selection/html.js");
75602/* harmony import */ var _raise_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./raise.js */ "./node_modules/d3-selection/src/selection/raise.js");
75603/* harmony import */ var _lower_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./lower.js */ "./node_modules/d3-selection/src/selection/lower.js");
75604/* harmony import */ var _append_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./append.js */ "./node_modules/d3-selection/src/selection/append.js");
75605/* harmony import */ var _insert_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./insert.js */ "./node_modules/d3-selection/src/selection/insert.js");
75606/* harmony import */ var _remove_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./remove.js */ "./node_modules/d3-selection/src/selection/remove.js");
75607/* harmony import */ var _clone_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./clone.js */ "./node_modules/d3-selection/src/selection/clone.js");
75608/* harmony import */ var _datum_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./datum.js */ "./node_modules/d3-selection/src/selection/datum.js");
75609/* harmony import */ var _on_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./on.js */ "./node_modules/d3-selection/src/selection/on.js");
75610/* harmony import */ var _dispatch_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./dispatch.js */ "./node_modules/d3-selection/src/selection/dispatch.js");
75611/* harmony import */ var _iterator_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./iterator.js */ "./node_modules/d3-selection/src/selection/iterator.js");
75612
75613
75614
75615
75616
75617
75618
75619
75620
75621
75622
75623
75624
75625
75626
75627
75628
75629
75630
75631
75632
75633
75634
75635
75636
75637
75638
75639
75640
75641
75642
75643
75644
75645
75646
75647var root = [null];
75648
75649function Selection(groups, parents) {
75650 this._groups = groups;
75651 this._parents = parents;
75652}
75653
75654function selection() {
75655 return new Selection([[document.documentElement]], root);
75656}
75657
75658function selection_selection() {
75659 return this;
75660}
75661
75662Selection.prototype = selection.prototype = {
75663 constructor: Selection,
75664 select: _select_js__WEBPACK_IMPORTED_MODULE_0__["default"],
75665 selectAll: _selectAll_js__WEBPACK_IMPORTED_MODULE_1__["default"],
75666 selectChild: _selectChild_js__WEBPACK_IMPORTED_MODULE_2__["default"],
75667 selectChildren: _selectChildren_js__WEBPACK_IMPORTED_MODULE_3__["default"],
75668 filter: _filter_js__WEBPACK_IMPORTED_MODULE_4__["default"],
75669 data: _data_js__WEBPACK_IMPORTED_MODULE_5__["default"],
75670 enter: _enter_js__WEBPACK_IMPORTED_MODULE_6__["default"],
75671 exit: _exit_js__WEBPACK_IMPORTED_MODULE_7__["default"],
75672 join: _join_js__WEBPACK_IMPORTED_MODULE_8__["default"],
75673 merge: _merge_js__WEBPACK_IMPORTED_MODULE_9__["default"],
75674 selection: selection_selection,
75675 order: _order_js__WEBPACK_IMPORTED_MODULE_10__["default"],
75676 sort: _sort_js__WEBPACK_IMPORTED_MODULE_11__["default"],
75677 call: _call_js__WEBPACK_IMPORTED_MODULE_12__["default"],
75678 nodes: _nodes_js__WEBPACK_IMPORTED_MODULE_13__["default"],
75679 node: _node_js__WEBPACK_IMPORTED_MODULE_14__["default"],
75680 size: _size_js__WEBPACK_IMPORTED_MODULE_15__["default"],
75681 empty: _empty_js__WEBPACK_IMPORTED_MODULE_16__["default"],
75682 each: _each_js__WEBPACK_IMPORTED_MODULE_17__["default"],
75683 attr: _attr_js__WEBPACK_IMPORTED_MODULE_18__["default"],
75684 style: _style_js__WEBPACK_IMPORTED_MODULE_19__["default"],
75685 property: _property_js__WEBPACK_IMPORTED_MODULE_20__["default"],
75686 classed: _classed_js__WEBPACK_IMPORTED_MODULE_21__["default"],
75687 text: _text_js__WEBPACK_IMPORTED_MODULE_22__["default"],
75688 html: _html_js__WEBPACK_IMPORTED_MODULE_23__["default"],
75689 raise: _raise_js__WEBPACK_IMPORTED_MODULE_24__["default"],
75690 lower: _lower_js__WEBPACK_IMPORTED_MODULE_25__["default"],
75691 append: _append_js__WEBPACK_IMPORTED_MODULE_26__["default"],
75692 insert: _insert_js__WEBPACK_IMPORTED_MODULE_27__["default"],
75693 remove: _remove_js__WEBPACK_IMPORTED_MODULE_28__["default"],
75694 clone: _clone_js__WEBPACK_IMPORTED_MODULE_29__["default"],
75695 datum: _datum_js__WEBPACK_IMPORTED_MODULE_30__["default"],
75696 on: _on_js__WEBPACK_IMPORTED_MODULE_31__["default"],
75697 dispatch: _dispatch_js__WEBPACK_IMPORTED_MODULE_32__["default"],
75698 [Symbol.iterator]: _iterator_js__WEBPACK_IMPORTED_MODULE_33__["default"]
75699};
75700
75701/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (selection);
75702
75703
75704/***/ }),
75705
75706/***/ "./node_modules/d3-selection/src/selection/insert.js":
75707/*!***********************************************************!*\
75708 !*** ./node_modules/d3-selection/src/selection/insert.js ***!
75709 \***********************************************************/
75710/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75711
75712"use strict";
75713__webpack_require__.r(__webpack_exports__);
75714/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75715/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75716/* harmony export */ });
75717/* harmony import */ var _creator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../creator.js */ "./node_modules/d3-selection/src/creator.js");
75718/* harmony import */ var _selector_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selector.js */ "./node_modules/d3-selection/src/selector.js");
75719
75720
75721
75722function constantNull() {
75723 return null;
75724}
75725
75726/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, before) {
75727 var create = typeof name === "function" ? name : (0,_creator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(name),
75728 select = before == null ? constantNull : typeof before === "function" ? before : (0,_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(before);
75729 return this.select(function() {
75730 return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);
75731 });
75732}
75733
75734
75735/***/ }),
75736
75737/***/ "./node_modules/d3-selection/src/selection/iterator.js":
75738/*!*************************************************************!*\
75739 !*** ./node_modules/d3-selection/src/selection/iterator.js ***!
75740 \*************************************************************/
75741/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75742
75743"use strict";
75744__webpack_require__.r(__webpack_exports__);
75745/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75746/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75747/* harmony export */ });
75748/* harmony default export */ function* __WEBPACK_DEFAULT_EXPORT__() {
75749 for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
75750 for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
75751 if (node = group[i]) yield node;
75752 }
75753 }
75754}
75755
75756
75757/***/ }),
75758
75759/***/ "./node_modules/d3-selection/src/selection/join.js":
75760/*!*********************************************************!*\
75761 !*** ./node_modules/d3-selection/src/selection/join.js ***!
75762 \*********************************************************/
75763/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75764
75765"use strict";
75766__webpack_require__.r(__webpack_exports__);
75767/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75768/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75769/* harmony export */ });
75770/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(onenter, onupdate, onexit) {
75771 var enter = this.enter(), update = this, exit = this.exit();
75772 if (typeof onenter === "function") {
75773 enter = onenter(enter);
75774 if (enter) enter = enter.selection();
75775 } else {
75776 enter = enter.append(onenter + "");
75777 }
75778 if (onupdate != null) {
75779 update = onupdate(update);
75780 if (update) update = update.selection();
75781 }
75782 if (onexit == null) exit.remove(); else onexit(exit);
75783 return enter && update ? enter.merge(update).order() : update;
75784}
75785
75786
75787/***/ }),
75788
75789/***/ "./node_modules/d3-selection/src/selection/lower.js":
75790/*!**********************************************************!*\
75791 !*** ./node_modules/d3-selection/src/selection/lower.js ***!
75792 \**********************************************************/
75793/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75794
75795"use strict";
75796__webpack_require__.r(__webpack_exports__);
75797/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75798/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75799/* harmony export */ });
75800function lower() {
75801 if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);
75802}
75803
75804/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
75805 return this.each(lower);
75806}
75807
75808
75809/***/ }),
75810
75811/***/ "./node_modules/d3-selection/src/selection/merge.js":
75812/*!**********************************************************!*\
75813 !*** ./node_modules/d3-selection/src/selection/merge.js ***!
75814 \**********************************************************/
75815/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75816
75817"use strict";
75818__webpack_require__.r(__webpack_exports__);
75819/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75820/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75821/* harmony export */ });
75822/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-selection/src/selection/index.js");
75823
75824
75825/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(context) {
75826 var selection = context.selection ? context.selection() : context;
75827
75828 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) {
75829 for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
75830 if (node = group0[i] || group1[i]) {
75831 merge[i] = node;
75832 }
75833 }
75834 }
75835
75836 for (; j < m0; ++j) {
75837 merges[j] = groups0[j];
75838 }
75839
75840 return new _index_js__WEBPACK_IMPORTED_MODULE_0__.Selection(merges, this._parents);
75841}
75842
75843
75844/***/ }),
75845
75846/***/ "./node_modules/d3-selection/src/selection/node.js":
75847/*!*********************************************************!*\
75848 !*** ./node_modules/d3-selection/src/selection/node.js ***!
75849 \*********************************************************/
75850/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75851
75852"use strict";
75853__webpack_require__.r(__webpack_exports__);
75854/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75855/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75856/* harmony export */ });
75857/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
75858
75859 for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
75860 for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {
75861 var node = group[i];
75862 if (node) return node;
75863 }
75864 }
75865
75866 return null;
75867}
75868
75869
75870/***/ }),
75871
75872/***/ "./node_modules/d3-selection/src/selection/nodes.js":
75873/*!**********************************************************!*\
75874 !*** ./node_modules/d3-selection/src/selection/nodes.js ***!
75875 \**********************************************************/
75876/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75877
75878"use strict";
75879__webpack_require__.r(__webpack_exports__);
75880/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75881/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75882/* harmony export */ });
75883/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
75884 return Array.from(this);
75885}
75886
75887
75888/***/ }),
75889
75890/***/ "./node_modules/d3-selection/src/selection/on.js":
75891/*!*******************************************************!*\
75892 !*** ./node_modules/d3-selection/src/selection/on.js ***!
75893 \*******************************************************/
75894/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75895
75896"use strict";
75897__webpack_require__.r(__webpack_exports__);
75898/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75899/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75900/* harmony export */ });
75901function contextListener(listener) {
75902 return function(event) {
75903 listener.call(this, event, this.__data__);
75904 };
75905}
75906
75907function parseTypenames(typenames) {
75908 return typenames.trim().split(/^|\s+/).map(function(t) {
75909 var name = "", i = t.indexOf(".");
75910 if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
75911 return {type: t, name: name};
75912 });
75913}
75914
75915function onRemove(typename) {
75916 return function() {
75917 var on = this.__on;
75918 if (!on) return;
75919 for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {
75920 if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {
75921 this.removeEventListener(o.type, o.listener, o.options);
75922 } else {
75923 on[++i] = o;
75924 }
75925 }
75926 if (++i) on.length = i;
75927 else delete this.__on;
75928 };
75929}
75930
75931function onAdd(typename, value, options) {
75932 return function() {
75933 var on = this.__on, o, listener = contextListener(value);
75934 if (on) for (var j = 0, m = on.length; j < m; ++j) {
75935 if ((o = on[j]).type === typename.type && o.name === typename.name) {
75936 this.removeEventListener(o.type, o.listener, o.options);
75937 this.addEventListener(o.type, o.listener = listener, o.options = options);
75938 o.value = value;
75939 return;
75940 }
75941 }
75942 this.addEventListener(typename.type, listener, options);
75943 o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};
75944 if (!on) this.__on = [o];
75945 else on.push(o);
75946 };
75947}
75948
75949/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(typename, value, options) {
75950 var typenames = parseTypenames(typename + ""), i, n = typenames.length, t;
75951
75952 if (arguments.length < 2) {
75953 var on = this.node().__on;
75954 if (on) for (var j = 0, m = on.length, o; j < m; ++j) {
75955 for (i = 0, o = on[j]; i < n; ++i) {
75956 if ((t = typenames[i]).type === o.type && t.name === o.name) {
75957 return o.value;
75958 }
75959 }
75960 }
75961 return;
75962 }
75963
75964 on = value ? onAdd : onRemove;
75965 for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));
75966 return this;
75967}
75968
75969
75970/***/ }),
75971
75972/***/ "./node_modules/d3-selection/src/selection/order.js":
75973/*!**********************************************************!*\
75974 !*** ./node_modules/d3-selection/src/selection/order.js ***!
75975 \**********************************************************/
75976/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75977
75978"use strict";
75979__webpack_require__.r(__webpack_exports__);
75980/* harmony export */ __webpack_require__.d(__webpack_exports__, {
75981/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
75982/* harmony export */ });
75983/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
75984
75985 for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {
75986 for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {
75987 if (node = group[i]) {
75988 if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);
75989 next = node;
75990 }
75991 }
75992 }
75993
75994 return this;
75995}
75996
75997
75998/***/ }),
75999
76000/***/ "./node_modules/d3-selection/src/selection/property.js":
76001/*!*************************************************************!*\
76002 !*** ./node_modules/d3-selection/src/selection/property.js ***!
76003 \*************************************************************/
76004/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76005
76006"use strict";
76007__webpack_require__.r(__webpack_exports__);
76008/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76009/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76010/* harmony export */ });
76011function propertyRemove(name) {
76012 return function() {
76013 delete this[name];
76014 };
76015}
76016
76017function propertyConstant(name, value) {
76018 return function() {
76019 this[name] = value;
76020 };
76021}
76022
76023function propertyFunction(name, value) {
76024 return function() {
76025 var v = value.apply(this, arguments);
76026 if (v == null) delete this[name];
76027 else this[name] = v;
76028 };
76029}
76030
76031/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value) {
76032 return arguments.length > 1
76033 ? this.each((value == null
76034 ? propertyRemove : typeof value === "function"
76035 ? propertyFunction
76036 : propertyConstant)(name, value))
76037 : this.node()[name];
76038}
76039
76040
76041/***/ }),
76042
76043/***/ "./node_modules/d3-selection/src/selection/raise.js":
76044/*!**********************************************************!*\
76045 !*** ./node_modules/d3-selection/src/selection/raise.js ***!
76046 \**********************************************************/
76047/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76048
76049"use strict";
76050__webpack_require__.r(__webpack_exports__);
76051/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76052/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76053/* harmony export */ });
76054function raise() {
76055 if (this.nextSibling) this.parentNode.appendChild(this);
76056}
76057
76058/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
76059 return this.each(raise);
76060}
76061
76062
76063/***/ }),
76064
76065/***/ "./node_modules/d3-selection/src/selection/remove.js":
76066/*!***********************************************************!*\
76067 !*** ./node_modules/d3-selection/src/selection/remove.js ***!
76068 \***********************************************************/
76069/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76070
76071"use strict";
76072__webpack_require__.r(__webpack_exports__);
76073/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76074/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76075/* harmony export */ });
76076function remove() {
76077 var parent = this.parentNode;
76078 if (parent) parent.removeChild(this);
76079}
76080
76081/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
76082 return this.each(remove);
76083}
76084
76085
76086/***/ }),
76087
76088/***/ "./node_modules/d3-selection/src/selection/select.js":
76089/*!***********************************************************!*\
76090 !*** ./node_modules/d3-selection/src/selection/select.js ***!
76091 \***********************************************************/
76092/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76093
76094"use strict";
76095__webpack_require__.r(__webpack_exports__);
76096/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76097/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76098/* harmony export */ });
76099/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-selection/src/selection/index.js");
76100/* harmony import */ var _selector_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../selector.js */ "./node_modules/d3-selection/src/selector.js");
76101
76102
76103
76104/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(select) {
76105 if (typeof select !== "function") select = (0,_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(select);
76106
76107 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
76108 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
76109 if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
76110 if ("__data__" in node) subnode.__data__ = node.__data__;
76111 subgroup[i] = subnode;
76112 }
76113 }
76114 }
76115
76116 return new _index_js__WEBPACK_IMPORTED_MODULE_1__.Selection(subgroups, this._parents);
76117}
76118
76119
76120/***/ }),
76121
76122/***/ "./node_modules/d3-selection/src/selection/selectAll.js":
76123/*!**************************************************************!*\
76124 !*** ./node_modules/d3-selection/src/selection/selectAll.js ***!
76125 \**************************************************************/
76126/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76127
76128"use strict";
76129__webpack_require__.r(__webpack_exports__);
76130/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76131/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76132/* harmony export */ });
76133/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-selection/src/selection/index.js");
76134/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../array.js */ "./node_modules/d3-selection/src/array.js");
76135/* harmony import */ var _selectorAll_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selectorAll.js */ "./node_modules/d3-selection/src/selectorAll.js");
76136
76137
76138
76139
76140function arrayAll(select) {
76141 return function() {
76142 return (0,_array_js__WEBPACK_IMPORTED_MODULE_0__["default"])(select.apply(this, arguments));
76143 };
76144}
76145
76146/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(select) {
76147 if (typeof select === "function") select = arrayAll(select);
76148 else select = (0,_selectorAll_js__WEBPACK_IMPORTED_MODULE_1__["default"])(select);
76149
76150 for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
76151 for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
76152 if (node = group[i]) {
76153 subgroups.push(select.call(node, node.__data__, i, group));
76154 parents.push(node);
76155 }
76156 }
76157 }
76158
76159 return new _index_js__WEBPACK_IMPORTED_MODULE_2__.Selection(subgroups, parents);
76160}
76161
76162
76163/***/ }),
76164
76165/***/ "./node_modules/d3-selection/src/selection/selectChild.js":
76166/*!****************************************************************!*\
76167 !*** ./node_modules/d3-selection/src/selection/selectChild.js ***!
76168 \****************************************************************/
76169/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76170
76171"use strict";
76172__webpack_require__.r(__webpack_exports__);
76173/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76174/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76175/* harmony export */ });
76176/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../matcher.js */ "./node_modules/d3-selection/src/matcher.js");
76177
76178
76179var find = Array.prototype.find;
76180
76181function childFind(match) {
76182 return function() {
76183 return find.call(this.children, match);
76184 };
76185}
76186
76187function childFirst() {
76188 return this.firstElementChild;
76189}
76190
76191/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(match) {
76192 return this.select(match == null ? childFirst
76193 : childFind(typeof match === "function" ? match : (0,_matcher_js__WEBPACK_IMPORTED_MODULE_0__.childMatcher)(match)));
76194}
76195
76196
76197/***/ }),
76198
76199/***/ "./node_modules/d3-selection/src/selection/selectChildren.js":
76200/*!*******************************************************************!*\
76201 !*** ./node_modules/d3-selection/src/selection/selectChildren.js ***!
76202 \*******************************************************************/
76203/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76204
76205"use strict";
76206__webpack_require__.r(__webpack_exports__);
76207/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76208/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76209/* harmony export */ });
76210/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../matcher.js */ "./node_modules/d3-selection/src/matcher.js");
76211
76212
76213var filter = Array.prototype.filter;
76214
76215function children() {
76216 return Array.from(this.children);
76217}
76218
76219function childrenFilter(match) {
76220 return function() {
76221 return filter.call(this.children, match);
76222 };
76223}
76224
76225/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(match) {
76226 return this.selectAll(match == null ? children
76227 : childrenFilter(typeof match === "function" ? match : (0,_matcher_js__WEBPACK_IMPORTED_MODULE_0__.childMatcher)(match)));
76228}
76229
76230
76231/***/ }),
76232
76233/***/ "./node_modules/d3-selection/src/selection/size.js":
76234/*!*********************************************************!*\
76235 !*** ./node_modules/d3-selection/src/selection/size.js ***!
76236 \*********************************************************/
76237/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76238
76239"use strict";
76240__webpack_require__.r(__webpack_exports__);
76241/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76242/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76243/* harmony export */ });
76244/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
76245 let size = 0;
76246 for (const node of this) ++size; // eslint-disable-line no-unused-vars
76247 return size;
76248}
76249
76250
76251/***/ }),
76252
76253/***/ "./node_modules/d3-selection/src/selection/sort.js":
76254/*!*********************************************************!*\
76255 !*** ./node_modules/d3-selection/src/selection/sort.js ***!
76256 \*********************************************************/
76257/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76258
76259"use strict";
76260__webpack_require__.r(__webpack_exports__);
76261/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76262/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76263/* harmony export */ });
76264/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-selection/src/selection/index.js");
76265
76266
76267/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(compare) {
76268 if (!compare) compare = ascending;
76269
76270 function compareNode(a, b) {
76271 return a && b ? compare(a.__data__, b.__data__) : !a - !b;
76272 }
76273
76274 for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
76275 for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
76276 if (node = group[i]) {
76277 sortgroup[i] = node;
76278 }
76279 }
76280 sortgroup.sort(compareNode);
76281 }
76282
76283 return new _index_js__WEBPACK_IMPORTED_MODULE_0__.Selection(sortgroups, this._parents).order();
76284}
76285
76286function ascending(a, b) {
76287 return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
76288}
76289
76290
76291/***/ }),
76292
76293/***/ "./node_modules/d3-selection/src/selection/sparse.js":
76294/*!***********************************************************!*\
76295 !*** ./node_modules/d3-selection/src/selection/sparse.js ***!
76296 \***********************************************************/
76297/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76298
76299"use strict";
76300__webpack_require__.r(__webpack_exports__);
76301/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76302/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76303/* harmony export */ });
76304/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(update) {
76305 return new Array(update.length);
76306}
76307
76308
76309/***/ }),
76310
76311/***/ "./node_modules/d3-selection/src/selection/style.js":
76312/*!**********************************************************!*\
76313 !*** ./node_modules/d3-selection/src/selection/style.js ***!
76314 \**********************************************************/
76315/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76316
76317"use strict";
76318__webpack_require__.r(__webpack_exports__);
76319/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76320/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
76321/* harmony export */ "styleValue": () => (/* binding */ styleValue)
76322/* harmony export */ });
76323/* harmony import */ var _window_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../window.js */ "./node_modules/d3-selection/src/window.js");
76324
76325
76326function styleRemove(name) {
76327 return function() {
76328 this.style.removeProperty(name);
76329 };
76330}
76331
76332function styleConstant(name, value, priority) {
76333 return function() {
76334 this.style.setProperty(name, value, priority);
76335 };
76336}
76337
76338function styleFunction(name, value, priority) {
76339 return function() {
76340 var v = value.apply(this, arguments);
76341 if (v == null) this.style.removeProperty(name);
76342 else this.style.setProperty(name, v, priority);
76343 };
76344}
76345
76346/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value, priority) {
76347 return arguments.length > 1
76348 ? this.each((value == null
76349 ? styleRemove : typeof value === "function"
76350 ? styleFunction
76351 : styleConstant)(name, value, priority == null ? "" : priority))
76352 : styleValue(this.node(), name);
76353}
76354
76355function styleValue(node, name) {
76356 return node.style.getPropertyValue(name)
76357 || (0,_window_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node).getComputedStyle(node, null).getPropertyValue(name);
76358}
76359
76360
76361/***/ }),
76362
76363/***/ "./node_modules/d3-selection/src/selection/text.js":
76364/*!*********************************************************!*\
76365 !*** ./node_modules/d3-selection/src/selection/text.js ***!
76366 \*********************************************************/
76367/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76368
76369"use strict";
76370__webpack_require__.r(__webpack_exports__);
76371/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76372/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76373/* harmony export */ });
76374function textRemove() {
76375 this.textContent = "";
76376}
76377
76378function textConstant(value) {
76379 return function() {
76380 this.textContent = value;
76381 };
76382}
76383
76384function textFunction(value) {
76385 return function() {
76386 var v = value.apply(this, arguments);
76387 this.textContent = v == null ? "" : v;
76388 };
76389}
76390
76391/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) {
76392 return arguments.length
76393 ? this.each(value == null
76394 ? textRemove : (typeof value === "function"
76395 ? textFunction
76396 : textConstant)(value))
76397 : this.node().textContent;
76398}
76399
76400
76401/***/ }),
76402
76403/***/ "./node_modules/d3-selection/src/selector.js":
76404/*!***************************************************!*\
76405 !*** ./node_modules/d3-selection/src/selector.js ***!
76406 \***************************************************/
76407/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76408
76409"use strict";
76410__webpack_require__.r(__webpack_exports__);
76411/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76412/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76413/* harmony export */ });
76414function none() {}
76415
76416/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(selector) {
76417 return selector == null ? none : function() {
76418 return this.querySelector(selector);
76419 };
76420}
76421
76422
76423/***/ }),
76424
76425/***/ "./node_modules/d3-selection/src/selectorAll.js":
76426/*!******************************************************!*\
76427 !*** ./node_modules/d3-selection/src/selectorAll.js ***!
76428 \******************************************************/
76429/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76430
76431"use strict";
76432__webpack_require__.r(__webpack_exports__);
76433/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76434/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76435/* harmony export */ });
76436function empty() {
76437 return [];
76438}
76439
76440/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(selector) {
76441 return selector == null ? empty : function() {
76442 return this.querySelectorAll(selector);
76443 };
76444}
76445
76446
76447/***/ }),
76448
76449/***/ "./node_modules/d3-selection/src/sourceEvent.js":
76450/*!******************************************************!*\
76451 !*** ./node_modules/d3-selection/src/sourceEvent.js ***!
76452 \******************************************************/
76453/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76454
76455"use strict";
76456__webpack_require__.r(__webpack_exports__);
76457/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76458/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76459/* harmony export */ });
76460/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(event) {
76461 let sourceEvent;
76462 while (sourceEvent = event.sourceEvent) event = sourceEvent;
76463 return event;
76464}
76465
76466
76467/***/ }),
76468
76469/***/ "./node_modules/d3-selection/src/window.js":
76470/*!*************************************************!*\
76471 !*** ./node_modules/d3-selection/src/window.js ***!
76472 \*************************************************/
76473/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76474
76475"use strict";
76476__webpack_require__.r(__webpack_exports__);
76477/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76478/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76479/* harmony export */ });
76480/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(node) {
76481 return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node
76482 || (node.document && node) // node is a Window
76483 || node.defaultView; // node is a Document
76484}
76485
76486
76487/***/ }),
76488
76489/***/ "./node_modules/d3-shape/src/arc.js":
76490/*!******************************************!*\
76491 !*** ./node_modules/d3-shape/src/arc.js ***!
76492 \******************************************/
76493/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76494
76495"use strict";
76496__webpack_require__.r(__webpack_exports__);
76497/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76498/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76499/* harmony export */ });
76500/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/path.js");
76501/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-shape/src/constant.js");
76502/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-shape/src/math.js");
76503
76504
76505
76506
76507function arcInnerRadius(d) {
76508 return d.innerRadius;
76509}
76510
76511function arcOuterRadius(d) {
76512 return d.outerRadius;
76513}
76514
76515function arcStartAngle(d) {
76516 return d.startAngle;
76517}
76518
76519function arcEndAngle(d) {
76520 return d.endAngle;
76521}
76522
76523function arcPadAngle(d) {
76524 return d && d.padAngle; // Note: optional!
76525}
76526
76527function intersect(x0, y0, x1, y1, x2, y2, x3, y3) {
76528 var x10 = x1 - x0, y10 = y1 - y0,
76529 x32 = x3 - x2, y32 = y3 - y2,
76530 t = y32 * x10 - x32 * y10;
76531 if (t * t < _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) return;
76532 t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;
76533 return [x0 + t * x10, y0 + t * y10];
76534}
76535
76536// Compute perpendicular offset line of length rc.
76537// http://mathworld.wolfram.com/Circle-LineIntersection.html
76538function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
76539 var x01 = x0 - x1,
76540 y01 = y0 - y1,
76541 lo = (cw ? rc : -rc) / (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)(x01 * x01 + y01 * y01),
76542 ox = lo * y01,
76543 oy = -lo * x01,
76544 x11 = x0 + ox,
76545 y11 = y0 + oy,
76546 x10 = x1 + ox,
76547 y10 = y1 + oy,
76548 x00 = (x11 + x10) / 2,
76549 y00 = (y11 + y10) / 2,
76550 dx = x10 - x11,
76551 dy = y10 - y11,
76552 d2 = dx * dx + dy * dy,
76553 r = r1 - rc,
76554 D = x11 * y10 - x10 * y11,
76555 d = (dy < 0 ? -1 : 1) * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.max)(0, r * r * d2 - D * D)),
76556 cx0 = (D * dy - dx * d) / d2,
76557 cy0 = (-D * dx - dy * d) / d2,
76558 cx1 = (D * dy + dx * d) / d2,
76559 cy1 = (-D * dx + dy * d) / d2,
76560 dx0 = cx0 - x00,
76561 dy0 = cy0 - y00,
76562 dx1 = cx1 - x00,
76563 dy1 = cy1 - y00;
76564
76565 // Pick the closer of the two intersection points.
76566 // TODO Is there a faster way to determine which intersection to use?
76567 if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;
76568
76569 return {
76570 cx: cx0,
76571 cy: cy0,
76572 x01: -ox,
76573 y01: -oy,
76574 x11: cx0 * (r1 / r - 1),
76575 y11: cy0 * (r1 / r - 1)
76576 };
76577}
76578
76579/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
76580 var innerRadius = arcInnerRadius,
76581 outerRadius = arcOuterRadius,
76582 cornerRadius = (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(0),
76583 padRadius = null,
76584 startAngle = arcStartAngle,
76585 endAngle = arcEndAngle,
76586 padAngle = arcPadAngle,
76587 context = null;
76588
76589 function arc() {
76590 var buffer,
76591 r,
76592 r0 = +innerRadius.apply(this, arguments),
76593 r1 = +outerRadius.apply(this, arguments),
76594 a0 = startAngle.apply(this, arguments) - _math_js__WEBPACK_IMPORTED_MODULE_0__.halfPi,
76595 a1 = endAngle.apply(this, arguments) - _math_js__WEBPACK_IMPORTED_MODULE_0__.halfPi,
76596 da = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(a1 - a0),
76597 cw = a1 > a0;
76598
76599 if (!context) context = buffer = (0,d3_path__WEBPACK_IMPORTED_MODULE_2__["default"])();
76600
76601 // Ensure that the outer radius is always larger than the inner radius.
76602 if (r1 < r0) r = r1, r1 = r0, r0 = r;
76603
76604 // Is it a point?
76605 if (!(r1 > _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon)) context.moveTo(0, 0);
76606
76607 // Or is it a circle or annulus?
76608 else if (da > _math_js__WEBPACK_IMPORTED_MODULE_0__.tau - _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) {
76609 context.moveTo(r1 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(a0), r1 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(a0));
76610 context.arc(0, 0, r1, a0, a1, !cw);
76611 if (r0 > _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) {
76612 context.moveTo(r0 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(a1), r0 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(a1));
76613 context.arc(0, 0, r0, a1, a0, cw);
76614 }
76615 }
76616
76617 // Or is it a circular or annular sector?
76618 else {
76619 var a01 = a0,
76620 a11 = a1,
76621 a00 = a0,
76622 a10 = a1,
76623 da0 = da,
76624 da1 = da,
76625 ap = padAngle.apply(this, arguments) / 2,
76626 rp = (ap > _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) && (padRadius ? +padRadius.apply(this, arguments) : (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)(r0 * r0 + r1 * r1)),
76627 rc = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.min)((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.abs)(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),
76628 rc0 = rc,
76629 rc1 = rc,
76630 t0,
76631 t1;
76632
76633 // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.
76634 if (rp > _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) {
76635 var p0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.asin)(rp / r0 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(ap)),
76636 p1 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.asin)(rp / r1 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(ap));
76637 if ((da0 -= p0 * 2) > _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;
76638 else da0 = 0, a00 = a10 = (a0 + a1) / 2;
76639 if ((da1 -= p1 * 2) > _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;
76640 else da1 = 0, a01 = a11 = (a0 + a1) / 2;
76641 }
76642
76643 var x01 = r1 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(a01),
76644 y01 = r1 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(a01),
76645 x10 = r0 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(a10),
76646 y10 = r0 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(a10);
76647
76648 // Apply rounded corners?
76649 if (rc > _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) {
76650 var x11 = r1 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(a11),
76651 y11 = r1 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(a11),
76652 x00 = r0 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(a00),
76653 y00 = r0 * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(a00),
76654 oc;
76655
76656 // Restrict the corner radius according to the sector angle.
76657 if (da < _math_js__WEBPACK_IMPORTED_MODULE_0__.pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {
76658 var ax = x01 - oc[0],
76659 ay = y01 - oc[1],
76660 bx = x11 - oc[0],
76661 by = y11 - oc[1],
76662 kc = 1 / (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.acos)((ax * bx + ay * by) / ((0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)(ax * ax + ay * ay) * (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)(bx * bx + by * by))) / 2),
76663 lc = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sqrt)(oc[0] * oc[0] + oc[1] * oc[1]);
76664 rc0 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.min)(rc, (r0 - lc) / (kc - 1));
76665 rc1 = (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.min)(rc, (r1 - lc) / (kc + 1));
76666 }
76667 }
76668
76669 // Is the sector collapsed to a line?
76670 if (!(da1 > _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon)) context.moveTo(x01, y01);
76671
76672 // Does the sector’s outer ring have rounded corners?
76673 else if (rc1 > _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) {
76674 t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
76675 t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);
76676
76677 context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);
76678
76679 // Have the corners merged?
76680 if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(t0.y01, t0.x01), (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(t1.y01, t1.x01), !cw);
76681
76682 // Otherwise, draw the two corners and the ring.
76683 else {
76684 context.arc(t0.cx, t0.cy, rc1, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(t0.y01, t0.x01), (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(t0.y11, t0.x11), !cw);
76685 context.arc(0, 0, r1, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(t0.cy + t0.y11, t0.cx + t0.x11), (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(t1.cy + t1.y11, t1.cx + t1.x11), !cw);
76686 context.arc(t1.cx, t1.cy, rc1, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(t1.y11, t1.x11), (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(t1.y01, t1.x01), !cw);
76687 }
76688 }
76689
76690 // Or is the outer ring just a circular arc?
76691 else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);
76692
76693 // Is there no inner ring, and it’s a circular sector?
76694 // Or perhaps it’s an annular sector collapsed due to padding?
76695 if (!(r0 > _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) || !(da0 > _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon)) context.lineTo(x10, y10);
76696
76697 // Does the sector’s inner ring (or point) have rounded corners?
76698 else if (rc0 > _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) {
76699 t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
76700 t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);
76701
76702 context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);
76703
76704 // Have the corners merged?
76705 if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(t0.y01, t0.x01), (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(t1.y01, t1.x01), !cw);
76706
76707 // Otherwise, draw the two corners and the ring.
76708 else {
76709 context.arc(t0.cx, t0.cy, rc0, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(t0.y01, t0.x01), (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(t0.y11, t0.x11), !cw);
76710 context.arc(0, 0, r0, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(t0.cy + t0.y11, t0.cx + t0.x11), (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(t1.cy + t1.y11, t1.cx + t1.x11), cw);
76711 context.arc(t1.cx, t1.cy, rc0, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(t1.y11, t1.x11), (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.atan2)(t1.y01, t1.x01), !cw);
76712 }
76713 }
76714
76715 // Or is the inner ring just a circular arc?
76716 else context.arc(0, 0, r0, a10, a00, cw);
76717 }
76718
76719 context.closePath();
76720
76721 if (buffer) return context = null, buffer + "" || null;
76722 }
76723
76724 arc.centroid = function() {
76725 var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,
76726 a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - _math_js__WEBPACK_IMPORTED_MODULE_0__.pi / 2;
76727 return [(0,_math_js__WEBPACK_IMPORTED_MODULE_0__.cos)(a) * r, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.sin)(a) * r];
76728 };
76729
76730 arc.innerRadius = function(_) {
76731 return arguments.length ? (innerRadius = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : innerRadius;
76732 };
76733
76734 arc.outerRadius = function(_) {
76735 return arguments.length ? (outerRadius = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : outerRadius;
76736 };
76737
76738 arc.cornerRadius = function(_) {
76739 return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : cornerRadius;
76740 };
76741
76742 arc.padRadius = function(_) {
76743 return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : padRadius;
76744 };
76745
76746 arc.startAngle = function(_) {
76747 return arguments.length ? (startAngle = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : startAngle;
76748 };
76749
76750 arc.endAngle = function(_) {
76751 return arguments.length ? (endAngle = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : endAngle;
76752 };
76753
76754 arc.padAngle = function(_) {
76755 return arguments.length ? (padAngle = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), arc) : padAngle;
76756 };
76757
76758 arc.context = function(_) {
76759 return arguments.length ? ((context = _ == null ? null : _), arc) : context;
76760 };
76761
76762 return arc;
76763}
76764
76765
76766/***/ }),
76767
76768/***/ "./node_modules/d3-shape/src/area.js":
76769/*!*******************************************!*\
76770 !*** ./node_modules/d3-shape/src/area.js ***!
76771 \*******************************************/
76772/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76773
76774"use strict";
76775__webpack_require__.r(__webpack_exports__);
76776/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76777/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76778/* harmony export */ });
76779/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/path.js");
76780/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./array.js */ "./node_modules/d3-shape/src/array.js");
76781/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-shape/src/constant.js");
76782/* harmony import */ var _curve_linear_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curve/linear.js */ "./node_modules/d3-shape/src/curve/linear.js");
76783/* harmony import */ var _line_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./line.js */ "./node_modules/d3-shape/src/line.js");
76784/* harmony import */ var _point_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./point.js */ "./node_modules/d3-shape/src/point.js");
76785
76786
76787
76788
76789
76790
76791
76792/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x0, y0, y1) {
76793 var x1 = null,
76794 defined = (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(true),
76795 context = null,
76796 curve = _curve_linear_js__WEBPACK_IMPORTED_MODULE_1__["default"],
76797 output = null;
76798
76799 x0 = typeof x0 === "function" ? x0 : (x0 === undefined) ? _point_js__WEBPACK_IMPORTED_MODULE_2__.x : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+x0);
76800 y0 = typeof y0 === "function" ? y0 : (y0 === undefined) ? (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(0) : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+y0);
76801 y1 = typeof y1 === "function" ? y1 : (y1 === undefined) ? _point_js__WEBPACK_IMPORTED_MODULE_2__.y : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+y1);
76802
76803 function area(data) {
76804 var i,
76805 j,
76806 k,
76807 n = (data = (0,_array_js__WEBPACK_IMPORTED_MODULE_3__["default"])(data)).length,
76808 d,
76809 defined0 = false,
76810 buffer,
76811 x0z = new Array(n),
76812 y0z = new Array(n);
76813
76814 if (context == null) output = curve(buffer = (0,d3_path__WEBPACK_IMPORTED_MODULE_4__["default"])());
76815
76816 for (i = 0; i <= n; ++i) {
76817 if (!(i < n && defined(d = data[i], i, data)) === defined0) {
76818 if (defined0 = !defined0) {
76819 j = i;
76820 output.areaStart();
76821 output.lineStart();
76822 } else {
76823 output.lineEnd();
76824 output.lineStart();
76825 for (k = i - 1; k >= j; --k) {
76826 output.point(x0z[k], y0z[k]);
76827 }
76828 output.lineEnd();
76829 output.areaEnd();
76830 }
76831 }
76832 if (defined0) {
76833 x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);
76834 output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);
76835 }
76836 }
76837
76838 if (buffer) return output = null, buffer + "" || null;
76839 }
76840
76841 function arealine() {
76842 return (0,_line_js__WEBPACK_IMPORTED_MODULE_5__["default"])().defined(defined).curve(curve).context(context);
76843 }
76844
76845 area.x = function(_) {
76846 return arguments.length ? (x0 = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), x1 = null, area) : x0;
76847 };
76848
76849 area.x0 = function(_) {
76850 return arguments.length ? (x0 = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), area) : x0;
76851 };
76852
76853 area.x1 = function(_) {
76854 return arguments.length ? (x1 = _ == null ? null : typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), area) : x1;
76855 };
76856
76857 area.y = function(_) {
76858 return arguments.length ? (y0 = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), y1 = null, area) : y0;
76859 };
76860
76861 area.y0 = function(_) {
76862 return arguments.length ? (y0 = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), area) : y0;
76863 };
76864
76865 area.y1 = function(_) {
76866 return arguments.length ? (y1 = _ == null ? null : typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), area) : y1;
76867 };
76868
76869 area.lineX0 =
76870 area.lineY0 = function() {
76871 return arealine().x(x0).y(y0);
76872 };
76873
76874 area.lineY1 = function() {
76875 return arealine().x(x0).y(y1);
76876 };
76877
76878 area.lineX1 = function() {
76879 return arealine().x(x1).y(y0);
76880 };
76881
76882 area.defined = function(_) {
76883 return arguments.length ? (defined = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(!!_), area) : defined;
76884 };
76885
76886 area.curve = function(_) {
76887 return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;
76888 };
76889
76890 area.context = function(_) {
76891 return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;
76892 };
76893
76894 return area;
76895}
76896
76897
76898/***/ }),
76899
76900/***/ "./node_modules/d3-shape/src/areaRadial.js":
76901/*!*************************************************!*\
76902 !*** ./node_modules/d3-shape/src/areaRadial.js ***!
76903 \*************************************************/
76904/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76905
76906"use strict";
76907__webpack_require__.r(__webpack_exports__);
76908/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76909/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76910/* harmony export */ });
76911/* harmony import */ var _curve_radial_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curve/radial.js */ "./node_modules/d3-shape/src/curve/radial.js");
76912/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./area.js */ "./node_modules/d3-shape/src/area.js");
76913/* harmony import */ var _lineRadial_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lineRadial.js */ "./node_modules/d3-shape/src/lineRadial.js");
76914
76915
76916
76917
76918/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
76919 var a = (0,_area_js__WEBPACK_IMPORTED_MODULE_0__["default"])().curve(_curve_radial_js__WEBPACK_IMPORTED_MODULE_1__.curveRadialLinear),
76920 c = a.curve,
76921 x0 = a.lineX0,
76922 x1 = a.lineX1,
76923 y0 = a.lineY0,
76924 y1 = a.lineY1;
76925
76926 a.angle = a.x, delete a.x;
76927 a.startAngle = a.x0, delete a.x0;
76928 a.endAngle = a.x1, delete a.x1;
76929 a.radius = a.y, delete a.y;
76930 a.innerRadius = a.y0, delete a.y0;
76931 a.outerRadius = a.y1, delete a.y1;
76932 a.lineStartAngle = function() { return (0,_lineRadial_js__WEBPACK_IMPORTED_MODULE_2__.lineRadial)(x0()); }, delete a.lineX0;
76933 a.lineEndAngle = function() { return (0,_lineRadial_js__WEBPACK_IMPORTED_MODULE_2__.lineRadial)(x1()); }, delete a.lineX1;
76934 a.lineInnerRadius = function() { return (0,_lineRadial_js__WEBPACK_IMPORTED_MODULE_2__.lineRadial)(y0()); }, delete a.lineY0;
76935 a.lineOuterRadius = function() { return (0,_lineRadial_js__WEBPACK_IMPORTED_MODULE_2__.lineRadial)(y1()); }, delete a.lineY1;
76936
76937 a.curve = function(_) {
76938 return arguments.length ? c((0,_curve_radial_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_)) : c()._curve;
76939 };
76940
76941 return a;
76942}
76943
76944
76945/***/ }),
76946
76947/***/ "./node_modules/d3-shape/src/array.js":
76948/*!********************************************!*\
76949 !*** ./node_modules/d3-shape/src/array.js ***!
76950 \********************************************/
76951/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76952
76953"use strict";
76954__webpack_require__.r(__webpack_exports__);
76955/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76956/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
76957/* harmony export */ "slice": () => (/* binding */ slice)
76958/* harmony export */ });
76959var slice = Array.prototype.slice;
76960
76961/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x) {
76962 return typeof x === "object" && "length" in x
76963 ? x // Array, TypedArray, NodeList, array-like
76964 : Array.from(x); // Map, Set, iterable, string, or anything else
76965}
76966
76967
76968/***/ }),
76969
76970/***/ "./node_modules/d3-shape/src/constant.js":
76971/*!***********************************************!*\
76972 !*** ./node_modules/d3-shape/src/constant.js ***!
76973 \***********************************************/
76974/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76975
76976"use strict";
76977__webpack_require__.r(__webpack_exports__);
76978/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76979/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
76980/* harmony export */ });
76981/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x) {
76982 return function constant() {
76983 return x;
76984 };
76985}
76986
76987
76988/***/ }),
76989
76990/***/ "./node_modules/d3-shape/src/curve/basis.js":
76991/*!**************************************************!*\
76992 !*** ./node_modules/d3-shape/src/curve/basis.js ***!
76993 \**************************************************/
76994/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
76995
76996"use strict";
76997__webpack_require__.r(__webpack_exports__);
76998/* harmony export */ __webpack_require__.d(__webpack_exports__, {
76999/* harmony export */ "Basis": () => (/* binding */ Basis),
77000/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
77001/* harmony export */ "point": () => (/* binding */ point)
77002/* harmony export */ });
77003function point(that, x, y) {
77004 that._context.bezierCurveTo(
77005 (2 * that._x0 + that._x1) / 3,
77006 (2 * that._y0 + that._y1) / 3,
77007 (that._x0 + 2 * that._x1) / 3,
77008 (that._y0 + 2 * that._y1) / 3,
77009 (that._x0 + 4 * that._x1 + x) / 6,
77010 (that._y0 + 4 * that._y1 + y) / 6
77011 );
77012}
77013
77014function Basis(context) {
77015 this._context = context;
77016}
77017
77018Basis.prototype = {
77019 areaStart: function() {
77020 this._line = 0;
77021 },
77022 areaEnd: function() {
77023 this._line = NaN;
77024 },
77025 lineStart: function() {
77026 this._x0 = this._x1 =
77027 this._y0 = this._y1 = NaN;
77028 this._point = 0;
77029 },
77030 lineEnd: function() {
77031 switch (this._point) {
77032 case 3: point(this, this._x1, this._y1); // falls through
77033 case 2: this._context.lineTo(this._x1, this._y1); break;
77034 }
77035 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
77036 this._line = 1 - this._line;
77037 },
77038 point: function(x, y) {
77039 x = +x, y = +y;
77040 switch (this._point) {
77041 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
77042 case 1: this._point = 2; break;
77043 case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through
77044 default: point(this, x, y); break;
77045 }
77046 this._x0 = this._x1, this._x1 = x;
77047 this._y0 = this._y1, this._y1 = y;
77048 }
77049};
77050
77051/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(context) {
77052 return new Basis(context);
77053}
77054
77055
77056/***/ }),
77057
77058/***/ "./node_modules/d3-shape/src/curve/basisClosed.js":
77059/*!********************************************************!*\
77060 !*** ./node_modules/d3-shape/src/curve/basisClosed.js ***!
77061 \********************************************************/
77062/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
77063
77064"use strict";
77065__webpack_require__.r(__webpack_exports__);
77066/* harmony export */ __webpack_require__.d(__webpack_exports__, {
77067/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
77068/* harmony export */ });
77069/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-shape/src/noop.js");
77070/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basis.js */ "./node_modules/d3-shape/src/curve/basis.js");
77071
77072
77073
77074function BasisClosed(context) {
77075 this._context = context;
77076}
77077
77078BasisClosed.prototype = {
77079 areaStart: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
77080 areaEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
77081 lineStart: function() {
77082 this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =
77083 this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;
77084 this._point = 0;
77085 },
77086 lineEnd: function() {
77087 switch (this._point) {
77088 case 1: {
77089 this._context.moveTo(this._x2, this._y2);
77090 this._context.closePath();
77091 break;
77092 }
77093 case 2: {
77094 this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);
77095 this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);
77096 this._context.closePath();
77097 break;
77098 }
77099 case 3: {
77100 this.point(this._x2, this._y2);
77101 this.point(this._x3, this._y3);
77102 this.point(this._x4, this._y4);
77103 break;
77104 }
77105 }
77106 },
77107 point: function(x, y) {
77108 x = +x, y = +y;
77109 switch (this._point) {
77110 case 0: this._point = 1; this._x2 = x, this._y2 = y; break;
77111 case 1: this._point = 2; this._x3 = x, this._y3 = y; break;
77112 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;
77113 default: (0,_basis_js__WEBPACK_IMPORTED_MODULE_1__.point)(this, x, y); break;
77114 }
77115 this._x0 = this._x1, this._x1 = x;
77116 this._y0 = this._y1, this._y1 = y;
77117 }
77118};
77119
77120/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(context) {
77121 return new BasisClosed(context);
77122}
77123
77124
77125/***/ }),
77126
77127/***/ "./node_modules/d3-shape/src/curve/basisOpen.js":
77128/*!******************************************************!*\
77129 !*** ./node_modules/d3-shape/src/curve/basisOpen.js ***!
77130 \******************************************************/
77131/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
77132
77133"use strict";
77134__webpack_require__.r(__webpack_exports__);
77135/* harmony export */ __webpack_require__.d(__webpack_exports__, {
77136/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
77137/* harmony export */ });
77138/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./basis.js */ "./node_modules/d3-shape/src/curve/basis.js");
77139
77140
77141function BasisOpen(context) {
77142 this._context = context;
77143}
77144
77145BasisOpen.prototype = {
77146 areaStart: function() {
77147 this._line = 0;
77148 },
77149 areaEnd: function() {
77150 this._line = NaN;
77151 },
77152 lineStart: function() {
77153 this._x0 = this._x1 =
77154 this._y0 = this._y1 = NaN;
77155 this._point = 0;
77156 },
77157 lineEnd: function() {
77158 if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
77159 this._line = 1 - this._line;
77160 },
77161 point: function(x, y) {
77162 x = +x, y = +y;
77163 switch (this._point) {
77164 case 0: this._point = 1; break;
77165 case 1: this._point = 2; break;
77166 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;
77167 case 3: this._point = 4; // falls through
77168 default: (0,_basis_js__WEBPACK_IMPORTED_MODULE_0__.point)(this, x, y); break;
77169 }
77170 this._x0 = this._x1, this._x1 = x;
77171 this._y0 = this._y1, this._y1 = y;
77172 }
77173};
77174
77175/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(context) {
77176 return new BasisOpen(context);
77177}
77178
77179
77180/***/ }),
77181
77182/***/ "./node_modules/d3-shape/src/curve/bump.js":
77183/*!*************************************************!*\
77184 !*** ./node_modules/d3-shape/src/curve/bump.js ***!
77185 \*************************************************/
77186/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
77187
77188"use strict";
77189__webpack_require__.r(__webpack_exports__);
77190/* harmony export */ __webpack_require__.d(__webpack_exports__, {
77191/* harmony export */ "bumpX": () => (/* binding */ bumpX),
77192/* harmony export */ "bumpY": () => (/* binding */ bumpY)
77193/* harmony export */ });
77194class Bump {
77195 constructor(context, x) {
77196 this._context = context;
77197 this._x = x;
77198 }
77199 areaStart() {
77200 this._line = 0;
77201 }
77202 areaEnd() {
77203 this._line = NaN;
77204 }
77205 lineStart() {
77206 this._point = 0;
77207 }
77208 lineEnd() {
77209 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
77210 this._line = 1 - this._line;
77211 }
77212 point(x, y) {
77213 x = +x, y = +y;
77214 switch (this._point) {
77215 case 0: {
77216 this._point = 1;
77217 if (this._line) this._context.lineTo(x, y);
77218 else this._context.moveTo(x, y);
77219 break;
77220 }
77221 case 1: this._point = 2; // falls through
77222 default: {
77223 if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);
77224 else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);
77225 break;
77226 }
77227 }
77228 this._x0 = x, this._y0 = y;
77229 }
77230}
77231
77232function bumpX(context) {
77233 return new Bump(context, true);
77234}
77235
77236function bumpY(context) {
77237 return new Bump(context, false);
77238}
77239
77240
77241/***/ }),
77242
77243/***/ "./node_modules/d3-shape/src/curve/bundle.js":
77244/*!***************************************************!*\
77245 !*** ./node_modules/d3-shape/src/curve/bundle.js ***!
77246 \***************************************************/
77247/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
77248
77249"use strict";
77250__webpack_require__.r(__webpack_exports__);
77251/* harmony export */ __webpack_require__.d(__webpack_exports__, {
77252/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
77253/* harmony export */ });
77254/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./basis.js */ "./node_modules/d3-shape/src/curve/basis.js");
77255
77256
77257function Bundle(context, beta) {
77258 this._basis = new _basis_js__WEBPACK_IMPORTED_MODULE_0__.Basis(context);
77259 this._beta = beta;
77260}
77261
77262Bundle.prototype = {
77263 lineStart: function() {
77264 this._x = [];
77265 this._y = [];
77266 this._basis.lineStart();
77267 },
77268 lineEnd: function() {
77269 var x = this._x,
77270 y = this._y,
77271 j = x.length - 1;
77272
77273 if (j > 0) {
77274 var x0 = x[0],
77275 y0 = y[0],
77276 dx = x[j] - x0,
77277 dy = y[j] - y0,
77278 i = -1,
77279 t;
77280
77281 while (++i <= j) {
77282 t = i / j;
77283 this._basis.point(
77284 this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),
77285 this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)
77286 );
77287 }
77288 }
77289
77290 this._x = this._y = null;
77291 this._basis.lineEnd();
77292 },
77293 point: function(x, y) {
77294 this._x.push(+x);
77295 this._y.push(+y);
77296 }
77297};
77298
77299/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function custom(beta) {
77300
77301 function bundle(context) {
77302 return beta === 1 ? new _basis_js__WEBPACK_IMPORTED_MODULE_0__.Basis(context) : new Bundle(context, beta);
77303 }
77304
77305 bundle.beta = function(beta) {
77306 return custom(+beta);
77307 };
77308
77309 return bundle;
77310})(0.85));
77311
77312
77313/***/ }),
77314
77315/***/ "./node_modules/d3-shape/src/curve/cardinal.js":
77316/*!*****************************************************!*\
77317 !*** ./node_modules/d3-shape/src/curve/cardinal.js ***!
77318 \*****************************************************/
77319/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
77320
77321"use strict";
77322__webpack_require__.r(__webpack_exports__);
77323/* harmony export */ __webpack_require__.d(__webpack_exports__, {
77324/* harmony export */ "Cardinal": () => (/* binding */ Cardinal),
77325/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
77326/* harmony export */ "point": () => (/* binding */ point)
77327/* harmony export */ });
77328function point(that, x, y) {
77329 that._context.bezierCurveTo(
77330 that._x1 + that._k * (that._x2 - that._x0),
77331 that._y1 + that._k * (that._y2 - that._y0),
77332 that._x2 + that._k * (that._x1 - x),
77333 that._y2 + that._k * (that._y1 - y),
77334 that._x2,
77335 that._y2
77336 );
77337}
77338
77339function Cardinal(context, tension) {
77340 this._context = context;
77341 this._k = (1 - tension) / 6;
77342}
77343
77344Cardinal.prototype = {
77345 areaStart: function() {
77346 this._line = 0;
77347 },
77348 areaEnd: function() {
77349 this._line = NaN;
77350 },
77351 lineStart: function() {
77352 this._x0 = this._x1 = this._x2 =
77353 this._y0 = this._y1 = this._y2 = NaN;
77354 this._point = 0;
77355 },
77356 lineEnd: function() {
77357 switch (this._point) {
77358 case 2: this._context.lineTo(this._x2, this._y2); break;
77359 case 3: point(this, this._x1, this._y1); break;
77360 }
77361 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
77362 this._line = 1 - this._line;
77363 },
77364 point: function(x, y) {
77365 x = +x, y = +y;
77366 switch (this._point) {
77367 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
77368 case 1: this._point = 2; this._x1 = x, this._y1 = y; break;
77369 case 2: this._point = 3; // falls through
77370 default: point(this, x, y); break;
77371 }
77372 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
77373 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
77374 }
77375};
77376
77377/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function custom(tension) {
77378
77379 function cardinal(context) {
77380 return new Cardinal(context, tension);
77381 }
77382
77383 cardinal.tension = function(tension) {
77384 return custom(+tension);
77385 };
77386
77387 return cardinal;
77388})(0));
77389
77390
77391/***/ }),
77392
77393/***/ "./node_modules/d3-shape/src/curve/cardinalClosed.js":
77394/*!***********************************************************!*\
77395 !*** ./node_modules/d3-shape/src/curve/cardinalClosed.js ***!
77396 \***********************************************************/
77397/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
77398
77399"use strict";
77400__webpack_require__.r(__webpack_exports__);
77401/* harmony export */ __webpack_require__.d(__webpack_exports__, {
77402/* harmony export */ "CardinalClosed": () => (/* binding */ CardinalClosed),
77403/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
77404/* harmony export */ });
77405/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-shape/src/noop.js");
77406/* harmony import */ var _cardinal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cardinal.js */ "./node_modules/d3-shape/src/curve/cardinal.js");
77407
77408
77409
77410function CardinalClosed(context, tension) {
77411 this._context = context;
77412 this._k = (1 - tension) / 6;
77413}
77414
77415CardinalClosed.prototype = {
77416 areaStart: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
77417 areaEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
77418 lineStart: function() {
77419 this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
77420 this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
77421 this._point = 0;
77422 },
77423 lineEnd: function() {
77424 switch (this._point) {
77425 case 1: {
77426 this._context.moveTo(this._x3, this._y3);
77427 this._context.closePath();
77428 break;
77429 }
77430 case 2: {
77431 this._context.lineTo(this._x3, this._y3);
77432 this._context.closePath();
77433 break;
77434 }
77435 case 3: {
77436 this.point(this._x3, this._y3);
77437 this.point(this._x4, this._y4);
77438 this.point(this._x5, this._y5);
77439 break;
77440 }
77441 }
77442 },
77443 point: function(x, y) {
77444 x = +x, y = +y;
77445 switch (this._point) {
77446 case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
77447 case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
77448 case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
77449 default: (0,_cardinal_js__WEBPACK_IMPORTED_MODULE_1__.point)(this, x, y); break;
77450 }
77451 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
77452 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
77453 }
77454};
77455
77456/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function custom(tension) {
77457
77458 function cardinal(context) {
77459 return new CardinalClosed(context, tension);
77460 }
77461
77462 cardinal.tension = function(tension) {
77463 return custom(+tension);
77464 };
77465
77466 return cardinal;
77467})(0));
77468
77469
77470/***/ }),
77471
77472/***/ "./node_modules/d3-shape/src/curve/cardinalOpen.js":
77473/*!*********************************************************!*\
77474 !*** ./node_modules/d3-shape/src/curve/cardinalOpen.js ***!
77475 \*********************************************************/
77476/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
77477
77478"use strict";
77479__webpack_require__.r(__webpack_exports__);
77480/* harmony export */ __webpack_require__.d(__webpack_exports__, {
77481/* harmony export */ "CardinalOpen": () => (/* binding */ CardinalOpen),
77482/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
77483/* harmony export */ });
77484/* harmony import */ var _cardinal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cardinal.js */ "./node_modules/d3-shape/src/curve/cardinal.js");
77485
77486
77487function CardinalOpen(context, tension) {
77488 this._context = context;
77489 this._k = (1 - tension) / 6;
77490}
77491
77492CardinalOpen.prototype = {
77493 areaStart: function() {
77494 this._line = 0;
77495 },
77496 areaEnd: function() {
77497 this._line = NaN;
77498 },
77499 lineStart: function() {
77500 this._x0 = this._x1 = this._x2 =
77501 this._y0 = this._y1 = this._y2 = NaN;
77502 this._point = 0;
77503 },
77504 lineEnd: function() {
77505 if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
77506 this._line = 1 - this._line;
77507 },
77508 point: function(x, y) {
77509 x = +x, y = +y;
77510 switch (this._point) {
77511 case 0: this._point = 1; break;
77512 case 1: this._point = 2; break;
77513 case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
77514 case 3: this._point = 4; // falls through
77515 default: (0,_cardinal_js__WEBPACK_IMPORTED_MODULE_0__.point)(this, x, y); break;
77516 }
77517 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
77518 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
77519 }
77520};
77521
77522/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function custom(tension) {
77523
77524 function cardinal(context) {
77525 return new CardinalOpen(context, tension);
77526 }
77527
77528 cardinal.tension = function(tension) {
77529 return custom(+tension);
77530 };
77531
77532 return cardinal;
77533})(0));
77534
77535
77536/***/ }),
77537
77538/***/ "./node_modules/d3-shape/src/curve/catmullRom.js":
77539/*!*******************************************************!*\
77540 !*** ./node_modules/d3-shape/src/curve/catmullRom.js ***!
77541 \*******************************************************/
77542/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
77543
77544"use strict";
77545__webpack_require__.r(__webpack_exports__);
77546/* harmony export */ __webpack_require__.d(__webpack_exports__, {
77547/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
77548/* harmony export */ "point": () => (/* binding */ point)
77549/* harmony export */ });
77550/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-shape/src/math.js");
77551/* harmony import */ var _cardinal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cardinal.js */ "./node_modules/d3-shape/src/curve/cardinal.js");
77552
77553
77554
77555function point(that, x, y) {
77556 var x1 = that._x1,
77557 y1 = that._y1,
77558 x2 = that._x2,
77559 y2 = that._y2;
77560
77561 if (that._l01_a > _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) {
77562 var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,
77563 n = 3 * that._l01_a * (that._l01_a + that._l12_a);
77564 x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;
77565 y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;
77566 }
77567
77568 if (that._l23_a > _math_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) {
77569 var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,
77570 m = 3 * that._l23_a * (that._l23_a + that._l12_a);
77571 x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;
77572 y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;
77573 }
77574
77575 that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);
77576}
77577
77578function CatmullRom(context, alpha) {
77579 this._context = context;
77580 this._alpha = alpha;
77581}
77582
77583CatmullRom.prototype = {
77584 areaStart: function() {
77585 this._line = 0;
77586 },
77587 areaEnd: function() {
77588 this._line = NaN;
77589 },
77590 lineStart: function() {
77591 this._x0 = this._x1 = this._x2 =
77592 this._y0 = this._y1 = this._y2 = NaN;
77593 this._l01_a = this._l12_a = this._l23_a =
77594 this._l01_2a = this._l12_2a = this._l23_2a =
77595 this._point = 0;
77596 },
77597 lineEnd: function() {
77598 switch (this._point) {
77599 case 2: this._context.lineTo(this._x2, this._y2); break;
77600 case 3: this.point(this._x2, this._y2); break;
77601 }
77602 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
77603 this._line = 1 - this._line;
77604 },
77605 point: function(x, y) {
77606 x = +x, y = +y;
77607
77608 if (this._point) {
77609 var x23 = this._x2 - x,
77610 y23 = this._y2 - y;
77611 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
77612 }
77613
77614 switch (this._point) {
77615 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
77616 case 1: this._point = 2; break;
77617 case 2: this._point = 3; // falls through
77618 default: point(this, x, y); break;
77619 }
77620
77621 this._l01_a = this._l12_a, this._l12_a = this._l23_a;
77622 this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
77623 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
77624 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
77625 }
77626};
77627
77628/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function custom(alpha) {
77629
77630 function catmullRom(context) {
77631 return alpha ? new CatmullRom(context, alpha) : new _cardinal_js__WEBPACK_IMPORTED_MODULE_1__.Cardinal(context, 0);
77632 }
77633
77634 catmullRom.alpha = function(alpha) {
77635 return custom(+alpha);
77636 };
77637
77638 return catmullRom;
77639})(0.5));
77640
77641
77642/***/ }),
77643
77644/***/ "./node_modules/d3-shape/src/curve/catmullRomClosed.js":
77645/*!*************************************************************!*\
77646 !*** ./node_modules/d3-shape/src/curve/catmullRomClosed.js ***!
77647 \*************************************************************/
77648/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
77649
77650"use strict";
77651__webpack_require__.r(__webpack_exports__);
77652/* harmony export */ __webpack_require__.d(__webpack_exports__, {
77653/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
77654/* harmony export */ });
77655/* harmony import */ var _cardinalClosed_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cardinalClosed.js */ "./node_modules/d3-shape/src/curve/cardinalClosed.js");
77656/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-shape/src/noop.js");
77657/* harmony import */ var _catmullRom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./catmullRom.js */ "./node_modules/d3-shape/src/curve/catmullRom.js");
77658
77659
77660
77661
77662function CatmullRomClosed(context, alpha) {
77663 this._context = context;
77664 this._alpha = alpha;
77665}
77666
77667CatmullRomClosed.prototype = {
77668 areaStart: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
77669 areaEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
77670 lineStart: function() {
77671 this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =
77672 this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
77673 this._l01_a = this._l12_a = this._l23_a =
77674 this._l01_2a = this._l12_2a = this._l23_2a =
77675 this._point = 0;
77676 },
77677 lineEnd: function() {
77678 switch (this._point) {
77679 case 1: {
77680 this._context.moveTo(this._x3, this._y3);
77681 this._context.closePath();
77682 break;
77683 }
77684 case 2: {
77685 this._context.lineTo(this._x3, this._y3);
77686 this._context.closePath();
77687 break;
77688 }
77689 case 3: {
77690 this.point(this._x3, this._y3);
77691 this.point(this._x4, this._y4);
77692 this.point(this._x5, this._y5);
77693 break;
77694 }
77695 }
77696 },
77697 point: function(x, y) {
77698 x = +x, y = +y;
77699
77700 if (this._point) {
77701 var x23 = this._x2 - x,
77702 y23 = this._y2 - y;
77703 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
77704 }
77705
77706 switch (this._point) {
77707 case 0: this._point = 1; this._x3 = x, this._y3 = y; break;
77708 case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;
77709 case 2: this._point = 3; this._x5 = x, this._y5 = y; break;
77710 default: (0,_catmullRom_js__WEBPACK_IMPORTED_MODULE_1__.point)(this, x, y); break;
77711 }
77712
77713 this._l01_a = this._l12_a, this._l12_a = this._l23_a;
77714 this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
77715 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
77716 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
77717 }
77718};
77719
77720/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function custom(alpha) {
77721
77722 function catmullRom(context) {
77723 return alpha ? new CatmullRomClosed(context, alpha) : new _cardinalClosed_js__WEBPACK_IMPORTED_MODULE_2__.CardinalClosed(context, 0);
77724 }
77725
77726 catmullRom.alpha = function(alpha) {
77727 return custom(+alpha);
77728 };
77729
77730 return catmullRom;
77731})(0.5));
77732
77733
77734/***/ }),
77735
77736/***/ "./node_modules/d3-shape/src/curve/catmullRomOpen.js":
77737/*!***********************************************************!*\
77738 !*** ./node_modules/d3-shape/src/curve/catmullRomOpen.js ***!
77739 \***********************************************************/
77740/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
77741
77742"use strict";
77743__webpack_require__.r(__webpack_exports__);
77744/* harmony export */ __webpack_require__.d(__webpack_exports__, {
77745/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
77746/* harmony export */ });
77747/* harmony import */ var _cardinalOpen_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cardinalOpen.js */ "./node_modules/d3-shape/src/curve/cardinalOpen.js");
77748/* harmony import */ var _catmullRom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./catmullRom.js */ "./node_modules/d3-shape/src/curve/catmullRom.js");
77749
77750
77751
77752function CatmullRomOpen(context, alpha) {
77753 this._context = context;
77754 this._alpha = alpha;
77755}
77756
77757CatmullRomOpen.prototype = {
77758 areaStart: function() {
77759 this._line = 0;
77760 },
77761 areaEnd: function() {
77762 this._line = NaN;
77763 },
77764 lineStart: function() {
77765 this._x0 = this._x1 = this._x2 =
77766 this._y0 = this._y1 = this._y2 = NaN;
77767 this._l01_a = this._l12_a = this._l23_a =
77768 this._l01_2a = this._l12_2a = this._l23_2a =
77769 this._point = 0;
77770 },
77771 lineEnd: function() {
77772 if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();
77773 this._line = 1 - this._line;
77774 },
77775 point: function(x, y) {
77776 x = +x, y = +y;
77777
77778 if (this._point) {
77779 var x23 = this._x2 - x,
77780 y23 = this._y2 - y;
77781 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
77782 }
77783
77784 switch (this._point) {
77785 case 0: this._point = 1; break;
77786 case 1: this._point = 2; break;
77787 case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;
77788 case 3: this._point = 4; // falls through
77789 default: (0,_catmullRom_js__WEBPACK_IMPORTED_MODULE_0__.point)(this, x, y); break;
77790 }
77791
77792 this._l01_a = this._l12_a, this._l12_a = this._l23_a;
77793 this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
77794 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;
77795 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;
77796 }
77797};
77798
77799/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((function custom(alpha) {
77800
77801 function catmullRom(context) {
77802 return alpha ? new CatmullRomOpen(context, alpha) : new _cardinalOpen_js__WEBPACK_IMPORTED_MODULE_1__.CardinalOpen(context, 0);
77803 }
77804
77805 catmullRom.alpha = function(alpha) {
77806 return custom(+alpha);
77807 };
77808
77809 return catmullRom;
77810})(0.5));
77811
77812
77813/***/ }),
77814
77815/***/ "./node_modules/d3-shape/src/curve/linear.js":
77816/*!***************************************************!*\
77817 !*** ./node_modules/d3-shape/src/curve/linear.js ***!
77818 \***************************************************/
77819/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
77820
77821"use strict";
77822__webpack_require__.r(__webpack_exports__);
77823/* harmony export */ __webpack_require__.d(__webpack_exports__, {
77824/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
77825/* harmony export */ });
77826function Linear(context) {
77827 this._context = context;
77828}
77829
77830Linear.prototype = {
77831 areaStart: function() {
77832 this._line = 0;
77833 },
77834 areaEnd: function() {
77835 this._line = NaN;
77836 },
77837 lineStart: function() {
77838 this._point = 0;
77839 },
77840 lineEnd: function() {
77841 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
77842 this._line = 1 - this._line;
77843 },
77844 point: function(x, y) {
77845 x = +x, y = +y;
77846 switch (this._point) {
77847 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
77848 case 1: this._point = 2; // falls through
77849 default: this._context.lineTo(x, y); break;
77850 }
77851 }
77852};
77853
77854/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(context) {
77855 return new Linear(context);
77856}
77857
77858
77859/***/ }),
77860
77861/***/ "./node_modules/d3-shape/src/curve/linearClosed.js":
77862/*!*********************************************************!*\
77863 !*** ./node_modules/d3-shape/src/curve/linearClosed.js ***!
77864 \*********************************************************/
77865/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
77866
77867"use strict";
77868__webpack_require__.r(__webpack_exports__);
77869/* harmony export */ __webpack_require__.d(__webpack_exports__, {
77870/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
77871/* harmony export */ });
77872/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.js */ "./node_modules/d3-shape/src/noop.js");
77873
77874
77875function LinearClosed(context) {
77876 this._context = context;
77877}
77878
77879LinearClosed.prototype = {
77880 areaStart: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
77881 areaEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__["default"],
77882 lineStart: function() {
77883 this._point = 0;
77884 },
77885 lineEnd: function() {
77886 if (this._point) this._context.closePath();
77887 },
77888 point: function(x, y) {
77889 x = +x, y = +y;
77890 if (this._point) this._context.lineTo(x, y);
77891 else this._point = 1, this._context.moveTo(x, y);
77892 }
77893};
77894
77895/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(context) {
77896 return new LinearClosed(context);
77897}
77898
77899
77900/***/ }),
77901
77902/***/ "./node_modules/d3-shape/src/curve/monotone.js":
77903/*!*****************************************************!*\
77904 !*** ./node_modules/d3-shape/src/curve/monotone.js ***!
77905 \*****************************************************/
77906/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
77907
77908"use strict";
77909__webpack_require__.r(__webpack_exports__);
77910/* harmony export */ __webpack_require__.d(__webpack_exports__, {
77911/* harmony export */ "monotoneX": () => (/* binding */ monotoneX),
77912/* harmony export */ "monotoneY": () => (/* binding */ monotoneY)
77913/* harmony export */ });
77914function sign(x) {
77915 return x < 0 ? -1 : 1;
77916}
77917
77918// Calculate the slopes of the tangents (Hermite-type interpolation) based on
77919// the following paper: Steffen, M. 1990. A Simple Method for Monotonic
77920// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.
77921// NOV(II), P. 443, 1990.
77922function slope3(that, x2, y2) {
77923 var h0 = that._x1 - that._x0,
77924 h1 = x2 - that._x1,
77925 s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),
77926 s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),
77927 p = (s0 * h1 + s1 * h0) / (h0 + h1);
77928 return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;
77929}
77930
77931// Calculate a one-sided slope.
77932function slope2(that, t) {
77933 var h = that._x1 - that._x0;
77934 return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;
77935}
77936
77937// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations
77938// "you can express cubic Hermite interpolation in terms of cubic Bézier curves
77939// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1".
77940function point(that, t0, t1) {
77941 var x0 = that._x0,
77942 y0 = that._y0,
77943 x1 = that._x1,
77944 y1 = that._y1,
77945 dx = (x1 - x0) / 3;
77946 that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);
77947}
77948
77949function MonotoneX(context) {
77950 this._context = context;
77951}
77952
77953MonotoneX.prototype = {
77954 areaStart: function() {
77955 this._line = 0;
77956 },
77957 areaEnd: function() {
77958 this._line = NaN;
77959 },
77960 lineStart: function() {
77961 this._x0 = this._x1 =
77962 this._y0 = this._y1 =
77963 this._t0 = NaN;
77964 this._point = 0;
77965 },
77966 lineEnd: function() {
77967 switch (this._point) {
77968 case 2: this._context.lineTo(this._x1, this._y1); break;
77969 case 3: point(this, this._t0, slope2(this, this._t0)); break;
77970 }
77971 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
77972 this._line = 1 - this._line;
77973 },
77974 point: function(x, y) {
77975 var t1 = NaN;
77976
77977 x = +x, y = +y;
77978 if (x === this._x1 && y === this._y1) return; // Ignore coincident points.
77979 switch (this._point) {
77980 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
77981 case 1: this._point = 2; break;
77982 case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;
77983 default: point(this, this._t0, t1 = slope3(this, x, y)); break;
77984 }
77985
77986 this._x0 = this._x1, this._x1 = x;
77987 this._y0 = this._y1, this._y1 = y;
77988 this._t0 = t1;
77989 }
77990}
77991
77992function MonotoneY(context) {
77993 this._context = new ReflectContext(context);
77994}
77995
77996(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {
77997 MonotoneX.prototype.point.call(this, y, x);
77998};
77999
78000function ReflectContext(context) {
78001 this._context = context;
78002}
78003
78004ReflectContext.prototype = {
78005 moveTo: function(x, y) { this._context.moveTo(y, x); },
78006 closePath: function() { this._context.closePath(); },
78007 lineTo: function(x, y) { this._context.lineTo(y, x); },
78008 bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }
78009};
78010
78011function monotoneX(context) {
78012 return new MonotoneX(context);
78013}
78014
78015function monotoneY(context) {
78016 return new MonotoneY(context);
78017}
78018
78019
78020/***/ }),
78021
78022/***/ "./node_modules/d3-shape/src/curve/natural.js":
78023/*!****************************************************!*\
78024 !*** ./node_modules/d3-shape/src/curve/natural.js ***!
78025 \****************************************************/
78026/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78027
78028"use strict";
78029__webpack_require__.r(__webpack_exports__);
78030/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78031/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
78032/* harmony export */ });
78033function Natural(context) {
78034 this._context = context;
78035}
78036
78037Natural.prototype = {
78038 areaStart: function() {
78039 this._line = 0;
78040 },
78041 areaEnd: function() {
78042 this._line = NaN;
78043 },
78044 lineStart: function() {
78045 this._x = [];
78046 this._y = [];
78047 },
78048 lineEnd: function() {
78049 var x = this._x,
78050 y = this._y,
78051 n = x.length;
78052
78053 if (n) {
78054 this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);
78055 if (n === 2) {
78056 this._context.lineTo(x[1], y[1]);
78057 } else {
78058 var px = controlPoints(x),
78059 py = controlPoints(y);
78060 for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {
78061 this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);
78062 }
78063 }
78064 }
78065
78066 if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();
78067 this._line = 1 - this._line;
78068 this._x = this._y = null;
78069 },
78070 point: function(x, y) {
78071 this._x.push(+x);
78072 this._y.push(+y);
78073 }
78074};
78075
78076// See https://www.particleincell.com/2012/bezier-splines/ for derivation.
78077function controlPoints(x) {
78078 var i,
78079 n = x.length - 1,
78080 m,
78081 a = new Array(n),
78082 b = new Array(n),
78083 r = new Array(n);
78084 a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];
78085 for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];
78086 a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];
78087 for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];
78088 a[n - 1] = r[n - 1] / b[n - 1];
78089 for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];
78090 b[n - 1] = (x[n] + a[n - 1]) / 2;
78091 for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];
78092 return [a, b];
78093}
78094
78095/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(context) {
78096 return new Natural(context);
78097}
78098
78099
78100/***/ }),
78101
78102/***/ "./node_modules/d3-shape/src/curve/radial.js":
78103/*!***************************************************!*\
78104 !*** ./node_modules/d3-shape/src/curve/radial.js ***!
78105 \***************************************************/
78106/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78107
78108"use strict";
78109__webpack_require__.r(__webpack_exports__);
78110/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78111/* harmony export */ "curveRadialLinear": () => (/* binding */ curveRadialLinear),
78112/* harmony export */ "default": () => (/* binding */ curveRadial)
78113/* harmony export */ });
78114/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear.js */ "./node_modules/d3-shape/src/curve/linear.js");
78115
78116
78117var curveRadialLinear = curveRadial(_linear_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
78118
78119function Radial(curve) {
78120 this._curve = curve;
78121}
78122
78123Radial.prototype = {
78124 areaStart: function() {
78125 this._curve.areaStart();
78126 },
78127 areaEnd: function() {
78128 this._curve.areaEnd();
78129 },
78130 lineStart: function() {
78131 this._curve.lineStart();
78132 },
78133 lineEnd: function() {
78134 this._curve.lineEnd();
78135 },
78136 point: function(a, r) {
78137 this._curve.point(r * Math.sin(a), r * -Math.cos(a));
78138 }
78139};
78140
78141function curveRadial(curve) {
78142
78143 function radial(context) {
78144 return new Radial(curve(context));
78145 }
78146
78147 radial._curve = curve;
78148
78149 return radial;
78150}
78151
78152
78153/***/ }),
78154
78155/***/ "./node_modules/d3-shape/src/curve/step.js":
78156/*!*************************************************!*\
78157 !*** ./node_modules/d3-shape/src/curve/step.js ***!
78158 \*************************************************/
78159/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78160
78161"use strict";
78162__webpack_require__.r(__webpack_exports__);
78163/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78164/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
78165/* harmony export */ "stepAfter": () => (/* binding */ stepAfter),
78166/* harmony export */ "stepBefore": () => (/* binding */ stepBefore)
78167/* harmony export */ });
78168function Step(context, t) {
78169 this._context = context;
78170 this._t = t;
78171}
78172
78173Step.prototype = {
78174 areaStart: function() {
78175 this._line = 0;
78176 },
78177 areaEnd: function() {
78178 this._line = NaN;
78179 },
78180 lineStart: function() {
78181 this._x = this._y = NaN;
78182 this._point = 0;
78183 },
78184 lineEnd: function() {
78185 if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);
78186 if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();
78187 if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;
78188 },
78189 point: function(x, y) {
78190 x = +x, y = +y;
78191 switch (this._point) {
78192 case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;
78193 case 1: this._point = 2; // falls through
78194 default: {
78195 if (this._t <= 0) {
78196 this._context.lineTo(this._x, y);
78197 this._context.lineTo(x, y);
78198 } else {
78199 var x1 = this._x * (1 - this._t) + x * this._t;
78200 this._context.lineTo(x1, this._y);
78201 this._context.lineTo(x1, y);
78202 }
78203 break;
78204 }
78205 }
78206 this._x = x, this._y = y;
78207 }
78208};
78209
78210/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(context) {
78211 return new Step(context, 0.5);
78212}
78213
78214function stepBefore(context) {
78215 return new Step(context, 0);
78216}
78217
78218function stepAfter(context) {
78219 return new Step(context, 1);
78220}
78221
78222
78223/***/ }),
78224
78225/***/ "./node_modules/d3-shape/src/descending.js":
78226/*!*************************************************!*\
78227 !*** ./node_modules/d3-shape/src/descending.js ***!
78228 \*************************************************/
78229/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78230
78231"use strict";
78232__webpack_require__.r(__webpack_exports__);
78233/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78234/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
78235/* harmony export */ });
78236/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {
78237 return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
78238}
78239
78240
78241/***/ }),
78242
78243/***/ "./node_modules/d3-shape/src/identity.js":
78244/*!***********************************************!*\
78245 !*** ./node_modules/d3-shape/src/identity.js ***!
78246 \***********************************************/
78247/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78248
78249"use strict";
78250__webpack_require__.r(__webpack_exports__);
78251/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78252/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
78253/* harmony export */ });
78254/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(d) {
78255 return d;
78256}
78257
78258
78259/***/ }),
78260
78261/***/ "./node_modules/d3-shape/src/index.js":
78262/*!********************************************!*\
78263 !*** ./node_modules/d3-shape/src/index.js ***!
78264 \********************************************/
78265/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78266
78267"use strict";
78268__webpack_require__.r(__webpack_exports__);
78269/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78270/* harmony export */ "arc": () => (/* reexport safe */ _arc_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
78271/* harmony export */ "area": () => (/* reexport safe */ _area_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
78272/* harmony export */ "areaRadial": () => (/* reexport safe */ _areaRadial_js__WEBPACK_IMPORTED_MODULE_4__["default"]),
78273/* harmony export */ "curveBasis": () => (/* reexport safe */ _curve_basis_js__WEBPACK_IMPORTED_MODULE_18__["default"]),
78274/* harmony export */ "curveBasisClosed": () => (/* reexport safe */ _curve_basisClosed_js__WEBPACK_IMPORTED_MODULE_16__["default"]),
78275/* harmony export */ "curveBasisOpen": () => (/* reexport safe */ _curve_basisOpen_js__WEBPACK_IMPORTED_MODULE_17__["default"]),
78276/* harmony export */ "curveBumpX": () => (/* reexport safe */ _curve_bump_js__WEBPACK_IMPORTED_MODULE_19__.bumpX),
78277/* harmony export */ "curveBumpY": () => (/* reexport safe */ _curve_bump_js__WEBPACK_IMPORTED_MODULE_19__.bumpY),
78278/* harmony export */ "curveBundle": () => (/* reexport safe */ _curve_bundle_js__WEBPACK_IMPORTED_MODULE_20__["default"]),
78279/* harmony export */ "curveCardinal": () => (/* reexport safe */ _curve_cardinal_js__WEBPACK_IMPORTED_MODULE_23__["default"]),
78280/* harmony export */ "curveCardinalClosed": () => (/* reexport safe */ _curve_cardinalClosed_js__WEBPACK_IMPORTED_MODULE_21__["default"]),
78281/* harmony export */ "curveCardinalOpen": () => (/* reexport safe */ _curve_cardinalOpen_js__WEBPACK_IMPORTED_MODULE_22__["default"]),
78282/* harmony export */ "curveCatmullRom": () => (/* reexport safe */ _curve_catmullRom_js__WEBPACK_IMPORTED_MODULE_26__["default"]),
78283/* harmony export */ "curveCatmullRomClosed": () => (/* reexport safe */ _curve_catmullRomClosed_js__WEBPACK_IMPORTED_MODULE_24__["default"]),
78284/* harmony export */ "curveCatmullRomOpen": () => (/* reexport safe */ _curve_catmullRomOpen_js__WEBPACK_IMPORTED_MODULE_25__["default"]),
78285/* harmony export */ "curveLinear": () => (/* reexport safe */ _curve_linear_js__WEBPACK_IMPORTED_MODULE_28__["default"]),
78286/* harmony export */ "curveLinearClosed": () => (/* reexport safe */ _curve_linearClosed_js__WEBPACK_IMPORTED_MODULE_27__["default"]),
78287/* harmony export */ "curveMonotoneX": () => (/* reexport safe */ _curve_monotone_js__WEBPACK_IMPORTED_MODULE_29__.monotoneX),
78288/* harmony export */ "curveMonotoneY": () => (/* reexport safe */ _curve_monotone_js__WEBPACK_IMPORTED_MODULE_29__.monotoneY),
78289/* harmony export */ "curveNatural": () => (/* reexport safe */ _curve_natural_js__WEBPACK_IMPORTED_MODULE_30__["default"]),
78290/* harmony export */ "curveStep": () => (/* reexport safe */ _curve_step_js__WEBPACK_IMPORTED_MODULE_31__["default"]),
78291/* harmony export */ "curveStepAfter": () => (/* reexport safe */ _curve_step_js__WEBPACK_IMPORTED_MODULE_31__.stepAfter),
78292/* harmony export */ "curveStepBefore": () => (/* reexport safe */ _curve_step_js__WEBPACK_IMPORTED_MODULE_31__.stepBefore),
78293/* harmony export */ "line": () => (/* reexport safe */ _line_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
78294/* harmony export */ "lineRadial": () => (/* reexport safe */ _lineRadial_js__WEBPACK_IMPORTED_MODULE_5__["default"]),
78295/* harmony export */ "linkHorizontal": () => (/* reexport safe */ _link_index_js__WEBPACK_IMPORTED_MODULE_7__.linkHorizontal),
78296/* harmony export */ "linkRadial": () => (/* reexport safe */ _link_index_js__WEBPACK_IMPORTED_MODULE_7__.linkRadial),
78297/* harmony export */ "linkVertical": () => (/* reexport safe */ _link_index_js__WEBPACK_IMPORTED_MODULE_7__.linkVertical),
78298/* harmony export */ "pie": () => (/* reexport safe */ _pie_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
78299/* harmony export */ "pointRadial": () => (/* reexport safe */ _pointRadial_js__WEBPACK_IMPORTED_MODULE_6__["default"]),
78300/* harmony export */ "radialArea": () => (/* reexport safe */ _areaRadial_js__WEBPACK_IMPORTED_MODULE_4__["default"]),
78301/* harmony export */ "radialLine": () => (/* reexport safe */ _lineRadial_js__WEBPACK_IMPORTED_MODULE_5__["default"]),
78302/* harmony export */ "stack": () => (/* reexport safe */ _stack_js__WEBPACK_IMPORTED_MODULE_32__["default"]),
78303/* harmony export */ "stackOffsetDiverging": () => (/* reexport safe */ _offset_diverging_js__WEBPACK_IMPORTED_MODULE_34__["default"]),
78304/* harmony export */ "stackOffsetExpand": () => (/* reexport safe */ _offset_expand_js__WEBPACK_IMPORTED_MODULE_33__["default"]),
78305/* harmony export */ "stackOffsetNone": () => (/* reexport safe */ _offset_none_js__WEBPACK_IMPORTED_MODULE_35__["default"]),
78306/* harmony export */ "stackOffsetSilhouette": () => (/* reexport safe */ _offset_silhouette_js__WEBPACK_IMPORTED_MODULE_36__["default"]),
78307/* harmony export */ "stackOffsetWiggle": () => (/* reexport safe */ _offset_wiggle_js__WEBPACK_IMPORTED_MODULE_37__["default"]),
78308/* harmony export */ "stackOrderAppearance": () => (/* reexport safe */ _order_appearance_js__WEBPACK_IMPORTED_MODULE_38__["default"]),
78309/* harmony export */ "stackOrderAscending": () => (/* reexport safe */ _order_ascending_js__WEBPACK_IMPORTED_MODULE_39__["default"]),
78310/* harmony export */ "stackOrderDescending": () => (/* reexport safe */ _order_descending_js__WEBPACK_IMPORTED_MODULE_40__["default"]),
78311/* harmony export */ "stackOrderInsideOut": () => (/* reexport safe */ _order_insideOut_js__WEBPACK_IMPORTED_MODULE_41__["default"]),
78312/* harmony export */ "stackOrderNone": () => (/* reexport safe */ _order_none_js__WEBPACK_IMPORTED_MODULE_42__["default"]),
78313/* harmony export */ "stackOrderReverse": () => (/* reexport safe */ _order_reverse_js__WEBPACK_IMPORTED_MODULE_43__["default"]),
78314/* harmony export */ "symbol": () => (/* reexport safe */ _symbol_js__WEBPACK_IMPORTED_MODULE_8__["default"]),
78315/* harmony export */ "symbolCircle": () => (/* reexport safe */ _symbol_circle_js__WEBPACK_IMPORTED_MODULE_9__["default"]),
78316/* harmony export */ "symbolCross": () => (/* reexport safe */ _symbol_cross_js__WEBPACK_IMPORTED_MODULE_10__["default"]),
78317/* harmony export */ "symbolDiamond": () => (/* reexport safe */ _symbol_diamond_js__WEBPACK_IMPORTED_MODULE_11__["default"]),
78318/* harmony export */ "symbolSquare": () => (/* reexport safe */ _symbol_square_js__WEBPACK_IMPORTED_MODULE_12__["default"]),
78319/* harmony export */ "symbolStar": () => (/* reexport safe */ _symbol_star_js__WEBPACK_IMPORTED_MODULE_13__["default"]),
78320/* harmony export */ "symbolTriangle": () => (/* reexport safe */ _symbol_triangle_js__WEBPACK_IMPORTED_MODULE_14__["default"]),
78321/* harmony export */ "symbolWye": () => (/* reexport safe */ _symbol_wye_js__WEBPACK_IMPORTED_MODULE_15__["default"]),
78322/* harmony export */ "symbols": () => (/* reexport safe */ _symbol_js__WEBPACK_IMPORTED_MODULE_8__.symbols)
78323/* harmony export */ });
78324/* harmony import */ var _arc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arc.js */ "./node_modules/d3-shape/src/arc.js");
78325/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./area.js */ "./node_modules/d3-shape/src/area.js");
78326/* harmony import */ var _line_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./line.js */ "./node_modules/d3-shape/src/line.js");
78327/* harmony import */ var _pie_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pie.js */ "./node_modules/d3-shape/src/pie.js");
78328/* harmony import */ var _areaRadial_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./areaRadial.js */ "./node_modules/d3-shape/src/areaRadial.js");
78329/* harmony import */ var _lineRadial_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lineRadial.js */ "./node_modules/d3-shape/src/lineRadial.js");
78330/* harmony import */ var _pointRadial_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pointRadial.js */ "./node_modules/d3-shape/src/pointRadial.js");
78331/* harmony import */ var _link_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./link/index.js */ "./node_modules/d3-shape/src/link/index.js");
78332/* harmony import */ var _symbol_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./symbol.js */ "./node_modules/d3-shape/src/symbol.js");
78333/* harmony import */ var _symbol_circle_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./symbol/circle.js */ "./node_modules/d3-shape/src/symbol/circle.js");
78334/* harmony import */ var _symbol_cross_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./symbol/cross.js */ "./node_modules/d3-shape/src/symbol/cross.js");
78335/* harmony import */ var _symbol_diamond_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./symbol/diamond.js */ "./node_modules/d3-shape/src/symbol/diamond.js");
78336/* harmony import */ var _symbol_square_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./symbol/square.js */ "./node_modules/d3-shape/src/symbol/square.js");
78337/* harmony import */ var _symbol_star_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./symbol/star.js */ "./node_modules/d3-shape/src/symbol/star.js");
78338/* harmony import */ var _symbol_triangle_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./symbol/triangle.js */ "./node_modules/d3-shape/src/symbol/triangle.js");
78339/* harmony import */ var _symbol_wye_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./symbol/wye.js */ "./node_modules/d3-shape/src/symbol/wye.js");
78340/* harmony import */ var _curve_basisClosed_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./curve/basisClosed.js */ "./node_modules/d3-shape/src/curve/basisClosed.js");
78341/* harmony import */ var _curve_basisOpen_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./curve/basisOpen.js */ "./node_modules/d3-shape/src/curve/basisOpen.js");
78342/* harmony import */ var _curve_basis_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./curve/basis.js */ "./node_modules/d3-shape/src/curve/basis.js");
78343/* harmony import */ var _curve_bump_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./curve/bump.js */ "./node_modules/d3-shape/src/curve/bump.js");
78344/* harmony import */ var _curve_bundle_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./curve/bundle.js */ "./node_modules/d3-shape/src/curve/bundle.js");
78345/* harmony import */ var _curve_cardinalClosed_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./curve/cardinalClosed.js */ "./node_modules/d3-shape/src/curve/cardinalClosed.js");
78346/* harmony import */ var _curve_cardinalOpen_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./curve/cardinalOpen.js */ "./node_modules/d3-shape/src/curve/cardinalOpen.js");
78347/* harmony import */ var _curve_cardinal_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./curve/cardinal.js */ "./node_modules/d3-shape/src/curve/cardinal.js");
78348/* harmony import */ var _curve_catmullRomClosed_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./curve/catmullRomClosed.js */ "./node_modules/d3-shape/src/curve/catmullRomClosed.js");
78349/* harmony import */ var _curve_catmullRomOpen_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./curve/catmullRomOpen.js */ "./node_modules/d3-shape/src/curve/catmullRomOpen.js");
78350/* harmony import */ var _curve_catmullRom_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./curve/catmullRom.js */ "./node_modules/d3-shape/src/curve/catmullRom.js");
78351/* harmony import */ var _curve_linearClosed_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./curve/linearClosed.js */ "./node_modules/d3-shape/src/curve/linearClosed.js");
78352/* harmony import */ var _curve_linear_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./curve/linear.js */ "./node_modules/d3-shape/src/curve/linear.js");
78353/* harmony import */ var _curve_monotone_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./curve/monotone.js */ "./node_modules/d3-shape/src/curve/monotone.js");
78354/* harmony import */ var _curve_natural_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./curve/natural.js */ "./node_modules/d3-shape/src/curve/natural.js");
78355/* harmony import */ var _curve_step_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./curve/step.js */ "./node_modules/d3-shape/src/curve/step.js");
78356/* harmony import */ var _stack_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./stack.js */ "./node_modules/d3-shape/src/stack.js");
78357/* harmony import */ var _offset_expand_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./offset/expand.js */ "./node_modules/d3-shape/src/offset/expand.js");
78358/* harmony import */ var _offset_diverging_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./offset/diverging.js */ "./node_modules/d3-shape/src/offset/diverging.js");
78359/* harmony import */ var _offset_none_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./offset/none.js */ "./node_modules/d3-shape/src/offset/none.js");
78360/* harmony import */ var _offset_silhouette_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./offset/silhouette.js */ "./node_modules/d3-shape/src/offset/silhouette.js");
78361/* harmony import */ var _offset_wiggle_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./offset/wiggle.js */ "./node_modules/d3-shape/src/offset/wiggle.js");
78362/* harmony import */ var _order_appearance_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./order/appearance.js */ "./node_modules/d3-shape/src/order/appearance.js");
78363/* harmony import */ var _order_ascending_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./order/ascending.js */ "./node_modules/d3-shape/src/order/ascending.js");
78364/* harmony import */ var _order_descending_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./order/descending.js */ "./node_modules/d3-shape/src/order/descending.js");
78365/* harmony import */ var _order_insideOut_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./order/insideOut.js */ "./node_modules/d3-shape/src/order/insideOut.js");
78366/* harmony import */ var _order_none_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./order/none.js */ "./node_modules/d3-shape/src/order/none.js");
78367/* harmony import */ var _order_reverse_js__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./order/reverse.js */ "./node_modules/d3-shape/src/order/reverse.js");
78368
78369
78370
78371
78372 // Note: radialArea is deprecated!
78373 // Note: radialLine is deprecated!
78374
78375
78376
78377
78378
78379
78380
78381
78382
78383
78384
78385
78386
78387
78388
78389
78390
78391
78392
78393
78394
78395
78396
78397
78398
78399
78400
78401
78402
78403
78404
78405
78406
78407
78408
78409
78410
78411
78412
78413
78414
78415
78416
78417/***/ }),
78418
78419/***/ "./node_modules/d3-shape/src/line.js":
78420/*!*******************************************!*\
78421 !*** ./node_modules/d3-shape/src/line.js ***!
78422 \*******************************************/
78423/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78424
78425"use strict";
78426__webpack_require__.r(__webpack_exports__);
78427/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78428/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
78429/* harmony export */ });
78430/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/path.js");
78431/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./array.js */ "./node_modules/d3-shape/src/array.js");
78432/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-shape/src/constant.js");
78433/* harmony import */ var _curve_linear_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./curve/linear.js */ "./node_modules/d3-shape/src/curve/linear.js");
78434/* harmony import */ var _point_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./point.js */ "./node_modules/d3-shape/src/point.js");
78435
78436
78437
78438
78439
78440
78441/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x, y) {
78442 var defined = (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(true),
78443 context = null,
78444 curve = _curve_linear_js__WEBPACK_IMPORTED_MODULE_1__["default"],
78445 output = null;
78446
78447 x = typeof x === "function" ? x : (x === undefined) ? _point_js__WEBPACK_IMPORTED_MODULE_2__.x : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(x);
78448 y = typeof y === "function" ? y : (y === undefined) ? _point_js__WEBPACK_IMPORTED_MODULE_2__.y : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(y);
78449
78450 function line(data) {
78451 var i,
78452 n = (data = (0,_array_js__WEBPACK_IMPORTED_MODULE_3__["default"])(data)).length,
78453 d,
78454 defined0 = false,
78455 buffer;
78456
78457 if (context == null) output = curve(buffer = (0,d3_path__WEBPACK_IMPORTED_MODULE_4__["default"])());
78458
78459 for (i = 0; i <= n; ++i) {
78460 if (!(i < n && defined(d = data[i], i, data)) === defined0) {
78461 if (defined0 = !defined0) output.lineStart();
78462 else output.lineEnd();
78463 }
78464 if (defined0) output.point(+x(d, i, data), +y(d, i, data));
78465 }
78466
78467 if (buffer) return output = null, buffer + "" || null;
78468 }
78469
78470 line.x = function(_) {
78471 return arguments.length ? (x = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), line) : x;
78472 };
78473
78474 line.y = function(_) {
78475 return arguments.length ? (y = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), line) : y;
78476 };
78477
78478 line.defined = function(_) {
78479 return arguments.length ? (defined = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(!!_), line) : defined;
78480 };
78481
78482 line.curve = function(_) {
78483 return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;
78484 };
78485
78486 line.context = function(_) {
78487 return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;
78488 };
78489
78490 return line;
78491}
78492
78493
78494/***/ }),
78495
78496/***/ "./node_modules/d3-shape/src/lineRadial.js":
78497/*!*************************************************!*\
78498 !*** ./node_modules/d3-shape/src/lineRadial.js ***!
78499 \*************************************************/
78500/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78501
78502"use strict";
78503__webpack_require__.r(__webpack_exports__);
78504/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78505/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
78506/* harmony export */ "lineRadial": () => (/* binding */ lineRadial)
78507/* harmony export */ });
78508/* harmony import */ var _curve_radial_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./curve/radial.js */ "./node_modules/d3-shape/src/curve/radial.js");
78509/* harmony import */ var _line_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./line.js */ "./node_modules/d3-shape/src/line.js");
78510
78511
78512
78513function lineRadial(l) {
78514 var c = l.curve;
78515
78516 l.angle = l.x, delete l.x;
78517 l.radius = l.y, delete l.y;
78518
78519 l.curve = function(_) {
78520 return arguments.length ? c((0,_curve_radial_js__WEBPACK_IMPORTED_MODULE_0__["default"])(_)) : c()._curve;
78521 };
78522
78523 return l;
78524}
78525
78526/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
78527 return lineRadial((0,_line_js__WEBPACK_IMPORTED_MODULE_1__["default"])().curve(_curve_radial_js__WEBPACK_IMPORTED_MODULE_0__.curveRadialLinear));
78528}
78529
78530
78531/***/ }),
78532
78533/***/ "./node_modules/d3-shape/src/link/index.js":
78534/*!*************************************************!*\
78535 !*** ./node_modules/d3-shape/src/link/index.js ***!
78536 \*************************************************/
78537/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78538
78539"use strict";
78540__webpack_require__.r(__webpack_exports__);
78541/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78542/* harmony export */ "linkHorizontal": () => (/* binding */ linkHorizontal),
78543/* harmony export */ "linkRadial": () => (/* binding */ linkRadial),
78544/* harmony export */ "linkVertical": () => (/* binding */ linkVertical)
78545/* harmony export */ });
78546/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/path.js");
78547/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../array.js */ "./node_modules/d3-shape/src/array.js");
78548/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constant.js */ "./node_modules/d3-shape/src/constant.js");
78549/* harmony import */ var _point_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../point.js */ "./node_modules/d3-shape/src/point.js");
78550/* harmony import */ var _pointRadial_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../pointRadial.js */ "./node_modules/d3-shape/src/pointRadial.js");
78551
78552
78553
78554
78555
78556
78557function linkSource(d) {
78558 return d.source;
78559}
78560
78561function linkTarget(d) {
78562 return d.target;
78563}
78564
78565function link(curve) {
78566 var source = linkSource,
78567 target = linkTarget,
78568 x = _point_js__WEBPACK_IMPORTED_MODULE_0__.x,
78569 y = _point_js__WEBPACK_IMPORTED_MODULE_0__.y,
78570 context = null;
78571
78572 function link() {
78573 var buffer, argv = _array_js__WEBPACK_IMPORTED_MODULE_1__.slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);
78574 if (!context) context = buffer = (0,d3_path__WEBPACK_IMPORTED_MODULE_2__["default"])();
78575 curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));
78576 if (buffer) return context = null, buffer + "" || null;
78577 }
78578
78579 link.source = function(_) {
78580 return arguments.length ? (source = _, link) : source;
78581 };
78582
78583 link.target = function(_) {
78584 return arguments.length ? (target = _, link) : target;
78585 };
78586
78587 link.x = function(_) {
78588 return arguments.length ? (x = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_3__["default"])(+_), link) : x;
78589 };
78590
78591 link.y = function(_) {
78592 return arguments.length ? (y = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_3__["default"])(+_), link) : y;
78593 };
78594
78595 link.context = function(_) {
78596 return arguments.length ? ((context = _ == null ? null : _), link) : context;
78597 };
78598
78599 return link;
78600}
78601
78602function curveHorizontal(context, x0, y0, x1, y1) {
78603 context.moveTo(x0, y0);
78604 context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);
78605}
78606
78607function curveVertical(context, x0, y0, x1, y1) {
78608 context.moveTo(x0, y0);
78609 context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);
78610}
78611
78612function curveRadial(context, x0, y0, x1, y1) {
78613 var p0 = (0,_pointRadial_js__WEBPACK_IMPORTED_MODULE_4__["default"])(x0, y0),
78614 p1 = (0,_pointRadial_js__WEBPACK_IMPORTED_MODULE_4__["default"])(x0, y0 = (y0 + y1) / 2),
78615 p2 = (0,_pointRadial_js__WEBPACK_IMPORTED_MODULE_4__["default"])(x1, y0),
78616 p3 = (0,_pointRadial_js__WEBPACK_IMPORTED_MODULE_4__["default"])(x1, y1);
78617 context.moveTo(p0[0], p0[1]);
78618 context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);
78619}
78620
78621function linkHorizontal() {
78622 return link(curveHorizontal);
78623}
78624
78625function linkVertical() {
78626 return link(curveVertical);
78627}
78628
78629function linkRadial() {
78630 var l = link(curveRadial);
78631 l.angle = l.x, delete l.x;
78632 l.radius = l.y, delete l.y;
78633 return l;
78634}
78635
78636
78637/***/ }),
78638
78639/***/ "./node_modules/d3-shape/src/math.js":
78640/*!*******************************************!*\
78641 !*** ./node_modules/d3-shape/src/math.js ***!
78642 \*******************************************/
78643/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78644
78645"use strict";
78646__webpack_require__.r(__webpack_exports__);
78647/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78648/* harmony export */ "abs": () => (/* binding */ abs),
78649/* harmony export */ "acos": () => (/* binding */ acos),
78650/* harmony export */ "asin": () => (/* binding */ asin),
78651/* harmony export */ "atan2": () => (/* binding */ atan2),
78652/* harmony export */ "cos": () => (/* binding */ cos),
78653/* harmony export */ "epsilon": () => (/* binding */ epsilon),
78654/* harmony export */ "halfPi": () => (/* binding */ halfPi),
78655/* harmony export */ "max": () => (/* binding */ max),
78656/* harmony export */ "min": () => (/* binding */ min),
78657/* harmony export */ "pi": () => (/* binding */ pi),
78658/* harmony export */ "sin": () => (/* binding */ sin),
78659/* harmony export */ "sqrt": () => (/* binding */ sqrt),
78660/* harmony export */ "tau": () => (/* binding */ tau)
78661/* harmony export */ });
78662var abs = Math.abs;
78663var atan2 = Math.atan2;
78664var cos = Math.cos;
78665var max = Math.max;
78666var min = Math.min;
78667var sin = Math.sin;
78668var sqrt = Math.sqrt;
78669
78670var epsilon = 1e-12;
78671var pi = Math.PI;
78672var halfPi = pi / 2;
78673var tau = 2 * pi;
78674
78675function acos(x) {
78676 return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);
78677}
78678
78679function asin(x) {
78680 return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);
78681}
78682
78683
78684/***/ }),
78685
78686/***/ "./node_modules/d3-shape/src/noop.js":
78687/*!*******************************************!*\
78688 !*** ./node_modules/d3-shape/src/noop.js ***!
78689 \*******************************************/
78690/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78691
78692"use strict";
78693__webpack_require__.r(__webpack_exports__);
78694/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78695/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
78696/* harmony export */ });
78697/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {}
78698
78699
78700/***/ }),
78701
78702/***/ "./node_modules/d3-shape/src/offset/diverging.js":
78703/*!*******************************************************!*\
78704 !*** ./node_modules/d3-shape/src/offset/diverging.js ***!
78705 \*******************************************************/
78706/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78707
78708"use strict";
78709__webpack_require__.r(__webpack_exports__);
78710/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78711/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
78712/* harmony export */ });
78713/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(series, order) {
78714 if (!((n = series.length) > 0)) return;
78715 for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {
78716 for (yp = yn = 0, i = 0; i < n; ++i) {
78717 if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {
78718 d[0] = yp, d[1] = yp += dy;
78719 } else if (dy < 0) {
78720 d[1] = yn, d[0] = yn += dy;
78721 } else {
78722 d[0] = 0, d[1] = dy;
78723 }
78724 }
78725 }
78726}
78727
78728
78729/***/ }),
78730
78731/***/ "./node_modules/d3-shape/src/offset/expand.js":
78732/*!****************************************************!*\
78733 !*** ./node_modules/d3-shape/src/offset/expand.js ***!
78734 \****************************************************/
78735/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78736
78737"use strict";
78738__webpack_require__.r(__webpack_exports__);
78739/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78740/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
78741/* harmony export */ });
78742/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ "./node_modules/d3-shape/src/offset/none.js");
78743
78744
78745/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(series, order) {
78746 if (!((n = series.length) > 0)) return;
78747 for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {
78748 for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;
78749 if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;
78750 }
78751 (0,_none_js__WEBPACK_IMPORTED_MODULE_0__["default"])(series, order);
78752}
78753
78754
78755/***/ }),
78756
78757/***/ "./node_modules/d3-shape/src/offset/none.js":
78758/*!**************************************************!*\
78759 !*** ./node_modules/d3-shape/src/offset/none.js ***!
78760 \**************************************************/
78761/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78762
78763"use strict";
78764__webpack_require__.r(__webpack_exports__);
78765/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78766/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
78767/* harmony export */ });
78768/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(series, order) {
78769 if (!((n = series.length) > 1)) return;
78770 for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {
78771 s0 = s1, s1 = series[order[i]];
78772 for (j = 0; j < m; ++j) {
78773 s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];
78774 }
78775 }
78776}
78777
78778
78779/***/ }),
78780
78781/***/ "./node_modules/d3-shape/src/offset/silhouette.js":
78782/*!********************************************************!*\
78783 !*** ./node_modules/d3-shape/src/offset/silhouette.js ***!
78784 \********************************************************/
78785/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78786
78787"use strict";
78788__webpack_require__.r(__webpack_exports__);
78789/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78790/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
78791/* harmony export */ });
78792/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ "./node_modules/d3-shape/src/offset/none.js");
78793
78794
78795/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(series, order) {
78796 if (!((n = series.length) > 0)) return;
78797 for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {
78798 for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;
78799 s0[j][1] += s0[j][0] = -y / 2;
78800 }
78801 (0,_none_js__WEBPACK_IMPORTED_MODULE_0__["default"])(series, order);
78802}
78803
78804
78805/***/ }),
78806
78807/***/ "./node_modules/d3-shape/src/offset/wiggle.js":
78808/*!****************************************************!*\
78809 !*** ./node_modules/d3-shape/src/offset/wiggle.js ***!
78810 \****************************************************/
78811/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78812
78813"use strict";
78814__webpack_require__.r(__webpack_exports__);
78815/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78816/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
78817/* harmony export */ });
78818/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ "./node_modules/d3-shape/src/offset/none.js");
78819
78820
78821/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(series, order) {
78822 if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;
78823 for (var y = 0, j = 1, s0, m, n; j < m; ++j) {
78824 for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {
78825 var si = series[order[i]],
78826 sij0 = si[j][1] || 0,
78827 sij1 = si[j - 1][1] || 0,
78828 s3 = (sij0 - sij1) / 2;
78829 for (var k = 0; k < i; ++k) {
78830 var sk = series[order[k]],
78831 skj0 = sk[j][1] || 0,
78832 skj1 = sk[j - 1][1] || 0;
78833 s3 += skj0 - skj1;
78834 }
78835 s1 += sij0, s2 += s3 * sij0;
78836 }
78837 s0[j - 1][1] += s0[j - 1][0] = y;
78838 if (s1) y -= s2 / s1;
78839 }
78840 s0[j - 1][1] += s0[j - 1][0] = y;
78841 (0,_none_js__WEBPACK_IMPORTED_MODULE_0__["default"])(series, order);
78842}
78843
78844
78845/***/ }),
78846
78847/***/ "./node_modules/d3-shape/src/order/appearance.js":
78848/*!*******************************************************!*\
78849 !*** ./node_modules/d3-shape/src/order/appearance.js ***!
78850 \*******************************************************/
78851/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78852
78853"use strict";
78854__webpack_require__.r(__webpack_exports__);
78855/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78856/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
78857/* harmony export */ });
78858/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ "./node_modules/d3-shape/src/order/none.js");
78859
78860
78861/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(series) {
78862 var peaks = series.map(peak);
78863 return (0,_none_js__WEBPACK_IMPORTED_MODULE_0__["default"])(series).sort(function(a, b) { return peaks[a] - peaks[b]; });
78864}
78865
78866function peak(series) {
78867 var i = -1, j = 0, n = series.length, vi, vj = -Infinity;
78868 while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;
78869 return j;
78870}
78871
78872
78873/***/ }),
78874
78875/***/ "./node_modules/d3-shape/src/order/ascending.js":
78876/*!******************************************************!*\
78877 !*** ./node_modules/d3-shape/src/order/ascending.js ***!
78878 \******************************************************/
78879/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78880
78881"use strict";
78882__webpack_require__.r(__webpack_exports__);
78883/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78884/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
78885/* harmony export */ "sum": () => (/* binding */ sum)
78886/* harmony export */ });
78887/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ "./node_modules/d3-shape/src/order/none.js");
78888
78889
78890/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(series) {
78891 var sums = series.map(sum);
78892 return (0,_none_js__WEBPACK_IMPORTED_MODULE_0__["default"])(series).sort(function(a, b) { return sums[a] - sums[b]; });
78893}
78894
78895function sum(series) {
78896 var s = 0, i = -1, n = series.length, v;
78897 while (++i < n) if (v = +series[i][1]) s += v;
78898 return s;
78899}
78900
78901
78902/***/ }),
78903
78904/***/ "./node_modules/d3-shape/src/order/descending.js":
78905/*!*******************************************************!*\
78906 !*** ./node_modules/d3-shape/src/order/descending.js ***!
78907 \*******************************************************/
78908/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78909
78910"use strict";
78911__webpack_require__.r(__webpack_exports__);
78912/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78913/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
78914/* harmony export */ });
78915/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ "./node_modules/d3-shape/src/order/ascending.js");
78916
78917
78918/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(series) {
78919 return (0,_ascending_js__WEBPACK_IMPORTED_MODULE_0__["default"])(series).reverse();
78920}
78921
78922
78923/***/ }),
78924
78925/***/ "./node_modules/d3-shape/src/order/insideOut.js":
78926/*!******************************************************!*\
78927 !*** ./node_modules/d3-shape/src/order/insideOut.js ***!
78928 \******************************************************/
78929/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78930
78931"use strict";
78932__webpack_require__.r(__webpack_exports__);
78933/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78934/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
78935/* harmony export */ });
78936/* harmony import */ var _appearance_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./appearance.js */ "./node_modules/d3-shape/src/order/appearance.js");
78937/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ "./node_modules/d3-shape/src/order/ascending.js");
78938
78939
78940
78941/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(series) {
78942 var n = series.length,
78943 i,
78944 j,
78945 sums = series.map(_ascending_js__WEBPACK_IMPORTED_MODULE_0__.sum),
78946 order = (0,_appearance_js__WEBPACK_IMPORTED_MODULE_1__["default"])(series),
78947 top = 0,
78948 bottom = 0,
78949 tops = [],
78950 bottoms = [];
78951
78952 for (i = 0; i < n; ++i) {
78953 j = order[i];
78954 if (top < bottom) {
78955 top += sums[j];
78956 tops.push(j);
78957 } else {
78958 bottom += sums[j];
78959 bottoms.push(j);
78960 }
78961 }
78962
78963 return bottoms.reverse().concat(tops);
78964}
78965
78966
78967/***/ }),
78968
78969/***/ "./node_modules/d3-shape/src/order/none.js":
78970/*!*************************************************!*\
78971 !*** ./node_modules/d3-shape/src/order/none.js ***!
78972 \*************************************************/
78973/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78974
78975"use strict";
78976__webpack_require__.r(__webpack_exports__);
78977/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78978/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
78979/* harmony export */ });
78980/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(series) {
78981 var n = series.length, o = new Array(n);
78982 while (--n >= 0) o[n] = n;
78983 return o;
78984}
78985
78986
78987/***/ }),
78988
78989/***/ "./node_modules/d3-shape/src/order/reverse.js":
78990/*!****************************************************!*\
78991 !*** ./node_modules/d3-shape/src/order/reverse.js ***!
78992 \****************************************************/
78993/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
78994
78995"use strict";
78996__webpack_require__.r(__webpack_exports__);
78997/* harmony export */ __webpack_require__.d(__webpack_exports__, {
78998/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
78999/* harmony export */ });
79000/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ "./node_modules/d3-shape/src/order/none.js");
79001
79002
79003/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(series) {
79004 return (0,_none_js__WEBPACK_IMPORTED_MODULE_0__["default"])(series).reverse();
79005}
79006
79007
79008/***/ }),
79009
79010/***/ "./node_modules/d3-shape/src/pie.js":
79011/*!******************************************!*\
79012 !*** ./node_modules/d3-shape/src/pie.js ***!
79013 \******************************************/
79014/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
79015
79016"use strict";
79017__webpack_require__.r(__webpack_exports__);
79018/* harmony export */ __webpack_require__.d(__webpack_exports__, {
79019/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
79020/* harmony export */ });
79021/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./array.js */ "./node_modules/d3-shape/src/array.js");
79022/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-shape/src/constant.js");
79023/* harmony import */ var _descending_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./descending.js */ "./node_modules/d3-shape/src/descending.js");
79024/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity.js */ "./node_modules/d3-shape/src/identity.js");
79025/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./math.js */ "./node_modules/d3-shape/src/math.js");
79026
79027
79028
79029
79030
79031
79032/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
79033 var value = _identity_js__WEBPACK_IMPORTED_MODULE_0__["default"],
79034 sortValues = _descending_js__WEBPACK_IMPORTED_MODULE_1__["default"],
79035 sort = null,
79036 startAngle = (0,_constant_js__WEBPACK_IMPORTED_MODULE_2__["default"])(0),
79037 endAngle = (0,_constant_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_math_js__WEBPACK_IMPORTED_MODULE_3__.tau),
79038 padAngle = (0,_constant_js__WEBPACK_IMPORTED_MODULE_2__["default"])(0);
79039
79040 function pie(data) {
79041 var i,
79042 n = (data = (0,_array_js__WEBPACK_IMPORTED_MODULE_4__["default"])(data)).length,
79043 j,
79044 k,
79045 sum = 0,
79046 index = new Array(n),
79047 arcs = new Array(n),
79048 a0 = +startAngle.apply(this, arguments),
79049 da = Math.min(_math_js__WEBPACK_IMPORTED_MODULE_3__.tau, Math.max(-_math_js__WEBPACK_IMPORTED_MODULE_3__.tau, endAngle.apply(this, arguments) - a0)),
79050 a1,
79051 p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),
79052 pa = p * (da < 0 ? -1 : 1),
79053 v;
79054
79055 for (i = 0; i < n; ++i) {
79056 if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {
79057 sum += v;
79058 }
79059 }
79060
79061 // Optionally sort the arcs by previously-computed values or by data.
79062 if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });
79063 else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });
79064
79065 // Compute the arcs! They are stored in the original data's order.
79066 for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {
79067 j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {
79068 data: data[j],
79069 index: i,
79070 value: v,
79071 startAngle: a0,
79072 endAngle: a1,
79073 padAngle: p
79074 };
79075 }
79076
79077 return arcs;
79078 }
79079
79080 pie.value = function(_) {
79081 return arguments.length ? (value = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_2__["default"])(+_), pie) : value;
79082 };
79083
79084 pie.sortValues = function(_) {
79085 return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;
79086 };
79087
79088 pie.sort = function(_) {
79089 return arguments.length ? (sort = _, sortValues = null, pie) : sort;
79090 };
79091
79092 pie.startAngle = function(_) {
79093 return arguments.length ? (startAngle = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_2__["default"])(+_), pie) : startAngle;
79094 };
79095
79096 pie.endAngle = function(_) {
79097 return arguments.length ? (endAngle = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_2__["default"])(+_), pie) : endAngle;
79098 };
79099
79100 pie.padAngle = function(_) {
79101 return arguments.length ? (padAngle = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_2__["default"])(+_), pie) : padAngle;
79102 };
79103
79104 return pie;
79105}
79106
79107
79108/***/ }),
79109
79110/***/ "./node_modules/d3-shape/src/point.js":
79111/*!********************************************!*\
79112 !*** ./node_modules/d3-shape/src/point.js ***!
79113 \********************************************/
79114/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
79115
79116"use strict";
79117__webpack_require__.r(__webpack_exports__);
79118/* harmony export */ __webpack_require__.d(__webpack_exports__, {
79119/* harmony export */ "x": () => (/* binding */ x),
79120/* harmony export */ "y": () => (/* binding */ y)
79121/* harmony export */ });
79122function x(p) {
79123 return p[0];
79124}
79125
79126function y(p) {
79127 return p[1];
79128}
79129
79130
79131/***/ }),
79132
79133/***/ "./node_modules/d3-shape/src/pointRadial.js":
79134/*!**************************************************!*\
79135 !*** ./node_modules/d3-shape/src/pointRadial.js ***!
79136 \**************************************************/
79137/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
79138
79139"use strict";
79140__webpack_require__.r(__webpack_exports__);
79141/* harmony export */ __webpack_require__.d(__webpack_exports__, {
79142/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
79143/* harmony export */ });
79144/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x, y) {
79145 return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];
79146}
79147
79148
79149/***/ }),
79150
79151/***/ "./node_modules/d3-shape/src/stack.js":
79152/*!********************************************!*\
79153 !*** ./node_modules/d3-shape/src/stack.js ***!
79154 \********************************************/
79155/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
79156
79157"use strict";
79158__webpack_require__.r(__webpack_exports__);
79159/* harmony export */ __webpack_require__.d(__webpack_exports__, {
79160/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
79161/* harmony export */ });
79162/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./array.js */ "./node_modules/d3-shape/src/array.js");
79163/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-shape/src/constant.js");
79164/* harmony import */ var _offset_none_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./offset/none.js */ "./node_modules/d3-shape/src/offset/none.js");
79165/* harmony import */ var _order_none_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./order/none.js */ "./node_modules/d3-shape/src/order/none.js");
79166
79167
79168
79169
79170
79171function stackValue(d, key) {
79172 return d[key];
79173}
79174
79175function stackSeries(key) {
79176 const series = [];
79177 series.key = key;
79178 return series;
79179}
79180
79181/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
79182 var keys = (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])([]),
79183 order = _order_none_js__WEBPACK_IMPORTED_MODULE_1__["default"],
79184 offset = _offset_none_js__WEBPACK_IMPORTED_MODULE_2__["default"],
79185 value = stackValue;
79186
79187 function stack(data) {
79188 var sz = Array.from(keys.apply(this, arguments), stackSeries),
79189 i, n = sz.length, j = -1,
79190 oz;
79191
79192 for (const d of data) {
79193 for (i = 0, ++j; i < n; ++i) {
79194 (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;
79195 }
79196 }
79197
79198 for (i = 0, oz = (0,_array_js__WEBPACK_IMPORTED_MODULE_3__["default"])(order(sz)); i < n; ++i) {
79199 sz[oz[i]].index = i;
79200 }
79201
79202 offset(sz, oz);
79203 return sz;
79204 }
79205
79206 stack.keys = function(_) {
79207 return arguments.length ? (keys = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Array.from(_)), stack) : keys;
79208 };
79209
79210 stack.value = function(_) {
79211 return arguments.length ? (value = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(+_), stack) : value;
79212 };
79213
79214 stack.order = function(_) {
79215 return arguments.length ? (order = _ == null ? _order_none_js__WEBPACK_IMPORTED_MODULE_1__["default"] : typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Array.from(_)), stack) : order;
79216 };
79217
79218 stack.offset = function(_) {
79219 return arguments.length ? (offset = _ == null ? _offset_none_js__WEBPACK_IMPORTED_MODULE_2__["default"] : _, stack) : offset;
79220 };
79221
79222 return stack;
79223}
79224
79225
79226/***/ }),
79227
79228/***/ "./node_modules/d3-shape/src/symbol.js":
79229/*!*********************************************!*\
79230 !*** ./node_modules/d3-shape/src/symbol.js ***!
79231 \*********************************************/
79232/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
79233
79234"use strict";
79235__webpack_require__.r(__webpack_exports__);
79236/* harmony export */ __webpack_require__.d(__webpack_exports__, {
79237/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
79238/* harmony export */ "symbols": () => (/* binding */ symbols)
79239/* harmony export */ });
79240/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/path.js");
79241/* harmony import */ var _symbol_circle_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./symbol/circle.js */ "./node_modules/d3-shape/src/symbol/circle.js");
79242/* harmony import */ var _symbol_cross_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./symbol/cross.js */ "./node_modules/d3-shape/src/symbol/cross.js");
79243/* harmony import */ var _symbol_diamond_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./symbol/diamond.js */ "./node_modules/d3-shape/src/symbol/diamond.js");
79244/* harmony import */ var _symbol_star_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./symbol/star.js */ "./node_modules/d3-shape/src/symbol/star.js");
79245/* harmony import */ var _symbol_square_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./symbol/square.js */ "./node_modules/d3-shape/src/symbol/square.js");
79246/* harmony import */ var _symbol_triangle_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./symbol/triangle.js */ "./node_modules/d3-shape/src/symbol/triangle.js");
79247/* harmony import */ var _symbol_wye_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./symbol/wye.js */ "./node_modules/d3-shape/src/symbol/wye.js");
79248/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-shape/src/constant.js");
79249
79250
79251
79252
79253
79254
79255
79256
79257
79258
79259var symbols = [
79260 _symbol_circle_js__WEBPACK_IMPORTED_MODULE_0__["default"],
79261 _symbol_cross_js__WEBPACK_IMPORTED_MODULE_1__["default"],
79262 _symbol_diamond_js__WEBPACK_IMPORTED_MODULE_2__["default"],
79263 _symbol_square_js__WEBPACK_IMPORTED_MODULE_3__["default"],
79264 _symbol_star_js__WEBPACK_IMPORTED_MODULE_4__["default"],
79265 _symbol_triangle_js__WEBPACK_IMPORTED_MODULE_5__["default"],
79266 _symbol_wye_js__WEBPACK_IMPORTED_MODULE_6__["default"]
79267];
79268
79269/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(type, size) {
79270 var context = null;
79271 type = typeof type === "function" ? type : (0,_constant_js__WEBPACK_IMPORTED_MODULE_7__["default"])(type || _symbol_circle_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
79272 size = typeof size === "function" ? size : (0,_constant_js__WEBPACK_IMPORTED_MODULE_7__["default"])(size === undefined ? 64 : +size);
79273
79274 function symbol() {
79275 var buffer;
79276 if (!context) context = buffer = (0,d3_path__WEBPACK_IMPORTED_MODULE_8__["default"])();
79277 type.apply(this, arguments).draw(context, +size.apply(this, arguments));
79278 if (buffer) return context = null, buffer + "" || null;
79279 }
79280
79281 symbol.type = function(_) {
79282 return arguments.length ? (type = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_7__["default"])(_), symbol) : type;
79283 };
79284
79285 symbol.size = function(_) {
79286 return arguments.length ? (size = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_7__["default"])(+_), symbol) : size;
79287 };
79288
79289 symbol.context = function(_) {
79290 return arguments.length ? (context = _ == null ? null : _, symbol) : context;
79291 };
79292
79293 return symbol;
79294}
79295
79296
79297/***/ }),
79298
79299/***/ "./node_modules/d3-shape/src/symbol/circle.js":
79300/*!****************************************************!*\
79301 !*** ./node_modules/d3-shape/src/symbol/circle.js ***!
79302 \****************************************************/
79303/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
79304
79305"use strict";
79306__webpack_require__.r(__webpack_exports__);
79307/* harmony export */ __webpack_require__.d(__webpack_exports__, {
79308/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
79309/* harmony export */ });
79310/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-shape/src/math.js");
79311
79312
79313/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
79314 draw: function(context, size) {
79315 var r = Math.sqrt(size / _math_js__WEBPACK_IMPORTED_MODULE_0__.pi);
79316 context.moveTo(r, 0);
79317 context.arc(0, 0, r, 0, _math_js__WEBPACK_IMPORTED_MODULE_0__.tau);
79318 }
79319});
79320
79321
79322/***/ }),
79323
79324/***/ "./node_modules/d3-shape/src/symbol/cross.js":
79325/*!***************************************************!*\
79326 !*** ./node_modules/d3-shape/src/symbol/cross.js ***!
79327 \***************************************************/
79328/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
79329
79330"use strict";
79331__webpack_require__.r(__webpack_exports__);
79332/* harmony export */ __webpack_require__.d(__webpack_exports__, {
79333/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
79334/* harmony export */ });
79335/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
79336 draw: function(context, size) {
79337 var r = Math.sqrt(size / 5) / 2;
79338 context.moveTo(-3 * r, -r);
79339 context.lineTo(-r, -r);
79340 context.lineTo(-r, -3 * r);
79341 context.lineTo(r, -3 * r);
79342 context.lineTo(r, -r);
79343 context.lineTo(3 * r, -r);
79344 context.lineTo(3 * r, r);
79345 context.lineTo(r, r);
79346 context.lineTo(r, 3 * r);
79347 context.lineTo(-r, 3 * r);
79348 context.lineTo(-r, r);
79349 context.lineTo(-3 * r, r);
79350 context.closePath();
79351 }
79352});
79353
79354
79355/***/ }),
79356
79357/***/ "./node_modules/d3-shape/src/symbol/diamond.js":
79358/*!*****************************************************!*\
79359 !*** ./node_modules/d3-shape/src/symbol/diamond.js ***!
79360 \*****************************************************/
79361/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
79362
79363"use strict";
79364__webpack_require__.r(__webpack_exports__);
79365/* harmony export */ __webpack_require__.d(__webpack_exports__, {
79366/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
79367/* harmony export */ });
79368var tan30 = Math.sqrt(1 / 3),
79369 tan30_2 = tan30 * 2;
79370
79371/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
79372 draw: function(context, size) {
79373 var y = Math.sqrt(size / tan30_2),
79374 x = y * tan30;
79375 context.moveTo(0, -y);
79376 context.lineTo(x, 0);
79377 context.lineTo(0, y);
79378 context.lineTo(-x, 0);
79379 context.closePath();
79380 }
79381});
79382
79383
79384/***/ }),
79385
79386/***/ "./node_modules/d3-shape/src/symbol/square.js":
79387/*!****************************************************!*\
79388 !*** ./node_modules/d3-shape/src/symbol/square.js ***!
79389 \****************************************************/
79390/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
79391
79392"use strict";
79393__webpack_require__.r(__webpack_exports__);
79394/* harmony export */ __webpack_require__.d(__webpack_exports__, {
79395/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
79396/* harmony export */ });
79397/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
79398 draw: function(context, size) {
79399 var w = Math.sqrt(size),
79400 x = -w / 2;
79401 context.rect(x, x, w, w);
79402 }
79403});
79404
79405
79406/***/ }),
79407
79408/***/ "./node_modules/d3-shape/src/symbol/star.js":
79409/*!**************************************************!*\
79410 !*** ./node_modules/d3-shape/src/symbol/star.js ***!
79411 \**************************************************/
79412/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
79413
79414"use strict";
79415__webpack_require__.r(__webpack_exports__);
79416/* harmony export */ __webpack_require__.d(__webpack_exports__, {
79417/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
79418/* harmony export */ });
79419/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ "./node_modules/d3-shape/src/math.js");
79420
79421
79422var ka = 0.89081309152928522810,
79423 kr = Math.sin(_math_js__WEBPACK_IMPORTED_MODULE_0__.pi / 10) / Math.sin(7 * _math_js__WEBPACK_IMPORTED_MODULE_0__.pi / 10),
79424 kx = Math.sin(_math_js__WEBPACK_IMPORTED_MODULE_0__.tau / 10) * kr,
79425 ky = -Math.cos(_math_js__WEBPACK_IMPORTED_MODULE_0__.tau / 10) * kr;
79426
79427/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
79428 draw: function(context, size) {
79429 var r = Math.sqrt(size * ka),
79430 x = kx * r,
79431 y = ky * r;
79432 context.moveTo(0, -r);
79433 context.lineTo(x, y);
79434 for (var i = 1; i < 5; ++i) {
79435 var a = _math_js__WEBPACK_IMPORTED_MODULE_0__.tau * i / 5,
79436 c = Math.cos(a),
79437 s = Math.sin(a);
79438 context.lineTo(s * r, -c * r);
79439 context.lineTo(c * x - s * y, s * x + c * y);
79440 }
79441 context.closePath();
79442 }
79443});
79444
79445
79446/***/ }),
79447
79448/***/ "./node_modules/d3-shape/src/symbol/triangle.js":
79449/*!******************************************************!*\
79450 !*** ./node_modules/d3-shape/src/symbol/triangle.js ***!
79451 \******************************************************/
79452/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
79453
79454"use strict";
79455__webpack_require__.r(__webpack_exports__);
79456/* harmony export */ __webpack_require__.d(__webpack_exports__, {
79457/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
79458/* harmony export */ });
79459var sqrt3 = Math.sqrt(3);
79460
79461/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
79462 draw: function(context, size) {
79463 var y = -Math.sqrt(size / (sqrt3 * 3));
79464 context.moveTo(0, y * 2);
79465 context.lineTo(-sqrt3 * y, -y);
79466 context.lineTo(sqrt3 * y, -y);
79467 context.closePath();
79468 }
79469});
79470
79471
79472/***/ }),
79473
79474/***/ "./node_modules/d3-shape/src/symbol/wye.js":
79475/*!*************************************************!*\
79476 !*** ./node_modules/d3-shape/src/symbol/wye.js ***!
79477 \*************************************************/
79478/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
79479
79480"use strict";
79481__webpack_require__.r(__webpack_exports__);
79482/* harmony export */ __webpack_require__.d(__webpack_exports__, {
79483/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
79484/* harmony export */ });
79485var c = -0.5,
79486 s = Math.sqrt(3) / 2,
79487 k = 1 / Math.sqrt(12),
79488 a = (k / 2 + 1) * 3;
79489
79490/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
79491 draw: function(context, size) {
79492 var r = Math.sqrt(size / a),
79493 x0 = r / 2,
79494 y0 = r * k,
79495 x1 = x0,
79496 y1 = r * k + r,
79497 x2 = -x1,
79498 y2 = y1;
79499 context.moveTo(x0, y0);
79500 context.lineTo(x1, y1);
79501 context.lineTo(x2, y2);
79502 context.lineTo(c * x0 - s * y0, s * x0 + c * y0);
79503 context.lineTo(c * x1 - s * y1, s * x1 + c * y1);
79504 context.lineTo(c * x2 - s * y2, s * x2 + c * y2);
79505 context.lineTo(c * x0 + s * y0, c * y0 - s * x0);
79506 context.lineTo(c * x1 + s * y1, c * y1 - s * x1);
79507 context.lineTo(c * x2 + s * y2, c * y2 - s * x2);
79508 context.closePath();
79509 }
79510});
79511
79512
79513/***/ }),
79514
79515/***/ "./node_modules/d3-time-format/src/defaultLocale.js":
79516/*!**********************************************************!*\
79517 !*** ./node_modules/d3-time-format/src/defaultLocale.js ***!
79518 \**********************************************************/
79519/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
79520
79521"use strict";
79522__webpack_require__.r(__webpack_exports__);
79523/* harmony export */ __webpack_require__.d(__webpack_exports__, {
79524/* harmony export */ "default": () => (/* binding */ defaultLocale),
79525/* harmony export */ "timeFormat": () => (/* binding */ timeFormat),
79526/* harmony export */ "timeParse": () => (/* binding */ timeParse),
79527/* harmony export */ "utcFormat": () => (/* binding */ utcFormat),
79528/* harmony export */ "utcParse": () => (/* binding */ utcParse)
79529/* harmony export */ });
79530/* harmony import */ var _locale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./locale.js */ "./node_modules/d3-time-format/src/locale.js");
79531
79532
79533var locale;
79534var timeFormat;
79535var timeParse;
79536var utcFormat;
79537var utcParse;
79538
79539defaultLocale({
79540 dateTime: "%x, %X",
79541 date: "%-m/%-d/%Y",
79542 time: "%-I:%M:%S %p",
79543 periods: ["AM", "PM"],
79544 days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
79545 shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
79546 months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
79547 shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
79548});
79549
79550function defaultLocale(definition) {
79551 locale = (0,_locale_js__WEBPACK_IMPORTED_MODULE_0__["default"])(definition);
79552 timeFormat = locale.format;
79553 timeParse = locale.parse;
79554 utcFormat = locale.utcFormat;
79555 utcParse = locale.utcParse;
79556 return locale;
79557}
79558
79559
79560/***/ }),
79561
79562/***/ "./node_modules/d3-time-format/src/index.js":
79563/*!**************************************************!*\
79564 !*** ./node_modules/d3-time-format/src/index.js ***!
79565 \**************************************************/
79566/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
79567
79568"use strict";
79569__webpack_require__.r(__webpack_exports__);
79570/* harmony export */ __webpack_require__.d(__webpack_exports__, {
79571/* harmony export */ "isoFormat": () => (/* reexport safe */ _isoFormat_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
79572/* harmony export */ "isoParse": () => (/* reexport safe */ _isoParse_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
79573/* harmony export */ "timeFormat": () => (/* reexport safe */ _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__.timeFormat),
79574/* harmony export */ "timeFormatDefaultLocale": () => (/* reexport safe */ _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
79575/* harmony export */ "timeFormatLocale": () => (/* reexport safe */ _locale_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
79576/* harmony export */ "timeParse": () => (/* reexport safe */ _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__.timeParse),
79577/* harmony export */ "utcFormat": () => (/* reexport safe */ _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__.utcFormat),
79578/* harmony export */ "utcParse": () => (/* reexport safe */ _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__.utcParse)
79579/* harmony export */ });
79580/* harmony import */ var _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultLocale.js */ "./node_modules/d3-time-format/src/defaultLocale.js");
79581/* harmony import */ var _locale_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./locale.js */ "./node_modules/d3-time-format/src/locale.js");
79582/* harmony import */ var _isoFormat_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isoFormat.js */ "./node_modules/d3-time-format/src/isoFormat.js");
79583/* harmony import */ var _isoParse_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isoParse.js */ "./node_modules/d3-time-format/src/isoParse.js");
79584
79585
79586
79587
79588
79589
79590/***/ }),
79591
79592/***/ "./node_modules/d3-time-format/src/isoFormat.js":
79593/*!******************************************************!*\
79594 !*** ./node_modules/d3-time-format/src/isoFormat.js ***!
79595 \******************************************************/
79596/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
79597
79598"use strict";
79599__webpack_require__.r(__webpack_exports__);
79600/* harmony export */ __webpack_require__.d(__webpack_exports__, {
79601/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
79602/* harmony export */ "isoSpecifier": () => (/* binding */ isoSpecifier)
79603/* harmony export */ });
79604/* harmony import */ var _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultLocale.js */ "./node_modules/d3-time-format/src/defaultLocale.js");
79605
79606
79607var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ";
79608
79609function formatIsoNative(date) {
79610 return date.toISOString();
79611}
79612
79613var formatIso = Date.prototype.toISOString
79614 ? formatIsoNative
79615 : (0,_defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__.utcFormat)(isoSpecifier);
79616
79617/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (formatIso);
79618
79619
79620/***/ }),
79621
79622/***/ "./node_modules/d3-time-format/src/isoParse.js":
79623/*!*****************************************************!*\
79624 !*** ./node_modules/d3-time-format/src/isoParse.js ***!
79625 \*****************************************************/
79626/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
79627
79628"use strict";
79629__webpack_require__.r(__webpack_exports__);
79630/* harmony export */ __webpack_require__.d(__webpack_exports__, {
79631/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
79632/* harmony export */ });
79633/* harmony import */ var _isoFormat_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isoFormat.js */ "./node_modules/d3-time-format/src/isoFormat.js");
79634/* harmony import */ var _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultLocale.js */ "./node_modules/d3-time-format/src/defaultLocale.js");
79635
79636
79637
79638function parseIsoNative(string) {
79639 var date = new Date(string);
79640 return isNaN(date) ? null : date;
79641}
79642
79643var parseIso = +new Date("2000-01-01T00:00:00.000Z")
79644 ? parseIsoNative
79645 : (0,_defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__.utcParse)(_isoFormat_js__WEBPACK_IMPORTED_MODULE_1__.isoSpecifier);
79646
79647/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (parseIso);
79648
79649
79650/***/ }),
79651
79652/***/ "./node_modules/d3-time-format/src/locale.js":
79653/*!***************************************************!*\
79654 !*** ./node_modules/d3-time-format/src/locale.js ***!
79655 \***************************************************/
79656/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
79657
79658"use strict";
79659__webpack_require__.r(__webpack_exports__);
79660/* harmony export */ __webpack_require__.d(__webpack_exports__, {
79661/* harmony export */ "default": () => (/* binding */ formatLocale)
79662/* harmony export */ });
79663/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/utcWeek.js");
79664/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/utcDay.js");
79665/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/week.js");
79666/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/day.js");
79667/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/year.js");
79668/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/utcYear.js");
79669
79670
79671function localDate(d) {
79672 if (0 <= d.y && d.y < 100) {
79673 var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
79674 date.setFullYear(d.y);
79675 return date;
79676 }
79677 return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
79678}
79679
79680function utcDate(d) {
79681 if (0 <= d.y && d.y < 100) {
79682 var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
79683 date.setUTCFullYear(d.y);
79684 return date;
79685 }
79686 return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
79687}
79688
79689function newDate(y, m, d) {
79690 return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};
79691}
79692
79693function formatLocale(locale) {
79694 var locale_dateTime = locale.dateTime,
79695 locale_date = locale.date,
79696 locale_time = locale.time,
79697 locale_periods = locale.periods,
79698 locale_weekdays = locale.days,
79699 locale_shortWeekdays = locale.shortDays,
79700 locale_months = locale.months,
79701 locale_shortMonths = locale.shortMonths;
79702
79703 var periodRe = formatRe(locale_periods),
79704 periodLookup = formatLookup(locale_periods),
79705 weekdayRe = formatRe(locale_weekdays),
79706 weekdayLookup = formatLookup(locale_weekdays),
79707 shortWeekdayRe = formatRe(locale_shortWeekdays),
79708 shortWeekdayLookup = formatLookup(locale_shortWeekdays),
79709 monthRe = formatRe(locale_months),
79710 monthLookup = formatLookup(locale_months),
79711 shortMonthRe = formatRe(locale_shortMonths),
79712 shortMonthLookup = formatLookup(locale_shortMonths);
79713
79714 var formats = {
79715 "a": formatShortWeekday,
79716 "A": formatWeekday,
79717 "b": formatShortMonth,
79718 "B": formatMonth,
79719 "c": null,
79720 "d": formatDayOfMonth,
79721 "e": formatDayOfMonth,
79722 "f": formatMicroseconds,
79723 "g": formatYearISO,
79724 "G": formatFullYearISO,
79725 "H": formatHour24,
79726 "I": formatHour12,
79727 "j": formatDayOfYear,
79728 "L": formatMilliseconds,
79729 "m": formatMonthNumber,
79730 "M": formatMinutes,
79731 "p": formatPeriod,
79732 "q": formatQuarter,
79733 "Q": formatUnixTimestamp,
79734 "s": formatUnixTimestampSeconds,
79735 "S": formatSeconds,
79736 "u": formatWeekdayNumberMonday,
79737 "U": formatWeekNumberSunday,
79738 "V": formatWeekNumberISO,
79739 "w": formatWeekdayNumberSunday,
79740 "W": formatWeekNumberMonday,
79741 "x": null,
79742 "X": null,
79743 "y": formatYear,
79744 "Y": formatFullYear,
79745 "Z": formatZone,
79746 "%": formatLiteralPercent
79747 };
79748
79749 var utcFormats = {
79750 "a": formatUTCShortWeekday,
79751 "A": formatUTCWeekday,
79752 "b": formatUTCShortMonth,
79753 "B": formatUTCMonth,
79754 "c": null,
79755 "d": formatUTCDayOfMonth,
79756 "e": formatUTCDayOfMonth,
79757 "f": formatUTCMicroseconds,
79758 "g": formatUTCYearISO,
79759 "G": formatUTCFullYearISO,
79760 "H": formatUTCHour24,
79761 "I": formatUTCHour12,
79762 "j": formatUTCDayOfYear,
79763 "L": formatUTCMilliseconds,
79764 "m": formatUTCMonthNumber,
79765 "M": formatUTCMinutes,
79766 "p": formatUTCPeriod,
79767 "q": formatUTCQuarter,
79768 "Q": formatUnixTimestamp,
79769 "s": formatUnixTimestampSeconds,
79770 "S": formatUTCSeconds,
79771 "u": formatUTCWeekdayNumberMonday,
79772 "U": formatUTCWeekNumberSunday,
79773 "V": formatUTCWeekNumberISO,
79774 "w": formatUTCWeekdayNumberSunday,
79775 "W": formatUTCWeekNumberMonday,
79776 "x": null,
79777 "X": null,
79778 "y": formatUTCYear,
79779 "Y": formatUTCFullYear,
79780 "Z": formatUTCZone,
79781 "%": formatLiteralPercent
79782 };
79783
79784 var parses = {
79785 "a": parseShortWeekday,
79786 "A": parseWeekday,
79787 "b": parseShortMonth,
79788 "B": parseMonth,
79789 "c": parseLocaleDateTime,
79790 "d": parseDayOfMonth,
79791 "e": parseDayOfMonth,
79792 "f": parseMicroseconds,
79793 "g": parseYear,
79794 "G": parseFullYear,
79795 "H": parseHour24,
79796 "I": parseHour24,
79797 "j": parseDayOfYear,
79798 "L": parseMilliseconds,
79799 "m": parseMonthNumber,
79800 "M": parseMinutes,
79801 "p": parsePeriod,
79802 "q": parseQuarter,
79803 "Q": parseUnixTimestamp,
79804 "s": parseUnixTimestampSeconds,
79805 "S": parseSeconds,
79806 "u": parseWeekdayNumberMonday,
79807 "U": parseWeekNumberSunday,
79808 "V": parseWeekNumberISO,
79809 "w": parseWeekdayNumberSunday,
79810 "W": parseWeekNumberMonday,
79811 "x": parseLocaleDate,
79812 "X": parseLocaleTime,
79813 "y": parseYear,
79814 "Y": parseFullYear,
79815 "Z": parseZone,
79816 "%": parseLiteralPercent
79817 };
79818
79819 // These recursive directive definitions must be deferred.
79820 formats.x = newFormat(locale_date, formats);
79821 formats.X = newFormat(locale_time, formats);
79822 formats.c = newFormat(locale_dateTime, formats);
79823 utcFormats.x = newFormat(locale_date, utcFormats);
79824 utcFormats.X = newFormat(locale_time, utcFormats);
79825 utcFormats.c = newFormat(locale_dateTime, utcFormats);
79826
79827 function newFormat(specifier, formats) {
79828 return function(date) {
79829 var string = [],
79830 i = -1,
79831 j = 0,
79832 n = specifier.length,
79833 c,
79834 pad,
79835 format;
79836
79837 if (!(date instanceof Date)) date = new Date(+date);
79838
79839 while (++i < n) {
79840 if (specifier.charCodeAt(i) === 37) {
79841 string.push(specifier.slice(j, i));
79842 if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);
79843 else pad = c === "e" ? " " : "0";
79844 if (format = formats[c]) c = format(date, pad);
79845 string.push(c);
79846 j = i + 1;
79847 }
79848 }
79849
79850 string.push(specifier.slice(j, i));
79851 return string.join("");
79852 };
79853 }
79854
79855 function newParse(specifier, Z) {
79856 return function(string) {
79857 var d = newDate(1900, undefined, 1),
79858 i = parseSpecifier(d, specifier, string += "", 0),
79859 week, day;
79860 if (i != string.length) return null;
79861
79862 // If a UNIX timestamp is specified, return it.
79863 if ("Q" in d) return new Date(d.Q);
79864 if ("s" in d) return new Date(d.s * 1000 + ("L" in d ? d.L : 0));
79865
79866 // If this is utcParse, never use the local timezone.
79867 if (Z && !("Z" in d)) d.Z = 0;
79868
79869 // The am-pm flag is 0 for AM, and 1 for PM.
79870 if ("p" in d) d.H = d.H % 12 + d.p * 12;
79871
79872 // If the month was not specified, inherit from the quarter.
79873 if (d.m === undefined) d.m = "q" in d ? d.q : 0;
79874
79875 // Convert day-of-week and week-of-year to day-of-year.
79876 if ("V" in d) {
79877 if (d.V < 1 || d.V > 53) return null;
79878 if (!("w" in d)) d.w = 1;
79879 if ("Z" in d) {
79880 week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();
79881 week = day > 4 || day === 0 ? d3_time__WEBPACK_IMPORTED_MODULE_0__.utcMonday.ceil(week) : (0,d3_time__WEBPACK_IMPORTED_MODULE_0__.utcMonday)(week);
79882 week = d3_time__WEBPACK_IMPORTED_MODULE_1__["default"].offset(week, (d.V - 1) * 7);
79883 d.y = week.getUTCFullYear();
79884 d.m = week.getUTCMonth();
79885 d.d = week.getUTCDate() + (d.w + 6) % 7;
79886 } else {
79887 week = localDate(newDate(d.y, 0, 1)), day = week.getDay();
79888 week = day > 4 || day === 0 ? d3_time__WEBPACK_IMPORTED_MODULE_2__.monday.ceil(week) : (0,d3_time__WEBPACK_IMPORTED_MODULE_2__.monday)(week);
79889 week = d3_time__WEBPACK_IMPORTED_MODULE_3__["default"].offset(week, (d.V - 1) * 7);
79890 d.y = week.getFullYear();
79891 d.m = week.getMonth();
79892 d.d = week.getDate() + (d.w + 6) % 7;
79893 }
79894 } else if ("W" in d || "U" in d) {
79895 if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
79896 day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
79897 d.m = 0;
79898 d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
79899 }
79900
79901 // If a time zone is specified, all fields are interpreted as UTC and then
79902 // offset according to the specified time zone.
79903 if ("Z" in d) {
79904 d.H += d.Z / 100 | 0;
79905 d.M += d.Z % 100;
79906 return utcDate(d);
79907 }
79908
79909 // Otherwise, all fields are in local time.
79910 return localDate(d);
79911 };
79912 }
79913
79914 function parseSpecifier(d, specifier, string, j) {
79915 var i = 0,
79916 n = specifier.length,
79917 m = string.length,
79918 c,
79919 parse;
79920
79921 while (i < n) {
79922 if (j >= m) return -1;
79923 c = specifier.charCodeAt(i++);
79924 if (c === 37) {
79925 c = specifier.charAt(i++);
79926 parse = parses[c in pads ? specifier.charAt(i++) : c];
79927 if (!parse || ((j = parse(d, string, j)) < 0)) return -1;
79928 } else if (c != string.charCodeAt(j++)) {
79929 return -1;
79930 }
79931 }
79932
79933 return j;
79934 }
79935
79936 function parsePeriod(d, string, i) {
79937 var n = periodRe.exec(string.slice(i));
79938 return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
79939 }
79940
79941 function parseShortWeekday(d, string, i) {
79942 var n = shortWeekdayRe.exec(string.slice(i));
79943 return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
79944 }
79945
79946 function parseWeekday(d, string, i) {
79947 var n = weekdayRe.exec(string.slice(i));
79948 return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
79949 }
79950
79951 function parseShortMonth(d, string, i) {
79952 var n = shortMonthRe.exec(string.slice(i));
79953 return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
79954 }
79955
79956 function parseMonth(d, string, i) {
79957 var n = monthRe.exec(string.slice(i));
79958 return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
79959 }
79960
79961 function parseLocaleDateTime(d, string, i) {
79962 return parseSpecifier(d, locale_dateTime, string, i);
79963 }
79964
79965 function parseLocaleDate(d, string, i) {
79966 return parseSpecifier(d, locale_date, string, i);
79967 }
79968
79969 function parseLocaleTime(d, string, i) {
79970 return parseSpecifier(d, locale_time, string, i);
79971 }
79972
79973 function formatShortWeekday(d) {
79974 return locale_shortWeekdays[d.getDay()];
79975 }
79976
79977 function formatWeekday(d) {
79978 return locale_weekdays[d.getDay()];
79979 }
79980
79981 function formatShortMonth(d) {
79982 return locale_shortMonths[d.getMonth()];
79983 }
79984
79985 function formatMonth(d) {
79986 return locale_months[d.getMonth()];
79987 }
79988
79989 function formatPeriod(d) {
79990 return locale_periods[+(d.getHours() >= 12)];
79991 }
79992
79993 function formatQuarter(d) {
79994 return 1 + ~~(d.getMonth() / 3);
79995 }
79996
79997 function formatUTCShortWeekday(d) {
79998 return locale_shortWeekdays[d.getUTCDay()];
79999 }
80000
80001 function formatUTCWeekday(d) {
80002 return locale_weekdays[d.getUTCDay()];
80003 }
80004
80005 function formatUTCShortMonth(d) {
80006 return locale_shortMonths[d.getUTCMonth()];
80007 }
80008
80009 function formatUTCMonth(d) {
80010 return locale_months[d.getUTCMonth()];
80011 }
80012
80013 function formatUTCPeriod(d) {
80014 return locale_periods[+(d.getUTCHours() >= 12)];
80015 }
80016
80017 function formatUTCQuarter(d) {
80018 return 1 + ~~(d.getUTCMonth() / 3);
80019 }
80020
80021 return {
80022 format: function(specifier) {
80023 var f = newFormat(specifier += "", formats);
80024 f.toString = function() { return specifier; };
80025 return f;
80026 },
80027 parse: function(specifier) {
80028 var p = newParse(specifier += "", false);
80029 p.toString = function() { return specifier; };
80030 return p;
80031 },
80032 utcFormat: function(specifier) {
80033 var f = newFormat(specifier += "", utcFormats);
80034 f.toString = function() { return specifier; };
80035 return f;
80036 },
80037 utcParse: function(specifier) {
80038 var p = newParse(specifier += "", true);
80039 p.toString = function() { return specifier; };
80040 return p;
80041 }
80042 };
80043}
80044
80045var pads = {"-": "", "_": " ", "0": "0"},
80046 numberRe = /^\s*\d+/, // note: ignores next directive
80047 percentRe = /^%/,
80048 requoteRe = /[\\^$*+?|[\]().{}]/g;
80049
80050function pad(value, fill, width) {
80051 var sign = value < 0 ? "-" : "",
80052 string = (sign ? -value : value) + "",
80053 length = string.length;
80054 return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
80055}
80056
80057function requote(s) {
80058 return s.replace(requoteRe, "\\$&");
80059}
80060
80061function formatRe(names) {
80062 return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
80063}
80064
80065function formatLookup(names) {
80066 return new Map(names.map((name, i) => [name.toLowerCase(), i]));
80067}
80068
80069function parseWeekdayNumberSunday(d, string, i) {
80070 var n = numberRe.exec(string.slice(i, i + 1));
80071 return n ? (d.w = +n[0], i + n[0].length) : -1;
80072}
80073
80074function parseWeekdayNumberMonday(d, string, i) {
80075 var n = numberRe.exec(string.slice(i, i + 1));
80076 return n ? (d.u = +n[0], i + n[0].length) : -1;
80077}
80078
80079function parseWeekNumberSunday(d, string, i) {
80080 var n = numberRe.exec(string.slice(i, i + 2));
80081 return n ? (d.U = +n[0], i + n[0].length) : -1;
80082}
80083
80084function parseWeekNumberISO(d, string, i) {
80085 var n = numberRe.exec(string.slice(i, i + 2));
80086 return n ? (d.V = +n[0], i + n[0].length) : -1;
80087}
80088
80089function parseWeekNumberMonday(d, string, i) {
80090 var n = numberRe.exec(string.slice(i, i + 2));
80091 return n ? (d.W = +n[0], i + n[0].length) : -1;
80092}
80093
80094function parseFullYear(d, string, i) {
80095 var n = numberRe.exec(string.slice(i, i + 4));
80096 return n ? (d.y = +n[0], i + n[0].length) : -1;
80097}
80098
80099function parseYear(d, string, i) {
80100 var n = numberRe.exec(string.slice(i, i + 2));
80101 return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;
80102}
80103
80104function parseZone(d, string, i) {
80105 var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6));
80106 return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1;
80107}
80108
80109function parseQuarter(d, string, i) {
80110 var n = numberRe.exec(string.slice(i, i + 1));
80111 return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;
80112}
80113
80114function parseMonthNumber(d, string, i) {
80115 var n = numberRe.exec(string.slice(i, i + 2));
80116 return n ? (d.m = n[0] - 1, i + n[0].length) : -1;
80117}
80118
80119function parseDayOfMonth(d, string, i) {
80120 var n = numberRe.exec(string.slice(i, i + 2));
80121 return n ? (d.d = +n[0], i + n[0].length) : -1;
80122}
80123
80124function parseDayOfYear(d, string, i) {
80125 var n = numberRe.exec(string.slice(i, i + 3));
80126 return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;
80127}
80128
80129function parseHour24(d, string, i) {
80130 var n = numberRe.exec(string.slice(i, i + 2));
80131 return n ? (d.H = +n[0], i + n[0].length) : -1;
80132}
80133
80134function parseMinutes(d, string, i) {
80135 var n = numberRe.exec(string.slice(i, i + 2));
80136 return n ? (d.M = +n[0], i + n[0].length) : -1;
80137}
80138
80139function parseSeconds(d, string, i) {
80140 var n = numberRe.exec(string.slice(i, i + 2));
80141 return n ? (d.S = +n[0], i + n[0].length) : -1;
80142}
80143
80144function parseMilliseconds(d, string, i) {
80145 var n = numberRe.exec(string.slice(i, i + 3));
80146 return n ? (d.L = +n[0], i + n[0].length) : -1;
80147}
80148
80149function parseMicroseconds(d, string, i) {
80150 var n = numberRe.exec(string.slice(i, i + 6));
80151 return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;
80152}
80153
80154function parseLiteralPercent(d, string, i) {
80155 var n = percentRe.exec(string.slice(i, i + 1));
80156 return n ? i + n[0].length : -1;
80157}
80158
80159function parseUnixTimestamp(d, string, i) {
80160 var n = numberRe.exec(string.slice(i));
80161 return n ? (d.Q = +n[0], i + n[0].length) : -1;
80162}
80163
80164function parseUnixTimestampSeconds(d, string, i) {
80165 var n = numberRe.exec(string.slice(i));
80166 return n ? (d.s = +n[0], i + n[0].length) : -1;
80167}
80168
80169function formatDayOfMonth(d, p) {
80170 return pad(d.getDate(), p, 2);
80171}
80172
80173function formatHour24(d, p) {
80174 return pad(d.getHours(), p, 2);
80175}
80176
80177function formatHour12(d, p) {
80178 return pad(d.getHours() % 12 || 12, p, 2);
80179}
80180
80181function formatDayOfYear(d, p) {
80182 return pad(1 + d3_time__WEBPACK_IMPORTED_MODULE_3__["default"].count((0,d3_time__WEBPACK_IMPORTED_MODULE_4__["default"])(d), d), p, 3);
80183}
80184
80185function formatMilliseconds(d, p) {
80186 return pad(d.getMilliseconds(), p, 3);
80187}
80188
80189function formatMicroseconds(d, p) {
80190 return formatMilliseconds(d, p) + "000";
80191}
80192
80193function formatMonthNumber(d, p) {
80194 return pad(d.getMonth() + 1, p, 2);
80195}
80196
80197function formatMinutes(d, p) {
80198 return pad(d.getMinutes(), p, 2);
80199}
80200
80201function formatSeconds(d, p) {
80202 return pad(d.getSeconds(), p, 2);
80203}
80204
80205function formatWeekdayNumberMonday(d) {
80206 var day = d.getDay();
80207 return day === 0 ? 7 : day;
80208}
80209
80210function formatWeekNumberSunday(d, p) {
80211 return pad(d3_time__WEBPACK_IMPORTED_MODULE_2__.sunday.count((0,d3_time__WEBPACK_IMPORTED_MODULE_4__["default"])(d) - 1, d), p, 2);
80212}
80213
80214function dISO(d) {
80215 var day = d.getDay();
80216 return (day >= 4 || day === 0) ? (0,d3_time__WEBPACK_IMPORTED_MODULE_2__.thursday)(d) : d3_time__WEBPACK_IMPORTED_MODULE_2__.thursday.ceil(d);
80217}
80218
80219function formatWeekNumberISO(d, p) {
80220 d = dISO(d);
80221 return pad(d3_time__WEBPACK_IMPORTED_MODULE_2__.thursday.count((0,d3_time__WEBPACK_IMPORTED_MODULE_4__["default"])(d), d) + ((0,d3_time__WEBPACK_IMPORTED_MODULE_4__["default"])(d).getDay() === 4), p, 2);
80222}
80223
80224function formatWeekdayNumberSunday(d) {
80225 return d.getDay();
80226}
80227
80228function formatWeekNumberMonday(d, p) {
80229 return pad(d3_time__WEBPACK_IMPORTED_MODULE_2__.monday.count((0,d3_time__WEBPACK_IMPORTED_MODULE_4__["default"])(d) - 1, d), p, 2);
80230}
80231
80232function formatYear(d, p) {
80233 return pad(d.getFullYear() % 100, p, 2);
80234}
80235
80236function formatYearISO(d, p) {
80237 d = dISO(d);
80238 return pad(d.getFullYear() % 100, p, 2);
80239}
80240
80241function formatFullYear(d, p) {
80242 return pad(d.getFullYear() % 10000, p, 4);
80243}
80244
80245function formatFullYearISO(d, p) {
80246 var day = d.getDay();
80247 d = (day >= 4 || day === 0) ? (0,d3_time__WEBPACK_IMPORTED_MODULE_2__.thursday)(d) : d3_time__WEBPACK_IMPORTED_MODULE_2__.thursday.ceil(d);
80248 return pad(d.getFullYear() % 10000, p, 4);
80249}
80250
80251function formatZone(d) {
80252 var z = d.getTimezoneOffset();
80253 return (z > 0 ? "-" : (z *= -1, "+"))
80254 + pad(z / 60 | 0, "0", 2)
80255 + pad(z % 60, "0", 2);
80256}
80257
80258function formatUTCDayOfMonth(d, p) {
80259 return pad(d.getUTCDate(), p, 2);
80260}
80261
80262function formatUTCHour24(d, p) {
80263 return pad(d.getUTCHours(), p, 2);
80264}
80265
80266function formatUTCHour12(d, p) {
80267 return pad(d.getUTCHours() % 12 || 12, p, 2);
80268}
80269
80270function formatUTCDayOfYear(d, p) {
80271 return pad(1 + d3_time__WEBPACK_IMPORTED_MODULE_1__["default"].count((0,d3_time__WEBPACK_IMPORTED_MODULE_5__["default"])(d), d), p, 3);
80272}
80273
80274function formatUTCMilliseconds(d, p) {
80275 return pad(d.getUTCMilliseconds(), p, 3);
80276}
80277
80278function formatUTCMicroseconds(d, p) {
80279 return formatUTCMilliseconds(d, p) + "000";
80280}
80281
80282function formatUTCMonthNumber(d, p) {
80283 return pad(d.getUTCMonth() + 1, p, 2);
80284}
80285
80286function formatUTCMinutes(d, p) {
80287 return pad(d.getUTCMinutes(), p, 2);
80288}
80289
80290function formatUTCSeconds(d, p) {
80291 return pad(d.getUTCSeconds(), p, 2);
80292}
80293
80294function formatUTCWeekdayNumberMonday(d) {
80295 var dow = d.getUTCDay();
80296 return dow === 0 ? 7 : dow;
80297}
80298
80299function formatUTCWeekNumberSunday(d, p) {
80300 return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__.utcSunday.count((0,d3_time__WEBPACK_IMPORTED_MODULE_5__["default"])(d) - 1, d), p, 2);
80301}
80302
80303function UTCdISO(d) {
80304 var day = d.getUTCDay();
80305 return (day >= 4 || day === 0) ? (0,d3_time__WEBPACK_IMPORTED_MODULE_0__.utcThursday)(d) : d3_time__WEBPACK_IMPORTED_MODULE_0__.utcThursday.ceil(d);
80306}
80307
80308function formatUTCWeekNumberISO(d, p) {
80309 d = UTCdISO(d);
80310 return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__.utcThursday.count((0,d3_time__WEBPACK_IMPORTED_MODULE_5__["default"])(d), d) + ((0,d3_time__WEBPACK_IMPORTED_MODULE_5__["default"])(d).getUTCDay() === 4), p, 2);
80311}
80312
80313function formatUTCWeekdayNumberSunday(d) {
80314 return d.getUTCDay();
80315}
80316
80317function formatUTCWeekNumberMonday(d, p) {
80318 return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__.utcMonday.count((0,d3_time__WEBPACK_IMPORTED_MODULE_5__["default"])(d) - 1, d), p, 2);
80319}
80320
80321function formatUTCYear(d, p) {
80322 return pad(d.getUTCFullYear() % 100, p, 2);
80323}
80324
80325function formatUTCYearISO(d, p) {
80326 d = UTCdISO(d);
80327 return pad(d.getUTCFullYear() % 100, p, 2);
80328}
80329
80330function formatUTCFullYear(d, p) {
80331 return pad(d.getUTCFullYear() % 10000, p, 4);
80332}
80333
80334function formatUTCFullYearISO(d, p) {
80335 var day = d.getUTCDay();
80336 d = (day >= 4 || day === 0) ? (0,d3_time__WEBPACK_IMPORTED_MODULE_0__.utcThursday)(d) : d3_time__WEBPACK_IMPORTED_MODULE_0__.utcThursday.ceil(d);
80337 return pad(d.getUTCFullYear() % 10000, p, 4);
80338}
80339
80340function formatUTCZone() {
80341 return "+0000";
80342}
80343
80344function formatLiteralPercent() {
80345 return "%";
80346}
80347
80348function formatUnixTimestamp(d) {
80349 return +d;
80350}
80351
80352function formatUnixTimestampSeconds(d) {
80353 return Math.floor(+d / 1000);
80354}
80355
80356
80357/***/ }),
80358
80359/***/ "./node_modules/d3-time/src/day.js":
80360/*!*****************************************!*\
80361 !*** ./node_modules/d3-time/src/day.js ***!
80362 \*****************************************/
80363/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
80364
80365"use strict";
80366__webpack_require__.r(__webpack_exports__);
80367/* harmony export */ __webpack_require__.d(__webpack_exports__, {
80368/* harmony export */ "days": () => (/* binding */ days),
80369/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
80370/* harmony export */ });
80371/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
80372/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
80373
80374
80375
80376var day = (0,_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(
80377 date => date.setHours(0, 0, 0, 0),
80378 (date, step) => date.setDate(date.getDate() + step),
80379 (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationMinute) / _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationDay,
80380 date => date.getDate() - 1
80381);
80382
80383/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (day);
80384var days = day.range;
80385
80386
80387/***/ }),
80388
80389/***/ "./node_modules/d3-time/src/duration.js":
80390/*!**********************************************!*\
80391 !*** ./node_modules/d3-time/src/duration.js ***!
80392 \**********************************************/
80393/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
80394
80395"use strict";
80396__webpack_require__.r(__webpack_exports__);
80397/* harmony export */ __webpack_require__.d(__webpack_exports__, {
80398/* harmony export */ "durationDay": () => (/* binding */ durationDay),
80399/* harmony export */ "durationHour": () => (/* binding */ durationHour),
80400/* harmony export */ "durationMinute": () => (/* binding */ durationMinute),
80401/* harmony export */ "durationMonth": () => (/* binding */ durationMonth),
80402/* harmony export */ "durationSecond": () => (/* binding */ durationSecond),
80403/* harmony export */ "durationWeek": () => (/* binding */ durationWeek),
80404/* harmony export */ "durationYear": () => (/* binding */ durationYear)
80405/* harmony export */ });
80406const durationSecond = 1000;
80407const durationMinute = durationSecond * 60;
80408const durationHour = durationMinute * 60;
80409const durationDay = durationHour * 24;
80410const durationWeek = durationDay * 7;
80411const durationMonth = durationDay * 30;
80412const durationYear = durationDay * 365;
80413
80414
80415/***/ }),
80416
80417/***/ "./node_modules/d3-time/src/hour.js":
80418/*!******************************************!*\
80419 !*** ./node_modules/d3-time/src/hour.js ***!
80420 \******************************************/
80421/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
80422
80423"use strict";
80424__webpack_require__.r(__webpack_exports__);
80425/* harmony export */ __webpack_require__.d(__webpack_exports__, {
80426/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
80427/* harmony export */ "hours": () => (/* binding */ hours)
80428/* harmony export */ });
80429/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
80430/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
80431
80432
80433
80434var hour = (0,_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
80435 date.setTime(date - date.getMilliseconds() - date.getSeconds() * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationSecond - date.getMinutes() * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationMinute);
80436}, function(date, step) {
80437 date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationHour);
80438}, function(start, end) {
80439 return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationHour;
80440}, function(date) {
80441 return date.getHours();
80442});
80443
80444/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (hour);
80445var hours = hour.range;
80446
80447
80448/***/ }),
80449
80450/***/ "./node_modules/d3-time/src/index.js":
80451/*!*******************************************!*\
80452 !*** ./node_modules/d3-time/src/index.js ***!
80453 \*******************************************/
80454/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
80455
80456"use strict";
80457__webpack_require__.r(__webpack_exports__);
80458/* harmony export */ __webpack_require__.d(__webpack_exports__, {
80459/* harmony export */ "timeDay": () => (/* reexport safe */ _day_js__WEBPACK_IMPORTED_MODULE_5__["default"]),
80460/* harmony export */ "timeDays": () => (/* reexport safe */ _day_js__WEBPACK_IMPORTED_MODULE_5__.days),
80461/* harmony export */ "timeFriday": () => (/* reexport safe */ _week_js__WEBPACK_IMPORTED_MODULE_6__.friday),
80462/* harmony export */ "timeFridays": () => (/* reexport safe */ _week_js__WEBPACK_IMPORTED_MODULE_6__.fridays),
80463/* harmony export */ "timeHour": () => (/* reexport safe */ _hour_js__WEBPACK_IMPORTED_MODULE_4__["default"]),
80464/* harmony export */ "timeHours": () => (/* reexport safe */ _hour_js__WEBPACK_IMPORTED_MODULE_4__.hours),
80465/* harmony export */ "timeInterval": () => (/* reexport safe */ _interval_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
80466/* harmony export */ "timeMillisecond": () => (/* reexport safe */ _millisecond_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
80467/* harmony export */ "timeMilliseconds": () => (/* reexport safe */ _millisecond_js__WEBPACK_IMPORTED_MODULE_1__.milliseconds),
80468/* harmony export */ "timeMinute": () => (/* reexport safe */ _minute_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
80469/* harmony export */ "timeMinutes": () => (/* reexport safe */ _minute_js__WEBPACK_IMPORTED_MODULE_3__.minutes),
80470/* harmony export */ "timeMonday": () => (/* reexport safe */ _week_js__WEBPACK_IMPORTED_MODULE_6__.monday),
80471/* harmony export */ "timeMondays": () => (/* reexport safe */ _week_js__WEBPACK_IMPORTED_MODULE_6__.mondays),
80472/* harmony export */ "timeMonth": () => (/* reexport safe */ _month_js__WEBPACK_IMPORTED_MODULE_7__["default"]),
80473/* harmony export */ "timeMonths": () => (/* reexport safe */ _month_js__WEBPACK_IMPORTED_MODULE_7__.months),
80474/* harmony export */ "timeSaturday": () => (/* reexport safe */ _week_js__WEBPACK_IMPORTED_MODULE_6__.saturday),
80475/* harmony export */ "timeSaturdays": () => (/* reexport safe */ _week_js__WEBPACK_IMPORTED_MODULE_6__.saturdays),
80476/* harmony export */ "timeSecond": () => (/* reexport safe */ _second_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
80477/* harmony export */ "timeSeconds": () => (/* reexport safe */ _second_js__WEBPACK_IMPORTED_MODULE_2__.seconds),
80478/* harmony export */ "timeSunday": () => (/* reexport safe */ _week_js__WEBPACK_IMPORTED_MODULE_6__.sunday),
80479/* harmony export */ "timeSundays": () => (/* reexport safe */ _week_js__WEBPACK_IMPORTED_MODULE_6__.sundays),
80480/* harmony export */ "timeThursday": () => (/* reexport safe */ _week_js__WEBPACK_IMPORTED_MODULE_6__.thursday),
80481/* harmony export */ "timeThursdays": () => (/* reexport safe */ _week_js__WEBPACK_IMPORTED_MODULE_6__.thursdays),
80482/* harmony export */ "timeTickInterval": () => (/* reexport safe */ _ticks_js__WEBPACK_IMPORTED_MODULE_15__.timeTickInterval),
80483/* harmony export */ "timeTicks": () => (/* reexport safe */ _ticks_js__WEBPACK_IMPORTED_MODULE_15__.timeTicks),
80484/* harmony export */ "timeTuesday": () => (/* reexport safe */ _week_js__WEBPACK_IMPORTED_MODULE_6__.tuesday),
80485/* harmony export */ "timeTuesdays": () => (/* reexport safe */ _week_js__WEBPACK_IMPORTED_MODULE_6__.tuesdays),
80486/* harmony export */ "timeWednesday": () => (/* reexport safe */ _week_js__WEBPACK_IMPORTED_MODULE_6__.wednesday),
80487/* harmony export */ "timeWednesdays": () => (/* reexport safe */ _week_js__WEBPACK_IMPORTED_MODULE_6__.wednesdays),
80488/* harmony export */ "timeWeek": () => (/* reexport safe */ _week_js__WEBPACK_IMPORTED_MODULE_6__.sunday),
80489/* harmony export */ "timeWeeks": () => (/* reexport safe */ _week_js__WEBPACK_IMPORTED_MODULE_6__.sundays),
80490/* harmony export */ "timeYear": () => (/* reexport safe */ _year_js__WEBPACK_IMPORTED_MODULE_8__["default"]),
80491/* harmony export */ "timeYears": () => (/* reexport safe */ _year_js__WEBPACK_IMPORTED_MODULE_8__.years),
80492/* harmony export */ "utcDay": () => (/* reexport safe */ _utcDay_js__WEBPACK_IMPORTED_MODULE_11__["default"]),
80493/* harmony export */ "utcDays": () => (/* reexport safe */ _utcDay_js__WEBPACK_IMPORTED_MODULE_11__.utcDays),
80494/* harmony export */ "utcFriday": () => (/* reexport safe */ _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__.utcFriday),
80495/* harmony export */ "utcFridays": () => (/* reexport safe */ _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__.utcFridays),
80496/* harmony export */ "utcHour": () => (/* reexport safe */ _utcHour_js__WEBPACK_IMPORTED_MODULE_10__["default"]),
80497/* harmony export */ "utcHours": () => (/* reexport safe */ _utcHour_js__WEBPACK_IMPORTED_MODULE_10__.utcHours),
80498/* harmony export */ "utcMillisecond": () => (/* reexport safe */ _millisecond_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
80499/* harmony export */ "utcMilliseconds": () => (/* reexport safe */ _millisecond_js__WEBPACK_IMPORTED_MODULE_1__.milliseconds),
80500/* harmony export */ "utcMinute": () => (/* reexport safe */ _utcMinute_js__WEBPACK_IMPORTED_MODULE_9__["default"]),
80501/* harmony export */ "utcMinutes": () => (/* reexport safe */ _utcMinute_js__WEBPACK_IMPORTED_MODULE_9__.utcMinutes),
80502/* harmony export */ "utcMonday": () => (/* reexport safe */ _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__.utcMonday),
80503/* harmony export */ "utcMondays": () => (/* reexport safe */ _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__.utcMondays),
80504/* harmony export */ "utcMonth": () => (/* reexport safe */ _utcMonth_js__WEBPACK_IMPORTED_MODULE_13__["default"]),
80505/* harmony export */ "utcMonths": () => (/* reexport safe */ _utcMonth_js__WEBPACK_IMPORTED_MODULE_13__.utcMonths),
80506/* harmony export */ "utcSaturday": () => (/* reexport safe */ _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__.utcSaturday),
80507/* harmony export */ "utcSaturdays": () => (/* reexport safe */ _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__.utcSaturdays),
80508/* harmony export */ "utcSecond": () => (/* reexport safe */ _second_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
80509/* harmony export */ "utcSeconds": () => (/* reexport safe */ _second_js__WEBPACK_IMPORTED_MODULE_2__.seconds),
80510/* harmony export */ "utcSunday": () => (/* reexport safe */ _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__.utcSunday),
80511/* harmony export */ "utcSundays": () => (/* reexport safe */ _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__.utcSundays),
80512/* harmony export */ "utcThursday": () => (/* reexport safe */ _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__.utcThursday),
80513/* harmony export */ "utcThursdays": () => (/* reexport safe */ _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__.utcThursdays),
80514/* harmony export */ "utcTickInterval": () => (/* reexport safe */ _ticks_js__WEBPACK_IMPORTED_MODULE_15__.utcTickInterval),
80515/* harmony export */ "utcTicks": () => (/* reexport safe */ _ticks_js__WEBPACK_IMPORTED_MODULE_15__.utcTicks),
80516/* harmony export */ "utcTuesday": () => (/* reexport safe */ _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__.utcTuesday),
80517/* harmony export */ "utcTuesdays": () => (/* reexport safe */ _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__.utcTuesdays),
80518/* harmony export */ "utcWednesday": () => (/* reexport safe */ _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__.utcWednesday),
80519/* harmony export */ "utcWednesdays": () => (/* reexport safe */ _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__.utcWednesdays),
80520/* harmony export */ "utcWeek": () => (/* reexport safe */ _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__.utcSunday),
80521/* harmony export */ "utcWeeks": () => (/* reexport safe */ _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__.utcSundays),
80522/* harmony export */ "utcYear": () => (/* reexport safe */ _utcYear_js__WEBPACK_IMPORTED_MODULE_14__["default"]),
80523/* harmony export */ "utcYears": () => (/* reexport safe */ _utcYear_js__WEBPACK_IMPORTED_MODULE_14__.utcYears)
80524/* harmony export */ });
80525/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
80526/* harmony import */ var _millisecond_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./millisecond.js */ "./node_modules/d3-time/src/millisecond.js");
80527/* harmony import */ var _second_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./second.js */ "./node_modules/d3-time/src/second.js");
80528/* harmony import */ var _minute_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./minute.js */ "./node_modules/d3-time/src/minute.js");
80529/* harmony import */ var _hour_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./hour.js */ "./node_modules/d3-time/src/hour.js");
80530/* harmony import */ var _day_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./day.js */ "./node_modules/d3-time/src/day.js");
80531/* harmony import */ var _week_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./week.js */ "./node_modules/d3-time/src/week.js");
80532/* harmony import */ var _month_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./month.js */ "./node_modules/d3-time/src/month.js");
80533/* harmony import */ var _year_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./year.js */ "./node_modules/d3-time/src/year.js");
80534/* harmony import */ var _utcMinute_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utcMinute.js */ "./node_modules/d3-time/src/utcMinute.js");
80535/* harmony import */ var _utcHour_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utcHour.js */ "./node_modules/d3-time/src/utcHour.js");
80536/* harmony import */ var _utcDay_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utcDay.js */ "./node_modules/d3-time/src/utcDay.js");
80537/* harmony import */ var _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utcWeek.js */ "./node_modules/d3-time/src/utcWeek.js");
80538/* harmony import */ var _utcMonth_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./utcMonth.js */ "./node_modules/d3-time/src/utcMonth.js");
80539/* harmony import */ var _utcYear_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./utcYear.js */ "./node_modules/d3-time/src/utcYear.js");
80540/* harmony import */ var _ticks_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./ticks.js */ "./node_modules/d3-time/src/ticks.js");
80541
80542
80543
80544
80545
80546
80547
80548
80549
80550
80551
80552
80553
80554
80555
80556
80557
80558
80559
80560
80561
80562
80563
80564
80565
80566
80567
80568
80569
80570
80571
80572
80573
80574/***/ }),
80575
80576/***/ "./node_modules/d3-time/src/interval.js":
80577/*!**********************************************!*\
80578 !*** ./node_modules/d3-time/src/interval.js ***!
80579 \**********************************************/
80580/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
80581
80582"use strict";
80583__webpack_require__.r(__webpack_exports__);
80584/* harmony export */ __webpack_require__.d(__webpack_exports__, {
80585/* harmony export */ "default": () => (/* binding */ newInterval)
80586/* harmony export */ });
80587var t0 = new Date,
80588 t1 = new Date;
80589
80590function newInterval(floori, offseti, count, field) {
80591
80592 function interval(date) {
80593 return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;
80594 }
80595
80596 interval.floor = function(date) {
80597 return floori(date = new Date(+date)), date;
80598 };
80599
80600 interval.ceil = function(date) {
80601 return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;
80602 };
80603
80604 interval.round = function(date) {
80605 var d0 = interval(date),
80606 d1 = interval.ceil(date);
80607 return date - d0 < d1 - date ? d0 : d1;
80608 };
80609
80610 interval.offset = function(date, step) {
80611 return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;
80612 };
80613
80614 interval.range = function(start, stop, step) {
80615 var range = [], previous;
80616 start = interval.ceil(start);
80617 step = step == null ? 1 : Math.floor(step);
80618 if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date
80619 do range.push(previous = new Date(+start)), offseti(start, step), floori(start);
80620 while (previous < start && start < stop);
80621 return range;
80622 };
80623
80624 interval.filter = function(test) {
80625 return newInterval(function(date) {
80626 if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);
80627 }, function(date, step) {
80628 if (date >= date) {
80629 if (step < 0) while (++step <= 0) {
80630 while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty
80631 } else while (--step >= 0) {
80632 while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty
80633 }
80634 }
80635 });
80636 };
80637
80638 if (count) {
80639 interval.count = function(start, end) {
80640 t0.setTime(+start), t1.setTime(+end);
80641 floori(t0), floori(t1);
80642 return Math.floor(count(t0, t1));
80643 };
80644
80645 interval.every = function(step) {
80646 step = Math.floor(step);
80647 return !isFinite(step) || !(step > 0) ? null
80648 : !(step > 1) ? interval
80649 : interval.filter(field
80650 ? function(d) { return field(d) % step === 0; }
80651 : function(d) { return interval.count(0, d) % step === 0; });
80652 };
80653 }
80654
80655 return interval;
80656}
80657
80658
80659/***/ }),
80660
80661/***/ "./node_modules/d3-time/src/millisecond.js":
80662/*!*************************************************!*\
80663 !*** ./node_modules/d3-time/src/millisecond.js ***!
80664 \*************************************************/
80665/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
80666
80667"use strict";
80668__webpack_require__.r(__webpack_exports__);
80669/* harmony export */ __webpack_require__.d(__webpack_exports__, {
80670/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
80671/* harmony export */ "milliseconds": () => (/* binding */ milliseconds)
80672/* harmony export */ });
80673/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
80674
80675
80676var millisecond = (0,_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function() {
80677 // noop
80678}, function(date, step) {
80679 date.setTime(+date + step);
80680}, function(start, end) {
80681 return end - start;
80682});
80683
80684// An optimized implementation for this simple case.
80685millisecond.every = function(k) {
80686 k = Math.floor(k);
80687 if (!isFinite(k) || !(k > 0)) return null;
80688 if (!(k > 1)) return millisecond;
80689 return (0,_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
80690 date.setTime(Math.floor(date / k) * k);
80691 }, function(date, step) {
80692 date.setTime(+date + step * k);
80693 }, function(start, end) {
80694 return (end - start) / k;
80695 });
80696};
80697
80698/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (millisecond);
80699var milliseconds = millisecond.range;
80700
80701
80702/***/ }),
80703
80704/***/ "./node_modules/d3-time/src/minute.js":
80705/*!********************************************!*\
80706 !*** ./node_modules/d3-time/src/minute.js ***!
80707 \********************************************/
80708/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
80709
80710"use strict";
80711__webpack_require__.r(__webpack_exports__);
80712/* harmony export */ __webpack_require__.d(__webpack_exports__, {
80713/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
80714/* harmony export */ "minutes": () => (/* binding */ minutes)
80715/* harmony export */ });
80716/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
80717/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
80718
80719
80720
80721var minute = (0,_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
80722 date.setTime(date - date.getMilliseconds() - date.getSeconds() * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationSecond);
80723}, function(date, step) {
80724 date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationMinute);
80725}, function(start, end) {
80726 return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationMinute;
80727}, function(date) {
80728 return date.getMinutes();
80729});
80730
80731/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (minute);
80732var minutes = minute.range;
80733
80734
80735/***/ }),
80736
80737/***/ "./node_modules/d3-time/src/month.js":
80738/*!*******************************************!*\
80739 !*** ./node_modules/d3-time/src/month.js ***!
80740 \*******************************************/
80741/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
80742
80743"use strict";
80744__webpack_require__.r(__webpack_exports__);
80745/* harmony export */ __webpack_require__.d(__webpack_exports__, {
80746/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
80747/* harmony export */ "months": () => (/* binding */ months)
80748/* harmony export */ });
80749/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
80750
80751
80752var month = (0,_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
80753 date.setDate(1);
80754 date.setHours(0, 0, 0, 0);
80755}, function(date, step) {
80756 date.setMonth(date.getMonth() + step);
80757}, function(start, end) {
80758 return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;
80759}, function(date) {
80760 return date.getMonth();
80761});
80762
80763/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (month);
80764var months = month.range;
80765
80766
80767/***/ }),
80768
80769/***/ "./node_modules/d3-time/src/second.js":
80770/*!********************************************!*\
80771 !*** ./node_modules/d3-time/src/second.js ***!
80772 \********************************************/
80773/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
80774
80775"use strict";
80776__webpack_require__.r(__webpack_exports__);
80777/* harmony export */ __webpack_require__.d(__webpack_exports__, {
80778/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
80779/* harmony export */ "seconds": () => (/* binding */ seconds)
80780/* harmony export */ });
80781/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
80782/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
80783
80784
80785
80786var second = (0,_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
80787 date.setTime(date - date.getMilliseconds());
80788}, function(date, step) {
80789 date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationSecond);
80790}, function(start, end) {
80791 return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationSecond;
80792}, function(date) {
80793 return date.getUTCSeconds();
80794});
80795
80796/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (second);
80797var seconds = second.range;
80798
80799
80800/***/ }),
80801
80802/***/ "./node_modules/d3-time/src/ticks.js":
80803/*!*******************************************!*\
80804 !*** ./node_modules/d3-time/src/ticks.js ***!
80805 \*******************************************/
80806/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
80807
80808"use strict";
80809__webpack_require__.r(__webpack_exports__);
80810/* harmony export */ __webpack_require__.d(__webpack_exports__, {
80811/* harmony export */ "timeTickInterval": () => (/* binding */ timeTickInterval),
80812/* harmony export */ "timeTicks": () => (/* binding */ timeTicks),
80813/* harmony export */ "utcTickInterval": () => (/* binding */ utcTickInterval),
80814/* harmony export */ "utcTicks": () => (/* binding */ utcTicks)
80815/* harmony export */ });
80816/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/bisector.js");
80817/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/ticks.js");
80818/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
80819/* harmony import */ var _millisecond_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./millisecond.js */ "./node_modules/d3-time/src/millisecond.js");
80820/* harmony import */ var _second_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./second.js */ "./node_modules/d3-time/src/second.js");
80821/* harmony import */ var _minute_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./minute.js */ "./node_modules/d3-time/src/minute.js");
80822/* harmony import */ var _hour_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./hour.js */ "./node_modules/d3-time/src/hour.js");
80823/* harmony import */ var _day_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./day.js */ "./node_modules/d3-time/src/day.js");
80824/* harmony import */ var _week_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./week.js */ "./node_modules/d3-time/src/week.js");
80825/* harmony import */ var _month_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./month.js */ "./node_modules/d3-time/src/month.js");
80826/* harmony import */ var _year_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./year.js */ "./node_modules/d3-time/src/year.js");
80827/* harmony import */ var _utcMinute_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utcMinute.js */ "./node_modules/d3-time/src/utcMinute.js");
80828/* harmony import */ var _utcHour_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utcHour.js */ "./node_modules/d3-time/src/utcHour.js");
80829/* harmony import */ var _utcDay_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utcDay.js */ "./node_modules/d3-time/src/utcDay.js");
80830/* harmony import */ var _utcWeek_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utcWeek.js */ "./node_modules/d3-time/src/utcWeek.js");
80831/* harmony import */ var _utcMonth_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utcMonth.js */ "./node_modules/d3-time/src/utcMonth.js");
80832/* harmony import */ var _utcYear_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utcYear.js */ "./node_modules/d3-time/src/utcYear.js");
80833
80834
80835
80836
80837
80838
80839
80840
80841
80842
80843
80844
80845
80846
80847
80848
80849
80850function ticker(year, month, week, day, hour, minute) {
80851
80852 const tickIntervals = [
80853 [_second_js__WEBPACK_IMPORTED_MODULE_0__["default"], 1, _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationSecond],
80854 [_second_js__WEBPACK_IMPORTED_MODULE_0__["default"], 5, 5 * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationSecond],
80855 [_second_js__WEBPACK_IMPORTED_MODULE_0__["default"], 15, 15 * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationSecond],
80856 [_second_js__WEBPACK_IMPORTED_MODULE_0__["default"], 30, 30 * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationSecond],
80857 [minute, 1, _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationMinute],
80858 [minute, 5, 5 * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationMinute],
80859 [minute, 15, 15 * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationMinute],
80860 [minute, 30, 30 * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationMinute],
80861 [ hour, 1, _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationHour ],
80862 [ hour, 3, 3 * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationHour ],
80863 [ hour, 6, 6 * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationHour ],
80864 [ hour, 12, 12 * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationHour ],
80865 [ day, 1, _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationDay ],
80866 [ day, 2, 2 * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationDay ],
80867 [ week, 1, _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationWeek ],
80868 [ month, 1, _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationMonth ],
80869 [ month, 3, 3 * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationMonth ],
80870 [ year, 1, _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationYear ]
80871 ];
80872
80873 function ticks(start, stop, count) {
80874 const reverse = stop < start;
80875 if (reverse) [start, stop] = [stop, start];
80876 const interval = count && typeof count.range === "function" ? count : tickInterval(start, stop, count);
80877 const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop
80878 return reverse ? ticks.reverse() : ticks;
80879 }
80880
80881 function tickInterval(start, stop, count) {
80882 const target = Math.abs(stop - start) / count;
80883 const i = (0,d3_array__WEBPACK_IMPORTED_MODULE_2__["default"])(([,, step]) => step).right(tickIntervals, target);
80884 if (i === tickIntervals.length) return year.every((0,d3_array__WEBPACK_IMPORTED_MODULE_3__.tickStep)(start / _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationYear, stop / _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationYear, count));
80885 if (i === 0) return _millisecond_js__WEBPACK_IMPORTED_MODULE_4__["default"].every(Math.max((0,d3_array__WEBPACK_IMPORTED_MODULE_3__.tickStep)(start, stop, count), 1));
80886 const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];
80887 return t.every(step);
80888 }
80889
80890 return [ticks, tickInterval];
80891}
80892
80893const [utcTicks, utcTickInterval] = ticker(_utcYear_js__WEBPACK_IMPORTED_MODULE_5__["default"], _utcMonth_js__WEBPACK_IMPORTED_MODULE_6__["default"], _utcWeek_js__WEBPACK_IMPORTED_MODULE_7__.utcSunday, _utcDay_js__WEBPACK_IMPORTED_MODULE_8__["default"], _utcHour_js__WEBPACK_IMPORTED_MODULE_9__["default"], _utcMinute_js__WEBPACK_IMPORTED_MODULE_10__["default"]);
80894const [timeTicks, timeTickInterval] = ticker(_year_js__WEBPACK_IMPORTED_MODULE_11__["default"], _month_js__WEBPACK_IMPORTED_MODULE_12__["default"], _week_js__WEBPACK_IMPORTED_MODULE_13__.sunday, _day_js__WEBPACK_IMPORTED_MODULE_14__["default"], _hour_js__WEBPACK_IMPORTED_MODULE_15__["default"], _minute_js__WEBPACK_IMPORTED_MODULE_16__["default"]);
80895
80896
80897
80898
80899/***/ }),
80900
80901/***/ "./node_modules/d3-time/src/utcDay.js":
80902/*!********************************************!*\
80903 !*** ./node_modules/d3-time/src/utcDay.js ***!
80904 \********************************************/
80905/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
80906
80907"use strict";
80908__webpack_require__.r(__webpack_exports__);
80909/* harmony export */ __webpack_require__.d(__webpack_exports__, {
80910/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
80911/* harmony export */ "utcDays": () => (/* binding */ utcDays)
80912/* harmony export */ });
80913/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
80914/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
80915
80916
80917
80918var utcDay = (0,_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
80919 date.setUTCHours(0, 0, 0, 0);
80920}, function(date, step) {
80921 date.setUTCDate(date.getUTCDate() + step);
80922}, function(start, end) {
80923 return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationDay;
80924}, function(date) {
80925 return date.getUTCDate() - 1;
80926});
80927
80928/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (utcDay);
80929var utcDays = utcDay.range;
80930
80931
80932/***/ }),
80933
80934/***/ "./node_modules/d3-time/src/utcHour.js":
80935/*!*********************************************!*\
80936 !*** ./node_modules/d3-time/src/utcHour.js ***!
80937 \*********************************************/
80938/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
80939
80940"use strict";
80941__webpack_require__.r(__webpack_exports__);
80942/* harmony export */ __webpack_require__.d(__webpack_exports__, {
80943/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
80944/* harmony export */ "utcHours": () => (/* binding */ utcHours)
80945/* harmony export */ });
80946/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
80947/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
80948
80949
80950
80951var utcHour = (0,_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
80952 date.setUTCMinutes(0, 0, 0);
80953}, function(date, step) {
80954 date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationHour);
80955}, function(start, end) {
80956 return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationHour;
80957}, function(date) {
80958 return date.getUTCHours();
80959});
80960
80961/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (utcHour);
80962var utcHours = utcHour.range;
80963
80964
80965/***/ }),
80966
80967/***/ "./node_modules/d3-time/src/utcMinute.js":
80968/*!***********************************************!*\
80969 !*** ./node_modules/d3-time/src/utcMinute.js ***!
80970 \***********************************************/
80971/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
80972
80973"use strict";
80974__webpack_require__.r(__webpack_exports__);
80975/* harmony export */ __webpack_require__.d(__webpack_exports__, {
80976/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
80977/* harmony export */ "utcMinutes": () => (/* binding */ utcMinutes)
80978/* harmony export */ });
80979/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
80980/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
80981
80982
80983
80984var utcMinute = (0,_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
80985 date.setUTCSeconds(0, 0);
80986}, function(date, step) {
80987 date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationMinute);
80988}, function(start, end) {
80989 return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationMinute;
80990}, function(date) {
80991 return date.getUTCMinutes();
80992});
80993
80994/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (utcMinute);
80995var utcMinutes = utcMinute.range;
80996
80997
80998/***/ }),
80999
81000/***/ "./node_modules/d3-time/src/utcMonth.js":
81001/*!**********************************************!*\
81002 !*** ./node_modules/d3-time/src/utcMonth.js ***!
81003 \**********************************************/
81004/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81005
81006"use strict";
81007__webpack_require__.r(__webpack_exports__);
81008/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81009/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
81010/* harmony export */ "utcMonths": () => (/* binding */ utcMonths)
81011/* harmony export */ });
81012/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
81013
81014
81015var utcMonth = (0,_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
81016 date.setUTCDate(1);
81017 date.setUTCHours(0, 0, 0, 0);
81018}, function(date, step) {
81019 date.setUTCMonth(date.getUTCMonth() + step);
81020}, function(start, end) {
81021 return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;
81022}, function(date) {
81023 return date.getUTCMonth();
81024});
81025
81026/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (utcMonth);
81027var utcMonths = utcMonth.range;
81028
81029
81030/***/ }),
81031
81032/***/ "./node_modules/d3-time/src/utcWeek.js":
81033/*!*********************************************!*\
81034 !*** ./node_modules/d3-time/src/utcWeek.js ***!
81035 \*********************************************/
81036/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81037
81038"use strict";
81039__webpack_require__.r(__webpack_exports__);
81040/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81041/* harmony export */ "utcFriday": () => (/* binding */ utcFriday),
81042/* harmony export */ "utcFridays": () => (/* binding */ utcFridays),
81043/* harmony export */ "utcMonday": () => (/* binding */ utcMonday),
81044/* harmony export */ "utcMondays": () => (/* binding */ utcMondays),
81045/* harmony export */ "utcSaturday": () => (/* binding */ utcSaturday),
81046/* harmony export */ "utcSaturdays": () => (/* binding */ utcSaturdays),
81047/* harmony export */ "utcSunday": () => (/* binding */ utcSunday),
81048/* harmony export */ "utcSundays": () => (/* binding */ utcSundays),
81049/* harmony export */ "utcThursday": () => (/* binding */ utcThursday),
81050/* harmony export */ "utcThursdays": () => (/* binding */ utcThursdays),
81051/* harmony export */ "utcTuesday": () => (/* binding */ utcTuesday),
81052/* harmony export */ "utcTuesdays": () => (/* binding */ utcTuesdays),
81053/* harmony export */ "utcWednesday": () => (/* binding */ utcWednesday),
81054/* harmony export */ "utcWednesdays": () => (/* binding */ utcWednesdays)
81055/* harmony export */ });
81056/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
81057/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
81058
81059
81060
81061function utcWeekday(i) {
81062 return (0,_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
81063 date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
81064 date.setUTCHours(0, 0, 0, 0);
81065 }, function(date, step) {
81066 date.setUTCDate(date.getUTCDate() + step * 7);
81067 }, function(start, end) {
81068 return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationWeek;
81069 });
81070}
81071
81072var utcSunday = utcWeekday(0);
81073var utcMonday = utcWeekday(1);
81074var utcTuesday = utcWeekday(2);
81075var utcWednesday = utcWeekday(3);
81076var utcThursday = utcWeekday(4);
81077var utcFriday = utcWeekday(5);
81078var utcSaturday = utcWeekday(6);
81079
81080var utcSundays = utcSunday.range;
81081var utcMondays = utcMonday.range;
81082var utcTuesdays = utcTuesday.range;
81083var utcWednesdays = utcWednesday.range;
81084var utcThursdays = utcThursday.range;
81085var utcFridays = utcFriday.range;
81086var utcSaturdays = utcSaturday.range;
81087
81088
81089/***/ }),
81090
81091/***/ "./node_modules/d3-time/src/utcYear.js":
81092/*!*********************************************!*\
81093 !*** ./node_modules/d3-time/src/utcYear.js ***!
81094 \*********************************************/
81095/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81096
81097"use strict";
81098__webpack_require__.r(__webpack_exports__);
81099/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81100/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
81101/* harmony export */ "utcYears": () => (/* binding */ utcYears)
81102/* harmony export */ });
81103/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
81104
81105
81106var utcYear = (0,_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
81107 date.setUTCMonth(0, 1);
81108 date.setUTCHours(0, 0, 0, 0);
81109}, function(date, step) {
81110 date.setUTCFullYear(date.getUTCFullYear() + step);
81111}, function(start, end) {
81112 return end.getUTCFullYear() - start.getUTCFullYear();
81113}, function(date) {
81114 return date.getUTCFullYear();
81115});
81116
81117// An optimized implementation for this simple case.
81118utcYear.every = function(k) {
81119 return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : (0,_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
81120 date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);
81121 date.setUTCMonth(0, 1);
81122 date.setUTCHours(0, 0, 0, 0);
81123 }, function(date, step) {
81124 date.setUTCFullYear(date.getUTCFullYear() + step * k);
81125 });
81126};
81127
81128/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (utcYear);
81129var utcYears = utcYear.range;
81130
81131
81132/***/ }),
81133
81134/***/ "./node_modules/d3-time/src/week.js":
81135/*!******************************************!*\
81136 !*** ./node_modules/d3-time/src/week.js ***!
81137 \******************************************/
81138/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81139
81140"use strict";
81141__webpack_require__.r(__webpack_exports__);
81142/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81143/* harmony export */ "friday": () => (/* binding */ friday),
81144/* harmony export */ "fridays": () => (/* binding */ fridays),
81145/* harmony export */ "monday": () => (/* binding */ monday),
81146/* harmony export */ "mondays": () => (/* binding */ mondays),
81147/* harmony export */ "saturday": () => (/* binding */ saturday),
81148/* harmony export */ "saturdays": () => (/* binding */ saturdays),
81149/* harmony export */ "sunday": () => (/* binding */ sunday),
81150/* harmony export */ "sundays": () => (/* binding */ sundays),
81151/* harmony export */ "thursday": () => (/* binding */ thursday),
81152/* harmony export */ "thursdays": () => (/* binding */ thursdays),
81153/* harmony export */ "tuesday": () => (/* binding */ tuesday),
81154/* harmony export */ "tuesdays": () => (/* binding */ tuesdays),
81155/* harmony export */ "wednesday": () => (/* binding */ wednesday),
81156/* harmony export */ "wednesdays": () => (/* binding */ wednesdays)
81157/* harmony export */ });
81158/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
81159/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-time/src/duration.js");
81160
81161
81162
81163function weekday(i) {
81164 return (0,_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
81165 date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
81166 date.setHours(0, 0, 0, 0);
81167 }, function(date, step) {
81168 date.setDate(date.getDate() + step * 7);
81169 }, function(start, end) {
81170 return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationMinute) / _duration_js__WEBPACK_IMPORTED_MODULE_1__.durationWeek;
81171 });
81172}
81173
81174var sunday = weekday(0);
81175var monday = weekday(1);
81176var tuesday = weekday(2);
81177var wednesday = weekday(3);
81178var thursday = weekday(4);
81179var friday = weekday(5);
81180var saturday = weekday(6);
81181
81182var sundays = sunday.range;
81183var mondays = monday.range;
81184var tuesdays = tuesday.range;
81185var wednesdays = wednesday.range;
81186var thursdays = thursday.range;
81187var fridays = friday.range;
81188var saturdays = saturday.range;
81189
81190
81191/***/ }),
81192
81193/***/ "./node_modules/d3-time/src/year.js":
81194/*!******************************************!*\
81195 !*** ./node_modules/d3-time/src/year.js ***!
81196 \******************************************/
81197/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81198
81199"use strict";
81200__webpack_require__.r(__webpack_exports__);
81201/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81202/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
81203/* harmony export */ "years": () => (/* binding */ years)
81204/* harmony export */ });
81205/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-time/src/interval.js");
81206
81207
81208var year = (0,_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
81209 date.setMonth(0, 1);
81210 date.setHours(0, 0, 0, 0);
81211}, function(date, step) {
81212 date.setFullYear(date.getFullYear() + step);
81213}, function(start, end) {
81214 return end.getFullYear() - start.getFullYear();
81215}, function(date) {
81216 return date.getFullYear();
81217});
81218
81219// An optimized implementation for this simple case.
81220year.every = function(k) {
81221 return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : (0,_interval_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function(date) {
81222 date.setFullYear(Math.floor(date.getFullYear() / k) * k);
81223 date.setMonth(0, 1);
81224 date.setHours(0, 0, 0, 0);
81225 }, function(date, step) {
81226 date.setFullYear(date.getFullYear() + step * k);
81227 });
81228};
81229
81230/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (year);
81231var years = year.range;
81232
81233
81234/***/ }),
81235
81236/***/ "./node_modules/d3-timer/src/index.js":
81237/*!********************************************!*\
81238 !*** ./node_modules/d3-timer/src/index.js ***!
81239 \********************************************/
81240/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81241
81242"use strict";
81243__webpack_require__.r(__webpack_exports__);
81244/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81245/* harmony export */ "interval": () => (/* reexport safe */ _interval_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
81246/* harmony export */ "now": () => (/* reexport safe */ _timer_js__WEBPACK_IMPORTED_MODULE_0__.now),
81247/* harmony export */ "timeout": () => (/* reexport safe */ _timeout_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
81248/* harmony export */ "timer": () => (/* reexport safe */ _timer_js__WEBPACK_IMPORTED_MODULE_0__.timer),
81249/* harmony export */ "timerFlush": () => (/* reexport safe */ _timer_js__WEBPACK_IMPORTED_MODULE_0__.timerFlush)
81250/* harmony export */ });
81251/* harmony import */ var _timer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timer.js */ "./node_modules/d3-timer/src/timer.js");
81252/* harmony import */ var _timeout_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./timeout.js */ "./node_modules/d3-timer/src/timeout.js");
81253/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./interval.js */ "./node_modules/d3-timer/src/interval.js");
81254
81255
81256
81257
81258
81259
81260
81261/***/ }),
81262
81263/***/ "./node_modules/d3-timer/src/interval.js":
81264/*!***********************************************!*\
81265 !*** ./node_modules/d3-timer/src/interval.js ***!
81266 \***********************************************/
81267/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81268
81269"use strict";
81270__webpack_require__.r(__webpack_exports__);
81271/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81272/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
81273/* harmony export */ });
81274/* harmony import */ var _timer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timer.js */ "./node_modules/d3-timer/src/timer.js");
81275
81276
81277/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(callback, delay, time) {
81278 var t = new _timer_js__WEBPACK_IMPORTED_MODULE_0__.Timer, total = delay;
81279 if (delay == null) return t.restart(callback, delay, time), t;
81280 t._restart = t.restart;
81281 t.restart = function(callback, delay, time) {
81282 delay = +delay, time = time == null ? (0,_timer_js__WEBPACK_IMPORTED_MODULE_0__.now)() : +time;
81283 t._restart(function tick(elapsed) {
81284 elapsed += total;
81285 t._restart(tick, total += delay, time);
81286 callback(elapsed);
81287 }, delay, time);
81288 }
81289 t.restart(callback, delay, time);
81290 return t;
81291}
81292
81293
81294/***/ }),
81295
81296/***/ "./node_modules/d3-timer/src/timeout.js":
81297/*!**********************************************!*\
81298 !*** ./node_modules/d3-timer/src/timeout.js ***!
81299 \**********************************************/
81300/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81301
81302"use strict";
81303__webpack_require__.r(__webpack_exports__);
81304/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81305/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
81306/* harmony export */ });
81307/* harmony import */ var _timer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timer.js */ "./node_modules/d3-timer/src/timer.js");
81308
81309
81310/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(callback, delay, time) {
81311 var t = new _timer_js__WEBPACK_IMPORTED_MODULE_0__.Timer;
81312 delay = delay == null ? 0 : +delay;
81313 t.restart(elapsed => {
81314 t.stop();
81315 callback(elapsed + delay);
81316 }, delay, time);
81317 return t;
81318}
81319
81320
81321/***/ }),
81322
81323/***/ "./node_modules/d3-timer/src/timer.js":
81324/*!********************************************!*\
81325 !*** ./node_modules/d3-timer/src/timer.js ***!
81326 \********************************************/
81327/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81328
81329"use strict";
81330__webpack_require__.r(__webpack_exports__);
81331/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81332/* harmony export */ "Timer": () => (/* binding */ Timer),
81333/* harmony export */ "now": () => (/* binding */ now),
81334/* harmony export */ "timer": () => (/* binding */ timer),
81335/* harmony export */ "timerFlush": () => (/* binding */ timerFlush)
81336/* harmony export */ });
81337var frame = 0, // is an animation frame pending?
81338 timeout = 0, // is a timeout pending?
81339 interval = 0, // are any timers active?
81340 pokeDelay = 1000, // how frequently we check for clock skew
81341 taskHead,
81342 taskTail,
81343 clockLast = 0,
81344 clockNow = 0,
81345 clockSkew = 0,
81346 clock = typeof performance === "object" && performance.now ? performance : Date,
81347 setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };
81348
81349function now() {
81350 return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
81351}
81352
81353function clearNow() {
81354 clockNow = 0;
81355}
81356
81357function Timer() {
81358 this._call =
81359 this._time =
81360 this._next = null;
81361}
81362
81363Timer.prototype = timer.prototype = {
81364 constructor: Timer,
81365 restart: function(callback, delay, time) {
81366 if (typeof callback !== "function") throw new TypeError("callback is not a function");
81367 time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);
81368 if (!this._next && taskTail !== this) {
81369 if (taskTail) taskTail._next = this;
81370 else taskHead = this;
81371 taskTail = this;
81372 }
81373 this._call = callback;
81374 this._time = time;
81375 sleep();
81376 },
81377 stop: function() {
81378 if (this._call) {
81379 this._call = null;
81380 this._time = Infinity;
81381 sleep();
81382 }
81383 }
81384};
81385
81386function timer(callback, delay, time) {
81387 var t = new Timer;
81388 t.restart(callback, delay, time);
81389 return t;
81390}
81391
81392function timerFlush() {
81393 now(); // Get the current time, if not already set.
81394 ++frame; // Pretend we’ve set an alarm, if we haven’t already.
81395 var t = taskHead, e;
81396 while (t) {
81397 if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);
81398 t = t._next;
81399 }
81400 --frame;
81401}
81402
81403function wake() {
81404 clockNow = (clockLast = clock.now()) + clockSkew;
81405 frame = timeout = 0;
81406 try {
81407 timerFlush();
81408 } finally {
81409 frame = 0;
81410 nap();
81411 clockNow = 0;
81412 }
81413}
81414
81415function poke() {
81416 var now = clock.now(), delay = now - clockLast;
81417 if (delay > pokeDelay) clockSkew -= delay, clockLast = now;
81418}
81419
81420function nap() {
81421 var t0, t1 = taskHead, t2, time = Infinity;
81422 while (t1) {
81423 if (t1._call) {
81424 if (time > t1._time) time = t1._time;
81425 t0 = t1, t1 = t1._next;
81426 } else {
81427 t2 = t1._next, t1._next = null;
81428 t1 = t0 ? t0._next = t2 : taskHead = t2;
81429 }
81430 }
81431 taskTail = t0;
81432 sleep(time);
81433}
81434
81435function sleep(time) {
81436 if (frame) return; // Soonest alarm already set, or will be.
81437 if (timeout) timeout = clearTimeout(timeout);
81438 var delay = time - clockNow; // Strictly less than if we recomputed clockNow.
81439 if (delay > 24) {
81440 if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);
81441 if (interval) interval = clearInterval(interval);
81442 } else {
81443 if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);
81444 frame = 1, setFrame(wake);
81445 }
81446}
81447
81448
81449/***/ }),
81450
81451/***/ "./node_modules/d3-transition/src/active.js":
81452/*!**************************************************!*\
81453 !*** ./node_modules/d3-transition/src/active.js ***!
81454 \**************************************************/
81455/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81456
81457"use strict";
81458__webpack_require__.r(__webpack_exports__);
81459/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81460/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
81461/* harmony export */ });
81462/* harmony import */ var _transition_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transition/index.js */ "./node_modules/d3-transition/src/transition/index.js");
81463/* harmony import */ var _transition_schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transition/schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
81464
81465
81466
81467var root = [null];
81468
81469/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(node, name) {
81470 var schedules = node.__transition,
81471 schedule,
81472 i;
81473
81474 if (schedules) {
81475 name = name == null ? null : name + "";
81476 for (i in schedules) {
81477 if ((schedule = schedules[i]).state > _transition_schedule_js__WEBPACK_IMPORTED_MODULE_0__.SCHEDULED && schedule.name === name) {
81478 return new _transition_index_js__WEBPACK_IMPORTED_MODULE_1__.Transition([[node]], root, name, +i);
81479 }
81480 }
81481 }
81482
81483 return null;
81484}
81485
81486
81487/***/ }),
81488
81489/***/ "./node_modules/d3-transition/src/index.js":
81490/*!*************************************************!*\
81491 !*** ./node_modules/d3-transition/src/index.js ***!
81492 \*************************************************/
81493/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81494
81495"use strict";
81496__webpack_require__.r(__webpack_exports__);
81497/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81498/* harmony export */ "active": () => (/* reexport safe */ _active_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
81499/* harmony export */ "interrupt": () => (/* reexport safe */ _interrupt_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
81500/* harmony export */ "transition": () => (/* reexport safe */ _transition_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])
81501/* harmony export */ });
81502/* harmony import */ var _selection_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selection/index.js */ "./node_modules/d3-transition/src/selection/index.js");
81503/* harmony import */ var _transition_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transition/index.js */ "./node_modules/d3-transition/src/transition/index.js");
81504/* harmony import */ var _active_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./active.js */ "./node_modules/d3-transition/src/active.js");
81505/* harmony import */ var _interrupt_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./interrupt.js */ "./node_modules/d3-transition/src/interrupt.js");
81506
81507
81508
81509
81510
81511
81512/***/ }),
81513
81514/***/ "./node_modules/d3-transition/src/interrupt.js":
81515/*!*****************************************************!*\
81516 !*** ./node_modules/d3-transition/src/interrupt.js ***!
81517 \*****************************************************/
81518/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81519
81520"use strict";
81521__webpack_require__.r(__webpack_exports__);
81522/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81523/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
81524/* harmony export */ });
81525/* harmony import */ var _transition_schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transition/schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
81526
81527
81528/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(node, name) {
81529 var schedules = node.__transition,
81530 schedule,
81531 active,
81532 empty = true,
81533 i;
81534
81535 if (!schedules) return;
81536
81537 name = name == null ? null : name + "";
81538
81539 for (i in schedules) {
81540 if ((schedule = schedules[i]).name !== name) { empty = false; continue; }
81541 active = schedule.state > _transition_schedule_js__WEBPACK_IMPORTED_MODULE_0__.STARTING && schedule.state < _transition_schedule_js__WEBPACK_IMPORTED_MODULE_0__.ENDING;
81542 schedule.state = _transition_schedule_js__WEBPACK_IMPORTED_MODULE_0__.ENDED;
81543 schedule.timer.stop();
81544 schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group);
81545 delete schedules[i];
81546 }
81547
81548 if (empty) delete node.__transition;
81549}
81550
81551
81552/***/ }),
81553
81554/***/ "./node_modules/d3-transition/src/selection/index.js":
81555/*!***********************************************************!*\
81556 !*** ./node_modules/d3-transition/src/selection/index.js ***!
81557 \***********************************************************/
81558/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81559
81560"use strict";
81561__webpack_require__.r(__webpack_exports__);
81562/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/selection/index.js");
81563/* harmony import */ var _interrupt_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./interrupt.js */ "./node_modules/d3-transition/src/selection/interrupt.js");
81564/* harmony import */ var _transition_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transition.js */ "./node_modules/d3-transition/src/selection/transition.js");
81565
81566
81567
81568
81569d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.interrupt = _interrupt_js__WEBPACK_IMPORTED_MODULE_1__["default"];
81570d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.transition = _transition_js__WEBPACK_IMPORTED_MODULE_2__["default"];
81571
81572
81573/***/ }),
81574
81575/***/ "./node_modules/d3-transition/src/selection/interrupt.js":
81576/*!***************************************************************!*\
81577 !*** ./node_modules/d3-transition/src/selection/interrupt.js ***!
81578 \***************************************************************/
81579/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81580
81581"use strict";
81582__webpack_require__.r(__webpack_exports__);
81583/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81584/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
81585/* harmony export */ });
81586/* harmony import */ var _interrupt_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../interrupt.js */ "./node_modules/d3-transition/src/interrupt.js");
81587
81588
81589/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name) {
81590 return this.each(function() {
81591 (0,_interrupt_js__WEBPACK_IMPORTED_MODULE_0__["default"])(this, name);
81592 });
81593}
81594
81595
81596/***/ }),
81597
81598/***/ "./node_modules/d3-transition/src/selection/transition.js":
81599/*!****************************************************************!*\
81600 !*** ./node_modules/d3-transition/src/selection/transition.js ***!
81601 \****************************************************************/
81602/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81603
81604"use strict";
81605__webpack_require__.r(__webpack_exports__);
81606/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81607/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
81608/* harmony export */ });
81609/* harmony import */ var _transition_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../transition/index.js */ "./node_modules/d3-transition/src/transition/index.js");
81610/* harmony import */ var _transition_schedule_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../transition/schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
81611/* harmony import */ var d3_ease__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-ease */ "./node_modules/d3-ease/src/cubic.js");
81612/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-timer */ "./node_modules/d3-timer/src/timer.js");
81613
81614
81615
81616
81617
81618var defaultTiming = {
81619 time: null, // Set on use.
81620 delay: 0,
81621 duration: 250,
81622 ease: d3_ease__WEBPACK_IMPORTED_MODULE_0__.cubicInOut
81623};
81624
81625function inherit(node, id) {
81626 var timing;
81627 while (!(timing = node.__transition) || !(timing = timing[id])) {
81628 if (!(node = node.parentNode)) {
81629 throw new Error(`transition ${id} not found`);
81630 }
81631 }
81632 return timing;
81633}
81634
81635/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name) {
81636 var id,
81637 timing;
81638
81639 if (name instanceof _transition_index_js__WEBPACK_IMPORTED_MODULE_1__.Transition) {
81640 id = name._id, name = name._name;
81641 } else {
81642 id = (0,_transition_index_js__WEBPACK_IMPORTED_MODULE_1__.newId)(), (timing = defaultTiming).time = (0,d3_timer__WEBPACK_IMPORTED_MODULE_2__.now)(), name = name == null ? null : name + "";
81643 }
81644
81645 for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
81646 for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
81647 if (node = group[i]) {
81648 (0,_transition_schedule_js__WEBPACK_IMPORTED_MODULE_3__["default"])(node, name, id, i, group, timing || inherit(node, id));
81649 }
81650 }
81651 }
81652
81653 return new _transition_index_js__WEBPACK_IMPORTED_MODULE_1__.Transition(groups, this._parents, name, id);
81654}
81655
81656
81657/***/ }),
81658
81659/***/ "./node_modules/d3-transition/src/transition/attr.js":
81660/*!***********************************************************!*\
81661 !*** ./node_modules/d3-transition/src/transition/attr.js ***!
81662 \***********************************************************/
81663/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81664
81665"use strict";
81666__webpack_require__.r(__webpack_exports__);
81667/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81668/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
81669/* harmony export */ });
81670/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/transform/index.js");
81671/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/namespace.js");
81672/* harmony import */ var _tween_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tween.js */ "./node_modules/d3-transition/src/transition/tween.js");
81673/* harmony import */ var _interpolate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./interpolate.js */ "./node_modules/d3-transition/src/transition/interpolate.js");
81674
81675
81676
81677
81678
81679function attrRemove(name) {
81680 return function() {
81681 this.removeAttribute(name);
81682 };
81683}
81684
81685function attrRemoveNS(fullname) {
81686 return function() {
81687 this.removeAttributeNS(fullname.space, fullname.local);
81688 };
81689}
81690
81691function attrConstant(name, interpolate, value1) {
81692 var string00,
81693 string1 = value1 + "",
81694 interpolate0;
81695 return function() {
81696 var string0 = this.getAttribute(name);
81697 return string0 === string1 ? null
81698 : string0 === string00 ? interpolate0
81699 : interpolate0 = interpolate(string00 = string0, value1);
81700 };
81701}
81702
81703function attrConstantNS(fullname, interpolate, value1) {
81704 var string00,
81705 string1 = value1 + "",
81706 interpolate0;
81707 return function() {
81708 var string0 = this.getAttributeNS(fullname.space, fullname.local);
81709 return string0 === string1 ? null
81710 : string0 === string00 ? interpolate0
81711 : interpolate0 = interpolate(string00 = string0, value1);
81712 };
81713}
81714
81715function attrFunction(name, interpolate, value) {
81716 var string00,
81717 string10,
81718 interpolate0;
81719 return function() {
81720 var string0, value1 = value(this), string1;
81721 if (value1 == null) return void this.removeAttribute(name);
81722 string0 = this.getAttribute(name);
81723 string1 = value1 + "";
81724 return string0 === string1 ? null
81725 : string0 === string00 && string1 === string10 ? interpolate0
81726 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
81727 };
81728}
81729
81730function attrFunctionNS(fullname, interpolate, value) {
81731 var string00,
81732 string10,
81733 interpolate0;
81734 return function() {
81735 var string0, value1 = value(this), string1;
81736 if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);
81737 string0 = this.getAttributeNS(fullname.space, fullname.local);
81738 string1 = value1 + "";
81739 return string0 === string1 ? null
81740 : string0 === string00 && string1 === string10 ? interpolate0
81741 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
81742 };
81743}
81744
81745/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value) {
81746 var fullname = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"])(name), i = fullname === "transform" ? d3_interpolate__WEBPACK_IMPORTED_MODULE_1__.interpolateTransformSvg : _interpolate_js__WEBPACK_IMPORTED_MODULE_2__["default"];
81747 return this.attrTween(name, typeof value === "function"
81748 ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, (0,_tween_js__WEBPACK_IMPORTED_MODULE_3__.tweenValue)(this, "attr." + name, value))
81749 : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)
81750 : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));
81751}
81752
81753
81754/***/ }),
81755
81756/***/ "./node_modules/d3-transition/src/transition/attrTween.js":
81757/*!****************************************************************!*\
81758 !*** ./node_modules/d3-transition/src/transition/attrTween.js ***!
81759 \****************************************************************/
81760/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81761
81762"use strict";
81763__webpack_require__.r(__webpack_exports__);
81764/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81765/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
81766/* harmony export */ });
81767/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/namespace.js");
81768
81769
81770function attrInterpolate(name, i) {
81771 return function(t) {
81772 this.setAttribute(name, i.call(this, t));
81773 };
81774}
81775
81776function attrInterpolateNS(fullname, i) {
81777 return function(t) {
81778 this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));
81779 };
81780}
81781
81782function attrTweenNS(fullname, value) {
81783 var t0, i0;
81784 function tween() {
81785 var i = value.apply(this, arguments);
81786 if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);
81787 return t0;
81788 }
81789 tween._value = value;
81790 return tween;
81791}
81792
81793function attrTween(name, value) {
81794 var t0, i0;
81795 function tween() {
81796 var i = value.apply(this, arguments);
81797 if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);
81798 return t0;
81799 }
81800 tween._value = value;
81801 return tween;
81802}
81803
81804/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value) {
81805 var key = "attr." + name;
81806 if (arguments.length < 2) return (key = this.tween(key)) && key._value;
81807 if (value == null) return this.tween(key, null);
81808 if (typeof value !== "function") throw new Error;
81809 var fullname = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"])(name);
81810 return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));
81811}
81812
81813
81814/***/ }),
81815
81816/***/ "./node_modules/d3-transition/src/transition/delay.js":
81817/*!************************************************************!*\
81818 !*** ./node_modules/d3-transition/src/transition/delay.js ***!
81819 \************************************************************/
81820/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81821
81822"use strict";
81823__webpack_require__.r(__webpack_exports__);
81824/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81825/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
81826/* harmony export */ });
81827/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
81828
81829
81830function delayFunction(id, value) {
81831 return function() {
81832 (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.init)(this, id).delay = +value.apply(this, arguments);
81833 };
81834}
81835
81836function delayConstant(id, value) {
81837 return value = +value, function() {
81838 (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.init)(this, id).delay = value;
81839 };
81840}
81841
81842/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) {
81843 var id = this._id;
81844
81845 return arguments.length
81846 ? this.each((typeof value === "function"
81847 ? delayFunction
81848 : delayConstant)(id, value))
81849 : (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.get)(this.node(), id).delay;
81850}
81851
81852
81853/***/ }),
81854
81855/***/ "./node_modules/d3-transition/src/transition/duration.js":
81856/*!***************************************************************!*\
81857 !*** ./node_modules/d3-transition/src/transition/duration.js ***!
81858 \***************************************************************/
81859/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81860
81861"use strict";
81862__webpack_require__.r(__webpack_exports__);
81863/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81864/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
81865/* harmony export */ });
81866/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
81867
81868
81869function durationFunction(id, value) {
81870 return function() {
81871 (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.set)(this, id).duration = +value.apply(this, arguments);
81872 };
81873}
81874
81875function durationConstant(id, value) {
81876 return value = +value, function() {
81877 (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.set)(this, id).duration = value;
81878 };
81879}
81880
81881/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) {
81882 var id = this._id;
81883
81884 return arguments.length
81885 ? this.each((typeof value === "function"
81886 ? durationFunction
81887 : durationConstant)(id, value))
81888 : (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.get)(this.node(), id).duration;
81889}
81890
81891
81892/***/ }),
81893
81894/***/ "./node_modules/d3-transition/src/transition/ease.js":
81895/*!***********************************************************!*\
81896 !*** ./node_modules/d3-transition/src/transition/ease.js ***!
81897 \***********************************************************/
81898/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81899
81900"use strict";
81901__webpack_require__.r(__webpack_exports__);
81902/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81903/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
81904/* harmony export */ });
81905/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
81906
81907
81908function easeConstant(id, value) {
81909 if (typeof value !== "function") throw new Error;
81910 return function() {
81911 (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.set)(this, id).ease = value;
81912 };
81913}
81914
81915/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) {
81916 var id = this._id;
81917
81918 return arguments.length
81919 ? this.each(easeConstant(id, value))
81920 : (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.get)(this.node(), id).ease;
81921}
81922
81923
81924/***/ }),
81925
81926/***/ "./node_modules/d3-transition/src/transition/easeVarying.js":
81927/*!******************************************************************!*\
81928 !*** ./node_modules/d3-transition/src/transition/easeVarying.js ***!
81929 \******************************************************************/
81930/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81931
81932"use strict";
81933__webpack_require__.r(__webpack_exports__);
81934/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81935/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
81936/* harmony export */ });
81937/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
81938
81939
81940function easeVarying(id, value) {
81941 return function() {
81942 var v = value.apply(this, arguments);
81943 if (typeof v !== "function") throw new Error;
81944 (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.set)(this, id).ease = v;
81945 };
81946}
81947
81948/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) {
81949 if (typeof value !== "function") throw new Error;
81950 return this.each(easeVarying(this._id, value));
81951}
81952
81953
81954/***/ }),
81955
81956/***/ "./node_modules/d3-transition/src/transition/end.js":
81957/*!**********************************************************!*\
81958 !*** ./node_modules/d3-transition/src/transition/end.js ***!
81959 \**********************************************************/
81960/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81961
81962"use strict";
81963__webpack_require__.r(__webpack_exports__);
81964/* harmony export */ __webpack_require__.d(__webpack_exports__, {
81965/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
81966/* harmony export */ });
81967/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
81968
81969
81970/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
81971 var on0, on1, that = this, id = that._id, size = that.size();
81972 return new Promise(function(resolve, reject) {
81973 var cancel = {value: reject},
81974 end = {value: function() { if (--size === 0) resolve(); }};
81975
81976 that.each(function() {
81977 var schedule = (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.set)(this, id),
81978 on = schedule.on;
81979
81980 // If this node shared a dispatch with the previous node,
81981 // just assign the updated shared dispatch and we’re done!
81982 // Otherwise, copy-on-write.
81983 if (on !== on0) {
81984 on1 = (on0 = on).copy();
81985 on1._.cancel.push(cancel);
81986 on1._.interrupt.push(cancel);
81987 on1._.end.push(end);
81988 }
81989
81990 schedule.on = on1;
81991 });
81992
81993 // The selection was empty, resolve end immediately
81994 if (size === 0) resolve();
81995 });
81996}
81997
81998
81999/***/ }),
82000
82001/***/ "./node_modules/d3-transition/src/transition/filter.js":
82002/*!*************************************************************!*\
82003 !*** ./node_modules/d3-transition/src/transition/filter.js ***!
82004 \*************************************************************/
82005/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82006
82007"use strict";
82008__webpack_require__.r(__webpack_exports__);
82009/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82010/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
82011/* harmony export */ });
82012/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/matcher.js");
82013/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-transition/src/transition/index.js");
82014
82015
82016
82017/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(match) {
82018 if (typeof match !== "function") match = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"])(match);
82019
82020 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
82021 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
82022 if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
82023 subgroup.push(node);
82024 }
82025 }
82026 }
82027
82028 return new _index_js__WEBPACK_IMPORTED_MODULE_1__.Transition(subgroups, this._parents, this._name, this._id);
82029}
82030
82031
82032/***/ }),
82033
82034/***/ "./node_modules/d3-transition/src/transition/index.js":
82035/*!************************************************************!*\
82036 !*** ./node_modules/d3-transition/src/transition/index.js ***!
82037 \************************************************************/
82038/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82039
82040"use strict";
82041__webpack_require__.r(__webpack_exports__);
82042/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82043/* harmony export */ "Transition": () => (/* binding */ Transition),
82044/* harmony export */ "default": () => (/* binding */ transition),
82045/* harmony export */ "newId": () => (/* binding */ newId)
82046/* harmony export */ });
82047/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/selection/index.js");
82048/* harmony import */ var _attr_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./attr.js */ "./node_modules/d3-transition/src/transition/attr.js");
82049/* harmony import */ var _attrTween_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./attrTween.js */ "./node_modules/d3-transition/src/transition/attrTween.js");
82050/* harmony import */ var _delay_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./delay.js */ "./node_modules/d3-transition/src/transition/delay.js");
82051/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./duration.js */ "./node_modules/d3-transition/src/transition/duration.js");
82052/* harmony import */ var _ease_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./ease.js */ "./node_modules/d3-transition/src/transition/ease.js");
82053/* harmony import */ var _easeVarying_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./easeVarying.js */ "./node_modules/d3-transition/src/transition/easeVarying.js");
82054/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./filter.js */ "./node_modules/d3-transition/src/transition/filter.js");
82055/* harmony import */ var _merge_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./merge.js */ "./node_modules/d3-transition/src/transition/merge.js");
82056/* harmony import */ var _on_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./on.js */ "./node_modules/d3-transition/src/transition/on.js");
82057/* harmony import */ var _remove_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./remove.js */ "./node_modules/d3-transition/src/transition/remove.js");
82058/* harmony import */ var _select_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./select.js */ "./node_modules/d3-transition/src/transition/select.js");
82059/* harmony import */ var _selectAll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./selectAll.js */ "./node_modules/d3-transition/src/transition/selectAll.js");
82060/* harmony import */ var _selection_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./selection.js */ "./node_modules/d3-transition/src/transition/selection.js");
82061/* harmony import */ var _style_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./style.js */ "./node_modules/d3-transition/src/transition/style.js");
82062/* harmony import */ var _styleTween_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./styleTween.js */ "./node_modules/d3-transition/src/transition/styleTween.js");
82063/* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./text.js */ "./node_modules/d3-transition/src/transition/text.js");
82064/* harmony import */ var _textTween_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./textTween.js */ "./node_modules/d3-transition/src/transition/textTween.js");
82065/* harmony import */ var _transition_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./transition.js */ "./node_modules/d3-transition/src/transition/transition.js");
82066/* harmony import */ var _tween_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./tween.js */ "./node_modules/d3-transition/src/transition/tween.js");
82067/* harmony import */ var _end_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./end.js */ "./node_modules/d3-transition/src/transition/end.js");
82068
82069
82070
82071
82072
82073
82074
82075
82076
82077
82078
82079
82080
82081
82082
82083
82084
82085
82086
82087
82088
82089
82090var id = 0;
82091
82092function Transition(groups, parents, name, id) {
82093 this._groups = groups;
82094 this._parents = parents;
82095 this._name = name;
82096 this._id = id;
82097}
82098
82099function transition(name) {
82100 return (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"])().transition(name);
82101}
82102
82103function newId() {
82104 return ++id;
82105}
82106
82107var selection_prototype = d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"].prototype;
82108
82109Transition.prototype = transition.prototype = {
82110 constructor: Transition,
82111 select: _select_js__WEBPACK_IMPORTED_MODULE_1__["default"],
82112 selectAll: _selectAll_js__WEBPACK_IMPORTED_MODULE_2__["default"],
82113 selectChild: selection_prototype.selectChild,
82114 selectChildren: selection_prototype.selectChildren,
82115 filter: _filter_js__WEBPACK_IMPORTED_MODULE_3__["default"],
82116 merge: _merge_js__WEBPACK_IMPORTED_MODULE_4__["default"],
82117 selection: _selection_js__WEBPACK_IMPORTED_MODULE_5__["default"],
82118 transition: _transition_js__WEBPACK_IMPORTED_MODULE_6__["default"],
82119 call: selection_prototype.call,
82120 nodes: selection_prototype.nodes,
82121 node: selection_prototype.node,
82122 size: selection_prototype.size,
82123 empty: selection_prototype.empty,
82124 each: selection_prototype.each,
82125 on: _on_js__WEBPACK_IMPORTED_MODULE_7__["default"],
82126 attr: _attr_js__WEBPACK_IMPORTED_MODULE_8__["default"],
82127 attrTween: _attrTween_js__WEBPACK_IMPORTED_MODULE_9__["default"],
82128 style: _style_js__WEBPACK_IMPORTED_MODULE_10__["default"],
82129 styleTween: _styleTween_js__WEBPACK_IMPORTED_MODULE_11__["default"],
82130 text: _text_js__WEBPACK_IMPORTED_MODULE_12__["default"],
82131 textTween: _textTween_js__WEBPACK_IMPORTED_MODULE_13__["default"],
82132 remove: _remove_js__WEBPACK_IMPORTED_MODULE_14__["default"],
82133 tween: _tween_js__WEBPACK_IMPORTED_MODULE_15__["default"],
82134 delay: _delay_js__WEBPACK_IMPORTED_MODULE_16__["default"],
82135 duration: _duration_js__WEBPACK_IMPORTED_MODULE_17__["default"],
82136 ease: _ease_js__WEBPACK_IMPORTED_MODULE_18__["default"],
82137 easeVarying: _easeVarying_js__WEBPACK_IMPORTED_MODULE_19__["default"],
82138 end: _end_js__WEBPACK_IMPORTED_MODULE_20__["default"],
82139 [Symbol.iterator]: selection_prototype[Symbol.iterator]
82140};
82141
82142
82143/***/ }),
82144
82145/***/ "./node_modules/d3-transition/src/transition/interpolate.js":
82146/*!******************************************************************!*\
82147 !*** ./node_modules/d3-transition/src/transition/interpolate.js ***!
82148 \******************************************************************/
82149/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82150
82151"use strict";
82152__webpack_require__.r(__webpack_exports__);
82153/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82154/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
82155/* harmony export */ });
82156/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/color.js");
82157/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/number.js");
82158/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/rgb.js");
82159/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/string.js");
82160
82161
82162
82163/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) {
82164 var c;
82165 return (typeof b === "number" ? d3_interpolate__WEBPACK_IMPORTED_MODULE_0__["default"]
82166 : b instanceof d3_color__WEBPACK_IMPORTED_MODULE_1__["default"] ? d3_interpolate__WEBPACK_IMPORTED_MODULE_2__["default"]
82167 : (c = (0,d3_color__WEBPACK_IMPORTED_MODULE_1__["default"])(b)) ? (b = c, d3_interpolate__WEBPACK_IMPORTED_MODULE_2__["default"])
82168 : d3_interpolate__WEBPACK_IMPORTED_MODULE_3__["default"])(a, b);
82169}
82170
82171
82172/***/ }),
82173
82174/***/ "./node_modules/d3-transition/src/transition/merge.js":
82175/*!************************************************************!*\
82176 !*** ./node_modules/d3-transition/src/transition/merge.js ***!
82177 \************************************************************/
82178/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82179
82180"use strict";
82181__webpack_require__.r(__webpack_exports__);
82182/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82183/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
82184/* harmony export */ });
82185/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-transition/src/transition/index.js");
82186
82187
82188/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(transition) {
82189 if (transition._id !== this._id) throw new Error;
82190
82191 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) {
82192 for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
82193 if (node = group0[i] || group1[i]) {
82194 merge[i] = node;
82195 }
82196 }
82197 }
82198
82199 for (; j < m0; ++j) {
82200 merges[j] = groups0[j];
82201 }
82202
82203 return new _index_js__WEBPACK_IMPORTED_MODULE_0__.Transition(merges, this._parents, this._name, this._id);
82204}
82205
82206
82207/***/ }),
82208
82209/***/ "./node_modules/d3-transition/src/transition/on.js":
82210/*!*********************************************************!*\
82211 !*** ./node_modules/d3-transition/src/transition/on.js ***!
82212 \*********************************************************/
82213/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82214
82215"use strict";
82216__webpack_require__.r(__webpack_exports__);
82217/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82218/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
82219/* harmony export */ });
82220/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
82221
82222
82223function start(name) {
82224 return (name + "").trim().split(/^|\s+/).every(function(t) {
82225 var i = t.indexOf(".");
82226 if (i >= 0) t = t.slice(0, i);
82227 return !t || t === "start";
82228 });
82229}
82230
82231function onFunction(id, name, listener) {
82232 var on0, on1, sit = start(name) ? _schedule_js__WEBPACK_IMPORTED_MODULE_0__.init : _schedule_js__WEBPACK_IMPORTED_MODULE_0__.set;
82233 return function() {
82234 var schedule = sit(this, id),
82235 on = schedule.on;
82236
82237 // If this node shared a dispatch with the previous node,
82238 // just assign the updated shared dispatch and we’re done!
82239 // Otherwise, copy-on-write.
82240 if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);
82241
82242 schedule.on = on1;
82243 };
82244}
82245
82246/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, listener) {
82247 var id = this._id;
82248
82249 return arguments.length < 2
82250 ? (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.get)(this.node(), id).on.on(name)
82251 : this.each(onFunction(id, name, listener));
82252}
82253
82254
82255/***/ }),
82256
82257/***/ "./node_modules/d3-transition/src/transition/remove.js":
82258/*!*************************************************************!*\
82259 !*** ./node_modules/d3-transition/src/transition/remove.js ***!
82260 \*************************************************************/
82261/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82262
82263"use strict";
82264__webpack_require__.r(__webpack_exports__);
82265/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82266/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
82267/* harmony export */ });
82268function removeFunction(id) {
82269 return function() {
82270 var parent = this.parentNode;
82271 for (var i in this.__transition) if (+i !== id) return;
82272 if (parent) parent.removeChild(this);
82273 };
82274}
82275
82276/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
82277 return this.on("end.remove", removeFunction(this._id));
82278}
82279
82280
82281/***/ }),
82282
82283/***/ "./node_modules/d3-transition/src/transition/schedule.js":
82284/*!***************************************************************!*\
82285 !*** ./node_modules/d3-transition/src/transition/schedule.js ***!
82286 \***************************************************************/
82287/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82288
82289"use strict";
82290__webpack_require__.r(__webpack_exports__);
82291/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82292/* harmony export */ "CREATED": () => (/* binding */ CREATED),
82293/* harmony export */ "ENDED": () => (/* binding */ ENDED),
82294/* harmony export */ "ENDING": () => (/* binding */ ENDING),
82295/* harmony export */ "RUNNING": () => (/* binding */ RUNNING),
82296/* harmony export */ "SCHEDULED": () => (/* binding */ SCHEDULED),
82297/* harmony export */ "STARTED": () => (/* binding */ STARTED),
82298/* harmony export */ "STARTING": () => (/* binding */ STARTING),
82299/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
82300/* harmony export */ "get": () => (/* binding */ get),
82301/* harmony export */ "init": () => (/* binding */ init),
82302/* harmony export */ "set": () => (/* binding */ set)
82303/* harmony export */ });
82304/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/dispatch.js");
82305/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-timer */ "./node_modules/d3-timer/src/timer.js");
82306/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-timer */ "./node_modules/d3-timer/src/timeout.js");
82307
82308
82309
82310var emptyOn = (0,d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["default"])("start", "end", "cancel", "interrupt");
82311var emptyTween = [];
82312
82313var CREATED = 0;
82314var SCHEDULED = 1;
82315var STARTING = 2;
82316var STARTED = 3;
82317var RUNNING = 4;
82318var ENDING = 5;
82319var ENDED = 6;
82320
82321/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(node, name, id, index, group, timing) {
82322 var schedules = node.__transition;
82323 if (!schedules) node.__transition = {};
82324 else if (id in schedules) return;
82325 create(node, id, {
82326 name: name,
82327 index: index, // For context during callback.
82328 group: group, // For context during callback.
82329 on: emptyOn,
82330 tween: emptyTween,
82331 time: timing.time,
82332 delay: timing.delay,
82333 duration: timing.duration,
82334 ease: timing.ease,
82335 timer: null,
82336 state: CREATED
82337 });
82338}
82339
82340function init(node, id) {
82341 var schedule = get(node, id);
82342 if (schedule.state > CREATED) throw new Error("too late; already scheduled");
82343 return schedule;
82344}
82345
82346function set(node, id) {
82347 var schedule = get(node, id);
82348 if (schedule.state > STARTED) throw new Error("too late; already running");
82349 return schedule;
82350}
82351
82352function get(node, id) {
82353 var schedule = node.__transition;
82354 if (!schedule || !(schedule = schedule[id])) throw new Error("transition not found");
82355 return schedule;
82356}
82357
82358function create(node, id, self) {
82359 var schedules = node.__transition,
82360 tween;
82361
82362 // Initialize the self timer when the transition is created.
82363 // Note the actual delay is not known until the first callback!
82364 schedules[id] = self;
82365 self.timer = (0,d3_timer__WEBPACK_IMPORTED_MODULE_1__.timer)(schedule, 0, self.time);
82366
82367 function schedule(elapsed) {
82368 self.state = SCHEDULED;
82369 self.timer.restart(start, self.delay, self.time);
82370
82371 // If the elapsed delay is less than our first sleep, start immediately.
82372 if (self.delay <= elapsed) start(elapsed - self.delay);
82373 }
82374
82375 function start(elapsed) {
82376 var i, j, n, o;
82377
82378 // If the state is not SCHEDULED, then we previously errored on start.
82379 if (self.state !== SCHEDULED) return stop();
82380
82381 for (i in schedules) {
82382 o = schedules[i];
82383 if (o.name !== self.name) continue;
82384
82385 // While this element already has a starting transition during this frame,
82386 // defer starting an interrupting transition until that transition has a
82387 // chance to tick (and possibly end); see d3/d3-transition#54!
82388 if (o.state === STARTED) return (0,d3_timer__WEBPACK_IMPORTED_MODULE_2__["default"])(start);
82389
82390 // Interrupt the active transition, if any.
82391 if (o.state === RUNNING) {
82392 o.state = ENDED;
82393 o.timer.stop();
82394 o.on.call("interrupt", node, node.__data__, o.index, o.group);
82395 delete schedules[i];
82396 }
82397
82398 // Cancel any pre-empted transitions.
82399 else if (+i < id) {
82400 o.state = ENDED;
82401 o.timer.stop();
82402 o.on.call("cancel", node, node.__data__, o.index, o.group);
82403 delete schedules[i];
82404 }
82405 }
82406
82407 // Defer the first tick to end of the current frame; see d3/d3#1576.
82408 // Note the transition may be canceled after start and before the first tick!
82409 // Note this must be scheduled before the start event; see d3/d3-transition#16!
82410 // Assuming this is successful, subsequent callbacks go straight to tick.
82411 (0,d3_timer__WEBPACK_IMPORTED_MODULE_2__["default"])(function() {
82412 if (self.state === STARTED) {
82413 self.state = RUNNING;
82414 self.timer.restart(tick, self.delay, self.time);
82415 tick(elapsed);
82416 }
82417 });
82418
82419 // Dispatch the start event.
82420 // Note this must be done before the tween are initialized.
82421 self.state = STARTING;
82422 self.on.call("start", node, node.__data__, self.index, self.group);
82423 if (self.state !== STARTING) return; // interrupted
82424 self.state = STARTED;
82425
82426 // Initialize the tween, deleting null tween.
82427 tween = new Array(n = self.tween.length);
82428 for (i = 0, j = -1; i < n; ++i) {
82429 if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {
82430 tween[++j] = o;
82431 }
82432 }
82433 tween.length = j + 1;
82434 }
82435
82436 function tick(elapsed) {
82437 var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),
82438 i = -1,
82439 n = tween.length;
82440
82441 while (++i < n) {
82442 tween[i].call(node, t);
82443 }
82444
82445 // Dispatch the end event.
82446 if (self.state === ENDING) {
82447 self.on.call("end", node, node.__data__, self.index, self.group);
82448 stop();
82449 }
82450 }
82451
82452 function stop() {
82453 self.state = ENDED;
82454 self.timer.stop();
82455 delete schedules[id];
82456 for (var i in schedules) return; // eslint-disable-line no-unused-vars
82457 delete node.__transition;
82458 }
82459}
82460
82461
82462/***/ }),
82463
82464/***/ "./node_modules/d3-transition/src/transition/select.js":
82465/*!*************************************************************!*\
82466 !*** ./node_modules/d3-transition/src/transition/select.js ***!
82467 \*************************************************************/
82468/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82469
82470"use strict";
82471__webpack_require__.r(__webpack_exports__);
82472/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82473/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
82474/* harmony export */ });
82475/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/selector.js");
82476/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-transition/src/transition/index.js");
82477/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
82478
82479
82480
82481
82482/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(select) {
82483 var name = this._name,
82484 id = this._id;
82485
82486 if (typeof select !== "function") select = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"])(select);
82487
82488 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
82489 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
82490 if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
82491 if ("__data__" in node) subnode.__data__ = node.__data__;
82492 subgroup[i] = subnode;
82493 (0,_schedule_js__WEBPACK_IMPORTED_MODULE_1__["default"])(subgroup[i], name, id, i, subgroup, (0,_schedule_js__WEBPACK_IMPORTED_MODULE_1__.get)(node, id));
82494 }
82495 }
82496 }
82497
82498 return new _index_js__WEBPACK_IMPORTED_MODULE_2__.Transition(subgroups, this._parents, name, id);
82499}
82500
82501
82502/***/ }),
82503
82504/***/ "./node_modules/d3-transition/src/transition/selectAll.js":
82505/*!****************************************************************!*\
82506 !*** ./node_modules/d3-transition/src/transition/selectAll.js ***!
82507 \****************************************************************/
82508/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82509
82510"use strict";
82511__webpack_require__.r(__webpack_exports__);
82512/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82513/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
82514/* harmony export */ });
82515/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/selectorAll.js");
82516/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-transition/src/transition/index.js");
82517/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
82518
82519
82520
82521
82522/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(select) {
82523 var name = this._name,
82524 id = this._id;
82525
82526 if (typeof select !== "function") select = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"])(select);
82527
82528 for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
82529 for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
82530 if (node = group[i]) {
82531 for (var children = select.call(node, node.__data__, i, group), child, inherit = (0,_schedule_js__WEBPACK_IMPORTED_MODULE_1__.get)(node, id), k = 0, l = children.length; k < l; ++k) {
82532 if (child = children[k]) {
82533 (0,_schedule_js__WEBPACK_IMPORTED_MODULE_1__["default"])(child, name, id, k, children, inherit);
82534 }
82535 }
82536 subgroups.push(children);
82537 parents.push(node);
82538 }
82539 }
82540 }
82541
82542 return new _index_js__WEBPACK_IMPORTED_MODULE_2__.Transition(subgroups, parents, name, id);
82543}
82544
82545
82546/***/ }),
82547
82548/***/ "./node_modules/d3-transition/src/transition/selection.js":
82549/*!****************************************************************!*\
82550 !*** ./node_modules/d3-transition/src/transition/selection.js ***!
82551 \****************************************************************/
82552/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82553
82554"use strict";
82555__webpack_require__.r(__webpack_exports__);
82556/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82557/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
82558/* harmony export */ });
82559/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/selection/index.js");
82560
82561
82562var Selection = d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.constructor;
82563
82564/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
82565 return new Selection(this._groups, this._parents);
82566}
82567
82568
82569/***/ }),
82570
82571/***/ "./node_modules/d3-transition/src/transition/style.js":
82572/*!************************************************************!*\
82573 !*** ./node_modules/d3-transition/src/transition/style.js ***!
82574 \************************************************************/
82575/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82576
82577"use strict";
82578__webpack_require__.r(__webpack_exports__);
82579/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82580/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
82581/* harmony export */ });
82582/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/transform/index.js");
82583/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/selection/style.js");
82584/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
82585/* harmony import */ var _tween_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tween.js */ "./node_modules/d3-transition/src/transition/tween.js");
82586/* harmony import */ var _interpolate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./interpolate.js */ "./node_modules/d3-transition/src/transition/interpolate.js");
82587
82588
82589
82590
82591
82592
82593function styleNull(name, interpolate) {
82594 var string00,
82595 string10,
82596 interpolate0;
82597 return function() {
82598 var string0 = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__.styleValue)(this, name),
82599 string1 = (this.style.removeProperty(name), (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__.styleValue)(this, name));
82600 return string0 === string1 ? null
82601 : string0 === string00 && string1 === string10 ? interpolate0
82602 : interpolate0 = interpolate(string00 = string0, string10 = string1);
82603 };
82604}
82605
82606function styleRemove(name) {
82607 return function() {
82608 this.style.removeProperty(name);
82609 };
82610}
82611
82612function styleConstant(name, interpolate, value1) {
82613 var string00,
82614 string1 = value1 + "",
82615 interpolate0;
82616 return function() {
82617 var string0 = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__.styleValue)(this, name);
82618 return string0 === string1 ? null
82619 : string0 === string00 ? interpolate0
82620 : interpolate0 = interpolate(string00 = string0, value1);
82621 };
82622}
82623
82624function styleFunction(name, interpolate, value) {
82625 var string00,
82626 string10,
82627 interpolate0;
82628 return function() {
82629 var string0 = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__.styleValue)(this, name),
82630 value1 = value(this),
82631 string1 = value1 + "";
82632 if (value1 == null) string1 = value1 = (this.style.removeProperty(name), (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__.styleValue)(this, name));
82633 return string0 === string1 ? null
82634 : string0 === string00 && string1 === string10 ? interpolate0
82635 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
82636 };
82637}
82638
82639function styleMaybeRemove(id, name) {
82640 var on0, on1, listener0, key = "style." + name, event = "end." + key, remove;
82641 return function() {
82642 var schedule = (0,_schedule_js__WEBPACK_IMPORTED_MODULE_1__.set)(this, id),
82643 on = schedule.on,
82644 listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;
82645
82646 // If this node shared a dispatch with the previous node,
82647 // just assign the updated shared dispatch and we’re done!
82648 // Otherwise, copy-on-write.
82649 if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);
82650
82651 schedule.on = on1;
82652 };
82653}
82654
82655/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value, priority) {
82656 var i = (name += "") === "transform" ? d3_interpolate__WEBPACK_IMPORTED_MODULE_2__.interpolateTransformCss : _interpolate_js__WEBPACK_IMPORTED_MODULE_3__["default"];
82657 return value == null ? this
82658 .styleTween(name, styleNull(name, i))
82659 .on("end.style." + name, styleRemove(name))
82660 : typeof value === "function" ? this
82661 .styleTween(name, styleFunction(name, i, (0,_tween_js__WEBPACK_IMPORTED_MODULE_4__.tweenValue)(this, "style." + name, value)))
82662 .each(styleMaybeRemove(this._id, name))
82663 : this
82664 .styleTween(name, styleConstant(name, i, value), priority)
82665 .on("end.style." + name, null);
82666}
82667
82668
82669/***/ }),
82670
82671/***/ "./node_modules/d3-transition/src/transition/styleTween.js":
82672/*!*****************************************************************!*\
82673 !*** ./node_modules/d3-transition/src/transition/styleTween.js ***!
82674 \*****************************************************************/
82675/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82676
82677"use strict";
82678__webpack_require__.r(__webpack_exports__);
82679/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82680/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
82681/* harmony export */ });
82682function styleInterpolate(name, i, priority) {
82683 return function(t) {
82684 this.style.setProperty(name, i.call(this, t), priority);
82685 };
82686}
82687
82688function styleTween(name, value, priority) {
82689 var t, i0;
82690 function tween() {
82691 var i = value.apply(this, arguments);
82692 if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);
82693 return t;
82694 }
82695 tween._value = value;
82696 return tween;
82697}
82698
82699/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value, priority) {
82700 var key = "style." + (name += "");
82701 if (arguments.length < 2) return (key = this.tween(key)) && key._value;
82702 if (value == null) return this.tween(key, null);
82703 if (typeof value !== "function") throw new Error;
82704 return this.tween(key, styleTween(name, value, priority == null ? "" : priority));
82705}
82706
82707
82708/***/ }),
82709
82710/***/ "./node_modules/d3-transition/src/transition/text.js":
82711/*!***********************************************************!*\
82712 !*** ./node_modules/d3-transition/src/transition/text.js ***!
82713 \***********************************************************/
82714/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82715
82716"use strict";
82717__webpack_require__.r(__webpack_exports__);
82718/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82719/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
82720/* harmony export */ });
82721/* harmony import */ var _tween_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tween.js */ "./node_modules/d3-transition/src/transition/tween.js");
82722
82723
82724function textConstant(value) {
82725 return function() {
82726 this.textContent = value;
82727 };
82728}
82729
82730function textFunction(value) {
82731 return function() {
82732 var value1 = value(this);
82733 this.textContent = value1 == null ? "" : value1;
82734 };
82735}
82736
82737/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) {
82738 return this.tween("text", typeof value === "function"
82739 ? textFunction((0,_tween_js__WEBPACK_IMPORTED_MODULE_0__.tweenValue)(this, "text", value))
82740 : textConstant(value == null ? "" : value + ""));
82741}
82742
82743
82744/***/ }),
82745
82746/***/ "./node_modules/d3-transition/src/transition/textTween.js":
82747/*!****************************************************************!*\
82748 !*** ./node_modules/d3-transition/src/transition/textTween.js ***!
82749 \****************************************************************/
82750/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82751
82752"use strict";
82753__webpack_require__.r(__webpack_exports__);
82754/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82755/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
82756/* harmony export */ });
82757function textInterpolate(i) {
82758 return function(t) {
82759 this.textContent = i.call(this, t);
82760 };
82761}
82762
82763function textTween(value) {
82764 var t0, i0;
82765 function tween() {
82766 var i = value.apply(this, arguments);
82767 if (i !== i0) t0 = (i0 = i) && textInterpolate(i);
82768 return t0;
82769 }
82770 tween._value = value;
82771 return tween;
82772}
82773
82774/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) {
82775 var key = "text";
82776 if (arguments.length < 1) return (key = this.tween(key)) && key._value;
82777 if (value == null) return this.tween(key, null);
82778 if (typeof value !== "function") throw new Error;
82779 return this.tween(key, textTween(value));
82780}
82781
82782
82783/***/ }),
82784
82785/***/ "./node_modules/d3-transition/src/transition/transition.js":
82786/*!*****************************************************************!*\
82787 !*** ./node_modules/d3-transition/src/transition/transition.js ***!
82788 \*****************************************************************/
82789/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82790
82791"use strict";
82792__webpack_require__.r(__webpack_exports__);
82793/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82794/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
82795/* harmony export */ });
82796/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ "./node_modules/d3-transition/src/transition/index.js");
82797/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
82798
82799
82800
82801/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
82802 var name = this._name,
82803 id0 = this._id,
82804 id1 = (0,_index_js__WEBPACK_IMPORTED_MODULE_0__.newId)();
82805
82806 for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
82807 for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
82808 if (node = group[i]) {
82809 var inherit = (0,_schedule_js__WEBPACK_IMPORTED_MODULE_1__.get)(node, id0);
82810 (0,_schedule_js__WEBPACK_IMPORTED_MODULE_1__["default"])(node, name, id1, i, group, {
82811 time: inherit.time + inherit.delay + inherit.duration,
82812 delay: 0,
82813 duration: inherit.duration,
82814 ease: inherit.ease
82815 });
82816 }
82817 }
82818 }
82819
82820 return new _index_js__WEBPACK_IMPORTED_MODULE_0__.Transition(groups, this._parents, name, id1);
82821}
82822
82823
82824/***/ }),
82825
82826/***/ "./node_modules/d3-transition/src/transition/tween.js":
82827/*!************************************************************!*\
82828 !*** ./node_modules/d3-transition/src/transition/tween.js ***!
82829 \************************************************************/
82830/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82831
82832"use strict";
82833__webpack_require__.r(__webpack_exports__);
82834/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82835/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
82836/* harmony export */ "tweenValue": () => (/* binding */ tweenValue)
82837/* harmony export */ });
82838/* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./schedule.js */ "./node_modules/d3-transition/src/transition/schedule.js");
82839
82840
82841function tweenRemove(id, name) {
82842 var tween0, tween1;
82843 return function() {
82844 var schedule = (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.set)(this, id),
82845 tween = schedule.tween;
82846
82847 // If this node shared tween with the previous node,
82848 // just assign the updated shared tween and we’re done!
82849 // Otherwise, copy-on-write.
82850 if (tween !== tween0) {
82851 tween1 = tween0 = tween;
82852 for (var i = 0, n = tween1.length; i < n; ++i) {
82853 if (tween1[i].name === name) {
82854 tween1 = tween1.slice();
82855 tween1.splice(i, 1);
82856 break;
82857 }
82858 }
82859 }
82860
82861 schedule.tween = tween1;
82862 };
82863}
82864
82865function tweenFunction(id, name, value) {
82866 var tween0, tween1;
82867 if (typeof value !== "function") throw new Error;
82868 return function() {
82869 var schedule = (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.set)(this, id),
82870 tween = schedule.tween;
82871
82872 // If this node shared tween with the previous node,
82873 // just assign the updated shared tween and we’re done!
82874 // Otherwise, copy-on-write.
82875 if (tween !== tween0) {
82876 tween1 = (tween0 = tween).slice();
82877 for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {
82878 if (tween1[i].name === name) {
82879 tween1[i] = t;
82880 break;
82881 }
82882 }
82883 if (i === n) tween1.push(t);
82884 }
82885
82886 schedule.tween = tween1;
82887 };
82888}
82889
82890/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value) {
82891 var id = this._id;
82892
82893 name += "";
82894
82895 if (arguments.length < 2) {
82896 var tween = (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.get)(this.node(), id).tween;
82897 for (var i = 0, n = tween.length, t; i < n; ++i) {
82898 if ((t = tween[i]).name === name) {
82899 return t.value;
82900 }
82901 }
82902 return null;
82903 }
82904
82905 return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));
82906}
82907
82908function tweenValue(transition, name, value) {
82909 var id = transition._id;
82910
82911 transition.each(function() {
82912 var schedule = (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.set)(this, id);
82913 (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);
82914 });
82915
82916 return function(node) {
82917 return (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.get)(node, id).value[name];
82918 };
82919}
82920
82921
82922/***/ }),
82923
82924/***/ "./node_modules/d3-zoom/src/constant.js":
82925/*!**********************************************!*\
82926 !*** ./node_modules/d3-zoom/src/constant.js ***!
82927 \**********************************************/
82928/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82929
82930"use strict";
82931__webpack_require__.r(__webpack_exports__);
82932/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82933/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
82934/* harmony export */ });
82935/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (x => () => x);
82936
82937
82938/***/ }),
82939
82940/***/ "./node_modules/d3-zoom/src/event.js":
82941/*!*******************************************!*\
82942 !*** ./node_modules/d3-zoom/src/event.js ***!
82943 \*******************************************/
82944/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82945
82946"use strict";
82947__webpack_require__.r(__webpack_exports__);
82948/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82949/* harmony export */ "default": () => (/* binding */ ZoomEvent)
82950/* harmony export */ });
82951function ZoomEvent(type, {
82952 sourceEvent,
82953 target,
82954 transform,
82955 dispatch
82956}) {
82957 Object.defineProperties(this, {
82958 type: {value: type, enumerable: true, configurable: true},
82959 sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},
82960 target: {value: target, enumerable: true, configurable: true},
82961 transform: {value: transform, enumerable: true, configurable: true},
82962 _: {value: dispatch}
82963 });
82964}
82965
82966
82967/***/ }),
82968
82969/***/ "./node_modules/d3-zoom/src/index.js":
82970/*!*******************************************!*\
82971 !*** ./node_modules/d3-zoom/src/index.js ***!
82972 \*******************************************/
82973/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82974
82975"use strict";
82976__webpack_require__.r(__webpack_exports__);
82977/* harmony export */ __webpack_require__.d(__webpack_exports__, {
82978/* harmony export */ "ZoomTransform": () => (/* reexport safe */ _transform_js__WEBPACK_IMPORTED_MODULE_1__.Transform),
82979/* harmony export */ "zoom": () => (/* reexport safe */ _zoom_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
82980/* harmony export */ "zoomIdentity": () => (/* reexport safe */ _transform_js__WEBPACK_IMPORTED_MODULE_1__.identity),
82981/* harmony export */ "zoomTransform": () => (/* reexport safe */ _transform_js__WEBPACK_IMPORTED_MODULE_1__["default"])
82982/* harmony export */ });
82983/* harmony import */ var _zoom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./zoom.js */ "./node_modules/d3-zoom/src/zoom.js");
82984/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transform.js */ "./node_modules/d3-zoom/src/transform.js");
82985
82986
82987
82988
82989/***/ }),
82990
82991/***/ "./node_modules/d3-zoom/src/noevent.js":
82992/*!*********************************************!*\
82993 !*** ./node_modules/d3-zoom/src/noevent.js ***!
82994 \*********************************************/
82995/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
82996
82997"use strict";
82998__webpack_require__.r(__webpack_exports__);
82999/* harmony export */ __webpack_require__.d(__webpack_exports__, {
83000/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__),
83001/* harmony export */ "nopropagation": () => (/* binding */ nopropagation)
83002/* harmony export */ });
83003function nopropagation(event) {
83004 event.stopImmediatePropagation();
83005}
83006
83007/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(event) {
83008 event.preventDefault();
83009 event.stopImmediatePropagation();
83010}
83011
83012
83013/***/ }),
83014
83015/***/ "./node_modules/d3-zoom/src/transform.js":
83016/*!***********************************************!*\
83017 !*** ./node_modules/d3-zoom/src/transform.js ***!
83018 \***********************************************/
83019/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
83020
83021"use strict";
83022__webpack_require__.r(__webpack_exports__);
83023/* harmony export */ __webpack_require__.d(__webpack_exports__, {
83024/* harmony export */ "Transform": () => (/* binding */ Transform),
83025/* harmony export */ "default": () => (/* binding */ transform),
83026/* harmony export */ "identity": () => (/* binding */ identity)
83027/* harmony export */ });
83028function Transform(k, x, y) {
83029 this.k = k;
83030 this.x = x;
83031 this.y = y;
83032}
83033
83034Transform.prototype = {
83035 constructor: Transform,
83036 scale: function(k) {
83037 return k === 1 ? this : new Transform(this.k * k, this.x, this.y);
83038 },
83039 translate: function(x, y) {
83040 return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);
83041 },
83042 apply: function(point) {
83043 return [point[0] * this.k + this.x, point[1] * this.k + this.y];
83044 },
83045 applyX: function(x) {
83046 return x * this.k + this.x;
83047 },
83048 applyY: function(y) {
83049 return y * this.k + this.y;
83050 },
83051 invert: function(location) {
83052 return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];
83053 },
83054 invertX: function(x) {
83055 return (x - this.x) / this.k;
83056 },
83057 invertY: function(y) {
83058 return (y - this.y) / this.k;
83059 },
83060 rescaleX: function(x) {
83061 return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));
83062 },
83063 rescaleY: function(y) {
83064 return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));
83065 },
83066 toString: function() {
83067 return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
83068 }
83069};
83070
83071var identity = new Transform(1, 0, 0);
83072
83073transform.prototype = Transform.prototype;
83074
83075function transform(node) {
83076 while (!node.__zoom) if (!(node = node.parentNode)) return identity;
83077 return node.__zoom;
83078}
83079
83080
83081/***/ }),
83082
83083/***/ "./node_modules/d3-zoom/src/zoom.js":
83084/*!******************************************!*\
83085 !*** ./node_modules/d3-zoom/src/zoom.js ***!
83086 \******************************************/
83087/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
83088
83089"use strict";
83090__webpack_require__.r(__webpack_exports__);
83091/* harmony export */ __webpack_require__.d(__webpack_exports__, {
83092/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
83093/* harmony export */ });
83094/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/dispatch.js");
83095/* harmony import */ var d3_drag__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! d3-drag */ "./node_modules/d3-drag/src/nodrag.js");
83096/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/zoom.js");
83097/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/select.js");
83098/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/pointer.js");
83099/* harmony import */ var d3_transition__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-transition */ "./node_modules/d3-transition/src/index.js");
83100/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant.js */ "./node_modules/d3-zoom/src/constant.js");
83101/* harmony import */ var _event_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./event.js */ "./node_modules/d3-zoom/src/event.js");
83102/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./transform.js */ "./node_modules/d3-zoom/src/transform.js");
83103/* harmony import */ var _noevent_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./noevent.js */ "./node_modules/d3-zoom/src/noevent.js");
83104
83105
83106
83107
83108
83109
83110
83111
83112
83113
83114// Ignore right-click, since that should open the context menu.
83115// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event
83116function defaultFilter(event) {
83117 return (!event.ctrlKey || event.type === 'wheel') && !event.button;
83118}
83119
83120function defaultExtent() {
83121 var e = this;
83122 if (e instanceof SVGElement) {
83123 e = e.ownerSVGElement || e;
83124 if (e.hasAttribute("viewBox")) {
83125 e = e.viewBox.baseVal;
83126 return [[e.x, e.y], [e.x + e.width, e.y + e.height]];
83127 }
83128 return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];
83129 }
83130 return [[0, 0], [e.clientWidth, e.clientHeight]];
83131}
83132
83133function defaultTransform() {
83134 return this.__zoom || _transform_js__WEBPACK_IMPORTED_MODULE_3__.identity;
83135}
83136
83137function defaultWheelDelta(event) {
83138 return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);
83139}
83140
83141function defaultTouchable() {
83142 return navigator.maxTouchPoints || ("ontouchstart" in this);
83143}
83144
83145function defaultConstrain(transform, extent, translateExtent) {
83146 var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],
83147 dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],
83148 dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],
83149 dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];
83150 return transform.translate(
83151 dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),
83152 dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)
83153 );
83154}
83155
83156/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() {
83157 var filter = defaultFilter,
83158 extent = defaultExtent,
83159 constrain = defaultConstrain,
83160 wheelDelta = defaultWheelDelta,
83161 touchable = defaultTouchable,
83162 scaleExtent = [0, Infinity],
83163 translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],
83164 duration = 250,
83165 interpolate = d3_interpolate__WEBPACK_IMPORTED_MODULE_5__["default"],
83166 listeners = (0,d3_dispatch__WEBPACK_IMPORTED_MODULE_6__["default"])("start", "zoom", "end"),
83167 touchstarting,
83168 touchfirst,
83169 touchending,
83170 touchDelay = 500,
83171 wheelDelay = 150,
83172 clickDistance2 = 0,
83173 tapDistance = 10;
83174
83175 function zoom(selection) {
83176 selection
83177 .property("__zoom", defaultTransform)
83178 .on("wheel.zoom", wheeled, {passive: false})
83179 .on("mousedown.zoom", mousedowned)
83180 .on("dblclick.zoom", dblclicked)
83181 .filter(touchable)
83182 .on("touchstart.zoom", touchstarted)
83183 .on("touchmove.zoom", touchmoved)
83184 .on("touchend.zoom touchcancel.zoom", touchended)
83185 .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
83186 }
83187
83188 zoom.transform = function(collection, transform, point, event) {
83189 var selection = collection.selection ? collection.selection() : collection;
83190 selection.property("__zoom", defaultTransform);
83191 if (collection !== selection) {
83192 schedule(collection, transform, point, event);
83193 } else {
83194 selection.interrupt().each(function() {
83195 gesture(this, arguments)
83196 .event(event)
83197 .start()
83198 .zoom(null, typeof transform === "function" ? transform.apply(this, arguments) : transform)
83199 .end();
83200 });
83201 }
83202 };
83203
83204 zoom.scaleBy = function(selection, k, p, event) {
83205 zoom.scaleTo(selection, function() {
83206 var k0 = this.__zoom.k,
83207 k1 = typeof k === "function" ? k.apply(this, arguments) : k;
83208 return k0 * k1;
83209 }, p, event);
83210 };
83211
83212 zoom.scaleTo = function(selection, k, p, event) {
83213 zoom.transform(selection, function() {
83214 var e = extent.apply(this, arguments),
83215 t0 = this.__zoom,
83216 p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p,
83217 p1 = t0.invert(p0),
83218 k1 = typeof k === "function" ? k.apply(this, arguments) : k;
83219 return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);
83220 }, p, event);
83221 };
83222
83223 zoom.translateBy = function(selection, x, y, event) {
83224 zoom.transform(selection, function() {
83225 return constrain(this.__zoom.translate(
83226 typeof x === "function" ? x.apply(this, arguments) : x,
83227 typeof y === "function" ? y.apply(this, arguments) : y
83228 ), extent.apply(this, arguments), translateExtent);
83229 }, null, event);
83230 };
83231
83232 zoom.translateTo = function(selection, x, y, p, event) {
83233 zoom.transform(selection, function() {
83234 var e = extent.apply(this, arguments),
83235 t = this.__zoom,
83236 p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p;
83237 return constrain(_transform_js__WEBPACK_IMPORTED_MODULE_3__.identity.translate(p0[0], p0[1]).scale(t.k).translate(
83238 typeof x === "function" ? -x.apply(this, arguments) : -x,
83239 typeof y === "function" ? -y.apply(this, arguments) : -y
83240 ), e, translateExtent);
83241 }, p, event);
83242 };
83243
83244 function scale(transform, k) {
83245 k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));
83246 return k === transform.k ? transform : new _transform_js__WEBPACK_IMPORTED_MODULE_3__.Transform(k, transform.x, transform.y);
83247 }
83248
83249 function translate(transform, p0, p1) {
83250 var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;
83251 return x === transform.x && y === transform.y ? transform : new _transform_js__WEBPACK_IMPORTED_MODULE_3__.Transform(transform.k, x, y);
83252 }
83253
83254 function centroid(extent) {
83255 return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];
83256 }
83257
83258 function schedule(transition, transform, point, event) {
83259 transition
83260 .on("start.zoom", function() { gesture(this, arguments).event(event).start(); })
83261 .on("interrupt.zoom end.zoom", function() { gesture(this, arguments).event(event).end(); })
83262 .tween("zoom", function() {
83263 var that = this,
83264 args = arguments,
83265 g = gesture(that, args).event(event),
83266 e = extent.apply(that, args),
83267 p = point == null ? centroid(e) : typeof point === "function" ? point.apply(that, args) : point,
83268 w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),
83269 a = that.__zoom,
83270 b = typeof transform === "function" ? transform.apply(that, args) : transform,
83271 i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));
83272 return function(t) {
83273 if (t === 1) t = b; // Avoid rounding error on end.
83274 else { var l = i(t), k = w / l[2]; t = new _transform_js__WEBPACK_IMPORTED_MODULE_3__.Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }
83275 g.zoom(null, t);
83276 };
83277 });
83278 }
83279
83280 function gesture(that, args, clean) {
83281 return (!clean && that.__zooming) || new Gesture(that, args);
83282 }
83283
83284 function Gesture(that, args) {
83285 this.that = that;
83286 this.args = args;
83287 this.active = 0;
83288 this.sourceEvent = null;
83289 this.extent = extent.apply(that, args);
83290 this.taps = 0;
83291 }
83292
83293 Gesture.prototype = {
83294 event: function(event) {
83295 if (event) this.sourceEvent = event;
83296 return this;
83297 },
83298 start: function() {
83299 if (++this.active === 1) {
83300 this.that.__zooming = this;
83301 this.emit("start");
83302 }
83303 return this;
83304 },
83305 zoom: function(key, transform) {
83306 if (this.mouse && key !== "mouse") this.mouse[1] = transform.invert(this.mouse[0]);
83307 if (this.touch0 && key !== "touch") this.touch0[1] = transform.invert(this.touch0[0]);
83308 if (this.touch1 && key !== "touch") this.touch1[1] = transform.invert(this.touch1[0]);
83309 this.that.__zoom = transform;
83310 this.emit("zoom");
83311 return this;
83312 },
83313 end: function() {
83314 if (--this.active === 0) {
83315 delete this.that.__zooming;
83316 this.emit("end");
83317 }
83318 return this;
83319 },
83320 emit: function(type) {
83321 var d = (0,d3_selection__WEBPACK_IMPORTED_MODULE_7__["default"])(this.that).datum();
83322 listeners.call(
83323 type,
83324 this.that,
83325 new _event_js__WEBPACK_IMPORTED_MODULE_2__["default"](type, {
83326 sourceEvent: this.sourceEvent,
83327 target: zoom,
83328 type,
83329 transform: this.that.__zoom,
83330 dispatch: listeners
83331 }),
83332 d
83333 );
83334 }
83335 };
83336
83337 function wheeled(event, ...args) {
83338 if (!filter.apply(this, arguments)) return;
83339 var g = gesture(this, args).event(event),
83340 t = this.__zoom,
83341 k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),
83342 p = (0,d3_selection__WEBPACK_IMPORTED_MODULE_8__["default"])(event);
83343
83344 // If the mouse is in the same location as before, reuse it.
83345 // If there were recent wheel events, reset the wheel idle timeout.
83346 if (g.wheel) {
83347 if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {
83348 g.mouse[1] = t.invert(g.mouse[0] = p);
83349 }
83350 clearTimeout(g.wheel);
83351 }
83352
83353 // If this wheel event won’t trigger a transform change, ignore it.
83354 else if (t.k === k) return;
83355
83356 // Otherwise, capture the mouse point and location at the start.
83357 else {
83358 g.mouse = [p, t.invert(p)];
83359 (0,d3_transition__WEBPACK_IMPORTED_MODULE_0__.interrupt)(this);
83360 g.start();
83361 }
83362
83363 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_4__["default"])(event);
83364 g.wheel = setTimeout(wheelidled, wheelDelay);
83365 g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));
83366
83367 function wheelidled() {
83368 g.wheel = null;
83369 g.end();
83370 }
83371 }
83372
83373 function mousedowned(event, ...args) {
83374 if (touchending || !filter.apply(this, arguments)) return;
83375 var currentTarget = event.currentTarget,
83376 g = gesture(this, args, true).event(event),
83377 v = (0,d3_selection__WEBPACK_IMPORTED_MODULE_7__["default"])(event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true),
83378 p = (0,d3_selection__WEBPACK_IMPORTED_MODULE_8__["default"])(event, currentTarget),
83379 x0 = event.clientX,
83380 y0 = event.clientY;
83381
83382 (0,d3_drag__WEBPACK_IMPORTED_MODULE_9__["default"])(event.view);
83383 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_4__.nopropagation)(event);
83384 g.mouse = [p, this.__zoom.invert(p)];
83385 (0,d3_transition__WEBPACK_IMPORTED_MODULE_0__.interrupt)(this);
83386 g.start();
83387
83388 function mousemoved(event) {
83389 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_4__["default"])(event);
83390 if (!g.moved) {
83391 var dx = event.clientX - x0, dy = event.clientY - y0;
83392 g.moved = dx * dx + dy * dy > clickDistance2;
83393 }
83394 g.event(event)
83395 .zoom("mouse", constrain(translate(g.that.__zoom, g.mouse[0] = (0,d3_selection__WEBPACK_IMPORTED_MODULE_8__["default"])(event, currentTarget), g.mouse[1]), g.extent, translateExtent));
83396 }
83397
83398 function mouseupped(event) {
83399 v.on("mousemove.zoom mouseup.zoom", null);
83400 (0,d3_drag__WEBPACK_IMPORTED_MODULE_9__.yesdrag)(event.view, g.moved);
83401 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_4__["default"])(event);
83402 g.event(event).end();
83403 }
83404 }
83405
83406 function dblclicked(event, ...args) {
83407 if (!filter.apply(this, arguments)) return;
83408 var t0 = this.__zoom,
83409 p0 = (0,d3_selection__WEBPACK_IMPORTED_MODULE_8__["default"])(event.changedTouches ? event.changedTouches[0] : event, this),
83410 p1 = t0.invert(p0),
83411 k1 = t0.k * (event.shiftKey ? 0.5 : 2),
83412 t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);
83413
83414 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_4__["default"])(event);
83415 if (duration > 0) (0,d3_selection__WEBPACK_IMPORTED_MODULE_7__["default"])(this).transition().duration(duration).call(schedule, t1, p0, event);
83416 else (0,d3_selection__WEBPACK_IMPORTED_MODULE_7__["default"])(this).call(zoom.transform, t1, p0, event);
83417 }
83418
83419 function touchstarted(event, ...args) {
83420 if (!filter.apply(this, arguments)) return;
83421 var touches = event.touches,
83422 n = touches.length,
83423 g = gesture(this, args, event.changedTouches.length === n).event(event),
83424 started, i, t, p;
83425
83426 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_4__.nopropagation)(event);
83427 for (i = 0; i < n; ++i) {
83428 t = touches[i], p = (0,d3_selection__WEBPACK_IMPORTED_MODULE_8__["default"])(t, this);
83429 p = [p, this.__zoom.invert(p), t.identifier];
83430 if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;
83431 else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;
83432 }
83433
83434 if (touchstarting) touchstarting = clearTimeout(touchstarting);
83435
83436 if (started) {
83437 if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);
83438 (0,d3_transition__WEBPACK_IMPORTED_MODULE_0__.interrupt)(this);
83439 g.start();
83440 }
83441 }
83442
83443 function touchmoved(event, ...args) {
83444 if (!this.__zooming) return;
83445 var g = gesture(this, args).event(event),
83446 touches = event.changedTouches,
83447 n = touches.length, i, t, p, l;
83448
83449 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_4__["default"])(event);
83450 for (i = 0; i < n; ++i) {
83451 t = touches[i], p = (0,d3_selection__WEBPACK_IMPORTED_MODULE_8__["default"])(t, this);
83452 if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;
83453 else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;
83454 }
83455 t = g.that.__zoom;
83456 if (g.touch1) {
83457 var p0 = g.touch0[0], l0 = g.touch0[1],
83458 p1 = g.touch1[0], l1 = g.touch1[1],
83459 dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,
83460 dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;
83461 t = scale(t, Math.sqrt(dp / dl));
83462 p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];
83463 l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];
83464 }
83465 else if (g.touch0) p = g.touch0[0], l = g.touch0[1];
83466 else return;
83467
83468 g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent));
83469 }
83470
83471 function touchended(event, ...args) {
83472 if (!this.__zooming) return;
83473 var g = gesture(this, args).event(event),
83474 touches = event.changedTouches,
83475 n = touches.length, i, t;
83476
83477 (0,_noevent_js__WEBPACK_IMPORTED_MODULE_4__.nopropagation)(event);
83478 if (touchending) clearTimeout(touchending);
83479 touchending = setTimeout(function() { touchending = null; }, touchDelay);
83480 for (i = 0; i < n; ++i) {
83481 t = touches[i];
83482 if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;
83483 else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;
83484 }
83485 if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;
83486 if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);
83487 else {
83488 g.end();
83489 // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.
83490 if (g.taps === 2) {
83491 t = (0,d3_selection__WEBPACK_IMPORTED_MODULE_8__["default"])(t, this);
83492 if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {
83493 var p = (0,d3_selection__WEBPACK_IMPORTED_MODULE_7__["default"])(this).on("dblclick.zoom");
83494 if (p) p.apply(this, arguments);
83495 }
83496 }
83497 }
83498 }
83499
83500 zoom.wheelDelta = function(_) {
83501 return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(+_), zoom) : wheelDelta;
83502 };
83503
83504 zoom.filter = function(_) {
83505 return arguments.length ? (filter = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(!!_), zoom) : filter;
83506 };
83507
83508 zoom.touchable = function(_) {
83509 return arguments.length ? (touchable = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(!!_), zoom) : touchable;
83510 };
83511
83512 zoom.extent = function(_) {
83513 return arguments.length ? (extent = typeof _ === "function" ? _ : (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;
83514 };
83515
83516 zoom.scaleExtent = function(_) {
83517 return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];
83518 };
83519
83520 zoom.translateExtent = function(_) {
83521 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]]];
83522 };
83523
83524 zoom.constrain = function(_) {
83525 return arguments.length ? (constrain = _, zoom) : constrain;
83526 };
83527
83528 zoom.duration = function(_) {
83529 return arguments.length ? (duration = +_, zoom) : duration;
83530 };
83531
83532 zoom.interpolate = function(_) {
83533 return arguments.length ? (interpolate = _, zoom) : interpolate;
83534 };
83535
83536 zoom.on = function() {
83537 var value = listeners.on.apply(listeners, arguments);
83538 return value === listeners ? zoom : value;
83539 };
83540
83541 zoom.clickDistance = function(_) {
83542 return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);
83543 };
83544
83545 zoom.tapDistance = function(_) {
83546 return arguments.length ? (tapDistance = +_, zoom) : tapDistance;
83547 };
83548
83549 return zoom;
83550}
83551
83552
83553/***/ }),
83554
83555/***/ "./node_modules/d3/src/index.js":
83556/*!**************************************!*\
83557 !*** ./node_modules/d3/src/index.js ***!
83558 \**************************************/
83559/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
83560
83561"use strict";
83562__webpack_require__.r(__webpack_exports__);
83563/* harmony export */ __webpack_require__.d(__webpack_exports__, {
83564/* harmony export */ "Adder": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.Adder),
83565/* harmony export */ "Delaunay": () => (/* reexport safe */ d3_delaunay__WEBPACK_IMPORTED_MODULE_6__.Delaunay),
83566/* harmony export */ "FormatSpecifier": () => (/* reexport safe */ d3_format__WEBPACK_IMPORTED_MODULE_13__.FormatSpecifier),
83567/* harmony export */ "InternMap": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.InternMap),
83568/* harmony export */ "InternSet": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.InternSet),
83569/* harmony export */ "Node": () => (/* reexport safe */ d3_hierarchy__WEBPACK_IMPORTED_MODULE_15__.Node),
83570/* harmony export */ "Voronoi": () => (/* reexport safe */ d3_delaunay__WEBPACK_IMPORTED_MODULE_6__.Voronoi),
83571/* harmony export */ "ZoomTransform": () => (/* reexport safe */ d3_zoom__WEBPACK_IMPORTED_MODULE_29__.ZoomTransform),
83572/* harmony export */ "active": () => (/* reexport safe */ d3_transition__WEBPACK_IMPORTED_MODULE_28__.active),
83573/* harmony export */ "arc": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.arc),
83574/* harmony export */ "area": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.area),
83575/* harmony export */ "areaRadial": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.areaRadial),
83576/* harmony export */ "ascending": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.ascending),
83577/* harmony export */ "autoType": () => (/* reexport safe */ d3_dsv__WEBPACK_IMPORTED_MODULE_9__.autoType),
83578/* harmony export */ "axisBottom": () => (/* reexport safe */ d3_axis__WEBPACK_IMPORTED_MODULE_1__.axisBottom),
83579/* harmony export */ "axisLeft": () => (/* reexport safe */ d3_axis__WEBPACK_IMPORTED_MODULE_1__.axisLeft),
83580/* harmony export */ "axisRight": () => (/* reexport safe */ d3_axis__WEBPACK_IMPORTED_MODULE_1__.axisRight),
83581/* harmony export */ "axisTop": () => (/* reexport safe */ d3_axis__WEBPACK_IMPORTED_MODULE_1__.axisTop),
83582/* harmony export */ "bin": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.bin),
83583/* harmony export */ "bisect": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.bisect),
83584/* harmony export */ "bisectCenter": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.bisectCenter),
83585/* harmony export */ "bisectLeft": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.bisectLeft),
83586/* harmony export */ "bisectRight": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.bisectRight),
83587/* harmony export */ "bisector": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.bisector),
83588/* harmony export */ "blob": () => (/* reexport safe */ d3_fetch__WEBPACK_IMPORTED_MODULE_11__.blob),
83589/* harmony export */ "brush": () => (/* reexport safe */ d3_brush__WEBPACK_IMPORTED_MODULE_2__.brush),
83590/* harmony export */ "brushSelection": () => (/* reexport safe */ d3_brush__WEBPACK_IMPORTED_MODULE_2__.brushSelection),
83591/* harmony export */ "brushX": () => (/* reexport safe */ d3_brush__WEBPACK_IMPORTED_MODULE_2__.brushX),
83592/* harmony export */ "brushY": () => (/* reexport safe */ d3_brush__WEBPACK_IMPORTED_MODULE_2__.brushY),
83593/* harmony export */ "buffer": () => (/* reexport safe */ d3_fetch__WEBPACK_IMPORTED_MODULE_11__.buffer),
83594/* harmony export */ "chord": () => (/* reexport safe */ d3_chord__WEBPACK_IMPORTED_MODULE_3__.chord),
83595/* harmony export */ "chordDirected": () => (/* reexport safe */ d3_chord__WEBPACK_IMPORTED_MODULE_3__.chordDirected),
83596/* harmony export */ "chordTranspose": () => (/* reexport safe */ d3_chord__WEBPACK_IMPORTED_MODULE_3__.chordTranspose),
83597/* harmony export */ "cluster": () => (/* reexport safe */ d3_hierarchy__WEBPACK_IMPORTED_MODULE_15__.cluster),
83598/* harmony export */ "color": () => (/* reexport safe */ d3_color__WEBPACK_IMPORTED_MODULE_4__.color),
83599/* harmony export */ "contourDensity": () => (/* reexport safe */ d3_contour__WEBPACK_IMPORTED_MODULE_5__.contourDensity),
83600/* harmony export */ "contours": () => (/* reexport safe */ d3_contour__WEBPACK_IMPORTED_MODULE_5__.contours),
83601/* harmony export */ "count": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.count),
83602/* harmony export */ "create": () => (/* reexport safe */ d3_selection__WEBPACK_IMPORTED_MODULE_23__.create),
83603/* harmony export */ "creator": () => (/* reexport safe */ d3_selection__WEBPACK_IMPORTED_MODULE_23__.creator),
83604/* harmony export */ "cross": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.cross),
83605/* harmony export */ "csv": () => (/* reexport safe */ d3_fetch__WEBPACK_IMPORTED_MODULE_11__.csv),
83606/* harmony export */ "csvFormat": () => (/* reexport safe */ d3_dsv__WEBPACK_IMPORTED_MODULE_9__.csvFormat),
83607/* harmony export */ "csvFormatBody": () => (/* reexport safe */ d3_dsv__WEBPACK_IMPORTED_MODULE_9__.csvFormatBody),
83608/* harmony export */ "csvFormatRow": () => (/* reexport safe */ d3_dsv__WEBPACK_IMPORTED_MODULE_9__.csvFormatRow),
83609/* harmony export */ "csvFormatRows": () => (/* reexport safe */ d3_dsv__WEBPACK_IMPORTED_MODULE_9__.csvFormatRows),
83610/* harmony export */ "csvFormatValue": () => (/* reexport safe */ d3_dsv__WEBPACK_IMPORTED_MODULE_9__.csvFormatValue),
83611/* harmony export */ "csvParse": () => (/* reexport safe */ d3_dsv__WEBPACK_IMPORTED_MODULE_9__.csvParse),
83612/* harmony export */ "csvParseRows": () => (/* reexport safe */ d3_dsv__WEBPACK_IMPORTED_MODULE_9__.csvParseRows),
83613/* harmony export */ "cubehelix": () => (/* reexport safe */ d3_color__WEBPACK_IMPORTED_MODULE_4__.cubehelix),
83614/* harmony export */ "cumsum": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.cumsum),
83615/* harmony export */ "curveBasis": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveBasis),
83616/* harmony export */ "curveBasisClosed": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveBasisClosed),
83617/* harmony export */ "curveBasisOpen": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveBasisOpen),
83618/* harmony export */ "curveBumpX": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveBumpX),
83619/* harmony export */ "curveBumpY": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveBumpY),
83620/* harmony export */ "curveBundle": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveBundle),
83621/* harmony export */ "curveCardinal": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveCardinal),
83622/* harmony export */ "curveCardinalClosed": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveCardinalClosed),
83623/* harmony export */ "curveCardinalOpen": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveCardinalOpen),
83624/* harmony export */ "curveCatmullRom": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveCatmullRom),
83625/* harmony export */ "curveCatmullRomClosed": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveCatmullRomClosed),
83626/* harmony export */ "curveCatmullRomOpen": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveCatmullRomOpen),
83627/* harmony export */ "curveLinear": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveLinear),
83628/* harmony export */ "curveLinearClosed": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveLinearClosed),
83629/* harmony export */ "curveMonotoneX": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveMonotoneX),
83630/* harmony export */ "curveMonotoneY": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveMonotoneY),
83631/* harmony export */ "curveNatural": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveNatural),
83632/* harmony export */ "curveStep": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveStep),
83633/* harmony export */ "curveStepAfter": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveStepAfter),
83634/* harmony export */ "curveStepBefore": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.curveStepBefore),
83635/* harmony export */ "descending": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.descending),
83636/* harmony export */ "deviation": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.deviation),
83637/* harmony export */ "difference": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.difference),
83638/* harmony export */ "disjoint": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.disjoint),
83639/* harmony export */ "dispatch": () => (/* reexport safe */ d3_dispatch__WEBPACK_IMPORTED_MODULE_7__.dispatch),
83640/* harmony export */ "drag": () => (/* reexport safe */ d3_drag__WEBPACK_IMPORTED_MODULE_8__.drag),
83641/* harmony export */ "dragDisable": () => (/* reexport safe */ d3_drag__WEBPACK_IMPORTED_MODULE_8__.dragDisable),
83642/* harmony export */ "dragEnable": () => (/* reexport safe */ d3_drag__WEBPACK_IMPORTED_MODULE_8__.dragEnable),
83643/* harmony export */ "dsv": () => (/* reexport safe */ d3_fetch__WEBPACK_IMPORTED_MODULE_11__.dsv),
83644/* harmony export */ "dsvFormat": () => (/* reexport safe */ d3_dsv__WEBPACK_IMPORTED_MODULE_9__.dsvFormat),
83645/* harmony export */ "easeBack": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeBack),
83646/* harmony export */ "easeBackIn": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeBackIn),
83647/* harmony export */ "easeBackInOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeBackInOut),
83648/* harmony export */ "easeBackOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeBackOut),
83649/* harmony export */ "easeBounce": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeBounce),
83650/* harmony export */ "easeBounceIn": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeBounceIn),
83651/* harmony export */ "easeBounceInOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeBounceInOut),
83652/* harmony export */ "easeBounceOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeBounceOut),
83653/* harmony export */ "easeCircle": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeCircle),
83654/* harmony export */ "easeCircleIn": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeCircleIn),
83655/* harmony export */ "easeCircleInOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeCircleInOut),
83656/* harmony export */ "easeCircleOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeCircleOut),
83657/* harmony export */ "easeCubic": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeCubic),
83658/* harmony export */ "easeCubicIn": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeCubicIn),
83659/* harmony export */ "easeCubicInOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeCubicInOut),
83660/* harmony export */ "easeCubicOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeCubicOut),
83661/* harmony export */ "easeElastic": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeElastic),
83662/* harmony export */ "easeElasticIn": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeElasticIn),
83663/* harmony export */ "easeElasticInOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeElasticInOut),
83664/* harmony export */ "easeElasticOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeElasticOut),
83665/* harmony export */ "easeExp": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeExp),
83666/* harmony export */ "easeExpIn": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeExpIn),
83667/* harmony export */ "easeExpInOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeExpInOut),
83668/* harmony export */ "easeExpOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeExpOut),
83669/* harmony export */ "easeLinear": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeLinear),
83670/* harmony export */ "easePoly": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easePoly),
83671/* harmony export */ "easePolyIn": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easePolyIn),
83672/* harmony export */ "easePolyInOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easePolyInOut),
83673/* harmony export */ "easePolyOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easePolyOut),
83674/* harmony export */ "easeQuad": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeQuad),
83675/* harmony export */ "easeQuadIn": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeQuadIn),
83676/* harmony export */ "easeQuadInOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeQuadInOut),
83677/* harmony export */ "easeQuadOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeQuadOut),
83678/* harmony export */ "easeSin": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeSin),
83679/* harmony export */ "easeSinIn": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeSinIn),
83680/* harmony export */ "easeSinInOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeSinInOut),
83681/* harmony export */ "easeSinOut": () => (/* reexport safe */ d3_ease__WEBPACK_IMPORTED_MODULE_10__.easeSinOut),
83682/* harmony export */ "every": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.every),
83683/* harmony export */ "extent": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.extent),
83684/* harmony export */ "fcumsum": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.fcumsum),
83685/* harmony export */ "filter": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.filter),
83686/* harmony export */ "flatGroup": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.flatGroup),
83687/* harmony export */ "flatRollup": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.flatRollup),
83688/* harmony export */ "forceCenter": () => (/* reexport safe */ d3_force__WEBPACK_IMPORTED_MODULE_12__.forceCenter),
83689/* harmony export */ "forceCollide": () => (/* reexport safe */ d3_force__WEBPACK_IMPORTED_MODULE_12__.forceCollide),
83690/* harmony export */ "forceLink": () => (/* reexport safe */ d3_force__WEBPACK_IMPORTED_MODULE_12__.forceLink),
83691/* harmony export */ "forceManyBody": () => (/* reexport safe */ d3_force__WEBPACK_IMPORTED_MODULE_12__.forceManyBody),
83692/* harmony export */ "forceRadial": () => (/* reexport safe */ d3_force__WEBPACK_IMPORTED_MODULE_12__.forceRadial),
83693/* harmony export */ "forceSimulation": () => (/* reexport safe */ d3_force__WEBPACK_IMPORTED_MODULE_12__.forceSimulation),
83694/* harmony export */ "forceX": () => (/* reexport safe */ d3_force__WEBPACK_IMPORTED_MODULE_12__.forceX),
83695/* harmony export */ "forceY": () => (/* reexport safe */ d3_force__WEBPACK_IMPORTED_MODULE_12__.forceY),
83696/* harmony export */ "format": () => (/* reexport safe */ d3_format__WEBPACK_IMPORTED_MODULE_13__.format),
83697/* harmony export */ "formatDefaultLocale": () => (/* reexport safe */ d3_format__WEBPACK_IMPORTED_MODULE_13__.formatDefaultLocale),
83698/* harmony export */ "formatLocale": () => (/* reexport safe */ d3_format__WEBPACK_IMPORTED_MODULE_13__.formatLocale),
83699/* harmony export */ "formatPrefix": () => (/* reexport safe */ d3_format__WEBPACK_IMPORTED_MODULE_13__.formatPrefix),
83700/* harmony export */ "formatSpecifier": () => (/* reexport safe */ d3_format__WEBPACK_IMPORTED_MODULE_13__.formatSpecifier),
83701/* harmony export */ "fsum": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.fsum),
83702/* harmony export */ "geoAlbers": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoAlbers),
83703/* harmony export */ "geoAlbersUsa": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoAlbersUsa),
83704/* harmony export */ "geoArea": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoArea),
83705/* harmony export */ "geoAzimuthalEqualArea": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoAzimuthalEqualArea),
83706/* harmony export */ "geoAzimuthalEqualAreaRaw": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoAzimuthalEqualAreaRaw),
83707/* harmony export */ "geoAzimuthalEquidistant": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoAzimuthalEquidistant),
83708/* harmony export */ "geoAzimuthalEquidistantRaw": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoAzimuthalEquidistantRaw),
83709/* harmony export */ "geoBounds": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoBounds),
83710/* harmony export */ "geoCentroid": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoCentroid),
83711/* harmony export */ "geoCircle": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoCircle),
83712/* harmony export */ "geoClipAntimeridian": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoClipAntimeridian),
83713/* harmony export */ "geoClipCircle": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoClipCircle),
83714/* harmony export */ "geoClipExtent": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoClipExtent),
83715/* harmony export */ "geoClipRectangle": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoClipRectangle),
83716/* harmony export */ "geoConicConformal": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoConicConformal),
83717/* harmony export */ "geoConicConformalRaw": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoConicConformalRaw),
83718/* harmony export */ "geoConicEqualArea": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoConicEqualArea),
83719/* harmony export */ "geoConicEqualAreaRaw": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoConicEqualAreaRaw),
83720/* harmony export */ "geoConicEquidistant": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoConicEquidistant),
83721/* harmony export */ "geoConicEquidistantRaw": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoConicEquidistantRaw),
83722/* harmony export */ "geoContains": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoContains),
83723/* harmony export */ "geoDistance": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoDistance),
83724/* harmony export */ "geoEqualEarth": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoEqualEarth),
83725/* harmony export */ "geoEqualEarthRaw": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoEqualEarthRaw),
83726/* harmony export */ "geoEquirectangular": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoEquirectangular),
83727/* harmony export */ "geoEquirectangularRaw": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoEquirectangularRaw),
83728/* harmony export */ "geoGnomonic": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoGnomonic),
83729/* harmony export */ "geoGnomonicRaw": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoGnomonicRaw),
83730/* harmony export */ "geoGraticule": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoGraticule),
83731/* harmony export */ "geoGraticule10": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoGraticule10),
83732/* harmony export */ "geoIdentity": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoIdentity),
83733/* harmony export */ "geoInterpolate": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoInterpolate),
83734/* harmony export */ "geoLength": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoLength),
83735/* harmony export */ "geoMercator": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoMercator),
83736/* harmony export */ "geoMercatorRaw": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoMercatorRaw),
83737/* harmony export */ "geoNaturalEarth1": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoNaturalEarth1),
83738/* harmony export */ "geoNaturalEarth1Raw": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoNaturalEarth1Raw),
83739/* harmony export */ "geoOrthographic": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoOrthographic),
83740/* harmony export */ "geoOrthographicRaw": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoOrthographicRaw),
83741/* harmony export */ "geoPath": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoPath),
83742/* harmony export */ "geoProjection": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoProjection),
83743/* harmony export */ "geoProjectionMutator": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoProjectionMutator),
83744/* harmony export */ "geoRotation": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoRotation),
83745/* harmony export */ "geoStereographic": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoStereographic),
83746/* harmony export */ "geoStereographicRaw": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoStereographicRaw),
83747/* harmony export */ "geoStream": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoStream),
83748/* harmony export */ "geoTransform": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoTransform),
83749/* harmony export */ "geoTransverseMercator": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoTransverseMercator),
83750/* harmony export */ "geoTransverseMercatorRaw": () => (/* reexport safe */ d3_geo__WEBPACK_IMPORTED_MODULE_14__.geoTransverseMercatorRaw),
83751/* harmony export */ "gray": () => (/* reexport safe */ d3_color__WEBPACK_IMPORTED_MODULE_4__.gray),
83752/* harmony export */ "greatest": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.greatest),
83753/* harmony export */ "greatestIndex": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.greatestIndex),
83754/* harmony export */ "group": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.group),
83755/* harmony export */ "groupSort": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.groupSort),
83756/* harmony export */ "groups": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.groups),
83757/* harmony export */ "hcl": () => (/* reexport safe */ d3_color__WEBPACK_IMPORTED_MODULE_4__.hcl),
83758/* harmony export */ "hierarchy": () => (/* reexport safe */ d3_hierarchy__WEBPACK_IMPORTED_MODULE_15__.hierarchy),
83759/* harmony export */ "histogram": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.histogram),
83760/* harmony export */ "hsl": () => (/* reexport safe */ d3_color__WEBPACK_IMPORTED_MODULE_4__.hsl),
83761/* harmony export */ "html": () => (/* reexport safe */ d3_fetch__WEBPACK_IMPORTED_MODULE_11__.html),
83762/* harmony export */ "image": () => (/* reexport safe */ d3_fetch__WEBPACK_IMPORTED_MODULE_11__.image),
83763/* harmony export */ "index": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.index),
83764/* harmony export */ "indexes": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.indexes),
83765/* harmony export */ "interpolate": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolate),
83766/* harmony export */ "interpolateArray": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateArray),
83767/* harmony export */ "interpolateBasis": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateBasis),
83768/* harmony export */ "interpolateBasisClosed": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateBasisClosed),
83769/* harmony export */ "interpolateBlues": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateBlues),
83770/* harmony export */ "interpolateBrBG": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateBrBG),
83771/* harmony export */ "interpolateBuGn": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateBuGn),
83772/* harmony export */ "interpolateBuPu": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateBuPu),
83773/* harmony export */ "interpolateCividis": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateCividis),
83774/* harmony export */ "interpolateCool": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateCool),
83775/* harmony export */ "interpolateCubehelix": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateCubehelix),
83776/* harmony export */ "interpolateCubehelixDefault": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateCubehelixDefault),
83777/* harmony export */ "interpolateCubehelixLong": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateCubehelixLong),
83778/* harmony export */ "interpolateDate": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateDate),
83779/* harmony export */ "interpolateDiscrete": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateDiscrete),
83780/* harmony export */ "interpolateGnBu": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateGnBu),
83781/* harmony export */ "interpolateGreens": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateGreens),
83782/* harmony export */ "interpolateGreys": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateGreys),
83783/* harmony export */ "interpolateHcl": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateHcl),
83784/* harmony export */ "interpolateHclLong": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateHclLong),
83785/* harmony export */ "interpolateHsl": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateHsl),
83786/* harmony export */ "interpolateHslLong": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateHslLong),
83787/* harmony export */ "interpolateHue": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateHue),
83788/* harmony export */ "interpolateInferno": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateInferno),
83789/* harmony export */ "interpolateLab": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateLab),
83790/* harmony export */ "interpolateMagma": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateMagma),
83791/* harmony export */ "interpolateNumber": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateNumber),
83792/* harmony export */ "interpolateNumberArray": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateNumberArray),
83793/* harmony export */ "interpolateObject": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateObject),
83794/* harmony export */ "interpolateOrRd": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateOrRd),
83795/* harmony export */ "interpolateOranges": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateOranges),
83796/* harmony export */ "interpolatePRGn": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolatePRGn),
83797/* harmony export */ "interpolatePiYG": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolatePiYG),
83798/* harmony export */ "interpolatePlasma": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolatePlasma),
83799/* harmony export */ "interpolatePuBu": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolatePuBu),
83800/* harmony export */ "interpolatePuBuGn": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolatePuBuGn),
83801/* harmony export */ "interpolatePuOr": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolatePuOr),
83802/* harmony export */ "interpolatePuRd": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolatePuRd),
83803/* harmony export */ "interpolatePurples": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolatePurples),
83804/* harmony export */ "interpolateRainbow": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateRainbow),
83805/* harmony export */ "interpolateRdBu": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateRdBu),
83806/* harmony export */ "interpolateRdGy": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateRdGy),
83807/* harmony export */ "interpolateRdPu": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateRdPu),
83808/* harmony export */ "interpolateRdYlBu": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateRdYlBu),
83809/* harmony export */ "interpolateRdYlGn": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateRdYlGn),
83810/* harmony export */ "interpolateReds": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateReds),
83811/* harmony export */ "interpolateRgb": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateRgb),
83812/* harmony export */ "interpolateRgbBasis": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateRgbBasis),
83813/* harmony export */ "interpolateRgbBasisClosed": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateRgbBasisClosed),
83814/* harmony export */ "interpolateRound": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateRound),
83815/* harmony export */ "interpolateSinebow": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateSinebow),
83816/* harmony export */ "interpolateSpectral": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateSpectral),
83817/* harmony export */ "interpolateString": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateString),
83818/* harmony export */ "interpolateTransformCss": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateTransformCss),
83819/* harmony export */ "interpolateTransformSvg": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateTransformSvg),
83820/* harmony export */ "interpolateTurbo": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateTurbo),
83821/* harmony export */ "interpolateViridis": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateViridis),
83822/* harmony export */ "interpolateWarm": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateWarm),
83823/* harmony export */ "interpolateYlGn": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateYlGn),
83824/* harmony export */ "interpolateYlGnBu": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateYlGnBu),
83825/* harmony export */ "interpolateYlOrBr": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateYlOrBr),
83826/* harmony export */ "interpolateYlOrRd": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.interpolateYlOrRd),
83827/* harmony export */ "interpolateZoom": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.interpolateZoom),
83828/* harmony export */ "interrupt": () => (/* reexport safe */ d3_transition__WEBPACK_IMPORTED_MODULE_28__.interrupt),
83829/* harmony export */ "intersection": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.intersection),
83830/* harmony export */ "interval": () => (/* reexport safe */ d3_timer__WEBPACK_IMPORTED_MODULE_27__.interval),
83831/* harmony export */ "isoFormat": () => (/* reexport safe */ d3_time_format__WEBPACK_IMPORTED_MODULE_26__.isoFormat),
83832/* harmony export */ "isoParse": () => (/* reexport safe */ d3_time_format__WEBPACK_IMPORTED_MODULE_26__.isoParse),
83833/* harmony export */ "json": () => (/* reexport safe */ d3_fetch__WEBPACK_IMPORTED_MODULE_11__.json),
83834/* harmony export */ "lab": () => (/* reexport safe */ d3_color__WEBPACK_IMPORTED_MODULE_4__.lab),
83835/* harmony export */ "lch": () => (/* reexport safe */ d3_color__WEBPACK_IMPORTED_MODULE_4__.lch),
83836/* harmony export */ "least": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.least),
83837/* harmony export */ "leastIndex": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.leastIndex),
83838/* harmony export */ "line": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.line),
83839/* harmony export */ "lineRadial": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.lineRadial),
83840/* harmony export */ "linkHorizontal": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.linkHorizontal),
83841/* harmony export */ "linkRadial": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.linkRadial),
83842/* harmony export */ "linkVertical": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.linkVertical),
83843/* harmony export */ "local": () => (/* reexport safe */ d3_selection__WEBPACK_IMPORTED_MODULE_23__.local),
83844/* harmony export */ "map": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.map),
83845/* harmony export */ "matcher": () => (/* reexport safe */ d3_selection__WEBPACK_IMPORTED_MODULE_23__.matcher),
83846/* harmony export */ "max": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.max),
83847/* harmony export */ "maxIndex": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.maxIndex),
83848/* harmony export */ "mean": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.mean),
83849/* harmony export */ "median": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.median),
83850/* harmony export */ "merge": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.merge),
83851/* harmony export */ "min": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.min),
83852/* harmony export */ "minIndex": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.minIndex),
83853/* harmony export */ "mode": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.mode),
83854/* harmony export */ "namespace": () => (/* reexport safe */ d3_selection__WEBPACK_IMPORTED_MODULE_23__.namespace),
83855/* harmony export */ "namespaces": () => (/* reexport safe */ d3_selection__WEBPACK_IMPORTED_MODULE_23__.namespaces),
83856/* harmony export */ "nice": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.nice),
83857/* harmony export */ "now": () => (/* reexport safe */ d3_timer__WEBPACK_IMPORTED_MODULE_27__.now),
83858/* harmony export */ "pack": () => (/* reexport safe */ d3_hierarchy__WEBPACK_IMPORTED_MODULE_15__.pack),
83859/* harmony export */ "packEnclose": () => (/* reexport safe */ d3_hierarchy__WEBPACK_IMPORTED_MODULE_15__.packEnclose),
83860/* harmony export */ "packSiblings": () => (/* reexport safe */ d3_hierarchy__WEBPACK_IMPORTED_MODULE_15__.packSiblings),
83861/* harmony export */ "pairs": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.pairs),
83862/* harmony export */ "partition": () => (/* reexport safe */ d3_hierarchy__WEBPACK_IMPORTED_MODULE_15__.partition),
83863/* harmony export */ "path": () => (/* reexport safe */ d3_path__WEBPACK_IMPORTED_MODULE_17__.path),
83864/* harmony export */ "permute": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.permute),
83865/* harmony export */ "pie": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.pie),
83866/* harmony export */ "piecewise": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.piecewise),
83867/* harmony export */ "pointRadial": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.pointRadial),
83868/* harmony export */ "pointer": () => (/* reexport safe */ d3_selection__WEBPACK_IMPORTED_MODULE_23__.pointer),
83869/* harmony export */ "pointers": () => (/* reexport safe */ d3_selection__WEBPACK_IMPORTED_MODULE_23__.pointers),
83870/* harmony export */ "polygonArea": () => (/* reexport safe */ d3_polygon__WEBPACK_IMPORTED_MODULE_18__.polygonArea),
83871/* harmony export */ "polygonCentroid": () => (/* reexport safe */ d3_polygon__WEBPACK_IMPORTED_MODULE_18__.polygonCentroid),
83872/* harmony export */ "polygonContains": () => (/* reexport safe */ d3_polygon__WEBPACK_IMPORTED_MODULE_18__.polygonContains),
83873/* harmony export */ "polygonHull": () => (/* reexport safe */ d3_polygon__WEBPACK_IMPORTED_MODULE_18__.polygonHull),
83874/* harmony export */ "polygonLength": () => (/* reexport safe */ d3_polygon__WEBPACK_IMPORTED_MODULE_18__.polygonLength),
83875/* harmony export */ "precisionFixed": () => (/* reexport safe */ d3_format__WEBPACK_IMPORTED_MODULE_13__.precisionFixed),
83876/* harmony export */ "precisionPrefix": () => (/* reexport safe */ d3_format__WEBPACK_IMPORTED_MODULE_13__.precisionPrefix),
83877/* harmony export */ "precisionRound": () => (/* reexport safe */ d3_format__WEBPACK_IMPORTED_MODULE_13__.precisionRound),
83878/* harmony export */ "quadtree": () => (/* reexport safe */ d3_quadtree__WEBPACK_IMPORTED_MODULE_19__.quadtree),
83879/* harmony export */ "quantile": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.quantile),
83880/* harmony export */ "quantileSorted": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.quantileSorted),
83881/* harmony export */ "quantize": () => (/* reexport safe */ d3_interpolate__WEBPACK_IMPORTED_MODULE_16__.quantize),
83882/* harmony export */ "quickselect": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.quickselect),
83883/* harmony export */ "radialArea": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.radialArea),
83884/* harmony export */ "radialLine": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.radialLine),
83885/* harmony export */ "randomBates": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomBates),
83886/* harmony export */ "randomBernoulli": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomBernoulli),
83887/* harmony export */ "randomBeta": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomBeta),
83888/* harmony export */ "randomBinomial": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomBinomial),
83889/* harmony export */ "randomCauchy": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomCauchy),
83890/* harmony export */ "randomExponential": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomExponential),
83891/* harmony export */ "randomGamma": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomGamma),
83892/* harmony export */ "randomGeometric": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomGeometric),
83893/* harmony export */ "randomInt": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomInt),
83894/* harmony export */ "randomIrwinHall": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomIrwinHall),
83895/* harmony export */ "randomLcg": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomLcg),
83896/* harmony export */ "randomLogNormal": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomLogNormal),
83897/* harmony export */ "randomLogistic": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomLogistic),
83898/* harmony export */ "randomNormal": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomNormal),
83899/* harmony export */ "randomPareto": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomPareto),
83900/* harmony export */ "randomPoisson": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomPoisson),
83901/* harmony export */ "randomUniform": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomUniform),
83902/* harmony export */ "randomWeibull": () => (/* reexport safe */ d3_random__WEBPACK_IMPORTED_MODULE_20__.randomWeibull),
83903/* harmony export */ "range": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.range),
83904/* harmony export */ "rank": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.rank),
83905/* harmony export */ "reduce": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.reduce),
83906/* harmony export */ "reverse": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.reverse),
83907/* harmony export */ "rgb": () => (/* reexport safe */ d3_color__WEBPACK_IMPORTED_MODULE_4__.rgb),
83908/* harmony export */ "ribbon": () => (/* reexport safe */ d3_chord__WEBPACK_IMPORTED_MODULE_3__.ribbon),
83909/* harmony export */ "ribbonArrow": () => (/* reexport safe */ d3_chord__WEBPACK_IMPORTED_MODULE_3__.ribbonArrow),
83910/* harmony export */ "rollup": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.rollup),
83911/* harmony export */ "rollups": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.rollups),
83912/* harmony export */ "scaleBand": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleBand),
83913/* harmony export */ "scaleDiverging": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleDiverging),
83914/* harmony export */ "scaleDivergingLog": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleDivergingLog),
83915/* harmony export */ "scaleDivergingPow": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleDivergingPow),
83916/* harmony export */ "scaleDivergingSqrt": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleDivergingSqrt),
83917/* harmony export */ "scaleDivergingSymlog": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleDivergingSymlog),
83918/* harmony export */ "scaleIdentity": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleIdentity),
83919/* harmony export */ "scaleImplicit": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleImplicit),
83920/* harmony export */ "scaleLinear": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleLinear),
83921/* harmony export */ "scaleLog": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleLog),
83922/* harmony export */ "scaleOrdinal": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleOrdinal),
83923/* harmony export */ "scalePoint": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scalePoint),
83924/* harmony export */ "scalePow": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scalePow),
83925/* harmony export */ "scaleQuantile": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleQuantile),
83926/* harmony export */ "scaleQuantize": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleQuantize),
83927/* harmony export */ "scaleRadial": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleRadial),
83928/* harmony export */ "scaleSequential": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleSequential),
83929/* harmony export */ "scaleSequentialLog": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleSequentialLog),
83930/* harmony export */ "scaleSequentialPow": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleSequentialPow),
83931/* harmony export */ "scaleSequentialQuantile": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleSequentialQuantile),
83932/* harmony export */ "scaleSequentialSqrt": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleSequentialSqrt),
83933/* harmony export */ "scaleSequentialSymlog": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleSequentialSymlog),
83934/* harmony export */ "scaleSqrt": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleSqrt),
83935/* harmony export */ "scaleSymlog": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleSymlog),
83936/* harmony export */ "scaleThreshold": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleThreshold),
83937/* harmony export */ "scaleTime": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleTime),
83938/* harmony export */ "scaleUtc": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.scaleUtc),
83939/* harmony export */ "scan": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.scan),
83940/* harmony export */ "schemeAccent": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeAccent),
83941/* harmony export */ "schemeBlues": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeBlues),
83942/* harmony export */ "schemeBrBG": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeBrBG),
83943/* harmony export */ "schemeBuGn": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeBuGn),
83944/* harmony export */ "schemeBuPu": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeBuPu),
83945/* harmony export */ "schemeCategory10": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeCategory10),
83946/* harmony export */ "schemeDark2": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeDark2),
83947/* harmony export */ "schemeGnBu": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeGnBu),
83948/* harmony export */ "schemeGreens": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeGreens),
83949/* harmony export */ "schemeGreys": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeGreys),
83950/* harmony export */ "schemeOrRd": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeOrRd),
83951/* harmony export */ "schemeOranges": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeOranges),
83952/* harmony export */ "schemePRGn": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemePRGn),
83953/* harmony export */ "schemePaired": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemePaired),
83954/* harmony export */ "schemePastel1": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemePastel1),
83955/* harmony export */ "schemePastel2": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemePastel2),
83956/* harmony export */ "schemePiYG": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemePiYG),
83957/* harmony export */ "schemePuBu": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemePuBu),
83958/* harmony export */ "schemePuBuGn": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemePuBuGn),
83959/* harmony export */ "schemePuOr": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemePuOr),
83960/* harmony export */ "schemePuRd": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemePuRd),
83961/* harmony export */ "schemePurples": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemePurples),
83962/* harmony export */ "schemeRdBu": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeRdBu),
83963/* harmony export */ "schemeRdGy": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeRdGy),
83964/* harmony export */ "schemeRdPu": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeRdPu),
83965/* harmony export */ "schemeRdYlBu": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeRdYlBu),
83966/* harmony export */ "schemeRdYlGn": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeRdYlGn),
83967/* harmony export */ "schemeReds": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeReds),
83968/* harmony export */ "schemeSet1": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeSet1),
83969/* harmony export */ "schemeSet2": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeSet2),
83970/* harmony export */ "schemeSet3": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeSet3),
83971/* harmony export */ "schemeSpectral": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeSpectral),
83972/* harmony export */ "schemeTableau10": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeTableau10),
83973/* harmony export */ "schemeYlGn": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeYlGn),
83974/* harmony export */ "schemeYlGnBu": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeYlGnBu),
83975/* harmony export */ "schemeYlOrBr": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeYlOrBr),
83976/* harmony export */ "schemeYlOrRd": () => (/* reexport safe */ d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__.schemeYlOrRd),
83977/* harmony export */ "select": () => (/* reexport safe */ d3_selection__WEBPACK_IMPORTED_MODULE_23__.select),
83978/* harmony export */ "selectAll": () => (/* reexport safe */ d3_selection__WEBPACK_IMPORTED_MODULE_23__.selectAll),
83979/* harmony export */ "selection": () => (/* reexport safe */ d3_selection__WEBPACK_IMPORTED_MODULE_23__.selection),
83980/* harmony export */ "selector": () => (/* reexport safe */ d3_selection__WEBPACK_IMPORTED_MODULE_23__.selector),
83981/* harmony export */ "selectorAll": () => (/* reexport safe */ d3_selection__WEBPACK_IMPORTED_MODULE_23__.selectorAll),
83982/* harmony export */ "shuffle": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.shuffle),
83983/* harmony export */ "shuffler": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.shuffler),
83984/* harmony export */ "some": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.some),
83985/* harmony export */ "sort": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.sort),
83986/* harmony export */ "stack": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.stack),
83987/* harmony export */ "stackOffsetDiverging": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.stackOffsetDiverging),
83988/* harmony export */ "stackOffsetExpand": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.stackOffsetExpand),
83989/* harmony export */ "stackOffsetNone": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.stackOffsetNone),
83990/* harmony export */ "stackOffsetSilhouette": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.stackOffsetSilhouette),
83991/* harmony export */ "stackOffsetWiggle": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.stackOffsetWiggle),
83992/* harmony export */ "stackOrderAppearance": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.stackOrderAppearance),
83993/* harmony export */ "stackOrderAscending": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.stackOrderAscending),
83994/* harmony export */ "stackOrderDescending": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.stackOrderDescending),
83995/* harmony export */ "stackOrderInsideOut": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.stackOrderInsideOut),
83996/* harmony export */ "stackOrderNone": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.stackOrderNone),
83997/* harmony export */ "stackOrderReverse": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.stackOrderReverse),
83998/* harmony export */ "stratify": () => (/* reexport safe */ d3_hierarchy__WEBPACK_IMPORTED_MODULE_15__.stratify),
83999/* harmony export */ "style": () => (/* reexport safe */ d3_selection__WEBPACK_IMPORTED_MODULE_23__.style),
84000/* harmony export */ "subset": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.subset),
84001/* harmony export */ "sum": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.sum),
84002/* harmony export */ "superset": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.superset),
84003/* harmony export */ "svg": () => (/* reexport safe */ d3_fetch__WEBPACK_IMPORTED_MODULE_11__.svg),
84004/* harmony export */ "symbol": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.symbol),
84005/* harmony export */ "symbolCircle": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.symbolCircle),
84006/* harmony export */ "symbolCross": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.symbolCross),
84007/* harmony export */ "symbolDiamond": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.symbolDiamond),
84008/* harmony export */ "symbolSquare": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.symbolSquare),
84009/* harmony export */ "symbolStar": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.symbolStar),
84010/* harmony export */ "symbolTriangle": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.symbolTriangle),
84011/* harmony export */ "symbolWye": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.symbolWye),
84012/* harmony export */ "symbols": () => (/* reexport safe */ d3_shape__WEBPACK_IMPORTED_MODULE_24__.symbols),
84013/* harmony export */ "text": () => (/* reexport safe */ d3_fetch__WEBPACK_IMPORTED_MODULE_11__.text),
84014/* harmony export */ "thresholdFreedmanDiaconis": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.thresholdFreedmanDiaconis),
84015/* harmony export */ "thresholdScott": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.thresholdScott),
84016/* harmony export */ "thresholdSturges": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.thresholdSturges),
84017/* harmony export */ "tickFormat": () => (/* reexport safe */ d3_scale__WEBPACK_IMPORTED_MODULE_21__.tickFormat),
84018/* harmony export */ "tickIncrement": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.tickIncrement),
84019/* harmony export */ "tickStep": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.tickStep),
84020/* harmony export */ "ticks": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.ticks),
84021/* harmony export */ "timeDay": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeDay),
84022/* harmony export */ "timeDays": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeDays),
84023/* harmony export */ "timeFormat": () => (/* reexport safe */ d3_time_format__WEBPACK_IMPORTED_MODULE_26__.timeFormat),
84024/* harmony export */ "timeFormatDefaultLocale": () => (/* reexport safe */ d3_time_format__WEBPACK_IMPORTED_MODULE_26__.timeFormatDefaultLocale),
84025/* harmony export */ "timeFormatLocale": () => (/* reexport safe */ d3_time_format__WEBPACK_IMPORTED_MODULE_26__.timeFormatLocale),
84026/* harmony export */ "timeFriday": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeFriday),
84027/* harmony export */ "timeFridays": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeFridays),
84028/* harmony export */ "timeHour": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeHour),
84029/* harmony export */ "timeHours": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeHours),
84030/* harmony export */ "timeInterval": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeInterval),
84031/* harmony export */ "timeMillisecond": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeMillisecond),
84032/* harmony export */ "timeMilliseconds": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeMilliseconds),
84033/* harmony export */ "timeMinute": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeMinute),
84034/* harmony export */ "timeMinutes": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeMinutes),
84035/* harmony export */ "timeMonday": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeMonday),
84036/* harmony export */ "timeMondays": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeMondays),
84037/* harmony export */ "timeMonth": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeMonth),
84038/* harmony export */ "timeMonths": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeMonths),
84039/* harmony export */ "timeParse": () => (/* reexport safe */ d3_time_format__WEBPACK_IMPORTED_MODULE_26__.timeParse),
84040/* harmony export */ "timeSaturday": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeSaturday),
84041/* harmony export */ "timeSaturdays": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeSaturdays),
84042/* harmony export */ "timeSecond": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeSecond),
84043/* harmony export */ "timeSeconds": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeSeconds),
84044/* harmony export */ "timeSunday": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeSunday),
84045/* harmony export */ "timeSundays": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeSundays),
84046/* harmony export */ "timeThursday": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeThursday),
84047/* harmony export */ "timeThursdays": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeThursdays),
84048/* harmony export */ "timeTickInterval": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeTickInterval),
84049/* harmony export */ "timeTicks": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeTicks),
84050/* harmony export */ "timeTuesday": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeTuesday),
84051/* harmony export */ "timeTuesdays": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeTuesdays),
84052/* harmony export */ "timeWednesday": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeWednesday),
84053/* harmony export */ "timeWednesdays": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeWednesdays),
84054/* harmony export */ "timeWeek": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeWeek),
84055/* harmony export */ "timeWeeks": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeWeeks),
84056/* harmony export */ "timeYear": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeYear),
84057/* harmony export */ "timeYears": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.timeYears),
84058/* harmony export */ "timeout": () => (/* reexport safe */ d3_timer__WEBPACK_IMPORTED_MODULE_27__.timeout),
84059/* harmony export */ "timer": () => (/* reexport safe */ d3_timer__WEBPACK_IMPORTED_MODULE_27__.timer),
84060/* harmony export */ "timerFlush": () => (/* reexport safe */ d3_timer__WEBPACK_IMPORTED_MODULE_27__.timerFlush),
84061/* harmony export */ "transition": () => (/* reexport safe */ d3_transition__WEBPACK_IMPORTED_MODULE_28__.transition),
84062/* harmony export */ "transpose": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.transpose),
84063/* harmony export */ "tree": () => (/* reexport safe */ d3_hierarchy__WEBPACK_IMPORTED_MODULE_15__.tree),
84064/* harmony export */ "treemap": () => (/* reexport safe */ d3_hierarchy__WEBPACK_IMPORTED_MODULE_15__.treemap),
84065/* harmony export */ "treemapBinary": () => (/* reexport safe */ d3_hierarchy__WEBPACK_IMPORTED_MODULE_15__.treemapBinary),
84066/* harmony export */ "treemapDice": () => (/* reexport safe */ d3_hierarchy__WEBPACK_IMPORTED_MODULE_15__.treemapDice),
84067/* harmony export */ "treemapResquarify": () => (/* reexport safe */ d3_hierarchy__WEBPACK_IMPORTED_MODULE_15__.treemapResquarify),
84068/* harmony export */ "treemapSlice": () => (/* reexport safe */ d3_hierarchy__WEBPACK_IMPORTED_MODULE_15__.treemapSlice),
84069/* harmony export */ "treemapSliceDice": () => (/* reexport safe */ d3_hierarchy__WEBPACK_IMPORTED_MODULE_15__.treemapSliceDice),
84070/* harmony export */ "treemapSquarify": () => (/* reexport safe */ d3_hierarchy__WEBPACK_IMPORTED_MODULE_15__.treemapSquarify),
84071/* harmony export */ "tsv": () => (/* reexport safe */ d3_fetch__WEBPACK_IMPORTED_MODULE_11__.tsv),
84072/* harmony export */ "tsvFormat": () => (/* reexport safe */ d3_dsv__WEBPACK_IMPORTED_MODULE_9__.tsvFormat),
84073/* harmony export */ "tsvFormatBody": () => (/* reexport safe */ d3_dsv__WEBPACK_IMPORTED_MODULE_9__.tsvFormatBody),
84074/* harmony export */ "tsvFormatRow": () => (/* reexport safe */ d3_dsv__WEBPACK_IMPORTED_MODULE_9__.tsvFormatRow),
84075/* harmony export */ "tsvFormatRows": () => (/* reexport safe */ d3_dsv__WEBPACK_IMPORTED_MODULE_9__.tsvFormatRows),
84076/* harmony export */ "tsvFormatValue": () => (/* reexport safe */ d3_dsv__WEBPACK_IMPORTED_MODULE_9__.tsvFormatValue),
84077/* harmony export */ "tsvParse": () => (/* reexport safe */ d3_dsv__WEBPACK_IMPORTED_MODULE_9__.tsvParse),
84078/* harmony export */ "tsvParseRows": () => (/* reexport safe */ d3_dsv__WEBPACK_IMPORTED_MODULE_9__.tsvParseRows),
84079/* harmony export */ "union": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.union),
84080/* harmony export */ "utcDay": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcDay),
84081/* harmony export */ "utcDays": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcDays),
84082/* harmony export */ "utcFormat": () => (/* reexport safe */ d3_time_format__WEBPACK_IMPORTED_MODULE_26__.utcFormat),
84083/* harmony export */ "utcFriday": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcFriday),
84084/* harmony export */ "utcFridays": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcFridays),
84085/* harmony export */ "utcHour": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcHour),
84086/* harmony export */ "utcHours": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcHours),
84087/* harmony export */ "utcMillisecond": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcMillisecond),
84088/* harmony export */ "utcMilliseconds": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcMilliseconds),
84089/* harmony export */ "utcMinute": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcMinute),
84090/* harmony export */ "utcMinutes": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcMinutes),
84091/* harmony export */ "utcMonday": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcMonday),
84092/* harmony export */ "utcMondays": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcMondays),
84093/* harmony export */ "utcMonth": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcMonth),
84094/* harmony export */ "utcMonths": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcMonths),
84095/* harmony export */ "utcParse": () => (/* reexport safe */ d3_time_format__WEBPACK_IMPORTED_MODULE_26__.utcParse),
84096/* harmony export */ "utcSaturday": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcSaturday),
84097/* harmony export */ "utcSaturdays": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcSaturdays),
84098/* harmony export */ "utcSecond": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcSecond),
84099/* harmony export */ "utcSeconds": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcSeconds),
84100/* harmony export */ "utcSunday": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcSunday),
84101/* harmony export */ "utcSundays": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcSundays),
84102/* harmony export */ "utcThursday": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcThursday),
84103/* harmony export */ "utcThursdays": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcThursdays),
84104/* harmony export */ "utcTickInterval": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcTickInterval),
84105/* harmony export */ "utcTicks": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcTicks),
84106/* harmony export */ "utcTuesday": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcTuesday),
84107/* harmony export */ "utcTuesdays": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcTuesdays),
84108/* harmony export */ "utcWednesday": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcWednesday),
84109/* harmony export */ "utcWednesdays": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcWednesdays),
84110/* harmony export */ "utcWeek": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcWeek),
84111/* harmony export */ "utcWeeks": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcWeeks),
84112/* harmony export */ "utcYear": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcYear),
84113/* harmony export */ "utcYears": () => (/* reexport safe */ d3_time__WEBPACK_IMPORTED_MODULE_25__.utcYears),
84114/* harmony export */ "variance": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.variance),
84115/* harmony export */ "window": () => (/* reexport safe */ d3_selection__WEBPACK_IMPORTED_MODULE_23__.window),
84116/* harmony export */ "xml": () => (/* reexport safe */ d3_fetch__WEBPACK_IMPORTED_MODULE_11__.xml),
84117/* harmony export */ "zip": () => (/* reexport safe */ d3_array__WEBPACK_IMPORTED_MODULE_0__.zip),
84118/* harmony export */ "zoom": () => (/* reexport safe */ d3_zoom__WEBPACK_IMPORTED_MODULE_29__.zoom),
84119/* harmony export */ "zoomIdentity": () => (/* reexport safe */ d3_zoom__WEBPACK_IMPORTED_MODULE_29__.zoomIdentity),
84120/* harmony export */ "zoomTransform": () => (/* reexport safe */ d3_zoom__WEBPACK_IMPORTED_MODULE_29__.zoomTransform)
84121/* harmony export */ });
84122/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ "./node_modules/d3-array/src/index.js");
84123/* harmony import */ var d3_axis__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-axis */ "./node_modules/d3-axis/src/index.js");
84124/* harmony import */ var d3_brush__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-brush */ "./node_modules/d3-brush/src/index.js");
84125/* harmony import */ var d3_chord__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-chord */ "./node_modules/d3-chord/src/index.js");
84126/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-color */ "./node_modules/d3-color/src/index.js");
84127/* harmony import */ var d3_contour__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-contour */ "./node_modules/d3-contour/src/index.js");
84128/* harmony import */ var d3_delaunay__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! d3-delaunay */ "./node_modules/d3-delaunay/src/index.js");
84129/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! d3-dispatch */ "./node_modules/d3-dispatch/src/index.js");
84130/* harmony import */ var d3_drag__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! d3-drag */ "./node_modules/d3-drag/src/index.js");
84131/* harmony import */ var d3_dsv__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! d3-dsv */ "./node_modules/d3-dsv/src/index.js");
84132/* harmony import */ var d3_ease__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! d3-ease */ "./node_modules/d3-ease/src/index.js");
84133/* harmony import */ var d3_fetch__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! d3-fetch */ "./node_modules/d3-fetch/src/index.js");
84134/* harmony import */ var d3_force__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! d3-force */ "./node_modules/d3-force/src/index.js");
84135/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! d3-format */ "./node_modules/d3-format/src/index.js");
84136/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! d3-geo */ "./node_modules/d3-geo/src/index.js");
84137/* harmony import */ var d3_hierarchy__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! d3-hierarchy */ "./node_modules/d3-hierarchy/src/index.js");
84138/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! d3-interpolate */ "./node_modules/d3-interpolate/src/index.js");
84139/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! d3-path */ "./node_modules/d3-path/src/index.js");
84140/* harmony import */ var d3_polygon__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! d3-polygon */ "./node_modules/d3-polygon/src/index.js");
84141/* harmony import */ var d3_quadtree__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! d3-quadtree */ "./node_modules/d3-quadtree/src/index.js");
84142/* harmony import */ var d3_random__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! d3-random */ "./node_modules/d3-random/src/index.js");
84143/* harmony import */ var d3_scale__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! d3-scale */ "./node_modules/d3-scale/src/index.js");
84144/* harmony import */ var d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! d3-scale-chromatic */ "./node_modules/d3-scale-chromatic/src/index.js");
84145/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! d3-selection */ "./node_modules/d3-selection/src/index.js");
84146/* harmony import */ var d3_shape__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! d3-shape */ "./node_modules/d3-shape/src/index.js");
84147/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! d3-time */ "./node_modules/d3-time/src/index.js");
84148/* harmony import */ var d3_time_format__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! d3-time-format */ "./node_modules/d3-time-format/src/index.js");
84149/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! d3-timer */ "./node_modules/d3-timer/src/index.js");
84150/* harmony import */ var d3_transition__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! d3-transition */ "./node_modules/d3-transition/src/index.js");
84151/* harmony import */ var d3_zoom__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! d3-zoom */ "./node_modules/d3-zoom/src/index.js");
84152
84153
84154
84155
84156
84157
84158
84159
84160
84161
84162
84163
84164
84165
84166
84167
84168
84169
84170
84171
84172
84173
84174
84175
84176
84177
84178
84179
84180
84181
84182
84183
84184/***/ }),
84185
84186/***/ "./node_modules/delaunator/index.js":
84187/*!******************************************!*\
84188 !*** ./node_modules/delaunator/index.js ***!
84189 \******************************************/
84190/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
84191
84192"use strict";
84193__webpack_require__.r(__webpack_exports__);
84194/* harmony export */ __webpack_require__.d(__webpack_exports__, {
84195/* harmony export */ "default": () => (/* binding */ Delaunator)
84196/* harmony export */ });
84197/* harmony import */ var robust_predicates__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! robust-predicates */ "./node_modules/robust-predicates/index.js");
84198
84199const EPSILON = Math.pow(2, -52);
84200const EDGE_STACK = new Uint32Array(512);
84201
84202
84203
84204class Delaunator {
84205
84206 static from(points, getX = defaultGetX, getY = defaultGetY) {
84207 const n = points.length;
84208 const coords = new Float64Array(n * 2);
84209
84210 for (let i = 0; i < n; i++) {
84211 const p = points[i];
84212 coords[2 * i] = getX(p);
84213 coords[2 * i + 1] = getY(p);
84214 }
84215
84216 return new Delaunator(coords);
84217 }
84218
84219 constructor(coords) {
84220 const n = coords.length >> 1;
84221 if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.');
84222
84223 this.coords = coords;
84224
84225 // arrays that will store the triangulation graph
84226 const maxTriangles = Math.max(2 * n - 5, 0);
84227 this._triangles = new Uint32Array(maxTriangles * 3);
84228 this._halfedges = new Int32Array(maxTriangles * 3);
84229
84230 // temporary arrays for tracking the edges of the advancing convex hull
84231 this._hashSize = Math.ceil(Math.sqrt(n));
84232 this._hullPrev = new Uint32Array(n); // edge to prev edge
84233 this._hullNext = new Uint32Array(n); // edge to next edge
84234 this._hullTri = new Uint32Array(n); // edge to adjacent triangle
84235 this._hullHash = new Int32Array(this._hashSize).fill(-1); // angular edge hash
84236
84237 // temporary arrays for sorting points
84238 this._ids = new Uint32Array(n);
84239 this._dists = new Float64Array(n);
84240
84241 this.update();
84242 }
84243
84244 update() {
84245 const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} = this;
84246 const n = coords.length >> 1;
84247
84248 // populate an array of point indices; calculate input data bbox
84249 let minX = Infinity;
84250 let minY = Infinity;
84251 let maxX = -Infinity;
84252 let maxY = -Infinity;
84253
84254 for (let i = 0; i < n; i++) {
84255 const x = coords[2 * i];
84256 const y = coords[2 * i + 1];
84257 if (x < minX) minX = x;
84258 if (y < minY) minY = y;
84259 if (x > maxX) maxX = x;
84260 if (y > maxY) maxY = y;
84261 this._ids[i] = i;
84262 }
84263 const cx = (minX + maxX) / 2;
84264 const cy = (minY + maxY) / 2;
84265
84266 let minDist = Infinity;
84267 let i0, i1, i2;
84268
84269 // pick a seed point close to the center
84270 for (let i = 0; i < n; i++) {
84271 const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]);
84272 if (d < minDist) {
84273 i0 = i;
84274 minDist = d;
84275 }
84276 }
84277 const i0x = coords[2 * i0];
84278 const i0y = coords[2 * i0 + 1];
84279
84280 minDist = Infinity;
84281
84282 // find the point closest to the seed
84283 for (let i = 0; i < n; i++) {
84284 if (i === i0) continue;
84285 const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]);
84286 if (d < minDist && d > 0) {
84287 i1 = i;
84288 minDist = d;
84289 }
84290 }
84291 let i1x = coords[2 * i1];
84292 let i1y = coords[2 * i1 + 1];
84293
84294 let minRadius = Infinity;
84295
84296 // find the third point which forms the smallest circumcircle with the first two
84297 for (let i = 0; i < n; i++) {
84298 if (i === i0 || i === i1) continue;
84299 const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]);
84300 if (r < minRadius) {
84301 i2 = i;
84302 minRadius = r;
84303 }
84304 }
84305 let i2x = coords[2 * i2];
84306 let i2y = coords[2 * i2 + 1];
84307
84308 if (minRadius === Infinity) {
84309 // order collinear points by dx (or dy if all x are identical)
84310 // and return the list as a hull
84311 for (let i = 0; i < n; i++) {
84312 this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]);
84313 }
84314 quicksort(this._ids, this._dists, 0, n - 1);
84315 const hull = new Uint32Array(n);
84316 let j = 0;
84317 for (let i = 0, d0 = -Infinity; i < n; i++) {
84318 const id = this._ids[i];
84319 if (this._dists[id] > d0) {
84320 hull[j++] = id;
84321 d0 = this._dists[id];
84322 }
84323 }
84324 this.hull = hull.subarray(0, j);
84325 this.triangles = new Uint32Array(0);
84326 this.halfedges = new Uint32Array(0);
84327 return;
84328 }
84329
84330 // swap the order of the seed points for counter-clockwise orientation
84331 if ((0,robust_predicates__WEBPACK_IMPORTED_MODULE_0__.orient2d)(i0x, i0y, i1x, i1y, i2x, i2y) < 0) {
84332 const i = i1;
84333 const x = i1x;
84334 const y = i1y;
84335 i1 = i2;
84336 i1x = i2x;
84337 i1y = i2y;
84338 i2 = i;
84339 i2x = x;
84340 i2y = y;
84341 }
84342
84343 const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y);
84344 this._cx = center.x;
84345 this._cy = center.y;
84346
84347 for (let i = 0; i < n; i++) {
84348 this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y);
84349 }
84350
84351 // sort the points by distance from the seed triangle circumcenter
84352 quicksort(this._ids, this._dists, 0, n - 1);
84353
84354 // set up the seed triangle as the starting hull
84355 this._hullStart = i0;
84356 let hullSize = 3;
84357
84358 hullNext[i0] = hullPrev[i2] = i1;
84359 hullNext[i1] = hullPrev[i0] = i2;
84360 hullNext[i2] = hullPrev[i1] = i0;
84361
84362 hullTri[i0] = 0;
84363 hullTri[i1] = 1;
84364 hullTri[i2] = 2;
84365
84366 hullHash.fill(-1);
84367 hullHash[this._hashKey(i0x, i0y)] = i0;
84368 hullHash[this._hashKey(i1x, i1y)] = i1;
84369 hullHash[this._hashKey(i2x, i2y)] = i2;
84370
84371 this.trianglesLen = 0;
84372 this._addTriangle(i0, i1, i2, -1, -1, -1);
84373
84374 for (let k = 0, xp, yp; k < this._ids.length; k++) {
84375 const i = this._ids[k];
84376 const x = coords[2 * i];
84377 const y = coords[2 * i + 1];
84378
84379 // skip near-duplicate points
84380 if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue;
84381 xp = x;
84382 yp = y;
84383
84384 // skip seed triangle points
84385 if (i === i0 || i === i1 || i === i2) continue;
84386
84387 // find a visible edge on the convex hull using edge hash
84388 let start = 0;
84389 for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) {
84390 start = hullHash[(key + j) % this._hashSize];
84391 if (start !== -1 && start !== hullNext[start]) break;
84392 }
84393
84394 start = hullPrev[start];
84395 let e = start, q;
84396 while (q = hullNext[e], (0,robust_predicates__WEBPACK_IMPORTED_MODULE_0__.orient2d)(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1]) >= 0) {
84397 e = q;
84398 if (e === start) {
84399 e = -1;
84400 break;
84401 }
84402 }
84403 if (e === -1) continue; // likely a near-duplicate point; skip it
84404
84405 // add the first triangle from the point
84406 let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]);
84407
84408 // recursively flip triangles from the point until they satisfy the Delaunay condition
84409 hullTri[i] = this._legalize(t + 2);
84410 hullTri[e] = t; // keep track of boundary triangles on the hull
84411 hullSize++;
84412
84413 // walk forward through the hull, adding more triangles and flipping recursively
84414 let n = hullNext[e];
84415 while (q = hullNext[n], (0,robust_predicates__WEBPACK_IMPORTED_MODULE_0__.orient2d)(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1]) < 0) {
84416 t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]);
84417 hullTri[i] = this._legalize(t + 2);
84418 hullNext[n] = n; // mark as removed
84419 hullSize--;
84420 n = q;
84421 }
84422
84423 // walk backward from the other side, adding more triangles and flipping
84424 if (e === start) {
84425 while (q = hullPrev[e], (0,robust_predicates__WEBPACK_IMPORTED_MODULE_0__.orient2d)(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1]) < 0) {
84426 t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]);
84427 this._legalize(t + 2);
84428 hullTri[q] = t;
84429 hullNext[e] = e; // mark as removed
84430 hullSize--;
84431 e = q;
84432 }
84433 }
84434
84435 // update the hull indices
84436 this._hullStart = hullPrev[i] = e;
84437 hullNext[e] = hullPrev[n] = i;
84438 hullNext[i] = n;
84439
84440 // save the two new edges in the hash table
84441 hullHash[this._hashKey(x, y)] = i;
84442 hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e;
84443 }
84444
84445 this.hull = new Uint32Array(hullSize);
84446 for (let i = 0, e = this._hullStart; i < hullSize; i++) {
84447 this.hull[i] = e;
84448 e = hullNext[e];
84449 }
84450
84451 // trim typed triangle mesh arrays
84452 this.triangles = this._triangles.subarray(0, this.trianglesLen);
84453 this.halfedges = this._halfedges.subarray(0, this.trianglesLen);
84454 }
84455
84456 _hashKey(x, y) {
84457 return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize;
84458 }
84459
84460 _legalize(a) {
84461 const {_triangles: triangles, _halfedges: halfedges, coords} = this;
84462
84463 let i = 0;
84464 let ar = 0;
84465
84466 // recursion eliminated with a fixed-size stack
84467 while (true) {
84468 const b = halfedges[a];
84469
84470 /* if the pair of triangles doesn't satisfy the Delaunay condition
84471 * (p1 is inside the circumcircle of [p0, pl, pr]), flip them,
84472 * then do the same check/flip recursively for the new pair of triangles
84473 *
84474 * pl pl
84475 * /||\ / \
84476 * al/ || \bl al/ \a
84477 * / || \ / \
84478 * / a||b \ flip /___ar___\
84479 * p0\ || /p1 => p0\---bl---/p1
84480 * \ || / \ /
84481 * ar\ || /br b\ /br
84482 * \||/ \ /
84483 * pr pr
84484 */
84485 const a0 = a - a % 3;
84486 ar = a0 + (a + 2) % 3;
84487
84488 if (b === -1) { // convex hull edge
84489 if (i === 0) break;
84490 a = EDGE_STACK[--i];
84491 continue;
84492 }
84493
84494 const b0 = b - b % 3;
84495 const al = a0 + (a + 1) % 3;
84496 const bl = b0 + (b + 2) % 3;
84497
84498 const p0 = triangles[ar];
84499 const pr = triangles[a];
84500 const pl = triangles[al];
84501 const p1 = triangles[bl];
84502
84503 const illegal = inCircle(
84504 coords[2 * p0], coords[2 * p0 + 1],
84505 coords[2 * pr], coords[2 * pr + 1],
84506 coords[2 * pl], coords[2 * pl + 1],
84507 coords[2 * p1], coords[2 * p1 + 1]);
84508
84509 if (illegal) {
84510 triangles[a] = p1;
84511 triangles[b] = p0;
84512
84513 const hbl = halfedges[bl];
84514
84515 // edge swapped on the other side of the hull (rare); fix the halfedge reference
84516 if (hbl === -1) {
84517 let e = this._hullStart;
84518 do {
84519 if (this._hullTri[e] === bl) {
84520 this._hullTri[e] = a;
84521 break;
84522 }
84523 e = this._hullPrev[e];
84524 } while (e !== this._hullStart);
84525 }
84526 this._link(a, hbl);
84527 this._link(b, halfedges[ar]);
84528 this._link(ar, bl);
84529
84530 const br = b0 + (b + 1) % 3;
84531
84532 // don't worry about hitting the cap: it can only happen on extremely degenerate input
84533 if (i < EDGE_STACK.length) {
84534 EDGE_STACK[i++] = br;
84535 }
84536 } else {
84537 if (i === 0) break;
84538 a = EDGE_STACK[--i];
84539 }
84540 }
84541
84542 return ar;
84543 }
84544
84545 _link(a, b) {
84546 this._halfedges[a] = b;
84547 if (b !== -1) this._halfedges[b] = a;
84548 }
84549
84550 // add a new triangle given vertex indices and adjacent half-edge ids
84551 _addTriangle(i0, i1, i2, a, b, c) {
84552 const t = this.trianglesLen;
84553
84554 this._triangles[t] = i0;
84555 this._triangles[t + 1] = i1;
84556 this._triangles[t + 2] = i2;
84557
84558 this._link(t, a);
84559 this._link(t + 1, b);
84560 this._link(t + 2, c);
84561
84562 this.trianglesLen += 3;
84563
84564 return t;
84565 }
84566}
84567
84568// monotonically increases with real angle, but doesn't need expensive trigonometry
84569function pseudoAngle(dx, dy) {
84570 const p = dx / (Math.abs(dx) + Math.abs(dy));
84571 return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1]
84572}
84573
84574function dist(ax, ay, bx, by) {
84575 const dx = ax - bx;
84576 const dy = ay - by;
84577 return dx * dx + dy * dy;
84578}
84579
84580function inCircle(ax, ay, bx, by, cx, cy, px, py) {
84581 const dx = ax - px;
84582 const dy = ay - py;
84583 const ex = bx - px;
84584 const ey = by - py;
84585 const fx = cx - px;
84586 const fy = cy - py;
84587
84588 const ap = dx * dx + dy * dy;
84589 const bp = ex * ex + ey * ey;
84590 const cp = fx * fx + fy * fy;
84591
84592 return dx * (ey * cp - bp * fy) -
84593 dy * (ex * cp - bp * fx) +
84594 ap * (ex * fy - ey * fx) < 0;
84595}
84596
84597function circumradius(ax, ay, bx, by, cx, cy) {
84598 const dx = bx - ax;
84599 const dy = by - ay;
84600 const ex = cx - ax;
84601 const ey = cy - ay;
84602
84603 const bl = dx * dx + dy * dy;
84604 const cl = ex * ex + ey * ey;
84605 const d = 0.5 / (dx * ey - dy * ex);
84606
84607 const x = (ey * bl - dy * cl) * d;
84608 const y = (dx * cl - ex * bl) * d;
84609
84610 return x * x + y * y;
84611}
84612
84613function circumcenter(ax, ay, bx, by, cx, cy) {
84614 const dx = bx - ax;
84615 const dy = by - ay;
84616 const ex = cx - ax;
84617 const ey = cy - ay;
84618
84619 const bl = dx * dx + dy * dy;
84620 const cl = ex * ex + ey * ey;
84621 const d = 0.5 / (dx * ey - dy * ex);
84622
84623 const x = ax + (ey * bl - dy * cl) * d;
84624 const y = ay + (dx * cl - ex * bl) * d;
84625
84626 return {x, y};
84627}
84628
84629function quicksort(ids, dists, left, right) {
84630 if (right - left <= 20) {
84631 for (let i = left + 1; i <= right; i++) {
84632 const temp = ids[i];
84633 const tempDist = dists[temp];
84634 let j = i - 1;
84635 while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--];
84636 ids[j + 1] = temp;
84637 }
84638 } else {
84639 const median = (left + right) >> 1;
84640 let i = left + 1;
84641 let j = right;
84642 swap(ids, median, i);
84643 if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right);
84644 if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right);
84645 if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i);
84646
84647 const temp = ids[i];
84648 const tempDist = dists[temp];
84649 while (true) {
84650 do i++; while (dists[ids[i]] < tempDist);
84651 do j--; while (dists[ids[j]] > tempDist);
84652 if (j < i) break;
84653 swap(ids, i, j);
84654 }
84655 ids[left + 1] = ids[j];
84656 ids[j] = temp;
84657
84658 if (right - i + 1 >= j - left) {
84659 quicksort(ids, dists, i, right);
84660 quicksort(ids, dists, left, j - 1);
84661 } else {
84662 quicksort(ids, dists, left, j - 1);
84663 quicksort(ids, dists, i, right);
84664 }
84665 }
84666}
84667
84668function swap(arr, i, j) {
84669 const tmp = arr[i];
84670 arr[i] = arr[j];
84671 arr[j] = tmp;
84672}
84673
84674function defaultGetX(p) {
84675 return p[0];
84676}
84677function defaultGetY(p) {
84678 return p[1];
84679}
84680
84681
84682/***/ }),
84683
84684/***/ "./node_modules/internmap/src/index.js":
84685/*!*********************************************!*\
84686 !*** ./node_modules/internmap/src/index.js ***!
84687 \*********************************************/
84688/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
84689
84690"use strict";
84691__webpack_require__.r(__webpack_exports__);
84692/* harmony export */ __webpack_require__.d(__webpack_exports__, {
84693/* harmony export */ "InternMap": () => (/* binding */ InternMap),
84694/* harmony export */ "InternSet": () => (/* binding */ InternSet)
84695/* harmony export */ });
84696class InternMap extends Map {
84697 constructor(entries, key = keyof) {
84698 super();
84699 Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});
84700 if (entries != null) for (const [key, value] of entries) this.set(key, value);
84701 }
84702 get(key) {
84703 return super.get(intern_get(this, key));
84704 }
84705 has(key) {
84706 return super.has(intern_get(this, key));
84707 }
84708 set(key, value) {
84709 return super.set(intern_set(this, key), value);
84710 }
84711 delete(key) {
84712 return super.delete(intern_delete(this, key));
84713 }
84714}
84715
84716class InternSet extends Set {
84717 constructor(values, key = keyof) {
84718 super();
84719 Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});
84720 if (values != null) for (const value of values) this.add(value);
84721 }
84722 has(value) {
84723 return super.has(intern_get(this, value));
84724 }
84725 add(value) {
84726 return super.add(intern_set(this, value));
84727 }
84728 delete(value) {
84729 return super.delete(intern_delete(this, value));
84730 }
84731}
84732
84733function intern_get({_intern, _key}, value) {
84734 const key = _key(value);
84735 return _intern.has(key) ? _intern.get(key) : value;
84736}
84737
84738function intern_set({_intern, _key}, value) {
84739 const key = _key(value);
84740 if (_intern.has(key)) return _intern.get(key);
84741 _intern.set(key, value);
84742 return value;
84743}
84744
84745function intern_delete({_intern, _key}, value) {
84746 const key = _key(value);
84747 if (_intern.has(key)) {
84748 value = _intern.get(key);
84749 _intern.delete(key);
84750 }
84751 return value;
84752}
84753
84754function keyof(value) {
84755 return value !== null && typeof value === "object" ? value.valueOf() : value;
84756}
84757
84758
84759/***/ }),
84760
84761/***/ "./node_modules/khroma/dist/channels/index.js":
84762/*!****************************************************!*\
84763 !*** ./node_modules/khroma/dist/channels/index.js ***!
84764 \****************************************************/
84765/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
84766
84767"use strict";
84768__webpack_require__.r(__webpack_exports__);
84769/* harmony export */ __webpack_require__.d(__webpack_exports__, {
84770/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
84771/* harmony export */ });
84772/* harmony import */ var _utils_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/index.js */ "./node_modules/khroma/dist/utils/index.js");
84773/* harmony import */ var _type_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./type.js */ "./node_modules/khroma/dist/channels/type.js");
84774/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants.js */ "./node_modules/khroma/dist/constants.js");
84775/* IMPORT */
84776
84777
84778
84779/* MAIN */
84780class Channels {
84781 /* CONSTRUCTOR */
84782 constructor(data, color) {
84783 this.color = color;
84784 this.changed = false;
84785 this.data = data; //TSC
84786 this.type = new _type_js__WEBPACK_IMPORTED_MODULE_0__["default"]();
84787 }
84788 /* API */
84789 set(data, color) {
84790 this.color = color;
84791 this.changed = false;
84792 this.data = data; //TSC
84793 this.type.type = _constants_js__WEBPACK_IMPORTED_MODULE_1__.TYPE.ALL;
84794 return this;
84795 }
84796 /* HELPERS */
84797 _ensureHSL() {
84798 const data = this.data;
84799 const { h, s, l } = data;
84800 if (h === undefined)
84801 data.h = _utils_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].channel.rgb2hsl(data, 'h');
84802 if (s === undefined)
84803 data.s = _utils_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].channel.rgb2hsl(data, 's');
84804 if (l === undefined)
84805 data.l = _utils_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].channel.rgb2hsl(data, 'l');
84806 }
84807 _ensureRGB() {
84808 const data = this.data;
84809 const { r, g, b } = data;
84810 if (r === undefined)
84811 data.r = _utils_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].channel.hsl2rgb(data, 'r');
84812 if (g === undefined)
84813 data.g = _utils_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].channel.hsl2rgb(data, 'g');
84814 if (b === undefined)
84815 data.b = _utils_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].channel.hsl2rgb(data, 'b');
84816 }
84817 /* GETTERS */
84818 get r() {
84819 const data = this.data;
84820 const r = data.r;
84821 if (!this.type.is(_constants_js__WEBPACK_IMPORTED_MODULE_1__.TYPE.HSL) && r !== undefined)
84822 return r;
84823 this._ensureHSL();
84824 return _utils_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].channel.hsl2rgb(data, 'r');
84825 }
84826 get g() {
84827 const data = this.data;
84828 const g = data.g;
84829 if (!this.type.is(_constants_js__WEBPACK_IMPORTED_MODULE_1__.TYPE.HSL) && g !== undefined)
84830 return g;
84831 this._ensureHSL();
84832 return _utils_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].channel.hsl2rgb(data, 'g');
84833 }
84834 get b() {
84835 const data = this.data;
84836 const b = data.b;
84837 if (!this.type.is(_constants_js__WEBPACK_IMPORTED_MODULE_1__.TYPE.HSL) && b !== undefined)
84838 return b;
84839 this._ensureHSL();
84840 return _utils_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].channel.hsl2rgb(data, 'b');
84841 }
84842 get h() {
84843 const data = this.data;
84844 const h = data.h;
84845 if (!this.type.is(_constants_js__WEBPACK_IMPORTED_MODULE_1__.TYPE.RGB) && h !== undefined)
84846 return h;
84847 this._ensureRGB();
84848 return _utils_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].channel.rgb2hsl(data, 'h');
84849 }
84850 get s() {
84851 const data = this.data;
84852 const s = data.s;
84853 if (!this.type.is(_constants_js__WEBPACK_IMPORTED_MODULE_1__.TYPE.RGB) && s !== undefined)
84854 return s;
84855 this._ensureRGB();
84856 return _utils_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].channel.rgb2hsl(data, 's');
84857 }
84858 get l() {
84859 const data = this.data;
84860 const l = data.l;
84861 if (!this.type.is(_constants_js__WEBPACK_IMPORTED_MODULE_1__.TYPE.RGB) && l !== undefined)
84862 return l;
84863 this._ensureRGB();
84864 return _utils_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].channel.rgb2hsl(data, 'l');
84865 }
84866 get a() {
84867 return this.data.a;
84868 }
84869 /* SETTERS */
84870 set r(r) {
84871 this.type.set(_constants_js__WEBPACK_IMPORTED_MODULE_1__.TYPE.RGB);
84872 this.changed = true;
84873 this.data.r = r;
84874 }
84875 set g(g) {
84876 this.type.set(_constants_js__WEBPACK_IMPORTED_MODULE_1__.TYPE.RGB);
84877 this.changed = true;
84878 this.data.g = g;
84879 }
84880 set b(b) {
84881 this.type.set(_constants_js__WEBPACK_IMPORTED_MODULE_1__.TYPE.RGB);
84882 this.changed = true;
84883 this.data.b = b;
84884 }
84885 set h(h) {
84886 this.type.set(_constants_js__WEBPACK_IMPORTED_MODULE_1__.TYPE.HSL);
84887 this.changed = true;
84888 this.data.h = h;
84889 }
84890 set s(s) {
84891 this.type.set(_constants_js__WEBPACK_IMPORTED_MODULE_1__.TYPE.HSL);
84892 this.changed = true;
84893 this.data.s = s;
84894 }
84895 set l(l) {
84896 this.type.set(_constants_js__WEBPACK_IMPORTED_MODULE_1__.TYPE.HSL);
84897 this.changed = true;
84898 this.data.l = l;
84899 }
84900 set a(a) {
84901 this.changed = true;
84902 this.data.a = a;
84903 }
84904}
84905/* EXPORT */
84906/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Channels);
84907
84908
84909/***/ }),
84910
84911/***/ "./node_modules/khroma/dist/channels/reusable.js":
84912/*!*******************************************************!*\
84913 !*** ./node_modules/khroma/dist/channels/reusable.js ***!
84914 \*******************************************************/
84915/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
84916
84917"use strict";
84918__webpack_require__.r(__webpack_exports__);
84919/* harmony export */ __webpack_require__.d(__webpack_exports__, {
84920/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
84921/* harmony export */ });
84922/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! .//index.js */ "./node_modules/khroma/dist/channels/index.js");
84923/* IMPORT */
84924
84925/* MAIN */
84926const channels = new _index_js__WEBPACK_IMPORTED_MODULE_0__["default"]({ r: 0, g: 0, b: 0, a: 0 }, 'transparent');
84927/* EXPORT */
84928/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (channels);
84929
84930
84931/***/ }),
84932
84933/***/ "./node_modules/khroma/dist/channels/type.js":
84934/*!***************************************************!*\
84935 !*** ./node_modules/khroma/dist/channels/type.js ***!
84936 \***************************************************/
84937/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
84938
84939"use strict";
84940__webpack_require__.r(__webpack_exports__);
84941/* harmony export */ __webpack_require__.d(__webpack_exports__, {
84942/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
84943/* harmony export */ });
84944/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.js */ "./node_modules/khroma/dist/constants.js");
84945/* IMPORT */
84946
84947/* MAIN */
84948class Type {
84949 constructor() {
84950 /* VARIABLES */
84951 this.type = _constants_js__WEBPACK_IMPORTED_MODULE_0__.TYPE.ALL;
84952 }
84953 /* API */
84954 get() {
84955 return this.type;
84956 }
84957 set(type) {
84958 if (this.type && this.type !== type)
84959 throw new Error('Cannot change both RGB and HSL channels at the same time');
84960 this.type = type;
84961 }
84962 reset() {
84963 this.type = _constants_js__WEBPACK_IMPORTED_MODULE_0__.TYPE.ALL;
84964 }
84965 is(type) {
84966 return this.type === type;
84967 }
84968}
84969/* EXPORT */
84970/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Type);
84971
84972
84973/***/ }),
84974
84975/***/ "./node_modules/khroma/dist/color/hex.js":
84976/*!***********************************************!*\
84977 !*** ./node_modules/khroma/dist/color/hex.js ***!
84978 \***********************************************/
84979/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
84980
84981"use strict";
84982__webpack_require__.r(__webpack_exports__);
84983/* harmony export */ __webpack_require__.d(__webpack_exports__, {
84984/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
84985/* harmony export */ });
84986/* harmony import */ var _channels_reusable_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../channels/reusable.js */ "./node_modules/khroma/dist/channels/reusable.js");
84987/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants.js */ "./node_modules/khroma/dist/constants.js");
84988/* IMPORT */
84989
84990
84991
84992/* MAIN */
84993const Hex = {
84994 /* VARIABLES */
84995 re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,
84996 /* API */
84997 parse: (color) => {
84998 if (color.charCodeAt(0) !== 35)
84999 return; // '#'
85000 const match = color.match(Hex.re);
85001 if (!match)
85002 return;
85003 const hex = match[1];
85004 const dec = parseInt(hex, 16);
85005 const length = hex.length;
85006 const hasAlpha = length % 4 === 0;
85007 const isFullLength = length > 4;
85008 const multiplier = isFullLength ? 1 : 17;
85009 const bits = isFullLength ? 8 : 4;
85010 const bitsOffset = hasAlpha ? 0 : -1;
85011 const mask = isFullLength ? 255 : 15;
85012 return _channels_reusable_js__WEBPACK_IMPORTED_MODULE_0__["default"].set({
85013 r: ((dec >> (bits * (bitsOffset + 3))) & mask) * multiplier,
85014 g: ((dec >> (bits * (bitsOffset + 2))) & mask) * multiplier,
85015 b: ((dec >> (bits * (bitsOffset + 1))) & mask) * multiplier,
85016 a: hasAlpha ? (dec & mask) * multiplier / 255 : 1
85017 }, color);
85018 },
85019 stringify: (channels) => {
85020 const { r, g, b, a } = channels;
85021 if (a < 1) { // #RRGGBBAA
85022 return `#${_constants_js__WEBPACK_IMPORTED_MODULE_1__.DEC2HEX[Math.round(r)]}${_constants_js__WEBPACK_IMPORTED_MODULE_1__.DEC2HEX[Math.round(g)]}${_constants_js__WEBPACK_IMPORTED_MODULE_1__.DEC2HEX[Math.round(b)]}${_constants_js__WEBPACK_IMPORTED_MODULE_1__.DEC2HEX[Math.round(a * 255)]}`;
85023 }
85024 else { // #RRGGBB
85025 return `#${_constants_js__WEBPACK_IMPORTED_MODULE_1__.DEC2HEX[Math.round(r)]}${_constants_js__WEBPACK_IMPORTED_MODULE_1__.DEC2HEX[Math.round(g)]}${_constants_js__WEBPACK_IMPORTED_MODULE_1__.DEC2HEX[Math.round(b)]}`;
85026 }
85027 }
85028};
85029/* EXPORT */
85030/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Hex);
85031
85032
85033/***/ }),
85034
85035/***/ "./node_modules/khroma/dist/color/hsl.js":
85036/*!***********************************************!*\
85037 !*** ./node_modules/khroma/dist/color/hsl.js ***!
85038 \***********************************************/
85039/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85040
85041"use strict";
85042__webpack_require__.r(__webpack_exports__);
85043/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85044/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
85045/* harmony export */ });
85046/* harmony import */ var _utils_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/index.js */ "./node_modules/khroma/dist/utils/index.js");
85047/* harmony import */ var _channels_reusable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../channels/reusable.js */ "./node_modules/khroma/dist/channels/reusable.js");
85048/* IMPORT */
85049
85050
85051/* MAIN */
85052const HSL = {
85053 /* VARIABLES */
85054 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,
85055 hueRe: /^(.+?)(deg|grad|rad|turn)$/i,
85056 /* HELPERS */
85057 _hue2deg: (hue) => {
85058 const match = hue.match(HSL.hueRe);
85059 if (match) {
85060 const [, number, unit] = match;
85061 switch (unit) {
85062 case 'grad': return _utils_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].channel.clamp.h(parseFloat(number) * .9);
85063 case 'rad': return _utils_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].channel.clamp.h(parseFloat(number) * 180 / Math.PI);
85064 case 'turn': return _utils_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].channel.clamp.h(parseFloat(number) * 360);
85065 }
85066 }
85067 return _utils_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].channel.clamp.h(parseFloat(hue));
85068 },
85069 /* API */
85070 parse: (color) => {
85071 const charCode = color.charCodeAt(0);
85072 if (charCode !== 104 && charCode !== 72)
85073 return; // 'h'/'H'
85074 const match = color.match(HSL.re);
85075 if (!match)
85076 return;
85077 const [, h, s, l, a, isAlphaPercentage] = match;
85078 return _channels_reusable_js__WEBPACK_IMPORTED_MODULE_1__["default"].set({
85079 h: HSL._hue2deg(h),
85080 s: _utils_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].channel.clamp.s(parseFloat(s)),
85081 l: _utils_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].channel.clamp.l(parseFloat(l)),
85082 a: a ? _utils_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1
85083 }, color);
85084 },
85085 stringify: (channels) => {
85086 const { h, s, l, a } = channels;
85087 if (a < 1) { // HSLA
85088 return `hsla(${_utils_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].lang.round(h)}, ${_utils_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].lang.round(s)}%, ${_utils_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].lang.round(l)}%, ${a})`;
85089 }
85090 else { // HSL
85091 return `hsl(${_utils_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].lang.round(h)}, ${_utils_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].lang.round(s)}%, ${_utils_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].lang.round(l)}%)`;
85092 }
85093 }
85094};
85095/* EXPORT */
85096/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (HSL);
85097
85098
85099/***/ }),
85100
85101/***/ "./node_modules/khroma/dist/color/index.js":
85102/*!*************************************************!*\
85103 !*** ./node_modules/khroma/dist/color/index.js ***!
85104 \*************************************************/
85105/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85106
85107"use strict";
85108__webpack_require__.r(__webpack_exports__);
85109/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85110/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
85111/* harmony export */ });
85112/* harmony import */ var _hex_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hex.js */ "./node_modules/khroma/dist/color/hex.js");
85113/* harmony import */ var _hsl_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./hsl.js */ "./node_modules/khroma/dist/color/hsl.js");
85114/* harmony import */ var _keyword_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./keyword.js */ "./node_modules/khroma/dist/color/keyword.js");
85115/* harmony import */ var _rgb_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./rgb.js */ "./node_modules/khroma/dist/color/rgb.js");
85116/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants.js */ "./node_modules/khroma/dist/constants.js");
85117/* IMPORT */
85118
85119
85120
85121
85122
85123
85124/* MAIN */
85125const Color = {
85126 /* VARIABLES */
85127 format: {
85128 keyword: _keyword_js__WEBPACK_IMPORTED_MODULE_0__["default"],
85129 hex: _hex_js__WEBPACK_IMPORTED_MODULE_1__["default"],
85130 rgb: _rgb_js__WEBPACK_IMPORTED_MODULE_2__["default"],
85131 rgba: _rgb_js__WEBPACK_IMPORTED_MODULE_2__["default"],
85132 hsl: _hsl_js__WEBPACK_IMPORTED_MODULE_3__["default"],
85133 hsla: _hsl_js__WEBPACK_IMPORTED_MODULE_3__["default"]
85134 },
85135 /* API */
85136 parse: (color) => {
85137 if (typeof color !== 'string')
85138 return color;
85139 const channels = _hex_js__WEBPACK_IMPORTED_MODULE_1__["default"].parse(color) || _rgb_js__WEBPACK_IMPORTED_MODULE_2__["default"].parse(color) || _hsl_js__WEBPACK_IMPORTED_MODULE_3__["default"].parse(color) || _keyword_js__WEBPACK_IMPORTED_MODULE_0__["default"].parse(color); // Color providers ordered with performance in mind
85140 if (channels)
85141 return channels;
85142 throw new Error(`Unsupported color format: "${color}"`);
85143 },
85144 stringify: (channels) => {
85145 // SASS returns a keyword if possible, but we avoid doing that as it's slower and doesn't really add any value
85146 if (!channels.changed && channels.color)
85147 return channels.color;
85148 if (channels.type.is(_constants_js__WEBPACK_IMPORTED_MODULE_4__.TYPE.HSL) || channels.data.r === undefined) {
85149 return _hsl_js__WEBPACK_IMPORTED_MODULE_3__["default"].stringify(channels);
85150 }
85151 else if (channels.a < 1 || !Number.isInteger(channels.r) || !Number.isInteger(channels.g) || !Number.isInteger(channels.b)) {
85152 return _rgb_js__WEBPACK_IMPORTED_MODULE_2__["default"].stringify(channels);
85153 }
85154 else {
85155 return _hex_js__WEBPACK_IMPORTED_MODULE_1__["default"].stringify(channels);
85156 }
85157 }
85158};
85159/* EXPORT */
85160/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Color);
85161
85162
85163/***/ }),
85164
85165/***/ "./node_modules/khroma/dist/color/keyword.js":
85166/*!***************************************************!*\
85167 !*** ./node_modules/khroma/dist/color/keyword.js ***!
85168 \***************************************************/
85169/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85170
85171"use strict";
85172__webpack_require__.r(__webpack_exports__);
85173/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85174/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
85175/* harmony export */ });
85176/* harmony import */ var _hex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hex.js */ "./node_modules/khroma/dist/color/hex.js");
85177/* IMPORT */
85178
85179/* MAIN */
85180const Keyword = {
85181 /* VARIABLES */
85182 colors: {
85183 aliceblue: '#f0f8ff',
85184 antiquewhite: '#faebd7',
85185 aqua: '#00ffff',
85186 aquamarine: '#7fffd4',
85187 azure: '#f0ffff',
85188 beige: '#f5f5dc',
85189 bisque: '#ffe4c4',
85190 black: '#000000',
85191 blanchedalmond: '#ffebcd',
85192 blue: '#0000ff',
85193 blueviolet: '#8a2be2',
85194 brown: '#a52a2a',
85195 burlywood: '#deb887',
85196 cadetblue: '#5f9ea0',
85197 chartreuse: '#7fff00',
85198 chocolate: '#d2691e',
85199 coral: '#ff7f50',
85200 cornflowerblue: '#6495ed',
85201 cornsilk: '#fff8dc',
85202 crimson: '#dc143c',
85203 cyanaqua: '#00ffff',
85204 darkblue: '#00008b',
85205 darkcyan: '#008b8b',
85206 darkgoldenrod: '#b8860b',
85207 darkgray: '#a9a9a9',
85208 darkgreen: '#006400',
85209 darkgrey: '#a9a9a9',
85210 darkkhaki: '#bdb76b',
85211 darkmagenta: '#8b008b',
85212 darkolivegreen: '#556b2f',
85213 darkorange: '#ff8c00',
85214 darkorchid: '#9932cc',
85215 darkred: '#8b0000',
85216 darksalmon: '#e9967a',
85217 darkseagreen: '#8fbc8f',
85218 darkslateblue: '#483d8b',
85219 darkslategray: '#2f4f4f',
85220 darkslategrey: '#2f4f4f',
85221 darkturquoise: '#00ced1',
85222 darkviolet: '#9400d3',
85223 deeppink: '#ff1493',
85224 deepskyblue: '#00bfff',
85225 dimgray: '#696969',
85226 dimgrey: '#696969',
85227 dodgerblue: '#1e90ff',
85228 firebrick: '#b22222',
85229 floralwhite: '#fffaf0',
85230 forestgreen: '#228b22',
85231 fuchsia: '#ff00ff',
85232 gainsboro: '#dcdcdc',
85233 ghostwhite: '#f8f8ff',
85234 gold: '#ffd700',
85235 goldenrod: '#daa520',
85236 gray: '#808080',
85237 green: '#008000',
85238 greenyellow: '#adff2f',
85239 grey: '#808080',
85240 honeydew: '#f0fff0',
85241 hotpink: '#ff69b4',
85242 indianred: '#cd5c5c',
85243 indigo: '#4b0082',
85244 ivory: '#fffff0',
85245 khaki: '#f0e68c',
85246 lavender: '#e6e6fa',
85247 lavenderblush: '#fff0f5',
85248 lawngreen: '#7cfc00',
85249 lemonchiffon: '#fffacd',
85250 lightblue: '#add8e6',
85251 lightcoral: '#f08080',
85252 lightcyan: '#e0ffff',
85253 lightgoldenrodyellow: '#fafad2',
85254 lightgray: '#d3d3d3',
85255 lightgreen: '#90ee90',
85256 lightgrey: '#d3d3d3',
85257 lightpink: '#ffb6c1',
85258 lightsalmon: '#ffa07a',
85259 lightseagreen: '#20b2aa',
85260 lightskyblue: '#87cefa',
85261 lightslategray: '#778899',
85262 lightslategrey: '#778899',
85263 lightsteelblue: '#b0c4de',
85264 lightyellow: '#ffffe0',
85265 lime: '#00ff00',
85266 limegreen: '#32cd32',
85267 linen: '#faf0e6',
85268 magenta: '#ff00ff',
85269 maroon: '#800000',
85270 mediumaquamarine: '#66cdaa',
85271 mediumblue: '#0000cd',
85272 mediumorchid: '#ba55d3',
85273 mediumpurple: '#9370db',
85274 mediumseagreen: '#3cb371',
85275 mediumslateblue: '#7b68ee',
85276 mediumspringgreen: '#00fa9a',
85277 mediumturquoise: '#48d1cc',
85278 mediumvioletred: '#c71585',
85279 midnightblue: '#191970',
85280 mintcream: '#f5fffa',
85281 mistyrose: '#ffe4e1',
85282 moccasin: '#ffe4b5',
85283 navajowhite: '#ffdead',
85284 navy: '#000080',
85285 oldlace: '#fdf5e6',
85286 olive: '#808000',
85287 olivedrab: '#6b8e23',
85288 orange: '#ffa500',
85289 orangered: '#ff4500',
85290 orchid: '#da70d6',
85291 palegoldenrod: '#eee8aa',
85292 palegreen: '#98fb98',
85293 paleturquoise: '#afeeee',
85294 palevioletred: '#db7093',
85295 papayawhip: '#ffefd5',
85296 peachpuff: '#ffdab9',
85297 peru: '#cd853f',
85298 pink: '#ffc0cb',
85299 plum: '#dda0dd',
85300 powderblue: '#b0e0e6',
85301 purple: '#800080',
85302 rebeccapurple: '#663399',
85303 red: '#ff0000',
85304 rosybrown: '#bc8f8f',
85305 royalblue: '#4169e1',
85306 saddlebrown: '#8b4513',
85307 salmon: '#fa8072',
85308 sandybrown: '#f4a460',
85309 seagreen: '#2e8b57',
85310 seashell: '#fff5ee',
85311 sienna: '#a0522d',
85312 silver: '#c0c0c0',
85313 skyblue: '#87ceeb',
85314 slateblue: '#6a5acd',
85315 slategray: '#708090',
85316 slategrey: '#708090',
85317 snow: '#fffafa',
85318 springgreen: '#00ff7f',
85319 tan: '#d2b48c',
85320 teal: '#008080',
85321 thistle: '#d8bfd8',
85322 transparent: '#00000000',
85323 turquoise: '#40e0d0',
85324 violet: '#ee82ee',
85325 wheat: '#f5deb3',
85326 white: '#ffffff',
85327 whitesmoke: '#f5f5f5',
85328 yellow: '#ffff00',
85329 yellowgreen: '#9acd32'
85330 },
85331 /* API */
85332 parse: (color) => {
85333 color = color.toLowerCase();
85334 const hex = Keyword.colors[color];
85335 if (!hex)
85336 return;
85337 return _hex_js__WEBPACK_IMPORTED_MODULE_0__["default"].parse(hex);
85338 },
85339 stringify: (channels) => {
85340 const hex = _hex_js__WEBPACK_IMPORTED_MODULE_0__["default"].stringify(channels);
85341 for (const name in Keyword.colors) {
85342 if (Keyword.colors[name] === hex)
85343 return name;
85344 }
85345 return;
85346 }
85347};
85348/* EXPORT */
85349/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Keyword);
85350
85351
85352/***/ }),
85353
85354/***/ "./node_modules/khroma/dist/color/rgb.js":
85355/*!***********************************************!*\
85356 !*** ./node_modules/khroma/dist/color/rgb.js ***!
85357 \***********************************************/
85358/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85359
85360"use strict";
85361__webpack_require__.r(__webpack_exports__);
85362/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85363/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
85364/* harmony export */ });
85365/* harmony import */ var _utils_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/index.js */ "./node_modules/khroma/dist/utils/index.js");
85366/* harmony import */ var _channels_reusable_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../channels/reusable.js */ "./node_modules/khroma/dist/channels/reusable.js");
85367/* IMPORT */
85368
85369
85370/* MAIN */
85371const RGB = {
85372 /* VARIABLES */
85373 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,
85374 /* API */
85375 parse: (color) => {
85376 const charCode = color.charCodeAt(0);
85377 if (charCode !== 114 && charCode !== 82)
85378 return; // 'r'/'R'
85379 const match = color.match(RGB.re);
85380 if (!match)
85381 return;
85382 const [, r, isRedPercentage, g, isGreenPercentage, b, isBluePercentage, a, isAlphaPercentage] = match;
85383 return _channels_reusable_js__WEBPACK_IMPORTED_MODULE_0__["default"].set({
85384 r: _utils_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].channel.clamp.r(isRedPercentage ? parseFloat(r) * 2.55 : parseFloat(r)),
85385 g: _utils_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].channel.clamp.g(isGreenPercentage ? parseFloat(g) * 2.55 : parseFloat(g)),
85386 b: _utils_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].channel.clamp.b(isBluePercentage ? parseFloat(b) * 2.55 : parseFloat(b)),
85387 a: a ? _utils_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1
85388 }, color);
85389 },
85390 stringify: (channels) => {
85391 const { r, g, b, a } = channels;
85392 if (a < 1) { // RGBA
85393 return `rgba(${_utils_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].lang.round(r)}, ${_utils_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].lang.round(g)}, ${_utils_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].lang.round(b)}, ${_utils_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].lang.round(a)})`;
85394 }
85395 else { // RGB
85396 return `rgb(${_utils_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].lang.round(r)}, ${_utils_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].lang.round(g)}, ${_utils_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].lang.round(b)})`;
85397 }
85398 }
85399};
85400/* EXPORT */
85401/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RGB);
85402
85403
85404/***/ }),
85405
85406/***/ "./node_modules/khroma/dist/constants.js":
85407/*!***********************************************!*\
85408 !*** ./node_modules/khroma/dist/constants.js ***!
85409 \***********************************************/
85410/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85411
85412"use strict";
85413__webpack_require__.r(__webpack_exports__);
85414/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85415/* harmony export */ "DEC2HEX": () => (/* binding */ DEC2HEX),
85416/* harmony export */ "TYPE": () => (/* binding */ TYPE)
85417/* harmony export */ });
85418/* harmony import */ var _utils_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/index.js */ "./node_modules/khroma/dist/utils/index.js");
85419/* IMPORT */
85420
85421/* MAIN */
85422const DEC2HEX = {};
85423for (let i = 0; i <= 255; i++)
85424 DEC2HEX[i] = _utils_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].unit.dec2hex(i); // Populating dynamically, striking a balance between code size and performance
85425const TYPE = {
85426 ALL: 0,
85427 RGB: 1,
85428 HSL: 2
85429};
85430/* EXPORT */
85431
85432
85433
85434/***/ }),
85435
85436/***/ "./node_modules/khroma/dist/methods/adjust.js":
85437/*!****************************************************!*\
85438 !*** ./node_modules/khroma/dist/methods/adjust.js ***!
85439 \****************************************************/
85440/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85441
85442"use strict";
85443__webpack_require__.r(__webpack_exports__);
85444/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85445/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
85446/* harmony export */ });
85447/* harmony import */ var _color_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../color/index.js */ "./node_modules/khroma/dist/color/index.js");
85448/* harmony import */ var _change_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./change.js */ "./node_modules/khroma/dist/methods/change.js");
85449/* IMPORT */
85450
85451
85452/* MAIN */
85453const adjust = (color, channels) => {
85454 const ch = _color_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].parse(color);
85455 const changes = {};
85456 for (const c in channels) {
85457 if (!channels[c])
85458 continue;
85459 changes[c] = ch[c] + channels[c];
85460 }
85461 return (0,_change_js__WEBPACK_IMPORTED_MODULE_1__["default"])(color, changes);
85462};
85463/* EXPORT */
85464/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (adjust);
85465
85466
85467/***/ }),
85468
85469/***/ "./node_modules/khroma/dist/methods/adjust_channel.js":
85470/*!************************************************************!*\
85471 !*** ./node_modules/khroma/dist/methods/adjust_channel.js ***!
85472 \************************************************************/
85473/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85474
85475"use strict";
85476__webpack_require__.r(__webpack_exports__);
85477/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85478/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
85479/* harmony export */ });
85480/* harmony import */ var _utils_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/index.js */ "./node_modules/khroma/dist/utils/index.js");
85481/* harmony import */ var _color_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../color/index.js */ "./node_modules/khroma/dist/color/index.js");
85482/* IMPORT */
85483
85484
85485/* MAIN */
85486const adjustChannel = (color, channel, amount) => {
85487 const channels = _color_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].parse(color);
85488 const amountCurrent = channels[channel];
85489 const amountNext = _utils_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].channel.clamp[channel](amountCurrent + amount);
85490 if (amountCurrent !== amountNext)
85491 channels[channel] = amountNext;
85492 return _color_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].stringify(channels);
85493};
85494/* EXPORT */
85495/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (adjustChannel);
85496
85497
85498/***/ }),
85499
85500/***/ "./node_modules/khroma/dist/methods/change.js":
85501/*!****************************************************!*\
85502 !*** ./node_modules/khroma/dist/methods/change.js ***!
85503 \****************************************************/
85504/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85505
85506"use strict";
85507__webpack_require__.r(__webpack_exports__);
85508/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85509/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
85510/* harmony export */ });
85511/* harmony import */ var _utils_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/index.js */ "./node_modules/khroma/dist/utils/index.js");
85512/* harmony import */ var _color_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../color/index.js */ "./node_modules/khroma/dist/color/index.js");
85513/* IMPORT */
85514
85515
85516/* MAIN */
85517const change = (color, channels) => {
85518 const ch = _color_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].parse(color);
85519 for (const c in channels) {
85520 ch[c] = _utils_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].channel.clamp[c](channels[c]);
85521 }
85522 return _color_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].stringify(ch);
85523};
85524/* EXPORT */
85525/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (change);
85526
85527
85528/***/ }),
85529
85530/***/ "./node_modules/khroma/dist/methods/darken.js":
85531/*!****************************************************!*\
85532 !*** ./node_modules/khroma/dist/methods/darken.js ***!
85533 \****************************************************/
85534/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85535
85536"use strict";
85537__webpack_require__.r(__webpack_exports__);
85538/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85539/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
85540/* harmony export */ });
85541/* harmony import */ var _adjust_channel_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./adjust_channel.js */ "./node_modules/khroma/dist/methods/adjust_channel.js");
85542/* IMPORT */
85543
85544/* MAIN */
85545const darken = (color, amount) => {
85546 return (0,_adjust_channel_js__WEBPACK_IMPORTED_MODULE_0__["default"])(color, 'l', -amount);
85547};
85548/* EXPORT */
85549/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (darken);
85550
85551
85552/***/ }),
85553
85554/***/ "./node_modules/khroma/dist/methods/invert.js":
85555/*!****************************************************!*\
85556 !*** ./node_modules/khroma/dist/methods/invert.js ***!
85557 \****************************************************/
85558/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85559
85560"use strict";
85561__webpack_require__.r(__webpack_exports__);
85562/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85563/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
85564/* harmony export */ });
85565/* harmony import */ var _color_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../color/index.js */ "./node_modules/khroma/dist/color/index.js");
85566/* harmony import */ var _mix_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mix.js */ "./node_modules/khroma/dist/methods/mix.js");
85567/* IMPORT */
85568
85569
85570/* MAIN */
85571const invert = (color, weight = 100) => {
85572 const inverse = _color_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].parse(color);
85573 inverse.r = 255 - inverse.r;
85574 inverse.g = 255 - inverse.g;
85575 inverse.b = 255 - inverse.b;
85576 return (0,_mix_js__WEBPACK_IMPORTED_MODULE_1__["default"])(inverse, color, weight);
85577};
85578/* EXPORT */
85579/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (invert);
85580
85581
85582/***/ }),
85583
85584/***/ "./node_modules/khroma/dist/methods/lighten.js":
85585/*!*****************************************************!*\
85586 !*** ./node_modules/khroma/dist/methods/lighten.js ***!
85587 \*****************************************************/
85588/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85589
85590"use strict";
85591__webpack_require__.r(__webpack_exports__);
85592/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85593/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
85594/* harmony export */ });
85595/* harmony import */ var _adjust_channel_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./adjust_channel.js */ "./node_modules/khroma/dist/methods/adjust_channel.js");
85596/* IMPORT */
85597
85598/* MAIN */
85599const lighten = (color, amount) => {
85600 return (0,_adjust_channel_js__WEBPACK_IMPORTED_MODULE_0__["default"])(color, 'l', amount);
85601};
85602/* EXPORT */
85603/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (lighten);
85604
85605
85606/***/ }),
85607
85608/***/ "./node_modules/khroma/dist/methods/mix.js":
85609/*!*************************************************!*\
85610 !*** ./node_modules/khroma/dist/methods/mix.js ***!
85611 \*************************************************/
85612/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85613
85614"use strict";
85615__webpack_require__.r(__webpack_exports__);
85616/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85617/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
85618/* harmony export */ });
85619/* harmony import */ var _color_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../color/index.js */ "./node_modules/khroma/dist/color/index.js");
85620/* harmony import */ var _rgba_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rgba.js */ "./node_modules/khroma/dist/methods/rgba.js");
85621/* IMPORT */
85622
85623
85624/* MAIN */
85625//SOURCE: https://github.com/sass/dart-sass/blob/7457d2e9e7e623d9844ffd037a070cf32d39c348/lib/src/functions/color.dart#L718-L756
85626const mix = (color1, color2, weight = 50) => {
85627 const { r: r1, g: g1, b: b1, a: a1 } = _color_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].parse(color1);
85628 const { r: r2, g: g2, b: b2, a: a2 } = _color_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].parse(color2);
85629 const weightScale = weight / 100;
85630 const weightNormalized = (weightScale * 2) - 1;
85631 const alphaDelta = a1 - a2;
85632 const weight1combined = ((weightNormalized * alphaDelta) === -1) ? weightNormalized : (weightNormalized + alphaDelta) / (1 + weightNormalized * alphaDelta);
85633 const weight1 = (weight1combined + 1) / 2;
85634 const weight2 = 1 - weight1;
85635 const r = (r1 * weight1) + (r2 * weight2);
85636 const g = (g1 * weight1) + (g2 * weight2);
85637 const b = (b1 * weight1) + (b2 * weight2);
85638 const a = (a1 * weightScale) + (a2 * (1 - weightScale));
85639 return (0,_rgba_js__WEBPACK_IMPORTED_MODULE_1__["default"])(r, g, b, a);
85640};
85641/* EXPORT */
85642/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mix);
85643
85644
85645/***/ }),
85646
85647/***/ "./node_modules/khroma/dist/methods/rgba.js":
85648/*!**************************************************!*\
85649 !*** ./node_modules/khroma/dist/methods/rgba.js ***!
85650 \**************************************************/
85651/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85652
85653"use strict";
85654__webpack_require__.r(__webpack_exports__);
85655/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85656/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
85657/* harmony export */ });
85658/* harmony import */ var _utils_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/index.js */ "./node_modules/khroma/dist/utils/index.js");
85659/* harmony import */ var _channels_reusable_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../channels/reusable.js */ "./node_modules/khroma/dist/channels/reusable.js");
85660/* harmony import */ var _color_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../color/index.js */ "./node_modules/khroma/dist/color/index.js");
85661/* harmony import */ var _change_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./change.js */ "./node_modules/khroma/dist/methods/change.js");
85662/* IMPORT */
85663
85664
85665
85666
85667/* MAIN */
85668const rgba = (r, g, b = 0, a = 1) => {
85669 if (typeof r !== 'number')
85670 return (0,_change_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, { a: g });
85671 const channels = _channels_reusable_js__WEBPACK_IMPORTED_MODULE_1__["default"].set({
85672 r: _utils_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].channel.clamp.r(r),
85673 g: _utils_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].channel.clamp.g(g),
85674 b: _utils_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].channel.clamp.b(b),
85675 a: _utils_index_js__WEBPACK_IMPORTED_MODULE_2__["default"].channel.clamp.a(a)
85676 });
85677 return _color_index_js__WEBPACK_IMPORTED_MODULE_3__["default"].stringify(channels);
85678};
85679/* EXPORT */
85680/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (rgba);
85681
85682
85683/***/ }),
85684
85685/***/ "./node_modules/khroma/dist/utils/channel.js":
85686/*!***************************************************!*\
85687 !*** ./node_modules/khroma/dist/utils/channel.js ***!
85688 \***************************************************/
85689/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85690
85691"use strict";
85692__webpack_require__.r(__webpack_exports__);
85693/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85694/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
85695/* harmony export */ });
85696/* IMPORT */
85697/* MAIN */
85698const Channel = {
85699 /* CLAMP */
85700 min: {
85701 r: 0,
85702 g: 0,
85703 b: 0,
85704 s: 0,
85705 l: 0,
85706 a: 0
85707 },
85708 max: {
85709 r: 255,
85710 g: 255,
85711 b: 255,
85712 h: 360,
85713 s: 100,
85714 l: 100,
85715 a: 1
85716 },
85717 clamp: {
85718 r: (r) => r >= 255 ? 255 : (r < 0 ? 0 : r),
85719 g: (g) => g >= 255 ? 255 : (g < 0 ? 0 : g),
85720 b: (b) => b >= 255 ? 255 : (b < 0 ? 0 : b),
85721 h: (h) => h % 360,
85722 s: (s) => s >= 100 ? 100 : (s < 0 ? 0 : s),
85723 l: (l) => l >= 100 ? 100 : (l < 0 ? 0 : l),
85724 a: (a) => a >= 1 ? 1 : (a < 0 ? 0 : a)
85725 },
85726 /* CONVERSION */
85727 //SOURCE: https://planetcalc.com/7779
85728 toLinear: (c) => {
85729 const n = c / 255;
85730 return c > .03928 ? Math.pow(((n + .055) / 1.055), 2.4) : n / 12.92;
85731 },
85732 //SOURCE: https://gist.github.com/mjackson/5311256
85733 hue2rgb: (p, q, t) => {
85734 if (t < 0)
85735 t += 1;
85736 if (t > 1)
85737 t -= 1;
85738 if (t < 1 / 6)
85739 return p + (q - p) * 6 * t;
85740 if (t < 1 / 2)
85741 return q;
85742 if (t < 2 / 3)
85743 return p + (q - p) * (2 / 3 - t) * 6;
85744 return p;
85745 },
85746 hsl2rgb: ({ h, s, l }, channel) => {
85747 if (!s)
85748 return l * 2.55; // Achromatic
85749 h /= 360;
85750 s /= 100;
85751 l /= 100;
85752 const q = (l < .5) ? l * (1 + s) : (l + s) - (l * s);
85753 const p = 2 * l - q;
85754 switch (channel) {
85755 case 'r': return Channel.hue2rgb(p, q, h + 1 / 3) * 255;
85756 case 'g': return Channel.hue2rgb(p, q, h) * 255;
85757 case 'b': return Channel.hue2rgb(p, q, h - 1 / 3) * 255;
85758 }
85759 },
85760 rgb2hsl: ({ r, g, b }, channel) => {
85761 r /= 255;
85762 g /= 255;
85763 b /= 255;
85764 const max = Math.max(r, g, b);
85765 const min = Math.min(r, g, b);
85766 const l = (max + min) / 2;
85767 if (channel === 'l')
85768 return l * 100;
85769 if (max === min)
85770 return 0; // Achromatic
85771 const d = max - min;
85772 const s = (l > .5) ? d / (2 - max - min) : d / (max + min);
85773 if (channel === 's')
85774 return s * 100;
85775 switch (max) {
85776 case r: return ((g - b) / d + (g < b ? 6 : 0)) * 60;
85777 case g: return ((b - r) / d + 2) * 60;
85778 case b: return ((r - g) / d + 4) * 60;
85779 default: return -1; //TSC: TypeScript is stupid and complains if there isn't this useless default statement
85780 }
85781 }
85782};
85783/* EXPORT */
85784/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Channel);
85785
85786
85787/***/ }),
85788
85789/***/ "./node_modules/khroma/dist/utils/index.js":
85790/*!*************************************************!*\
85791 !*** ./node_modules/khroma/dist/utils/index.js ***!
85792 \*************************************************/
85793/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85794
85795"use strict";
85796__webpack_require__.r(__webpack_exports__);
85797/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85798/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
85799/* harmony export */ });
85800/* harmony import */ var _channel_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./channel.js */ "./node_modules/khroma/dist/utils/channel.js");
85801/* harmony import */ var _lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lang.js */ "./node_modules/khroma/dist/utils/lang.js");
85802/* harmony import */ var _unit_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unit.js */ "./node_modules/khroma/dist/utils/unit.js");
85803/* IMPORT */
85804
85805
85806
85807/* MAIN */
85808const Utils = {
85809 channel: _channel_js__WEBPACK_IMPORTED_MODULE_0__["default"],
85810 lang: _lang_js__WEBPACK_IMPORTED_MODULE_1__["default"],
85811 unit: _unit_js__WEBPACK_IMPORTED_MODULE_2__["default"]
85812};
85813/* EXPORT */
85814/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Utils);
85815
85816
85817/***/ }),
85818
85819/***/ "./node_modules/khroma/dist/utils/lang.js":
85820/*!************************************************!*\
85821 !*** ./node_modules/khroma/dist/utils/lang.js ***!
85822 \************************************************/
85823/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85824
85825"use strict";
85826__webpack_require__.r(__webpack_exports__);
85827/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85828/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
85829/* harmony export */ });
85830/* MAIN */
85831const Lang = {
85832 /* API */
85833 clamp: (number, lower, upper) => {
85834 if (lower > upper)
85835 return Math.min(lower, Math.max(upper, number));
85836 return Math.min(upper, Math.max(lower, number));
85837 },
85838 round: (number) => {
85839 return Math.round(number * 10000000000) / 10000000000;
85840 }
85841};
85842/* EXPORT */
85843/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Lang);
85844
85845
85846/***/ }),
85847
85848/***/ "./node_modules/khroma/dist/utils/unit.js":
85849/*!************************************************!*\
85850 !*** ./node_modules/khroma/dist/utils/unit.js ***!
85851 \************************************************/
85852/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85853
85854"use strict";
85855__webpack_require__.r(__webpack_exports__);
85856/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85857/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
85858/* harmony export */ });
85859/* MAIN */
85860const Unit = {
85861 /* API */
85862 dec2hex: (dec) => {
85863 const hex = Math.round(dec).toString(16);
85864 return hex.length > 1 ? hex : `0${hex}`;
85865 }
85866};
85867/* EXPORT */
85868/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Unit);
85869
85870
85871/***/ }),
85872
85873/***/ "./node_modules/robust-predicates/esm/incircle.js":
85874/*!********************************************************!*\
85875 !*** ./node_modules/robust-predicates/esm/incircle.js ***!
85876 \********************************************************/
85877/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85878
85879"use strict";
85880__webpack_require__.r(__webpack_exports__);
85881/* harmony export */ __webpack_require__.d(__webpack_exports__, {
85882/* harmony export */ "incircle": () => (/* binding */ incircle),
85883/* harmony export */ "incirclefast": () => (/* binding */ incirclefast)
85884/* harmony export */ });
85885/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util.js */ "./node_modules/robust-predicates/esm/util.js");
85886
85887
85888const iccerrboundA = (10 + 96 * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon;
85889const iccerrboundB = (4 + 48 * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon;
85890const iccerrboundC = (44 + 576 * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon;
85891
85892const bc = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
85893const ca = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
85894const ab = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
85895const aa = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
85896const bb = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
85897const cc = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
85898const u = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
85899const v = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
85900const axtbc = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
85901const aytbc = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
85902const bxtca = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
85903const bytca = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
85904const cxtab = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
85905const cytab = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
85906const abt = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
85907const bct = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
85908const cat = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
85909const abtt = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
85910const bctt = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
85911const catt = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
85912
85913const _8 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
85914const _16 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(16);
85915const _16b = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(16);
85916const _16c = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(16);
85917const _32 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(32);
85918const _32b = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(32);
85919const _48 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(48);
85920const _64 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(64);
85921
85922let fin = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(1152);
85923let fin2 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(1152);
85924
85925function finadd(finlen, a, alen) {
85926 finlen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(finlen, fin, a, alen, fin2);
85927 const tmp = fin; fin = fin2; fin2 = tmp;
85928 return finlen;
85929}
85930
85931function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) {
85932 let finlen;
85933 let adxtail, bdxtail, cdxtail, adytail, bdytail, cdytail;
85934 let axtbclen, aytbclen, bxtcalen, bytcalen, cxtablen, cytablen;
85935 let abtlen, bctlen, catlen;
85936 let abttlen, bcttlen, cattlen;
85937 let n1, n0;
85938
85939 let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
85940
85941 const adx = ax - dx;
85942 const bdx = bx - dx;
85943 const cdx = cx - dx;
85944 const ady = ay - dy;
85945 const bdy = by - dy;
85946 const cdy = cy - dy;
85947
85948 s1 = bdx * cdy;
85949 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdx;
85950 ahi = c - (c - bdx);
85951 alo = bdx - ahi;
85952 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdy;
85953 bhi = c - (c - cdy);
85954 blo = cdy - bhi;
85955 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
85956 t1 = cdx * bdy;
85957 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdx;
85958 ahi = c - (c - cdx);
85959 alo = cdx - ahi;
85960 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdy;
85961 bhi = c - (c - bdy);
85962 blo = bdy - bhi;
85963 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
85964 _i = s0 - t0;
85965 bvirt = s0 - _i;
85966 bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
85967 _j = s1 + _i;
85968 bvirt = _j - s1;
85969 _0 = s1 - (_j - bvirt) + (_i - bvirt);
85970 _i = _0 - t1;
85971 bvirt = _0 - _i;
85972 bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
85973 u3 = _j + _i;
85974 bvirt = u3 - _j;
85975 bc[2] = _j - (u3 - bvirt) + (_i - bvirt);
85976 bc[3] = u3;
85977 s1 = cdx * ady;
85978 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdx;
85979 ahi = c - (c - cdx);
85980 alo = cdx - ahi;
85981 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ady;
85982 bhi = c - (c - ady);
85983 blo = ady - bhi;
85984 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
85985 t1 = adx * cdy;
85986 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * adx;
85987 ahi = c - (c - adx);
85988 alo = adx - ahi;
85989 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdy;
85990 bhi = c - (c - cdy);
85991 blo = cdy - bhi;
85992 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
85993 _i = s0 - t0;
85994 bvirt = s0 - _i;
85995 ca[0] = s0 - (_i + bvirt) + (bvirt - t0);
85996 _j = s1 + _i;
85997 bvirt = _j - s1;
85998 _0 = s1 - (_j - bvirt) + (_i - bvirt);
85999 _i = _0 - t1;
86000 bvirt = _0 - _i;
86001 ca[1] = _0 - (_i + bvirt) + (bvirt - t1);
86002 u3 = _j + _i;
86003 bvirt = u3 - _j;
86004 ca[2] = _j - (u3 - bvirt) + (_i - bvirt);
86005 ca[3] = u3;
86006 s1 = adx * bdy;
86007 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * adx;
86008 ahi = c - (c - adx);
86009 alo = adx - ahi;
86010 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdy;
86011 bhi = c - (c - bdy);
86012 blo = bdy - bhi;
86013 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86014 t1 = bdx * ady;
86015 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdx;
86016 ahi = c - (c - bdx);
86017 alo = bdx - ahi;
86018 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ady;
86019 bhi = c - (c - ady);
86020 blo = ady - bhi;
86021 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86022 _i = s0 - t0;
86023 bvirt = s0 - _i;
86024 ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
86025 _j = s1 + _i;
86026 bvirt = _j - s1;
86027 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86028 _i = _0 - t1;
86029 bvirt = _0 - _i;
86030 ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
86031 u3 = _j + _i;
86032 bvirt = u3 - _j;
86033 ab[2] = _j - (u3 - bvirt) + (_i - bvirt);
86034 ab[3] = u3;
86035
86036 finlen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(
86037 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(
86038 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(
86039 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, bc, adx, _8), _8, adx, _16), _16,
86040 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, bc, ady, _8), _8, ady, _16b), _16b, _32), _32,
86041 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(
86042 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, ca, bdx, _8), _8, bdx, _16), _16,
86043 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, ca, bdy, _8), _8, bdy, _16b), _16b, _32b), _32b, _64), _64,
86044 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(
86045 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, ab, cdx, _8), _8, cdx, _16), _16,
86046 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, ab, cdy, _8), _8, cdy, _16b), _16b, _32), _32, fin);
86047
86048 let det = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.estimate)(finlen, fin);
86049 let errbound = iccerrboundB * permanent;
86050 if (det >= errbound || -det >= errbound) {
86051 return det;
86052 }
86053
86054 bvirt = ax - adx;
86055 adxtail = ax - (adx + bvirt) + (bvirt - dx);
86056 bvirt = ay - ady;
86057 adytail = ay - (ady + bvirt) + (bvirt - dy);
86058 bvirt = bx - bdx;
86059 bdxtail = bx - (bdx + bvirt) + (bvirt - dx);
86060 bvirt = by - bdy;
86061 bdytail = by - (bdy + bvirt) + (bvirt - dy);
86062 bvirt = cx - cdx;
86063 cdxtail = cx - (cdx + bvirt) + (bvirt - dx);
86064 bvirt = cy - cdy;
86065 cdytail = cy - (cdy + bvirt) + (bvirt - dy);
86066 if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 && adytail === 0 && bdytail === 0 && cdytail === 0) {
86067 return det;
86068 }
86069
86070 errbound = iccerrboundC * permanent + _util_js__WEBPACK_IMPORTED_MODULE_0__.resulterrbound * Math.abs(det);
86071 det += ((adx * adx + ady * ady) * ((bdx * cdytail + cdy * bdxtail) - (bdy * cdxtail + cdx * bdytail)) +
86072 2 * (adx * adxtail + ady * adytail) * (bdx * cdy - bdy * cdx)) +
86073 ((bdx * bdx + bdy * bdy) * ((cdx * adytail + ady * cdxtail) - (cdy * adxtail + adx * cdytail)) +
86074 2 * (bdx * bdxtail + bdy * bdytail) * (cdx * ady - cdy * adx)) +
86075 ((cdx * cdx + cdy * cdy) * ((adx * bdytail + bdy * adxtail) - (ady * bdxtail + bdx * adytail)) +
86076 2 * (cdx * cdxtail + cdy * cdytail) * (adx * bdy - ady * bdx));
86077
86078 if (det >= errbound || -det >= errbound) {
86079 return det;
86080 }
86081
86082 if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) {
86083 s1 = adx * adx;
86084 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * adx;
86085 ahi = c - (c - adx);
86086 alo = adx - ahi;
86087 s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
86088 t1 = ady * ady;
86089 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ady;
86090 ahi = c - (c - ady);
86091 alo = ady - ahi;
86092 t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
86093 _i = s0 + t0;
86094 bvirt = _i - s0;
86095 aa[0] = s0 - (_i - bvirt) + (t0 - bvirt);
86096 _j = s1 + _i;
86097 bvirt = _j - s1;
86098 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86099 _i = _0 + t1;
86100 bvirt = _i - _0;
86101 aa[1] = _0 - (_i - bvirt) + (t1 - bvirt);
86102 u3 = _j + _i;
86103 bvirt = u3 - _j;
86104 aa[2] = _j - (u3 - bvirt) + (_i - bvirt);
86105 aa[3] = u3;
86106 }
86107 if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) {
86108 s1 = bdx * bdx;
86109 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdx;
86110 ahi = c - (c - bdx);
86111 alo = bdx - ahi;
86112 s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
86113 t1 = bdy * bdy;
86114 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdy;
86115 ahi = c - (c - bdy);
86116 alo = bdy - ahi;
86117 t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
86118 _i = s0 + t0;
86119 bvirt = _i - s0;
86120 bb[0] = s0 - (_i - bvirt) + (t0 - bvirt);
86121 _j = s1 + _i;
86122 bvirt = _j - s1;
86123 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86124 _i = _0 + t1;
86125 bvirt = _i - _0;
86126 bb[1] = _0 - (_i - bvirt) + (t1 - bvirt);
86127 u3 = _j + _i;
86128 bvirt = u3 - _j;
86129 bb[2] = _j - (u3 - bvirt) + (_i - bvirt);
86130 bb[3] = u3;
86131 }
86132 if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) {
86133 s1 = cdx * cdx;
86134 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdx;
86135 ahi = c - (c - cdx);
86136 alo = cdx - ahi;
86137 s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo);
86138 t1 = cdy * cdy;
86139 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdy;
86140 ahi = c - (c - cdy);
86141 alo = cdy - ahi;
86142 t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo);
86143 _i = s0 + t0;
86144 bvirt = _i - s0;
86145 cc[0] = s0 - (_i - bvirt) + (t0 - bvirt);
86146 _j = s1 + _i;
86147 bvirt = _j - s1;
86148 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86149 _i = _0 + t1;
86150 bvirt = _i - _0;
86151 cc[1] = _0 - (_i - bvirt) + (t1 - bvirt);
86152 u3 = _j + _i;
86153 bvirt = u3 - _j;
86154 cc[2] = _j - (u3 - bvirt) + (_i - bvirt);
86155 cc[3] = u3;
86156 }
86157
86158 if (adxtail !== 0) {
86159 axtbclen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, bc, adxtail, axtbc);
86160 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum_three)(
86161 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(axtbclen, axtbc, 2 * adx, _16), _16,
86162 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, cc, adxtail, _8), _8, bdy, _16b), _16b,
86163 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, bb, adxtail, _8), _8, -cdy, _16c), _16c, _32, _48), _48);
86164 }
86165 if (adytail !== 0) {
86166 aytbclen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, bc, adytail, aytbc);
86167 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum_three)(
86168 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(aytbclen, aytbc, 2 * ady, _16), _16,
86169 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, bb, adytail, _8), _8, cdx, _16b), _16b,
86170 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, cc, adytail, _8), _8, -bdx, _16c), _16c, _32, _48), _48);
86171 }
86172 if (bdxtail !== 0) {
86173 bxtcalen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, ca, bdxtail, bxtca);
86174 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum_three)(
86175 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(bxtcalen, bxtca, 2 * bdx, _16), _16,
86176 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, aa, bdxtail, _8), _8, cdy, _16b), _16b,
86177 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, cc, bdxtail, _8), _8, -ady, _16c), _16c, _32, _48), _48);
86178 }
86179 if (bdytail !== 0) {
86180 bytcalen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, ca, bdytail, bytca);
86181 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum_three)(
86182 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(bytcalen, bytca, 2 * bdy, _16), _16,
86183 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, cc, bdytail, _8), _8, adx, _16b), _16b,
86184 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, aa, bdytail, _8), _8, -cdx, _16c), _16c, _32, _48), _48);
86185 }
86186 if (cdxtail !== 0) {
86187 cxtablen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, ab, cdxtail, cxtab);
86188 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum_three)(
86189 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(cxtablen, cxtab, 2 * cdx, _16), _16,
86190 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, bb, cdxtail, _8), _8, ady, _16b), _16b,
86191 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, aa, cdxtail, _8), _8, -bdy, _16c), _16c, _32, _48), _48);
86192 }
86193 if (cdytail !== 0) {
86194 cytablen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, ab, cdytail, cytab);
86195 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum_three)(
86196 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(cytablen, cytab, 2 * cdy, _16), _16,
86197 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, aa, cdytail, _8), _8, bdx, _16b), _16b,
86198 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, bb, cdytail, _8), _8, -adx, _16c), _16c, _32, _48), _48);
86199 }
86200
86201 if (adxtail !== 0 || adytail !== 0) {
86202 if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) {
86203 s1 = bdxtail * cdy;
86204 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdxtail;
86205 ahi = c - (c - bdxtail);
86206 alo = bdxtail - ahi;
86207 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdy;
86208 bhi = c - (c - cdy);
86209 blo = cdy - bhi;
86210 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86211 t1 = bdx * cdytail;
86212 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdx;
86213 ahi = c - (c - bdx);
86214 alo = bdx - ahi;
86215 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdytail;
86216 bhi = c - (c - cdytail);
86217 blo = cdytail - bhi;
86218 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86219 _i = s0 + t0;
86220 bvirt = _i - s0;
86221 u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
86222 _j = s1 + _i;
86223 bvirt = _j - s1;
86224 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86225 _i = _0 + t1;
86226 bvirt = _i - _0;
86227 u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
86228 u3 = _j + _i;
86229 bvirt = u3 - _j;
86230 u[2] = _j - (u3 - bvirt) + (_i - bvirt);
86231 u[3] = u3;
86232 s1 = cdxtail * -bdy;
86233 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdxtail;
86234 ahi = c - (c - cdxtail);
86235 alo = cdxtail - ahi;
86236 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * -bdy;
86237 bhi = c - (c - -bdy);
86238 blo = -bdy - bhi;
86239 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86240 t1 = cdx * -bdytail;
86241 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdx;
86242 ahi = c - (c - cdx);
86243 alo = cdx - ahi;
86244 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * -bdytail;
86245 bhi = c - (c - -bdytail);
86246 blo = -bdytail - bhi;
86247 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86248 _i = s0 + t0;
86249 bvirt = _i - s0;
86250 v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
86251 _j = s1 + _i;
86252 bvirt = _j - s1;
86253 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86254 _i = _0 + t1;
86255 bvirt = _i - _0;
86256 v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
86257 u3 = _j + _i;
86258 bvirt = u3 - _j;
86259 v[2] = _j - (u3 - bvirt) + (_i - bvirt);
86260 v[3] = u3;
86261 bctlen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(4, u, 4, v, bct);
86262 s1 = bdxtail * cdytail;
86263 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdxtail;
86264 ahi = c - (c - bdxtail);
86265 alo = bdxtail - ahi;
86266 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdytail;
86267 bhi = c - (c - cdytail);
86268 blo = cdytail - bhi;
86269 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86270 t1 = cdxtail * bdytail;
86271 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdxtail;
86272 ahi = c - (c - cdxtail);
86273 alo = cdxtail - ahi;
86274 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdytail;
86275 bhi = c - (c - bdytail);
86276 blo = bdytail - bhi;
86277 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86278 _i = s0 - t0;
86279 bvirt = s0 - _i;
86280 bctt[0] = s0 - (_i + bvirt) + (bvirt - t0);
86281 _j = s1 + _i;
86282 bvirt = _j - s1;
86283 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86284 _i = _0 - t1;
86285 bvirt = _0 - _i;
86286 bctt[1] = _0 - (_i + bvirt) + (bvirt - t1);
86287 u3 = _j + _i;
86288 bvirt = u3 - _j;
86289 bctt[2] = _j - (u3 - bvirt) + (_i - bvirt);
86290 bctt[3] = u3;
86291 bcttlen = 4;
86292 } else {
86293 bct[0] = 0;
86294 bctlen = 1;
86295 bctt[0] = 0;
86296 bcttlen = 1;
86297 }
86298 if (adxtail !== 0) {
86299 const len = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(bctlen, bct, adxtail, _16c);
86300 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(
86301 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(axtbclen, axtbc, adxtail, _16), _16,
86302 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _16c, 2 * adx, _32), _32, _48), _48);
86303
86304 const len2 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(bcttlen, bctt, adxtail, _8);
86305 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum_three)(
86306 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len2, _8, 2 * adx, _16), _16,
86307 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len2, _8, adxtail, _16b), _16b,
86308 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _16c, adxtail, _32), _32, _32b, _64), _64);
86309
86310 if (bdytail !== 0) {
86311 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, cc, adxtail, _8), _8, bdytail, _16), _16);
86312 }
86313 if (cdytail !== 0) {
86314 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, bb, -adxtail, _8), _8, cdytail, _16), _16);
86315 }
86316 }
86317 if (adytail !== 0) {
86318 const len = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(bctlen, bct, adytail, _16c);
86319 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(
86320 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(aytbclen, aytbc, adytail, _16), _16,
86321 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _16c, 2 * ady, _32), _32, _48), _48);
86322
86323 const len2 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(bcttlen, bctt, adytail, _8);
86324 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum_three)(
86325 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len2, _8, 2 * ady, _16), _16,
86326 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len2, _8, adytail, _16b), _16b,
86327 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _16c, adytail, _32), _32, _32b, _64), _64);
86328 }
86329 }
86330 if (bdxtail !== 0 || bdytail !== 0) {
86331 if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) {
86332 s1 = cdxtail * ady;
86333 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdxtail;
86334 ahi = c - (c - cdxtail);
86335 alo = cdxtail - ahi;
86336 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ady;
86337 bhi = c - (c - ady);
86338 blo = ady - bhi;
86339 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86340 t1 = cdx * adytail;
86341 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdx;
86342 ahi = c - (c - cdx);
86343 alo = cdx - ahi;
86344 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * adytail;
86345 bhi = c - (c - adytail);
86346 blo = adytail - bhi;
86347 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86348 _i = s0 + t0;
86349 bvirt = _i - s0;
86350 u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
86351 _j = s1 + _i;
86352 bvirt = _j - s1;
86353 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86354 _i = _0 + t1;
86355 bvirt = _i - _0;
86356 u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
86357 u3 = _j + _i;
86358 bvirt = u3 - _j;
86359 u[2] = _j - (u3 - bvirt) + (_i - bvirt);
86360 u[3] = u3;
86361 n1 = -cdy;
86362 n0 = -cdytail;
86363 s1 = adxtail * n1;
86364 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * adxtail;
86365 ahi = c - (c - adxtail);
86366 alo = adxtail - ahi;
86367 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * n1;
86368 bhi = c - (c - n1);
86369 blo = n1 - bhi;
86370 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86371 t1 = adx * n0;
86372 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * adx;
86373 ahi = c - (c - adx);
86374 alo = adx - ahi;
86375 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * n0;
86376 bhi = c - (c - n0);
86377 blo = n0 - bhi;
86378 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86379 _i = s0 + t0;
86380 bvirt = _i - s0;
86381 v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
86382 _j = s1 + _i;
86383 bvirt = _j - s1;
86384 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86385 _i = _0 + t1;
86386 bvirt = _i - _0;
86387 v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
86388 u3 = _j + _i;
86389 bvirt = u3 - _j;
86390 v[2] = _j - (u3 - bvirt) + (_i - bvirt);
86391 v[3] = u3;
86392 catlen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(4, u, 4, v, cat);
86393 s1 = cdxtail * adytail;
86394 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdxtail;
86395 ahi = c - (c - cdxtail);
86396 alo = cdxtail - ahi;
86397 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * adytail;
86398 bhi = c - (c - adytail);
86399 blo = adytail - bhi;
86400 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86401 t1 = adxtail * cdytail;
86402 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * adxtail;
86403 ahi = c - (c - adxtail);
86404 alo = adxtail - ahi;
86405 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdytail;
86406 bhi = c - (c - cdytail);
86407 blo = cdytail - bhi;
86408 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86409 _i = s0 - t0;
86410 bvirt = s0 - _i;
86411 catt[0] = s0 - (_i + bvirt) + (bvirt - t0);
86412 _j = s1 + _i;
86413 bvirt = _j - s1;
86414 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86415 _i = _0 - t1;
86416 bvirt = _0 - _i;
86417 catt[1] = _0 - (_i + bvirt) + (bvirt - t1);
86418 u3 = _j + _i;
86419 bvirt = u3 - _j;
86420 catt[2] = _j - (u3 - bvirt) + (_i - bvirt);
86421 catt[3] = u3;
86422 cattlen = 4;
86423 } else {
86424 cat[0] = 0;
86425 catlen = 1;
86426 catt[0] = 0;
86427 cattlen = 1;
86428 }
86429 if (bdxtail !== 0) {
86430 const len = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(catlen, cat, bdxtail, _16c);
86431 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(
86432 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(bxtcalen, bxtca, bdxtail, _16), _16,
86433 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _16c, 2 * bdx, _32), _32, _48), _48);
86434
86435 const len2 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(cattlen, catt, bdxtail, _8);
86436 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum_three)(
86437 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len2, _8, 2 * bdx, _16), _16,
86438 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len2, _8, bdxtail, _16b), _16b,
86439 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _16c, bdxtail, _32), _32, _32b, _64), _64);
86440
86441 if (cdytail !== 0) {
86442 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, aa, bdxtail, _8), _8, cdytail, _16), _16);
86443 }
86444 if (adytail !== 0) {
86445 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, cc, -bdxtail, _8), _8, adytail, _16), _16);
86446 }
86447 }
86448 if (bdytail !== 0) {
86449 const len = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(catlen, cat, bdytail, _16c);
86450 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(
86451 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(bytcalen, bytca, bdytail, _16), _16,
86452 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _16c, 2 * bdy, _32), _32, _48), _48);
86453
86454 const len2 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(cattlen, catt, bdytail, _8);
86455 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum_three)(
86456 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len2, _8, 2 * bdy, _16), _16,
86457 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len2, _8, bdytail, _16b), _16b,
86458 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _16c, bdytail, _32), _32, _32b, _64), _64);
86459 }
86460 }
86461 if (cdxtail !== 0 || cdytail !== 0) {
86462 if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) {
86463 s1 = adxtail * bdy;
86464 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * adxtail;
86465 ahi = c - (c - adxtail);
86466 alo = adxtail - ahi;
86467 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdy;
86468 bhi = c - (c - bdy);
86469 blo = bdy - bhi;
86470 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86471 t1 = adx * bdytail;
86472 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * adx;
86473 ahi = c - (c - adx);
86474 alo = adx - ahi;
86475 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdytail;
86476 bhi = c - (c - bdytail);
86477 blo = bdytail - bhi;
86478 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86479 _i = s0 + t0;
86480 bvirt = _i - s0;
86481 u[0] = s0 - (_i - bvirt) + (t0 - bvirt);
86482 _j = s1 + _i;
86483 bvirt = _j - s1;
86484 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86485 _i = _0 + t1;
86486 bvirt = _i - _0;
86487 u[1] = _0 - (_i - bvirt) + (t1 - bvirt);
86488 u3 = _j + _i;
86489 bvirt = u3 - _j;
86490 u[2] = _j - (u3 - bvirt) + (_i - bvirt);
86491 u[3] = u3;
86492 n1 = -ady;
86493 n0 = -adytail;
86494 s1 = bdxtail * n1;
86495 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdxtail;
86496 ahi = c - (c - bdxtail);
86497 alo = bdxtail - ahi;
86498 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * n1;
86499 bhi = c - (c - n1);
86500 blo = n1 - bhi;
86501 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86502 t1 = bdx * n0;
86503 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdx;
86504 ahi = c - (c - bdx);
86505 alo = bdx - ahi;
86506 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * n0;
86507 bhi = c - (c - n0);
86508 blo = n0 - bhi;
86509 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86510 _i = s0 + t0;
86511 bvirt = _i - s0;
86512 v[0] = s0 - (_i - bvirt) + (t0 - bvirt);
86513 _j = s1 + _i;
86514 bvirt = _j - s1;
86515 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86516 _i = _0 + t1;
86517 bvirt = _i - _0;
86518 v[1] = _0 - (_i - bvirt) + (t1 - bvirt);
86519 u3 = _j + _i;
86520 bvirt = u3 - _j;
86521 v[2] = _j - (u3 - bvirt) + (_i - bvirt);
86522 v[3] = u3;
86523 abtlen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(4, u, 4, v, abt);
86524 s1 = adxtail * bdytail;
86525 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * adxtail;
86526 ahi = c - (c - adxtail);
86527 alo = adxtail - ahi;
86528 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdytail;
86529 bhi = c - (c - bdytail);
86530 blo = bdytail - bhi;
86531 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86532 t1 = bdxtail * adytail;
86533 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdxtail;
86534 ahi = c - (c - bdxtail);
86535 alo = bdxtail - ahi;
86536 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * adytail;
86537 bhi = c - (c - adytail);
86538 blo = adytail - bhi;
86539 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86540 _i = s0 - t0;
86541 bvirt = s0 - _i;
86542 abtt[0] = s0 - (_i + bvirt) + (bvirt - t0);
86543 _j = s1 + _i;
86544 bvirt = _j - s1;
86545 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86546 _i = _0 - t1;
86547 bvirt = _0 - _i;
86548 abtt[1] = _0 - (_i + bvirt) + (bvirt - t1);
86549 u3 = _j + _i;
86550 bvirt = u3 - _j;
86551 abtt[2] = _j - (u3 - bvirt) + (_i - bvirt);
86552 abtt[3] = u3;
86553 abttlen = 4;
86554 } else {
86555 abt[0] = 0;
86556 abtlen = 1;
86557 abtt[0] = 0;
86558 abttlen = 1;
86559 }
86560 if (cdxtail !== 0) {
86561 const len = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(abtlen, abt, cdxtail, _16c);
86562 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(
86563 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(cxtablen, cxtab, cdxtail, _16), _16,
86564 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _16c, 2 * cdx, _32), _32, _48), _48);
86565
86566 const len2 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(abttlen, abtt, cdxtail, _8);
86567 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum_three)(
86568 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len2, _8, 2 * cdx, _16), _16,
86569 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len2, _8, cdxtail, _16b), _16b,
86570 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _16c, cdxtail, _32), _32, _32b, _64), _64);
86571
86572 if (adytail !== 0) {
86573 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, bb, cdxtail, _8), _8, adytail, _16), _16);
86574 }
86575 if (bdytail !== 0) {
86576 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, aa, -cdxtail, _8), _8, bdytail, _16), _16);
86577 }
86578 }
86579 if (cdytail !== 0) {
86580 const len = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(abtlen, abt, cdytail, _16c);
86581 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(
86582 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(cytablen, cytab, cdytail, _16), _16,
86583 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _16c, 2 * cdy, _32), _32, _48), _48);
86584
86585 const len2 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(abttlen, abtt, cdytail, _8);
86586 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum_three)(
86587 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len2, _8, 2 * cdy, _16), _16,
86588 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len2, _8, cdytail, _16b), _16b,
86589 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _16c, cdytail, _32), _32, _32b, _64), _64);
86590 }
86591 }
86592
86593 return fin[finlen - 1];
86594}
86595
86596function incircle(ax, ay, bx, by, cx, cy, dx, dy) {
86597 const adx = ax - dx;
86598 const bdx = bx - dx;
86599 const cdx = cx - dx;
86600 const ady = ay - dy;
86601 const bdy = by - dy;
86602 const cdy = cy - dy;
86603
86604 const bdxcdy = bdx * cdy;
86605 const cdxbdy = cdx * bdy;
86606 const alift = adx * adx + ady * ady;
86607
86608 const cdxady = cdx * ady;
86609 const adxcdy = adx * cdy;
86610 const blift = bdx * bdx + bdy * bdy;
86611
86612 const adxbdy = adx * bdy;
86613 const bdxady = bdx * ady;
86614 const clift = cdx * cdx + cdy * cdy;
86615
86616 const det =
86617 alift * (bdxcdy - cdxbdy) +
86618 blift * (cdxady - adxcdy) +
86619 clift * (adxbdy - bdxady);
86620
86621 const permanent =
86622 (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * alift +
86623 (Math.abs(cdxady) + Math.abs(adxcdy)) * blift +
86624 (Math.abs(adxbdy) + Math.abs(bdxady)) * clift;
86625
86626 const errbound = iccerrboundA * permanent;
86627
86628 if (det > errbound || -det > errbound) {
86629 return det;
86630 }
86631 return incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent);
86632}
86633
86634function incirclefast(ax, ay, bx, by, cx, cy, dx, dy) {
86635 const adx = ax - dx;
86636 const ady = ay - dy;
86637 const bdx = bx - dx;
86638 const bdy = by - dy;
86639 const cdx = cx - dx;
86640 const cdy = cy - dy;
86641
86642 const abdet = adx * bdy - bdx * ady;
86643 const bcdet = bdx * cdy - cdx * bdy;
86644 const cadet = cdx * ady - adx * cdy;
86645 const alift = adx * adx + ady * ady;
86646 const blift = bdx * bdx + bdy * bdy;
86647 const clift = cdx * cdx + cdy * cdy;
86648
86649 return alift * bcdet + blift * cadet + clift * abdet;
86650}
86651
86652
86653/***/ }),
86654
86655/***/ "./node_modules/robust-predicates/esm/insphere.js":
86656/*!********************************************************!*\
86657 !*** ./node_modules/robust-predicates/esm/insphere.js ***!
86658 \********************************************************/
86659/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
86660
86661"use strict";
86662__webpack_require__.r(__webpack_exports__);
86663/* harmony export */ __webpack_require__.d(__webpack_exports__, {
86664/* harmony export */ "insphere": () => (/* binding */ insphere),
86665/* harmony export */ "inspherefast": () => (/* binding */ inspherefast)
86666/* harmony export */ });
86667/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util.js */ "./node_modules/robust-predicates/esm/util.js");
86668
86669
86670const isperrboundA = (16 + 224 * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon;
86671const isperrboundB = (5 + 72 * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon;
86672const isperrboundC = (71 + 1408 * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon;
86673
86674const ab = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
86675const bc = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
86676const cd = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
86677const de = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
86678const ea = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
86679const ac = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
86680const bd = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
86681const ce = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
86682const da = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
86683const eb = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
86684
86685const abc = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(24);
86686const bcd = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(24);
86687const cde = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(24);
86688const dea = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(24);
86689const eab = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(24);
86690const abd = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(24);
86691const bce = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(24);
86692const cda = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(24);
86693const deb = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(24);
86694const eac = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(24);
86695
86696const adet = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(1152);
86697const bdet = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(1152);
86698const cdet = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(1152);
86699const ddet = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(1152);
86700const edet = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(1152);
86701const abdet = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(2304);
86702const cddet = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(2304);
86703const cdedet = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(3456);
86704const deter = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(5760);
86705
86706const _8 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
86707const _8b = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
86708const _8c = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
86709const _16 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(16);
86710const _24 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(24);
86711const _48 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(48);
86712const _48b = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(48);
86713const _96 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(96);
86714const _192 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(192);
86715const _384x = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(384);
86716const _384y = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(384);
86717const _384z = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(384);
86718const _768 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(768);
86719
86720function sum_three_scale(a, b, c, az, bz, cz, out) {
86721 return (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum_three)(
86722 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, a, az, _8), _8,
86723 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, b, bz, _8b), _8b,
86724 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, c, cz, _8c), _8c, _16, out);
86725}
86726
86727function liftexact(alen, a, blen, b, clen, c, dlen, d, x, y, z, out) {
86728 const len = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(
86729 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(alen, a, blen, b, _48), _48,
86730 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.negate)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(clen, c, dlen, d, _48b), _48b), _48b, _96);
86731
86732 return (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum_three)(
86733 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _96, x, _192), _192, x, _384x), _384x,
86734 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _96, y, _192), _192, y, _384y), _384y,
86735 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _96, z, _192), _192, z, _384z), _384z, _768, out);
86736}
86737
86738function insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) {
86739 let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
86740
86741 s1 = ax * by;
86742 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ax;
86743 ahi = c - (c - ax);
86744 alo = ax - ahi;
86745 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * by;
86746 bhi = c - (c - by);
86747 blo = by - bhi;
86748 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86749 t1 = bx * ay;
86750 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bx;
86751 ahi = c - (c - bx);
86752 alo = bx - ahi;
86753 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ay;
86754 bhi = c - (c - ay);
86755 blo = ay - bhi;
86756 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86757 _i = s0 - t0;
86758 bvirt = s0 - _i;
86759 ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
86760 _j = s1 + _i;
86761 bvirt = _j - s1;
86762 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86763 _i = _0 - t1;
86764 bvirt = _0 - _i;
86765 ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
86766 u3 = _j + _i;
86767 bvirt = u3 - _j;
86768 ab[2] = _j - (u3 - bvirt) + (_i - bvirt);
86769 ab[3] = u3;
86770 s1 = bx * cy;
86771 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bx;
86772 ahi = c - (c - bx);
86773 alo = bx - ahi;
86774 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cy;
86775 bhi = c - (c - cy);
86776 blo = cy - bhi;
86777 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86778 t1 = cx * by;
86779 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cx;
86780 ahi = c - (c - cx);
86781 alo = cx - ahi;
86782 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * by;
86783 bhi = c - (c - by);
86784 blo = by - bhi;
86785 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86786 _i = s0 - t0;
86787 bvirt = s0 - _i;
86788 bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
86789 _j = s1 + _i;
86790 bvirt = _j - s1;
86791 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86792 _i = _0 - t1;
86793 bvirt = _0 - _i;
86794 bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
86795 u3 = _j + _i;
86796 bvirt = u3 - _j;
86797 bc[2] = _j - (u3 - bvirt) + (_i - bvirt);
86798 bc[3] = u3;
86799 s1 = cx * dy;
86800 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cx;
86801 ahi = c - (c - cx);
86802 alo = cx - ahi;
86803 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * dy;
86804 bhi = c - (c - dy);
86805 blo = dy - bhi;
86806 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86807 t1 = dx * cy;
86808 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * dx;
86809 ahi = c - (c - dx);
86810 alo = dx - ahi;
86811 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cy;
86812 bhi = c - (c - cy);
86813 blo = cy - bhi;
86814 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86815 _i = s0 - t0;
86816 bvirt = s0 - _i;
86817 cd[0] = s0 - (_i + bvirt) + (bvirt - t0);
86818 _j = s1 + _i;
86819 bvirt = _j - s1;
86820 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86821 _i = _0 - t1;
86822 bvirt = _0 - _i;
86823 cd[1] = _0 - (_i + bvirt) + (bvirt - t1);
86824 u3 = _j + _i;
86825 bvirt = u3 - _j;
86826 cd[2] = _j - (u3 - bvirt) + (_i - bvirt);
86827 cd[3] = u3;
86828 s1 = dx * ey;
86829 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * dx;
86830 ahi = c - (c - dx);
86831 alo = dx - ahi;
86832 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ey;
86833 bhi = c - (c - ey);
86834 blo = ey - bhi;
86835 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86836 t1 = ex * dy;
86837 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ex;
86838 ahi = c - (c - ex);
86839 alo = ex - ahi;
86840 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * dy;
86841 bhi = c - (c - dy);
86842 blo = dy - bhi;
86843 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86844 _i = s0 - t0;
86845 bvirt = s0 - _i;
86846 de[0] = s0 - (_i + bvirt) + (bvirt - t0);
86847 _j = s1 + _i;
86848 bvirt = _j - s1;
86849 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86850 _i = _0 - t1;
86851 bvirt = _0 - _i;
86852 de[1] = _0 - (_i + bvirt) + (bvirt - t1);
86853 u3 = _j + _i;
86854 bvirt = u3 - _j;
86855 de[2] = _j - (u3 - bvirt) + (_i - bvirt);
86856 de[3] = u3;
86857 s1 = ex * ay;
86858 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ex;
86859 ahi = c - (c - ex);
86860 alo = ex - ahi;
86861 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ay;
86862 bhi = c - (c - ay);
86863 blo = ay - bhi;
86864 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86865 t1 = ax * ey;
86866 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ax;
86867 ahi = c - (c - ax);
86868 alo = ax - ahi;
86869 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ey;
86870 bhi = c - (c - ey);
86871 blo = ey - bhi;
86872 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86873 _i = s0 - t0;
86874 bvirt = s0 - _i;
86875 ea[0] = s0 - (_i + bvirt) + (bvirt - t0);
86876 _j = s1 + _i;
86877 bvirt = _j - s1;
86878 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86879 _i = _0 - t1;
86880 bvirt = _0 - _i;
86881 ea[1] = _0 - (_i + bvirt) + (bvirt - t1);
86882 u3 = _j + _i;
86883 bvirt = u3 - _j;
86884 ea[2] = _j - (u3 - bvirt) + (_i - bvirt);
86885 ea[3] = u3;
86886 s1 = ax * cy;
86887 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ax;
86888 ahi = c - (c - ax);
86889 alo = ax - ahi;
86890 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cy;
86891 bhi = c - (c - cy);
86892 blo = cy - bhi;
86893 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86894 t1 = cx * ay;
86895 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cx;
86896 ahi = c - (c - cx);
86897 alo = cx - ahi;
86898 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ay;
86899 bhi = c - (c - ay);
86900 blo = ay - bhi;
86901 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86902 _i = s0 - t0;
86903 bvirt = s0 - _i;
86904 ac[0] = s0 - (_i + bvirt) + (bvirt - t0);
86905 _j = s1 + _i;
86906 bvirt = _j - s1;
86907 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86908 _i = _0 - t1;
86909 bvirt = _0 - _i;
86910 ac[1] = _0 - (_i + bvirt) + (bvirt - t1);
86911 u3 = _j + _i;
86912 bvirt = u3 - _j;
86913 ac[2] = _j - (u3 - bvirt) + (_i - bvirt);
86914 ac[3] = u3;
86915 s1 = bx * dy;
86916 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bx;
86917 ahi = c - (c - bx);
86918 alo = bx - ahi;
86919 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * dy;
86920 bhi = c - (c - dy);
86921 blo = dy - bhi;
86922 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86923 t1 = dx * by;
86924 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * dx;
86925 ahi = c - (c - dx);
86926 alo = dx - ahi;
86927 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * by;
86928 bhi = c - (c - by);
86929 blo = by - bhi;
86930 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86931 _i = s0 - t0;
86932 bvirt = s0 - _i;
86933 bd[0] = s0 - (_i + bvirt) + (bvirt - t0);
86934 _j = s1 + _i;
86935 bvirt = _j - s1;
86936 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86937 _i = _0 - t1;
86938 bvirt = _0 - _i;
86939 bd[1] = _0 - (_i + bvirt) + (bvirt - t1);
86940 u3 = _j + _i;
86941 bvirt = u3 - _j;
86942 bd[2] = _j - (u3 - bvirt) + (_i - bvirt);
86943 bd[3] = u3;
86944 s1 = cx * ey;
86945 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cx;
86946 ahi = c - (c - cx);
86947 alo = cx - ahi;
86948 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ey;
86949 bhi = c - (c - ey);
86950 blo = ey - bhi;
86951 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86952 t1 = ex * cy;
86953 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ex;
86954 ahi = c - (c - ex);
86955 alo = ex - ahi;
86956 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cy;
86957 bhi = c - (c - cy);
86958 blo = cy - bhi;
86959 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86960 _i = s0 - t0;
86961 bvirt = s0 - _i;
86962 ce[0] = s0 - (_i + bvirt) + (bvirt - t0);
86963 _j = s1 + _i;
86964 bvirt = _j - s1;
86965 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86966 _i = _0 - t1;
86967 bvirt = _0 - _i;
86968 ce[1] = _0 - (_i + bvirt) + (bvirt - t1);
86969 u3 = _j + _i;
86970 bvirt = u3 - _j;
86971 ce[2] = _j - (u3 - bvirt) + (_i - bvirt);
86972 ce[3] = u3;
86973 s1 = dx * ay;
86974 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * dx;
86975 ahi = c - (c - dx);
86976 alo = dx - ahi;
86977 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ay;
86978 bhi = c - (c - ay);
86979 blo = ay - bhi;
86980 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
86981 t1 = ax * dy;
86982 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ax;
86983 ahi = c - (c - ax);
86984 alo = ax - ahi;
86985 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * dy;
86986 bhi = c - (c - dy);
86987 blo = dy - bhi;
86988 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
86989 _i = s0 - t0;
86990 bvirt = s0 - _i;
86991 da[0] = s0 - (_i + bvirt) + (bvirt - t0);
86992 _j = s1 + _i;
86993 bvirt = _j - s1;
86994 _0 = s1 - (_j - bvirt) + (_i - bvirt);
86995 _i = _0 - t1;
86996 bvirt = _0 - _i;
86997 da[1] = _0 - (_i + bvirt) + (bvirt - t1);
86998 u3 = _j + _i;
86999 bvirt = u3 - _j;
87000 da[2] = _j - (u3 - bvirt) + (_i - bvirt);
87001 da[3] = u3;
87002 s1 = ex * by;
87003 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ex;
87004 ahi = c - (c - ex);
87005 alo = ex - ahi;
87006 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * by;
87007 bhi = c - (c - by);
87008 blo = by - bhi;
87009 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87010 t1 = bx * ey;
87011 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bx;
87012 ahi = c - (c - bx);
87013 alo = bx - ahi;
87014 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ey;
87015 bhi = c - (c - ey);
87016 blo = ey - bhi;
87017 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
87018 _i = s0 - t0;
87019 bvirt = s0 - _i;
87020 eb[0] = s0 - (_i + bvirt) + (bvirt - t0);
87021 _j = s1 + _i;
87022 bvirt = _j - s1;
87023 _0 = s1 - (_j - bvirt) + (_i - bvirt);
87024 _i = _0 - t1;
87025 bvirt = _0 - _i;
87026 eb[1] = _0 - (_i + bvirt) + (bvirt - t1);
87027 u3 = _j + _i;
87028 bvirt = u3 - _j;
87029 eb[2] = _j - (u3 - bvirt) + (_i - bvirt);
87030 eb[3] = u3;
87031
87032 const abclen = sum_three_scale(ab, bc, ac, cz, az, -bz, abc);
87033 const bcdlen = sum_three_scale(bc, cd, bd, dz, bz, -cz, bcd);
87034 const cdelen = sum_three_scale(cd, de, ce, ez, cz, -dz, cde);
87035 const dealen = sum_three_scale(de, ea, da, az, dz, -ez, dea);
87036 const eablen = sum_three_scale(ea, ab, eb, bz, ez, -az, eab);
87037 const abdlen = sum_three_scale(ab, bd, da, dz, az, bz, abd);
87038 const bcelen = sum_three_scale(bc, ce, eb, ez, bz, cz, bce);
87039 const cdalen = sum_three_scale(cd, da, ac, az, cz, dz, cda);
87040 const deblen = sum_three_scale(de, eb, bd, bz, dz, ez, deb);
87041 const eaclen = sum_three_scale(ea, ac, ce, cz, ez, az, eac);
87042
87043 const deterlen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum_three)(
87044 liftexact(cdelen, cde, bcelen, bce, deblen, deb, bcdlen, bcd, ax, ay, az, adet), adet,
87045 liftexact(dealen, dea, cdalen, cda, eaclen, eac, cdelen, cde, bx, by, bz, bdet), bdet,
87046 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum_three)(
87047 liftexact(eablen, eab, deblen, deb, abdlen, abd, dealen, dea, cx, cy, cz, cdet), cdet,
87048 liftexact(abclen, abc, eaclen, eac, bcelen, bce, eablen, eab, dx, dy, dz, ddet), ddet,
87049 liftexact(bcdlen, bcd, abdlen, abd, cdalen, cda, abclen, abc, ex, ey, ez, edet), edet, cddet, cdedet), cdedet, abdet, deter);
87050
87051 return deter[deterlen - 1];
87052}
87053
87054const xdet = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(96);
87055const ydet = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(96);
87056const zdet = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(96);
87057const fin = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(1152);
87058
87059function liftadapt(a, b, c, az, bz, cz, x, y, z, out) {
87060 const len = sum_three_scale(a, b, c, az, bz, cz, _24);
87061 return (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum_three)(
87062 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _24, x, _48), _48, x, xdet), xdet,
87063 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _24, y, _48), _48, y, ydet), ydet,
87064 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)((0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(len, _24, z, _48), _48, z, zdet), zdet, _192, out);
87065}
87066
87067function insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent) {
87068 let ab3, bc3, cd3, da3, ac3, bd3;
87069
87070 let aextail, bextail, cextail, dextail;
87071 let aeytail, beytail, ceytail, deytail;
87072 let aeztail, beztail, ceztail, deztail;
87073
87074 let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0;
87075
87076 const aex = ax - ex;
87077 const bex = bx - ex;
87078 const cex = cx - ex;
87079 const dex = dx - ex;
87080 const aey = ay - ey;
87081 const bey = by - ey;
87082 const cey = cy - ey;
87083 const dey = dy - ey;
87084 const aez = az - ez;
87085 const bez = bz - ez;
87086 const cez = cz - ez;
87087 const dez = dz - ez;
87088
87089 s1 = aex * bey;
87090 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * aex;
87091 ahi = c - (c - aex);
87092 alo = aex - ahi;
87093 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bey;
87094 bhi = c - (c - bey);
87095 blo = bey - bhi;
87096 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87097 t1 = bex * aey;
87098 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bex;
87099 ahi = c - (c - bex);
87100 alo = bex - ahi;
87101 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * aey;
87102 bhi = c - (c - aey);
87103 blo = aey - bhi;
87104 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
87105 _i = s0 - t0;
87106 bvirt = s0 - _i;
87107 ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
87108 _j = s1 + _i;
87109 bvirt = _j - s1;
87110 _0 = s1 - (_j - bvirt) + (_i - bvirt);
87111 _i = _0 - t1;
87112 bvirt = _0 - _i;
87113 ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
87114 ab3 = _j + _i;
87115 bvirt = ab3 - _j;
87116 ab[2] = _j - (ab3 - bvirt) + (_i - bvirt);
87117 ab[3] = ab3;
87118 s1 = bex * cey;
87119 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bex;
87120 ahi = c - (c - bex);
87121 alo = bex - ahi;
87122 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cey;
87123 bhi = c - (c - cey);
87124 blo = cey - bhi;
87125 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87126 t1 = cex * bey;
87127 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cex;
87128 ahi = c - (c - cex);
87129 alo = cex - ahi;
87130 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bey;
87131 bhi = c - (c - bey);
87132 blo = bey - bhi;
87133 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
87134 _i = s0 - t0;
87135 bvirt = s0 - _i;
87136 bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
87137 _j = s1 + _i;
87138 bvirt = _j - s1;
87139 _0 = s1 - (_j - bvirt) + (_i - bvirt);
87140 _i = _0 - t1;
87141 bvirt = _0 - _i;
87142 bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
87143 bc3 = _j + _i;
87144 bvirt = bc3 - _j;
87145 bc[2] = _j - (bc3 - bvirt) + (_i - bvirt);
87146 bc[3] = bc3;
87147 s1 = cex * dey;
87148 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cex;
87149 ahi = c - (c - cex);
87150 alo = cex - ahi;
87151 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * dey;
87152 bhi = c - (c - dey);
87153 blo = dey - bhi;
87154 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87155 t1 = dex * cey;
87156 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * dex;
87157 ahi = c - (c - dex);
87158 alo = dex - ahi;
87159 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cey;
87160 bhi = c - (c - cey);
87161 blo = cey - bhi;
87162 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
87163 _i = s0 - t0;
87164 bvirt = s0 - _i;
87165 cd[0] = s0 - (_i + bvirt) + (bvirt - t0);
87166 _j = s1 + _i;
87167 bvirt = _j - s1;
87168 _0 = s1 - (_j - bvirt) + (_i - bvirt);
87169 _i = _0 - t1;
87170 bvirt = _0 - _i;
87171 cd[1] = _0 - (_i + bvirt) + (bvirt - t1);
87172 cd3 = _j + _i;
87173 bvirt = cd3 - _j;
87174 cd[2] = _j - (cd3 - bvirt) + (_i - bvirt);
87175 cd[3] = cd3;
87176 s1 = dex * aey;
87177 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * dex;
87178 ahi = c - (c - dex);
87179 alo = dex - ahi;
87180 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * aey;
87181 bhi = c - (c - aey);
87182 blo = aey - bhi;
87183 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87184 t1 = aex * dey;
87185 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * aex;
87186 ahi = c - (c - aex);
87187 alo = aex - ahi;
87188 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * dey;
87189 bhi = c - (c - dey);
87190 blo = dey - bhi;
87191 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
87192 _i = s0 - t0;
87193 bvirt = s0 - _i;
87194 da[0] = s0 - (_i + bvirt) + (bvirt - t0);
87195 _j = s1 + _i;
87196 bvirt = _j - s1;
87197 _0 = s1 - (_j - bvirt) + (_i - bvirt);
87198 _i = _0 - t1;
87199 bvirt = _0 - _i;
87200 da[1] = _0 - (_i + bvirt) + (bvirt - t1);
87201 da3 = _j + _i;
87202 bvirt = da3 - _j;
87203 da[2] = _j - (da3 - bvirt) + (_i - bvirt);
87204 da[3] = da3;
87205 s1 = aex * cey;
87206 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * aex;
87207 ahi = c - (c - aex);
87208 alo = aex - ahi;
87209 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cey;
87210 bhi = c - (c - cey);
87211 blo = cey - bhi;
87212 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87213 t1 = cex * aey;
87214 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cex;
87215 ahi = c - (c - cex);
87216 alo = cex - ahi;
87217 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * aey;
87218 bhi = c - (c - aey);
87219 blo = aey - bhi;
87220 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
87221 _i = s0 - t0;
87222 bvirt = s0 - _i;
87223 ac[0] = s0 - (_i + bvirt) + (bvirt - t0);
87224 _j = s1 + _i;
87225 bvirt = _j - s1;
87226 _0 = s1 - (_j - bvirt) + (_i - bvirt);
87227 _i = _0 - t1;
87228 bvirt = _0 - _i;
87229 ac[1] = _0 - (_i + bvirt) + (bvirt - t1);
87230 ac3 = _j + _i;
87231 bvirt = ac3 - _j;
87232 ac[2] = _j - (ac3 - bvirt) + (_i - bvirt);
87233 ac[3] = ac3;
87234 s1 = bex * dey;
87235 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bex;
87236 ahi = c - (c - bex);
87237 alo = bex - ahi;
87238 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * dey;
87239 bhi = c - (c - dey);
87240 blo = dey - bhi;
87241 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87242 t1 = dex * bey;
87243 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * dex;
87244 ahi = c - (c - dex);
87245 alo = dex - ahi;
87246 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bey;
87247 bhi = c - (c - bey);
87248 blo = bey - bhi;
87249 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
87250 _i = s0 - t0;
87251 bvirt = s0 - _i;
87252 bd[0] = s0 - (_i + bvirt) + (bvirt - t0);
87253 _j = s1 + _i;
87254 bvirt = _j - s1;
87255 _0 = s1 - (_j - bvirt) + (_i - bvirt);
87256 _i = _0 - t1;
87257 bvirt = _0 - _i;
87258 bd[1] = _0 - (_i + bvirt) + (bvirt - t1);
87259 bd3 = _j + _i;
87260 bvirt = bd3 - _j;
87261 bd[2] = _j - (bd3 - bvirt) + (_i - bvirt);
87262 bd[3] = bd3;
87263
87264 const finlen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(
87265 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(
87266 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.negate)(liftadapt(bc, cd, bd, dez, bez, -cez, aex, aey, aez, adet), adet), adet,
87267 liftadapt(cd, da, ac, aez, cez, dez, bex, bey, bez, bdet), bdet, abdet), abdet,
87268 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(
87269 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.negate)(liftadapt(da, ab, bd, bez, dez, aez, cex, cey, cez, cdet), cdet), cdet,
87270 liftadapt(ab, bc, ac, cez, aez, -bez, dex, dey, dez, ddet), ddet, cddet), cddet, fin);
87271
87272 let det = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.estimate)(finlen, fin);
87273 let errbound = isperrboundB * permanent;
87274 if (det >= errbound || -det >= errbound) {
87275 return det;
87276 }
87277
87278 bvirt = ax - aex;
87279 aextail = ax - (aex + bvirt) + (bvirt - ex);
87280 bvirt = ay - aey;
87281 aeytail = ay - (aey + bvirt) + (bvirt - ey);
87282 bvirt = az - aez;
87283 aeztail = az - (aez + bvirt) + (bvirt - ez);
87284 bvirt = bx - bex;
87285 bextail = bx - (bex + bvirt) + (bvirt - ex);
87286 bvirt = by - bey;
87287 beytail = by - (bey + bvirt) + (bvirt - ey);
87288 bvirt = bz - bez;
87289 beztail = bz - (bez + bvirt) + (bvirt - ez);
87290 bvirt = cx - cex;
87291 cextail = cx - (cex + bvirt) + (bvirt - ex);
87292 bvirt = cy - cey;
87293 ceytail = cy - (cey + bvirt) + (bvirt - ey);
87294 bvirt = cz - cez;
87295 ceztail = cz - (cez + bvirt) + (bvirt - ez);
87296 bvirt = dx - dex;
87297 dextail = dx - (dex + bvirt) + (bvirt - ex);
87298 bvirt = dy - dey;
87299 deytail = dy - (dey + bvirt) + (bvirt - ey);
87300 bvirt = dz - dez;
87301 deztail = dz - (dez + bvirt) + (bvirt - ez);
87302 if (aextail === 0 && aeytail === 0 && aeztail === 0 &&
87303 bextail === 0 && beytail === 0 && beztail === 0 &&
87304 cextail === 0 && ceytail === 0 && ceztail === 0 &&
87305 dextail === 0 && deytail === 0 && deztail === 0) {
87306 return det;
87307 }
87308
87309 errbound = isperrboundC * permanent + _util_js__WEBPACK_IMPORTED_MODULE_0__.resulterrbound * Math.abs(det);
87310
87311 const abeps = (aex * beytail + bey * aextail) - (aey * bextail + bex * aeytail);
87312 const bceps = (bex * ceytail + cey * bextail) - (bey * cextail + cex * beytail);
87313 const cdeps = (cex * deytail + dey * cextail) - (cey * dextail + dex * ceytail);
87314 const daeps = (dex * aeytail + aey * dextail) - (dey * aextail + aex * deytail);
87315 const aceps = (aex * ceytail + cey * aextail) - (aey * cextail + cex * aeytail);
87316 const bdeps = (bex * deytail + dey * bextail) - (bey * dextail + dex * beytail);
87317 det +=
87318 (((bex * bex + bey * bey + bez * bez) * ((cez * daeps + dez * aceps + aez * cdeps) +
87319 (ceztail * da3 + deztail * ac3 + aeztail * cd3)) + (dex * dex + dey * dey + dez * dez) *
87320 ((aez * bceps - bez * aceps + cez * abeps) + (aeztail * bc3 - beztail * ac3 + ceztail * ab3))) -
87321 ((aex * aex + aey * aey + aez * aez) * ((bez * cdeps - cez * bdeps + dez * bceps) +
87322 (beztail * cd3 - ceztail * bd3 + deztail * bc3)) + (cex * cex + cey * cey + cez * cez) *
87323 ((dez * abeps + aez * bdeps + bez * daeps) + (deztail * ab3 + aeztail * bd3 + beztail * da3)))) +
87324 2 * (((bex * bextail + bey * beytail + bez * beztail) * (cez * da3 + dez * ac3 + aez * cd3) +
87325 (dex * dextail + dey * deytail + dez * deztail) * (aez * bc3 - bez * ac3 + cez * ab3)) -
87326 ((aex * aextail + aey * aeytail + aez * aeztail) * (bez * cd3 - cez * bd3 + dez * bc3) +
87327 (cex * cextail + cey * ceytail + cez * ceztail) * (dez * ab3 + aez * bd3 + bez * da3)));
87328
87329 if (det >= errbound || -det >= errbound) {
87330 return det;
87331 }
87332
87333 return insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez);
87334}
87335
87336function insphere(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) {
87337 const aex = ax - ex;
87338 const bex = bx - ex;
87339 const cex = cx - ex;
87340 const dex = dx - ex;
87341 const aey = ay - ey;
87342 const bey = by - ey;
87343 const cey = cy - ey;
87344 const dey = dy - ey;
87345 const aez = az - ez;
87346 const bez = bz - ez;
87347 const cez = cz - ez;
87348 const dez = dz - ez;
87349
87350 const aexbey = aex * bey;
87351 const bexaey = bex * aey;
87352 const ab = aexbey - bexaey;
87353 const bexcey = bex * cey;
87354 const cexbey = cex * bey;
87355 const bc = bexcey - cexbey;
87356 const cexdey = cex * dey;
87357 const dexcey = dex * cey;
87358 const cd = cexdey - dexcey;
87359 const dexaey = dex * aey;
87360 const aexdey = aex * dey;
87361 const da = dexaey - aexdey;
87362 const aexcey = aex * cey;
87363 const cexaey = cex * aey;
87364 const ac = aexcey - cexaey;
87365 const bexdey = bex * dey;
87366 const dexbey = dex * bey;
87367 const bd = bexdey - dexbey;
87368
87369 const abc = aez * bc - bez * ac + cez * ab;
87370 const bcd = bez * cd - cez * bd + dez * bc;
87371 const cda = cez * da + dez * ac + aez * cd;
87372 const dab = dez * ab + aez * bd + bez * da;
87373
87374 const alift = aex * aex + aey * aey + aez * aez;
87375 const blift = bex * bex + bey * bey + bez * bez;
87376 const clift = cex * cex + cey * cey + cez * cez;
87377 const dlift = dex * dex + dey * dey + dez * dez;
87378
87379 const det = (clift * dab - dlift * abc) + (alift * bcd - blift * cda);
87380
87381 const aezplus = Math.abs(aez);
87382 const bezplus = Math.abs(bez);
87383 const cezplus = Math.abs(cez);
87384 const dezplus = Math.abs(dez);
87385 const aexbeyplus = Math.abs(aexbey);
87386 const bexaeyplus = Math.abs(bexaey);
87387 const bexceyplus = Math.abs(bexcey);
87388 const cexbeyplus = Math.abs(cexbey);
87389 const cexdeyplus = Math.abs(cexdey);
87390 const dexceyplus = Math.abs(dexcey);
87391 const dexaeyplus = Math.abs(dexaey);
87392 const aexdeyplus = Math.abs(aexdey);
87393 const aexceyplus = Math.abs(aexcey);
87394 const cexaeyplus = Math.abs(cexaey);
87395 const bexdeyplus = Math.abs(bexdey);
87396 const dexbeyplus = Math.abs(dexbey);
87397 const permanent =
87398 ((cexdeyplus + dexceyplus) * bezplus + (dexbeyplus + bexdeyplus) * cezplus + (bexceyplus + cexbeyplus) * dezplus) * alift +
87399 ((dexaeyplus + aexdeyplus) * cezplus + (aexceyplus + cexaeyplus) * dezplus + (cexdeyplus + dexceyplus) * aezplus) * blift +
87400 ((aexbeyplus + bexaeyplus) * dezplus + (bexdeyplus + dexbeyplus) * aezplus + (dexaeyplus + aexdeyplus) * bezplus) * clift +
87401 ((bexceyplus + cexbeyplus) * aezplus + (cexaeyplus + aexceyplus) * bezplus + (aexbeyplus + bexaeyplus) * cezplus) * dlift;
87402
87403 const errbound = isperrboundA * permanent;
87404 if (det > errbound || -det > errbound) {
87405 return det;
87406 }
87407 return -insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent);
87408}
87409
87410function inspherefast(pax, pay, paz, pbx, pby, pbz, pcx, pcy, pcz, pdx, pdy, pdz, pex, pey, pez) {
87411 const aex = pax - pex;
87412 const bex = pbx - pex;
87413 const cex = pcx - pex;
87414 const dex = pdx - pex;
87415 const aey = pay - pey;
87416 const bey = pby - pey;
87417 const cey = pcy - pey;
87418 const dey = pdy - pey;
87419 const aez = paz - pez;
87420 const bez = pbz - pez;
87421 const cez = pcz - pez;
87422 const dez = pdz - pez;
87423
87424 const ab = aex * bey - bex * aey;
87425 const bc = bex * cey - cex * bey;
87426 const cd = cex * dey - dex * cey;
87427 const da = dex * aey - aex * dey;
87428 const ac = aex * cey - cex * aey;
87429 const bd = bex * dey - dex * bey;
87430
87431 const abc = aez * bc - bez * ac + cez * ab;
87432 const bcd = bez * cd - cez * bd + dez * bc;
87433 const cda = cez * da + dez * ac + aez * cd;
87434 const dab = dez * ab + aez * bd + bez * da;
87435
87436 const alift = aex * aex + aey * aey + aez * aez;
87437 const blift = bex * bex + bey * bey + bez * bez;
87438 const clift = cex * cex + cey * cey + cez * cez;
87439 const dlift = dex * dex + dey * dey + dez * dez;
87440
87441 return (clift * dab - dlift * abc) + (alift * bcd - blift * cda);
87442}
87443
87444
87445/***/ }),
87446
87447/***/ "./node_modules/robust-predicates/esm/orient2d.js":
87448/*!********************************************************!*\
87449 !*** ./node_modules/robust-predicates/esm/orient2d.js ***!
87450 \********************************************************/
87451/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
87452
87453"use strict";
87454__webpack_require__.r(__webpack_exports__);
87455/* harmony export */ __webpack_require__.d(__webpack_exports__, {
87456/* harmony export */ "orient2d": () => (/* binding */ orient2d),
87457/* harmony export */ "orient2dfast": () => (/* binding */ orient2dfast)
87458/* harmony export */ });
87459/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util.js */ "./node_modules/robust-predicates/esm/util.js");
87460
87461
87462const ccwerrboundA = (3 + 16 * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon;
87463const ccwerrboundB = (2 + 12 * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon;
87464const ccwerrboundC = (9 + 64 * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon;
87465
87466const B = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
87467const C1 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
87468const C2 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(12);
87469const D = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(16);
87470const u = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
87471
87472function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) {
87473 let acxtail, acytail, bcxtail, bcytail;
87474 let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3;
87475
87476 const acx = ax - cx;
87477 const bcx = bx - cx;
87478 const acy = ay - cy;
87479 const bcy = by - cy;
87480
87481 s1 = acx * bcy;
87482 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * acx;
87483 ahi = c - (c - acx);
87484 alo = acx - ahi;
87485 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bcy;
87486 bhi = c - (c - bcy);
87487 blo = bcy - bhi;
87488 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87489 t1 = acy * bcx;
87490 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * acy;
87491 ahi = c - (c - acy);
87492 alo = acy - ahi;
87493 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bcx;
87494 bhi = c - (c - bcx);
87495 blo = bcx - bhi;
87496 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
87497 _i = s0 - t0;
87498 bvirt = s0 - _i;
87499 B[0] = s0 - (_i + bvirt) + (bvirt - t0);
87500 _j = s1 + _i;
87501 bvirt = _j - s1;
87502 _0 = s1 - (_j - bvirt) + (_i - bvirt);
87503 _i = _0 - t1;
87504 bvirt = _0 - _i;
87505 B[1] = _0 - (_i + bvirt) + (bvirt - t1);
87506 u3 = _j + _i;
87507 bvirt = u3 - _j;
87508 B[2] = _j - (u3 - bvirt) + (_i - bvirt);
87509 B[3] = u3;
87510
87511 let det = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.estimate)(4, B);
87512 let errbound = ccwerrboundB * detsum;
87513 if (det >= errbound || -det >= errbound) {
87514 return det;
87515 }
87516
87517 bvirt = ax - acx;
87518 acxtail = ax - (acx + bvirt) + (bvirt - cx);
87519 bvirt = bx - bcx;
87520 bcxtail = bx - (bcx + bvirt) + (bvirt - cx);
87521 bvirt = ay - acy;
87522 acytail = ay - (acy + bvirt) + (bvirt - cy);
87523 bvirt = by - bcy;
87524 bcytail = by - (bcy + bvirt) + (bvirt - cy);
87525
87526 if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) {
87527 return det;
87528 }
87529
87530 errbound = ccwerrboundC * detsum + _util_js__WEBPACK_IMPORTED_MODULE_0__.resulterrbound * Math.abs(det);
87531 det += (acx * bcytail + bcy * acxtail) - (acy * bcxtail + bcx * acytail);
87532 if (det >= errbound || -det >= errbound) return det;
87533
87534 s1 = acxtail * bcy;
87535 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * acxtail;
87536 ahi = c - (c - acxtail);
87537 alo = acxtail - ahi;
87538 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bcy;
87539 bhi = c - (c - bcy);
87540 blo = bcy - bhi;
87541 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87542 t1 = acytail * bcx;
87543 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * acytail;
87544 ahi = c - (c - acytail);
87545 alo = acytail - ahi;
87546 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bcx;
87547 bhi = c - (c - bcx);
87548 blo = bcx - bhi;
87549 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
87550 _i = s0 - t0;
87551 bvirt = s0 - _i;
87552 u[0] = s0 - (_i + bvirt) + (bvirt - t0);
87553 _j = s1 + _i;
87554 bvirt = _j - s1;
87555 _0 = s1 - (_j - bvirt) + (_i - bvirt);
87556 _i = _0 - t1;
87557 bvirt = _0 - _i;
87558 u[1] = _0 - (_i + bvirt) + (bvirt - t1);
87559 u3 = _j + _i;
87560 bvirt = u3 - _j;
87561 u[2] = _j - (u3 - bvirt) + (_i - bvirt);
87562 u[3] = u3;
87563 const C1len = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(4, B, 4, u, C1);
87564
87565 s1 = acx * bcytail;
87566 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * acx;
87567 ahi = c - (c - acx);
87568 alo = acx - ahi;
87569 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bcytail;
87570 bhi = c - (c - bcytail);
87571 blo = bcytail - bhi;
87572 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87573 t1 = acy * bcxtail;
87574 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * acy;
87575 ahi = c - (c - acy);
87576 alo = acy - ahi;
87577 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bcxtail;
87578 bhi = c - (c - bcxtail);
87579 blo = bcxtail - bhi;
87580 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
87581 _i = s0 - t0;
87582 bvirt = s0 - _i;
87583 u[0] = s0 - (_i + bvirt) + (bvirt - t0);
87584 _j = s1 + _i;
87585 bvirt = _j - s1;
87586 _0 = s1 - (_j - bvirt) + (_i - bvirt);
87587 _i = _0 - t1;
87588 bvirt = _0 - _i;
87589 u[1] = _0 - (_i + bvirt) + (bvirt - t1);
87590 u3 = _j + _i;
87591 bvirt = u3 - _j;
87592 u[2] = _j - (u3 - bvirt) + (_i - bvirt);
87593 u[3] = u3;
87594 const C2len = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(C1len, C1, 4, u, C2);
87595
87596 s1 = acxtail * bcytail;
87597 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * acxtail;
87598 ahi = c - (c - acxtail);
87599 alo = acxtail - ahi;
87600 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bcytail;
87601 bhi = c - (c - bcytail);
87602 blo = bcytail - bhi;
87603 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87604 t1 = acytail * bcxtail;
87605 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * acytail;
87606 ahi = c - (c - acytail);
87607 alo = acytail - ahi;
87608 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bcxtail;
87609 bhi = c - (c - bcxtail);
87610 blo = bcxtail - bhi;
87611 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
87612 _i = s0 - t0;
87613 bvirt = s0 - _i;
87614 u[0] = s0 - (_i + bvirt) + (bvirt - t0);
87615 _j = s1 + _i;
87616 bvirt = _j - s1;
87617 _0 = s1 - (_j - bvirt) + (_i - bvirt);
87618 _i = _0 - t1;
87619 bvirt = _0 - _i;
87620 u[1] = _0 - (_i + bvirt) + (bvirt - t1);
87621 u3 = _j + _i;
87622 bvirt = u3 - _j;
87623 u[2] = _j - (u3 - bvirt) + (_i - bvirt);
87624 u[3] = u3;
87625 const Dlen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(C2len, C2, 4, u, D);
87626
87627 return D[Dlen - 1];
87628}
87629
87630function orient2d(ax, ay, bx, by, cx, cy) {
87631 const detleft = (ay - cy) * (bx - cx);
87632 const detright = (ax - cx) * (by - cy);
87633 const det = detleft - detright;
87634
87635 if (detleft === 0 || detright === 0 || (detleft > 0) !== (detright > 0)) return det;
87636
87637 const detsum = Math.abs(detleft + detright);
87638 if (Math.abs(det) >= ccwerrboundA * detsum) return det;
87639
87640 return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum);
87641}
87642
87643function orient2dfast(ax, ay, bx, by, cx, cy) {
87644 return (ay - cy) * (bx - cx) - (ax - cx) * (by - cy);
87645}
87646
87647
87648/***/ }),
87649
87650/***/ "./node_modules/robust-predicates/esm/orient3d.js":
87651/*!********************************************************!*\
87652 !*** ./node_modules/robust-predicates/esm/orient3d.js ***!
87653 \********************************************************/
87654/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
87655
87656"use strict";
87657__webpack_require__.r(__webpack_exports__);
87658/* harmony export */ __webpack_require__.d(__webpack_exports__, {
87659/* harmony export */ "orient3d": () => (/* binding */ orient3d),
87660/* harmony export */ "orient3dfast": () => (/* binding */ orient3dfast)
87661/* harmony export */ });
87662/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util.js */ "./node_modules/robust-predicates/esm/util.js");
87663
87664
87665const o3derrboundA = (7 + 56 * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon;
87666const o3derrboundB = (3 + 28 * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon;
87667const o3derrboundC = (26 + 288 * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon) * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon * _util_js__WEBPACK_IMPORTED_MODULE_0__.epsilon;
87668
87669const bc = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
87670const ca = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
87671const ab = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
87672const at_b = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
87673const at_c = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
87674const bt_c = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
87675const bt_a = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
87676const ct_a = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
87677const ct_b = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
87678const bct = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
87679const cat = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
87680const abt = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
87681const u = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(4);
87682
87683const _8 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
87684const _8b = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
87685const _16 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(8);
87686const _12 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(12);
87687
87688let fin = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(192);
87689let fin2 = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.vec)(192);
87690
87691function finadd(finlen, alen, a) {
87692 finlen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(finlen, fin, alen, a, fin2);
87693 const tmp = fin; fin = fin2; fin2 = tmp;
87694 return finlen;
87695}
87696
87697function tailinit(xtail, ytail, ax, ay, bx, by, a, b) {
87698 let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, t1, t0, u3, negate;
87699 if (xtail === 0) {
87700 if (ytail === 0) {
87701 a[0] = 0;
87702 b[0] = 0;
87703 return 1;
87704 } else {
87705 negate = -ytail;
87706 s1 = negate * ax;
87707 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * negate;
87708 ahi = c - (c - negate);
87709 alo = negate - ahi;
87710 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ax;
87711 bhi = c - (c - ax);
87712 blo = ax - bhi;
87713 a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87714 a[1] = s1;
87715 s1 = ytail * bx;
87716 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ytail;
87717 ahi = c - (c - ytail);
87718 alo = ytail - ahi;
87719 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bx;
87720 bhi = c - (c - bx);
87721 blo = bx - bhi;
87722 b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87723 b[1] = s1;
87724 return 2;
87725 }
87726 } else {
87727 if (ytail === 0) {
87728 s1 = xtail * ay;
87729 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * xtail;
87730 ahi = c - (c - xtail);
87731 alo = xtail - ahi;
87732 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ay;
87733 bhi = c - (c - ay);
87734 blo = ay - bhi;
87735 a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87736 a[1] = s1;
87737 negate = -xtail;
87738 s1 = negate * by;
87739 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * negate;
87740 ahi = c - (c - negate);
87741 alo = negate - ahi;
87742 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * by;
87743 bhi = c - (c - by);
87744 blo = by - bhi;
87745 b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87746 b[1] = s1;
87747 return 2;
87748 } else {
87749 s1 = xtail * ay;
87750 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * xtail;
87751 ahi = c - (c - xtail);
87752 alo = xtail - ahi;
87753 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ay;
87754 bhi = c - (c - ay);
87755 blo = ay - bhi;
87756 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87757 t1 = ytail * ax;
87758 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ytail;
87759 ahi = c - (c - ytail);
87760 alo = ytail - ahi;
87761 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ax;
87762 bhi = c - (c - ax);
87763 blo = ax - bhi;
87764 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
87765 _i = s0 - t0;
87766 bvirt = s0 - _i;
87767 a[0] = s0 - (_i + bvirt) + (bvirt - t0);
87768 _j = s1 + _i;
87769 bvirt = _j - s1;
87770 _0 = s1 - (_j - bvirt) + (_i - bvirt);
87771 _i = _0 - t1;
87772 bvirt = _0 - _i;
87773 a[1] = _0 - (_i + bvirt) + (bvirt - t1);
87774 u3 = _j + _i;
87775 bvirt = u3 - _j;
87776 a[2] = _j - (u3 - bvirt) + (_i - bvirt);
87777 a[3] = u3;
87778 s1 = ytail * bx;
87779 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ytail;
87780 ahi = c - (c - ytail);
87781 alo = ytail - ahi;
87782 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bx;
87783 bhi = c - (c - bx);
87784 blo = bx - bhi;
87785 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87786 t1 = xtail * by;
87787 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * xtail;
87788 ahi = c - (c - xtail);
87789 alo = xtail - ahi;
87790 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * by;
87791 bhi = c - (c - by);
87792 blo = by - bhi;
87793 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
87794 _i = s0 - t0;
87795 bvirt = s0 - _i;
87796 b[0] = s0 - (_i + bvirt) + (bvirt - t0);
87797 _j = s1 + _i;
87798 bvirt = _j - s1;
87799 _0 = s1 - (_j - bvirt) + (_i - bvirt);
87800 _i = _0 - t1;
87801 bvirt = _0 - _i;
87802 b[1] = _0 - (_i + bvirt) + (bvirt - t1);
87803 u3 = _j + _i;
87804 bvirt = u3 - _j;
87805 b[2] = _j - (u3 - bvirt) + (_i - bvirt);
87806 b[3] = u3;
87807 return 4;
87808 }
87809 }
87810}
87811
87812function tailadd(finlen, a, b, k, z) {
87813 let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, u3;
87814 s1 = a * b;
87815 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * a;
87816 ahi = c - (c - a);
87817 alo = a - ahi;
87818 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * b;
87819 bhi = c - (c - b);
87820 blo = b - bhi;
87821 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87822 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * k;
87823 bhi = c - (c - k);
87824 blo = k - bhi;
87825 _i = s0 * k;
87826 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * s0;
87827 ahi = c - (c - s0);
87828 alo = s0 - ahi;
87829 u[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo);
87830 _j = s1 * k;
87831 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * s1;
87832 ahi = c - (c - s1);
87833 alo = s1 - ahi;
87834 _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo);
87835 _k = _i + _0;
87836 bvirt = _k - _i;
87837 u[1] = _i - (_k - bvirt) + (_0 - bvirt);
87838 u3 = _j + _k;
87839 u[2] = _k - (u3 - _j);
87840 u[3] = u3;
87841 finlen = finadd(finlen, 4, u);
87842 if (z !== 0) {
87843 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * z;
87844 bhi = c - (c - z);
87845 blo = z - bhi;
87846 _i = s0 * z;
87847 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * s0;
87848 ahi = c - (c - s0);
87849 alo = s0 - ahi;
87850 u[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo);
87851 _j = s1 * z;
87852 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * s1;
87853 ahi = c - (c - s1);
87854 alo = s1 - ahi;
87855 _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo);
87856 _k = _i + _0;
87857 bvirt = _k - _i;
87858 u[1] = _i - (_k - bvirt) + (_0 - bvirt);
87859 u3 = _j + _k;
87860 u[2] = _k - (u3 - _j);
87861 u[3] = u3;
87862 finlen = finadd(finlen, 4, u);
87863 }
87864 return finlen;
87865}
87866
87867function orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent) {
87868 let finlen;
87869 let adxtail, bdxtail, cdxtail;
87870 let adytail, bdytail, cdytail;
87871 let adztail, bdztail, cdztail;
87872 let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, t1, t0, u3;
87873
87874 const adx = ax - dx;
87875 const bdx = bx - dx;
87876 const cdx = cx - dx;
87877 const ady = ay - dy;
87878 const bdy = by - dy;
87879 const cdy = cy - dy;
87880 const adz = az - dz;
87881 const bdz = bz - dz;
87882 const cdz = cz - dz;
87883
87884 s1 = bdx * cdy;
87885 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdx;
87886 ahi = c - (c - bdx);
87887 alo = bdx - ahi;
87888 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdy;
87889 bhi = c - (c - cdy);
87890 blo = cdy - bhi;
87891 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87892 t1 = cdx * bdy;
87893 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdx;
87894 ahi = c - (c - cdx);
87895 alo = cdx - ahi;
87896 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdy;
87897 bhi = c - (c - bdy);
87898 blo = bdy - bhi;
87899 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
87900 _i = s0 - t0;
87901 bvirt = s0 - _i;
87902 bc[0] = s0 - (_i + bvirt) + (bvirt - t0);
87903 _j = s1 + _i;
87904 bvirt = _j - s1;
87905 _0 = s1 - (_j - bvirt) + (_i - bvirt);
87906 _i = _0 - t1;
87907 bvirt = _0 - _i;
87908 bc[1] = _0 - (_i + bvirt) + (bvirt - t1);
87909 u3 = _j + _i;
87910 bvirt = u3 - _j;
87911 bc[2] = _j - (u3 - bvirt) + (_i - bvirt);
87912 bc[3] = u3;
87913 s1 = cdx * ady;
87914 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdx;
87915 ahi = c - (c - cdx);
87916 alo = cdx - ahi;
87917 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ady;
87918 bhi = c - (c - ady);
87919 blo = ady - bhi;
87920 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87921 t1 = adx * cdy;
87922 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * adx;
87923 ahi = c - (c - adx);
87924 alo = adx - ahi;
87925 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * cdy;
87926 bhi = c - (c - cdy);
87927 blo = cdy - bhi;
87928 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
87929 _i = s0 - t0;
87930 bvirt = s0 - _i;
87931 ca[0] = s0 - (_i + bvirt) + (bvirt - t0);
87932 _j = s1 + _i;
87933 bvirt = _j - s1;
87934 _0 = s1 - (_j - bvirt) + (_i - bvirt);
87935 _i = _0 - t1;
87936 bvirt = _0 - _i;
87937 ca[1] = _0 - (_i + bvirt) + (bvirt - t1);
87938 u3 = _j + _i;
87939 bvirt = u3 - _j;
87940 ca[2] = _j - (u3 - bvirt) + (_i - bvirt);
87941 ca[3] = u3;
87942 s1 = adx * bdy;
87943 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * adx;
87944 ahi = c - (c - adx);
87945 alo = adx - ahi;
87946 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdy;
87947 bhi = c - (c - bdy);
87948 blo = bdy - bhi;
87949 s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo);
87950 t1 = bdx * ady;
87951 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * bdx;
87952 ahi = c - (c - bdx);
87953 alo = bdx - ahi;
87954 c = _util_js__WEBPACK_IMPORTED_MODULE_0__.splitter * ady;
87955 bhi = c - (c - ady);
87956 blo = ady - bhi;
87957 t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo);
87958 _i = s0 - t0;
87959 bvirt = s0 - _i;
87960 ab[0] = s0 - (_i + bvirt) + (bvirt - t0);
87961 _j = s1 + _i;
87962 bvirt = _j - s1;
87963 _0 = s1 - (_j - bvirt) + (_i - bvirt);
87964 _i = _0 - t1;
87965 bvirt = _0 - _i;
87966 ab[1] = _0 - (_i + bvirt) + (bvirt - t1);
87967 u3 = _j + _i;
87968 bvirt = u3 - _j;
87969 ab[2] = _j - (u3 - bvirt) + (_i - bvirt);
87970 ab[3] = u3;
87971
87972 finlen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(
87973 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(
87974 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, bc, adz, _8), _8,
87975 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, ca, bdz, _8b), _8b, _16), _16,
87976 (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, ab, cdz, _8), _8, fin);
87977
87978 let det = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.estimate)(finlen, fin);
87979 let errbound = o3derrboundB * permanent;
87980 if (det >= errbound || -det >= errbound) {
87981 return det;
87982 }
87983
87984 bvirt = ax - adx;
87985 adxtail = ax - (adx + bvirt) + (bvirt - dx);
87986 bvirt = bx - bdx;
87987 bdxtail = bx - (bdx + bvirt) + (bvirt - dx);
87988 bvirt = cx - cdx;
87989 cdxtail = cx - (cdx + bvirt) + (bvirt - dx);
87990 bvirt = ay - ady;
87991 adytail = ay - (ady + bvirt) + (bvirt - dy);
87992 bvirt = by - bdy;
87993 bdytail = by - (bdy + bvirt) + (bvirt - dy);
87994 bvirt = cy - cdy;
87995 cdytail = cy - (cdy + bvirt) + (bvirt - dy);
87996 bvirt = az - adz;
87997 adztail = az - (adz + bvirt) + (bvirt - dz);
87998 bvirt = bz - bdz;
87999 bdztail = bz - (bdz + bvirt) + (bvirt - dz);
88000 bvirt = cz - cdz;
88001 cdztail = cz - (cdz + bvirt) + (bvirt - dz);
88002
88003 if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 &&
88004 adytail === 0 && bdytail === 0 && cdytail === 0 &&
88005 adztail === 0 && bdztail === 0 && cdztail === 0) {
88006 return det;
88007 }
88008
88009 errbound = o3derrboundC * permanent + _util_js__WEBPACK_IMPORTED_MODULE_0__.resulterrbound * Math.abs(det);
88010 det +=
88011 adz * (bdx * cdytail + cdy * bdxtail - (bdy * cdxtail + cdx * bdytail)) + adztail * (bdx * cdy - bdy * cdx) +
88012 bdz * (cdx * adytail + ady * cdxtail - (cdy * adxtail + adx * cdytail)) + bdztail * (cdx * ady - cdy * adx) +
88013 cdz * (adx * bdytail + bdy * adxtail - (ady * bdxtail + bdx * adytail)) + cdztail * (adx * bdy - ady * bdx);
88014 if (det >= errbound || -det >= errbound) {
88015 return det;
88016 }
88017
88018 const at_len = tailinit(adxtail, adytail, bdx, bdy, cdx, cdy, at_b, at_c);
88019 const bt_len = tailinit(bdxtail, bdytail, cdx, cdy, adx, ady, bt_c, bt_a);
88020 const ct_len = tailinit(cdxtail, cdytail, adx, ady, bdx, bdy, ct_a, ct_b);
88021
88022 const bctlen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(bt_len, bt_c, ct_len, ct_b, bct);
88023 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(bctlen, bct, adz, _16), _16);
88024
88025 const catlen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(ct_len, ct_a, at_len, at_c, cat);
88026 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(catlen, cat, bdz, _16), _16);
88027
88028 const abtlen = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.sum)(at_len, at_b, bt_len, bt_a, abt);
88029 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(abtlen, abt, cdz, _16), _16);
88030
88031 if (adztail !== 0) {
88032 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, bc, adztail, _12), _12);
88033 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(bctlen, bct, adztail, _16), _16);
88034 }
88035 if (bdztail !== 0) {
88036 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, ca, bdztail, _12), _12);
88037 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(catlen, cat, bdztail, _16), _16);
88038 }
88039 if (cdztail !== 0) {
88040 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(4, ab, cdztail, _12), _12);
88041 finlen = finadd(finlen, (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.scale)(abtlen, abt, cdztail, _16), _16);
88042 }
88043
88044 if (adxtail !== 0) {
88045 if (bdytail !== 0) {
88046 finlen = tailadd(finlen, adxtail, bdytail, cdz, cdztail);
88047 }
88048 if (cdytail !== 0) {
88049 finlen = tailadd(finlen, -adxtail, cdytail, bdz, bdztail);
88050 }
88051 }
88052 if (bdxtail !== 0) {
88053 if (cdytail !== 0) {
88054 finlen = tailadd(finlen, bdxtail, cdytail, adz, adztail);
88055 }
88056 if (adytail !== 0) {
88057 finlen = tailadd(finlen, -bdxtail, adytail, cdz, cdztail);
88058 }
88059 }
88060 if (cdxtail !== 0) {
88061 if (adytail !== 0) {
88062 finlen = tailadd(finlen, cdxtail, adytail, bdz, bdztail);
88063 }
88064 if (bdytail !== 0) {
88065 finlen = tailadd(finlen, -cdxtail, bdytail, adz, adztail);
88066 }
88067 }
88068
88069 return fin[finlen - 1];
88070}
88071
88072function orient3d(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) {
88073 const adx = ax - dx;
88074 const bdx = bx - dx;
88075 const cdx = cx - dx;
88076 const ady = ay - dy;
88077 const bdy = by - dy;
88078 const cdy = cy - dy;
88079 const adz = az - dz;
88080 const bdz = bz - dz;
88081 const cdz = cz - dz;
88082
88083 const bdxcdy = bdx * cdy;
88084 const cdxbdy = cdx * bdy;
88085
88086 const cdxady = cdx * ady;
88087 const adxcdy = adx * cdy;
88088
88089 const adxbdy = adx * bdy;
88090 const bdxady = bdx * ady;
88091
88092 const det =
88093 adz * (bdxcdy - cdxbdy) +
88094 bdz * (cdxady - adxcdy) +
88095 cdz * (adxbdy - bdxady);
88096
88097 const permanent =
88098 (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * Math.abs(adz) +
88099 (Math.abs(cdxady) + Math.abs(adxcdy)) * Math.abs(bdz) +
88100 (Math.abs(adxbdy) + Math.abs(bdxady)) * Math.abs(cdz);
88101
88102 const errbound = o3derrboundA * permanent;
88103 if (det > errbound || -det > errbound) {
88104 return det;
88105 }
88106
88107 return orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent);
88108}
88109
88110function orient3dfast(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) {
88111 const adx = ax - dx;
88112 const bdx = bx - dx;
88113 const cdx = cx - dx;
88114 const ady = ay - dy;
88115 const bdy = by - dy;
88116 const cdy = cy - dy;
88117 const adz = az - dz;
88118 const bdz = bz - dz;
88119 const cdz = cz - dz;
88120
88121 return adx * (bdy * cdz - bdz * cdy) +
88122 bdx * (cdy * adz - cdz * ady) +
88123 cdx * (ady * bdz - adz * bdy);
88124}
88125
88126
88127/***/ }),
88128
88129/***/ "./node_modules/robust-predicates/esm/util.js":
88130/*!****************************************************!*\
88131 !*** ./node_modules/robust-predicates/esm/util.js ***!
88132 \****************************************************/
88133/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
88134
88135"use strict";
88136__webpack_require__.r(__webpack_exports__);
88137/* harmony export */ __webpack_require__.d(__webpack_exports__, {
88138/* harmony export */ "epsilon": () => (/* binding */ epsilon),
88139/* harmony export */ "estimate": () => (/* binding */ estimate),
88140/* harmony export */ "negate": () => (/* binding */ negate),
88141/* harmony export */ "resulterrbound": () => (/* binding */ resulterrbound),
88142/* harmony export */ "scale": () => (/* binding */ scale),
88143/* harmony export */ "splitter": () => (/* binding */ splitter),
88144/* harmony export */ "sum": () => (/* binding */ sum),
88145/* harmony export */ "sum_three": () => (/* binding */ sum_three),
88146/* harmony export */ "vec": () => (/* binding */ vec)
88147/* harmony export */ });
88148const epsilon = 1.1102230246251565e-16;
88149const splitter = 134217729;
88150const resulterrbound = (3 + 8 * epsilon) * epsilon;
88151
88152// fast_expansion_sum_zeroelim routine from oritinal code
88153function sum(elen, e, flen, f, h) {
88154 let Q, Qnew, hh, bvirt;
88155 let enow = e[0];
88156 let fnow = f[0];
88157 let eindex = 0;
88158 let findex = 0;
88159 if ((fnow > enow) === (fnow > -enow)) {
88160 Q = enow;
88161 enow = e[++eindex];
88162 } else {
88163 Q = fnow;
88164 fnow = f[++findex];
88165 }
88166 let hindex = 0;
88167 if (eindex < elen && findex < flen) {
88168 if ((fnow > enow) === (fnow > -enow)) {
88169 Qnew = enow + Q;
88170 hh = Q - (Qnew - enow);
88171 enow = e[++eindex];
88172 } else {
88173 Qnew = fnow + Q;
88174 hh = Q - (Qnew - fnow);
88175 fnow = f[++findex];
88176 }
88177 Q = Qnew;
88178 if (hh !== 0) {
88179 h[hindex++] = hh;
88180 }
88181 while (eindex < elen && findex < flen) {
88182 if ((fnow > enow) === (fnow > -enow)) {
88183 Qnew = Q + enow;
88184 bvirt = Qnew - Q;
88185 hh = Q - (Qnew - bvirt) + (enow - bvirt);
88186 enow = e[++eindex];
88187 } else {
88188 Qnew = Q + fnow;
88189 bvirt = Qnew - Q;
88190 hh = Q - (Qnew - bvirt) + (fnow - bvirt);
88191 fnow = f[++findex];
88192 }
88193 Q = Qnew;
88194 if (hh !== 0) {
88195 h[hindex++] = hh;
88196 }
88197 }
88198 }
88199 while (eindex < elen) {
88200 Qnew = Q + enow;
88201 bvirt = Qnew - Q;
88202 hh = Q - (Qnew - bvirt) + (enow - bvirt);
88203 enow = e[++eindex];
88204 Q = Qnew;
88205 if (hh !== 0) {
88206 h[hindex++] = hh;
88207 }
88208 }
88209 while (findex < flen) {
88210 Qnew = Q + fnow;
88211 bvirt = Qnew - Q;
88212 hh = Q - (Qnew - bvirt) + (fnow - bvirt);
88213 fnow = f[++findex];
88214 Q = Qnew;
88215 if (hh !== 0) {
88216 h[hindex++] = hh;
88217 }
88218 }
88219 if (Q !== 0 || hindex === 0) {
88220 h[hindex++] = Q;
88221 }
88222 return hindex;
88223}
88224
88225function sum_three(alen, a, blen, b, clen, c, tmp, out) {
88226 return sum(sum(alen, a, blen, b, tmp), tmp, clen, c, out);
88227}
88228
88229// scale_expansion_zeroelim routine from oritinal code
88230function scale(elen, e, b, h) {
88231 let Q, sum, hh, product1, product0;
88232 let bvirt, c, ahi, alo, bhi, blo;
88233
88234 c = splitter * b;
88235 bhi = c - (c - b);
88236 blo = b - bhi;
88237 let enow = e[0];
88238 Q = enow * b;
88239 c = splitter * enow;
88240 ahi = c - (c - enow);
88241 alo = enow - ahi;
88242 hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo);
88243 let hindex = 0;
88244 if (hh !== 0) {
88245 h[hindex++] = hh;
88246 }
88247 for (let i = 1; i < elen; i++) {
88248 enow = e[i];
88249 product1 = enow * b;
88250 c = splitter * enow;
88251 ahi = c - (c - enow);
88252 alo = enow - ahi;
88253 product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo);
88254 sum = Q + product0;
88255 bvirt = sum - Q;
88256 hh = Q - (sum - bvirt) + (product0 - bvirt);
88257 if (hh !== 0) {
88258 h[hindex++] = hh;
88259 }
88260 Q = product1 + sum;
88261 hh = sum - (Q - product1);
88262 if (hh !== 0) {
88263 h[hindex++] = hh;
88264 }
88265 }
88266 if (Q !== 0 || hindex === 0) {
88267 h[hindex++] = Q;
88268 }
88269 return hindex;
88270}
88271
88272function negate(elen, e) {
88273 for (let i = 0; i < elen; i++) e[i] = -e[i];
88274 return elen;
88275}
88276
88277function estimate(elen, e) {
88278 let Q = e[0];
88279 for (let i = 1; i < elen; i++) Q += e[i];
88280 return Q;
88281}
88282
88283function vec(n) {
88284 return new Float64Array(n);
88285}
88286
88287
88288/***/ }),
88289
88290/***/ "./node_modules/robust-predicates/index.js":
88291/*!*************************************************!*\
88292 !*** ./node_modules/robust-predicates/index.js ***!
88293 \*************************************************/
88294/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
88295
88296"use strict";
88297__webpack_require__.r(__webpack_exports__);
88298/* harmony export */ __webpack_require__.d(__webpack_exports__, {
88299/* harmony export */ "incircle": () => (/* reexport safe */ _esm_incircle_js__WEBPACK_IMPORTED_MODULE_2__.incircle),
88300/* harmony export */ "incirclefast": () => (/* reexport safe */ _esm_incircle_js__WEBPACK_IMPORTED_MODULE_2__.incirclefast),
88301/* harmony export */ "insphere": () => (/* reexport safe */ _esm_insphere_js__WEBPACK_IMPORTED_MODULE_3__.insphere),
88302/* harmony export */ "inspherefast": () => (/* reexport safe */ _esm_insphere_js__WEBPACK_IMPORTED_MODULE_3__.inspherefast),
88303/* harmony export */ "orient2d": () => (/* reexport safe */ _esm_orient2d_js__WEBPACK_IMPORTED_MODULE_0__.orient2d),
88304/* harmony export */ "orient2dfast": () => (/* reexport safe */ _esm_orient2d_js__WEBPACK_IMPORTED_MODULE_0__.orient2dfast),
88305/* harmony export */ "orient3d": () => (/* reexport safe */ _esm_orient3d_js__WEBPACK_IMPORTED_MODULE_1__.orient3d),
88306/* harmony export */ "orient3dfast": () => (/* reexport safe */ _esm_orient3d_js__WEBPACK_IMPORTED_MODULE_1__.orient3dfast)
88307/* harmony export */ });
88308/* harmony import */ var _esm_orient2d_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./esm/orient2d.js */ "./node_modules/robust-predicates/esm/orient2d.js");
88309/* harmony import */ var _esm_orient3d_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./esm/orient3d.js */ "./node_modules/robust-predicates/esm/orient3d.js");
88310/* harmony import */ var _esm_incircle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./esm/incircle.js */ "./node_modules/robust-predicates/esm/incircle.js");
88311/* harmony import */ var _esm_insphere_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./esm/insphere.js */ "./node_modules/robust-predicates/esm/insphere.js");
88312
88313
88314
88315
88316
88317
88318
88319/***/ }),
88320
88321/***/ "./node_modules/stylis/src/Enum.js":
88322/*!*****************************************!*\
88323 !*** ./node_modules/stylis/src/Enum.js ***!
88324 \*****************************************/
88325/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
88326
88327"use strict";
88328__webpack_require__.r(__webpack_exports__);
88329/* harmony export */ __webpack_require__.d(__webpack_exports__, {
88330/* harmony export */ "CHARSET": () => (/* binding */ CHARSET),
88331/* harmony export */ "COMMENT": () => (/* binding */ COMMENT),
88332/* harmony export */ "COUNTER_STYLE": () => (/* binding */ COUNTER_STYLE),
88333/* harmony export */ "DECLARATION": () => (/* binding */ DECLARATION),
88334/* harmony export */ "DOCUMENT": () => (/* binding */ DOCUMENT),
88335/* harmony export */ "FONT_FACE": () => (/* binding */ FONT_FACE),
88336/* harmony export */ "FONT_FEATURE_VALUES": () => (/* binding */ FONT_FEATURE_VALUES),
88337/* harmony export */ "IMPORT": () => (/* binding */ IMPORT),
88338/* harmony export */ "KEYFRAMES": () => (/* binding */ KEYFRAMES),
88339/* harmony export */ "MEDIA": () => (/* binding */ MEDIA),
88340/* harmony export */ "MOZ": () => (/* binding */ MOZ),
88341/* harmony export */ "MS": () => (/* binding */ MS),
88342/* harmony export */ "NAMESPACE": () => (/* binding */ NAMESPACE),
88343/* harmony export */ "PAGE": () => (/* binding */ PAGE),
88344/* harmony export */ "RULESET": () => (/* binding */ RULESET),
88345/* harmony export */ "SUPPORTS": () => (/* binding */ SUPPORTS),
88346/* harmony export */ "VIEWPORT": () => (/* binding */ VIEWPORT),
88347/* harmony export */ "WEBKIT": () => (/* binding */ WEBKIT)
88348/* harmony export */ });
88349var MS = '-ms-'
88350var MOZ = '-moz-'
88351var WEBKIT = '-webkit-'
88352
88353var COMMENT = 'comm'
88354var RULESET = 'rule'
88355var DECLARATION = 'decl'
88356
88357var PAGE = '@page'
88358var MEDIA = '@media'
88359var IMPORT = '@import'
88360var CHARSET = '@charset'
88361var VIEWPORT = '@viewport'
88362var SUPPORTS = '@supports'
88363var DOCUMENT = '@document'
88364var NAMESPACE = '@namespace'
88365var KEYFRAMES = '@keyframes'
88366var FONT_FACE = '@font-face'
88367var COUNTER_STYLE = '@counter-style'
88368var FONT_FEATURE_VALUES = '@font-feature-values'
88369
88370
88371/***/ }),
88372
88373/***/ "./node_modules/stylis/src/Parser.js":
88374/*!*******************************************!*\
88375 !*** ./node_modules/stylis/src/Parser.js ***!
88376 \*******************************************/
88377/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
88378
88379"use strict";
88380__webpack_require__.r(__webpack_exports__);
88381/* harmony export */ __webpack_require__.d(__webpack_exports__, {
88382/* harmony export */ "comment": () => (/* binding */ comment),
88383/* harmony export */ "compile": () => (/* binding */ compile),
88384/* harmony export */ "declaration": () => (/* binding */ declaration),
88385/* harmony export */ "parse": () => (/* binding */ parse),
88386/* harmony export */ "ruleset": () => (/* binding */ ruleset)
88387/* harmony export */ });
88388/* harmony import */ var _Enum_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Enum.js */ "./node_modules/stylis/src/Enum.js");
88389/* harmony import */ var _Utility_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utility.js */ "./node_modules/stylis/src/Utility.js");
88390/* harmony import */ var _Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Tokenizer.js */ "./node_modules/stylis/src/Tokenizer.js");
88391
88392
88393
88394
88395/**
88396 * @param {string} value
88397 * @return {object[]}
88398 */
88399function compile (value) {
88400 return (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.dealloc)(parse('', null, null, null, [''], value = (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.alloc)(value), 0, [0], value))
88401}
88402
88403/**
88404 * @param {string} value
88405 * @param {object} root
88406 * @param {object?} parent
88407 * @param {string[]} rule
88408 * @param {string[]} rules
88409 * @param {string[]} rulesets
88410 * @param {number[]} pseudo
88411 * @param {number[]} points
88412 * @param {string[]} declarations
88413 * @return {object}
88414 */
88415function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {
88416 var index = 0
88417 var offset = 0
88418 var length = pseudo
88419 var atrule = 0
88420 var property = 0
88421 var previous = 0
88422 var variable = 1
88423 var scanning = 1
88424 var ampersand = 1
88425 var character = 0
88426 var type = ''
88427 var props = rules
88428 var children = rulesets
88429 var reference = rule
88430 var characters = type
88431
88432 while (scanning)
88433 switch (previous = character, character = (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.next)()) {
88434 // (
88435 case 40:
88436 if (previous != 108 && characters.charCodeAt(length - 1) == 58) {
88437 if ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.indexof)(characters += (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.delimit)(character), '&', '&\f'), '&\f') != -1)
88438 ampersand = -1
88439 break
88440 }
88441 // " ' [
88442 case 34: case 39: case 91:
88443 characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.delimit)(character)
88444 break
88445 // \t \n \r \s
88446 case 9: case 10: case 13: case 32:
88447 characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.whitespace)(previous)
88448 break
88449 // \
88450 case 92:
88451 characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.escaping)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.caret)() - 1, 7)
88452 continue
88453 // /
88454 case 47:
88455 switch ((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.peek)()) {
88456 case 42: case 47:
88457 ;(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.append)(comment((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.commenter)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.next)(), (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.caret)()), root, parent), declarations)
88458 break
88459 default:
88460 characters += '/'
88461 }
88462 break
88463 // {
88464 case 123 * variable:
88465 points[index++] = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(characters) * ampersand
88466 // } ; \0
88467 case 125 * variable: case 59: case 0:
88468 switch (character) {
88469 // \0 }
88470 case 0: case 125: scanning = 0
88471 // ;
88472 case 59 + offset:
88473 if (property > 0 && ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(characters) - length))
88474 (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.append)(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(characters, ' ', '') + ';', rule, parent, length - 2), declarations)
88475 break
88476 // @ ;
88477 case 59: characters += ';'
88478 // { rule/at-rule
88479 default:
88480 ;(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.append)(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)
88481
88482 if (character === 123)
88483 if (offset === 0)
88484 parse(characters, root, reference, reference, props, rulesets, length, points, children)
88485 else
88486 switch (atrule) {
88487 // d m s
88488 case 100: case 109: case 115:
88489 parse(value, reference, reference, rule && (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.append)(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)
88490 break
88491 default:
88492 parse(characters, reference, reference, reference, [''], children, 0, points, children)
88493 }
88494 }
88495
88496 index = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo
88497 break
88498 // :
88499 case 58:
88500 length = 1 + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(characters), property = previous
88501 default:
88502 if (variable < 1)
88503 if (character == 123)
88504 --variable
88505 else if (character == 125 && variable++ == 0 && (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.prev)() == 125)
88506 continue
88507
88508 switch (characters += (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.from)(character), character * variable) {
88509 // &
88510 case 38:
88511 ampersand = offset > 0 ? 1 : (characters += '\f', -1)
88512 break
88513 // ,
88514 case 44:
88515 points[index++] = ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(characters) - 1) * ampersand, ampersand = 1
88516 break
88517 // @
88518 case 64:
88519 // -
88520 if ((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.peek)() === 45)
88521 characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.delimit)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.next)())
88522
88523 atrule = (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.peek)(), offset = length = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(type = characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.identifier)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.caret)())), character++
88524 break
88525 // -
88526 case 45:
88527 if (previous === 45 && (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(characters) == 2)
88528 variable = 0
88529 }
88530 }
88531
88532 return rulesets
88533}
88534
88535/**
88536 * @param {string} value
88537 * @param {object} root
88538 * @param {object?} parent
88539 * @param {number} index
88540 * @param {number} offset
88541 * @param {string[]} rules
88542 * @param {number[]} points
88543 * @param {string} type
88544 * @param {string[]} props
88545 * @param {string[]} children
88546 * @param {number} length
88547 * @return {object}
88548 */
88549function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {
88550 var post = offset - 1
88551 var rule = offset === 0 ? rules : ['']
88552 var size = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.sizeof)(rule)
88553
88554 for (var i = 0, j = 0, k = 0; i < index; ++i)
88555 for (var x = 0, y = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.substr)(value, post + 1, post = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.abs)(j = points[i])), z = value; x < size; ++x)
88556 if (z = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.trim)(j > 0 ? rule[x] + ' ' + y : (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(y, /&\f/g, rule[x])))
88557 props[k++] = z
88558
88559 return (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.node)(value, root, parent, offset === 0 ? _Enum_js__WEBPACK_IMPORTED_MODULE_2__.RULESET : type, props, children, length)
88560}
88561
88562/**
88563 * @param {number} value
88564 * @param {object} root
88565 * @param {object?} parent
88566 * @return {object}
88567 */
88568function comment (value, root, parent) {
88569 return (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.node)(value, root, parent, _Enum_js__WEBPACK_IMPORTED_MODULE_2__.COMMENT, (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.from)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.char)()), (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.substr)(value, 2, -2), 0)
88570}
88571
88572/**
88573 * @param {string} value
88574 * @param {object} root
88575 * @param {object?} parent
88576 * @param {number} length
88577 * @return {object}
88578 */
88579function declaration (value, root, parent, length) {
88580 return (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.node)(value, root, parent, _Enum_js__WEBPACK_IMPORTED_MODULE_2__.DECLARATION, (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.substr)(value, 0, length), (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.substr)(value, length + 1, -1), length)
88581}
88582
88583
88584/***/ }),
88585
88586/***/ "./node_modules/stylis/src/Serializer.js":
88587/*!***********************************************!*\
88588 !*** ./node_modules/stylis/src/Serializer.js ***!
88589 \***********************************************/
88590/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
88591
88592"use strict";
88593__webpack_require__.r(__webpack_exports__);
88594/* harmony export */ __webpack_require__.d(__webpack_exports__, {
88595/* harmony export */ "serialize": () => (/* binding */ serialize),
88596/* harmony export */ "stringify": () => (/* binding */ stringify)
88597/* harmony export */ });
88598/* harmony import */ var _Enum_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Enum.js */ "./node_modules/stylis/src/Enum.js");
88599/* harmony import */ var _Utility_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utility.js */ "./node_modules/stylis/src/Utility.js");
88600
88601
88602
88603/**
88604 * @param {object[]} children
88605 * @param {function} callback
88606 * @return {string}
88607 */
88608function serialize (children, callback) {
88609 var output = ''
88610 var length = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.sizeof)(children)
88611
88612 for (var i = 0; i < length; i++)
88613 output += callback(children[i], i, children, callback) || ''
88614
88615 return output
88616}
88617
88618/**
88619 * @param {object} element
88620 * @param {number} index
88621 * @param {object[]} children
88622 * @param {function} callback
88623 * @return {string}
88624 */
88625function stringify (element, index, children, callback) {
88626 switch (element.type) {
88627 case _Enum_js__WEBPACK_IMPORTED_MODULE_1__.IMPORT: case _Enum_js__WEBPACK_IMPORTED_MODULE_1__.DECLARATION: return element.return = element.return || element.value
88628 case _Enum_js__WEBPACK_IMPORTED_MODULE_1__.COMMENT: return ''
88629 case _Enum_js__WEBPACK_IMPORTED_MODULE_1__.KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'
88630 case _Enum_js__WEBPACK_IMPORTED_MODULE_1__.RULESET: element.value = element.props.join(',')
88631 }
88632
88633 return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.strlen)(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''
88634}
88635
88636
88637/***/ }),
88638
88639/***/ "./node_modules/stylis/src/Tokenizer.js":
88640/*!**********************************************!*\
88641 !*** ./node_modules/stylis/src/Tokenizer.js ***!
88642 \**********************************************/
88643/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
88644
88645"use strict";
88646__webpack_require__.r(__webpack_exports__);
88647/* harmony export */ __webpack_require__.d(__webpack_exports__, {
88648/* harmony export */ "alloc": () => (/* binding */ alloc),
88649/* harmony export */ "caret": () => (/* binding */ caret),
88650/* harmony export */ "char": () => (/* binding */ char),
88651/* harmony export */ "character": () => (/* binding */ character),
88652/* harmony export */ "characters": () => (/* binding */ characters),
88653/* harmony export */ "column": () => (/* binding */ column),
88654/* harmony export */ "commenter": () => (/* binding */ commenter),
88655/* harmony export */ "copy": () => (/* binding */ copy),
88656/* harmony export */ "dealloc": () => (/* binding */ dealloc),
88657/* harmony export */ "delimit": () => (/* binding */ delimit),
88658/* harmony export */ "delimiter": () => (/* binding */ delimiter),
88659/* harmony export */ "escaping": () => (/* binding */ escaping),
88660/* harmony export */ "identifier": () => (/* binding */ identifier),
88661/* harmony export */ "length": () => (/* binding */ length),
88662/* harmony export */ "line": () => (/* binding */ line),
88663/* harmony export */ "next": () => (/* binding */ next),
88664/* harmony export */ "node": () => (/* binding */ node),
88665/* harmony export */ "peek": () => (/* binding */ peek),
88666/* harmony export */ "position": () => (/* binding */ position),
88667/* harmony export */ "prev": () => (/* binding */ prev),
88668/* harmony export */ "slice": () => (/* binding */ slice),
88669/* harmony export */ "token": () => (/* binding */ token),
88670/* harmony export */ "tokenize": () => (/* binding */ tokenize),
88671/* harmony export */ "tokenizer": () => (/* binding */ tokenizer),
88672/* harmony export */ "whitespace": () => (/* binding */ whitespace)
88673/* harmony export */ });
88674/* harmony import */ var _Utility_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utility.js */ "./node_modules/stylis/src/Utility.js");
88675
88676
88677var line = 1
88678var column = 1
88679var length = 0
88680var position = 0
88681var character = 0
88682var characters = ''
88683
88684/**
88685 * @param {string} value
88686 * @param {object | null} root
88687 * @param {object | null} parent
88688 * @param {string} type
88689 * @param {string[] | string} props
88690 * @param {object[] | string} children
88691 * @param {number} length
88692 */
88693function node (value, root, parent, type, props, children, length) {
88694 return {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}
88695}
88696
88697/**
88698 * @param {object} root
88699 * @param {object} props
88700 * @return {object}
88701 */
88702function copy (root, props) {
88703 return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.assign)(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)
88704}
88705
88706/**
88707 * @return {number}
88708 */
88709function char () {
88710 return character
88711}
88712
88713/**
88714 * @return {number}
88715 */
88716function prev () {
88717 character = position > 0 ? (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(characters, --position) : 0
88718
88719 if (column--, character === 10)
88720 column = 1, line--
88721
88722 return character
88723}
88724
88725/**
88726 * @return {number}
88727 */
88728function next () {
88729 character = position < length ? (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(characters, position++) : 0
88730
88731 if (column++, character === 10)
88732 column = 1, line++
88733
88734 return character
88735}
88736
88737/**
88738 * @return {number}
88739 */
88740function peek () {
88741 return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(characters, position)
88742}
88743
88744/**
88745 * @return {number}
88746 */
88747function caret () {
88748 return position
88749}
88750
88751/**
88752 * @param {number} begin
88753 * @param {number} end
88754 * @return {string}
88755 */
88756function slice (begin, end) {
88757 return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.substr)(characters, begin, end)
88758}
88759
88760/**
88761 * @param {number} type
88762 * @return {number}
88763 */
88764function token (type) {
88765 switch (type) {
88766 // \0 \t \n \r \s whitespace token
88767 case 0: case 9: case 10: case 13: case 32:
88768 return 5
88769 // ! + , / > @ ~ isolate token
88770 case 33: case 43: case 44: case 47: case 62: case 64: case 126:
88771 // ; { } breakpoint token
88772 case 59: case 123: case 125:
88773 return 4
88774 // : accompanied token
88775 case 58:
88776 return 3
88777 // " ' ( [ opening delimit token
88778 case 34: case 39: case 40: case 91:
88779 return 2
88780 // ) ] closing delimit token
88781 case 41: case 93:
88782 return 1
88783 }
88784
88785 return 0
88786}
88787
88788/**
88789 * @param {string} value
88790 * @return {any[]}
88791 */
88792function alloc (value) {
88793 return line = column = 1, length = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.strlen)(characters = value), position = 0, []
88794}
88795
88796/**
88797 * @param {any} value
88798 * @return {any}
88799 */
88800function dealloc (value) {
88801 return characters = '', value
88802}
88803
88804/**
88805 * @param {number} type
88806 * @return {string}
88807 */
88808function delimit (type) {
88809 return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.trim)(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))
88810}
88811
88812/**
88813 * @param {string} value
88814 * @return {string[]}
88815 */
88816function tokenize (value) {
88817 return dealloc(tokenizer(alloc(value)))
88818}
88819
88820/**
88821 * @param {number} type
88822 * @return {string}
88823 */
88824function whitespace (type) {
88825 while (character = peek())
88826 if (character < 33)
88827 next()
88828 else
88829 break
88830
88831 return token(type) > 2 || token(character) > 3 ? '' : ' '
88832}
88833
88834/**
88835 * @param {string[]} children
88836 * @return {string[]}
88837 */
88838function tokenizer (children) {
88839 while (next())
88840 switch (token(character)) {
88841 case 0: (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.append)(identifier(position - 1), children)
88842 break
88843 case 2: ;(0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.append)(delimit(character), children)
88844 break
88845 default: ;(0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.append)((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.from)(character), children)
88846 }
88847
88848 return children
88849}
88850
88851/**
88852 * @param {number} index
88853 * @param {number} count
88854 * @return {string}
88855 */
88856function escaping (index, count) {
88857 while (--count && next())
88858 // not 0-9 A-F a-f
88859 if (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))
88860 break
88861
88862 return slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))
88863}
88864
88865/**
88866 * @param {number} type
88867 * @return {number}
88868 */
88869function delimiter (type) {
88870 while (next())
88871 switch (character) {
88872 // ] ) " '
88873 case type:
88874 return position
88875 // " '
88876 case 34: case 39:
88877 if (type !== 34 && type !== 39)
88878 delimiter(character)
88879 break
88880 // (
88881 case 40:
88882 if (type === 41)
88883 delimiter(type)
88884 break
88885 // \
88886 case 92:
88887 next()
88888 break
88889 }
88890
88891 return position
88892}
88893
88894/**
88895 * @param {number} type
88896 * @param {number} index
88897 * @return {number}
88898 */
88899function commenter (type, index) {
88900 while (next())
88901 // //
88902 if (type + character === 47 + 10)
88903 break
88904 // /*
88905 else if (type + character === 42 + 42 && peek() === 47)
88906 break
88907
88908 return '/*' + slice(index, position - 1) + '*' + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.from)(type === 47 ? type : next())
88909}
88910
88911/**
88912 * @param {number} index
88913 * @return {string}
88914 */
88915function identifier (index) {
88916 while (!token(peek()))
88917 next()
88918
88919 return slice(index, position)
88920}
88921
88922
88923/***/ }),
88924
88925/***/ "./node_modules/stylis/src/Utility.js":
88926/*!********************************************!*\
88927 !*** ./node_modules/stylis/src/Utility.js ***!
88928 \********************************************/
88929/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
88930
88931"use strict";
88932__webpack_require__.r(__webpack_exports__);
88933/* harmony export */ __webpack_require__.d(__webpack_exports__, {
88934/* harmony export */ "abs": () => (/* binding */ abs),
88935/* harmony export */ "append": () => (/* binding */ append),
88936/* harmony export */ "assign": () => (/* binding */ assign),
88937/* harmony export */ "charat": () => (/* binding */ charat),
88938/* harmony export */ "combine": () => (/* binding */ combine),
88939/* harmony export */ "from": () => (/* binding */ from),
88940/* harmony export */ "hash": () => (/* binding */ hash),
88941/* harmony export */ "indexof": () => (/* binding */ indexof),
88942/* harmony export */ "match": () => (/* binding */ match),
88943/* harmony export */ "replace": () => (/* binding */ replace),
88944/* harmony export */ "sizeof": () => (/* binding */ sizeof),
88945/* harmony export */ "strlen": () => (/* binding */ strlen),
88946/* harmony export */ "substr": () => (/* binding */ substr),
88947/* harmony export */ "trim": () => (/* binding */ trim)
88948/* harmony export */ });
88949/**
88950 * @param {number}
88951 * @return {number}
88952 */
88953var abs = Math.abs
88954
88955/**
88956 * @param {number}
88957 * @return {string}
88958 */
88959var from = String.fromCharCode
88960
88961/**
88962 * @param {object}
88963 * @return {object}
88964 */
88965var assign = Object.assign
88966
88967/**
88968 * @param {string} value
88969 * @param {number} length
88970 * @return {number}
88971 */
88972function hash (value, length) {
88973 return (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3)
88974}
88975
88976/**
88977 * @param {string} value
88978 * @return {string}
88979 */
88980function trim (value) {
88981 return value.trim()
88982}
88983
88984/**
88985 * @param {string} value
88986 * @param {RegExp} pattern
88987 * @return {string?}
88988 */
88989function match (value, pattern) {
88990 return (value = pattern.exec(value)) ? value[0] : value
88991}
88992
88993/**
88994 * @param {string} value
88995 * @param {(string|RegExp)} pattern
88996 * @param {string} replacement
88997 * @return {string}
88998 */
88999function replace (value, pattern, replacement) {
89000 return value.replace(pattern, replacement)
89001}
89002
89003/**
89004 * @param {string} value
89005 * @param {string} search
89006 * @return {number}
89007 */
89008function indexof (value, search) {
89009 return value.indexOf(search)
89010}
89011
89012/**
89013 * @param {string} value
89014 * @param {number} index
89015 * @return {number}
89016 */
89017function charat (value, index) {
89018 return value.charCodeAt(index) | 0
89019}
89020
89021/**
89022 * @param {string} value
89023 * @param {number} begin
89024 * @param {number} end
89025 * @return {string}
89026 */
89027function substr (value, begin, end) {
89028 return value.slice(begin, end)
89029}
89030
89031/**
89032 * @param {string} value
89033 * @return {number}
89034 */
89035function strlen (value) {
89036 return value.length
89037}
89038
89039/**
89040 * @param {any[]} value
89041 * @return {number}
89042 */
89043function sizeof (value) {
89044 return value.length
89045}
89046
89047/**
89048 * @param {any} value
89049 * @param {any[]} array
89050 * @return {any}
89051 */
89052function append (value, array) {
89053 return array.push(value), value
89054}
89055
89056/**
89057 * @param {string[]} array
89058 * @param {function} callback
89059 * @return {string}
89060 */
89061function combine (array, callback) {
89062 return array.map(callback).join('')
89063}
89064
89065
89066/***/ }),
89067
89068/***/ "./package.json":
89069/*!**********************!*\
89070 !*** ./package.json ***!
89071 \**********************/
89072/***/ ((module) => {
89073
89074"use strict";
89075module.exports = JSON.parse('{"name":"mermaid","version":"9.1.5","description":"Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.","main":"dist/mermaid.core.js","module":"dist/mermaid.esm.min.mjs","exports":{".":{"require":"./dist/mermaid.core.js","import":"./dist/mermaid.esm.min.mjs"},"./*":"./*"},"keywords":["diagram","markdown","flowchart","sequence diagram","gantt","class diagram","git graph"],"scripts":{"build:development":"webpack --mode development --progress --color","build:production":"webpack --mode production --progress --color","build":"concurrently \\"yarn build:development\\" \\"yarn build:production\\"","postbuild":"documentation build src/mermaidAPI.js src/config.js src/defaultConfig.js --shallow -f md --markdown-toc false > docs/Setup.md","build:watch":"yarn build:development --watch","release":"yarn build","lint":"eslint ./ --ext .js,.json,.html","lint:fix":"yarn lint --fix","e2e:depr":"yarn lint && jest e2e --config e2e/jest.config.js","cypress":"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 serve --config ./.webpack/webpack.config.e2e.babel.js","ci":"jest src/.*","test":"yarn lint && jest src/.*","test:watch":"jest --watch src","prepublishOnly":"yarn build && yarn test","prepare":"husky install && yarn build","pre-commit":"lint-staged"},"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":"^6.0.0","d3":"^7.0.0","dagre":"^0.8.5","dagre-d3":"^0.6.4","dompurify":"2.3.10","graphlib":"^2.1.8","khroma":"^2.0.0","moment-mini":"2.24.0","stylis":"^4.0.10"},"devDependencies":{"@applitools/eyes-cypress":"^3.25.7","@babel/core":"^7.14.6","@babel/eslint-parser":"^7.14.7","@babel/preset-env":"^7.14.7","@babel/register":"^7.14.5","@commitlint/cli":"^17.0.0","@commitlint/config-conventional":"^17.0.0","babel-jest":"^28.0.3","babel-loader":"^8.2.2","concurrently":"^7.0.0","coveralls":"^3.0.2","css-to-string-loader":"^0.1.3","cypress":"9.7.0","cypress-image-snapshot":"^4.0.1","documentation":"13.2.0","eslint":"^8.4.1","eslint-config-prettier":"^8.3.0","eslint-plugin-cypress":"^2.12.1","eslint-plugin-html":"^7.1.0","eslint-plugin-jest":"^26.0.0","eslint-plugin-jsdoc":"^39.1.0","eslint-plugin-json":"^3.1.0","eslint-plugin-markdown":"^3.0.0","eslint-plugin-prettier":"^4.0.0","husky":"^8.0.0","identity-obj-proxy":"^3.0.0","jest":"^28.0.3","jest-environment-jsdom":"^28.0.2","jison":"^0.4.18","js-base64":"3.7.2","lint-staged":"^13.0.0","moment":"^2.23.0","path-browserify":"^1.0.1","prettier":"^2.3.2","prettier-plugin-jsdoc":"^0.3.30","start-server-and-test":"^1.12.6","terser-webpack-plugin":"^5.2.4","webpack":"^5.53.0","webpack-cli":"^4.7.2","webpack-dev-server":"^4.3.0","webpack-merge":"^5.8.0","webpack-node-externals":"^3.0.0"},"resolutions":{"d3":"^7.0.0"},"files":["dist"],"sideEffects":["**/*.css","**/*.scss"]}');
89076
89077/***/ })
89078
89079/******/ });
89080/************************************************************************/
89081/******/ // The module cache
89082/******/ var __webpack_module_cache__ = {};
89083/******/
89084/******/ // The require function
89085/******/ function __webpack_require__(moduleId) {
89086/******/ // Check if module is in cache
89087/******/ var cachedModule = __webpack_module_cache__[moduleId];
89088/******/ if (cachedModule !== undefined) {
89089/******/ return cachedModule.exports;
89090/******/ }
89091/******/ // Create a new module (and put it into the cache)
89092/******/ var module = __webpack_module_cache__[moduleId] = {
89093/******/ id: moduleId,
89094/******/ loaded: false,
89095/******/ exports: {}
89096/******/ };
89097/******/
89098/******/ // Execute the module function
89099/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
89100/******/
89101/******/ // Flag the module as loaded
89102/******/ module.loaded = true;
89103/******/
89104/******/ // Return the exports of the module
89105/******/ return module.exports;
89106/******/ }
89107/******/
89108/******/ // expose the module cache
89109/******/ __webpack_require__.c = __webpack_module_cache__;
89110/******/
89111/************************************************************************/
89112/******/ /* webpack/runtime/compat get default export */
89113/******/ (() => {
89114/******/ // getDefaultExport function for compatibility with non-harmony modules
89115/******/ __webpack_require__.n = (module) => {
89116/******/ var getter = module && module.__esModule ?
89117/******/ () => (module['default']) :
89118/******/ () => (module);
89119/******/ __webpack_require__.d(getter, { a: getter });
89120/******/ return getter;
89121/******/ };
89122/******/ })();
89123/******/
89124/******/ /* webpack/runtime/define property getters */
89125/******/ (() => {
89126/******/ // define getter functions for harmony exports
89127/******/ __webpack_require__.d = (exports, definition) => {
89128/******/ for(var key in definition) {
89129/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
89130/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
89131/******/ }
89132/******/ }
89133/******/ };
89134/******/ })();
89135/******/
89136/******/ /* webpack/runtime/global */
89137/******/ (() => {
89138/******/ __webpack_require__.g = (function() {
89139/******/ if (typeof globalThis === 'object') return globalThis;
89140/******/ try {
89141/******/ return this || new Function('return this')();
89142/******/ } catch (e) {
89143/******/ if (typeof window === 'object') return window;
89144/******/ }
89145/******/ })();
89146/******/ })();
89147/******/
89148/******/ /* webpack/runtime/hasOwnProperty shorthand */
89149/******/ (() => {
89150/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
89151/******/ })();
89152/******/
89153/******/ /* webpack/runtime/make namespace object */
89154/******/ (() => {
89155/******/ // define __esModule on exports
89156/******/ __webpack_require__.r = (exports) => {
89157/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
89158/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
89159/******/ }
89160/******/ Object.defineProperty(exports, '__esModule', { value: true });
89161/******/ };
89162/******/ })();
89163/******/
89164/******/ /* webpack/runtime/node module decorator */
89165/******/ (() => {
89166/******/ __webpack_require__.nmd = (module) => {
89167/******/ module.paths = [];
89168/******/ if (!module.children) module.children = [];
89169/******/ return module;
89170/******/ };
89171/******/ })();
89172/******/
89173/************************************************************************/
89174/******/
89175/******/ // module cache are used so entry inlining is disabled
89176/******/ // startup
89177/******/ // Load entry module and return exports
89178/******/ var __webpack_exports__ = __webpack_require__(__webpack_require__.s = "./src/mermaid.js");
89179/******/ __webpack_exports__ = __webpack_exports__["default"];
89180/******/
89181/******/ return __webpack_exports__;
89182/******/ })()
89183;
89184});
89185//# sourceMappingURL=mermaid.js.map
\No newline at end of file