mascot-vis 3.0.1 → 3.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/mascot-esm.js +186 -0
- package/dist/mascot-umd.js +128 -27723
- package/package.json +3 -5
- package/dist/mascot-es.js +0 -27745
- package/dist/mascot-min.js +0 -186
package/dist/mascot-min.js
DELETED
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
/* version: 3.0.0 */
|
|
2
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("d3")):"function"==typeof define&&define.amd?define(["exports","d3"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).msc={},e.d3)}(this,(function(e,t){"use strict";function r(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var n=r(t);const i={canvas:void 0,getCanvas:function(){return window?(void 0===this.canvas&&(this.canvas=document.createElement("canvas")),this.canvas):null},getContext:function(){var e=this.getCanvas();return e?e.getContext("2d"):null}};class s{constructor(e,t,r){this._id="predicate_"+Pt(),this._type=e||o.POINT,this._variableType=t,this._variableName=r,this._value=void 0}get type(){return this._type}get value(){return this._value}set value(e){this._value=e}get id(){return this._id}get variableType(){return this._variableType}get variableName(){return this._variableName}}const o=Object.freeze({POINT:"point",INTERVAL:"interval",LIST:"list"});class a extends s{constructor(e,t,r){super(e,t,r)}testElement(e){let t;if("attribute"==this._variableType){if(!e.dataScope)return!1;t=e.dataScope.getAttributeValue(this._variableName)}else t=e[this._variableName];return this._value[0]<=t&&this._value[1]>=t}testTuple(e){if("attribute"==this._variableType){let t=e[this._variableName];return this._value[0]<=t&&this._value[1]>=t}return!1}}class l extends s{constructor(e,t,r){super(e,t,r)}addValue(e){this._value||(this._value=[]),this._value.push(e)}resetValue(){this._value=void 0}testElement(e){if("attribute"==this._variableType){if(!e.dataScope)return!1;let t=e.dataScope.getAttributeValue(this._variableName);return this._value.indexOf(t)>=0}return this._value.indexOf(e[this._variableName])>=0}testTuple(e){if("attribute"==this._variableType){let t=e[this._variableName];return this._value.indexOf(t)>=0}return!1}}class u extends s{constructor(e,t,r){super(e,t,r)}testElement(e){if("attribute"==this._variableType){if(!e.dataScope)return!1;return e.dataScope.getAttributeValue(this._variableName)==this._value}return e[this._variableName]==this._value}testTuple(e){if("attribute"==this._variableType){let t=e[this._variableName];return this._value===t}return!1}}function c(e){let t,r="attribute"in e?"attribute":"property",n=e[r];switch(e.type){case o.LIST:t=new l(e.type,r,n);break;case o.INTERVAL:t=new a(e.type,r,n);break;case o.POINT:default:t=new u(e.type,r,n)}return e.value&&(t.value=e.value),t}function h(e,t){for(let r of t){if(!c(r).testElement(e))return!1}return!0}class d{constructor(e){this._id=e+"_"+Pt(),this._type=e,this._inputVars=[],this._outputVars=[]}run(){console.log("-",this._type,this.outputVar.element?this.outputVar.element.type:"",this.outputVar.channel?this.outputVar.channel:"")}get id(){return this._id}get type(){return this._type}get inputVars(){return this._inputVars}get outputVars(){return this._outputVars}get outputVar(){return this._outputVars[0]}isIsolated(){return 0==this._inputVars.length&&0==this._outputVars.length}}const f=Object.freeze({CONDUIT:"conduit",ENCODER:"encoder",LAYOUT:"layout",LINK_PLACER:"linkRouter",CONSTRAINT:"constraint",EVAL_BBOX:"evalBBox",EVAL_REFBOUNDS:"evalRefBounds",AFFIXER:"affixer",ALIGNER:"aligner",DOMAIN_BUILDER:"domainBuilder",SCALE_BUILDER:"scaleBuilder",AXIS_PATH_PLACER:"axisPathPlacer",AXIS_TICKS_PLACER:"axisTicksPlacer",AXIS_LABELS_PLACER:"axisLabelsPlacer",AXIS_TITLE_PLACER:"axisTitlePlacer",GRIDLINES_PLACER:"gridlinesPlacer",GRID_LAYOUT:"gridLayout",STACK_LAYOUT:"stackLayout",PACK_LAYOUT:"packLayout",FORCE_LAYOUT:"forceLayout",DIRECTED_LAYOUT:"directedLayout",TIDY_TREE_LAYOUT:"tidyTreeLayout",TREEMAP_LAYOUT:"treemapLayout",STRATA_LAYOUT:"strataLayout",CIRCULAR_LAYOUT:"circularLayout",CLUSTER_LAYOUT:"clusterLayout",BIN_TRANSFORMER:"binTransformer",FILTER_TRANSFORMER:"filterTransformer",KDE_TRANSFORMER:"kdeTransformer",TARGET_EVALUATOR:"targetEvaluator"});class p{constructor(e){this._id="v_"+Pt(),this._type=e,this._incomings=[],this._outgoings=[],this._undirected=[]}get id(){return this._id}get incomingEdges(){return this._incomings}get outgoingEdges(){return this._outgoings}get undirectedEdges(){return this._undirected}get type(){return this._type}get incomingDataflow(){for(let e of this._incomings)if(e.fromNode&&e.fromNode instanceof d)return e.fromNode;return null}isIsolated(){return 0==this._incomings.length&&0==this._outgoings.length}}const _=Object.freeze({CHANNEL:"channel",PROPERTY:"property",ATTRIBUTE:"attribute",ITEMS:"items",DATASCOPE:"datascope",DOMAIN:"domain",BOUNDS:"bounds",ORDER:"order",SCALE:"scale",COND_ENCODING:"condEncoding",AFFIXATION:"affixation",ALIGNMENT:"alignment",TRIGGER:"trigger"});class g{constructor(e,t){this._event=t,this._type=e}get event(){return this._event}get type(){return this._type}}const y=Object.freeze({ELEMENT:"element",MOUSE:"mouse",ATTRIBUTE:"attribute",WIDGET:"widget",KEYBOARD:"keyboard"});function m(e,t,r){const n=document.getElementById(e),i=n.createSVGPoint();i.x=t,i.y=r;const s=i.matrixTransform(n.getScreenCTM().inverse());return[s.x,s.y]}function b(e,t,r,n,i){const s=i*Math.PI/180,o=e-r,a=t-n;return{x:o*Math.cos(s)-a*Math.sin(s)+r,y:o*Math.sin(s)+a*Math.cos(s)+n}}Object.freeze({INPUT:"input",HOVER:"hover",BRUSH:"brush",BRUSH_X:"brushX",BRUSH_Y:"brushY",CLICK:"click"});const v={svg:void 0,getSVG:function(){return window?(void 0===this.svg&&(this.svg=document.createElement("svg")),this.svg):null}},x={canvas:void 0,getCanvas:function(){return window?(void 0===this.canvas&&(this.canvas=document.createElement("canvas")),this.canvas):null},getContext:function(){var e=this.getCanvas();return e?e.getContext("2d"):null}};function E(e,t,r,i,s){for(let o of e){let e=o.listener?o.listener:r,a=e.type===Lt.Axis?e.boundsWithoutTitle:e.bounds,l=[[a.left,a.top],[a.right,a.bottom]],u="brushX"===o.event?n.brushX():"brushY"===o.event?n.brushY():n.brush();u.extent(l).on("brush end",(e=>{let t,n;if(e&&e.selection)switch(o.event){case"brushX":t=[e.selection[0],e.selection[1]],n=void 0;break;case"brushY":t=void 0,n=[e.selection[0],e.selection[1]];break;default:t=[e.selection[0][0],e.selection[1][0]],n=[e.selection[0][1],e.selection[1][1]]}else t=void 0,n=void 0;o.mouseEvent={xInterval:t,yInterval:n},r.onChange(_.TRIGGER,o),i._render(r,s)})),t.append("g").attr("class","brush").call(u)}}function w(e,t,r,n,i){t.on("mousemove",(s=>{for(let n of e){let[e,i]=m(t.attr("id"),s.clientX,s.clientY),o=q(r,n.element.type,e,i);o?n.isCumulative&&!n.elements.includes(o)?n.elements.push(o):n.elements=[o]:n.elements=[],n.mouseEvent={x:e,y:i},r.onChange(_.TRIGGER,n)}n._render(r,i)}))}function A(e,t,r,i,s){for(let t of e)if(t.type===y.WIDGET){console.log(t.id),document.getElementById(t.id).addEventListener("input",(function(){C(t,r,i,s)}))}else t.type===y.KEYBOARD&&n.select("body").on("keydown",(e=>{e.key===t.key&&C(t,r,i,s)}))}function C(e,t,r,n){if(Array.isArray(e.callback))for(let i=0;i<e.callback.length;i++)e.callback[i](),r._render(t,n,e.animation[i]);else e.callback(),r._render(t,n,e.animation)}function R(e,t,r,n,i){t.on("click",(s=>{for(let n of e){let[e,i]=m(t.attr("id"),s.clientX,s.clientY),o=q(r,n.element.type,e,i);o?n.isCumulative&&!n.elements.includes(o)?n.elements.push(o):n.elements=[o]:n.elements=[],n.mouseEvent={x:e,y:i},r.onChange(_.TRIGGER,n)}n._render(r,i)}))}class k{constructor(e,t,r,n){this._x=e+r/2,this._y=t+n/2,this._width=r,this._height=n}translate(e,t){this._x+=e,this._y+=t}toJSON(){let e={};return e.x=this._x,e.y=this._y,e.width=this._width,e.height=this._height,e}union(e){let t=Math.min(this.left,e.left),r=Math.min(this.top,e.top),n=Math.max(this.right,e.right),i=Math.max(this.bottom,e.bottom);return new k(t,r,n-t,i-r)}clone(){return new k(this.left,this.top,this._width,this._height)}get left(){return this._x-this._width/2}set left(e){this._x=e+this._width/2}get right(){return this._x+this._width/2}set right(e){this._x=e-this._width/2}get top(){return this._y-this._height/2}set top(e){this._y=e+this._height/2}get bottom(){return this._y+this._height/2}set bottom(e){this._y=e-this._height/2}get x(){return this._x}get y(){return this._y}get center(){return this.x}get middle(){return this.y}get width(){return this._width}setWidth(e,t){switch(t){case N.RIGHT:this._x=this.right-e/2;break;case N.CENTER:this._width=2*e;break;default:this._x=this.left+e/2}this._width=e}get height(){return this._height}setHeight(e,t){switch(t){case N.TOP:this._y=this.top+e/2;break;case N.MIDDLE:this._height=2*e;break;default:this._y=this.bottom-e/2}this._height=e}contains(e,t){return this.left<=e&&this.right>=e&&this.top<=t&&this.bottom>=t}overlap(e){return!(this.right<e.left||this.bottom<e.top||this.left>e.right||this.top>e.bottom)}}function T(e){let t=e[0].clone();for(let r=1;r<e.length;r++)t=t.union(e[r]);return t}function S(e){return T(("vertex"==e[0].type||"segment"==e[0].type?e.map((e=>e.parent)):e).map((e=>e.refBounds?e.refBounds:e.bounds)))}function O(e){return T(("vertex"==e[0].type||"segment"==e[0].type?e.map((e=>e.parent)):e).map((e=>e.bounds)))}function I(e){let t=G(e);for(let e of t)e._updateBounds();let r=[];for(let e of t)e.parent&&!r.includes(e.parent)&&r.push(e.parent);for(let e of r)I(e)}const N=Object.freeze({TOP:"top",LEFT:"left",RIGHT:"right",BOTTOM:"bottom",CENTER:"center",MIDDLE:"middle"});class L{constructor(e){this._svgId=e,this._compMap={},this._decoMap={},this._brushCreated=0}render(e,t){let r=t||{};this._render(e,r),this._registerEvents(e,r)}_render(e,t,r){for(let e in this._decoMap)this._decoMap[e].remove(),delete this._decoMap[e];this._removed={};for(let e in this._compMap)this._removed[e]=1;this._renderItem(e,t,r);for(let e in this._removed)this._compMap[e].remove(),delete this._compMap[e]}_registerEvents(e,t){let r=n.select("#"+this._svgId);for(let n in e.interactionTriggers){let i=Object.values(e.interactionTriggers[n]);switch(n){case"click":r.on("click",null),R(i,r,e,this,t);break;case"brush":case"brushX":case"brushY":E(i,r,e,this,t);break;case"hover":w(i,r,e,this,t);break;case"input":A(i,0,e,this,t)}}}clear(){let e=document.getElementById(this._svgId);for(;e.firstChild;)e.firstChild.remove();this._compMap={},this._decoMap={}}_renderItem(e,t,r){let i,s=e.id,o=e.parent;i=o&&o.id&&o.id in this._compMap?n.select("#"+this._svgId).select("#"+o.id):n.select("#"+this._svgId),s in this._compMap?(delete this._removed[s],delete this._removed[s+"-bg"]):(e.type===Lt.PointText&&e.hasBackground()&&(this._compMap[s+"-bg"]=i.append("rect")),this._compMap[s]=i.append(this._getSVGElementType(e))),e.type==Lt.Gridlines&&this._compMap[s].lower();let a=this._compMap[s];if(a.attr("id",s),e.classId&&a.attr("class",e.classId),e.type==Lt.Scene&&n.select("#"+this._svgId).style("background",e.fillColor?e.fillColor:"#fff"),"vertex"!=e.type){if(r&&(a=a.transition().delay(r.delay?r.delay:0).duration(r.duration?r.duration:0)),[Lt.Path,Lt.BezierCurve,Lt.BundledPath,Lt.Polygon,Lt.Link,Lt.Pie,Lt.Line,Lt.Area,Lt.Ring,Lt.Arc,Lt.Gridlines].indexOf(e.type)>=0)a.attr("d",e.getSVGPathData()),e.closed||a.style("fill","none"),(s.includes("axis")||s.includes("gridlines"))&&a.style("shape-rendering","crispEdges"),e.type===Lt.BundledPath&&a.style("mix-blend-mode","multiply");else if(e.type==Lt.Circle)a.attr("cx",e.x),a.attr("cy",e.y),a.attr("r",e.radius);else if(e.type==Lt.Rect){let t=e.bounds;a.attr("x",t.left).attr("y",t.top).attr("width",t.width).attr("height",t.height)}else if(e.type==Lt.PointText){if(a.attr("text-anchor",this._getTextAnchor(e.anchor[0])).attr("alignment-baseline",this._getTextAnchor(e.anchor[1])).attr("dominant-baseline",this._getTextAnchor(e.anchor[1])).text(e.text).attr("x",e.x).attr("y",e.y),e.hasBackground()){let t=this._compMap[s+"-bg"],r=e.bounds;t.attr("x",r.left-5).attr("y",r.top-5).attr("width",r.width+10).attr("height",r.height+10).attr("rx",5).attr("ry",5).style("fill",e.backgroundColor).style("stroke",e.borderColor).style("strokeWidth",e.borderWidth)}}else e.type==Lt.Image&&a.attr("href",e.src).attr("x",e.x).attr("y",e.y).attr("width",e.width).attr("height",e.height);for(let t in e.styles)if(void 0!==e.styles[t])if(t.indexOf("Color")>0&&e.styles[t].type==Lt.LinearGradient){n.select("#"+this._svgId).select("defs").empty()&&n.select("#"+this._svgId).append("defs");let r=n.select("defs"),i=e.styles[t];if(r.select("#"+i.id).empty()){let e=r.append("linearGradient").attr("id",i.id);e.attr("x1",i.x1+"%").attr("x2",i.x2+"%").attr("y1",i.y1+"%").attr("y2",i.y2+"%");for(let t of i.stops)e.append("stop").attr("offset",t.offset+"%").style("stop-color",t.color).style("stop-opacity",t.opacity)}a.style(V[t],"url(#"+i.id+")")}else if(a.style(V[t],e.styles[t]),"visibility"===t&&e.type===Lt.PointText&&e.hasBackground()){this._compMap[s+"-bg"].style(V[t],e.styles[t])}if(e._rotate&&a.attr("transform","rotate("+e._rotate.join(" ")+")"),e.vertices&&this._renderVertices(e),[Lt.Circle].includes(e.type)&&t&&t.bounds){let t=e.bounds;e.layout&&"grid"==e.layout.type&&this._renderLayout(e),e.id in this._decoMap||(this._decoMap[e.id]=n.select("#"+this._svgId).append("rect").attr("class","deco")),this._decoMap[e.id].attr("x",t.left).attr("y",t.top).attr("width",t.width).attr("height",t.height).attr("fill","none").attr("stroke","blue").attr("stroke-width","1px").attr("stroke-dasharray","5,5")}else if(B(e)&&t&&t.refBounds){let t=e.refBounds;t&&(e.id in this._decoMap||(this._decoMap[e.id]=n.select("#"+this._svgId).append("rect").attr("class","deco")),this._decoMap[e.id].attr("x",t.left).attr("y",t.top).attr("width",t.width).attr("height",t.height).attr("fill","none").attr("stroke","blue").attr("stroke-width","1px").attr("stroke-dasharray","5,5"))}if(e.children)for(let n of e.children)this._renderItem(n,t,r)}}_renderVertices(e){let t=e.id+"-vertices";if(t in this._compMap)delete this._removed[t];else{let r=e.parent,i=r?r.id:this._svgId;this._compMap[t]=n.select("#"+i).append("g").attr("id",t)}if(0===e.vertices.map((e=>e.shape)).filter((e=>void 0!==e)).length)return void this._compMap[t].style("visible","hidden");this._compMap[t].style("visible","visible");let r=e.vertices.filter((e=>void 0!==e.shape));for(let e of r){let r=t+"-"+e.id;r in this._compMap?e.shape!==this._compMap[r].node().tagName?(this._compMap[r].remove(),this._compMap[r]=n.select("#"+t).append(e.shape).attr("id",r),delete this._removed[r]):delete this._removed[r]:this._compMap[r]=n.select("#"+t).append(e.shape).attr("id",r),"rect"==e.shape?n.select("#"+r).attr("x",e.x-e.width/2).attr("y",e.y-e.height/2).attr("width",e.width).attr("height",e.height):"circle"==e.shape&&n.select("#"+r).attr("cx",e.x).attr("cy",e.y).attr("r",e.radius),n.select("#"+r).style("fill",e.fillColor).style("opacity",e.opacity).style("stroke-width",e.strokeWidth).style("stroke",e.strokeColor)}}_renderLayout(e){let t=e.id+"-grid";t in this._decoMap||(this._decoMap[t]=n.select("#"+this._svgId).append("g").attr("id",t).attr("class","deco"));let r=e.layout.cellBounds;e.layout.rowGap,this._decoMap[t].selectAll("rect").remove();for(let e of r)this._decoMap[t].append("rect").attr("x",e.left).attr("y",e.top).attr("width",e.width).attr("height",e.height).attr("stroke","blue").attr("stroke-width","1px").attr("stroke-dasharray","5,5").attr("fill","none")}_getTextAnchor(e){switch(e){case N.TOP:return"text-before-edge";case N.BOTTOM:return"auto";case N.LEFT:return"start";case N.RIGHT:return"end";case N.CENTER:case N.MIDDLE:return"middle";default:return e}}_getSVGElementType(e){switch(e.type){case Lt.Rect:return"rect";case Lt.Collection:case Lt.Group:case Lt.Glyph:case Lt.Scene:case Lt.Axis:case Lt.Legend:case Lt.Composite:return"g";case Lt.Area:case Lt.Path:case Lt.Polygon:case Lt.Ring:case Lt.Pie:case Lt.Arc:case Lt.BezierCurve:case Lt.BundledPath:case Lt.Line:case Lt.Gridlines:return"path";case Lt.Circle:return"circle";case Lt.PointText:return"text";case"vertex":if("circle"==e.shape)return"circle";if("rect"==e.shape)return"rect";throw"argument exception";case"image":return"image"}}}const V=Object.freeze({fillColor:"fill",strokeColor:"stroke",strokeWidth:"stroke-width",fillOpacity:"fill-opacity",strokeOpacity:"stroke-opacity",strokeDash:"stroke-dasharray",opacity:"opacity",fontSize:"font-size",fontFamily:"font-family",fontWeight:"font-weight",visibility:"visibility"});class P{constructor(e){let t=e||{};this._stops=[],this.type=Lt.LinearGradient,this.id=this.type+Pt(),this.x1="x1"in t?t.x1:0,this.x2="x2"in t?t.x2:100,this.y1="y1"in t?t.y1:0,this.y2="y2"in t?t.y2:0}toJSON(){let e={};return e.type=this.type,e.id=this.id,e.x1=this.x1,e.x2=this.x2,e.y1=this.y1,e.y2=this.y2,e.stops=this._stops,e}addStop(e,t,r){this._stops.push({offset:e,color:t,opacity:r})}get stops(){return this._stops}}class D{constructor(e){if(this._dataScope=void 0,this._type="type"in e?e.type:Lt.Mark,this._id=e.id?e.id:this._type+"_"+Pt(),this._classId=void 0,this._bounds=void 0,this._rotate=void 0,this._refBounds=void 0,this._styles={},void 0!==e)for(let t in V)t in e&&(this.styles[t]=e[t])}get scene(){return Y(this)}set strokeColor(e){this.styles.strokeColor=e}get strokeColor(){return this.styles.strokeColor}set strokeWidth(e){this.styles.strokeWidth=e}get strokeWidth(){return this.styles.strokeWidth}set strokeDash(e){this.styles.strokeDash=e}get strokeDash(){return this.styles.strokeDash}set fillColor(e){this.styles.fillColor=e}get fillColor(){return this.styles.fillColor}get rotation(){return this._rotate}get id(){return this._id}set id(e){this.getScene()?(delete this.getScene()._itemMap[this._id],this._id=e,this.getScene()._itemMap[e]=this):this._id=e}get classId(){return this._classId?this._classId:this._id}set classId(e){this._classId=e}get type(){return this._type}get bounds(){return this._bounds||this._updateBounds(),this._bounds}get refBounds(){return this._refBounds?this._refBounds:this.bounds}contains(e,t){if(!this.bounds)return!1;if(!this.bounds.contains(e,t))return!1;switch(this.type){case Lt.Rect:case Lt.PointText:return!0;case Lt.Circle:return Math.sqrt(Math.pow(e-this.x,2)+Math.pow(t-this.y,2))<=this.radius+this.strokeWidth;case Lt.Path:{let r=i.getContext(),n=new Path2D(this.getSVGPathData());return r.lineWidth=Math.max(this.strokeWidth,2.5),r.stroke(n),this.closed?r.isPointInPath(n,e,t):r.isPointInStroke(n,e,t)}case Lt.Line:{let r=i.getContext(),n=new Path2D(this.getSVGPathData());return r.lineWidth=Math.max(this.strokeWidth,2.5),r.stroke(n),r.isPointInStroke(n,e,t)}default:{let r=i.getContext(),n=new Path2D(this.getSVGPathData());return r.isPointInPath(n,e,t)}}}set dataScope(e){this._dataScope=e}get dataScope(){return this._dataScope}get styles(){return this._styles}set styles(e){this._styles=e}set visibility(e){this.styles.visibility=e}get visibility(){return this.styles.visibility?this.styles.visibility:"visible"}get opacity(){return"opacity"in this.styles?this.styles.opacity:1}set opacity(e){this.styles.opacity=e}copyPropertiesTo(e){e.styles=Object.assign({},this.styles),this._dataScope&&(e._dataScope=this._dataScope.clone())}}function B(e){return e instanceof D&&e.type!==Lt.Gridlines}const M=Object.freeze({Area:"area",Rect:"rect",Ellipse:"ellipse",Circle:"circle",Pie:"pie",Ring:"ring",Arc:"arc",Line:"line",Path:"path",Image:"image",PointText:"text",Polygon:"polygon",BezierCurve:"bezierCurve"});function G(e,t){let r=Y(e),n=t||r;if("vertex"===e.type){return j(e,F(n,[{property:"classId",value:e.parent.classId}]))}if("segment"===e.type){return z(e,F(n,[{property:"classId",value:e.parent.classId}]))}return e.classId?F(n,[{property:"classId",value:e.classId}]):[e]}function j(e,t){if(!e.classId){if(e.dataScope){let r=e.parent;if(!r)throw new Error("vertex has no parent mark");let n=[];if(r.type===Lt.Area){let i=r.vertices.indexOf(e)<r.vertices.length/2;for(let e of t){let t=i?e.vertices.slice(0,e.vertices.length/2):e.vertices.slice(e.vertices.length/2);n=n.concat(t.filter((e=>e.dataScope)))}}else for(let e of t)n=n.concat(e.vertices.filter((e=>e.dataScope)));return n}{let r=e.parent;if(!r)throw new Error("vertex has no parent mark");let n=r.vertices.indexOf(e),i=[];for(let e of t)i.push(e.vertices[n]);return i}}}function z(e,t){if(e.dataScope){if(!e.parent)throw new Error("segment has no parent mark");let r=[];for(let e of t)r=r.concat(e.segments);return r}{let r=e.parent;if(!r)throw new Error("segment has no parent mark");let n=r.segments.indexOf(e),i=[];for(let e of t)i.push(e.segments[n]);return i}}function F(e,t){let r=[];return W(e,t,r),r}function U(e,t){let r=e.children.filter((e=>e.type==Lt.Collection));if(0!==r.length)for(let e of r){let r=e;for(;r&&r.dataScope;){if(r.dataScope.hasAttribute(t))return r;r=r.children?r.children[0]:void 0}}}function H(e){return e.type==Lt.Collection?e:e.parent?H(e.parent):void 0}function W(e,t,r){if(e&&"axis"!=e.type&&"legend"!=e.type&&"gridlines"!=e.type)if(h(e,t)&&r.push(e),e.vertices)for(let n of e.vertices.concat(e.segments))h(n,t)&&r.push(n);else if(e.children&&e.children.length>0)for(let n of e.children)W(n,t,r)}function Y(e){let t=e;for(;t;){if(t.type==Lt.Scene)return t;t=t.parent}}function X(e){let t=e;for("vertex"!=t.type&&"segment"!=t.type||(t=t.parent);t.parent&&[Lt.Collection,Lt.Glyph].includes(t.parent.type);)t=t.parent;return t}function q(e,t,r,n){let i=F(e,[{property:"type",value:t}]);for(let e of i)if(K(e,r,n))return e}function K(e,t,r){switch(e.type){case Lt.Path:case Lt.BezierCurve:case Lt.Line:{let n=i.getContext(),s=new Path2D(e.getSVGPathData());return n.lineWidth=Math.max(e.strokeWidth,2.5),n.stroke(s),e.closed?n.isPointInPath(s,t,r):n.isPointInStroke(s,t,r)}case Lt.Circle:{let n=e.x,i=e.y;if(e.rotation){let t=b(n,i,e.rotation[1],e.rotation[2],e.rotation[0]);n=t.x,i=t.y}return Math.sqrt(Math.pow(t-n,2)+Math.pow(r-i,2))<=e.radius+e.strokeWidth}default:return e.bounds.contains(t,r)}}function Z(e,t){let r=[];if($(e,r),t){let e={};for(let t of r)e[t.classId]=t;return Object.values(e)}return r}function $(e,t){if(B(e))t.push(e);else if(e.type==Lt.Collection&&e.children)for(let r of e.children)$(r,t);else if(e.type==Lt.Glyph&&e.children)for(let r of e.children)$(r,t);else if(e.type==Lt.Composite&&e.children)for(let r of e.children)$(r,t)}class J{constructor(){this._refElements=[]}addRefElement(e){this._refElements.push(e)}get refElements(){return this._refElements}clearRefElements(){this._refElements=[]}}const Q=Object.freeze({GRID:"grid",STACK:"stack",PACKING:"packing",FORCE:"force",DIRECTED:"directedgraph",TIDYTREE:"tidytree",TREEMAP:"treemap",STRATA:"strata",CIRCULAR:"circular",CLUSTER:"cluster"});function ee(e,t){return!!(e.startsWith("h")&&[N.LEFT,N.CENTER,N.RIGHT].indexOf(t)>=0)||(!!(e.startsWith("v")&&[N.TOP,N.MIDDLE,N.BOTTOM].indexOf(t)>=0)||(console.warn("Invalid alignment:",t),!1))}class te extends p{constructor(e,t){super(e),this._condEnc=t}get condEncoding(){return this._condEnc}}const re=Object.freeze({RowFirst:"rowFirst",ColumnFirst:"columnFirst"}),ne=Object.freeze({TopLeft:"topLeft",TopRight:"topRight",BottomLeft:"bottomLeft",BottomRight:"bottomRight"}),ie={HORIZONTAL:"horizontal",VERTICAL:"vertical",ANGULAR:"angular",RADIAL:"radial"},se={Left2Right:"l2r",Right2Left:"r2l",Top2Bottom:"t2b",Bottom2Top:"b2t"},oe=Object.freeze({CLOCKWISE:"clockwise",ANTI_CLOCKWISE:"anti-clockwise"}),ae=Object.freeze({INWARD:"inward",OUTWARD:"outward"});class le{constructor(e,t,r,n){this.type="vertex",this._id=n,this._x=e,this._y=t,this._dataScope=void 0,this.parent=r,this.shape=void 0,this.width=0,this.height=0,this.radius=0,this.fillColor="#555",this.opacity=1,this.strokeWidth=0,this.strokeColor="#aaa",this._polarAngle=void 0}get dataScope(){return this._dataScope}set dataScope(e){this._dataScope=e}get bounds(){switch(this.shape){case"rect":return new k(this.x-this.width/2,this.y-this.height/2,this.width,this.height);case"circle":return new k(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius);default:return new k(this.x-.5,this.y-.5,1,1)}}get id(){return this.parent.id+"_v_"+this._id}_clone(e){let t=new le(this.x,this.y,e,this._id);return this._dataScope&&(t._dataScope=this._dataScope.clone()),t.shape=this.shape,t.width=this.width,t.height=this.height,t.radius=this.radius,t.fillColor=this.fillColor,t.opacity=this.opacity,t.strokeWidth=this.strokeWidth,t.strokeColor=this.strokeColor,t}get polarAngle(){return this._polarAngle}get scene(){return this.parent.scene}get x(){return this._x}get y(){return this._y}}le.styles=["vxShape","vxWidth","vxHeight","vxRadius","vxFillColor","vxStrokeColor","vxStrokeWidth","vxOpacity"];class ue{constructor(e,t,r,n){this.type="segment",this._id=n,this.vertex1=e,this.vertex2=t,this.dataScope=void 0,this.parent=r}get id(){return this.parent.id+"_s_"+this._id}get x(){return(this.vertex1.x+this.vertex2.x)/2}get y(){return(this.vertex1.y+this.vertex2.y)/2}get scene(){return this.parent.scene}}class ce extends D{constructor(e){super(e),this._type="type"in e?e.type:Lt.Path,this.vertices=[],this.vertexCounter=0,this._sortBy={},this.segmentCounter=0,this.segments=[],this.anchor=void 0,this.closed=!1,this.curveMode="linear",this._vxShape=void 0,this._vxWidth=0,this._vxHeight=0,this._vxRadius=0,this._vxFillColor="#555555",this._vxStrokeColor="#aaaaaa",this._vxStrokeWidth=0,this._vxOpacity=1;for(let t of le.styles)t in e&&(this["_"+t]=e[t]);"vertices"in e&&this._setVertices(e.vertices),this._sourceAnchor="sourceAnchor"in e?e.sourceAnchor:["center","middle"],this._targetAnchor="targetAnchor"in e?e.targetAnchor:["center","middle"],this._sourceOffset="sourceOffset"in e?e.sourceOffset:[0,0],this._targetOffset="targetOffset"in e?e.targetOffset:[0,0],this._strength="strength"in e?e.strength:.85,"strokeColor"in this.styles||(this.styles.strokeColor="#ccc"),"fillColor"in this.styles||(this.styles.fillColor="none"),"strokeWidth"in this.styles||(this.styles.strokeWidth=1),"strokeDash"in this.styles||(this.styles.strokeDash="none")}_setVertices(e){let t;this.vertices=[],this.segments=[],this.vertexCounter=0,this.segmentCounter=0;for(let r=0;r<e.length;r++)if(r!=e.length-1||e[r][0]!==e[0][0]||e[r][1]!==e[0][1]||this.type!==Lt.Path){t=new le(e[r][0],e[r][1],this,this.vertexCounter++);for(let e of le.styles)if(this[e]){let r=e.replace("vx","");t[r[0].toLowerCase()+r.slice(1)]=this[e]}this.vertices.push(t),r>0&&this.segments.push(new ue(this.vertices[r-1],this.vertices[r],this,this.segmentCounter++))}let r=e[0],n=e[e.length-1];(r[0]===n[0]&&r[1]===n[1]||this.type===Lt.Rect)&&(this.closed=!0,"fillColor"in this.styles||(this.styles.fillColor="#fff"),this.segments.push(new ue(this.vertices[this.vertices.length-1],this.vertices[0],this,this.segmentCounter++)))}copyPropertiesTo(e){e.attrs=Object.assign({},this.attrs),e.styles=Object.assign({},this.styles);for(let t of le.styles)this["_"+t]&&(e["_"+t]=this["_"+t]);this._dataScope&&(e._dataScope=this._dataScope.clone()),e.closed=this.closed,e.curveMode=this.curveMode,e.vertices=[],e.segments=[];for(let t of this.vertices)e.vertices.push(t._clone(e));e.segmentCounter=0;for(let t=1;t<e.vertices.length;t++)e.segments.push(new ue(e.vertices[t-1],e.vertices[t],e,e.segmentCounter++));e.closed&&e.segments.push(new ue(e.vertices[e.vertices.length-1],e.vertices[0],e,e.segmentCounter++)),e._sourceAnchor=this._sourceAnchor.slice(),e._targetAnchor=this._targetAnchor.slice(),e._sourceOffset=this._sourceOffset.slice(),e._targetOffset=this._targetOffset.slice(),e._beta=this._beta}get bounds(){return this._bounds||this._updateBounds(),this._bounds}get x(){return this.bounds.x}get y(){return this.bounds.y}get strokeColor(){return this.styles.strokeColor}get strokeWidth(){return this.styles.strokeWidth}get fillColor(){return this.styles.fillColor}set fillColor(e){this.styles.fillColor=e}get strokeDash(){return this.styles.strokeDash}set strokeDash(e){this.styles.strokeDash=e}resize(e,t,r,n){let i=this.bounds,s=0===i.width?1:i.width,o=0===i.height?1:i.height;if("right"===r)for(let t of this.vertices)t._x=i.right-e/s*(i.right-t.x);else for(let t of this.vertices)t._x=i.left+e/s*(t.x-i.left);if("top"===n)for(let e of this.vertices)e._y=i.top+t/o*(e.y-i.top);else for(let e of this.vertices)e._y=i.bottom-t/o*(i.bottom-e.y);this._updateBounds()}_updateBounds(){let e=[],t=[];if(this._d){const r=this._d.match(/[a-zA-Z][^a-zA-Z]*/g),n=" ";r.forEach((r=>{let i=r.slice(1).trim().split(n).map(Number);for(let[r,n]of i.entries())r%2==0?e.push(n):t.push(n)}))}else e=this.vertices.map((e=>e.x)),t=this.vertices.map((e=>e.y));let r=Math.min(...e),n=Math.min(...t),i=Math.max(...e),s=Math.max(...t),o=i-r,a=s-n;if(this._bounds=new k(r,n,o,a),this.type===Lt.Line||this.type===Lt.Path){let e=this.styles.strokeWidth?this.styles.strokeWidth:1;r===i?this._bounds=new k(r-e/2,n,i-r+e,s-n):n===s&&(this._bounds=new k(r,n-e/2,i-r,s-n+e))}}addVertex(e,t,r){let n=new le(e,t,this,this.vertexCounter++);this.vertices.splice(r,0,n)}sortVertices(e,t){this.vertices.sort(((t,r)=>t[e]-r[e])),t&&this.vertices.reverse();for(let e=0;e<this.segments.length;e++){let t=this.segments[e];t.vertex1=this.vertices[e],t.vertex2=this.vertices[(e+1)%this.vertices.length]}}sortVerticesByData(e,t,r){let n;n=r?(t,n)=>r.indexOf(t.dataScope.getValue(e))-r.indexOf(n.dataScope.getAttributeValue(e)):(t,r)=>t.dataScope.getAttributeValue(e)<r.dataScope.getAttributeValue(e)?-1:1,this.vertices.sort(n),t&&this.vertices.reverse();for(let e=0;e<this.segments.length;e++){let t=this.segments[e];t.vertex1=this.vertices[e],t.vertex2=this.vertices[(e+1)%this.vertices.length]}}getSVGPathData(){if(this._d)return this._d;let e=n.path(),t=this._getD3CurveFunction(this.curveMode)(e);t.lineStart();for(let e of this.vertices)t.point(e.x,e.y);return this.closed&&t.point(this.vertices[0].x,this.vertices[0].y),t.lineEnd(),e._}get firstVertex(){return this.vertices[0]}get firstSegment(){return this.segments[0]}get lastVertex(){return this.vertices[this.vertices.length-1]}get lastSegment(){return this.segments[this.segments.length-1]}_getD3CurveFunction(e){switch(e){case fe.Natural:return n.curveNatural;case fe.Basis:return n.curveBasis;case fe.BumpX:return n.curveBumpX;case fe.BumpY:return n.curveBumpY;case fe.Linear:return n.curveLinear;case fe.Step:return n.curveStep;case fe.CatmullRom:return n.curveCatmullRom;case fe.Cardinal:return n.curveCardinal;case fe.Bundle:return n.curveBundle.beta(.5);default:return n.curveLinear}}get vxShape(){return this._vxShape}get vxWidth(){return this._vxWidth}get vxHeight(){return this._vxHeight}get vxRadius(){return this._vxRadius}get vxFillColor(){return this._vxFillColor}get vxStrokeColor(){return this._vxStrokeColor}get vxStrokeWidth(){return this._vxStrokeWidth}get vxOpacity(){return this._vxOpacity}get sourceAnchor(){return this._sourceAnchor}get targetAnchor(){return this._targetAnchor}get sourceOffset(){return this._sourceOffset}get targetOffset(){return this._targetOffset}}function he(e,t){const r=v.getSVG();let n=document.createElementNS("http://www.w3.org/2000/svg","path");n.setAttribute("d",e.getSVGPathData()),r.appendChild(n);let i=n.getTotalLength();return n.getPointAtLength(i*t)}function de(e){return e instanceof ce&&e.source&&e.target}const fe={Natural:"natural",Basis:"basis",BumpX:"bumpX",BumpY:"bumpY",Bundle:"bundle",Linear:"linear",Step:"step",CatmullRom:"CatmullRom",Cardinal:"cardinal"};function pe(e,t,r){const n=e.match(/[a-zA-Z][^a-zA-Z]*/g),i=",";return n.map((e=>{const n=e[0],s=e.slice(1).trim();if("M"===n||"L"===n||"T"===n){const[e,o]=s.split(i).map(Number);return`${n}${e+t} ${o+r}`}if("C"===n){const e=s.split(i).map(Number);return`${n}${e[0]+t} ${e[1]+r} ${e[2]+t} ${e[3]+r} ${e[4]+t} ${e[5]+r}`}if("Q"===n){const e=s.split(i).map(Number);return`${n}${e[0]+t} ${e[1]+r} ${e[2]+t} ${e[3]+r}`}if("A"===n){const e=s.split(i).map(Number);return`${n}${e[0]} ${e[1]} ${e[2]} ${e[3]} ${e[4]} ${e[5]+t} ${e[6]+r}`}return"Z"===n||"z"===n?n:e})).join(" ")}class _e extends ce{constructor(e){super(e),this._type=Lt.Arc,this.closed=!0,this._x="x"in e?e.x:100,this._y="y"in e?e.y:100,this._innerRadius="innerRadius"in e?e.innerRadius:100,this._outerRadius="outerRadius"in e?e.outerRadius:200,this._thickness="thickness"in e?e.thickness:this._outerRadius-this._innerRadius,this._startAngle="startAngle"in e?e.startAngle:0,this._endAngle="endAngle"in e?e.endAngle:90,this._sr=ge(this._startAngle),this._er=ge(this._endAngle),this._direction="direction"in e?e.direction:oe.ANTI_CLOCKWISE;let t=this._x+this._innerRadius*Math.cos(this._sr),r=this._y-this._innerRadius*Math.sin(this._sr),n=this._x+this._innerRadius*Math.cos(this._er),i=this._y-this._innerRadius*Math.sin(this._er),s=this._x+this._outerRadius*Math.cos(this._sr),o=this._y-this._outerRadius*Math.sin(this._sr),a=this._x+this._outerRadius*Math.cos(this._er),l=this._y-this._outerRadius*Math.sin(this._er);this._setVertices([[t,r],[s,o],[a,l],[n,i]])}get type(){return 0===this._innerRadius?Lt.Pie:Lt.Arc}get innerRadius(){return this._innerRadius}get outerRadius(){return this._outerRadius}get thickness(){return this._outerRadius-this._innerRadius}get direction(){return this._direction}get x(){return this._x}get y(){return this._y}get startAngle(){return this._startAngle}get endAngle(){return this._endAngle}get angle(){return this._endAngle<this._startAngle?this._endAngle+360-this._startAngle:this._endAngle-this._startAngle}setAngles(e,t){this._startAngle=e,this._endAngle=t,this._sr=ge(this._startAngle),this._er=ge(this._endAngle),this.vertices[0]._x=this._x+this._innerRadius*Math.cos(this._sr),this.vertices[0]._y=this._y-this._innerRadius*Math.sin(this._sr),this.vertices[1]._x=this._x+this._outerRadius*Math.cos(this._sr),this.vertices[1]._y=this._y-this._outerRadius*Math.sin(this._sr),this.vertices[2]._x=this._x+this._outerRadius*Math.cos(this._er),this.vertices[2]._y=this._y-this._outerRadius*Math.sin(this._er),this.vertices[3]._x=this._x+this._innerRadius*Math.cos(this._er),this.vertices[3]._y=this._y-this._innerRadius*Math.sin(this._er)}_updateBounds(){this._bounds=new k(this._x-this._outerRadius,this._y-this._outerRadius,2*this._outerRadius,2*this._outerRadius)}copyPropertiesTo(e){super.copyPropertiesTo(e),e._x=this._x,e._y=this._y,e._innerRadius=this._innerRadius,e._outerRadius=this._outerRadius,e._startAngle=this._startAngle,e._endAngle=this._endAngle,e._thickness=this._thickness,e._direction=this._direction,e._sr=this._sr,e._er=this._er}getSVGPathData(){let e=this._endAngle<this._startAngle?this._endAngle+360-this._startAngle:this._endAngle-this._startAngle,t=e>180?1:0;return["M "+this.vertices[0].x+", "+this.vertices[0].y,"L "+this.vertices[1].x+", "+this.vertices[1].y,"A "+[this._outerRadius,this._outerRadius,e,t,0,this.vertices[2].x,this.vertices[2].y].join(" "),"L "+this.vertices[3].x+", "+this.vertices[3].y,"A "+[this._innerRadius,this._innerRadius,e,t,1,this.vertices[0].x,this.vertices[0].y].join(" ")].join(" ")}}function ge(e){return e*Math.PI/180}function ye(e){return 180*e/Math.PI}function me(e){return e<0?e+360:e>360?e-360:e}function be(e,t,r,n){let i=e-r,s=t-n;return Math.atan2(s,i)*(180/Math.PI)}class ve{constructor(e){this._attr2value={},this._dt=e,this._tuples=this._dt.data}isFullTable(){return 0===Object.keys(this._attr2value).length}isEmpty(){return 0==this._tuples.length}get numTuples(){return this._tuples.length}get attributes(){return Object.keys(this._attr2value)}get dataTable(){return this._dt}get filters(){return this._attr2value}merge(e){let t=new ve(this._dt);for(let e in this._attr2value)t=t.cross(e,this._attr2value[e]);for(let r in e._attr2value)t=t.cross(r,e._attr2value[r]);return t}cross(e,t){if(e in this._attr2value&&this._attr2value[e]!==t)return console.warn("Conflict in attribute values when merging dataScope:",e,this._attr2value[e],t),this;let r=this.clone();return r._attr2value[e]=t,r._updateTuples(e,t),r}clone(){let e=new ve(this._dt);return e._attr2value=Object.assign({},this._attr2value),e._tuples=this._tuples.map((e=>e)),e}getAttributeValue(e){let t=this.getAttributeValues(e);return t.length,t[0]}getAttributeValues(e){let t=this._tuples.map((t=>t[e]));return t=[...new Set(t)],t}getUniqueAttributeValues(e){let t=this._tuples.map((t=>t[e]));return[...new Set(t)]}hasAttribute(e){return e in this._attr2value}getAttributeType(e){return this._dt.getAttributeType(e)}aggregateNumericalAttribute(e,t){let r=this._tuples.map((t=>t[e]));switch(t){case Ee.Max:return Math.max(...r);case Ee.Min:return Math.min(...r);case Ee.Avg:case Ee.Mean:return n.mean(r);case Ee.Median:return n.median(r);case Ee.Count:return r.length;case Ee.Percentile25:return n.quantile(r,.25);case Ee.Percentile75:return n.quantile(r,.75);case Ee.Sum:default:return n.sum(r)}}_updateTuples(e,t){this._tuples=this._tuples.filter((r=>r[e]==t))}get tuples(){return this._tuples}}function xe(e){return"vertex"==e.type||"segment"==e.type?e.dataScope?e.dataScope:e.parent.dataScope:e.dataScope}const Ee={Max:"max",Min:"min",Avg:"avg",Median:"median",Sum:"sum",Count:"count",Mean:"mean",Percentile25:"percentile 25",Percentile75:"percentile 75"};class we{constructor(e,t){this._id=Lt.TreeData+Pt(),this.initialize(e,t)}initialize(e,t){this.url=t,this._data=e,this._nodeList=[],this._linkList=[],this._nodeHash={},this._traverse(e,this._nodeList,this._linkList),this._nodeTable=new Dt(this._nodeList,"nodes"),this._linkTable=new Dt(this._linkList,"links"),this._nodeTable.tree=this,this._linkTable.tree=this}get nodeTable(){return this._nodeTable}get linkTable(){return this._linkTable}_traverse(e,t,r,n=0){let i={};Te in e||(e[Te]="n"+t.length),t.push(i),e._depth=n;for(let s in e)if("children"==s&&e[s]&&e[s].length>0)for(let i of e[s]){let s=this._traverse(i,t,r,n+1);r.push({parent:e[Te],child:s})}else i[s]=e[s];return this._nodeHash[i[Te]]=i,i[Te]}getNodeDataScope(e){return new ve(this._nodeTable).cross(Mt,e[Mt])}getRoot(){return this._nodeTable.data[0]}getChildren(e){let t=e[Te],r=[],n=this._linkTable.data,i=this._nodeTable.data;for(let e in n)if(n[e].parent==t){let t=n[e].child,s=i.findIndex((e=>e[Te]==t));r.push(i[s])}return r}}function Ae(e){return e.dataScope._dt.tree}class Ce{constructor(e,t){this._id=Lt.NetworkData+Pt(),this.initialize(e,t)}initialize(e,t){this.url=t,this._nodeTable=new Dt(e.nodes,this._id+"_nodes"),this._linkTable=new Dt(e.links,this._id+"_links"),this._nodeTable.graph=this,this._linkTable.graph=this,this._rawNodes=e.nodes,this._rawLinks=e.links,this._nodeHash={};for(let t of e.nodes)this._nodeHash[t[Te]]=t}get nodeTable(){return this._nodeTable}get linkTable(){return this._linkTable}get nodeList(){return this._rawNodes}get linkList(){return this._rawLinks}getNode(e){return this._nodeHash[e]}getLinks(e){let t=e[Te],r=this._rawLinks,n=[];for(let e in r)r[e].target!==t&&r[e].source!==t||n.push(r[e]);return n}buildNodeHierarchy(e){let t={};return t[Te]="root",ke(t,this._rawNodes,e),new we(t,this.url)}}function Re(e){return e.dataScope._dt.graph}function ke(e,t,r){if(0===t.length||0===r.length)return;"children"in e||(e.children=[]);let n={};for(let e of t){let t=e[r[0]];t in n||(n[t]=[]),n[t].push(e)}if(1===r.length)for(let t in n){let r={children:n[t]};r[Te]=t,e.children.push(r)}else for(let t in n){let i={};i[Te]=t,e.children.push(i),ke(i,n[t],r.slice(1))}}const Te="id";function Se(e,t){if(t.hasAttribute(e))return!0;if(t.tree&&t.tree.nodeTable.hasAttribute(e.split(".")[1]))return!0;throw new Error(["Attribute",e,"does not exist in the table",t.name].join(" "))}const Oe=Object.freeze({Boolean:"boolean",Integer:"integer",Number:"number",Date:"date",String:"string"});function Ie(e){var t=Object.values(Oe);for(let r=0;r<e.length;r++){let n=e[r];if(null!=n){for(let e=0;e<t.length;e++)Ne[t[e]](n)||(t.splice(e,1),e-=1);if(1==t.length)return t[0]}}return t[0]}const Ne={boolean:function(e){return"true"===e||"false"===e||!0===e||!1===e||"[object Boolean]"==toString.call(e)},integer:function(e){return Ne.number(e)&&(e=+e)==~~e},number:function(e){return!isNaN(+e)&&"[object Date]"!=toString.call(e)},date:function(e){let t=new Date(e);return null!=t&&!isNaN(t)},string:function(e){return!0}};function Le(e,t){let r={};switch(t){case Oe.Boolean:r.trueCount=e.filter((e=>e)).length,r.falseCount=e.filter((e=>!e)).length;break;case Oe.Date:r.min=n.min(e),r.max=n.max(e),r.extent=[r.min,r.max],r.unique=[...new Set(e)];break;case Oe.String:r.unique=[...new Set(e)];break;default:r.min=n.min(e),r.max=n.max(e),r.extent=[r.min,r.max],r.mean=n.mean(e),r.median=n.median(e),r.unique=[...new Set(e)]}return r}function Ve(e,t,r,n,i){let s=i.getAttributeType(r);if(s!=Oe.String&&s!=Oe.Date&&s!=Oe.Number&&s!=Oe.Integer)throw new Error("Densify only works on a string or date attribute: "+r+" is "+s);if(!function(e){if([Lt.Line,Lt.Circle,Lt.Rect,Lt.Area].indexOf(e.type)<0)return!1;if(e.dataScope){let t=G(e,e.scene);for(let e of t)if(e.dataScope.numTuples>1)return!0;return!1}return!0}(t))throw new Error("The "+t.type+" is not dividable");switch(t.type){case Lt.Line:return function(e,t,r){let n,i,s=G(e);for(let o of s){let s=o.dataScope?o.dataScope:new ve(r),a=r.getUniqueAttributeValues(t).map((e=>s.cross(t,e)));a=a.filter((e=>!e.isEmpty())),1===a.length&&a.push(a[0].clone());let l=Object.assign({},o.styles);for(let e of le.styles)o[e]&&(l[e]=o[e]);let u=o.vertices[0].x,c=o.vertices[0].y,h=[],d=o.vertices[1].x-u,f=o.vertices[1].y-c;for(let e=0;e<a.length;e++)h.push([u+e*d/(a.length-1),c+e*f/(a.length-1)]);l.vertices=h,l.type="path";let p=Tt(l);i||(i=p.id),p._classId=i,p.dataScope=s,p._updateBounds(),p._refBounds=p.bounds.clone();let _=o.parent;_.addChild(p),_.removeChild(o);for(let[e,t]of p.vertices.entries())t.dataScope?t.dataScope=t.dataScope.merge(a[e]):t.dataScope=a[e];o==e&&(n=p)}return n}(t,r,i);case Lt.Circle:return function(e,t,r,n,i){let s,o,a=G(e),l=r.getAttributeType(t);for(let u of a){let a=u.dataScope?u.dataScope:new ve(r),c=r.getUniqueAttributeValues(t).map((e=>a.cross(t,e)));c=l==Oe.Number?c:c.filter((e=>!e.isEmpty()));let h=c.length;if(h<3)throw new Error("INSUFFICIENT_DATA_SCOPES");let d=n||90,f=360/h,p=[],_=[],g="clockwise"==(i||"clockwise")?-1:1;for(let e=0;e<c.length;e++){let t=d+g*e*f;_[e]=t;let r=Pe(u.x,u.y,u.radius,_[e]);p.push(r)}let y=Object.assign({},u.styles);y.vertices=p,y.type="polygon",y.x=u.x,y.y=u.y,y.radius=u.radius;let m=Tt(y);o||(o=m.id),m._classId=o,m.dataScope=a;let b=u.parent;b.addChild(m),b.removeChild(u);for(let[e,t]of m.vertices.entries())t._polarAngle=_[e],e>=c.length?t.dataScope=a.merge(c[2*c.length-1-e]):t.dataScope=a.merge(c[e]);u===e&&(s=m)}return s}(t,r,i);case Lt.Rect:return function(e,t,r,n){let i,s,o=G(e),a=t||ie.HORIZONTAL;if(a!=ie.HORIZONTAL&&a!=ie.VERTICAL)throw new Error("Unknown orientation: "+a);for(let t of o){let o=n.getAttributeType(r),l=t.dataScope?t.dataScope:new ve(n),u=n.getUniqueAttributeValues(r).map((e=>l.cross(r,e)));u=o==Oe.Number?u:u.filter((e=>!e.isEmpty())),1===u.length&&u.push(u[0].clone()),o!=Oe.Number&&o!=Oe.Date||u.sort(((e,t)=>e._attr2value[r]>t._attr2value[r]?1:-1));let c=Object.assign({},t.styles),h=t.vertices[0].x,d=t.vertices[0].y,f=t.vertices[t.vertices.length-2].x,p=t.vertices[t.vertices.length-2].y,_=[],g=f-h,y=p-d;for(let e=0;e<u.length;e++)_.push(a==ie.VERTICAL?[f,d+e*y/(u.length-1)]:[h+e*g/(u.length-1),d]);for(let e=0;e<u.length;e++)_.push(a==ie.VERTICAL?[h,d+(u.length-1-e)*y/(u.length-1)]:[h+(u.length-1-e)*g/(u.length-1),p]);c.vertices=_,c.type="area";let m=Tt(c);s||(s=m.id),m._classId=s,m.dataScope=l,m.orientation=a,m.baseline=a===ie.HORIZONTAL?N.BOTTOM:N.LEFT;let b=t.parent;b.addChild(m),b.removeChild(t);for(let[e,t]of m.vertices.entries())e>=u.length?t.dataScope=l.merge(u[2*u.length-1-e]):t.dataScope=l.merge(u[e]);t===e&&(i=m)}return i}(t,n,r,i)}}function Pe(e,t,r,n){return[r*Math.cos(ge(n))+e,t-r*Math.sin(ge(n))]}class De extends p{constructor(e,t,r){super(e),this._channel=t,this._elem=r}get channel(){return this._channel}get element(){return this._elem}}const Be=Object.freeze({X:"x",Y:"y",WIDTH:"width",HEIGHT:"height",RADIUS:"radius",FILLCOLOR:"fillColor",STROKECOLOR:"strokeColor",FILLGRADIENT:"fillGradient",TEXT:"text",ANGLE:"angle",THICKNESS:"thickness",AREA:"area",FONTSIZE:"fontSize",RADIALDISTANCE:"radialDistance",STROKEWIDTH:"strokeWidth",OPACITY:"opacity",VISIBILITY:"visibility",STRENGTH:"strength"});function Me(e,t){delete t._encodings[Fe(e.element)][e.channel]}function Ge(e,t){let r=e.scene._encodings[Fe(e)],n=[];if(r&&(n=n.concat(Object.values(r))),t){let t=e.scene;for(let r in t._encodings){let i=r.split("_");i.pop(),i.join("_")===e.classId&&(n=n.concat(Object.values(t._encodings[r])))}}return n}function je(e,t,r){for(let n in r._encodings){let i=r._encodings[n];if(i[t]&&i[t].attribute==e)return i[t]}return null}function ze(e,t){let r=e.scene._encodings[Fe(e)];return r&&r[t]?r[t]:null}function Fe(e){if(e.classId)return e.classId;if("vertex"==e.type&&e.dataScope){if(e.parent.type===Lt.Area){let t=e.parent.vertices.indexOf(e)<e.parent.vertices.length/2;return e.parent.classId+"_v"+(t?0:e.parent.vertices.length-1)}return e.parent.classId+"_v"}return"vertex"==e.type?e.parent.classId+"_v"+e.parent.vertices.indexOf(e):"segment"==e.type&&e.dataScope?e.parent.classId+"_s":"segment"==e.type?e.parent.classId+"_s"+e.parent.segments.indexOf(e):null}function Ue(e,t){if(0==e.children.length)return[];let r=Y(e),n=e.type===Lt.Composite?e.children:[e.children[0]],i=Object.keys(r._encodings),s=[];for(let e of n){let t=e;for(;t;){if(t.classId&&s.indexOf(t.classId)<0&&s.push(t.classId),t.type===Lt.Glyph){t.children.forEach((e=>s.push(e.classId)));break}if(!t.children)break;t=t.children[0]}}let o=[];for(let e of i)for(let n of s)0===e.indexOf(n)&&r._encodings[e][t]&&o.push(r._encodings[e][t]);return o}function He(e){let t=ze(e,"y"),r=ze(e,"height");return t||r&&r.scales[0].domain[0]<0}function We(e){let t=ze(e,"x"),r=ze(e,"width");return t||r&&r.scales[0].domain[0]<0}function Ye(e,t){let r=function(e){let t=e.parent,r=[];for(;t.type!==Lt.Scene;)r.push(t),t=t.parent;return r}(e);for(let e of r)if(ze(e,t))return!1;return r.length>=2?r[r.length-2]:e}function Xe(e,t,r){switch(e.type){case Lt.Rect:case Lt.Path:case Lt.Line:case Lt.Area:!function(e,t,r){for(let n of e.vertices)qe(n,t,r);e._updateBounds(),e._refBounds&&e._refBounds.translate(t,r)}(e,t,r);break;case Lt.Group:case Lt.Collection:case Lt.Glyph:!function(e,t,r){for(let n of e.children)Xe(n,t,r);e._layout&&(void 0!==e._layout._left&&(e._layout._left+=t),void 0!==e._layout._top&&(e._layout._top+=r),e._layout._cellBounds&&e._layout._cellBounds.forEach((e=>e.translate(t,r))))}(e,t,r);break;case"segment":!function(e,t,r){qe(e.vertex1,t,r),qe(e.vertex2,t,r)}(e,t,r);break;default:!function(e,t,r){e._x+=t,e._y+=r,e._refBounds&&e._refBounds.translate(t,r)}(e,t,r)}}function qe(e,t,r){e._x+=t,e._y+=r}function Ke(e,t,r){switch(t){case"x":$e(e,r);break;case"y":Je(e,r);break;case"width":!function(e,t){e.resize(t,e.height)}(e,r);break;case"height":!function(e,t){e.resize(e.width,t)}(e,r);break;case"radius":e.radius=r;break;case"strength":e._strength=r;break;case"area":e.type===Lt.Circle?e.radius=Math.sqrt(r/Math.PI):e.type===Lt.Rect&&e.resize(Math.sqrt(r),Math.sqrt(r)),e._updateBounds();break;case"text":e._text=r;break;case"curveMode":e.curveMode=r;break;case"baseline":e.baseline=r;break;case"angle":[Lt.Arc,Lt.Pie].includes(e.type)&&function(e,t){e._endAngle=me(e._startAngle+t),e._sr=ge(e._startAngle),e._er=ge(e._endAngle),e.vertices[0]._x=e._x+e._innerRadius*Math.cos(e._sr),e.vertices[0]._y=e._y-e._innerRadius*Math.sin(e._sr),e.vertices[1]._x=e._x+e._outerRadius*Math.cos(e._sr),e.vertices[1]._y=e._y-e._outerRadius*Math.sin(e._sr),e.vertices[2]._x=e._x+e._outerRadius*Math.cos(e._er),e.vertices[2]._y=e._y-e._outerRadius*Math.sin(e._er),e.vertices[3]._x=e._x+e._innerRadius*Math.cos(e._er),e.vertices[3]._y=e._y-e._innerRadius*Math.sin(e._er)}(e,r);break;case"startAngle":!function(e,t){let r=e.angle;e._startAngle=t,e._endAngle=me(e._startAngle+r),e._sr=ge(e._startAngle),e._er=ge(e._endAngle),e.vertices[0]._x=e._x+e._innerRadius*Math.cos(e._sr),e.vertices[0]._y=e._y-e._innerRadius*Math.sin(e._sr),e.vertices[1]._x=e._x+e._outerRadius*Math.cos(e._sr),e.vertices[1]._y=e._y-e._outerRadius*Math.sin(e._sr),e.vertices[2]._x=e._x+e._outerRadius*Math.cos(e._er),e.vertices[2]._y=e._y-e._outerRadius*Math.sin(e._er),e.vertices[3]._x=e._x+e._innerRadius*Math.cos(e._er),e.vertices[3]._y=e._y-e._innerRadius*Math.sin(e._er)}(e,r);break;case"thickness":!function(e,t){Ze(e,e._innerRadius+t)}(e,r);break;case"innerRadius":!function(e,t){e._innerRadius=t,e.vertices[0]._x=e._x+e._innerRadius*Math.cos(e._sr),e.vertices[0]._y=e._y-e._innerRadius*Math.sin(e._sr),e.vertices[3]._x=e._x+e._innerRadius*Math.cos(e._er),e.vertices[3]._y=e._y-e._innerRadius*Math.sin(e._er)}(e,r);break;case"outerRadius":Ze(e,r);break;case"radialDistance":{let t=Pe(e.parent.x,e.parent.y,r,e.polarAngle);$e(e,t[0]),Je(e,t[1]);break}case"visibility":e.visibility=r;break;default:if("vertex"===e.type)e[t]=r;else if(e instanceof mt)for(let n of e.children)Ke(n,t,r);else e.styles[t]=r}}function Ze(e,t){e._outerRadius=t,e.vertices[1]._x=e._x+e._outerRadius*Math.cos(e._sr),e.vertices[1]._y=e._y-e._outerRadius*Math.sin(e._sr),e.vertices[2]._x=e._x+e._outerRadius*Math.cos(e._er),e.vertices[2]._y=e._y-e._outerRadius*Math.sin(e._er)}function $e(e,t){"vertex"==e.type?e._x=t:Xe(e,t-e.x,0)}function Je(e,t){"vertex"==e.type?e._y=t:Xe(e,0,t-e.y)}class Qe extends ce{constructor(e){super(e)}get width(){return this.vertices[1].x-this.vertices[0].x}get height(){return this.vertices[2].y-this.vertices[1].y}get left(){return this.vertices[0].x}get top(){return this.vertices[0].y}get right(){return this.vertices[1].x}get bottom(){return this.vertices[2].y}get area(){return this.width*this.height}resize(e,t,r,n){e!==this.width&&("right"===r?(this.vertices[1]._x=this.refBounds.right,this.vertices[2]._x=this.refBounds.right,this.vertices[0]._x=this.vertices[1]._x-e,this.vertices[3]._x=this.vertices[0]._x):(this.vertices[0]._x=this.refBounds.left,this.vertices[3]._x=this.refBounds.left,this.vertices[1]._x=this.vertices[0]._x+e,this.vertices[2]._x=this.vertices[1]._x)),t!==this.height&&("top"===n?(this.vertices[0]._y=this.refBounds.top,this.vertices[1]._y=this.refBounds.top,this.vertices[3]._y=this.vertices[0]._y+t,this.vertices[2]._y=this.vertices[3]._y):(this.vertices[2]._y=this.refBounds.bottom,this.vertices[3]._y=this.refBounds.bottom,this.vertices[0]._y=this.vertices[3]._y-t,this.vertices[1]._y=this.vertices[0]._y))}get leftSegment(){return this.segments[3]}get rightSegment(){return this.segments[1]}get topSegment(){return this.segments[0]}get bottomSegment(){return this.segments[2]}}class et extends ce{constructor(e){super(e),this._type=Lt.Area,this.closed=!0,this._orientation="orientation"in e?e.orientation:void 0,this._baseline="baseline"in e?e.baseline:void 0,e&&"vertices"in e&&this.segments.push(new ue(this.vertices[this.vertices.length-1],this.vertices[0],this,this.segmentCounter++))}get topLeftVertex(){return this._orientation===ie.HORIZONTAL?this.vertices[0]:this.vertices[this.vertices.length-1]}get bottomLeftVertex(){return this._orientation===ie.HORIZONTAL?this.vertices[this.vertices.length-1]:this.vertices[this.vertices.length/2]}get topRightVertex(){return this._orientation===ie.HORIZONTAL?this.vertices[this.vertices.length/2-1]:this.vertices[0]}get bottomRightVertex(){return this._orientation===ie.HORIZONTAL?this.vertices[this.vertices.length/2]:this.vertices[this.vertices.length/2-1]}get baseline(){return this._baseline}set baseline(e){this._baseline=e}get orientation(){return this._orientation}set orientation(e){this._orientation=e}get firstVertexPair(){return[this.vertices[0],this.vertices[this.vertices.length-1]]}get width(){return this.vertices[this.vertices.length/2].x-this.vertices[0].x}get height(){return this.vertices[this.vertices.length/2].y-this.vertices[0].y}get left(){return this.vertices[0].x}get top(){return this.vertices[0].y}copyPropertiesTo(e){super.copyPropertiesTo(e),e._baseline=this._baseline,e._orientation=this._orientation}getSVGPathData(){return super.getSVGPathData()+" z"}}class tt extends p{constructor(e,t){super(e),this._encs=[t],this._initialized=!1}addLinkedEncoding(e){this._encs.push(e)}get encodings(){return this._encs}get initialized(){return this._initialized}set initialized(e){this._initialized=e}}class rt extends d{constructor(e){super(e)}storeValues(e,t){this._storedValues={};let r=G(e);for(let e of r)this._storedValues[e.id]=e[t]}_restoreValues(e){let t=this.outputVar.channel;e.forEach((e=>{e.styles[t]=this._storedValues[e.id]}))}run(){super.run();let e=this.inputVars.find((e=>e instanceof tt)),t=this.outputVar,r=G(t.element);if(e){let r=e.encodings.find((e=>e.channel==t.channel&&Fe(e.element)==Fe(t.element)));for(let e of r.scales){let t=r.getElements(e);this._doMapping(t,e,r.attrValues,r),this._updateRefBounds(t,e,r)}}else this._restoreValues(r);let n=this._getUsableCondEncodings();n.length>0&&this._doCondEncoding(r,n.map((e=>e.condEncoding))),I(["vertex","segment"].includes(t.element.type)?t.element.parent:t.element)}_updateRefBounds(e,t,r){switch(this.outputVar.channel){case"width":e.forEach((e=>{e._refBounds.setWidth(t.rangeExtent)}));break;case"height":e.forEach((e=>{e._refBounds.setHeight(t.rangeExtent)}));break;case"radius":e.forEach((e=>{e._refBounds.setWidth(2*t.rangeExtent,N.CENTER),e._refBounds.setHeight(2*t.rangeExtent,N.MIDDLE)}));break;case"x":"vertex"!=e[0].type&&"segment"!=e[0].type||e.forEach((e=>{let n=e.parent._refBounds;e.parent._refBounds=new k(r.flipScale?t.range[1]:t.range[0],n.top,t.rangeExtent,n.height)}));break;case"y":"vertex"!=e[0].type&&"segment"!=e[0].type||e.forEach((e=>{let n=e.parent._refBounds;e.parent._refBounds=new k(n.left,r.flipScale?t.range[0]:t.range[1],n.width,t.rangeExtent)}))}}_doMapping(e,t,r,n){switch(this.outputVar.channel){case"width":t.domain[0]<0&&e[0]instanceof Qe?function(e,t,r){for(let n=0;n<e.length;n++){let i=e[n],s=i.refBounds.left+t.map(0),o=i.refBounds.left+t.map(r[i.id]);Xe(i.leftSegment,s-i.leftSegment.x,0),Xe(i.rightSegment,o-i.rightSegment.x,0)}}(e,t,r):t.domain[0]<0&&e[0]instanceof et||(e[0].type===Lt.Area?function(e,t,r){let n=e[0].baseline;if(e[0].orientation===ie.VERTICAL)switch(n){case"left":for(let n of e)G(n.topLeftVertex,n).forEach((e=>Ke(e,"x",n.refBounds.left))),G(n.topRightVertex,n).forEach((e=>Ke(e,"x",n.refBounds.left+t.map(r[e.id]))));break;case"right":for(let n of e)G(n.topLeftVertex,n).forEach((e=>Ke(e,"x",n.refBounds.right-t.map(r[e.id])))),G(n.topRightVertex,n).forEach((e=>Ke(e,"x",n.refBounds.right)));break;case"center":console.log("center");for(let n of e)G(n.topLeftVertex,n).forEach((e=>Ke(e,"x",n.refBounds.center-t.map(r[e.id])/2))),G(n.topRightVertex,n).forEach((e=>Ke(e,"x",n.refBounds.center+t.map(r[e.id])/2)))}}(e,t,r):this._doStandardMapping(e,t,r));break;case"height":t.domain[0]<0&&e[0]instanceof Qe?function(e,t,r){for(let n=0;n<e.length;n++){let i=e[n],s=i.refBounds.bottom-t.map(0),o=i.refBounds.bottom-t.map(r[i.id]);Xe(i.bottomSegment,0,s-i.bottomSegment.y),Xe(i.topSegment,0,o-i.topSegment.y)}}(e,t,r):t.domain[0]<0&&e[0]instanceof et?function(e,t,r){for(let n of e){let e=j(n.topLeftVertex,[n]);for(let i of e)Ke(i,"y",n.refBounds.bottom-t.map(r[i.id]));j(n.bottomLeftVertex,[n]).forEach((e=>Ke(e,"y",n.refBounds.bottom-t.map(0))))}}(e,t,r):e[0].type===Lt.Area?function(e,t,r){let n=e[0].baseline;if(e[0].orientation===ie.HORIZONTAL)switch(n){case"bottom":for(let n of e)G(n.topLeftVertex,n).forEach((e=>Ke(e,"y",n.refBounds.bottom-t.map(r[e.id])))),G(n.bottomLeftVertex,n).forEach((e=>Ke(e,"y",n.refBounds.bottom)));break;case"top":for(let n of e)G(n.bottomLeftVertex,n).forEach((e=>Ke(e,"y",n.refBounds.top+t.map(r[e.id])))),G(n.topLeftVertex,n).forEach((e=>Ke(e,"y",n.refBounds.top)));break;case"middle":for(let n of e)G(n.topLeftVertex,n).forEach((e=>Ke(e,"y",n.refBounds.middle-t.map(r[e.id])/2))),G(n.bottomLeftVertex,n).forEach((e=>Ke(e,"y",n.refBounds.middle+t.map(r[e.id])/2)))}}(e,t,r):this._doStandardMapping(e,t,r);break;case"text":this._doTextMapping(e,r);break;case"fillGradient":!function(e,t,r,n){for(let i of e){let e=i.vertices.map((e=>r[e.id])),s=Math.min(...e),o=Math.max(...e),a="horizontal"===i.orientation?new P({x1:0,y1:100,x2:0,y2:0}):new P({x1:0,y1:0,x2:100,y2:0});if(a.addStop(0,t.map(s),1),n._mapping){let e=Object.keys(n._mapping).map((e=>parseFloat(e))).sort();for(let r of e)r>s&&r<o&&a.addStop(100*(r-s)/(o-s),t.map(r),1)}else"divergingColor"===t.type&&a.addStop(100*-s/(o-s),t.map(0),1);"sequentialColor"===t.type&&a.addStop(100*-s/(o-s),t.map(0),1),a.addStop(100,t.map(o),1),i.fillColor=a}}(e,t,r,n);break;default:this._doStandardMapping(e,t,r)}}_doTextMapping(e,t){let r=this.outputVar.channel;e.forEach((e=>{Ke(e,r,t[e.id])}))}_doStandardMapping(e,t,r){let n=this.outputVar.channel;e.forEach((e=>{let i=t.map(r[e.id]);Ke(e,n,i),e instanceof ce&&e.firstVertex.shape&&"strokeColor"===n&&e.vertices.forEach((e=>e.fillColor=i))}))}_doCondEncoding(e,t){for(let r of e){let e=t.map((e=>e.evalResult[r.id])).every((e=>e||void 0===e));t[0]._efxFn(e,t[0].trigger.elements[0],r,t[0].trigger.mouseEvent)}}_updateElement(e,t,r,n){let i;"object"==typeof n&&e.triggerElement?"property"in n?i=e.triggerElement[n.property]:"attribute"in n&&(i=e.triggerElement.dataScope.getAttributeValue(n.attribute)):i=n,["x","y"].includes(r)&&"offset"in n&&(i+=n.offset),Ke(t,r,i)}_getUsableCondEncodings(){return this.inputVars.filter((e=>e instanceof te))}}class nt extends p{constructor(e,t,r){super(e),this._property=t,this._elem=r}get property(){return this._property}get element(){return this._elem}}const it=Object.freeze({AXIS_ORIENTATION:"axisOrientation",AXIS_PATH_POSITION:"axisPathPosition",AXIS_TICK_SIZE:"axisTickSize",AXIS_TICK_OFFSET:"axisTickOffset",AXIS_TICKS_POSITION:"axisTicksPosition",AXIS_LABELS_POSITION:"axisLabelsPosition",AXIS_TITLE_POSITION:"axisTitlePosition",AXIS_LABEL_OFFSET:"axisLabelOffset",AXIS_LABEL_FORMAT:"axisLabelFormat",AXIS_FONT_SIZE:"axisFontSize",LEGEND_POSITION:"legendPosition",GRIDLINES_POSITION:"gridlinesPosition",INCLUDE_ZERO:"includeZero",FLIP_SCALE:"flipScale",RANGE_START:"rangeStart",RANGE_EXTENT:"rangeExtent",BASE_LINE:"baseline"});function st(e,t){let r=t.getVariable(_.BOUNDS,e),n=t.createOneWayDependency(f.EVAL_BBOX);switch(t.connect(n,r),e.type){case Lt.Circle:case Lt.Polygon:{let r=t.getVariable(_.CHANNEL,"x",e),i=t.getVariable(_.CHANNEL,"y",e),s=t.getVariable(_.CHANNEL,"radius",e),o=t.getVariable(_.CHANNEL,"area",e);t.connect(s,n),t.connect(r,n),t.connect(i,n),t.connect(o,n);break}case Lt.Area:case Lt.Line:case Lt.BezierCurve:case Lt.Path:case Lt.Image:{let r=t.getVariable(_.CHANNEL,"x",e),i=t.getVariable(_.CHANNEL,"y",e),s=t.getVariable(_.CHANNEL,"width",e),o=t.getVariable(_.CHANNEL,"height",e);t.connect(r,n),t.connect(i,n),t.connect(s,n),t.connect(o,n);break}case Lt.Rect:{let r=t.getVariable(_.CHANNEL,"x",e),i=t.getVariable(_.CHANNEL,"y",e),s=t.getVariable(_.CHANNEL,"width",e),o=t.getVariable(_.CHANNEL,"height",e),a=t.getVariable(_.CHANNEL,"area",e);t.connect(r,n),t.connect(i,n),t.connect(s,n),t.connect(o,n),t.connect(a,n);break}case Lt.PointText:{let r=t.getVariable(_.CHANNEL,"x",e),i=t.getVariable(_.CHANNEL,"y",e),s=t.getVariable(_.CHANNEL,"text",e);t.connect(r,n),t.connect(i,n),t.connect(s,n);break}case Lt.Ring:{let r=t.getVariable(_.CHANNEL,"x",e),i=t.getVariable(_.CHANNEL,"y",e),s=t.getVariable(_.CHANNEL,"innerRadius",e),o=t.getVariable(_.CHANNEL,"outerRadius",e);t.connect(r,n),t.connect(i,n),t.connect(s,n),t.connect(o,n);break}case Lt.Pie:case Lt.Arc:{let r=t.getVariable(_.CHANNEL,"x",e),i=t.getVariable(_.CHANNEL,"y",e),s=t.getVariable(_.CHANNEL,"innerRadius",e),o=t.getVariable(_.CHANNEL,"outerRadius",e),a=t.getVariable(_.CHANNEL,"startAngle",e),l=t.getVariable(_.CHANNEL,"endAngle",e),u=t.getVariable(_.CHANNEL,"angle",e),c=t.getVariable(_.CHANNEL,"thickness",e);t.connect(r,n),t.connect(i,n),t.connect(s,n),t.connect(o,n),t.connect(a,n),t.connect(l,n),t.connect(u,n),t.connect(c,n);break}}n.run()}function ot(e,t){let r=t.findVariablesByElement(e);for(let e in r){let n=r[e];for(let e of n)t.deleteVariable(e)}}function at(e,t){let r=t.findVariable(_.CHANNEL,[e.channel,e.element]);r||console.warn("cannot find encoding to remove from the dep graph");let n=r.incomingDataflow;t.deleteOperator(n)}function lt(e,t){if(e.type===Lt.Axis){let r=t.findVariable(_.PROPERTY,[it.AXIS_PATH_POSITION,e]).incomingDataflow;t.deleteOperator(r),r=t.findVariable(_.PROPERTY,[it.AXIS_TICKS_POSITION,e]).incomingDataflow,t.deleteOperator(r),r=t.findVariable(_.PROPERTY,[it.AXIS_LABELS_POSITION,e]).incomingDataflow,t.deleteOperator(r)}else if(e.type===Lt.Gridlines){let r=t.findVariable(_.PROPERTY,[it.GRIDLINES_POSITION,e]).incomingDataflow;t.deleteOperator(r)}}function ut(e,t){let r=t.getVariable(_.BOUNDS,e),n=t.getVariable(_.CHANNEL,"x",e),i=t.getVariable(_.CHANNEL,"y",e),s=t.getVariable(_.CHANNEL,"width",e),o=t.getVariable(_.CHANNEL,"height",e),a=t.createOneWayDependency(f.EVAL_BBOX);t.connect(n,a),t.connect(i,a),t.connect(s,a),t.connect(o,a),t.connect(a,r),a.run()}function ct(e,t,r){let n=r.getVariable(_.BOUNDS,e),i=r.getVariable(_.BOUNDS,t),s=r.getIncomingDataflowOperator(f.EVAL_BBOX,n),o=i.outgoingEdges.find((e=>e.fromNode===i&&e.toNode===s));if(o&&r.disconnect(i,s,o),e.layout){let n=r.getVariable(_.CHANNEL,"x",t),i=r.getIncomingDataflowOperator(dt(e.layout.type),n);i&&r.deleteOperator(i)}}function ht(e,t,r){let n=r.getVariable(_.BOUNDS,e),i=r.getVariable(_.BOUNDS,t),s=r.getIncomingDataflowOperator(f.EVAL_BBOX,n);r.connect(i,s),r.connect(s,n),e.layout&&pt(e,e.layout,r)}function dt(e){switch(e){case Q.GRID:return f.GRID_LAYOUT;case Q.STACK:return f.STACK_LAYOUT;case Q.PACKING:return f.PACK_LAYOUT;case Q.FORCE:return f.FORCE_LAYOUT;case Q.DIRECTED:return f.DIRECTED_LAYOUT;case Q.TIDYTREE:return f.TIDY_TREE_LAYOUT;case Q.TREEMAP:return f.TREEMAP_LAYOUT;case Q.STRATA:return f.STRATA_LAYOUT;case Q.CIRCULAR:return f.CIRCULAR_LAYOUT;case Q.CLUSTER:return f.CLUSTER_LAYOUT}}function ft(e,t,r){let n=r.getVariable(_.ORDER,e),i=r.getOutgoingDataflowOperator(dt(t.type),n);r.deleteOperator(i)}function pt(e,t,r){let n=t?t.type:"none",i=n===Q.TREEMAP?Z(e)[0]:Q.STRATA?e.children[1]:e.children[0];if(!i)return;let s=r.getVariable(_.CHANNEL,"width",i),o=r.getVariable(_.CHANNEL,"height",i),a=r.getVariable(_.ORDER,e),l=r.getVariable(_.CHANNEL,"x",i),u=r.getVariable(_.CHANNEL,"y",i),c=r.getOutgoingDataflowOperator(dt(n),a);if(r.connect(s,c),r.connect(o,c),r.connect(a,c),r.connect(c,l),r.connect(c,u),r.disconnectChannelVarFromBBoxOperator(s),r.disconnectChannelVarFromBBoxOperator(o),i.type===Lt.Arc||i.type===Lt.Pie){let e=r.getVariable(_.CHANNEL,"angle",i),t=r.getVariable(_.CHANNEL,"thickness",i);r.connect(e,c),r.connect(t,c)}else if(i.type===Lt.Circle){let e=r.getVariable(_.CHANNEL,"area",i),t=r.getVariable(_.CHANNEL,"radius",i);r.connect(e,c),r.connect(t,c),r.disconnectChannelVarFromBBoxOperator(e),r.disconnectChannelVarFromBBoxOperator(t)}else if(i.type===Lt.Rect){let e=r.getVariable(_.CHANNEL,"area",i);r.connect(e,c),r.disconnectChannelVarFromBBoxOperator(e)}if(c.run(),i.links){let e=i.links[0],t=r.getVariable(_.CHANNEL,"x",e),n=r.getVariable(_.CHANNEL,"strokeWidth",e),s=r.getVariable(_.CHANNEL,"strength",e),o=r.createOneWayDependency(f.LINK_PLACER);r.connect(l,o),r.connect(n,o),r.connect(s,o),r.connect(o,t)}if(i.children&&i.children[0]){let e=r.getVariable(_.BOUNDS,i.children[0]),t=r.getVariable(_.CHANNEL,"x",i).incomingDataflow;t&&r.connect(e,t),r.disconnectChannelVarFromBBoxOperator(e)}}function _t(e,t){let r=t.getVariable(_.PROPERTY,it.AXIS_ORIENTATION,e),n=t.getVariable(_.BOUNDS,e.elements[0].parent),i=t.getVariable(_.PROPERTY,it.AXIS_PATH_POSITION,e),s=t.createOneWayDependency(f.AXIS_PATH_PLACER);t.connect(r,s),t.connect(n,s),t.connect(s,i),s.run();let o=t.getVariable(_.PROPERTY,it.AXIS_TICK_OFFSET,e),a=t.getVariable(_.PROPERTY,it.AXIS_TICK_SIZE,e),l=t.createOneWayDependency(f.AXIS_TICKS_PLACER),u=t.getVariable(_.PROPERTY,it.AXIS_TICKS_POSITION,e);t.connect(i,l),t.connect(o,l),t.connect(a,l),t.connect(l,u),l.run();let c=t.getVariable(_.PROPERTY,it.AXIS_LABEL_OFFSET,e),h=t.getVariable(_.PROPERTY,it.AXIS_LABEL_FORMAT,e),d=t.getVariable(_.PROPERTY,it.AXIS_FONT_SIZE,e),p=t.createOneWayDependency(f.AXIS_LABELS_PLACER),g=t.getVariable(_.PROPERTY,it.AXIS_LABELS_POSITION,e);t.connect(i,p),t.connect(c,p),t.connect(h,p),t.connect(d,p),t.connect(p,g),p.run();let y=t.getVariable(_.PROPERTY,it.AXIS_TITLE_POSITION,e),m=t.createOneWayDependency(f.AXIS_TITLE_PLACER);t.connect(i,m),t.connect(m,y),m.run();let b=t.getVariable(_.BOUNDS,e),v=t.getIncomingDataflowOperator(f.EVAL_BBOX,b);t.connect(u,v),t.connect(g,v),t.connect(v,b)}function gt(e,t){let r=t.getVariable(_.PROPERTY,it.AXIS_ORIENTATION,e),n=t.getVariable(_.BOUNDS,X(e.elements[0])),i=t.getVariable(_.PROPERTY,it.AXIS_PATH_POSITION,e),s=t.createOneWayDependency(f.AXIS_PATH_PLACER);t.connect(r,s),t.connect(n,s),t.connect(s,i),s.run();let o=t.getVariable(_.PROPERTY,it.AXIS_TICK_OFFSET,e),a=t.getVariable(_.PROPERTY,it.AXIS_TICK_SIZE,e),l=t.createOneWayDependency(f.AXIS_TICKS_PLACER),u=t.getVariable(_.PROPERTY,it.AXIS_TICKS_POSITION,e);t.connect(i,l),t.connect(o,l),t.connect(a,l),t.connect(l,u),l.run();let c=t.getVariable(_.PROPERTY,it.AXIS_LABEL_OFFSET,e),h=t.getVariable(_.PROPERTY,it.AXIS_LABEL_FORMAT,e),d=t.getVariable(_.PROPERTY,it.AXIS_FONT_SIZE,e),p=t.createOneWayDependency(f.AXIS_LABELS_PLACER),g=t.getVariable(_.PROPERTY,it.AXIS_LABELS_POSITION,e);t.connect(i,p),t.connect(c,p),t.connect(h,p),t.connect(d,p),t.connect(p,g),p.run();let y=t.getVariable(_.PROPERTY,it.AXIS_TITLE_POSITION,e),m=t.createOneWayDependency(f.AXIS_TITLE_PLACER);t.connect(i,m),t.connect(m,y),m.run();let b=t.getVariable(_.BOUNDS,e),v=t.getIncomingDataflowOperator(f.EVAL_BBOX,b);t.connect(u,v),t.connect(g,v),t.connect(v,b)}function yt(e,t){let r=t.getVariable(_.BOUNDS,X(e.elements[0])),n=t.getVariable(_.PROPERTY,it.GRIDLINES_POSITION,e),i=t.createOneWayDependency(f.GRIDLINES_PLACER);t.connect(r,i),t.connect(i,n),i.run();let s=t.getVariable(_.BOUNDS,e),o=t.getIncomingDataflowOperator(f.EVAL_BBOX,s);t.connect(n,o),t.connect(o,s)}class mt{constructor(){this._id=this.type+Pt(),this._type=Lt.Group,this._dataScope=void 0,this._bounds=void 0,this._layout=void 0,this._children=[],this._sortBy={}}get id(){return this._id}get type(){return this._type}contains(e,t){return this.bounds.contains(e,t)}get children(){return this._children}addChild(e){this.children.indexOf(e)>=0||(e.parent&&e.parent.removeChild(e),this.children.push(e),e.parent=this)}addChildAt(e,t){e.parent&&e.parent.removeChild(e),this.children.splice(t,0,e),e.parent=this}removeChild(e){let t=this.children.indexOf(e);t>=0&&(this.children.splice(t,1),e.parent=null)}removeChildAt(e){this.children[e].parent=null,this.children.splice(e,1)}removeAll(){for(let e of this.children)e.parent=null;this._children=[]}get dataScope(){return this._dataScope}set dataScope(e){if(this._dataScope=e,void 0===e)for(let t of this.children)t.dataScope=e;else for(let t of this.children)t.dataScope?t.dataScope=t.dataScope.merge(e):t.dataScope=e}getInternalEncodings(e){if(0==this.children.length)return[];let t=this.children[0],r=this.getScene(),n=Object.keys(r.encodings),i=[];for(;t;){if(t.classId&&i.indexOf(t.classId)<0&&i.push(t.classId),t.type===Lt.Glyph){t.children.forEach((e=>i.push(e.classId)));break}if(!t.children)break;t=t.children[0]}let s=[];for(let t of n){let n=t.split("_");for(let o of i)n[0]==o&&r.encodings[t][e]&&s.push(r.encodings[t][e])}return s}get firstChild(){return this.children[0]}get lastChild(){return this.children[this.children.length-1]}set layout(e){if(this._layout=e,e&&(e.group=this),pt(this,e,this.scene._depGraph),this.children&&this.children.length>0){let e=Z(this,!0);for(let t of e)this.scene.onChange(_.CHANNEL,"x",t)}}get layout(){return this._layout}get bounds(){return this._bounds||this._updateBounds(),this._bounds}get refBounds(){let e=this.children.map((e=>e.refBounds)),t=Math.min(...e.map((e=>e.left))),r=Math.min(...e.map((e=>e.top))),n=Math.max(...e.map((e=>e.right))),i=Math.max(...e.map((e=>e.bottom)));return new k(t,r,n-t,i-r)}get x(){return this.bounds.x}get y(){return this.bounds.y}_updateBounds(){let e=this.children;if(e.length>0){this._bounds=e[0].bounds.clone();for(let t=1;t<e.length;t++)"hidden"!=e[t].visibility&&(this._bounds=this._bounds.union(e[t].bounds))}else this._bounds=new k(0,0,0,0)}set visibility(e){this._visibility="hidden"==e?e:"visible";for(let t of this.children)t.visibility=e}get visibility(){return this._visibility?this._visibility:"visible"}get scene(){return Y(this)}}class bt extends mt{constructor(){super(),this._type=Lt.Collection,this._id=this.type+"_"+Pt(),this._classId=this.id,this._childrenOrder=void 0}get classId(){return this._classId}contains(e,t){if([Lt.Arc,Lt.Pie,Lt.Polygon,Lt.Area].indexOf(this.firstChild.type)>=0){let r=this.getSVGPathData();if(""!==r){let n=i.getContext(),s=new Path2D(r);return n.lineWidth=Math.max(this.strokeWidth,2.5),n.stroke(s),n.isPointInPath(s,e,t)}}return this._bounds.contains(e,t)}getSVGPathData(){let e="";for(let t of this.children)if(t.getSVGPathData)e+=t.getSVGPathData();else if(t.bounds){let r=t.bounds;e+=["M",r.left,r.top].join(" "),e+=["L",r.right,r.top].join(" "),e+=["L",r.right,r.bottom].join(" "),e+=["L",r.left,r.bottom,"Z"].join(" ")}return e}}class vt extends mt{constructor(e){if(super(),this._type=Lt.Glyph,this._id=this.type+"_"+Pt(),this._classId=this._id,e)for(let t of e)this.addChild(t)}get classId(){return this._classId}}class xt extends ce{constructor(e){super(e),this._type=Lt.BezierCurve,this._orientation="orientation"in e?e.orientation:ie.HORIZONTAL}get type(){return this._type}get orientation(){return this._orientation}copyPropertiesTo(e){super.copyPropertiesTo(e),e._orientation=this._orientation}getSVGPathData(){if(this._d)return this._d;let e="M ";return e+=this.vertices[0].x+" "+this.vertices[0].y+" ",e+="C "+this.vertices[1].x+" "+this.vertices[1].y+" ",e+=this.vertices[2].x+" "+this.vertices[2].y+" ",e+=this.vertices[3].x+" "+this.vertices[3].y,e}}class Et extends D{constructor(e){super(e),this._type=Lt.Circle,this._x="x"in e?e.x:0,this._y="y"in e?e.y:0,this._radius="radius"in e?e.radius:100,"strokeColor"in this.styles||(this.styles.strokeColor="#ccc"),"fillColor"in this.styles||(this.styles.fillColor="none"),"strokeWidth"in this.styles||(this.styles.strokeWidth=1),"strokeDash"in this.styles||(this.styles.strokeDash="none")}get x(){return this._x}get y(){return this._y}get radius(){return this._radius}set radius(e){this._radius=e}get area(){return Math.PI*Math.pow(this._radius,2)}_updateBounds(){if(this._rotate){let e=b(this._x,this._y,this._rotate[1],this._rotate[2],this._rotate[0]);this._bounds=new k(e.x-this._radius,e.y-this._radius,2*this._radius,2*this._radius)}else this._bounds=new k(this._x-this._radius,this._y-this._radius,2*this._radius,2*this._radius)}copyPropertiesTo(e){super.copyPropertiesTo(e),e._x=this._x,e._y=this._y,e._radius=this._radius}getSVGPathData(){return["M",this._x,this._y,"m",-this._radius,", 0 a",this._radius,",",this._radius,"0 1,0",2*this._radius,",0 a",this._radius,",",this._radius,"0 1,0",-2*this._radius,",0"].join(" ")}}class wt extends D{constructor(e){super(e),this._type=Lt.Image,this._src=e.src,this._x="x"in e?e.x:0,this._y="y"in e?e.y:0,this._width="width"in e?e.width:100,this._height="height"in e?e.height:100}get src(){return this._src}set src(e){this._src=e}get width(){return this._width}set width(e){this._width=e,this._updateBounds()}get height(){return this._height}set height(e){this._height=e,this._updateBounds()}get x(){return this._x}set x(e){this._x=e,this._updateBounds()}get y(){return this._y}set y(e){this._y=e,this._updateBounds()}get bounds(){return this._bounds||this._updateBounds(),this._bounds}_updateBounds(){this._bounds=new k(this._x,this._y,this._width,this._height)}copyPropertiesTo(e){e.attrs=Object.assign({},this.attrs),e.styles=Object.assign({},this.styles),this._dataScope&&(e._dataScope=this._dataScope.clone()),e.x=this._x,e.y=this._y,e.width=this._width,e.height=this._height,e.src=this._src}}class At extends ce{constructor(e){super(e)}get x1(){return this.vertices[0].x}get y1(){return this.vertices[0].y}get x2(){return this.vertices[1].x}get y2(){return this.vertices[1].y}get x(){return(this.vertices[0].x+this.vertices[1].x)/2}get y(){return(this.vertices[0].y+this.vertices[1].y)/2}set x(e){let t=e-this.x;this.vertices[0]._x+=t,this.vertices[1]._x+=t}set y(e){let t=e-this.y;this.vertices[0]._y+=t,this.vertices[1]._y+=t}set x1(e){this.vertices[0]._x=e}set x2(e){this.vertices[1]._x=e}set y1(e){this.vertices[0]._y=e}set y2(e){this.vertices[1]._y=e}}class Ct extends D{constructor(e){super(e),this._type=Lt.PointText,this._x="x"in e?e.x:0,this._y="y"in e?e.y:0,this._text="text"in e?e.text:"",this._anchor="anchor"in e?e.anchor:[N.CENTER,N.MIDDLE],"fontSize"in this.styles||(this.styles.fontSize="12px"),"fontFamily"in this.styles||(this.styles.fontFamily="Arial, sans-serif"),"fontWeight"in this.styles||(this.styles.fontWeight="normal"),"fillColor"in this.styles||(this.styles.fillColor="black"),"backgroundColor"in e&&(this._backgroundColor=e.backgroundColor),"borderWidth"in e&&(this._borderWidth=e.borderWidth),"borderColor"in e&&(this._borderColor=e.borderColor),this._rotate="rotate"in e?e.rotate:void 0}hasBackground(){return this._backgroundColor||this._borderStroke||this._borderColor}_updateBounds(){let e,t,r=function(e,t,r){let n=x.getContext();n.font=t;let i=n.measureText(e);return i.fontBoundingBoxAscent?{width:i.width,height:i.fontBoundingBoxAscent+i.fontBoundingBoxDescent}:i.actualBoundingBoxAscent?{width:i.width,height:i.actualBoundingBoxAscent+i.actualBoundingBoxDescent}:{width:i.width,height:r}}(this._text,[this.fontWeight,this.fontSize,this.fontFamily].join(" "),parseFloat(this.fontSize)),n=r.width,i=r.height;switch(this._anchor[0]){case N.LEFT:e=this._x;break;case N.RIGHT:e=this._x-n;break;case N.CENTER:e=this._x-n/2;break;default:e=this._x}switch(this._anchor[1]){case N.TOP:t=this._y;break;case N.BOTTOM:t=this._y-i;break;case N.MIDDLE:default:t=this._y-i/2}if(this._rotate&&3===this._rotate.length){let r=[{x:e,y:t},{x:e+n,y:t},{x:e,y:t+i},{x:e+n,y:t+i}].map((e=>b(e.x,e.y,this._rotate[1],this._rotate[2],this._rotate[0]))),s=Math.min(...r.map((e=>e.x))),o=Math.max(...r.map((e=>e.x))),a=Math.min(...r.map((e=>e.y))),l=Math.max(...r.map((e=>e.y)));this._bounds=new k(s,a,o-s,l-a)}else this._bounds=new k(e,t,n,i)}get x(){return this._x}get y(){return this._y}get text(){return this._text}get anchor(){return this._anchor}get fontFamily(){return this.styles.fontFamily}get fontSize(){return this.styles.fontSize}get fontWeight(){return this.styles.fontWeight}get backgroundColor(){return this._backgroundColor?this._backgroundColor:"#fff"}get borderColor(){return this._borderColor?this._borderColor:"#ccc"}get borderWidth(){return this._borderWidth?this._borderWidth:1}copyPropertiesTo(e){e.styles=Object.assign({},this.styles),this._dataScope&&(e._dataScope=this._dataScope.clone()),e._x=this._x,e._y=this._y,e._text=this._text,e._anchor=[this._anchor[0],this._anchor[1]],e._backgroundColor=this._backgroundColor,e._borderColor=this._borderColor,e._borderStroke=this._borderStroke}}class Rt extends ce{constructor(e){super(e),this._type=Lt.Polygon,this.closed=!0,"x"in e&&(this._x=e.x),"y"in e&&(this._y=e.y),"radius"in e&&(this._radius=e.radius)}get radius(){return this._radius}get x(){return this._x}get y(){return this._y}copyPropertiesTo(e){super.copyPropertiesTo(e),e._x=this._x,e._y=this._y,e._radius=this._radius}}class kt extends ce{constructor(e){super(e),this._type=Lt.Ring,this.closed=!0,this._x="x"in e?e.x:0,this._y="y"in e?e.y:0,this._innerRadius="innerRadius"in e?e.innerRadius:100,this._outerRadius="outerRadius"in e?e.outerRadius:200}get innerRadius(){return this._innerRadius}get outerRadius(){return this._outerRadius}get x(){return this._x}get y(){return this._y}get thickness(){return this._outerRadius-this._innerRadius}copyPropertiesTo(e){super.copyPropertiesTo(e),e._x=this._x,e._y=this._y,e._innerRadius=this._innerRadius,e._outerRadius=this._outerRadius}getSVGPathData(){return["M "+this._x+" "+this._y,"m 0, -"+this._outerRadius,"a "+this._outerRadius+","+this._outerRadius+", 0, 1, 0, 1, 0","Z","m 0 "+(this._outerRadius-this._innerRadius),"a "+this._innerRadius+", "+this._innerRadius+", 0, 1, 1, -1, 0","Z"].join(" ")}}function Tt(e){let t=null;switch(e.type){case Lt.Circle:t=new Et(e);break;case Lt.Line:var r="x1"in e?e.x1:0,n="y1"in e?e.y1:0,i="x2"in e?e.x2:100,s="y2"in e?e.y2:100;e.vertices=[[r,n],[i,s]],t=new At(e);break;case Lt.Rect:var o="top"in e?e.top:0,a="left"in e?e.left:0,l="width"in e?e.width:50,u="height"in e?e.height:30;e.vertices=[[a,o],[a+l,o],[a+l,o+u],[a,o+u]],t=new Qe(e);break;case Lt.PointText:t=new Ct(e);break;case Lt.Image:t=new wt(e);break;case Lt.BundledPath:case Lt.Path:t=new ce(e);break;case Lt.Area:t=new et(e);break;case Lt.Ring:t=new kt(e);break;case Lt.Arc:t=new _e(e);break;case Lt.BezierCurve:"vertices"in e||(e.vertices=[[0,100],[20,120],[80,180],[100,200]]),t=new xt(e);break;case Lt.Polygon:t=new Rt(e)}return t&&t._updateBounds(),t}function St(e){let t=new bt;return e.addChild(t),e._itemMap[t.id]=t,t}function Ot(e){return new vt(e)}function It(e){switch(e.type){case Lt.Collection:return function(e){let t=St(e.scene);for(let r=0;r<e.children.length;r++){let n=e.children[r];t.addChild(It(n))}if(t._classId=e.classId,e._layout){let r=e._layout.clone();t._layout=r,r.group=t}return t._updateBounds(),t}(e);case Lt.Glyph:return function(e){let t=new vt;for(let r of e.children)t.addChild(It(r));t._classId=e.classId,e._dataScope&&(t.dataScope=e._dataScope.clone());return t}(e);default:return function(e){let t=Tt({type:e.type});e.copyPropertiesTo(t),t._classId=e.classId,t._bounds=e.bounds.clone(),e._refBounds||(e._refBounds=e.bounds.clone());t._refBounds=e._refBounds.clone(),e.dataScope&&(t._dataScope=e.dataScope.clone());if(e.vertices)for(let r=0;r<e.vertices.length;r++)e.vertices[r].dataScope&&(t.vertices[r]._dataScope=e.vertices[r].dataScope.clone());return t}(e)}}const Nt=Object.freeze({Rect:"rect",Circle:"circle",Line:"line",Ring:"ring",Path:"path",Image:"image",PointText:"text",Arc:"arc",BezierCurve:"bezierCurve",BundledPath:"bundledPath"}),Lt=Object.freeze({Area:"area",Rect:"rect",Ellipse:"ellipse",Circle:"circle",Pie:"pie",Ring:"ring",Arc:"arc",BezierCurve:"bezierCurve",BundledPath:"bundledPath",Line:"line",Path:"path",Image:"image",PointText:"text",Collection:"collection",Group:"group",Composite:"composite",Scene:"scene",Axis:"axis",Glyph:"glyph",Legend:"legend",Polygon:"polygon",Gridlines:"gridlines",LinearGradient:"LinearGradient",Link:"link",DataTable:"datatable",Layout:"layout",NetworkData:"networkdata",TreeData:"treedata"}),Vt=Object.freeze({Axis:"axis",Legend:"legend",Gridlines:"gridlines"});function Pt(){return Date.now().toString(36)+"_"+Math.random().toString(36).slice(2)}class Dt{constructor(e,t,r){this._id=Lt.DataTable+Pt(),this.initialize(e,t,r)}initialize(e,t,r){if(this.url=t,this._rawData=JSON.parse(JSON.stringify(e)),this._data=e,this._dateMap=new Map,this._attributes=Object.keys(this.data[0]),this._newAttribute=0,r)this._attrTypes=r;else{this._attrTypes={};for(let e of this._attributes)this._attrTypes[e]=Ie(this.data.map((t=>t[e]))),"year"==e.toLowerCase()&&this._attrTypes[e]==Oe.Integer&&(this._attrTypes[e]=Oe.Date)}this._validate(this.data,this._attrTypes),this._attrSummaries={};for(let e of this._attributes)this._attrSummaries[e]=Le(this.data.map((t=>t[e])),this._attrTypes[e]);this._attributes.indexOf(Mt)<0&&this._addAttribute(Mt,Oe.String,this.data.map(((e,t)=>"r"+t)))}clone(){let e=[];for(let t of this._data)e.push(Object.assign({},t));let t=new Dt(e,this.url,Object.assign({},this._attrTypes));return t.sourceDataTable=this,t}get id(){return this._id}get name(){return this.url?function(e){var t=e.indexOf("\\")>=0?e.lastIndexOf("\\"):e.lastIndexOf("/"),r=e.substring(t);0!==r.indexOf("\\")&&0!==r.indexOf("/")||(r=r.substring(1));return r}(this.url):this.id}get data(){return this._data}getEncodableAttributes(e){switch(e){case"x":case"y":case"width":case"height":case"radius":case"fillColor":case"strokeColor":case"text":return this.numericAttributes.concat(this.nonNumericAttributes);default:return this.numericAttributes}}_addAttribute(e,t,r){this._data.forEach(((t,n)=>t[e]=r[n])),e!==Mt&&this._rawData.forEach(((t,n)=>t[e]=r[n])),this._attrTypes[e]=t,this._attributes.push(e),this._attrSummaries[e]=Le(r,t)}getAttributeType(e){return this._attrTypes[e]}get attributes(){return this._attributes}getAttributeSummary(e){return this._attrSummaries[e]}getAttributeValues(e){return this.data.map((t=>t[e]))}getUniqueAttributeValues(e){return this._attrSummaries[e].unique}orderAttributeValues(e,t){this._attrSummaries[e].unique=t}getRowCount(){return this.data.length}hasAttribute(e){return this._attributes.indexOf(e)>=0}parseAttributeAsDate(e,t){let r=n.timeParse(t);for(let t of this.data){let n=t[e];null==n||null==n?(n="",t[e]=new Date(1899,11,31).getTime()):t[e]=r(n).getTime(),this._dateMap.set(t[e],n)}this._attrTypes[e]=Oe.Date,this._attrSummaries[e]=Le(this.data.map((t=>t[e])),Oe.Date)}getRawValue(e,t){return this.getAttributeType(e)===Oe.Date?this._dateMap.get(t).toString():t}get nonNumericAttributes(){let e=[];for(let t in this._attrTypes)this._attrTypes[t]!=Oe.Number&&this._attrTypes[t]!=Oe.Integer&&t!=Dt.RowID&&e.push(t);return e.sort(((e,t)=>this.getUniqueAttributeValues(e).length-this.getUniqueAttributeValues(t).length)),e}get numericAttributes(){let e=[];for(let t in this._attrTypes)this._attrTypes[t]!==Oe.Number&&this._attrTypes[t]!==Oe.Integer||t==Dt.RowID||e.push(t);return e}getAttributesByType(e){let t=[];for(let r in this._attrTypes)this._attrTypes[r]===e&&r!=Dt.RowID&&t.push(r);return t}summarize(){for(let e of this._attributes)this._attrSummaries[e]=Le(this.data.map((t=>t[e])),this._attrTypes[e])}_validate(e,t){for(let r of e)for(let e in t){let n,i=t[e],s=r[e];if(null==r[e]||null==r[e])switch(i){case Oe.Boolean:n=!1;break;case Oe.Date:n=new Date(1899,11,31).getTime();break;case Oe.String:n="";break;default:n=0}else switch(i){case Oe.Boolean:n=s;break;case Oe.Date:n=Number.isInteger(s)?new Date(s,0).getTime():new Date(s+"").getTime(),this._dateMap.set(n,s);break;case Oe.String:n=s.toString();break;default:n=s}r[e]=n}}}function Bt(e){let t=xe(e);if(t)return t.dataTable}const Mt="mascot_rowId";function Gt(e,t){return fetch(t,{method:e}).then((e=>e.ok?e.text():(console.log(e.status),Promise.reject({status:e.status,statusText:e.statusText})))).catch((e=>(console.log(e),Promise.reject({status:e.status,statusText:e.statusText}))))}class jt extends p{constructor(e,t){super(e),this._elem=t}get element(){return this._elem}}class zt extends p{constructor(e,t){super(e),this._item=t}get element(){return this._item}}class Ft{constructor(e){this._id=e+"_"+Pt(),this._type=e,this._vars=[],this._edges=[]}get vars(){return this._vars}get edges(){return this._edges}run(){console.log("-",this._type)}}class Ut{constructor(e,t,r=!0){this._id="e_"+Pt(),this._fromNode=e,this._toNode=t,this._isDirected=r}get id(){return this._id}get fromNode(){return this._fromNode}get toNode(){return this._toNode}get isDirected(){return this._isDirected}get operator(){return this._fromNode instanceof d||this._fromNode instanceof Ft?this._fromNode:this._toNode}}class Ht extends p{constructor(e,t,r){super(e),this._attribute=t,this._dataset=r}get attribute(){return this._attribute}get dataset(){return this._dataset}}class Wt extends p{constructor(e,t){super(e),this._encs=[t]}addLinkedEncoding(e){this._encs.push(e)}get encodings(){return this._encs}}class Yt extends d{constructor(e){super(e)}run(){super.run();let e=this.outputVar,t=e.encodings[0],r=this.inputVars.find((e=>e instanceof Ht)).attribute,n=e.encodings[0].dataTable.getAttributeType(e.encodings[0].attribute),i=[];for(let t of e.encodings){let e=this._computeAttrValues(t,n);i=i.concat(e)}if("angle"===t.channel&&[Lt.Arc,Lt.Pie].indexOf(t.element.type))for(let n of e.encodings)for(let e of n.scales){let i=n.getElements(e).map((e=>n.attrValues[e.id]));e.domain=t._preferredDomain?t._preferredDomain:n.dataTable.tree?[0,Math.max(...i)]:this._getDomainForNumbers(i),console.log("domain for",r,e.domain)}else{let s;s=n==Oe.String||"text"===e.encodings[0].channel?this._getDomainForStrings(i):this._getDomainForNumbers(i);for(let r of e.encodings)for(let e of r.scales)e.domain=t._preferredDomain?t._preferredDomain:s.slice();console.log("domain for",r,s)}}_getDomainForNumbers(e){let t=this.outputVar.encodings[0],r=[Math.min(...e),Math.max(...e)];if(t.includeZero&&r[0]>0&&(r=[0,Math.max(...e)]),t.mapping)r=Object.keys(t.mapping),r=r.map((e=>parseFloat(e))),r.sort(((e,t)=>e-t));else if("sequentialColor"===t.scales[0].type){if(r[0]<0&&r[1]>0){let e=Math.max(Math.abs(r[0]),Math.abs(r[1]));r=[-e,e]}}else if("angle"===t.channel){r=[0,Object.values(e).reduce(((e,t)=>e+t),0)]}return r}_getDomainForStrings(e){let t,r=this.outputVar,n=r.encodings[0];return t="count"==r.encodings[0].aggregator?[0,Math.max(...e)]:Array.from(new Set(e)),n.mapping&&(t=Object.keys(n.mapping)),t}_computeAttrValues(e,t){let r=G(e.element),n={};if(e.element.type===Lt.Area&&["width","height","fillGradient"].indexOf(e.channel)>=0)for(let t of r)for(let r of t.vertices)n[r.id]=xe(r).aggregateNumericalAttribute(e.attribute,e.aggregator);else switch(t){case Oe.Boolean:break;case Oe.Date:for(let t of r)n[t.id]=xe(t).getAttributeValue(e.attribute);break;case Oe.String:try{if("count"==e.aggregator)for(let t of r)n[t.id]=xe(t).getAttributeValues(e.attribute).length;else for(let t of r)n[t.id]=xe(t).getAttributeValue(e.attribute)}catch(t){throw new Error("Cannot bind "+this.channel+" to "+e.attribute+" : "+t)}break;default:if(e.attribute.startsWith("parent.")||e.attribute.startsWith("child.")){let t=e.dataTable.tree.nodeTable,i=e.attribute.split(".")[0],s=e.attribute.split(".")[1];for(let e of r){let r=xe(e).getAttributeValue(i);n[e.id]=new ve(t).cross(Te,r).getAttributeValue(s)}}else for(let t of r)n[t.id]=xe(t).aggregateNumericalAttribute(e.attribute,e.aggregator)}return e.attrValues=n,Object.values(n)}}class Xt{constructor(e,t){switch(this._id="scale_"+Pt(),this._type=e,t&&(this._args=t),e){case"linear":this._scale=n.scaleLinear();break;case"point":this._scale=n.scalePoint();break;case"ordinal":this._scale=n.scaleOrdinal();break;case"ordinalColor":this._scale=n.scaleOrdinal(n[t.scheme]);break;case"power":this._scale=n.scalePow().exponent(2);break;case"sqrt":this._scale=n.scalePow().exponent(.5);break;case"log":this._scale=n.scaleLog();break;case"identity":case"time":this._scale=n.scaleTime();break;case"sequentialColor":t.scheme?this._scale=n.scaleSequential(n[t.scheme]):this._scale=n.scaleSequential()}}get id(){return this._id}get domain(){return this._scale.domain()}set domain(e){this._scale.domain(e)}get range(){return this._scale.range()}set range(e){this._scale.range(e)}get rangeExtent(){let e=this._scale.range();return Math.abs(e[1]-e[0])}set rangeExtent(e){let t=this._scale.range();t[0]<t[1]?this._scale.range([t[0],t[0]+e]):this._scale.range([t[1]+e,t[1]])}get type(){return this._type}map(e){return this._scale(e)}}const qt=["schemeBrBG","schemePRGn","schemePiYG","schemePuOr","schemeRdBu","schemeRdGy","schemeRdYlBu","schemeRdYlGn","schemeSpectral"],Kt=["schemeBlues","schemeGreens","schemeGreys","schemeOranges","schemePurples","schemeReds","schemeBuGn","schemeBuPu","schemeGnBu","schemeOrRd","schemePuBuGn","schemePuBu","schemePuRd","schemeRdPu","schemeYlGnBu","schemeYlGn","schemeYlOrBr","schemeYlOrRd"];class Zt extends d{constructor(e){super(e)}run(){super.run();let e=this.outputVar,t=e.encodings,r=t[0],n=r.channel;for(let i=0;i<r.scales.length;i++){let s=r.scales[i],o=r.getElements(s),a=this._buildRange(n,o,r,e);if(a)for(let e of t)e.scales[i].range=a;console.log("range",r.scales[i].range)}e.initialized=!0}_buildRange(e,t,r,n){return"x"===e?this._buildXRange(t,r,n):"y"===e?this._buildYRange(t,r,n):["width","height","radius","area","fontSize","radialDistance","strokeWidth"].includes(e)?this._buildSizeRange(t,r,n):e.indexOf("Color")>0||"fillGradient"===e?this._buildColorRange(t,r):"angle"===e?this._buildAngleRange(t,r):"thickness"===e?this._buildThicknessRange(t,r,n):void 0}_buildThicknessRange(e,t,r){let n=e.map((e=>e.outerRadius-e.innerRadius));return[0,r.initialized?t.getRangeExtent(e[0]):t._preferredRangeExtent?t._preferredRangeExtent:Math.max(...n)]}_buildAngleRange(e,t){return[0,360]}_buildColorRange(e,t){if(t.mapping){return t.scales[0].domain.map((e=>t.mapping[e+""]))}if("sequentialColor"===t.scales[0].type){let e=this.outputVar,r=t.scales[0].domain;for(let i of e.encodings)if(!t.colorScheme)for(let e of i.scales){let t=e.domain;e._scale=n.scaleSequential(r[0]<0&&r[1]>0?n.interpolatePuOr:n.interpolateTurbo),e._scale.domain(t)}}if((qt.indexOf(t.colorScheme)>=0||Kt.indexOf(t.colorScheme)>=0)&&"ordinalColor"===t.scales[0].type){let e=this.outputVar,r=t.scales[0].domain;for(let i of e.encodings)for(let e of i.scales){let i=e.domain;e._scale=n.scaleOrdinal(n[t.colorScheme][r.length]),e._scale.domain(i)}}}_buildSizeRange(e,t,r){let n,i;return n=0,i=r.initialized?t.getRangeExtent(e[0]):t._preferredRangeExtent?t._preferredRangeExtent:Math.max(...e.map((e=>"radius"===t.channel?e.refBounds.width/2:"strokeWidth"===t.channel?e.strokeWidth:"radialDistance"===t.channel?e.parent.radius:"area"===t.channel?e.type===Lt.Circle?Math.PI*Math.pow(e.radius,2):e.width*e.height:"fontSize"===t.channel?parseFloat(e.fontSize):e.refBounds[t.channel]))),[0,0+i]}_buildXRange(e,t,r){let n,i;switch(t.scales[0].type,e[0].type){case"vertex":case"segment":var s=e[0].parent.refBounds?e[0].parent.refBounds:e[0].parent.bounds;n=r.initialized?t.getRangeStart(e[0]):s.left,i=r.initialized?t.getRangeExtent(e[0]):t._preferredRangeExtent?t._preferredRangeExtent:s.width;break;default:n=r.initialized?t.getRangeStart(e[0]):X(e[0]).bounds.left+e[0].bounds.width/2,i=r.initialized?t.getRangeExtent(e[0]):t._preferredRangeExtent?t._preferredRangeExtent:450}return t.flipScale?[n+i,n]:[n,n+i]}_buildYRange(e,t,r){let n,i;switch(t.scales[0].type,e[0].type){case"vertex":case"segment":var s=e[0].parent.refBounds?e[0].parent.refBounds:e[0].parent.bounds;n=r.initialized?t.getRangeStart(e[0]):s.top,i=r.initialized?t.getRangeExtent(e[0]):t._preferredRangeExtent?t._preferredRangeExtent:s.height;break;default:n=r.initialized?t.getRangeStart(e[0]):X(e[0]).bounds.top+e[0].bounds.height/2,i=r.initialized?t.getRangeExtent(e[0]):t._preferredRangeExtent?t._preferredRangeExtent:450}return t.flipScale?[n,n+i]:[n+i,n]}}class $t extends d{constructor(e){super(e)}run(){super.run()}}class Jt extends mt{constructor(e){super(),this._type=Lt.Axis,this._id=this._type+Pt(),this._attribute=void 0,this._channel=void 0,this._orientation=void 0,this._strokeColor="strokeColor"in e?e.strokeColor:"#555",this._textColor="textColor"in e?e.textColor:"#555",this._fontSize="fontSize"in e?e.fontSize:"12px",this._tickOffset="tickOffset"in e?e.tickOffset:0,this._tickSize="tickSize"in e?e.tickSize:5,this._tickAnchor=e.tickAnchor,this._tickVisible=!("tickVisible"in e)||e.tickVisible,this._pathVisible=!("pathVisible"in e)||e.pathVisible,this._labelOffset="labelOffset"in e?e.labelOffset:this._tickSize+this._tickOffset+3,this._labelFormat="labelFormat"in e?e.labelFormat:"",this._titleOffset="titleOffset"in e?e.titleOffset:40,this._rotateYTitle=!("rotateTitle"in e&&!e.rotateTitle),this._showTitle=!("titleVisible"in e)||e.titleVisible,this._labelRotation="labelRotation"in e?e.labelRotation:0,this._ticks=new mt,this._ticks._id=this._id+"_ticks",this.addChild(this._ticks),this._labels=new mt,this._labels._id=this._id+"_labels",this.addChild(this._labels),this._title=new Ct({text:this._titleText,fillColor:this._textColor,fontWeight:"bold"}),this._title._id=this.id+"_title",this.addChild(this._title),this._showTitle||(this._title.visibility="hidden"),this._pathPos=void 0}get pathPos(){return this._pathPos}get attribute(){return this._attribute}get channel(){return this._channel}get orientation(){return this._orientation}get tickSize(){return this._tickSize}get tickOffset(){return this._tickOffset}get tickAnchor(){return this._tickAnchor?this._tickAnchor:"x"===this._channel||"width"===this._channel?"center":"middle"}get labelOffset(){return this._labelOffset}get tickValues(){return this._tickValues}get labelValues(){return this._labelValues}get titleOffset(){return this._titleOffset}get boundsWithoutTitle(){let e=this.children.filter((e=>e.type!==Lt.PointText)),t=e[0].bounds.clone();for(let r=1;r<e.length;r++)"hidden"!=e[r].visibility&&(t=t.union(e[r].bounds));return t}}const Qt="top",er="bottom",tr="left";function rr(e,t,r,i){let s,o=e.domain,a=e.range;switch(e.type){case"linear":case"log":{let l=Math.abs(a[0]-a[1]);s="width"==t||"x"==t?45:30;let u,c=Math.max(2,Math.floor(l/s));if("width"==t||"height"==t){let n=!!i&&(i.elements[0].parent.layout&&i.elements[0].parent.layout.type==Q.STACK);o[1]=e._scale.invert(n?O(r)[t]:S(r)[t])}if("log"===e.type){u=[];let t=e._scale.ticks();for(let e of t){let r=Math.log(e)/Math.log(10)+1e-6;Math.abs(r-Math.floor(r))<c/t.length&&u.push(e)}}else u=n.ticks(o[0],o[1],c);return u}case"point":{s="width"==t||"x"==t?80:30;let r=Math.floor(e.rangeExtent/o.length),n=Math.ceil(s/r);return"x"==t?o.filter(((e,t)=>t%n==0)):o}case"time":{s="width"==t||"x"==t?80:30;let e,r,i=Math.floor((a[1]-a[0])/s),l=Math.ceil((o[1]-o[0])/i)/1e3,u=[1,60,3600,86400,2628003,31536e3],c=[n.timeSeconds,n.timeMinutes,n.timeHours,n.timeDays,n.timeMonths,n.timeYears];for(let t=0;t<u.length-1;t++)if(l>=u[t]&&l<u[t+1])return e=Math.floor(l/u[t]),r=c[t],r(o[0],o[1],e);return l>u[u.length-1]?(e=Math.floor(l/u[u.length-1]),r=c[u.length-1],r(o[0],o[1],e)):[]}default:return[]}}function nr(e,t){t.removeChild(e)}class ir extends Jt{constructor(e,t,r,n){super(n),this._encoding=e,this._attribute=this._encoding.attribute,this._channel=this._encoding.channel,this._scale=t,this._elems=r,this._flip="flip"in n&&n.flip,this._posArg="x"==this._channel||"width"==this._channel?n.pathY:n.pathX,this._orientation="orientation"in n?n.orientation:"x"===this._channel||"width"==this._channel?er:tr,this._titleText="title"in n?n.title:this._encoding.attribute,this._path="angle"===this._channel?new Et({strokeColor:this._strokeColor,id:this._id+"_path"}):new ce({strokeColor:this._strokeColor,id:this._id+"_path"}),this._pathVisible||(this._path.visibility="hidden"),this.addChild(this._path),this.createTicksLabels(n),e.dataTable.getAttributeType(this._attribute)!==Oe.Date||"labelFormat"in n||(this._labelFormat="%m/%d/%y"),"radialDistance"===this._channel&&"rotation"in n&&(this._rotate=[-n.rotation,this._elems[0].parent.x,this._elems[0].parent.y])}isFlipped(){return this._flip}get elements(){return this._elems}get scale(){return this._scale}createTicksLabels(e){"tickValues"in e?(this._tickValues=e.tickValues,this._labelValues=e.tickValues):(this._tickValues=rr(this._scale,this._channel,this._elems,this),this._labelValues=this._tickValues),this._ticks.removeAll();for(let e=0;e<this._tickValues.length;e++){let t=new ce({strokeColor:this._strokeColor,id:this._id+"_tick"+e});this._tickVisible||(t.visibility="hidden"),this._ticks.addChild(t)}let t;switch(this._labels.removeAll(),this._encoding.dataTable.getAttributeType(this._attribute)){case Oe.Date:t=n.timeFormat(this._labelFormat);break;case Oe.String:t=function(e){return e};break;default:t=n.format(this._labelFormat)}for(let[e,r]of this._labelValues.entries()){let n=new Ct({text:t(r),fontSize:this._fontSize,fillColor:this._textColor,id:this._id+"_label"+e});this._labels.addChild(n)}this._title._text=this._titleText}}class sr extends Jt{constructor(e,t,r,n){super(n),this._elems=e,this._attribute=r,this._channel=t,this._posArg="x"==this._channel||"width"==this._channel?n.pathY:n.pathX,this._labelAttribute=n.labelAttribute,this._orientation="orientation"in n?n.orientation:"x"===this._channel||"width"==this._channel?er:tr,this._titleText="title"in n?n.title:this._attribute,this._path="angle"===this._channel?new Et({strokeColor:this._strokeColor,id:this._id+"_path"}):new ce({strokeColor:this._strokeColor,id:this._id+"_path"}),this._pathVisible||(this._path.visibility="hidden"),this.addChild(this._path),this.createTicksLabels(n),this._elems[0].dataScope.dataTable.getAttributeType(this._attribute)!==Oe.Date||"labelFormat"in n||(this._labelFormat="%m/%d/%y")}get elements(){if(this.layout.type===Q.CLUSTER){const e=new Map(this._elems.map((e=>[e.dataScope.getAttributeValue(Te),e])));return this.layout._d3Root.leaves().map((t=>e.get(t.data[Te])))}return this._elems}get layout(){return this._elems[0].parent.layout}createTicksLabels(e){"tickValues"in e?(this._tickValues=e.tickValues,this._labelValues=e.tickValues):(this._tickValues=this.elements.map((e=>e.dataScope.getAttributeValue(this._labelAttribute?this._labelAttribute:this._attribute))),this._labelValues=this._tickValues),this._ticks.removeAll();for(let e=0;e<this._tickValues.length;e++){let t=new ce({strokeColor:this._strokeColor,id:this._id+"_tick"+e});this._tickVisible||(t.visibility="hidden"),this._ticks.addChild(t)}let t;switch(this._labels.removeAll(),this._elems[0].dataScope.dataTable.getAttributeType(this._labelAttribute?this._labelAttribute:this._attribute)){case Oe.Date:t=n.timeFormat(this._labelFormat);break;case Oe.String:t=function(e){return e};break;default:t=n.format(this._labelFormat)}for(let[e,r]of this._labelValues.entries()){let n=new Ct({text:t(r),fontSize:this._fontSize,fillColor:this._textColor,id:this._id+"_label"+e});this._labels.addChild(n)}this._title._text=this._titleText}}class or extends d{constructor(e){super(e)}run(){let e=this.inputVars.find((e=>e instanceof nt&&e.property==it.AXIS_ORIENTATION)).element;e instanceof ir?this._runForEncoding(e):e instanceof sr&&this._runForLayout(e),I(e._path)}_runForLayout(e){let t=e.channel,r=e.elements[0].parent.layout&&e.elements[0].parent.layout.type==Q.STACK?O(e.elements):S(e.elements),n=[];if("x"===t){let t=e.orientation===Qt?r.top-2:r.bottom+2;e._pathPos=e._posArg?e._posArg:t,n.push([r.left,e._pathPos]),n.push([r.right,e._pathPos]),e._path._setVertices(n)}else if("y"===t){let t=e.orientation===tr?r.left-2:r.right+2;e._pathPos=e._posArg?e._posArg:t,n.push([e._pathPos,r.top]),n.push([e._pathPos,r.bottom]),e._path._setVertices(n)}else if("angle"===t){let t=e.elements[0].parent.layout;t.type===Q.CLUSTER&&(e._path._x=t.x,e._path._y=t.y,e._path._radius=t.radius)}}_runForEncoding(e){let t=e.channel,r=e.elements[0].parent.layout&&e.elements[0].parent.layout.type==Q.STACK?O(e.elements):S(e.elements),n=[];if("x"===t){let t=e.orientation===Qt?r.top-2:r.bottom+2;e._pathPos=e._posArg?e._posArg:t,n.push([e.scale.range[0],e._pathPos]),n.push([e.scale.range[1],e._pathPos])}else if("width"===t){let t=e.orientation===Qt?r.top-2:r.bottom+2;e._pathPos=e._posArg?e._posArg:t,n.push([r.left,e._pathPos]),n.push([r.right,e._pathPos])}else if("radialDistance"===t){let t=e.elements[0].parent,r=t.y;e._pathPos=e._posArg?e._posArg:r,n.push([e.scale.range[0]+t.x,e._pathPos]),n.push([e.scale.range[1]+t.x,e._pathPos])}else if("y"===t){let t=e.orientation===tr?r.left-2:r.right+2;e._pathPos=e._posArg?e._posArg:t,n.push([e._pathPos,e.scale.range[0]]),n.push([e._pathPos,e.scale.range[1]])}else if("height"===t){let t=e.orientation===tr?r.left-2:r.right+2;e._pathPos=e._posArg?e._posArg:t,n.push([e._pathPos,r.bottom]),n.push([e._pathPos,r.top])}e._path._setVertices(n)}}class ar extends d{constructor(e){super(e)}run(){let e=this.inputVars.find((e=>e instanceof nt&&e.property==it.AXIS_PATH_POSITION)).element;e instanceof ir?this._runForEncoding(e):e instanceof sr&&this._runForLayout(e);for(let t of e._ticks.children)t._updateBounds();I(e._ticks)}_runForLayout(e){let t=e.channel;if("x"==t){let t=e.orientation==er?e.pathPos+e.tickOffset:e.pathPos-e.tickOffset,r=e.orientation==er?e.tickSize:-e.tickSize;for(let[n,i]of e._ticks.children.entries()){let s=e.elements[n].bounds[e.tickAnchor];i._setVertices([[s,t],[s,t+r]])}}else if("y"===t){let t=e.orientation==tr?e.pathPos-e.tickOffset:e.pathPos+e.tickOffset,r=e.orientation==tr?-e.tickSize:e.tickSize;for(let[n,i]of e._ticks.children.entries()){let s=e.elements[n].bounds[e.tickAnchor];i._setVertices([[t,s],[t+r,s]])}}else if("angle"===t){let t=e.elements[0].parent.layout;if(t.type===Q.CLUSTER){let r=t._d3Root.leaves();const n=new Map(r.map((e=>[e.data[Te],[e.x,e.y]])));for(let[r,i]of e._ticks.children.entries()){let s=e.elements[r].dataScope.getAttributeValue(Te),o=ye(n.get(s)[0])-90;i._setVertices([[t.x+n.get(s)[1]+e.elements[r].bounds.width/2,t.y],[t.x+n.get(s)[1]+e.elements[r].bounds.width/2+e.tickSize,t.y]]),i._rotate=[o,t.x,t.y]}}}}_runForEncoding(e){let t=e.channel,r=S(e.elements);if("x"==t){let t=e.orientation==er?e.pathPos+e.tickOffset:e.pathPos-e.tickOffset,r=e.orientation==er?e.tickSize:-e.tickSize;for(let[n,i]of e._ticks.children.entries())i._setVertices([[e.scale.map(e._tickValues[n]),t],[e.scale.map(e._tickValues[n]),t+r]])}else if("width"==t){let t=e.orientation==er?e.pathPos+e.tickOffset:e.pathPos-e.tickOffset,n=e.orientation==er?e.tickSize:-e.tickSize;if(!!(e.isFlipped()||e.elements[0].type===Lt.Area&&"right"===e.elements[0].baseline))for(let[i,s]of e._ticks.children.entries())s._setVertices([[r.left+e.scale.rangeExtent-e.scale.map(e._tickValues[i]),t],[r.left+e.scale.rangeExtent-e.scale.map(e._tickValues[i]),t+n]]);else for(let[i,s]of e._ticks.children.entries())s._setVertices([[e.scale.map(e._tickValues[i])+r.left,t],[e.scale.map(e._tickValues[i])+r.left,t+n]])}else if("y"===t){let t=e.orientation==tr?e.pathPos-e.tickOffset:e.pathPos+e.tickOffset,r=e.orientation==tr?-e.tickSize:e.tickSize;for(let[n,i]of e._ticks.children.entries())i._setVertices([[t,e.scale.map(e._tickValues[n])],[t+r,e.scale.map(e._tickValues[n])]])}else if("height"===t){let t=e.orientation==tr?e.pathPos-e.tickOffset:e.pathPos+e.tickOffset,n=e.orientation==tr?-e.tickSize:e.tickSize;if(!!(e.isFlipped()||e.elements[0].type===Lt.Area&&"top"===e.elements[0].baseline))for(let[i,s]of e._ticks.children.entries())s._setVertices([[t,r.top+e.scale.map(e._tickValues[i])],[t+n,r.top+e.scale.map(e._tickValues[i])]]);else for(let[i,s]of e._ticks.children.entries()){let o=r.bottom-e.scale.map(e._tickValues[i]);s._setVertices([[t,o],[t+n,o]])}}else if("radialDistance"===t){let t=e.orientation==er?e.pathPos+e.tickOffset:e.pathPos-e.tickOffset,r=e.orientation==er?e.tickSize:-e.tickSize,n=e.elements[0].parent;for(let[i,s]of e._ticks.children.entries())s._setVertices([[n.x+e.scale.map(e._tickValues[i]),t],[n.x+e.scale.map(e._tickValues[i]),t+r]])}}}class lr extends d{constructor(e){super(e)}run(){let e=this.inputVars.find((e=>e instanceof nt&&e.property==it.AXIS_PATH_POSITION)).element;e instanceof ir?this._runForEncoding(e):e instanceof sr&&this._runForLayout(e);for(let t of e._labels.children)t._updateBounds();I(e._labels)}_runForLayout(e){let t=e.channel;if("x"==t){let t=e.orientation==er?e.labelOffset:-e.labelOffset,r=e.orientation==er?[N.CENTER,N.TOP]:[N.CENTER,N.BOTTOM];for(let[n,i]of e._labels.children.entries()){let s=e.elements[n].bounds;i._x=s[e.tickAnchor],i._y=e.pathPos+t,i._anchor=r,e._labelRotation&&(i._rotate=[e._labelRotation,i.x,i.y],i._anchor=[N.RIGHT,N.MIDDLE])}}else if("y"===t){let t=e.orientation==tr?-e.labelOffset:e.labelOffset,r=e.orientation==tr?[N.RIGHT,N.MIDDLE]:[N.LEFT,N.MIDDLE];for(let[n,i]of e._labels.children.entries()){let s=e.elements[n].bounds;i._x=e.pathPos+t,i._y=e.tickAnchor==N.MIDDLE?s.y:s[e.tickAnchor],i._anchor=r,e._labelRotation&&(i._rotate=[e._labelRotation,i.x,i.y],i._anchor=[N.RIGHT,r[1]])}}else if("angle"===t){let t=e.elements[0].parent.layout;if(t.type===Q.CLUSTER){let r=t._d3Root.leaves();const n=new Map(r.map((e=>[e.data[Te],[e.x,e.y]])));let i=5;for(let[r,s]of e._labels.children.entries()){let o=e.elements[r].dataScope.getAttributeValue(Te);if(n.get(o)[0]<Math.PI){let a=ye(n.get(o)[0])-90;s._anchor=[N.LEFT,N.MIDDLE],s._x=t.x+n.get(o)[1]+e.elements[r].bounds.width/2+i,s._y=t.y,s._rotate=[a,t.x,t.y]}else{let a=ye(n.get(o)[0])+90;s._anchor=[N.RIGHT,N.MIDDLE],s._x=t.x-n.get(o)[1]-e.elements[r].bounds.width/2-i,s._y=t.y,s._rotate=[a,t.x,t.y]}}}}}_runForEncoding(e){let t=e.channel,r=S(e.elements);if("x"==t){let t=e.orientation==er?e.labelOffset:-e.labelOffset,r=e.orientation==er?[N.CENTER,N.TOP]:[N.CENTER,N.BOTTOM];for(let[n,i]of e._labels.children.entries())i._x=e.scale.map(e.labelValues[n]),i._y=e.pathPos+t,i._anchor=r,e._labelRotation&&(i._rotate=[e._labelRotation,i.x,i.y],i._anchor=[N.RIGHT,r[1]])}else if("width"===t){let t=e.orientation==er?e.labelOffset:-e.labelOffset,n=e.orientation==er?[N.CENTER,N.TOP]:[N.CENTER,N.BOTTOM],i=!!(e.isFlipped()||e.elements[0].type===Lt.Area&&"right"===e.elements[0].baseline);for(let[s,o]of e._labels.children.entries())o._x=i?r.left+e.scale.rangeExtent-e.scale.map(e.labelValues[s]):e.scale.map(e.labelValues[s])+r.left,o._y=e.pathPos+t,o._anchor=n,e._labelRotation&&(o._rotate=[e._labelRotation,o.x,o.y],o._anchor=[N.RIGHT,n[1]])}else if("y"===t){let t=e.orientation==tr?-e.labelOffset:e.labelOffset,r=e.orientation==tr?[N.RIGHT,N.MIDDLE]:[N.LEFT,N.MIDDLE];for(let[n,i]of e._labels.children.entries())i._x=e.pathPos+t,i._y=e.scale.map(e.labelValues[n]),i._anchor=r,e._labelRotation&&(i._rotate=[e._labelRotation,i.x,i.y],i._anchor=[N.RIGHT,r[1]])}else if("height"===t){let t=e.orientation==tr?-e.labelOffset:e.labelOffset,n=e.orientation==tr?[N.RIGHT,N.MIDDLE]:[N.LEFT,N.MIDDLE],i=e.elements[0].type===Lt.Area&&"top"===e.elements[0].baseline;for(let[s,o]of e._labels.children.entries())o._x=e.pathPos+t,o._y=i?r.top+e.scale.map(e.labelValues[s]):r.bottom-e.scale.map(e.labelValues[s]),o._anchor=n,e._labelRotation&&(o._rotate=[e._labelRotation,o.x,o.y],o._anchor=[N.RIGHT,n[1]])}else if("radialDistance"==t){let t=e.orientation==er?e.labelOffset:-e.labelOffset,r=e.orientation==er?[N.CENTER,N.TOP]:[N.CENTER,N.BOTTOM],n=e.elements[0].parent;for(let[i,s]of e._labels.children.entries())s._x=n.x+e.scale.map(e.labelValues[i]),s._y=e.pathPos+t,s._anchor=r,e._labelRotation&&(s._rotate=[e._labelRotation,s.x,s.y],s._anchor=[N.RIGHT,r[1]])}}}class ur extends d{constructor(e){super(e)}run(){super.run();let e=this._outputVars[0].element,t=G(e.parent);for(let e of t){let t=e.layout;if(!t)return;this.fillGrid(e,t),this.computeCellBounds(e,t),this.placeElements(e,t)}let r=Z(e,!0);for(let e of r)I(e)}placeElements(e,t){let r=Ue(e,"x"),n=Ue(e,"y");for(let r=0;r<e.children.length;r++){let n=e.children[r],i=t.cellBounds[r],s=0,o=0;switch(t._cellHorzAlignment){case N.LEFT:s=i.left-n.refBounds.left;break;case N.CENTER:s=i.x-n.refBounds.x;break;case N.RIGHT:s=i.right-n.refBounds.right}switch(t._cellVertAlignment){case N.TOP:o=i.top-n.refBounds.top;break;case N.MIDDLE:o=i.y-n.refBounds.y;break;case N.BOTTOM:o=i.bottom-n.refBounds.bottom}Xe(n,s,o)}if(r.length>0)for(let e of r)for(let r of e.scales){let n=e.getElements(r)[0],i=t.getIndex(n);if(i<0)continue;let s="point"===r.type?t.cellBounds[i].left+n.bounds.width/2:t.cellBounds[i].left,o=s+r.rangeExtent;r.range=r.range[0]<r.range[1]?[s,o]:[o,s]}if(n.length>0)for(let e of n)for(let r of e.scales){let n=e.getElements(r)[0],i=t.getIndex(n);if(i<0)continue;let s="point"===r.type?t.cellBounds[i].top+e.getElements(r)[0].bounds.height/2:t.cellBounds[i].top,o=s+r.rangeExtent;r.range=r.range[0]<r.range[1]?[s,o]:[o,s]}}fillGrid(e,t){t._grid=new Array(t.numRows).fill(null).map((()=>new Array(t.numCols).fill(null)));for(let r=0;r<e.children.length;r++){let e=t.getRowCol(r);t._grid[e.row][e.col]=r}}computeCellBounds(e,t){let r=e.children.map((e=>e.refBounds?e.refBounds:e.bounds)),n=t._colGap,i=t._rowGap;if(void 0===t._left){let e=r.map((e=>e.left)),n=r.map((e=>e.top));t._left=Math.min(...e),t._top=Math.min(...n)}let s=r.map((e=>e.width)),o=r.map((e=>e.height)),a=Math.max(...s),l=Math.max(...o);t._cellBounds=new Array(e.children.length).fill(null);for(let r=0;r<t.numRows;r++)for(let s=0;s<t.numCols;s++){let o=t._grid[r][s];o>=e.children.length||(t._cellBounds[o]=new k(t._left+(a+n)*s+0,t._top+(l+i)*r,a,l))}}}class cr extends d{constructor(e){super(e)}run(){let e=this.outputVar.element;e.scale?this._runForEncoding(e):this._runForLayout(e),I(e)}_runForLayout(e){let t=e.channel,r=S(e.elements),n=[];if("x"===t)for(let t=0;t<e.values.length;t++){let i=e.elements[t].refBounds;n.push({x1:i.x,y1:r.bottom,x2:i.x,y2:r.top})}else if("y"===t)for(let t=0;t<e.values.length;t++){let i=e.elements[t].refBounds;n.push({x1:r.left,y1:i.y,x2:r.right,y2:i.y})}e.lines=n}_runForEncoding(e){let t=e.channel,r=S(e.elements),n=[];if("x"===t)for(let t of e.values)n.push({x1:e.scale.map(t),y1:r.bottom,x2:e.scale.map(t),y2:r.top});else if("width"===t)for(let t of e.values)n.push({x1:e.scale.map(t)+r.left,y1:r.bottom,x2:e.scale.map(t)+r.left,y2:r.top});else if("y"===t)for(let t of e.values)n.push({x1:r.left,y1:e.scale.map(t),x2:r.right,y2:e.scale.map(t)});else if("height"===t)for(let t of e.values)n.push({x1:r.left,y1:r.bottom-e.scale.map(t),x2:r.right,y2:r.bottom-e.scale.map(t)});else if("radialDistance"===t){let t=e.elements[0].parent;for(let r=0;r<e.values.length;r++)n.push({x:t.x,y:t.y,r:e.scale.map(e.values[r])})}e.lines=n}}class hr extends d{constructor(e){super(e)}run(){super.run();let e=this._outputVars[0].element,t=Z(e)[0],r=G(e.parent);for(let e of r){let r=e.layout;if(!r)return;switch(t.type){case Lt.Rect:case Lt.Circle:case Lt.Image:this._stackRects(e,r);break;case Lt.Area:e.children[0].orientation===ie.HORIZONTAL?this._stackAreasVert(e,r):this._stackAreasHorz(e,r);break;case Lt.Arc:case Lt.Pie:t.parent.classId===e.classId&&this._stackArcs(e,r)}}I(t)}_stackArcs(e,t){if(t.orientation===ie.ANGULAR){let t=90;if((this._direction?this._direction:oe.Clockwise)===oe.Clockwise)for(let r of e.children){let e=me(t-r.angle);Ke(r,"startAngle",e),t=e}else for(let r of e.children){let e=me(t+r.angle);Ke(r,"startAngle",e),t=e}}else if(t.orientation===ie.RADIAL){let t=Math.min(...e.children.map((e=>e.innerRadius)));for(let r of e.children){let e=r.outerRadius-r.innerRadius;Ke(r,"innerRadius",t),Ke(r,"outerRadius",t+e),t=r._outerRadius}}}_stackAreasVert(e,t){let r=e.children,n=e.bounds,i=t.vertCellAlignment===N.TOP?n.top:n.bottom,s=t.vertCellAlignment===N.TOP?1:-1,o=r[0].vertices.length/2,a=new Array(o).fill(0);for(let e of r){for(let t=0;t<o;t++){let r=e.vertices[t],n=e.vertices[2*o-t-1],l=Math.abs(r.y-n.y),u=i+a[t]*s,c=i+(a[t]+l)*s;Xe(r,0,u-r.y),Xe(n,0,c-n.y),a[t]+=l}let t=e.bounds.bottom;e._updateBounds(),e._refBounds.translate(0,e.bounds.bottom-t)}if(t.vertCellAlignment===N.MIDDLE)for(let e of r){for(let t=0;t<o;t++){let r=e.vertices[t],i=e.vertices[2*o-t-1],s=n.middle+a[t]/2;Xe(r,0,s-n.bottom),Xe(i,0,s-n.bottom)}let t=e.bounds.bottom;e._updateBounds(),e._refBounds.translate(0,e.bounds.bottom-t)}}_stackAreasHorz(e,t){}_stackRects(e,t){e.scene;let r=t._orientation,n=e.children.map((e=>e.bounds)),i=n.map((e=>e.left)),s=n.map((e=>e.top)),o=n.map((e=>e.width)),a=n.map((e=>e.height)),l=null==t._left?Math.min(...i):t._left,u=null==t._top?Math.min(...s):t._top,c=Math.max(...o),h=Math.max(...a);if(r==ie.VERTICAL)for(let r=0;r<e.children.length;r++){let n=e.children[r],i=0,s=u+n.bounds.height/2-n.bounds.y;u+=n.bounds.height+t._gap,Xe(n,i,s),n._updateBounds();let o=0,a=0;if(!We(n))switch(t._horzCellAlignment){case N.LEFT:o=l-n.bounds.left;break;case N.CENTER:o=l+c/2-n.bounds.x;break;case N.RIGHT:o=l+c-n.bounds.right}Xe(n,o,a)}else for(let r=0;r<e.children.length;r++){let n=e.children[r],i=l+n.bounds.width/2-n.bounds.x,s=0;l+=n.bounds.width+t._gap,Xe(n,i,s),n._updateBounds();let o=0,a=0;if(!He(n))switch(t._vertCellAlignment){case N.TOP:a=u-n.bounds.top;break;case N.MIDDLE:a=u+h/2-n.bounds.y;break;case N.BOTTOM:a=u+h-n.bounds.bottom}Xe(n,o,a)}}}class dr extends d{constructor(e){super(e)}run(){super.run()}}class fr extends d{constructor(e){super(e)}run(){let e=this.inputVars[0],t=this.outputVar,r=e.attribute,i=t.attribute,s=e.dataset,o=t.dataset,a=s.getAttributeValues(r),l=n.bin()(a),u=this._findBin,c=a.map((e=>{let t=u(e,l);return(t.x0+t.x1)/2+""})),h=l.map((e=>(e.x0+e.x1)/2+""));o._addAttribute(i,Oe.String,c),o.orderAttributeValues(i,h)}_findBin(e,t){for(let r of t)if(r.indexOf(e)>=0)return r}}class pr extends d{constructor(e){super(e)}run(){let e=this.outputVar,t=e.dataset,r=e.predicate,n=[];for(let[e,i]of t.data.entries())r.testTuple(i)||n.push(e);n.sort(((e,t)=>t-e)),n.forEach((e=>{e>=0&&e<t.data.length&&(t._data.splice(e,1),t._rawData.splice(e,1))}));for(let e of t._attributes)t._attrSummaries[e]=Le(t.data.map((t=>t[e])),t._attrTypes[e])}}class _r extends p{constructor(e,t,r){super(e),this._dataset=r,this._predicate=t}get dataset(){return this._dataset}get predicate(){return this._predicate}}class gr extends p{constructor(e,t){super(e),this._group=t}get element(){return this._group}}class yr extends d{constructor(e){super(e)}run(){super.run();let e=this.inputVars.find((e=>e.type===_.AFFIXATION)).affixation,t=e.base,r=e.element,n=e.elementAnchor,i=e.baseAnchor,s=e.channel,o=e.offset,a=G(t),l=G(r);"radialDistance"===s?this._handleRadialDistance(l,a,n,i,o):"angle"===s?this._handleAngle(l,a,n,i,o):this._handleXY(s,l,a,n,i,o);let u=Z(r,!0);for(let e of u)I(e)}_handleAngle(e,t,r,n,i){for(let s=0;s<e.length;s++){let o,a=t[s],l=e[s];o=a.type==Lt.Arc?"left"==n?a.endAngle+i:"center"==n?a.startAngle+a.angle/2+i:a.startAngle+i:90,l._rotate?l._rotate[0]=90-o:(Xe(l,a.x-l.bounds[r],a.y-e[s].y),l._rotate=[90-o,t[s].x,t[s].y])}}_handleRadialDistance(e,t,r,n,i){for(let s=0;s<e.length;s++){let o,a=t[s],l=e[s];a.type==Lt.Arc||a.type==Lt.Ring?o="top"==n?a.outerRadius+i:"bottom"==n?a.innerRadius+i:(a.outerRadius+a.innerRadius)/2+i:a.type==Lt.Circle&&(o="top"==n?a.radius+i:"bottom"==n?i:a.radius/2+i),Xe(l,a.x-l.x,a.y-o-l.bounds[r]),l._rotate?l._rotate=[l._rotate[0],a.x,a.y]:l._rotate=[0,a.x,a.y]}}_handleXY(e,t,r,n,i,s){for(let o=0;o<t.length;o++){let a,l=r[o],u=t[o];if(de(l)){a=he(l,[N.LEFT,N.TOP].includes(i)?0:[N.CENTER,N.MIDDLE].includes(i)?.5:1)[e]}else a=l.bounds[i]+s;t[0].type===Lt.PointText?(u.anchor["x"==e?0:1]=n,Ke(u,e,a)):"x"==e?Xe(u,a-u.bounds[n],0):Xe(u,0,a-u.bounds[n])}}}class mr extends p{constructor(e,t){super(e),this._affx=t}get affixation(){return this._affx}}class br extends d{constructor(e){super(e)}run(){let e=this.inputVars[0],t=this.outputVar,r=e.attribute,n=t.attribute,i=e.dataset,s=t.dataset,o=this.args,a="min"in o?o.min:i.getAttributeSummary(r).min,l="max"in o?o.max:i.getAttributeSummary(r).max,u=a,c=[];for(;u<l;)c.push(u),u+=o.interval;c.push(u);let h={},d={};if(o.groupBy)for(let e of i.data){let t=o.groupBy.map((t=>e[t])).join("-");t in h||(h[t]=[],d[t]=o.groupBy.map((t=>e[t]))),h[t].push(e[r])}else h[""]=i.data.map((e=>e[r])),d[""]="";let f=[];for(let e in d){let t=vr(xr(o.bandwidth),c,h[e]);for(let i of t){let t={};""!==e&&o.groupBy.forEach(((r,n)=>t[r]=d[e][n])),t[r]=i[0],t[n]=i[1],f.push(t)}}let p={};if(p[r]=i.getAttributeType(r),p[n]=Oe.Number,o.groupBy)for(let e of o.groupBy)p[e]=i.getAttributeType(e);s.initialize(f,s.url,p)}}function vr(e,t,r){return t.map((t=>[t,n.mean(r,(r=>e(t-r)))]))}function xr(e){return t=>Math.abs(t/=e)<=1?.75*(1-t*t)/e:0}class Er extends d{constructor(e){super(e)}run(){super.run();let e=this._outputVars[0].element,t=G(e.parent);for(let e of t){let t=e.layout;if(!t)return;let r=e.children.map((e=>({name:e.id,radius:e.radius,itm:e}))),i=r.reduce(((e,t)=>e+Math.pow(t.radius,2)),0),s=Math.sqrt(i);void 0===t._width&&(t._width=s),void 0===t._height&&(t._height=s);let o=n.hierarchy({name:"root",children:r}).sum((e=>e.radius?e.radius:0)).sort(((e,t)=>t.value-e.value));n.pack().size([t._width,t._height]).radius((e=>e.value))(o);for(let e of o.children){let r=e.data.itm;Xe(r,t._x-o.x+e.x-r.x,t._y-o.y+e.y-r.y)}}let r=Z(e,!0);for(let e of r)I(e)}}class wr extends d{constructor(e){super(e)}run(){let e=this.inputVars.find((e=>e instanceof nt&&e.property==it.AXIS_PATH_POSITION)).element;e instanceof ir?this._runForEncoding(e):e instanceof sr&&this._runForLayout(e),I(e._title)}_runForEncoding(e){let t=e.channel,r=S(e.elements);if("x"==t)e._title._x=(e.scale.range[0]+e.scale.range[1])/2,e._title._y=e.orientation==er?e.pathPos+e.titleOffset:e.pathPos-e.titleOffset;else if("width"==t)e._title._x=r.left+e.scale.rangeExtent/2,e._title._y=e.orientation==er?e.pathPos+e.titleOffset:e.pathPos-e.titleOffset;else if("y"===t)e._rotateYTitle?(e._title._x=e.orientation==tr?e.pathPos-e.titleOffset:e.pathPos+e.titleOffset,e._title._y=(e.scale.range[0]+e.scale.range[1])/2,e._title._rotate=e.orientation==tr?[-90,e._title._x,e._title._y]:[90,e._title._x,e._title._y]):(e._title._x=e.orientation==tr?e.pathPos-e.titleOffset:e.pathPos+e.titleOffset,e._title._y=Math.min(e.scale.range[0],e.scale.range[1])-25,e._title._rotate=void 0);else if("height"===t)e._title._x=r.center,e._title._y=(r.top+r.bottom)/2-r.width/2-e.titleOffset,e._title._rotate=e.orientation==tr?[-90,r.center,r.middle]:[90,r.center,r.middle];else if("radialDistance"===t){let t=e.elements[0].parent;e._title._x=t.x+e.scale.rangeExtent/2,e._title._y=e.orientation==er?e.pathPos+e.titleOffset:e.pathPos-e.titleOffset,e._rotate&&(e._title._rotate=e._rotate.slice())}}_runForLayout(e){let t=e.channel,r=e.elements[0].parent.layout&&e.elements[0].parent.layout.type==Q.STACK?O(e.elements):S(e.elements);if("x"==t)e._title._x=r.center,e._title._y=e.orientation==er?e.pathPos+e.titleOffset:e.pathPos-e.titleOffset;else if("y"===t)e._title._x=r.center,e._title._y=r.middle-r.width/2-e.titleOffset,e._title._rotate=e.orientation==tr?[-90,r.center,r.middle]:[90,r.center,r.middle];else if("angle"===t){let t=e.elements[0].parent.layout;t.type===Q.CLUSTER&&(e._title._x=t.x,e._title._y=t.y)}}}class Ar extends Ft{constructor(e){super(e)}run(){super.run();let e,t=this.vars.find((e=>e.type===_.ALIGNMENT)).alignment,r=t.anchor,i=t.elements;r==N.Top||r==N.LEFT?e=Math.min(...i.map((e=>e.bounds[r]))):r==N.BOTTOM||r==N.RIGHT?e=Math.max(...i.map((e=>e.bounds[r]))):r!=N.CENTER&&r!=N.MIDDLE||(e=n.mean(i.map((e=>e.bounds[r]))));for(let n of i){let i=Ye(n,t.channel);if(i){let s=e-n.bounds[r];Xe(i,"x"===t.channel?s:0,"x"===t.channel?0:s)}}for(let e of i)I(e)}}class Cr extends p{constructor(e,t){super(e),this._aln=t}get alignment(){return this._aln}}class Rr extends d{constructor(e){super(e)}run(){super.run();let e=this._outputVars[0].element,t=G(e.parent);for(let e of t){let t=e.layout;if(!t)continue;let r=Re(e.children[0]);if(!r)continue;let i=r.linkList.map((e=>({source:r.getNode(e.source),target:r.getNode(e.target)}))),s=n.forceSimulation(r.nodeList).force("charge",n.forceManyBody().strength(-t._repulsion)).force("link",n.forceLink(i).id((e=>e.id)).distance(t._linkDistance)).force("x",n.forceX()).force("y",n.forceY()).force("center",n.forceCenter(t._x,t._y).strength(t._attraction));s.stop(),s.tick(t._iterations);for(let t=0;t<e.children.length;t++){let n=e.children[t],i=r.nodeList[t];Xe(n,i.x-n.x,i.y-n.y)}}let r=Z(e,!0);for(let e of r)I(e)}}class kr extends d{constructor(e){super(e)}run(){super.run();let e=this._outputVars[0].element,t=G(e);switch(e.type){case Lt.Arc:this._updateArcLinks(t);break;case Lt.BezierCurve:this._updateBezierLinks(t);break;case Lt.BundledPath:this._updateBundledLinks(t);break;case Lt.Line:default:this._updateLineLinks(t)}I(e)}_updateArcLinks(e){for(let t of e){let e=t.source.x<t.target.x?t.source:t.target,r=t.source.x<t.target.x?t.target:t.source;t._x=(e.x+r.x)/2,t._y=(e.y+r.y)/2,t._innerRadius=Math.sqrt(Math.pow(e.x-r.x,2)+Math.pow(e.y-r.y,2))/2,t._outerRadius=t._innerRadius+t._thickness;let n=be(e.x,e.y,t._x,t._y),i=be(r.x,r.y,t._x,t._y);t.direction===oe.CLOCKWISE&&([n,i]=[i,n]),Ke(t,"startAngle",n),Ke(t,"angle",Math.abs(i-n))}}_updateBezierLinks(e){let t=this._inputVars[0].element,r=G(t),n=t.parent.layout;n.type===Q.DIRECTED||n.type===Q.TIDYTREE?this._updateBezierLinksForDirectedGraph(r,e,n):n.type===Q.CLUSTER&&this._updateBezierLinksForClusteredGraph(r,e,n)}_updateBezierLinksForClusteredGraph(e,t,r){const i=r._d3Root.descendants(),s=new Map(i.map((e=>[Tr(e),e]))),o=new Map(i.map((e=>[e.data[Te],Tr(e)])));if(r.isRadial()){const e=n.linkRadial().angle((e=>e.x)).radius((e=>e.y));for(let n of t){let t=n.source,i=n.target,a=t.dataScope.getAttributeValue(Te),l=i.dataScope.getAttributeValue(Te),u=s.get(o.get(a)),c=s.get(o.get(l));n._d=pe(e({source:u,target:c}),r.x,r.y)}}else if(r.orientation===ie.VERTICAL){const e=n.linkVertical().x((e=>e.x)).y((e=>e.y));for(let n of t){let t=n.source,i=n.target,a=t.dataScope.getAttributeValue(Te),l=i.dataScope.getAttributeValue(Te),u=s.get(o.get(a)),c=s.get(o.get(l));n._d=pe(e({source:u,target:c}),r.left-r._x0,r.top)}}else if(r.orientation===ie.HORIZONTAL){const e=n.linkHorizontal().x((e=>e.y)).y((e=>e.x));for(let n of t){let t=n.source,i=n.target,a=t.dataScope.getAttributeValue(Te),l=i.dataScope.getAttributeValue(Te),u=s.get(o.get(a)),c=s.get(o.get(l));n._d=pe(e({source:u,target:c}),r.left,r.top-r._x0)}}}_updateBezierLinksForDirectedGraph(e,t,r){let n={},i={},s={},o={};for(let t of e){i[t.id]=0,n[t.id]=0;let e=t.links.filter((e=>e.source===t)),r=t.links.filter((e=>e.target===t));o[t.id]=r.map((e=>e.strokeWidth)).reduce(((e,t)=>e+t),0),s[t.id]=e.map((e=>e.strokeWidth)).reduce(((e,t)=>e+t),0)}r.spreadLinks&&("LR"===r.direction||"RL"===r.direction?t.sort(((e,t)=>be(e.target.bounds.x,e.target.bounds.y,e.source.bounds.x,e.source.bounds.y)-be(t.target.bounds.x,t.target.bounds.y,t.source.bounds.x,t.source.bounds.y))):t.sort(((e,t)=>be(t.target.bounds.x,t.target.bounds.y,t.source.bounds.x,t.source.bounds.y)-be(e.target.bounds.x,e.target.bounds.y,e.source.bounds.x,e.source.bounds.y))));for(let e of t){let t,a,l,u,c=e.source,h=e.target;r.spreadLinks?"LR"===r.direction||"RL"===r.direction?(t=c.bounds[e.sourceAnchor[0]]+e.sourceOffset[0],l=h.bounds[e.targetAnchor[0]]+e.targetOffset[0],a=c.bounds[e.sourceAnchor[1]]+e.sourceOffset[1]-s[c.id]/2+n[c.id]+e.strokeWidth/2,u=h.bounds[e.targetAnchor[1]]+e.targetOffset[1]-o[h.id]/2+i[h.id]+e.strokeWidth/2,n[c.id]+=e.strokeWidth,i[h.id]+=e.strokeWidth):(a=c.bounds[e.sourceAnchor[1]]+e.sourceOffset[1],u=h.bounds[e.targetAnchor[1]]+e.targetOffset[1],t=c.bounds[e.sourceAnchor[0]]+e.sourceOffset[0]-s[c.id]/2+n[c.id]+e.strokeWidth/2,l=h.bounds[e.targetAnchor[0]]+e.targetOffset[0]-o[h.id]/2+i[h.id]+e.strokeWidth/2,n[c.id]+=e.strokeWidth,i[h.id]+=e.strokeWidth):(t=c.bounds[e.sourceAnchor[0]]+e.sourceOffset[0],a=c.bounds[e.sourceAnchor[1]]+e.sourceOffset[1],l=h.bounds[e.targetAnchor[0]]+e.targetOffset[0],u=h.bounds[e.targetAnchor[1]]+e.targetOffset[1]),e.orientation===ie.HORIZONTAL?e._setVertices([[t,a],[(t+l)/2,a],[t,u],[l,u]]):e.orientation===ie.VERTICAL&&e._setVertices([[t,a],[t,(a+u)/2],[l,a],[l,u]])}}_updateBundledLinks(e){let t=this._inputVars[0].element.parent.layout;if(t.type!==Q.CLUSTER)throw"Bundled links must work on a cluster layout";let r=t._d3Root.leaves();const i=new Map(r.map((e=>[Tr(e),e]))),s=new Map(r.map((e=>[e.data[Te],Tr(e)]))),o=n.lineRadial().curve(n.curveBundle.beta(e[0]._strength)).radius((e=>e.y)).angle((e=>e.x));for(let r of e){let e=r.source.dataScope.getAttributeValue(Te),n=r.target.dataScope.getAttributeValue(Te),a=i.get(s.get(e)),l=i.get(s.get(n));(a.outgoing??=[]).push([a,l]),l.incoming??=[];let u=a.path(l);r._d=pe(o(u),t.x,t.y)}}_updateLineLinks(e){for(let t of e){let e=t.source,r=t.target;t.vertices[0]._x=e.bounds.x,t.vertices[0]._y=e.bounds.y,t.vertices[1]._x=r.bounds.x,t.vertices[1]._y=r.bounds.y}}}function Tr(e){return`${e.parent?Tr(e.parent)+".":""}${e.data[Te]}`}var Sr,Or,Ir,Nr,Lr,Vr,Pr,Dr,Br,Mr,Gr,jr,zr,Fr,Ur,Hr,Wr,Yr,Xr,qr,Kr,Zr,$r,Jr,Qr,en,tn,rn,nn,sn,on,an,ln,un,cn,hn,dn,fn,pn,_n,gn,yn,mn,bn,vn,xn,En,wn,An,Cn,Rn,kn,Tn,Sn,On,In,Nn,Ln,Vn,Pn,Dn,Bn,Mn,Gn,jn,zn,Fn,Un,Hn,Wn,Yn,Xn,qn,Kn,Zn,$n,Jn,Qn,ei,ti,ri,ni,ii,si,oi,ai,li,ui,ci,hi,di,fi,pi,_i,gi,yi,mi,bi,vi,xi,Ei,wi,Ai,Ci,Ri,ki,Ti,Si,Oi="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Ii(){if(Nr)return Ir;return Nr=1,Ir=function(e,t){return e===t||e!=e&&t!=t}}function Ni(){if(Vr)return Lr;Vr=1;var e=Ii();return Lr=function(t,r){for(var n=t.length;n--;)if(e(t[n][0],r))return n;return-1}}function Li(){if(Hr)return Ur;Hr=1;var e=Or?Sr:(Or=1,Sr=function(){this.__data__=[],this.size=0}),t=function(){if(Dr)return Pr;Dr=1;var e=Ni(),t=Array.prototype.splice;return Pr=function(r){var n=this.__data__,i=e(n,r);return!(i<0||(i==n.length-1?n.pop():t.call(n,i,1),--this.size,0))}}(),r=function(){if(Mr)return Br;Mr=1;var e=Ni();return Br=function(t){var r=this.__data__,n=e(r,t);return n<0?void 0:r[n][1]}}(),n=function(){if(jr)return Gr;jr=1;var e=Ni();return Gr=function(t){return e(this.__data__,t)>-1}}(),i=function(){if(Fr)return zr;Fr=1;var e=Ni();return zr=function(t,r){var n=this.__data__,i=e(n,t);return i<0?(++this.size,n.push([t,r])):n[i][1]=r,this}}();function s(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}return s.prototype.clear=e,s.prototype.delete=t,s.prototype.get=r,s.prototype.has=n,s.prototype.set=i,Ur=s}function Vi(){if(en)return Qr;en=1;var e="object"==typeof Oi&&Oi&&Oi.Object===Object&&Oi;return Qr=e}function Pi(){if(rn)return tn;rn=1;var e=Vi(),t="object"==typeof self&&self&&self.Object===Object&&self,r=e||t||Function("return this")();return tn=r}function Di(){if(sn)return nn;sn=1;var e=Pi().Symbol;return nn=e}function Bi(){if(hn)return cn;hn=1;var e=Di(),t=function(){if(an)return on;an=1;var e=Di(),t=Object.prototype,r=t.hasOwnProperty,n=t.toString,i=e?e.toStringTag:void 0;return on=
|
|
3
|
-
/**
|
|
4
|
-
* A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
|
|
5
|
-
*
|
|
6
|
-
* @private
|
|
7
|
-
* @param {*} value The value to query.
|
|
8
|
-
* @returns {string} Returns the raw `toStringTag`.
|
|
9
|
-
*/
|
|
10
|
-
function(e){var t=r.call(e,i),s=e[i];try{e[i]=void 0;var o=!0}catch(e){}var a=n.call(e);return o&&(t?e[i]=s:delete e[i]),a}}(),r=function(){if(un)return ln;un=1;var e=Object.prototype.toString;return ln=function(t){return e.call(t)}}(),n=e?e.toStringTag:void 0;return cn=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":n&&n in Object(e)?t(e):r(e)}}function Mi(){if(fn)return dn;return fn=1,dn=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}}function Gi(){if(_n)return pn;_n=1;var e=Bi(),t=Mi();return pn=function(r){if(!t(r))return!1;var n=e(r);return"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n}}function ji(){if(bn)return mn;bn=1;var e,t=function(){if(yn)return gn;yn=1;var e=Pi()["__core-js_shared__"];return gn=e}(),r=(e=/[^.]+$/.exec(t&&t.keys&&t.keys.IE_PROTO||""))?"Symbol(src)_1."+e:"";return mn=function(e){return!!r&&r in e}}function zi(){if(xn)return vn;xn=1;var e=Function.prototype.toString;return vn=function(t){if(null!=t){try{return e.call(t)}catch(e){}try{return t+""}catch(e){}}return""}}function Fi(){if(kn)return Rn;kn=1;var e=function(){if(wn)return En;wn=1;var e=Gi(),t=ji(),r=Mi(),n=zi(),i=/^\[object .+?Constructor\]$/,s=Function.prototype,o=Object.prototype,a=s.toString,l=o.hasOwnProperty,u=RegExp("^"+a.call(l).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");return En=function(s){return!(!r(s)||t(s))&&(e(s)?u:i).test(n(s))}}(),t=Cn?An:(Cn=1,An=function(e,t){return null==e?void 0:e[t]});return Rn=function(r,n){var i=t(r,n);return e(i)?i:void 0}}function Ui(){if(Sn)return Tn;Sn=1;var e=Fi()(Pi(),"Map");return Tn=e}function Hi(){if(In)return On;In=1;var e=Fi()(Object,"create");return On=e}function Wi(){if(Un)return Fn;Un=1;var e=function(){if(Ln)return Nn;Ln=1;var e=Hi();return Nn=function(){this.__data__=e?e(null):{},this.size=0}}(),t=Pn?Vn:(Pn=1,Vn=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}),r=function(){if(Bn)return Dn;Bn=1;var e=Hi(),t=Object.prototype.hasOwnProperty;return Dn=function(r){var n=this.__data__;if(e){var i=n[r];return"__lodash_hash_undefined__"===i?void 0:i}return t.call(n,r)?n[r]:void 0}}(),n=function(){if(Gn)return Mn;Gn=1;var e=Hi(),t=Object.prototype.hasOwnProperty;return Mn=function(r){var n=this.__data__;return e?void 0!==n[r]:t.call(n,r)}}(),i=function(){if(zn)return jn;zn=1;var e=Hi();return jn=function(t,r){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=e&&void 0===r?"__lodash_hash_undefined__":r,this}}();function s(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}return s.prototype.clear=e,s.prototype.delete=t,s.prototype.get=r,s.prototype.has=n,s.prototype.set=i,Fn=s}function Yi(){if(Kn)return qn;Kn=1;var e=Xn?Yn:(Xn=1,Yn=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e});return qn=function(t,r){var n=t.__data__;return e(r)?n["string"==typeof r?"string":"hash"]:n.map}}function Xi(){if(si)return ii;si=1;var e=function(){if(Wn)return Hn;Wn=1;var e=Wi(),t=Li(),r=Ui();return Hn=function(){this.size=0,this.__data__={hash:new e,map:new(r||t),string:new e}}}(),t=function(){if($n)return Zn;$n=1;var e=Yi();return Zn=function(t){var r=e(this,t).delete(t);return this.size-=r?1:0,r}}(),r=function(){if(Qn)return Jn;Qn=1;var e=Yi();return Jn=function(t){return e(this,t).get(t)}}(),n=function(){if(ti)return ei;ti=1;var e=Yi();return ei=function(t){return e(this,t).has(t)}}(),i=function(){if(ni)return ri;ni=1;var e=Yi();return ri=function(t,r){var n=e(this,t),i=n.size;return n.set(t,r),this.size+=n.size==i?0:1,this}}();function s(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}return s.prototype.clear=e,s.prototype.delete=t,s.prototype.get=r,s.prototype.has=n,s.prototype.set=i,ii=s}function qi(){if(ui)return li;ui=1;var e=Li(),t=function(){if(Yr)return Wr;Yr=1;var e=Li();return Wr=function(){this.__data__=new e,this.size=0}}(),r=qr?Xr:(qr=1,Xr=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}),n=Zr?Kr:(Zr=1,Kr=function(e){return this.__data__.get(e)}),i=Jr?$r:(Jr=1,$r=function(e){return this.__data__.has(e)}),s=function(){if(ai)return oi;ai=1;var e=Li(),t=Ui(),r=Xi();return oi=function(n,i){var s=this.__data__;if(s instanceof e){var o=s.__data__;if(!t||o.length<199)return o.push([n,i]),this.size=++s.size,this;s=this.__data__=new r(o)}return s.set(n,i),this.size=s.size,this}}();function o(t){var r=this.__data__=new e(t);this.size=r.size}return o.prototype.clear=t,o.prototype.delete=r,o.prototype.get=n,o.prototype.has=i,o.prototype.set=s,li=o}
|
|
11
|
-
/**
|
|
12
|
-
* A specialized version of `_.forEach` for arrays without support for
|
|
13
|
-
* iteratee shorthands.
|
|
14
|
-
*
|
|
15
|
-
* @private
|
|
16
|
-
* @param {Array} [array] The array to iterate over.
|
|
17
|
-
* @param {Function} iteratee The function invoked per iteration.
|
|
18
|
-
* @returns {Array} Returns `array`.
|
|
19
|
-
*/function Ki(){if(hi)return ci;return hi=1,ci=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););return e}}function Zi(){if(fi)return di;fi=1;var e=Fi(),t=function(){try{var t=e(Object,"defineProperty");return t({},"",{}),t}catch(e){}}();return di=t}function $i(){if(_i)return pi;_i=1;var e=Zi();return pi=function(t,r,n){"__proto__"==r&&e?e(t,r,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[r]=n}}function Ji(){if(yi)return gi;yi=1;var e=$i(),t=Ii(),r=Object.prototype.hasOwnProperty;return gi=function(n,i,s){var o=n[i];r.call(n,i)&&t(o,s)&&(void 0!==s||i in n)||e(n,i,s)}}function Qi(){if(bi)return mi;bi=1;var e=Ji(),t=$i();return mi=function(r,n,i,s){var o=!i;i||(i={});for(var a=-1,l=n.length;++a<l;){var u=n[a],c=s?s(i[u],r[u],u,i,r):void 0;void 0===c&&(c=r[u]),o?t(i,u,c):e(i,u,c)}return i}}function es(){if(wi)return Ei;return wi=1,Ei=function(e){return null!=e&&"object"==typeof e}}function ts(){if(ki)return Ri;ki=1;var e=function(){if(Ci)return Ai;Ci=1;var e=Bi(),t=es();return Ai=function(r){return t(r)&&"[object Arguments]"==e(r)}}(),t=es(),r=Object.prototype,n=r.hasOwnProperty,i=r.propertyIsEnumerable,s=e(function(){return arguments}())?e:function(e){return t(e)&&n.call(e,"callee")&&!i.call(e,"callee")};return Ri=s}function rs(){if(Si)return Ti;Si=1;var e=Array.isArray;return Ti=e}var ns,is,ss,os,as,ls,us,cs,hs,ds,fs,ps={exports:{}};function _s(){return ss||(ss=1,function(e,t){var r=Pi(),n=is?ns:(is=1,ns=function(){return!1}),i=t&&!t.nodeType&&t,s=i&&e&&!e.nodeType&&e,o=s&&s.exports===i?r.Buffer:void 0,a=(o?o.isBuffer:void 0)||n;e.exports=a}(ps,ps.exports)),ps.exports}function gs(){if(as)return os;as=1;var e=/^(?:0|[1-9]\d*)$/;return os=function(t,r){var n=typeof t;return!!(r=null==r?9007199254740991:r)&&("number"==n||"symbol"!=n&&e.test(t))&&t>-1&&t%1==0&&t<r}}function ys(){if(us)return ls;us=1;return ls=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}}function ms(){if(fs)return ds;return fs=1,ds=function(e){return function(t){return e(t)}}}ps.exports;var bs,vs,xs,Es,ws,As,Cs,Rs,ks,Ts,Ss,Os,Is,Ns,Ls,Vs,Ps,Ds,Bs,Ms,Gs,js,zs,Fs,Us,Hs,Ws,Ys={exports:{}};function Xs(){return bs||(bs=1,function(e,t){var r=Vi(),n=t&&!t.nodeType&&t,i=n&&e&&!e.nodeType&&e,s=i&&i.exports===n&&r.process,o=function(){try{var e=i&&i.require&&i.require("util").types;return e||s&&s.binding&&s.binding("util")}catch(e){}}();e.exports=o}(Ys,Ys.exports)),Ys.exports}function qs(){if(xs)return vs;xs=1;var e=function(){if(hs)return cs;hs=1;var e=Bi(),t=ys(),r=es(),n={};return n["[object Float32Array]"]=n["[object Float64Array]"]=n["[object Int8Array]"]=n["[object Int16Array]"]=n["[object Int32Array]"]=n["[object Uint8Array]"]=n["[object Uint8ClampedArray]"]=n["[object Uint16Array]"]=n["[object Uint32Array]"]=!0,n["[object Arguments]"]=n["[object Array]"]=n["[object ArrayBuffer]"]=n["[object Boolean]"]=n["[object DataView]"]=n["[object Date]"]=n["[object Error]"]=n["[object Function]"]=n["[object Map]"]=n["[object Number]"]=n["[object Object]"]=n["[object RegExp]"]=n["[object Set]"]=n["[object String]"]=n["[object WeakMap]"]=!1,cs=function(i){return r(i)&&t(i.length)&&!!n[e(i)]}}(),t=ms(),r=Xs(),n=r&&r.isTypedArray,i=n?t(n):e;return vs=i}function Ks(){if(ws)return Es;ws=1;var e=xi?vi:(xi=1,vi=function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}),t=ts(),r=rs(),n=_s(),i=gs(),s=qs(),o=Object.prototype.hasOwnProperty;return Es=function(a,l){var u=r(a),c=!u&&t(a),h=!u&&!c&&n(a),d=!u&&!c&&!h&&s(a),f=u||c||h||d,p=f?e(a.length,String):[],_=p.length;for(var g in a)!l&&!o.call(a,g)||f&&("length"==g||h&&("offset"==g||"parent"==g)||d&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||i(g,_))||p.push(g);return p}}function Zs(){if(Cs)return As;Cs=1;var e=Object.prototype;return As=function(t){var r=t&&t.constructor;return t===("function"==typeof r&&r.prototype||e)}}function $s(){if(ks)return Rs;return ks=1,Rs=function(e,t){return function(r){return e(t(r))}}}function Js(){if(Is)return Os;Is=1;var e=Zs(),t=function(){if(Ss)return Ts;Ss=1;var e=$s()(Object.keys,Object);return Ts=e}(),r=Object.prototype.hasOwnProperty;return Os=function(n){if(!e(n))return t(n);var i=[];for(var s in Object(n))r.call(n,s)&&"constructor"!=s&&i.push(s);return i}}function Qs(){if(Ls)return Ns;Ls=1;var e=Gi(),t=ys();return Ns=function(r){return null!=r&&t(r.length)&&!e(r)}}function eo(){if(Ps)return Vs;Ps=1;var e=Ks(),t=Js(),r=Qs();return Vs=function(n){return r(n)?e(n):t(n)}}function to(){if(zs)return js;zs=1;var e=Mi(),t=Zs(),r=Gs?Ms:(Gs=1,Ms=function(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}),n=Object.prototype.hasOwnProperty;return js=function(i){if(!e(i))return r(i);var s=t(i),o=[];for(var a in i)("constructor"!=a||!s&&n.call(i,a))&&o.push(a);return o}}function ro(){if(Us)return Fs;Us=1;var e=Ks(),t=to(),r=Qs();return Fs=function(n){return r(n)?e(n,!0):t(n)}}Ys.exports;var no,io,so,oo,ao,lo,uo,co,ho,fo,po,_o,go,yo,mo,bo,vo,xo,Eo,wo,Ao,Co,Ro,ko,To,So,Oo,Io,No,Lo,Vo,Po,Do,Bo,Mo,Go,jo,zo,Fo,Uo,Ho,Wo,Yo,Xo,qo,Ko,Zo,$o,Jo,Qo,ea,ta,ra,na,ia,sa,oa,aa,la,ua,ca,ha,da,fa,pa,_a,ga,ya,ma,ba,va,xa,Ea,wa,Aa,Ca,Ra,ka,Ta,Sa,Oa,Ia,Na,La,Va,Pa,Da,Ba,Ma,Ga,ja,za,Fa,Ua,Ha,Wa,Ya,Xa,qa,Ka,Za,$a,Ja,Qa,el,tl,rl,nl,il,sl,ol,al,ll,ul,cl,hl,dl,fl,pl,_l,gl,yl,ml,bl,vl,xl,El,wl,Al,Cl,Rl,kl,Tl,Sl,Ol,Il,Nl,Ll,Vl,Pl,Dl,Bl,Ml,Gl,jl,zl,Fl,Ul,Hl,Wl,Yl,Xl,ql,Kl,Zl,$l,Jl,Ql,eu,tu,ru,nu,iu,su,ou,au,lu,uu,cu,hu,du,fu,pu,_u,gu,yu,mu,bu,vu,xu,Eu,wu,Au,Cu,Ru,ku,Tu,Su,Ou,Iu,Nu,Lu,Vu,Pu,Du,Bu,Mu,Gu,ju,zu,Fu,Uu,Hu,Wu,Yu,Xu,qu,Ku,Zu,$u,Ju,Qu,ec,tc,rc,nc,ic,sc,oc,ac,lc,uc,cc,hc,dc,fc,pc,_c,gc,yc,mc,bc,vc,xc,Ec,wc,Ac,Cc,Rc,kc,Tc,Sc,Oc,Ic,Nc,Lc,Vc,Pc,Dc,Bc,Mc,Gc,jc,zc,Fc,Uc,Hc,Wc,Yc,Xc,qc,Kc,Zc,$c,Jc,Qc,eh,th,rh,nh,ih,sh,oh,ah,lh,uh,ch,hh,dh,fh,ph={exports:{}};function _h(){return no||(no=1,function(e,t){var r=Pi(),n=t&&!t.nodeType&&t,i=n&&e&&!e.nodeType&&e,s=i&&i.exports===n?r.Buffer:void 0,o=s?s.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var r=e.length,n=o?o(r):new e.constructor(r);return e.copy(n),n}}(ph,ph.exports)),ph.exports}function gh(){if(so)return io;return so=1,io=function(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}}
|
|
20
|
-
/**
|
|
21
|
-
* A specialized version of `_.filter` for arrays without support for
|
|
22
|
-
* iteratee shorthands.
|
|
23
|
-
*
|
|
24
|
-
* @private
|
|
25
|
-
* @param {Array} [array] The array to iterate over.
|
|
26
|
-
* @param {Function} predicate The function invoked per iteration.
|
|
27
|
-
* @returns {Array} Returns the new filtered array.
|
|
28
|
-
*/function yh(){if(ao)return oo;return ao=1,oo=function(e,t){for(var r=-1,n=null==e?0:e.length,i=0,s=[];++r<n;){var o=e[r];t(o,r,e)&&(s[i++]=o)}return s}}function mh(){if(uo)return lo;return uo=1,lo=function(){return[]}}function bh(){if(ho)return co;ho=1;var e=yh(),t=mh(),r=Object.prototype.propertyIsEnumerable,n=Object.getOwnPropertySymbols;return co=n?function(t){return null==t?[]:(t=Object(t),e(n(t),(function(e){return r.call(t,e)})))}:t}function vh(){if(go)return _o;return go=1,_o=function(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}}function xh(){if(mo)return yo;mo=1;var e=$s()(Object.getPrototypeOf,Object);return yo=e}function Eh(){if(vo)return bo;vo=1;var e=vh(),t=xh(),r=bh(),n=mh(),i=Object.getOwnPropertySymbols;return bo=i?function(n){for(var i=[];n;)e(i,r(n)),n=t(n);return i}:n}function wh(){if(Ao)return wo;Ao=1;var e=vh(),t=rs();return wo=function(r,n,i){var s=n(r);return t(r)?s:e(s,i(r))}}function Ah(){if(Ro)return Co;Ro=1;var e=wh(),t=bh(),r=eo();return Co=function(n){return e(n,r,t)}}function Ch(){if(Vo)return Lo;Vo=1;var e=Fi()(Pi(),"Set");return Lo=e}function Rh(){if(Mo)return Bo;Mo=1;var e=function(){if(Oo)return So;Oo=1;var e=Fi()(Pi(),"DataView");return So=e}(),t=Ui(),r=function(){if(No)return Io;No=1;var e=Fi()(Pi(),"Promise");return Io=e}(),n=Ch(),i=function(){if(Do)return Po;Do=1;var e=Fi()(Pi(),"WeakMap");return Po=e}(),s=Bi(),o=zi(),a="[object Map]",l="[object Promise]",u="[object Set]",c="[object WeakMap]",h="[object DataView]",d=o(e),f=o(t),p=o(r),_=o(n),g=o(i),y=s;return(e&&y(new e(new ArrayBuffer(1)))!=h||t&&y(new t)!=a||r&&y(r.resolve())!=l||n&&y(new n)!=u||i&&y(new i)!=c)&&(y=function(e){var t=s(e),r="[object Object]"==t?e.constructor:void 0,n=r?o(r):"";if(n)switch(n){case d:return h;case f:return a;case p:return l;case _:return u;case g:return c}return t}),Bo=y}function kh(){if(Fo)return zo;Fo=1;var e=Pi().Uint8Array;return zo=e}function Th(){if(Ho)return Uo;Ho=1;var e=kh();return Uo=function(t){var r=new t.constructor(t.byteLength);return new e(r).set(new e(t)),r}}function Sh(){if(Jo)return $o;Jo=1;var e=Th();return $o=function(t,r){var n=r?e(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}}function Oh(){if(ea)return Qo;ea=1;var e=Th(),t=function(){if(Yo)return Wo;Yo=1;var e=Th();return Wo=function(t,r){var n=r?e(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}}(),r=function(){if(qo)return Xo;qo=1;var e=/\w*$/;return Xo=function(t){var r=new t.constructor(t.source,e.exec(t));return r.lastIndex=t.lastIndex,r}}(),n=function(){if(Zo)return Ko;Zo=1;var e=Di(),t=e?e.prototype:void 0,r=t?t.valueOf:void 0;return Ko=function(e){return r?Object(r.call(e)):{}}}(),i=Sh();return Qo=function(s,o,a){var l=s.constructor;switch(o){case"[object ArrayBuffer]":return e(s);case"[object Boolean]":case"[object Date]":return new l(+s);case"[object DataView]":return t(s,a);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return i(s,a);case"[object Map]":case"[object Set]":return new l;case"[object Number]":case"[object String]":return new l(s);case"[object RegExp]":return r(s);case"[object Symbol]":return n(s)}}}function Ih(){if(ra)return ta;ra=1;var e=Mi(),t=Object.create,r=function(){function r(){}return function(n){if(!e(n))return{};if(t)return t(n);r.prototype=n;var i=new r;return r.prototype=void 0,i}}();return ta=r}function Nh(){if(ia)return na;ia=1;var e=Ih(),t=xh(),r=Zs();return na=function(n){return"function"!=typeof n.constructor||r(n)?{}:e(t(n))}}function Lh(){if(la)return aa;la=1;var e=function(){if(oa)return sa;oa=1;var e=Rh(),t=es();return sa=function(r){return t(r)&&"[object Map]"==e(r)}}(),t=ms(),r=Xs(),n=r&&r.isMap,i=n?t(n):e;return aa=i}function Vh(){if(da)return ha;da=1;var e=function(){if(ca)return ua;ca=1;var e=Rh(),t=es();return ua=function(r){return t(r)&&"[object Set]"==e(r)}}(),t=ms(),r=Xs(),n=r&&r.isSet,i=n?t(n):e;return ha=i}function Ph(){if(pa)return fa;pa=1;var e=qi(),t=Ki(),r=Ji(),n=function(){if(Bs)return Ds;Bs=1;var e=Qi(),t=eo();return Ds=function(r,n){return r&&e(n,t(n),r)}}(),i=function(){if(Ws)return Hs;Ws=1;var e=Qi(),t=ro();return Hs=function(r,n){return r&&e(n,t(n),r)}}(),s=_h(),o=gh(),a=function(){if(po)return fo;po=1;var e=Qi(),t=bh();return fo=function(r,n){return e(r,t(r),n)}}(),l=function(){if(Eo)return xo;Eo=1;var e=Qi(),t=Eh();return xo=function(r,n){return e(r,t(r),n)}}(),u=Ah(),c=function(){if(To)return ko;To=1;var e=wh(),t=Eh(),r=ro();return ko=function(n){return e(n,r,t)}}(),h=Rh(),d=function(){if(jo)return Go;jo=1;var e=Object.prototype.hasOwnProperty;return Go=function(t){var r=t.length,n=new t.constructor(r);return r&&"string"==typeof t[0]&&e.call(t,"index")&&(n.index=t.index,n.input=t.input),n}}(),f=Oh(),p=Nh(),_=rs(),g=_s(),y=Lh(),m=Mi(),b=Vh(),v=eo(),x=ro(),E="[object Arguments]",w="[object Function]",A="[object Object]",C={};return C[E]=C["[object Array]"]=C["[object ArrayBuffer]"]=C["[object DataView]"]=C["[object Boolean]"]=C["[object Date]"]=C["[object Float32Array]"]=C["[object Float64Array]"]=C["[object Int8Array]"]=C["[object Int16Array]"]=C["[object Int32Array]"]=C["[object Map]"]=C["[object Number]"]=C[A]=C["[object RegExp]"]=C["[object Set]"]=C["[object String]"]=C["[object Symbol]"]=C["[object Uint8Array]"]=C["[object Uint8ClampedArray]"]=C["[object Uint16Array]"]=C["[object Uint32Array]"]=!0,C["[object Error]"]=C[w]=C["[object WeakMap]"]=!1,fa=function R(k,T,S,O,I,N){var L,V=1&T,P=2&T,D=4&T;if(S&&(L=I?S(k,O,I,N):S(k)),void 0!==L)return L;if(!m(k))return k;var B=_(k);if(B){if(L=d(k),!V)return o(k,L)}else{var M=h(k),G=M==w||"[object GeneratorFunction]"==M;if(g(k))return s(k,V);if(M==A||M==E||G&&!I){if(L=P||G?{}:p(k),!V)return P?l(k,i(L,k)):a(k,n(L,k))}else{if(!C[M])return I?k:{};L=f(k,M,V)}}N||(N=new e);var j=N.get(k);if(j)return j;N.set(k,L),b(k)?k.forEach((function(e){L.add(R(e,T,S,e,k,N))})):y(k)&&k.forEach((function(e,t){L.set(t,R(e,T,S,t,k,N))}));var z=B?void 0:(D?P?c:u:P?x:v)(k);return t(z||k,(function(e,t){z&&(e=k[t=e]),r(L,t,R(e,T,S,t,k,N))})),L},fa}function Dh(){if(ga)return _a;ga=1;var e=Ph();return _a=function(t){return e(t,4)}}function Bh(){if(ma)return ya;return ma=1,ya=function(e){return function(){return e}}}function Mh(){if(Ea)return xa;Ea=1;var e=(va?ba:(va=1,ba=function(e){return function(t,r,n){for(var i=-1,s=Object(t),o=n(t),a=o.length;a--;){var l=o[e?a:++i];if(!1===r(s[l],l,s))break}return t}}))();return xa=e}function Gh(){if(Aa)return wa;Aa=1;var e=Mh(),t=eo();return wa=function(r,n){return r&&e(r,n,t)}}function jh(){if(Ta)return ka;Ta=1;var e=Gh(),t=function(){if(Ra)return Ca;Ra=1;var e=Qs();return Ca=function(t,r){return function(n,i){if(null==n)return n;if(!e(n))return t(n,i);for(var s=n.length,o=r?s:-1,a=Object(n);(r?o--:++o<s)&&!1!==i(a[o],o,a););return n}}}()(e);return ka=t}function zh(){if(Oa)return Sa;return Oa=1,Sa=function(e){return e}}function Fh(){if(Na)return Ia;Na=1;var e=zh();return Ia=function(t){return"function"==typeof t?t:e}}function Uh(){if(Va)return La;Va=1;var e=Ki(),t=jh(),r=Fh(),n=rs();return La=function(i,s){return(n(i)?e:t)(i,r(s))}}function Hh(){return Da?Pa:(Da=1,Pa=Uh())}function Wh(){if(Ha)return Ua;Ha=1;var e=Xi(),t=ja?Ga:(ja=1,Ga=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}),r=Fa?za:(Fa=1,za=function(e){return this.__data__.has(e)});function n(t){var r=-1,n=null==t?0:t.length;for(this.__data__=new e;++r<n;)this.add(t[r])}return n.prototype.add=n.prototype.push=t,n.prototype.has=r,Ua=n}
|
|
29
|
-
/**
|
|
30
|
-
* A specialized version of `_.some` for arrays without support for iteratee
|
|
31
|
-
* shorthands.
|
|
32
|
-
*
|
|
33
|
-
* @private
|
|
34
|
-
* @param {Array} [array] The array to iterate over.
|
|
35
|
-
* @param {Function} predicate The function invoked per iteration.
|
|
36
|
-
* @returns {boolean} Returns `true` if any element passes the predicate check,
|
|
37
|
-
* else `false`.
|
|
38
|
-
*/function Yh(){if(qa)return Xa;return qa=1,Xa=function(e,t){return e.has(t)}}function Xh(){if(Za)return Ka;Za=1;var e=Wh(),t=Ya?Wa:(Ya=1,Wa=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}),r=Yh();return Ka=
|
|
39
|
-
/**
|
|
40
|
-
* A specialized version of `baseIsEqualDeep` for arrays with support for
|
|
41
|
-
* partial deep comparisons.
|
|
42
|
-
*
|
|
43
|
-
* @private
|
|
44
|
-
* @param {Array} array The array to compare.
|
|
45
|
-
* @param {Array} other The other array to compare.
|
|
46
|
-
* @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
|
|
47
|
-
* @param {Function} customizer The function to customize comparisons.
|
|
48
|
-
* @param {Function} equalFunc The function to determine equivalents of values.
|
|
49
|
-
* @param {Object} stack Tracks traversed `array` and `other` objects.
|
|
50
|
-
* @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
|
|
51
|
-
*/
|
|
52
|
-
function(n,i,s,o,a,l){var u=1&s,c=n.length,h=i.length;if(c!=h&&!(u&&h>c))return!1;var d=l.get(n),f=l.get(i);if(d&&f)return d==i&&f==n;var p=-1,_=!0,g=2&s?new e:void 0;for(l.set(n,i),l.set(i,n);++p<c;){var y=n[p],m=i[p];if(o)var b=u?o(m,y,p,i,n,l):o(y,m,p,n,i,l);if(void 0!==b){if(b)continue;_=!1;break}if(g){if(!t(i,(function(e,t){if(!r(g,t)&&(y===e||a(y,e,s,o,l)))return g.push(t)}))){_=!1;break}}else if(y!==m&&!a(y,m,s,o,l)){_=!1;break}}return l.delete(n),l.delete(i),_}}function qh(){if(el)return Qa;return el=1,Qa=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}}function Kh(){if(rl)return tl;rl=1;var e=Di(),t=kh(),r=Ii(),n=Xh(),i=Ja?$a:(Ja=1,$a=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}),s=qh(),o=e?e.prototype:void 0,a=o?o.valueOf:void 0;return tl=
|
|
53
|
-
/**
|
|
54
|
-
* A specialized version of `baseIsEqualDeep` for comparing objects of
|
|
55
|
-
* the same `toStringTag`.
|
|
56
|
-
*
|
|
57
|
-
* **Note:** This function only supports comparing values with tags of
|
|
58
|
-
* `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
|
|
59
|
-
*
|
|
60
|
-
* @private
|
|
61
|
-
* @param {Object} object The object to compare.
|
|
62
|
-
* @param {Object} other The other object to compare.
|
|
63
|
-
* @param {string} tag The `toStringTag` of the objects to compare.
|
|
64
|
-
* @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
|
|
65
|
-
* @param {Function} customizer The function to customize comparisons.
|
|
66
|
-
* @param {Function} equalFunc The function to determine equivalents of values.
|
|
67
|
-
* @param {Object} stack Tracks traversed `object` and `other` objects.
|
|
68
|
-
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
|
|
69
|
-
*/
|
|
70
|
-
function(e,o,l,u,c,h,d){switch(l){case"[object DataView]":if(e.byteLength!=o.byteLength||e.byteOffset!=o.byteOffset)return!1;e=e.buffer,o=o.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=o.byteLength||!h(new t(e),new t(o)));case"[object Boolean]":case"[object Date]":case"[object Number]":return r(+e,+o);case"[object Error]":return e.name==o.name&&e.message==o.message;case"[object RegExp]":case"[object String]":return e==o+"";case"[object Map]":var f=i;case"[object Set]":var p=1&u;if(f||(f=s),e.size!=o.size&&!p)return!1;var _=d.get(e);if(_)return _==o;u|=2,d.set(e,o);var g=n(f(e),f(o),u,c,h,d);return d.delete(e),g;case"[object Symbol]":if(a)return a.call(e)==a.call(o)}return!1}}function Zh(){if(ol)return sl;ol=1;var e=qi(),t=Xh(),r=Kh(),n=function(){if(il)return nl;il=1;var e=Ah(),t=Object.prototype.hasOwnProperty;return nl=
|
|
71
|
-
/**
|
|
72
|
-
* A specialized version of `baseIsEqualDeep` for objects with support for
|
|
73
|
-
* partial deep comparisons.
|
|
74
|
-
*
|
|
75
|
-
* @private
|
|
76
|
-
* @param {Object} object The object to compare.
|
|
77
|
-
* @param {Object} other The other object to compare.
|
|
78
|
-
* @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
|
|
79
|
-
* @param {Function} customizer The function to customize comparisons.
|
|
80
|
-
* @param {Function} equalFunc The function to determine equivalents of values.
|
|
81
|
-
* @param {Object} stack Tracks traversed `object` and `other` objects.
|
|
82
|
-
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
|
|
83
|
-
*/
|
|
84
|
-
function(r,n,i,s,o,a){var l=1&i,u=e(r),c=u.length;if(c!=e(n).length&&!l)return!1;for(var h=c;h--;){var d=u[h];if(!(l?d in n:t.call(n,d)))return!1}var f=a.get(r),p=a.get(n);if(f&&p)return f==n&&p==r;var _=!0;a.set(r,n),a.set(n,r);for(var g=l;++h<c;){var y=r[d=u[h]],m=n[d];if(s)var b=l?s(m,y,d,n,r,a):s(y,m,d,r,n,a);if(!(void 0===b?y===m||o(y,m,i,s,a):b)){_=!1;break}g||(g="constructor"==d)}if(_&&!g){var v=r.constructor,x=n.constructor;v==x||!("constructor"in r)||!("constructor"in n)||"function"==typeof v&&v instanceof v&&"function"==typeof x&&x instanceof x||(_=!1)}return a.delete(r),a.delete(n),_}}(),i=Rh(),s=rs(),o=_s(),a=qs(),l="[object Arguments]",u="[object Array]",c="[object Object]",h=Object.prototype.hasOwnProperty;return sl=
|
|
85
|
-
/**
|
|
86
|
-
* A specialized version of `baseIsEqual` for arrays and objects which performs
|
|
87
|
-
* deep comparisons and tracks traversed objects enabling objects with circular
|
|
88
|
-
* references to be compared.
|
|
89
|
-
*
|
|
90
|
-
* @private
|
|
91
|
-
* @param {Object} object The object to compare.
|
|
92
|
-
* @param {Object} other The other object to compare.
|
|
93
|
-
* @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
|
|
94
|
-
* @param {Function} customizer The function to customize comparisons.
|
|
95
|
-
* @param {Function} equalFunc The function to determine equivalents of values.
|
|
96
|
-
* @param {Object} [stack] Tracks traversed `object` and `other` objects.
|
|
97
|
-
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
|
|
98
|
-
*/
|
|
99
|
-
function(d,f,p,_,g,y){var m=s(d),b=s(f),v=m?u:i(d),x=b?u:i(f),E=(v=v==l?c:v)==c,w=(x=x==l?c:x)==c,A=v==x;if(A&&o(d)){if(!o(f))return!1;m=!0,E=!1}if(A&&!E)return y||(y=new e),m||a(d)?t(d,f,p,_,g,y):r(d,f,v,p,_,g,y);if(!(1&p)){var C=E&&h.call(d,"__wrapped__"),R=w&&h.call(f,"__wrapped__");if(C||R){var k=C?d.value():d,T=R?f.value():f;return y||(y=new e),g(k,T,p,_,y)}}return!!A&&(y||(y=new e),n(d,f,p,_,g,y))}}function $h(){if(ll)return al;ll=1;var e=Zh(),t=es();return al=function r(n,i,s,o,a){return n===i||(null==n||null==i||!t(n)&&!t(i)?n!=n&&i!=i:e(n,i,s,o,r,a))},al}function Jh(){if(dl)return hl;dl=1;var e=Mi();return hl=function(t){return t==t&&!e(t)}}function Qh(){if(gl)return _l;return gl=1,_l=function(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in Object(r)))}}}function ed(){if(ml)return yl;ml=1;var e=function(){if(cl)return ul;cl=1;var e=qi(),t=$h();return ul=function(r,n,i,s){var o=i.length,a=o,l=!s;if(null==r)return!a;for(r=Object(r);o--;){var u=i[o];if(l&&u[2]?u[1]!==r[u[0]]:!(u[0]in r))return!1}for(;++o<a;){var c=(u=i[o])[0],h=r[c],d=u[1];if(l&&u[2]){if(void 0===h&&!(c in r))return!1}else{var f=new e;if(s)var p=s(h,d,c,r,n,f);if(!(void 0===p?t(d,h,3,s,f):p))return!1}}return!0}}(),t=function(){if(pl)return fl;pl=1;var e=Jh(),t=eo();return fl=function(r){for(var n=t(r),i=n.length;i--;){var s=n[i],o=r[s];n[i]=[s,o,e(o)]}return n}}
|
|
100
|
-
/**
|
|
101
|
-
* A specialized version of `matchesProperty` for source values suitable
|
|
102
|
-
* for strict equality comparisons, i.e. `===`.
|
|
103
|
-
*
|
|
104
|
-
* @private
|
|
105
|
-
* @param {string} key The key of the property to get.
|
|
106
|
-
* @param {*} srcValue The value to match.
|
|
107
|
-
* @returns {Function} Returns the new spec function.
|
|
108
|
-
*/(),r=Qh();return yl=function(n){var i=t(n);return 1==i.length&&i[0][2]?r(i[0][0],i[0][1]):function(t){return t===n||e(t,n,i)}}}function td(){if(vl)return bl;vl=1;var e=Bi(),t=es();return bl=function(r){return"symbol"==typeof r||t(r)&&"[object Symbol]"==e(r)}}function rd(){if(El)return xl;El=1;var e=rs(),t=td(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,n=/^\w*$/;return xl=function(i,s){if(e(i))return!1;var o=typeof i;return!("number"!=o&&"symbol"!=o&&"boolean"!=o&&null!=i&&!t(i))||(n.test(i)||!r.test(i)||null!=s&&i in Object(s))}}function nd(){if(Rl)return Cl;Rl=1;var e=function(){if(Al)return wl;Al=1;var e=Xi();function t(r,n){if("function"!=typeof r||null!=n&&"function"!=typeof n)throw new TypeError("Expected a function");var i=function(){var e=arguments,t=n?n.apply(this,e):e[0],s=i.cache;if(s.has(t))return s.get(t);var o=r.apply(this,e);return i.cache=s.set(t,o)||s,o};return i.cache=new(t.Cache||e),i}return t.Cache=e,wl=t}();return Cl=
|
|
109
|
-
/**
|
|
110
|
-
* A specialized version of `_.memoize` which clears the memoized function's
|
|
111
|
-
* cache when it exceeds `MAX_MEMOIZE_SIZE`.
|
|
112
|
-
*
|
|
113
|
-
* @private
|
|
114
|
-
* @param {Function} func The function to have its output memoized.
|
|
115
|
-
* @returns {Function} Returns the new memoized function.
|
|
116
|
-
*/
|
|
117
|
-
function(t){var r=e(t,(function(e){return 500===n.size&&n.clear(),e})),n=r.cache;return r}}function id(){if(Ol)return Sl;return Ol=1,Sl=function(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}}function sd(){if(Vl)return Ll;Vl=1;var e=function(){if(Nl)return Il;Nl=1;var e=Di(),t=id(),r=rs(),n=td(),i=e?e.prototype:void 0,s=i?i.toString:void 0;return Il=function e(i){if("string"==typeof i)return i;if(r(i))return t(i,e)+"";if(n(i))return s?s.call(i):"";var o=i+"";return"0"==o&&1/i==-1/0?"-0":o},Il}();return Ll=function(t){return null==t?"":e(t)}}function od(){if(Dl)return Pl;Dl=1;var e=rs(),t=rd(),r=function(){if(Tl)return kl;Tl=1;var e=nd(),t=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,n=e((function(e){var n=[];return 46===e.charCodeAt(0)&&n.push(""),e.replace(t,(function(e,t,i,s){n.push(i?s.replace(r,"$1"):t||e)})),n}));return kl=n}
|
|
118
|
-
/**
|
|
119
|
-
* A specialized version of `_.map` for arrays without support for iteratee
|
|
120
|
-
* shorthands.
|
|
121
|
-
*
|
|
122
|
-
* @private
|
|
123
|
-
* @param {Array} [array] The array to iterate over.
|
|
124
|
-
* @param {Function} iteratee The function invoked per iteration.
|
|
125
|
-
* @returns {Array} Returns the new mapped array.
|
|
126
|
-
*/(),n=sd();return Pl=function(i,s){return e(i)?i:t(i,s)?[i]:r(n(i))}}function ad(){if(Ml)return Bl;Ml=1;var e=td();return Bl=function(t){if("string"==typeof t||e(t))return t;var r=t+"";return"0"==r&&1/t==-Infinity?"-0":r}}function ld(){if(jl)return Gl;jl=1;var e=od(),t=ad();return Gl=function(r,n){for(var i=0,s=(n=e(n,r)).length;null!=r&&i<s;)r=r[t(n[i++])];return i&&i==s?r:void 0}}function ud(){if(Yl)return Wl;Yl=1;var e=od(),t=ts(),r=rs(),n=gs(),i=ys(),s=ad();return Wl=function(o,a,l){for(var u=-1,c=(a=e(a,o)).length,h=!1;++u<c;){var d=s(a[u]);if(!(h=null!=o&&l(o,d)))break;o=o[d]}return h||++u!=c?h:!!(c=null==o?0:o.length)&&i(c)&&n(d,c)&&(r(o)||t(o))}}function cd(){if(ql)return Xl;ql=1;var e=Hl?Ul:(Hl=1,Ul=function(e,t){return null!=e&&t in Object(e)}),t=ud();return Xl=function(r,n){return null!=r&&t(r,n,e)}}function hd(){if(Zl)return Kl;Zl=1;var e=$h(),t=function(){if(Fl)return zl;Fl=1;var e=ld();return zl=function(t,r,n){var i=null==t?void 0:e(t,r);return void 0===i?n:i}}(),r=cd(),n=rd(),i=Jh(),s=Qh(),o=ad();return Kl=function(a,l){return n(a)&&i(l)?s(o(a),l):function(n){var i=t(n,a);return void 0===i&&i===l?r(n,a):e(l,i,3)}}}function dd(){if(Jl)return $l;return Jl=1,$l=function(e){return function(t){return null==t?void 0:t[e]}}}function fd(){if(ru)return tu;ru=1;var e=dd(),t=function(){if(eu)return Ql;eu=1;var e=ld();
|
|
127
|
-
/**
|
|
128
|
-
* A specialized version of `baseProperty` which supports deep paths.
|
|
129
|
-
*
|
|
130
|
-
* @private
|
|
131
|
-
* @param {Array|string} path The path of the property to get.
|
|
132
|
-
* @returns {Function} Returns the new accessor function.
|
|
133
|
-
*/return Ql=function(t){return function(r){return e(r,t)}}}(),r=rd(),n=ad();return tu=function(i){return r(i)?e(n(i)):t(i)}}function pd(){if(iu)return nu;iu=1;var e=ed(),t=hd(),r=zh(),n=rs(),i=fd();return nu=function(s){return"function"==typeof s?s:null==s?r:"object"==typeof s?n(s)?t(s[0],s[1]):e(s):i(s)}}function _d(){if(ou)return su;ou=1;var e=yh(),t=function(){if(Ma)return Ba;Ma=1;var e=jh();return Ba=function(t,r){var n=[];return e(t,(function(e,t,i){r(e,t,i)&&n.push(e)})),n}}(),r=pd(),n=rs();return su=function(i,s){return(n(i)?e:t)(i,r(s,3))}}function gd(){if(cu)return uu;cu=1;var e=function(){if(lu)return au;lu=1;var e=Object.prototype.hasOwnProperty;return au=function(t,r){return null!=t&&e.call(t,r)}}(),t=ud();return uu=function(r,n){return null!=r&&t(r,n,e)}}function yd(){if(du)return hu;du=1;var e=Js(),t=Rh(),r=ts(),n=rs(),i=Qs(),s=_s(),o=Zs(),a=qs(),l=Object.prototype.hasOwnProperty;return hu=function(u){if(null==u)return!0;if(i(u)&&(n(u)||"string"==typeof u||"function"==typeof u.splice||s(u)||a(u)||r(u)))return!u.length;var c=t(u);if("[object Map]"==c||"[object Set]"==c)return!u.size;if(o(u))return!e(u).length;for(var h in u)if(l.call(u,h))return!1;return!0}}function md(){if(pu)return fu;return pu=1,fu=function(e){return void 0===e}}function bd(){if(gu)return _u;gu=1;var e=jh(),t=Qs();return _u=function(r,n){var i=-1,s=t(r)?Array(r.length):[];return e(r,(function(e,t,r){s[++i]=n(e,t,r)})),s}}function vd(){if(mu)return yu;mu=1;var e=id(),t=pd(),r=bd(),n=rs();return yu=function(i,s){return(n(i)?e:r)(i,t(s,3))}}
|
|
134
|
-
/**
|
|
135
|
-
* A specialized version of `_.reduce` for arrays without support for
|
|
136
|
-
* iteratee shorthands.
|
|
137
|
-
*
|
|
138
|
-
* @private
|
|
139
|
-
* @param {Array} [array] The array to iterate over.
|
|
140
|
-
* @param {Function} iteratee The function invoked per iteration.
|
|
141
|
-
* @param {*} [accumulator] The initial value.
|
|
142
|
-
* @param {boolean} [initAccum] Specify using the first element of `array` as
|
|
143
|
-
* the initial value.
|
|
144
|
-
* @returns {*} Returns the accumulated value.
|
|
145
|
-
*/function xd(){if(Au)return wu;Au=1;var e=vu?bu:(vu=1,bu=function(e,t,r,n){var i=-1,s=null==e?0:e.length;for(n&&s&&(r=e[++i]);++i<s;)r=t(r,e[i],i,e);return r}),t=jh(),r=pd(),n=Eu?xu:(Eu=1,xu=function(e,t,r,n,i){return i(e,(function(e,i,s){r=n?(n=!1,e):t(r,e,i,s)})),r}),i=rs();return wu=function(s,o,a){var l=i(s)?e:n,u=arguments.length<3;return l(s,r(o,4),a,u,t)},wu}function Ed(){if(Vu)return Lu;Vu=1;var e=function(){if(Tu)return ku;Tu=1;var e=dd()("length");return ku=e}(),t=function(){if(Ou)return Su;Ou=1;var e=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");return Su=function(t){return e.test(t)}}(),r=function(){if(Nu)return Iu;Nu=1;var e="\\ud800-\\udfff",t="["+e+"]",r="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",i="[^"+e+"]",s="(?:\\ud83c[\\udde6-\\uddff]){2}",o="[\\ud800-\\udbff][\\udc00-\\udfff]",a="(?:"+r+"|"+n+")?",l="[\\ufe0e\\ufe0f]?",u=l+a+"(?:\\u200d(?:"+[i,s,o].join("|")+")"+l+a+")*",c="(?:"+[i+r+"?",r,s,o,t].join("|")+")",h=RegExp(n+"(?="+n+")|"+c+u,"g");return Iu=function(e){for(var t=h.lastIndex=0;h.test(e);)++t;return t}}();return Lu=function(n){return t(n)?r(n):e(n)}}function wd(){if(Du)return Pu;Du=1;var e=Js(),t=Rh(),r=Qs(),n=function(){if(Ru)return Cu;Ru=1;var e=Bi(),t=rs(),r=es();return Cu=function(n){return"string"==typeof n||!t(n)&&r(n)&&"[object String]"==e(n)}}(),i=Ed();return Pu=function(s){if(null==s)return 0;if(r(s))return n(s)?i(s):s.length;var o=t(s);return"[object Map]"==o||"[object Set]"==o?s.size:e(s).length}}function Ad(){if(Mu)return Bu;Mu=1;var e=Ki(),t=Ih(),r=Gh(),n=pd(),i=xh(),s=rs(),o=_s(),a=Gi(),l=Mi(),u=qs();return Bu=function(c,h,d){var f=s(c),p=f||o(c)||u(c);if(h=n(h,4),null==d){var _=c&&c.constructor;d=p?f?new _:[]:l(c)&&a(_)?t(i(c)):{}}return(p?e:r)(c,(function(e,t,r){return h(d,e,t,r)})),d}}function Cd(){if(Fu)return zu;Fu=1;var e=vh(),t=function(){if(ju)return Gu;ju=1;var e=Di(),t=ts(),r=rs(),n=e?e.isConcatSpreadable:void 0;return Gu=function(e){return r(e)||t(e)||!!(n&&e&&e[n])}}();return zu=function r(n,i,s,o,a){var l=-1,u=n.length;for(s||(s=t),a||(a=[]);++l<u;){var c=n[l];i>0&&s(c)?i>1?r(c,i-1,s,o,a):e(a,c):o||(a[a.length]=c)}return a},zu}function Rd(){if(Yu)return Wu;Yu=1;var e=Hu?Uu:(Hu=1,Uu=function(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}),t=Math.max;return Wu=
|
|
146
|
-
/**
|
|
147
|
-
* A specialized version of `baseRest` which transforms the rest array.
|
|
148
|
-
*
|
|
149
|
-
* @private
|
|
150
|
-
* @param {Function} func The function to apply a rest parameter to.
|
|
151
|
-
* @param {number} [start=func.length-1] The start position of the rest parameter.
|
|
152
|
-
* @param {Function} transform The rest array transform.
|
|
153
|
-
* @returns {Function} Returns the new function.
|
|
154
|
-
*/
|
|
155
|
-
function(r,n,i){return n=t(void 0===n?r.length-1:n,0),function(){for(var s=arguments,o=-1,a=t(s.length-n,0),l=Array(a);++o<a;)l[o]=s[n+o];o=-1;for(var u=Array(n+1);++o<n;)u[o]=s[o];return u[n]=i(l),e(r,this,u)}},Wu}function kd(){if(Ju)return $u;Ju=1;var e=function(){if(qu)return Xu;qu=1;var e=Bh(),t=Zi(),r=zh();return Xu=t?function(r,n){return t(r,"toString",{configurable:!0,enumerable:!1,value:e(n),writable:!0})}:r}(),t=function(){if(Zu)return Ku;Zu=1;var e=Date.now;return Ku=function(t){var r=0,n=0;return function(){var i=e(),s=16-(i-n);if(n=i,s>0){if(++r>=800)return arguments[0]}else r=0;return t.apply(void 0,arguments)}},Ku}(),r=t(e);return $u=r}function Td(){if(ec)return Qu;ec=1;var e=zh(),t=Rd(),r=kd();return Qu=function(n,i){return r(t(n,i,e),n+"")}}function Sd(){if(rc)return tc;return rc=1,tc=function(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}}function Od(){if(lc)return ac;lc=1;var e=Sd(),t=ic?nc:(ic=1,nc=function(e){return e!=e}),r=oc?sc:(oc=1,sc=function(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1});return ac=function(n,i,s){return i==i?r(n,i,s):e(n,t,s)}}function Id(){if(gc)return _c;gc=1;var e=Ch(),t=pc?fc:(pc=1,fc=function(){}),r=qh(),n=e&&1/r(new e([,-0]))[1]==1/0?function(t){return new e(t)}:t;return _c=n}function Nd(){if(mc)return yc;mc=1;var e=Wh(),t=function(){if(cc)return uc;cc=1;var e=Od();
|
|
156
|
-
/**
|
|
157
|
-
* A specialized version of `_.includes` for arrays without support for
|
|
158
|
-
* specifying an index to search from.
|
|
159
|
-
*
|
|
160
|
-
* @private
|
|
161
|
-
* @param {Array} [array] The array to inspect.
|
|
162
|
-
* @param {*} target The value to search for.
|
|
163
|
-
* @returns {boolean} Returns `true` if `target` is found, else `false`.
|
|
164
|
-
*/return uc=function(t,r){return!(null==t||!t.length)&&e(t,r,0)>-1}}(),r=dc?hc:(dc=1,hc=function(e,t,r){for(var n=-1,i=null==e?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}),n=Yh(),i=Id(),s=qh();return yc=function(o,a,l){var u=-1,c=t,h=o.length,d=!0,f=[],p=f;if(l)d=!1,c=r;else if(h>=200){var _=a?null:i(o);if(_)return s(_);d=!1,c=n,p=new e}else p=a?[]:f;e:for(;++u<h;){var g=o[u],y=a?a(g):g;if(g=l||0!==g?g:0,d&&y==y){for(var m=p.length;m--;)if(p[m]===y)continue e;a&&p.push(y),f.push(g)}else c(p,y,l)||(p!==f&&p.push(y),f.push(g))}return f}}function Ld(){if(vc)return bc;vc=1;var e=Qs(),t=es();return bc=function(r){return t(r)&&e(r)}}function Vd(){if(Ec)return xc;Ec=1;var e=Cd(),t=Td(),r=Nd(),n=Ld(),i=t((function(t){return r(e(t,1,n,!0))}));return xc=i}function Pd(){if(Rc)return Cc;Rc=1;var e=function(){if(Ac)return wc;Ac=1;var e=id();return wc=function(t,r){return e(r,(function(e){return t[e]}))}}(),t=eo();return Cc=function(r){return null==r?[]:e(r,t(r))}}function Dd(){if(Tc)return kc;var e;Tc=1;try{e={clone:Dh(),constant:Bh(),each:Hh(),filter:_d(),has:gd(),isArray:rs(),isEmpty:yd(),isFunction:Gi(),isUndefined:md(),keys:eo(),map:vd(),reduce:xd(),size:wd(),transform:Ad(),union:Vd(),values:Pd()}}catch(e){}return e||(e=window._),kc=e}function Bd(){if(Oc)return Sc;Oc=1;var e=Dd();Sc=i;var t="\0",r="\0",n="";function i(t){this._isDirected=!e.has(t,"directed")||t.directed,this._isMultigraph=!!e.has(t,"multigraph")&&t.multigraph,this._isCompound=!!e.has(t,"compound")&&t.compound,this._label=void 0,this._defaultNodeLabelFn=e.constant(void 0),this._defaultEdgeLabelFn=e.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[r]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}function s(e,t){e[t]?e[t]++:e[t]=1}function o(e,t){--e[t]||delete e[t]}function a(r,i,s,o){var a=""+i,l=""+s;if(!r&&a>l){var u=a;a=l,l=u}return a+n+l+n+(e.isUndefined(o)?t:o)}function l(e,t){return a(e,t.v,t.w,t.name)}return i.prototype._nodeCount=0,i.prototype._edgeCount=0,i.prototype.isDirected=function(){return this._isDirected},i.prototype.isMultigraph=function(){return this._isMultigraph},i.prototype.isCompound=function(){return this._isCompound},i.prototype.setGraph=function(e){return this._label=e,this},i.prototype.graph=function(){return this._label},i.prototype.setDefaultNodeLabel=function(t){return e.isFunction(t)||(t=e.constant(t)),this._defaultNodeLabelFn=t,this},i.prototype.nodeCount=function(){return this._nodeCount},i.prototype.nodes=function(){return e.keys(this._nodes)},i.prototype.sources=function(){var t=this;return e.filter(this.nodes(),(function(r){return e.isEmpty(t._in[r])}))},i.prototype.sinks=function(){var t=this;return e.filter(this.nodes(),(function(r){return e.isEmpty(t._out[r])}))},i.prototype.setNodes=function(t,r){var n=arguments,i=this;return e.each(t,(function(e){n.length>1?i.setNode(e,r):i.setNode(e)})),this},i.prototype.setNode=function(t,n){return e.has(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=n),this):(this._nodes[t]=arguments.length>1?n:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=r,this._children[t]={},this._children[r][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)},i.prototype.node=function(e){return this._nodes[e]},i.prototype.hasNode=function(t){return e.has(this._nodes,t)},i.prototype.removeNode=function(t){var r=this;if(e.has(this._nodes,t)){var n=function(e){r.removeEdge(r._edgeObjs[e])};delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],e.each(this.children(t),(function(e){r.setParent(e)})),delete this._children[t]),e.each(e.keys(this._in[t]),n),delete this._in[t],delete this._preds[t],e.each(e.keys(this._out[t]),n),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this},i.prototype.setParent=function(t,n){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(e.isUndefined(n))n=r;else{for(var i=n+="";!e.isUndefined(i);i=this.parent(i))if(i===t)throw new Error("Setting "+n+" as parent of "+t+" would create a cycle");this.setNode(n)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=n,this._children[n][t]=!0,this},i.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]},i.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==r)return t}},i.prototype.children=function(t){if(e.isUndefined(t)&&(t=r),this._isCompound){var n=this._children[t];if(n)return e.keys(n)}else{if(t===r)return this.nodes();if(this.hasNode(t))return[]}},i.prototype.predecessors=function(t){var r=this._preds[t];if(r)return e.keys(r)},i.prototype.successors=function(t){var r=this._sucs[t];if(r)return e.keys(r)},i.prototype.neighbors=function(t){var r=this.predecessors(t);if(r)return e.union(r,this.successors(t))},i.prototype.isLeaf=function(e){return 0===(this.isDirected()?this.successors(e):this.neighbors(e)).length},i.prototype.filterNodes=function(t){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var n=this;e.each(this._nodes,(function(e,n){t(n)&&r.setNode(n,e)})),e.each(this._edgeObjs,(function(e){r.hasNode(e.v)&&r.hasNode(e.w)&&r.setEdge(e,n.edge(e))}));var i={};function s(e){var t=n.parent(e);return void 0===t||r.hasNode(t)?(i[e]=t,t):t in i?i[t]:s(t)}return this._isCompound&&e.each(r.nodes(),(function(e){r.setParent(e,s(e))})),r},i.prototype.setDefaultEdgeLabel=function(t){return e.isFunction(t)||(t=e.constant(t)),this._defaultEdgeLabelFn=t,this},i.prototype.edgeCount=function(){return this._edgeCount},i.prototype.edges=function(){return e.values(this._edgeObjs)},i.prototype.setPath=function(t,r){var n=this,i=arguments;return e.reduce(t,(function(e,t){return i.length>1?n.setEdge(e,t,r):n.setEdge(e,t),t})),this},i.prototype.setEdge=function(){var t,r,n,i,o=!1,l=arguments[0];"object"==typeof l&&null!==l&&"v"in l?(t=l.v,r=l.w,n=l.name,2===arguments.length&&(i=arguments[1],o=!0)):(t=l,r=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],o=!0)),t=""+t,r=""+r,e.isUndefined(n)||(n=""+n);var u=a(this._isDirected,t,r,n);if(e.has(this._edgeLabels,u))return o&&(this._edgeLabels[u]=i),this;if(!e.isUndefined(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(r),this._edgeLabels[u]=o?i:this._defaultEdgeLabelFn(t,r,n);var c=function(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var o=i;i=s,s=o}var a={v:i,w:s};n&&(a.name=n);return a}(this._isDirected,t,r,n);return t=c.v,r=c.w,Object.freeze(c),this._edgeObjs[u]=c,s(this._preds[r],t),s(this._sucs[t],r),this._in[r][u]=c,this._out[t][u]=c,this._edgeCount++,this},i.prototype.edge=function(e,t,r){var n=1===arguments.length?l(this._isDirected,arguments[0]):a(this._isDirected,e,t,r);return this._edgeLabels[n]},i.prototype.hasEdge=function(t,r,n){var i=1===arguments.length?l(this._isDirected,arguments[0]):a(this._isDirected,t,r,n);return e.has(this._edgeLabels,i)},i.prototype.removeEdge=function(e,t,r){var n=1===arguments.length?l(this._isDirected,arguments[0]):a(this._isDirected,e,t,r),i=this._edgeObjs[n];return i&&(e=i.v,t=i.w,delete this._edgeLabels[n],delete this._edgeObjs[n],o(this._preds[t],e),o(this._sucs[e],t),delete this._in[t][n],delete this._out[e][n],this._edgeCount--),this},i.prototype.inEdges=function(t,r){var n=this._in[t];if(n){var i=e.values(n);return r?e.filter(i,(function(e){return e.v===r})):i}},i.prototype.outEdges=function(t,r){var n=this._out[t];if(n){var i=e.values(n);return r?e.filter(i,(function(e){return e.w===r})):i}},i.prototype.nodeEdges=function(e,t){var r=this.inEdges(e,t);if(r)return r.concat(this.outEdges(e,t))},Sc}function Md(){return Vc?Lc:(Vc=1,Lc={Graph:Bd(),version:Nc?Ic:(Nc=1,Ic="2.1.8")})}function Gd(){if(Dc)return Pc;Dc=1;var e=Dd(),t=Bd();function r(t){return e.map(t.nodes(),(function(r){var n=t.node(r),i=t.parent(r),s={v:r};return e.isUndefined(n)||(s.value=n),e.isUndefined(i)||(s.parent=i),s}))}function n(t){return e.map(t.edges(),(function(r){var n=t.edge(r),i={v:r.v,w:r.w};return e.isUndefined(r.name)||(i.name=r.name),e.isUndefined(n)||(i.value=n),i}))}return Pc={write:function(t){var i={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:r(t),edges:n(t)};e.isUndefined(t.graph())||(i.value=e.clone(t.graph()));return i},read:function(r){var n=new t(r.options).setGraph(r.value);return e.each(r.nodes,(function(e){n.setNode(e.v,e.value),e.parent&&n.setParent(e.v,e.parent)})),e.each(r.edges,(function(e){n.setEdge({v:e.v,w:e.w,name:e.name},e.value)})),n}}}function jd(){if(Mc)return Bc;Mc=1;var e=Dd();return Bc=function(t){var r,n={},i=[];function s(i){e.has(n,i)||(n[i]=!0,r.push(i),e.each(t.successors(i),s),e.each(t.predecessors(i),s))}return e.each(t.nodes(),(function(e){r=[],s(e),r.length&&i.push(r)})),i},Bc}function zd(){if(jc)return Gc;jc=1;var e=Dd();function t(){this._arr=[],this._keyIndices={}}return Gc=t,t.prototype.size=function(){return this._arr.length},t.prototype.keys=function(){return this._arr.map((function(e){return e.key}))},t.prototype.has=function(t){return e.has(this._keyIndices,t)},t.prototype.priority=function(e){var t=this._keyIndices[e];if(void 0!==t)return this._arr[t].priority},t.prototype.min=function(){if(0===this.size())throw new Error("Queue underflow");return this._arr[0].key},t.prototype.add=function(t,r){var n=this._keyIndices;if(t=String(t),!e.has(n,t)){var i=this._arr,s=i.length;return n[t]=s,i.push({key:t,priority:r}),this._decrease(s),!0}return!1},t.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key},t.prototype.decrease=function(e,t){var r=this._keyIndices[e];if(t>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[r].priority+" New: "+t);this._arr[r].priority=t,this._decrease(r)},t.prototype._heapify=function(e){var t=this._arr,r=2*e,n=r+1,i=e;r<t.length&&(i=t[r].priority<t[i].priority?r:i,n<t.length&&(i=t[n].priority<t[i].priority?n:i),i!==e&&(this._swap(e,i),this._heapify(i)))},t.prototype._decrease=function(e){for(var t,r=this._arr,n=r[e].priority;0!==e&&!(r[t=e>>1].priority<n);)this._swap(e,t),e=t},t.prototype._swap=function(e,t){var r=this._arr,n=this._keyIndices,i=r[e],s=r[t];r[e]=s,r[t]=i,n[s.key]=e,n[i.key]=t},Gc}function Fd(){if(Fc)return zc;Fc=1;var e=Dd(),t=zd();zc=function(e,n,i,s){return function(e,r,n,i){var s,o,a={},l=new t,u=function(e){var t=e.v!==s?e.v:e.w,r=a[t],i=n(e),u=o.distance+i;if(i<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+e+" Weight: "+i);u<r.distance&&(r.distance=u,r.predecessor=s,l.decrease(t,u))};e.nodes().forEach((function(e){var t=e===r?0:Number.POSITIVE_INFINITY;a[e]={distance:t},l.add(e,t)}));for(;l.size()>0&&(s=l.removeMin(),(o=a[s]).distance!==Number.POSITIVE_INFINITY);)i(s).forEach(u);return a}(e,String(n),i||r,s||function(t){return e.outEdges(t)})};var r=e.constant(1);return zc}function Ud(){if(Hc)return Uc;Hc=1;var e=Fd(),t=Dd();return Uc=function(r,n,i){return t.transform(r.nodes(),(function(t,s){t[s]=e(r,s,n,i)}),{})}}function Hd(){if(Yc)return Wc;Yc=1;var e=Dd();return Wc=function(t){var r=0,n=[],i={},s=[];function o(a){var l=i[a]={onStack:!0,lowlink:r,index:r++};if(n.push(a),t.successors(a).forEach((function(t){e.has(i,t)?i[t].onStack&&(l.lowlink=Math.min(l.lowlink,i[t].index)):(o(t),l.lowlink=Math.min(l.lowlink,i[t].lowlink))})),l.lowlink===l.index){var u,c=[];do{u=n.pop(),i[u].onStack=!1,c.push(u)}while(a!==u);s.push(c)}}return t.nodes().forEach((function(t){e.has(i,t)||o(t)})),s},Wc}function Wd(){if(qc)return Xc;qc=1;var e=Dd(),t=Hd();return Xc=function(r){return e.filter(t(r),(function(e){return e.length>1||1===e.length&&r.hasEdge(e[0],e[0])}))}}function Yd(){if(Zc)return Kc;Zc=1;var e=Dd();Kc=function(e,r,n){return function(e,t,r){var n={},i=e.nodes();return i.forEach((function(e){n[e]={},n[e][e]={distance:0},i.forEach((function(t){e!==t&&(n[e][t]={distance:Number.POSITIVE_INFINITY})})),r(e).forEach((function(r){var i=r.v===e?r.w:r.v,s=t(r);n[e][i]={distance:s,predecessor:e}}))})),i.forEach((function(e){var t=n[e];i.forEach((function(r){var s=n[r];i.forEach((function(r){var n=s[e],i=t[r],o=s[r],a=n.distance+i.distance;a<o.distance&&(o.distance=a,o.predecessor=i.predecessor)}))}))})),n}(e,r||t,n||function(t){return e.outEdges(t)})};var t=e.constant(1);return Kc}function Xd(){if(Jc)return $c;Jc=1;var e=Dd();function t(t){var n={},i={},s=[];if(e.each(t.sinks(),(function o(a){if(e.has(i,a))throw new r;e.has(n,a)||(i[a]=!0,n[a]=!0,e.each(t.predecessors(a),o),delete i[a],s.push(a))})),e.size(n)!==t.nodeCount())throw new r;return s}function r(){}return $c=t,t.CycleException=r,r.prototype=new Error,$c}function qd(){if(eh)return Qc;eh=1;var e=Xd();return Qc=function(t){try{e(t)}catch(t){if(t instanceof e.CycleException)return!1;throw t}return!0}}function Kd(){if(rh)return th;rh=1;var e=Dd();function t(r,n,i,s,o,a){e.has(s,n)||(s[n]=!0,i||a.push(n),e.each(o(n),(function(e){t(r,e,i,s,o,a)})),i&&a.push(n))}return th=function(r,n,i){e.isArray(n)||(n=[n]);var s=(r.isDirected()?r.successors:r.neighbors).bind(r),o=[],a={};return e.each(n,(function(e){if(!r.hasNode(e))throw new Error("Graph does not have node: "+e);t(r,e,"post"===i,a,s,o)})),o},th}function Zd(){if(ih)return nh;ih=1;var e=Kd();return nh=function(t,r){return e(t,r,"post")}}function $d(){if(oh)return sh;oh=1;var e=Kd();return sh=function(t,r){return e(t,r,"pre")}}function Jd(){if(lh)return ah;lh=1;var e=Dd(),t=Bd(),r=zd();return ah=function(n,i){var s,o=new t,a={},l=new r;function u(e){var t=e.v===s?e.w:e.v,r=l.priority(t);if(void 0!==r){var n=i(e);n<r&&(a[t]=s,l.decrease(t,n))}}if(0===n.nodeCount())return o;e.each(n.nodes(),(function(e){l.add(e,Number.POSITIVE_INFINITY),o.setNode(e)})),l.decrease(n.nodes()[0],0);var c=!1;for(;l.size()>0;){if(s=l.removeMin(),e.has(a,s))o.setEdge(s,a[s]);else{if(c)throw new Error("Input graph is not connected: "+n);c=!0}n.nodeEdges(s).forEach(u)}return o}}ph.exports;try{fh=function(){if(dh)return hh;dh=1;var e=Md();return hh={Graph:e.Graph,json:Gd(),alg:ch?uh:(ch=1,uh={components:jd(),dijkstra:Fd(),dijkstraAll:Ud(),findCycles:Wd(),floydWarshall:Yd(),isAcyclic:qd(),postorder:Zd(),preorder:$d(),prim:Jd(),tarjan:Hd(),topsort:Xd()}),version:e.version}}()}catch(e){}fh||(fh=window.graphlib);var Qd,ef,tf,rf,nf,sf,of,af,lf,uf,cf,hf,df,ff,pf,_f,gf,yf,mf,bf,vf,xf,Ef,wf,Af,Cf,Rf,kf,Tf,Sf,Of,If,Nf,Lf,Vf,Pf,Df,Bf,Mf,Gf,jf,zf,Ff,Uf,Hf,Wf,Yf,Xf,qf,Kf,Zf,$f,Jf,Qf,ep,tp,rp,np,ip,sp,op,ap,lp,up,cp,hp,dp,fp,pp,_p,gp,yp,mp,bp,vp,xp,Ep,wp,Ap,Cp,Rp,kp,Tp,Sp,Op,Ip,Np,Lp,Vp,Pp,Dp,Bp,Mp,Gp=fh;function jp(){if(rf)return tf;rf=1;var e=Ii(),t=Qs(),r=gs(),n=Mi();return tf=function(i,s,o){if(!n(o))return!1;var a=typeof s;return!!("number"==a?t(o)&&r(s,o.length):"string"==a&&s in o)&&e(o[s],i)}}function zp(){if(hf)return cf;hf=1;var e=function(){if(uf)return lf;uf=1;var e=/\s/;return lf=function(t){for(var r=t.length;r--&&e.test(t.charAt(r)););return r}}(),t=/^\s+/;return cf=function(r){return r?r.slice(0,e(r)+1).replace(t,""):r}}function Fp(){if(_f)return pf;_f=1;var e=function(){if(ff)return df;ff=1;var e=zp(),t=Mi(),r=td(),n=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,s=/^0o[0-7]+$/i,o=parseInt;return df=function(a){if("number"==typeof a)return a;if(r(a))return NaN;if(t(a)){var l="function"==typeof a.valueOf?a.valueOf():a;a=t(l)?l+"":l}if("string"!=typeof a)return 0===a?a:+a;a=e(a);var u=i.test(a);return u||s.test(a)?o(a.slice(2),u?2:8):n.test(a)?NaN:+a}}(),t=1/0;return pf=function(r){return r?(r=e(r))===t||r===-1/0?17976931348623157e292*(r<0?-1:1):r==r?r:0:0===r?r:0}}function Up(){if(bf)return mf;bf=1;var e=Sd(),t=pd(),r=function(){if(yf)return gf;yf=1;var e=Fp();return gf=function(t){var r=e(t),n=r%1;return r==r?n?r-n:r:0}}(),n=Math.max;return mf=function(i,s,o){var a=null==i?0:i.length;if(!a)return-1;var l=null==o?0:r(o);return l<0&&(l=n(a+l,0)),e(i,t(s,3),l)}}function Hp(){if(wf)return Ef;wf=1;var e=Cd();return Ef=function(t){return(null==t?0:t.length)?e(t,1):[]}}function Wp(){if(If)return Of;If=1;var e=td();return Of=function(t,r,n){for(var i=-1,s=t.length;++i<s;){var o=t[i],a=r(o);if(null!=a&&(void 0===l?a==a&&!e(a):n(a,l)))var l=a,u=o}return u}}function Yp(){if(Bf)return Df;Bf=1;var e=$i(),t=Ii();return Df=function(r,n,i){(void 0!==i&&!t(r[n],i)||void 0===i&&!(n in r))&&e(r,n,i)}}function Xp(){if(zf)return jf;return zf=1,jf=function(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}}function qp(){if(Wf)return Hf;Wf=1;var e=Yp(),t=_h(),r=Sh(),n=gh(),i=Nh(),s=ts(),o=rs(),a=Ld(),l=_s(),u=Gi(),c=Mi(),h=function(){if(Gf)return Mf;Gf=1;var e=Bi(),t=xh(),r=es(),n=Function.prototype,i=Object.prototype,s=n.toString,o=i.hasOwnProperty,a=s.call(Object);return Mf=function(n){if(!r(n)||"[object Object]"!=e(n))return!1;var i=t(n);if(null===i)return!0;var l=o.call(i,"constructor")&&i.constructor;return"function"==typeof l&&l instanceof l&&s.call(l)==a}}(),d=qs(),f=Xp(),p=function(){if(Uf)return Ff;Uf=1;var e=Qi(),t=ro();return Ff=function(r){return e(r,t(r))}}();
|
|
165
|
-
/**
|
|
166
|
-
* A specialized version of `baseMerge` for arrays and objects which performs
|
|
167
|
-
* deep merges and tracks traversed objects enabling objects with circular
|
|
168
|
-
* references to be merged.
|
|
169
|
-
*
|
|
170
|
-
* @private
|
|
171
|
-
* @param {Object} object The destination object.
|
|
172
|
-
* @param {Object} source The source object.
|
|
173
|
-
* @param {string} key The key of the value to merge.
|
|
174
|
-
* @param {number} srcIndex The index of `source`.
|
|
175
|
-
* @param {Function} mergeFunc The function to merge values.
|
|
176
|
-
* @param {Function} [customizer] The function to customize assigned values.
|
|
177
|
-
* @param {Object} [stack] Tracks traversed source values and their merged
|
|
178
|
-
* counterparts.
|
|
179
|
-
*/return Hf=function(_,g,y,m,b,v,x){var E=f(_,y),w=f(g,y),A=x.get(w);if(A)e(_,y,A);else{var C=v?v(E,w,y+"",_,g,x):void 0,R=void 0===C;if(R){var k=o(w),T=!k&&l(w),S=!k&&!T&&d(w);C=w,k||T||S?o(E)?C=E:a(E)?C=n(E):T?(R=!1,C=t(w,!0)):S?(R=!1,C=r(w,!0)):C=[]:h(w)||s(w)?(C=E,s(E)?C=p(E):c(E)&&!u(E)||(C=i(w))):R=!1}R&&(x.set(w,C),b(C,w,m,v,x),x.delete(w)),e(_,y,C)}}}function Kp(){if(Qf)return Jf;return Qf=1,Jf=function(e,t){return e<t}}function Zp(){if(up)return lp;up=1;var e=ld(),t=function(){if(ap)return op;ap=1;var e=Ji(),t=od(),r=gs(),n=Mi(),i=ad();return op=function(s,o,a,l){if(!n(s))return s;for(var u=-1,c=(o=t(o,s)).length,h=c-1,d=s;null!=d&&++u<c;){var f=i(o[u]),p=a;if("__proto__"===f||"constructor"===f||"prototype"===f)return s;if(u!=h){var _=d[f];void 0===(p=l?l(_,f,d):void 0)&&(p=n(_)?_:r(o[u+1])?[]:{})}e(d,f,p),d=d[f]}return s}}(),r=od();return lp=function(n,i,s){for(var o=-1,a=i.length,l={};++o<a;){var u=i[o],c=e(n,u);s(c,u)&&t(l,r(u,n),c)}return l}}function $p(){if(bp)return mp;bp=1;var e=function(){if(yp)return gp;yp=1;var e=Math.ceil,t=Math.max;return gp=function(r,n,i,s){for(var o=-1,a=t(e((n-r)/(i||1)),0),l=Array(a);a--;)l[s?a:++o]=r,r+=i;return l}}(),t=jp(),r=Fp();return mp=function(n){return function(i,s,o){return o&&"number"!=typeof o&&t(i,s,o)&&(s=o=void 0),i=r(i),void 0===s?(s=i,i=0):s=r(s),o=void 0===o?i<s?1:-1:r(o),e(i,s,o,n)}}}function Jp(){if(kp)return Rp;kp=1;var e=function(){if(Cp)return Ap;Cp=1;var e=td();return Ap=function(t,r){if(t!==r){var n=void 0!==t,i=null===t,s=t==t,o=e(t),a=void 0!==r,l=null===r,u=r==r,c=e(r);if(!l&&!c&&!o&&t>r||o&&a&&u&&!l&&!c||i&&a&&u||!n&&u||!s)return 1;if(!i&&!o&&!c&&t<r||c&&n&&s&&!i&&!o||l&&n&&s||!a&&s||!u)return-1}return 0}}();return Rp=function(t,r,n){for(var i=-1,s=t.criteria,o=r.criteria,a=s.length,l=n.length;++i<a;){var u=e(s[i],o[i]);if(u)return i>=l?u:u*("desc"==n[i]?-1:1)}return t.index-r.index}}function Qp(){if(Sp)return Tp;Sp=1;var e=id(),t=ld(),r=pd(),n=bd(),i=wp?Ep:(wp=1,Ep=function(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}),s=ms(),o=Jp(),a=zh(),l=rs();return Tp=function(u,c,h){c=c.length?e(c,(function(e){return l(e)?function(r){return t(r,1===e.length?e[0]:e)}:e})):[a];var d=-1;c=e(c,s(r));var f=n(u,(function(t,r,n){return{criteria:e(c,(function(e){return e(t)})),index:++d,value:t}}));return i(f,(function(e,t){return o(e,t,h)}))}}try{Mp={cloneDeep:function(){if(ef)return Qd;ef=1;var e=Ph();return Qd=function(t){return e(t,5)}}(),constant:Bh(),defaults:function(){if(sf)return nf;sf=1;var e=Td(),t=Ii(),r=jp(),n=ro(),i=Object.prototype,s=i.hasOwnProperty,o=e((function(e,o){e=Object(e);var a=-1,l=o.length,u=l>2?o[2]:void 0;for(u&&r(o[0],o[1],u)&&(l=1);++a<l;)for(var c=o[a],h=n(c),d=-1,f=h.length;++d<f;){var p=h[d],_=e[p];(void 0===_||t(_,i[p])&&!s.call(e,p))&&(e[p]=c[p])}return e}));return nf=o}(),each:Hh(),filter:_d(),find:function(){if(xf)return vf;xf=1;var e=function(){if(af)return of;af=1;var e=pd(),t=Qs(),r=eo();return of=function(n){return function(i,s,o){var a=Object(i);if(!t(i)){var l=e(s,3);i=r(i),s=function(e){return l(a[e],e,a)}}var u=n(i,s,o);return u>-1?a[l?i[u]:u]:void 0}}}()(Up());return vf=e}(),flatten:Hp(),forEach:Uh(),forIn:function(){if(Cf)return Af;Cf=1;var e=Mh(),t=Fh(),r=ro();return Af=function(n,i){return null==n?n:e(n,t(i),r)}}(),has:gd(),isUndefined:md(),last:kf?Rf:(kf=1,Rf=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}),map:vd(),mapValues:function(){if(Sf)return Tf;Sf=1;var e=$i(),t=Gh(),r=pd();return Tf=function(n,i){var s={};return i=r(i,3),t(n,(function(t,r,n){e(s,r,i(t,r,n))})),s}}(),max:function(){if(Pf)return Vf;Pf=1;var e=Wp(),t=Lf?Nf:(Lf=1,Nf=function(e,t){return e>t}),r=zh();return Vf=function(n){return n&&n.length?e(n,r,t):void 0}}(),merge:function(){if($f)return Zf;$f=1;var e=function(){if(Xf)return Yf;Xf=1;var e=qi(),t=Yp(),r=Mh(),n=qp(),i=Mi(),s=ro(),o=Xp();return Yf=function a(l,u,c,h,d){l!==u&&r(u,(function(r,s){if(d||(d=new e),i(r))n(l,u,s,c,a,h,d);else{var f=h?h(o(l,s),r,s+"",l,u,d):void 0;void 0===f&&(f=r),t(l,s,f)}}),s)},Yf}(),t=function(){if(Kf)return qf;Kf=1;var e=Td(),t=jp();return qf=function(r){return e((function(e,n){var i=-1,s=n.length,o=s>1?n[s-1]:void 0,a=s>2?n[2]:void 0;for(o=r.length>3&&"function"==typeof o?(s--,o):void 0,a&&t(n[0],n[1],a)&&(o=s<3?void 0:o,s=1),e=Object(e);++i<s;){var l=n[i];l&&r(e,l,i,o)}return e}))}}()((function(t,r,n){e(t,r,n)}));return Zf=t}(),min:function(){if(tp)return ep;tp=1;var e=Wp(),t=Kp(),r=zh();return ep=function(n){return n&&n.length?e(n,r,t):void 0}}(),minBy:function(){if(np)return rp;np=1;var e=Wp(),t=pd(),r=Kp();return rp=function(n,i){return n&&n.length?e(n,t(i,2),r):void 0}}(),now:function(){if(sp)return ip;sp=1;var e=Pi();return ip=function(){return e.Date.now()}}(),pick:function(){if(_p)return pp;_p=1;var e=function(){if(hp)return cp;hp=1;var e=Zp(),t=cd();return cp=function(r,n){return e(r,n,(function(e,n){return t(r,n)}))}}(),t=function(){if(fp)return dp;fp=1;var e=Hp(),t=Rd(),r=kd();
|
|
180
|
-
/**
|
|
181
|
-
* A specialized version of `baseRest` which flattens the rest array.
|
|
182
|
-
*
|
|
183
|
-
* @private
|
|
184
|
-
* @param {Function} func The function to apply a rest parameter to.
|
|
185
|
-
* @returns {Function} Returns the new function.
|
|
186
|
-
*/return dp=function(n){return r(t(n,void 0,e),n+"")}}()((function(t,r){return null==t?{}:e(t,r)}));return pp=t}(),range:function(){if(xp)return vp;xp=1;var e=$p()();return vp=e}(),reduce:xd(),sortBy:function(){if(Ip)return Op;Ip=1;var e=Cd(),t=Qp(),r=Td(),n=jp(),i=r((function(r,i){if(null==r)return[];var s=i.length;return s>1&&n(r,i[0],i[1])?i=[]:s>2&&n(i[0],i[1],i[2])&&(i=[i[0]]),t(r,e(i,1),[])}));return Op=i}(),uniqueId:function(){if(Lp)return Np;Lp=1;var e=sd(),t=0;return Np=function(r){var n=++t;return e(r)+n},Np}(),values:Pd(),zipObject:function(){if(Bp)return Dp;Bp=1;var e=Ji(),t=Pp?Vp:(Pp=1,Vp=function(e,t,r){for(var n=-1,i=e.length,s=t.length,o={};++n<i;){var a=n<s?t[n]:void 0;r(o,e[n],a)}return o});return Dp=function(r,n){return t(r||[],n||[],e)}}()}}catch(e){}Mp||(Mp=window._);var e_=Mp,t_=r_;function r_(){var e={};e._next=e._prev=e,this._sentinel=e}function n_(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function i_(e,t){if("_next"!==e&&"_prev"!==e)return t}r_.prototype.dequeue=function(){var e=this._sentinel,t=e._prev;if(t!==e)return n_(t),t},r_.prototype.enqueue=function(e){var t=this._sentinel;e._prev&&e._next&&n_(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t},r_.prototype.toString=function(){for(var e=[],t=this._sentinel,r=t._prev;r!==t;)e.push(JSON.stringify(r,i_)),r=r._prev;return"["+e.join(", ")+"]"};var s_=e_,o_=Gp.Graph,a_=t_,l_=function(e,t){if(e.nodeCount()<=1)return[];var r=function(e,t){var r=new o_,n=0,i=0;s_.forEach(e.nodes(),(function(e){r.setNode(e,{v:e,in:0,out:0})})),s_.forEach(e.edges(),(function(e){var s=r.edge(e.v,e.w)||0,o=t(e),a=s+o;r.setEdge(e.v,e.w,a),i=Math.max(i,r.node(e.v).out+=o),n=Math.max(n,r.node(e.w).in+=o)}));var s=s_.range(i+n+3).map((function(){return new a_})),o=n+1;return s_.forEach(r.nodes(),(function(e){h_(s,o,r.node(e))})),{graph:r,buckets:s,zeroIdx:o}}(e,t||u_),n=function(e,t,r){var n,i=[],s=t[t.length-1],o=t[0];for(;e.nodeCount();){for(;n=o.dequeue();)c_(e,t,r,n);for(;n=s.dequeue();)c_(e,t,r,n);if(e.nodeCount())for(var a=t.length-2;a>0;--a)if(n=t[a].dequeue()){i=i.concat(c_(e,t,r,n,!0));break}}return i}(r.graph,r.buckets,r.zeroIdx);return s_.flatten(s_.map(n,(function(t){return e.outEdges(t.v,t.w)})),!0)},u_=s_.constant(1);function c_(e,t,r,n,i){var s=i?[]:void 0;return s_.forEach(e.inEdges(n.v),(function(n){var o=e.edge(n),a=e.node(n.v);i&&s.push({v:n.v,w:n.w}),a.out-=o,h_(t,r,a)})),s_.forEach(e.outEdges(n.v),(function(n){var i=e.edge(n),s=n.w,o=e.node(s);o.in-=i,h_(t,r,o)})),e.removeNode(n.v),s}function h_(e,t,r){r.out?r.in?e[r.out-r.in+t].enqueue(r):e[e.length-1].enqueue(r):e[0].enqueue(r)}var d_=e_,f_=l_,p_={run:function(e){var t="greedy"===e.graph().acyclicer?f_(e,function(e){return function(t){return e.edge(t).weight}}(e)):function(e){var t=[],r={},n={};function i(s){d_.has(n,s)||(n[s]=!0,r[s]=!0,d_.forEach(e.outEdges(s),(function(e){d_.has(r,e.w)?t.push(e):i(e.w)})),delete r[s])}return d_.forEach(e.nodes(),i),t}(e);d_.forEach(t,(function(t){var r=e.edge(t);e.removeEdge(t),r.forwardName=t.name,r.reversed=!0,e.setEdge(t.w,t.v,r,d_.uniqueId("rev"))}))},undo:function(e){d_.forEach(e.edges(),(function(t){var r=e.edge(t);if(r.reversed){e.removeEdge(t);var n=r.forwardName;delete r.reversed,delete r.forwardName,e.setEdge(t.w,t.v,r,n)}}))}};var __=e_,g_=Gp.Graph,y_={addDummyNode:m_,simplify:function(e){var t=(new g_).setGraph(e.graph());return __.forEach(e.nodes(),(function(r){t.setNode(r,e.node(r))})),__.forEach(e.edges(),(function(r){var n=t.edge(r.v,r.w)||{weight:0,minlen:1},i=e.edge(r);t.setEdge(r.v,r.w,{weight:n.weight+i.weight,minlen:Math.max(n.minlen,i.minlen)})})),t},asNonCompoundGraph:function(e){var t=new g_({multigraph:e.isMultigraph()}).setGraph(e.graph());return __.forEach(e.nodes(),(function(r){e.children(r).length||t.setNode(r,e.node(r))})),__.forEach(e.edges(),(function(r){t.setEdge(r,e.edge(r))})),t},successorWeights:function(e){var t=__.map(e.nodes(),(function(t){var r={};return __.forEach(e.outEdges(t),(function(t){r[t.w]=(r[t.w]||0)+e.edge(t).weight})),r}));return __.zipObject(e.nodes(),t)},predecessorWeights:function(e){var t=__.map(e.nodes(),(function(t){var r={};return __.forEach(e.inEdges(t),(function(t){r[t.v]=(r[t.v]||0)+e.edge(t).weight})),r}));return __.zipObject(e.nodes(),t)},intersectRect:function(e,t){var r,n,i=e.x,s=e.y,o=t.x-i,a=t.y-s,l=e.width/2,u=e.height/2;if(!o&&!a)throw new Error("Not possible to find intersection inside of the rectangle");Math.abs(a)*l>Math.abs(o)*u?(a<0&&(u=-u),r=u*o/a,n=u):(o<0&&(l=-l),r=l,n=l*a/o);return{x:i+r,y:s+n}},buildLayerMatrix:function(e){var t=__.map(__.range(b_(e)+1),(function(){return[]}));return __.forEach(e.nodes(),(function(r){var n=e.node(r),i=n.rank;__.isUndefined(i)||(t[i][n.order]=r)})),t},normalizeRanks:function(e){var t=__.min(__.map(e.nodes(),(function(t){return e.node(t).rank})));__.forEach(e.nodes(),(function(r){var n=e.node(r);__.has(n,"rank")&&(n.rank-=t)}))},removeEmptyRanks:function(e){var t=__.min(__.map(e.nodes(),(function(t){return e.node(t).rank}))),r=[];__.forEach(e.nodes(),(function(n){var i=e.node(n).rank-t;r[i]||(r[i]=[]),r[i].push(n)}));var n=0,i=e.graph().nodeRankFactor;__.forEach(r,(function(t,r){__.isUndefined(t)&&r%i!=0?--n:n&&__.forEach(t,(function(t){e.node(t).rank+=n}))}))},addBorderNode:function(e,t,r,n){var i={width:0,height:0};arguments.length>=4&&(i.rank=r,i.order=n);return m_(e,"border",i,t)},maxRank:b_,partition:function(e,t){var r={lhs:[],rhs:[]};return __.forEach(e,(function(e){t(e)?r.lhs.push(e):r.rhs.push(e)})),r},time:function(e,t){var r=__.now();try{return t()}finally{console.log(e+" time: "+(__.now()-r)+"ms")}},notime:function(e,t){return t()}};function m_(e,t,r,n){var i;do{i=__.uniqueId(n)}while(e.hasNode(i));return r.dummy=t,e.setNode(i,r),i}function b_(e){return __.max(__.map(e.nodes(),(function(t){var r=e.node(t).rank;if(!__.isUndefined(r))return r})))}var v_=e_,x_=y_,E_={run:function(e){e.graph().dummyChains=[],v_.forEach(e.edges(),(function(t){!function(e,t){var r,n,i,s=t.v,o=e.node(s).rank,a=t.w,l=e.node(a).rank,u=t.name,c=e.edge(t),h=c.labelRank;if(l===o+1)return;for(e.removeEdge(t),i=0,++o;o<l;++i,++o)c.points=[],n={width:0,height:0,edgeLabel:c,edgeObj:t,rank:o},r=x_.addDummyNode(e,"edge",n,"_d"),o===h&&(n.width=c.width,n.height=c.height,n.dummy="edge-label",n.labelpos=c.labelpos),e.setEdge(s,r,{weight:c.weight},u),0===i&&e.graph().dummyChains.push(r),s=r;e.setEdge(s,a,{weight:c.weight},u)}(e,t)}))},undo:function(e){v_.forEach(e.graph().dummyChains,(function(t){var r,n=e.node(t),i=n.edgeLabel;for(e.setEdge(n.edgeObj,i);n.dummy;)r=e.successors(t)[0],e.removeNode(t),i.points.push({x:n.x,y:n.y}),"edge-label"===n.dummy&&(i.x=n.x,i.y=n.y,i.width=n.width,i.height=n.height),t=r,n=e.node(t)}))}};var w_=e_,A_={longestPath:function(e){var t={};w_.forEach(e.sources(),(function r(n){var i=e.node(n);if(w_.has(t,n))return i.rank;t[n]=!0;var s=w_.min(w_.map(e.outEdges(n),(function(t){return r(t.w)-e.edge(t).minlen})));return s!==Number.POSITIVE_INFINITY&&null!=s||(s=0),i.rank=s}))},slack:function(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}};var C_=e_,R_=Gp.Graph,k_=A_.slack,T_=function(e){var t,r,n=new R_({directed:!1}),i=e.nodes()[0],s=e.nodeCount();n.setNode(i,{});for(;S_(n,e)<s;)t=O_(n,e),r=n.hasNode(t.v)?k_(e,t):-k_(e,t),I_(n,e,r);return n};function S_(e,t){return C_.forEach(e.nodes(),(function r(n){C_.forEach(t.nodeEdges(n),(function(i){var s=i.v,o=n===s?i.w:s;e.hasNode(o)||k_(t,i)||(e.setNode(o,{}),e.setEdge(n,o,{}),r(o))}))})),e.nodeCount()}function O_(e,t){return C_.minBy(t.edges(),(function(r){if(e.hasNode(r.v)!==e.hasNode(r.w))return k_(t,r)}))}function I_(e,t,r){C_.forEach(e.nodes(),(function(e){t.node(e).rank+=r}))}var N_=e_,L_=T_,V_=A_.slack,P_=A_.longestPath,D_=Gp.alg.preorder,B_=Gp.alg.postorder,M_=y_.simplify,G_=j_;function j_(e){e=M_(e),P_(e);var t,r=L_(e);for(U_(r),z_(r,e);t=W_(r);)X_(r,e,t,Y_(r,e,t))}function z_(e,t){var r=B_(e,e.nodes());r=r.slice(0,r.length-1),N_.forEach(r,(function(r){!function(e,t,r){var n=e.node(r),i=n.parent;e.edge(r,i).cutvalue=F_(e,t,r)}(e,t,r)}))}function F_(e,t,r){var n=e.node(r).parent,i=!0,s=t.edge(r,n),o=0;return s||(i=!1,s=t.edge(n,r)),o=s.weight,N_.forEach(t.nodeEdges(r),(function(s){var a,l,u=s.v===r,c=u?s.w:s.v;if(c!==n){var h=u===i,d=t.edge(s).weight;if(o+=h?d:-d,a=r,l=c,e.hasEdge(a,l)){var f=e.edge(r,c).cutvalue;o+=h?-f:f}}})),o}function U_(e,t){arguments.length<2&&(t=e.nodes()[0]),H_(e,{},1,t)}function H_(e,t,r,n,i){var s=r,o=e.node(n);return t[n]=!0,N_.forEach(e.neighbors(n),(function(i){N_.has(t,i)||(r=H_(e,t,r,i,n))})),o.low=s,o.lim=r++,i?o.parent=i:delete o.parent,r}function W_(e){return N_.find(e.edges(),(function(t){return e.edge(t).cutvalue<0}))}function Y_(e,t,r){var n=r.v,i=r.w;t.hasEdge(n,i)||(n=r.w,i=r.v);var s=e.node(n),o=e.node(i),a=s,l=!1;s.lim>o.lim&&(a=o,l=!0);var u=N_.filter(t.edges(),(function(t){return l===q_(e,e.node(t.v),a)&&l!==q_(e,e.node(t.w),a)}));return N_.minBy(u,(function(e){return V_(t,e)}))}function X_(e,t,r,n){var i=r.v,s=r.w;e.removeEdge(i,s),e.setEdge(n.v,n.w,{}),U_(e),z_(e,t),function(e,t){var r=N_.find(e.nodes(),(function(e){return!t.node(e).parent})),n=D_(e,r);n=n.slice(1),N_.forEach(n,(function(r){var n=e.node(r).parent,i=t.edge(r,n),s=!1;i||(i=t.edge(n,r),s=!0),t.node(r).rank=t.node(n).rank+(s?i.minlen:-i.minlen)}))}(e,t)}function q_(e,t,r){return r.low<=t.lim&&t.lim<=r.lim}j_.initLowLimValues=U_,j_.initCutValues=z_,j_.calcCutValue=F_,j_.leaveEdge=W_,j_.enterEdge=Y_,j_.exchangeEdges=X_;var K_=A_.longestPath,Z_=T_,$_=G_,J_=function(e){switch(e.graph().ranker){case"network-simplex":default:eg(e);break;case"tight-tree":!function(e){K_(e),Z_(e)}(e);break;case"longest-path":Q_(e)}};var Q_=K_;function eg(e){$_(e)}var tg=e_,rg=function(e){var t=function(e){var t={},r=0;function n(i){var s=r;tg.forEach(e.children(i),n),t[i]={low:s,lim:r++}}return tg.forEach(e.children(),n),t}(e);tg.forEach(e.graph().dummyChains,(function(r){for(var n=e.node(r),i=n.edgeObj,s=function(e,t,r,n){var i,s,o=[],a=[],l=Math.min(t[r].low,t[n].low),u=Math.max(t[r].lim,t[n].lim);i=r;do{i=e.parent(i),o.push(i)}while(i&&(t[i].low>l||u>t[i].lim));s=i,i=n;for(;(i=e.parent(i))!==s;)a.push(i);return{path:o.concat(a.reverse()),lca:s}}(e,t,i.v,i.w),o=s.path,a=s.lca,l=0,u=o[l],c=!0;r!==i.w;){if(n=e.node(r),c){for(;(u=o[l])!==a&&e.node(u).maxRank<n.rank;)l++;u===a&&(c=!1)}if(!c){for(;l<o.length-1&&e.node(u=o[l+1]).minRank<=n.rank;)l++;u=o[l]}e.setParent(r,u),r=e.successors(r)[0]}}))};var ng=e_,ig=y_,sg={run:function(e){var t=ig.addDummyNode(e,"root",{},"_root"),r=function(e){var t={};function r(n,i){var s=e.children(n);s&&s.length&&ng.forEach(s,(function(e){r(e,i+1)})),t[n]=i}return ng.forEach(e.children(),(function(e){r(e,1)})),t}(e),n=ng.max(ng.values(r))-1,i=2*n+1;e.graph().nestingRoot=t,ng.forEach(e.edges(),(function(t){e.edge(t).minlen*=i}));var s=function(e){return ng.reduce(e.edges(),(function(t,r){return t+e.edge(r).weight}),0)}(e)+1;ng.forEach(e.children(),(function(o){og(e,t,i,s,n,r,o)})),e.graph().nodeRankFactor=i},cleanup:function(e){var t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,ng.forEach(e.edges(),(function(t){e.edge(t).nestingEdge&&e.removeEdge(t)}))}};function og(e,t,r,n,i,s,o){var a=e.children(o);if(a.length){var l=ig.addBorderNode(e,"_bt"),u=ig.addBorderNode(e,"_bb"),c=e.node(o);e.setParent(l,o),c.borderTop=l,e.setParent(u,o),c.borderBottom=u,ng.forEach(a,(function(a){og(e,t,r,n,i,s,a);var c=e.node(a),h=c.borderTop?c.borderTop:a,d=c.borderBottom?c.borderBottom:a,f=c.borderTop?n:2*n,p=h!==d?1:i-s[o]+1;e.setEdge(l,h,{weight:f,minlen:p,nestingEdge:!0}),e.setEdge(d,u,{weight:f,minlen:p,nestingEdge:!0})})),e.parent(o)||e.setEdge(t,l,{weight:0,minlen:i+s[o]})}else o!==t&&e.setEdge(t,o,{weight:0,minlen:r})}var ag=e_,lg=y_,ug=function(e){ag.forEach(e.children(),(function t(r){var n=e.children(r),i=e.node(r);if(n.length&&ag.forEach(n,t),ag.has(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var s=i.minRank,o=i.maxRank+1;s<o;++s)cg(e,"borderLeft","_bl",r,i,s),cg(e,"borderRight","_br",r,i,s)}}))};function cg(e,t,r,n,i,s){var o={width:0,height:0,rank:s,borderType:t},a=i[t][s-1],l=lg.addDummyNode(e,"border",o,r);i[t][s]=l,e.setParent(l,n),a&&e.setEdge(a,l,{weight:1})}var hg=e_,dg={adjust:function(e){var t=e.graph().rankdir.toLowerCase();"lr"!==t&&"rl"!==t||fg(e)},undo:function(e){var t=e.graph().rankdir.toLowerCase();"bt"!==t&&"rl"!==t||function(e){hg.forEach(e.nodes(),(function(t){_g(e.node(t))})),hg.forEach(e.edges(),(function(t){var r=e.edge(t);hg.forEach(r.points,_g),hg.has(r,"y")&&_g(r)}))}(e);"lr"!==t&&"rl"!==t||(!function(e){hg.forEach(e.nodes(),(function(t){gg(e.node(t))})),hg.forEach(e.edges(),(function(t){var r=e.edge(t);hg.forEach(r.points,gg),hg.has(r,"x")&&gg(r)}))}(e),fg(e))}};function fg(e){hg.forEach(e.nodes(),(function(t){pg(e.node(t))})),hg.forEach(e.edges(),(function(t){pg(e.edge(t))}))}function pg(e){var t=e.width;e.width=e.height,e.height=t}function _g(e){e.y=-e.y}function gg(e){var t=e.x;e.x=e.y,e.y=t}var yg=e_,mg=function(e){var t={},r=yg.filter(e.nodes(),(function(t){return!e.children(t).length})),n=yg.max(yg.map(r,(function(t){return e.node(t).rank}))),i=yg.map(yg.range(n+1),(function(){return[]}));function s(r){if(!yg.has(t,r)){t[r]=!0;var n=e.node(r);i[n.rank].push(r),yg.forEach(e.successors(r),s)}}var o=yg.sortBy(r,(function(t){return e.node(t).rank}));return yg.forEach(o,s),i};var bg=e_,vg=function(e,t){for(var r=0,n=1;n<t.length;++n)r+=xg(e,t[n-1],t[n]);return r};function xg(e,t,r){for(var n=bg.zipObject(r,bg.map(r,(function(e,t){return t}))),i=bg.flatten(bg.map(t,(function(t){return bg.sortBy(bg.map(e.outEdges(t),(function(t){return{pos:n[t.w],weight:e.edge(t).weight}})),"pos")})),!0),s=1;s<r.length;)s<<=1;var o=2*s-1;s-=1;var a=bg.map(new Array(o),(function(){return 0})),l=0;return bg.forEach(i.forEach((function(e){var t=e.pos+s;a[t]+=e.weight;for(var r=0;t>0;)t%2&&(r+=a[t+1]),a[t=t-1>>1]+=e.weight;l+=e.weight*r}))),l}var Eg=e_;var wg=e_;var Ag=e_,Cg=y_;function Rg(e,t,r){for(var n;t.length&&(n=Ag.last(t)).i<=r;)t.pop(),e.push(n.vs),r++;return r}var kg=e_,Tg=function(e,t){return Eg.map(t,(function(t){var r=e.inEdges(t);if(r.length){var n=Eg.reduce(r,(function(t,r){var n=e.edge(r),i=e.node(r.v);return{sum:t.sum+n.weight*i.order,weight:t.weight+n.weight}}),{sum:0,weight:0});return{v:t,barycenter:n.sum/n.weight,weight:n.weight}}return{v:t}}))},Sg=function(e,t){var r={};return wg.forEach(e,(function(e,t){var n=r[e.v]={indegree:0,in:[],out:[],vs:[e.v],i:t};wg.isUndefined(e.barycenter)||(n.barycenter=e.barycenter,n.weight=e.weight)})),wg.forEach(t.edges(),(function(e){var t=r[e.v],n=r[e.w];wg.isUndefined(t)||wg.isUndefined(n)||(n.indegree++,t.out.push(r[e.w]))})),function(e){var t=[];function r(e){return function(t){t.merged||(wg.isUndefined(t.barycenter)||wg.isUndefined(e.barycenter)||t.barycenter>=e.barycenter)&&function(e,t){var r=0,n=0;e.weight&&(r+=e.barycenter*e.weight,n+=e.weight);t.weight&&(r+=t.barycenter*t.weight,n+=t.weight);e.vs=t.vs.concat(e.vs),e.barycenter=r/n,e.weight=n,e.i=Math.min(t.i,e.i),t.merged=!0}(e,t)}}function n(t){return function(r){r.in.push(t),0==--r.indegree&&e.push(r)}}for(;e.length;){var i=e.pop();t.push(i),wg.forEach(i.in.reverse(),r(i)),wg.forEach(i.out,n(i))}return wg.map(wg.filter(t,(function(e){return!e.merged})),(function(e){return wg.pick(e,["vs","i","barycenter","weight"])}))}(wg.filter(r,(function(e){return!e.indegree})))},Og=function(e,t){var r=Cg.partition(e,(function(e){return Ag.has(e,"barycenter")})),n=r.lhs,i=Ag.sortBy(r.rhs,(function(e){return-e.i})),s=[],o=0,a=0,l=0;n.sort((u=!!t,function(e,t){return e.barycenter<t.barycenter?-1:e.barycenter>t.barycenter?1:u?t.i-e.i:e.i-t.i})),l=Rg(s,i,l),Ag.forEach(n,(function(e){l+=e.vs.length,s.push(e.vs),o+=e.barycenter*e.weight,a+=e.weight,l=Rg(s,i,l)}));var u;var c={vs:Ag.flatten(s,!0)};a&&(c.barycenter=o/a,c.weight=a);return c},Ig=function e(t,r,n,i){var s=t.children(r),o=t.node(r),a=o?o.borderLeft:void 0,l=o?o.borderRight:void 0,u={};a&&(s=kg.filter(s,(function(e){return e!==a&&e!==l})));var c=Tg(t,s);kg.forEach(c,(function(r){if(t.children(r.v).length){var s=e(t,r.v,n,i);u[r.v]=s,kg.has(s,"barycenter")&&(o=r,a=s,kg.isUndefined(o.barycenter)?(o.barycenter=a.barycenter,o.weight=a.weight):(o.barycenter=(o.barycenter*o.weight+a.barycenter*a.weight)/(o.weight+a.weight),o.weight+=a.weight))}var o,a}));var h=Sg(c,n);!function(e,t){kg.forEach(e,(function(e){e.vs=kg.flatten(e.vs.map((function(e){return t[e]?t[e].vs:e})),!0)}))}(h,u);var d=Og(h,i);if(a&&(d.vs=kg.flatten([a,d.vs,l],!0),t.predecessors(a).length)){var f=t.node(t.predecessors(a)[0]),p=t.node(t.predecessors(l)[0]);kg.has(d,"barycenter")||(d.barycenter=0,d.weight=0),d.barycenter=(d.barycenter*d.weight+f.order+p.order)/(d.weight+2),d.weight+=2}return d};var Ng=e_,Lg=Gp.Graph,Vg=function(e,t,r){var n=function(e){var t;for(;e.hasNode(t=Ng.uniqueId("_root")););return t}(e),i=new Lg({compound:!0}).setGraph({root:n}).setDefaultNodeLabel((function(t){return e.node(t)}));return Ng.forEach(e.nodes(),(function(s){var o=e.node(s),a=e.parent(s);(o.rank===t||o.minRank<=t&&t<=o.maxRank)&&(i.setNode(s),i.setParent(s,a||n),Ng.forEach(e[r](s),(function(t){var r=t.v===s?t.w:t.v,n=i.edge(r,s),o=Ng.isUndefined(n)?0:n.weight;i.setEdge(r,s,{weight:e.edge(t).weight+o})})),Ng.has(o,"minRank")&&i.setNode(s,{borderLeft:o.borderLeft[t],borderRight:o.borderRight[t]}))})),i};var Pg=e_;var Dg=e_,Bg=mg,Mg=vg,Gg=Ig,jg=Vg,zg=function(e,t,r){var n,i={};Pg.forEach(r,(function(r){for(var s,o,a=e.parent(r);a;){if((s=e.parent(a))?(o=i[s],i[s]=a):(o=n,n=a),o&&o!==a)return void t.setEdge(o,a);a=s}}))},Fg=Gp.Graph,Ug=y_,Hg=function(e){var t=Ug.maxRank(e),r=Wg(e,Dg.range(1,t+1),"inEdges"),n=Wg(e,Dg.range(t-1,-1,-1),"outEdges"),i=Bg(e);Xg(e,i);for(var s,o=Number.POSITIVE_INFINITY,a=0,l=0;l<4;++a,++l){Yg(a%2?r:n,a%4>=2),i=Ug.buildLayerMatrix(e);var u=Mg(e,i);u<o&&(l=0,s=Dg.cloneDeep(i),o=u)}Xg(e,s)};function Wg(e,t,r){return Dg.map(t,(function(t){return jg(e,t,r)}))}function Yg(e,t){var r=new Fg;Dg.forEach(e,(function(e){var n=e.graph().root,i=Gg(e,n,r,t);Dg.forEach(i.vs,(function(t,r){e.node(t).order=r})),zg(e,r,i.vs)}))}function Xg(e,t){Dg.forEach(t,(function(t){Dg.forEach(t,(function(t,r){e.node(t).order=r}))}))}var qg=e_,Kg=Gp.Graph,Zg=y_,$g=function(e){var t,r=Zg.buildLayerMatrix(e),n=qg.merge(Jg(e,r),Qg(e,r)),i={};qg.forEach(["u","d"],(function(s){t="u"===s?r:qg.values(r).reverse(),qg.forEach(["l","r"],(function(r){"r"===r&&(t=qg.map(t,(function(e){return qg.values(e).reverse()})));var o=("u"===s?e.predecessors:e.successors).bind(e),a=ry(e,t,n,o),l=ny(e,t,a.root,a.align,"r"===r);"r"===r&&(l=qg.mapValues(l,(function(e){return-e}))),i[s+r]=l}))}));var s=iy(e,i);return sy(i,s),oy(i,e.graph().align)};function Jg(e,t){var r={};return qg.reduce(t,(function(t,n){var i=0,s=0,o=t.length,a=qg.last(n);return qg.forEach(n,(function(t,l){var u=function(e,t){if(e.node(t).dummy)return qg.find(e.predecessors(t),(function(t){return e.node(t).dummy}))}(e,t),c=u?e.node(u).order:o;(u||t===a)&&(qg.forEach(n.slice(s,l+1),(function(t){qg.forEach(e.predecessors(t),(function(n){var s=e.node(n),o=s.order;!(o<i||c<o)||s.dummy&&e.node(t).dummy||ey(r,n,t)}))})),s=l+1,i=c)})),n})),r}function Qg(e,t){var r={};function n(t,n,i,s,o){var a;qg.forEach(qg.range(n,i),(function(n){a=t[n],e.node(a).dummy&&qg.forEach(e.predecessors(a),(function(t){var n=e.node(t);n.dummy&&(n.order<s||n.order>o)&&ey(r,t,a)}))}))}return qg.reduce(t,(function(t,r){var i,s=-1,o=0;return qg.forEach(r,(function(a,l){if("border"===e.node(a).dummy){var u=e.predecessors(a);u.length&&(i=e.node(u[0]).order,n(r,o,l,s,i),o=l,s=i)}n(r,o,r.length,i,t.length)})),r})),r}function ey(e,t,r){if(t>r){var n=t;t=r,r=n}var i=e[t];i||(e[t]=i={}),i[r]=!0}function ty(e,t,r){if(t>r){var n=t;t=r,r=n}return qg.has(e[t],r)}function ry(e,t,r,n){var i={},s={},o={};return qg.forEach(t,(function(e){qg.forEach(e,(function(e,t){i[e]=e,s[e]=e,o[e]=t}))})),qg.forEach(t,(function(e){var t=-1;qg.forEach(e,(function(e){var a=n(e);if(a.length){a=qg.sortBy(a,(function(e){return o[e]}));for(var l=(a.length-1)/2,u=Math.floor(l),c=Math.ceil(l);u<=c;++u){var h=a[u];s[e]===e&&t<o[h]&&!ty(r,e,h)&&(s[h]=e,s[e]=i[e]=i[h],t=o[h])}}}))})),{root:i,align:s}}function ny(e,t,r,n,i){var s={},o=function(e,t,r,n){var i=new Kg,s=e.graph(),o=function(e,t,r){return function(n,i,s){var o,a=n.node(i),l=n.node(s),u=0;if(u+=a.width/2,qg.has(a,"labelpos"))switch(a.labelpos.toLowerCase()){case"l":o=-a.width/2;break;case"r":o=a.width/2}if(o&&(u+=r?o:-o),o=0,u+=(a.dummy?t:e)/2,u+=(l.dummy?t:e)/2,u+=l.width/2,qg.has(l,"labelpos"))switch(l.labelpos.toLowerCase()){case"l":o=l.width/2;break;case"r":o=-l.width/2}return o&&(u+=r?o:-o),o=0,u}}(s.nodesep,s.edgesep,n);return qg.forEach(t,(function(t){var n;qg.forEach(t,(function(t){var s=r[t];if(i.setNode(s),n){var a=r[n],l=i.edge(a,s);i.setEdge(a,s,Math.max(o(e,t,n),l||0))}n=t}))})),i}(e,t,r,i),a=i?"borderLeft":"borderRight";function l(e,t){for(var r=o.nodes(),n=r.pop(),i={};n;)i[n]?e(n):(i[n]=!0,r.push(n),r=r.concat(t(n))),n=r.pop()}return l((function(e){s[e]=o.inEdges(e).reduce((function(e,t){return Math.max(e,s[t.v]+o.edge(t))}),0)}),o.predecessors.bind(o)),l((function(t){var r=o.outEdges(t).reduce((function(e,t){return Math.min(e,s[t.w]-o.edge(t))}),Number.POSITIVE_INFINITY),n=e.node(t);r!==Number.POSITIVE_INFINITY&&n.borderType!==a&&(s[t]=Math.max(s[t],r))}),o.successors.bind(o)),qg.forEach(n,(function(e){s[e]=s[r[e]]})),s}function iy(e,t){return qg.minBy(qg.values(t),(function(t){var r=Number.NEGATIVE_INFINITY,n=Number.POSITIVE_INFINITY;return qg.forIn(t,(function(t,i){var s=function(e,t){return e.node(t).width}(e,i)/2;r=Math.max(t+s,r),n=Math.min(t-s,n)})),r-n}))}function sy(e,t){var r=qg.values(t),n=qg.min(r),i=qg.max(r);qg.forEach(["u","d"],(function(r){qg.forEach(["l","r"],(function(s){var o,a=r+s,l=e[a];if(l!==t){var u=qg.values(l);(o="l"===s?n-qg.min(u):i-qg.max(u))&&(e[a]=qg.mapValues(l,(function(e){return e+o})))}}))}))}function oy(e,t){return qg.mapValues(e.ul,(function(r,n){if(t)return e[t.toLowerCase()][n];var i=qg.sortBy(qg.map(e,n));return(i[1]+i[2])/2}))}var ay=e_,ly=y_,uy=$g;var cy=e_,hy=p_,dy=E_,fy=J_,py=y_.normalizeRanks,_y=rg,gy=y_.removeEmptyRanks,yy=sg,my=ug,by=dg,vy=Hg,xy=function(e){(function(e){var t=ly.buildLayerMatrix(e),r=e.graph().ranksep,n=0;ay.forEach(t,(function(t){var i=ay.max(ay.map(t,(function(t){return e.node(t).height})));ay.forEach(t,(function(t){e.node(t).y=n+i/2})),n+=i+r}))})(e=ly.asNonCompoundGraph(e)),ay.forEach(uy(e),(function(t,r){e.node(r).x=t}))},Ey=y_,wy=Gp.Graph,Ay=function(e,t){var r=t&&t.debugTiming?Ey.time:Ey.notime;r("layout",(function(){var t=r(" buildLayoutGraph",(function(){return function(e){var t=new wy({multigraph:!0,compound:!0}),r=Vy(e.graph());return t.setGraph(cy.merge({},Ry,Ly(r,Cy),cy.pick(r,ky))),cy.forEach(e.nodes(),(function(r){var n=Vy(e.node(r));t.setNode(r,cy.defaults(Ly(n,Ty),Sy)),t.setParent(r,e.parent(r))})),cy.forEach(e.edges(),(function(r){var n=Vy(e.edge(r));t.setEdge(r,cy.merge({},Iy,Ly(n,Oy),cy.pick(n,Ny)))})),t}(e)}));r(" runLayout",(function(){!function(e,t){t(" makeSpaceForEdgeLabels",(function(){!function(e){var t=e.graph();t.ranksep/=2,cy.forEach(e.edges(),(function(r){var n=e.edge(r);n.minlen*=2,"c"!==n.labelpos.toLowerCase()&&("TB"===t.rankdir||"BT"===t.rankdir?n.width+=n.labeloffset:n.height+=n.labeloffset)}))}(e)})),t(" removeSelfEdges",(function(){!function(e){cy.forEach(e.edges(),(function(t){if(t.v===t.w){var r=e.node(t.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}}))}(e)})),t(" acyclic",(function(){hy.run(e)})),t(" nestingGraph.run",(function(){yy.run(e)})),t(" rank",(function(){fy(Ey.asNonCompoundGraph(e))})),t(" injectEdgeLabelProxies",(function(){!function(e){cy.forEach(e.edges(),(function(t){var r=e.edge(t);if(r.width&&r.height){var n=e.node(t.v),i={rank:(e.node(t.w).rank-n.rank)/2+n.rank,e:t};Ey.addDummyNode(e,"edge-proxy",i,"_ep")}}))}(e)})),t(" removeEmptyRanks",(function(){gy(e)})),t(" nestingGraph.cleanup",(function(){yy.cleanup(e)})),t(" normalizeRanks",(function(){py(e)})),t(" assignRankMinMax",(function(){!function(e){var t=0;cy.forEach(e.nodes(),(function(r){var n=e.node(r);n.borderTop&&(n.minRank=e.node(n.borderTop).rank,n.maxRank=e.node(n.borderBottom).rank,t=cy.max(t,n.maxRank))})),e.graph().maxRank=t}(e)})),t(" removeEdgeLabelProxies",(function(){!function(e){cy.forEach(e.nodes(),(function(t){var r=e.node(t);"edge-proxy"===r.dummy&&(e.edge(r.e).labelRank=r.rank,e.removeNode(t))}))}(e)})),t(" normalize.run",(function(){dy.run(e)})),t(" parentDummyChains",(function(){_y(e)})),t(" addBorderSegments",(function(){my(e)})),t(" order",(function(){vy(e)})),t(" insertSelfEdges",(function(){!function(e){var t=Ey.buildLayerMatrix(e);cy.forEach(t,(function(t){var r=0;cy.forEach(t,(function(t,n){var i=e.node(t);i.order=n+r,cy.forEach(i.selfEdges,(function(t){Ey.addDummyNode(e,"selfedge",{width:t.label.width,height:t.label.height,rank:i.rank,order:n+ ++r,e:t.e,label:t.label},"_se")})),delete i.selfEdges}))}))}(e)})),t(" adjustCoordinateSystem",(function(){by.adjust(e)})),t(" position",(function(){xy(e)})),t(" positionSelfEdges",(function(){!function(e){cy.forEach(e.nodes(),(function(t){var r=e.node(t);if("selfedge"===r.dummy){var n=e.node(r.e.v),i=n.x+n.width/2,s=n.y,o=r.x-i,a=n.height/2;e.setEdge(r.e,r.label),e.removeNode(t),r.label.points=[{x:i+2*o/3,y:s-a},{x:i+5*o/6,y:s-a},{x:i+o,y:s},{x:i+5*o/6,y:s+a},{x:i+2*o/3,y:s+a}],r.label.x=r.x,r.label.y=r.y}}))}(e)})),t(" removeBorderNodes",(function(){!function(e){cy.forEach(e.nodes(),(function(t){if(e.children(t).length){var r=e.node(t),n=e.node(r.borderTop),i=e.node(r.borderBottom),s=e.node(cy.last(r.borderLeft)),o=e.node(cy.last(r.borderRight));r.width=Math.abs(o.x-s.x),r.height=Math.abs(i.y-n.y),r.x=s.x+r.width/2,r.y=n.y+r.height/2}})),cy.forEach(e.nodes(),(function(t){"border"===e.node(t).dummy&&e.removeNode(t)}))}(e)})),t(" normalize.undo",(function(){dy.undo(e)})),t(" fixupEdgeLabelCoords",(function(){!function(e){cy.forEach(e.edges(),(function(t){var r=e.edge(t);if(cy.has(r,"x"))switch("l"!==r.labelpos&&"r"!==r.labelpos||(r.width-=r.labeloffset),r.labelpos){case"l":r.x-=r.width/2+r.labeloffset;break;case"r":r.x+=r.width/2+r.labeloffset}}))}(e)})),t(" undoCoordinateSystem",(function(){by.undo(e)})),t(" translateGraph",(function(){!function(e){var t=Number.POSITIVE_INFINITY,r=0,n=Number.POSITIVE_INFINITY,i=0,s=e.graph(),o=s.marginx||0,a=s.marginy||0;function l(e){var s=e.x,o=e.y,a=e.width,l=e.height;t=Math.min(t,s-a/2),r=Math.max(r,s+a/2),n=Math.min(n,o-l/2),i=Math.max(i,o+l/2)}cy.forEach(e.nodes(),(function(t){l(e.node(t))})),cy.forEach(e.edges(),(function(t){var r=e.edge(t);cy.has(r,"x")&&l(r)})),t-=o,n-=a,cy.forEach(e.nodes(),(function(r){var i=e.node(r);i.x-=t,i.y-=n})),cy.forEach(e.edges(),(function(r){var i=e.edge(r);cy.forEach(i.points,(function(e){e.x-=t,e.y-=n})),cy.has(i,"x")&&(i.x-=t),cy.has(i,"y")&&(i.y-=n)})),s.width=r-t+o,s.height=i-n+a}(e)})),t(" assignNodeIntersects",(function(){!function(e){cy.forEach(e.edges(),(function(t){var r,n,i=e.edge(t),s=e.node(t.v),o=e.node(t.w);i.points?(r=i.points[0],n=i.points[i.points.length-1]):(i.points=[],r=o,n=s),i.points.unshift(Ey.intersectRect(s,r)),i.points.push(Ey.intersectRect(o,n))}))}(e)})),t(" reversePoints",(function(){!function(e){cy.forEach(e.edges(),(function(t){var r=e.edge(t);r.reversed&&r.points.reverse()}))}(e)})),t(" acyclic.undo",(function(){hy.undo(e)}))}(t,r)})),r(" updateInputGraph",(function(){!function(e,t){cy.forEach(e.nodes(),(function(r){var n=e.node(r),i=t.node(r);n&&(n.x=i.x,n.y=i.y,t.children(r).length&&(n.width=i.width,n.height=i.height))})),cy.forEach(e.edges(),(function(r){var n=e.edge(r),i=t.edge(r);n.points=i.points,cy.has(i,"x")&&(n.x=i.x,n.y=i.y)})),e.graph().width=t.graph().width,e.graph().height=t.graph().height}(e,t)}))}))};var Cy=["nodesep","edgesep","ranksep","marginx","marginy"],Ry={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},ky=["acyclicer","ranker","rankdir","align"],Ty=["width","height"],Sy={width:0,height:0},Oy=["minlen","weight","width","height","labeloffset"],Iy={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},Ny=["labelpos"];function Ly(e,t){return cy.mapValues(cy.pick(e,t),Number)}function Vy(e){var t={};return cy.forEach(e,(function(e,r){t[r.toLowerCase()]=e})),t}var Py=e_,Dy=y_,By=Gp.Graph;var My={graphlib:Gp,layout:Ay,debug:{debugOrdering:function(e){var t=Dy.buildLayerMatrix(e),r=new By({compound:!0,multigraph:!0}).setGraph({});return Py.forEach(e.nodes(),(function(t){r.setNode(t,{label:t}),r.setParent(t,"layer"+e.node(t).rank)})),Py.forEach(e.edges(),(function(e){r.setEdge(e.v,e.w,{},e.name)})),Py.forEach(t,(function(e,t){var n="layer"+t;r.setNode(n,{rank:"same"}),Py.reduce(e,(function(e,t){return r.setEdge(e,t,{style:"invis"}),t}))})),r}},util:{time:y_.time,notime:y_.notime},version:"0.8.5"};class Gy extends d{constructor(e){super(e)}run(){super.run();let e=this._outputVars[0].element,t=G(e.parent);for(let e of t){let t=e.layout;if(!t)continue;let n=Re(e.children[0]);if(!n)continue;var r=new My.graphlib.Graph;r.setGraph({edgesep:t._edgeSep}),r.setDefaultEdgeLabel((function(){return{}})),r.graph().rankdir=this._getDagreDirection(t.direction);let i=new Map;for(let t of e.children){let e=t.dataScope.getAttributeValue(Te);i.set(e,e+""),r.setNode(e,{label:t.text?t.text:"",width:t.bounds.width,height:t.bounds.height})}for(let e of n.linkList)r.setEdge(e.source,e.target);My.layout(r);const s={};let o=Math.min(...r.nodes().map((e=>r.node(e).y))),a=Math.min(...r.nodes().map((e=>r.node(e).x))),l=t.left-a,u=t.top-o;for(const e of r.nodes())s[e]={x:r.node(e).x+l,y:r.node(e).y+u};for(let t of e.children){let e=t.dataScope.getAttributeValue(Te);Xe(t,s[i.get(e)].x-t.x,s[i.get(e)].y-t.y)}}let n=Z(e,!0);for(let e of n)I(e)}_getDagreDirection(e){switch(e){case se.Left2Right:return"LR";case se.Right2Left:return"RL";case se.Top2Bottom:return"TB";case se.Bottom2Top:return"BT"}}}class jy extends d{constructor(e){super(e)}run(){super.run();let e=this._outputVars[0].element,t=G(e.parent);for(let e of t){let t=e.layout;if(!t)continue;let r=Ae(e.children[0]);if(!r)continue;let i=n.hierarchy(r._data),s=Math.max(...e.children.map((e=>e.bounds.width))),o=Math.max(...e.children.map((e=>e.bounds.height))),a=t.orientation==ie.HORIZONTAL?[t.height,t.width]:[t.width,t.height],l=n.tree().nodeSize([s,o]).size(a)(i);this._apply(l,t,e)}I(e)}_apply(e,t,r){let n,i,s=r.children.filter((t=>t.dataScope.getAttributeValue(Te)==e.data[Te]))[0];switch(t.orientation){case ie.HORIZONTAL:n=e.y+t.left,i=e.x+t.top;break;case ie.VERTICAL:n=e.x+t.left,i=t.top+e.y}if(Xe(s,n-s.x,i-s.y),e.children&&e.children.length>0)for(let n of e.children)this._apply(n,t,r)}}class zy extends d{constructor(e){super(e)}run(){super.run();let e=this._outputVars[0].element,t=this._inputVars.filter((e=>e.type===_.ORDER))[0].element,r=t.layout,i=r.width?r.width:t.bounds.width,s=r.height?r.height:t.bounds.height,o=void 0===r.top?t.bounds.top:r.top,a=void 0===r.left?t.bounds.left:r.left,l=n.hierarchy(t).sum((e=>e.type===Lt.Rect?e.width*e.height:0));n.treemap().size([i,s])(l),this._apply(l,a,o);let u=Z(e,!0);for(let e of u)I(e)}_apply(e,t,r){if(e.data.type==Lt.Collection&&e.children)for(let n of e.children)this._apply(n,t,r);else e.data.type==Lt.Rect&&(e.data.resize(e.x1-e.x0,e.y1-e.y0),Xe(e.data,e.x0+t-e.data.left,e.y0+r-e.data.top))}}class Fy extends d{constructor(e){super(e)}run(){super.run();let e=this._outputVars[0].element,t=G(e.parent);for(let e of t){if(!e.layout)continue;let t=Ae(e.children[0]);if(!t)continue;let r={};for(let t of e.children)r[t.dataScope.getAttributeValue(Te)]=t;let n=e.children[0];n.type===Lt.Rect?this._layoutRects(t.getRoot(),t,r):n.type===Lt.Circle&&this._layoutArcs(t.getRoot(),t,r)}I(e)}_layoutArcs(e,t,r){let n=t.getChildren(e);if(0===n.length)return;let i=r[e[Te]],s=i.type==Lt.Arc||i.type==Lt.Pie?i.startAngle:90;for(let e=0;e<n.length;e++){let i=n[e],o=r[i[Te]];if(o.type===Lt.Arc){let e=me(s+o.angle);o.setAngles(s,e),s=e}this._layoutArcs(i,t,r)}}_layoutRects(e,t,r){let n=t.getChildren(e);if(0===n.length)return;let i,s,o=r[e[Te]];this._direction,se.Top2Bottom,i=o.left,s=o.bottom;for(let e=0;e<n.length;e++){let o=n[e],a=r[o[Te]];Xe(a,i-a.left,s-a.top),i+=a.width,this._layoutRects(o,t,r)}}}class Uy extends p{constructor(e,t){super(e),this._trigger=t}get trigger(){return this._trigger}}class Hy extends d{constructor(e){super(e)}run(){super.run();let e=this.outputVar.condEncoding,t=e.trigger,r=G(e.target),n={};if(t.type===y.ELEMENT){let i=t.elements.length>0?t.elements:[void 0];r.forEach((t=>n[t.id]=i.map((r=>e._targetEval(r,t))).some((e=>e))))}t.type===y.MOUSE&&r.forEach((r=>n[r.id]=e._targetEval(t.mouseEvent,r))),e.evalResult=n}}class Wy extends d{constructor(e){super(e)}run(){super.run();let e=this._outputVars[0].element,t=G(e.parent);for(let e of t){let t=e.layout;if(!t)continue;let r=360/e.children.length;for(let[n,i]of e.children.entries())Xe(i,t.x+t.radius-i.bounds.x,t.y-i.bounds.y),i._rotate=[n*r,t.x,t.y]}let r=Z(e,!0);for(let e of r)I(e)}}class Yy extends d{constructor(e){super(e)}run(){super.run();let e=this._outputVars[0].element,t=G(e.parent);for(let r of t){let t=r.layout;if(!t)continue;let i=t._tree?t._tree._data:Ae(r.children[0])._data,s=n.hierarchy(i);if(t.isRadial()){s=n.cluster().size([ge(t.angleExtent),t.radius])(s),t._d3Root=s;const e=new Map(s.descendants().map((e=>[e.data[Te],[e.x,e.y]])));for(let n of r.children){let r=n.dataScope.getAttributeValue(Te);Xe(n,t.x-n.bounds.x,t.y-e.get(r)[1]-n.bounds.y),n._rotate=[ye(e.get(r)[0]),t.x,t.y]}}else if(t.orientation===ie.VERTICAL){!t.width||t.width;let i=t.height?t.height:600;s=n.cluster().nodeSize([e.bounds.width+1,i/(s.height+1)])(s),t._d3Root=s;const o=new Map(s.descendants().map((e=>[e.data[Te],[e.x,e.y]])));let a=1/0,l=-a;s.each((e=>{e.x>l&&(l=e.x),e.x<a&&(a=e.x)})),t._x0=a;for(let e of r.children){let r=e.dataScope.getAttributeValue(Te);Xe(e,o.get(r)[0]-a+t.left-e.bounds.x,o.get(r)[1]+t.top-e.bounds.y)}}else if(t.orientation===ie.HORIZONTAL){!t.width||t.width;let i=t.height?t.height:600;s=n.cluster().nodeSize([e.bounds.height,i/(s.height+1)])(s),t._d3Root=s;const o=new Map(s.descendants().map((e=>[e.data[Te],[e.x,e.y]])));let a=1/0,l=-a;s.each((e=>{e.x>l&&(l=e.x),e.x<a&&(a=e.x)})),t._x0=a;for(let e of r.children){let r=e.dataScope.getAttributeValue(Te);Xe(e,o.get(r)[1]+t.left-e.bounds.x,o.get(r)[0]-a+t.top-e.bounds.y)}}}let r=Z(e,!0);for(let e of r)I(e)}}class Xy{constructor(){this._variables={},this._operators={},this._edges=[]}toJSON(){const e=this._edges.map((e=>({from:e.fromNode.id,to:e.toNode.id,isDirected:e.isDirected}))),t={};for(const e in this._variables)t[e]=Object.values(this._variables[e]).map((e=>{let t={id:e.id,type:e.type,incoming:e.incomingEdges.map((e=>e.id)),outgoing:e.outgoingEdges.map((e=>e.id)),undirected:e.undirectedEdges.map((e=>e.id))};return"ChannelVar"===e.type?(t.channel=e.channel,t.element=e.element):"BoundsVar"===e.type||"DataScopeVar"===e.type?t.element=e.element:"DomainVar"===e.type?(t.scale=e.scale,t.attrValues=e.attrValues):"FieldVar"===e.type?(t.field=e.field,t.dataset=e.dataset):"PropertyVar"===e.type?(t.property=e.property,t.element=e.element):t.scale=e.scale,t}));const r={};for(const e in this._operators)r[e]=Object.values(this._operators[e]).map((e=>{let t={id:e.id,type:e.type,inputVars:e.inputVars.map((e=>e.id)),outputVar:e.outputVar?e.outputVar.id:null};return e.type===f.DOMAIN_BUILDER?t.aggregator=e.aggregator:e.type===f.SCALE_BUILDER&&(t.channel=e.channel),t}));return{edges:e,variables:t,operators:r}}getVariable(e,...t){if(Object.values(_).indexOf(e)<0)throw new Error("Variable Type Not Known");let r=this.findVariable(e,t);if(r)return r;switch(e){case _.CHANNEL:r=new De(e,t[0],t[1]),"vertex"!=t[1].type&&"segment"!=t[1].type||this._connectPathElement2Size(t[1],r);break;case _.PROPERTY:r=new nt(e,t[0],t[1]);break;case _.ATTRIBUTE:r=new Ht(e,t[0],t[1]);break;case _.ITEMS:r=new _r(e,t[0],t[1]);break;case _.DOMAIN:r=new Wt(e,t[0]);break;case _.DATASCOPE:r=new zt(e,t[0]);break;case _.BOUNDS:r=new jt(e,t[0]);break;case _.ORDER:r=new gr(e,t[0]);break;case _.SCALE:r=new tt(e,t[0]);break;case _.COND_ENCODING:r=new te(e,t[0]);break;case _.AFFIXATION:r=new mr(e,t[0]);break;case _.ALIGNMENT:r=new Cr(e,t[0]);break;case _.TRIGGER:r=new Uy(e,t[0])}return e in this._variables||(this._variables[e]={}),this._variables[e][r.id]=r,r}_connectPathElement2Size(e,t){let r=e.parent,n=t.channel,i=this.findVariable(_.CHANNEL,["x"===n?"width":"height",r]);if(i){let e=i.incomingDataflow;e||(e=this.createOneWayDependency(f.CONDUIT)),this.connect(t,e),this.connect(e,i)}}findIncomingDataflowOperator(e,t){return t.incomingDataflow&&t.incomingDataflow.type===e?t.incomingDataflow:void 0}getIncomingDataflowOperator(e,t){let r=this.findIncomingDataflowOperator(e,t);return r||this.createOneWayDependency(e)}getOutgoingDataflowOperator(e,t){for(let r of t.outgoingEdges)if(r.toNode instanceof d&&r.toNode.type===e)return r.toNode;return this.createOneWayDependency(e)}createOneWayDependency(e,...t){if(Object.values(f).indexOf(e)<0)throw new Error("Dependency Type Not Known");let r;switch(e){case f.EVAL_BBOX:r=new $t(e);break;case f.AFFIXER:r=new yr(e);break;case f.DOMAIN_BUILDER:r=new Yt(e,t[0]);break;case f.SCALE_BUILDER:r=new Zt(e,t[0]);break;case f.ENCODER:r=new rt(e,t[0]);break;case f.AXIS_PATH_PLACER:r=new or(e);break;case f.AXIS_TICKS_PLACER:r=new ar(e);break;case f.AXIS_LABELS_PLACER:r=new lr(e);break;case f.AXIS_TITLE_PLACER:r=new wr(e);break;case f.LINK_PLACER:r=new kr(e);break;case f.GRID_LAYOUT:r=new ur(e);break;case f.STACK_LAYOUT:r=new hr(e);break;case f.PACK_LAYOUT:r=new Er(e);break;case f.FORCE_LAYOUT:r=new Rr(e);break;case f.DIRECTED_LAYOUT:r=new Gy(e);break;case f.TIDY_TREE_LAYOUT:r=new jy(e);break;case f.TREEMAP_LAYOUT:r=new zy(e);break;case f.STRATA_LAYOUT:r=new Fy(e);break;case f.CIRCULAR_LAYOUT:r=new Wy(e);break;case f.CLUSTER_LAYOUT:r=new Yy(e);break;case f.GRIDLINES_PLACER:r=new cr(e);break;case f.BIN_TRANSFORMER:r=new fr(e);break;case f.FILTER_TRANSFORMER:r=new pr(e);break;case f.KDE_TRANSFORMER:r=new br(e);break;case f.TARGET_EVALUATOR:r=new Hy(e);break;case f.CONDUIT:default:r=new dr(e)}return e in this._operators||(this._operators[e]={}),this._operators[e][r.id]=r,r}createMultiWayDependency(e){if(Object.values(f).indexOf(e)<0)throw new Error("Dependency Type Not Known");let t;return f.ALIGNER,t=new Ar(e),e in this._operators||(this._operators[e]={}),this._operators[e][t.id]=t,t}connect(e,t,r=!0){if(e instanceof p&&t instanceof d){if(!t.inputVars.includes(e)){const n=new Ut(e,t,r);this._edges.push(n),e.outgoingEdges.push(n),t.inputVars.push(e)}}else if(e instanceof d&&t instanceof p){if(!e.outputVars.includes(t)){const n=new Ut(e,t,r);this._edges.push(n),e.outputVars.push(t),t.incomingEdges.push(n)}}else if(e instanceof p&&t instanceof Ft){if(!t.vars.includes(e)){const r=new Ut(e,t,!1);this._edges.push(r),t.vars.push(e),t.edges.push(e),e.undirectedEdges.push(r)}}else{if(!(e instanceof Ft&&t instanceof p))throw new Error("An edge must connect a variable and an operator.");if(!e.vars.includes(t)){const r=new Ut(t,e,!1);this._edges.push(r),e.vars.push(t),e.edges.push(t),t.undirectedEdges.push(r)}}}disconnectChannelVarFromBBoxOperator(e){let t=this.getOutgoingDataflowOperator(f.EVAL_BBOX,e),r=e.outgoingEdges.find((r=>r.fromNode===e&&r.toNode===t));r&&this.disconnect(e,t,r)}disconnect(e,t,r){if(e instanceof p&&t instanceof d){let n=e.outgoingEdges.findIndex((e=>e===r));n>=0&&(this._edges.splice(this._edges.indexOf(r),1),e.outgoingEdges.splice(n,1));let i=t.inputVars.findIndex((t=>t==e));i>=0&&t.inputVars.splice(i,1)}else if(e instanceof d&&t instanceof p){let n=t.incomingEdges.findIndex((e=>e===r));n>=0&&(this._edges.splice(this._edges.indexOf(r),1),t.incomingEdges.splice(n,1));let i=e.outputVars.findIndex((e=>e===t));i>=0&&e.outputVars.splice(i,1)}}deleteVariable(e){for(let t=e.incomingEdges.length-1;t>=0;t--){let r=e.incomingEdges[t],n=r.fromNode;this.disconnect(n,e,r),n.isIsolated()&&delete this._operators[n.type][n.id]}for(let t=e.outgoingEdges.length-1;t>=0;t--){let r=e.outgoingEdges[t],n=r.toNode;this.disconnect(e,n,r),n.isIsolated()&&delete this._operators[n.type][n.id]}delete this._variables[e.type][e.id]}deleteOperator(e){for(let t=e.outputVars.length-1;t>=0;t--){let r=e.outputVars[t],n=r.incomingEdges.find((t=>t.fromNode===e&&t.toNode===r));this.disconnect(e,r,n),r.isIsolated()&&delete this._variables[r.type][r.id]}for(let t=e.inputVars.length-1;t>=0;t--){let r=e.inputVars[t],n=r.outgoingEdges.find((t=>t.fromNode===r&&t.toNode===e));this.disconnect(r,e,n),r.isIsolated()&&delete this._variables[r.type][r.id]}delete this._operators[e.type][e.id]}addInteraction(e){}_dfs(e,t,r){if(e&&0!==e.outgoingEdges.length)for(let n of e.outgoingEdges)n.isDirected&&(t.push(n.toNode),this._dfs(n.toNode.outputVars[0],t.slice(),r));else r.push(t)}processChange(e,t,...r){let n=this.findVariable(e,r);if(n){for(let e of n.outgoingEdges)if(e.isDirected){let r=e.toNode;r.run();let n=r.outputVars;if(n.length>0){let e=n[0];switch(e.type){case _.ITEMS:this.processChange(e.type,t,e.predicate,e.dataset);break;case _.ATTRIBUTE:this.processChange(e.type,t,e.attribute,e.dataset);break;case _.BOUNDS:case _.ORDER:this.processChange(e.type,t,e.element);break;case _.CHANNEL:this.processChange(e.type,t,e.channel,e.element);break;case _.PROPERTY:this.processChange(e.type,t,e.property,e.element);break;case _.SCALE:case _.DOMAIN:this.processChange(e.type,t,e.encodings[0]);break;case _.COND_ENCODING:this.processChange(e.type,t,e.condEncoding)}}}for(let e of n.undirectedEdges)t.push(e.operator)}else console.warn("Unable to find variables matching the described change: ",e,r)}findVariable(e,t){if(!(e in this._variables))return null;let r=Object.values(this._variables[e]);switch(e){case _.CHANNEL:return r.find((e=>e.channel==t[0]&&Fe(e.element)==Fe(t[1])));case _.PROPERTY:return r.find((e=>e.property==t[0]&&e.element==t[1]));case _.COND_ENCODING:return r.find((e=>e.condEncoding==t[0]));case _.AFFIXATION:return r.find((e=>e.affixation==t[0]));case _.ATTRIBUTE:return r.find((e=>e.attribute==t[0]&&e.dataset==t[1]));case _.ITEMS:return r.find((e=>e.dataset==t[1]));case _.DOMAIN:case _.SCALE:return r.find((e=>e.encodings.includes(t[0])));case _.TRIGGER:return r.find((e=>e.trigger===t[0]));case _.DATASCOPE:default:return t[0].classId?r.find((e=>Fe(e.element)==Fe(t[0]))):r.find((e=>e.element.id==t[0].id))}}findVariablesByElement(e){let t={};for(let r in this._variables){let n=Object.values(this._variables[r]).filter((t=>t.element&&Fe(t.element)==Fe(e)));n.length>0&&(t[r]=n)}return t}}function qy(e){return!(!B(e)&&e.type!=Lt.Glyph||e.dataScope)||e.type===Lt.Collection&&e.firstChild.dataScope.numTuples>1}function Ky(e,t,r,n){let i=n.getAttributeType(r);if(i!=Oe.String&&i!=Oe.Date&&i!=Oe.Integer)throw new Error("Repeat only works on a string or date attribute: "+r+" is "+i);if(!function(e){if(Array.isArray(e)){if(1===e.length)return qy(e[0]);for(let t of e)if(!B(t)||t.dataScope)return!1;return!0}return qy(e)}(t))throw new Error("The "+t.type+" is not repeatable");return function(e,t,r,n){let i=n.getAttributeSummary(r).unique.map((e=>t.dataScope?t.dataScope.cross(r,e):new ve(n).cross(r,e)));i=i.filter((e=>!e.isEmpty()));let s=St(e);s.dataScope=t.dataScope?t.dataScope.clone():new ve(n),s.addChild(t);for(let e=1;e<i.length;e++){let e=It(t);s.addChild(e)}return s.children.forEach(((e,t)=>e.dataScope=i[t])),s}(e,t,r,n)}class Zy{constructor(e,t,r,n,i){this._elem=e,this._channel=t,this._attribute=r,this._aggregator=n,this._includeZero=i.includeZero,this._flipScale=i.flipScale,this._mapping=i.mapping,this._preferredRangeExtent=i.rangeExtent,this._preferredDomain=void 0,this._scaleType=i.scaleType,this._colorScheme=i.scheme,this._forLegend=i.forLegend,this._scales=[],this._elemGroups=[],this._elem2scale={},this._refElements=[],["width","height","radius","angle","thickness","radialDistance","strokeWidth","area"].indexOf(this._channel)>=0&&(this._includeZero=!0),this.initialize()}initialize(){this._scales=[];let e=G(this._elem);if(this._elemGroups=[],"x"===this._channel||"y"===this._channel){let t=this._elem,r=X(t);if(r.layout&&r.layout.type==Q.GRID){let e="x"===this._channel?r.layout.getElementsByCol(!0,t):r.layout.getElementsByRow(!0,t);for(let t of e)this._createScaleForElems(t)}else if("vertex"===this._elem.type&&(We(this._elem.parent)||He(this._elem.parent))){let e=G(this._elem.parent).map((e=>j(this._elem,[e])));for(let t of e)this._createScaleForElems(t)}else this._createScaleForElems(e)}else if("angle"===this._channel){let t=e.reduce(((e,t)=>{const r=t.parent.id;return e[r]||(e[r]=[]),e[r].push(t),e}),{}),r=Object.values(t);for(let e of r)this._createScaleForElems(e)}else this._createScaleForElems(e)}_createScaleForElems(e){this._elemGroups.push(e);var t=function(e){if(e.scaleType)return new Xt(e.scaleType);if("text"===e.channel)return new Xt("ordinal");switch(Bt(e.element).getAttributeType(e.attribute)){case Oe.Boolean:break;case Oe.Date:return new Xt("time");case Oe.String:if("count"==e.aggregator)return new Xt("linear");if(e.channel.indexOf("Color")>=0){let t={};return t.scheme=e.colorScheme?e.colorScheme:"schemeCategory10",new Xt("ordinalColor",t)}return new Xt("point");default:return["strokeColor","fillColor","fillGradient"].indexOf(e.channel)>=0?e.mapping?new Xt("linear"):new Xt("sequentialColor",{scheme:e.colorScheme}):new Xt("linear")}}(this);this._scales.push(t);for(let r of e)this._elem2scale[r.id]=t}getScale(e){return this._elem2scale[e.id]}getElements(e){let t=this._scales.indexOf(e);return this._elemGroups[t]}get element(){return this._elem}get channel(){return this._channel}get attribute(){return this._attribute}get dataTable(){return Bt(this._elem)}get aggregator(){return this._aggregator}hasMultipleScales(){return this._scales.length>0}get scales(){return this._scales}getRangeStart(e){let t=this.getScale(e);return Math.min(...t.range)}getRangeExtent(e){return this.getScale(e).rangeExtent}get scaleType(){return this._scaleType}set scaleType(e){this._scaleType=e}set domain(e){this._preferredDomain=e;for(let t of this._scales)t._scale.domain(e);for(let e of this._refElements)e instanceof ir&&e.createTicksLabels({});this._elem.scene.onChange(_.DOMAIN,this)}set rangeExtent(e){for(let t of this._scales)t.rangeExtent=e;for(let e of this._refElements)e instanceof ir&&e.createTicksLabels({});this._elem.scene.onChange(_.PROPERTY,it.RANGE_EXTENT,this)}set includeZero(e){this._includeZero=e;for(let e of this._refElements)e instanceof ir&&e.createTicksLabels({});this._elem.scene.onChange(_.PROPERTY,it.INCLUDE_ZERO,this)}get includeZero(){return this._includeZero}set flipScale(e){this._flipScale=e,this._elem.scene.onChange(_.PROPERTY,it.FLIP_SCALE,this)}get flipScale(){return this._flipScale}set mapping(e){this._mapping=e}get mapping(){return this._mapping}set colorScheme(e){this._colorScheme=e}get colorScheme(){return this._colorScheme}addRefElement(e){this._refElements.indexOf(e)<0&&this._refElements.push(e)}get refElements(){return this._refElements}clearRefElements(){this._refElements=[]}}class $y{constructor(e,t,r,n){this._trigger=e,this._target=t.target,this._targetEval=r,this._efxFn=n,this._evalResult={}}get trigger(){return this._trigger}get target(){return this._target}get channels(){return Object.keys(this._rules)}get evalResult(){return this._evalResult}set evalResult(e){this._evalResult=e}}class Jy extends ce{constructor(e,t,r,n,i){super(i),this._type=Lt.Gridlines,this._id=this._type+Pt(),this._attribute=t,this._channel=e,this._scale=r,this._elems=n,"strokeColor"in i||(this.styles.strokeColor="#ddd"),"opacity"in i||(this.styles.opacity=.5),"values"in i?this._values=i.values:this._scale?this._values=rr(this._scale,this._channel,this._elems):this._values=this._elems.map((e=>e.dataScope.getAttributeValue(this._attribute))),this._lines=[]}get type(){return this._type}get id(){return this._id}getSVGPathData(){let e="";if("radialDistance"===this._channel)for(let t of this._lines)e+="M "+t.x+" "+t.y+" m -"+t.r+" 0 a "+t.r+" "+t.r+" 0 1 0 "+2*t.r+" 0 a "+t.r+" "+t.r+" 0 1 0 -"+2*t.r+" 0 ";else for(let t of this._lines)e+=["M",t.x1,t.y1].join(" ")+[" L",t.x2,t.y2].join(" ")+" ";return e}_updateBounds(){if("radialDistance"===this._channel){let e=this._lines.map((e=>new k(e.x-e.r,e.y-e.y,2*e.r,2*e.r)));this._bounds=T(e)}else{let e=this._lines.map((e=>e.x1)).concat(this._lines.map((e=>e.x2))),t=this._lines.map((e=>e.y1)).concat(this._lines.map((e=>e.y2))),r=Math.min(...e),n=Math.max(...e),i=Math.min(...t),s=Math.max(...t);this._bounds=new k(r,i,n-r,s-i)}}get elements(){return this._elems}get values(){return this._values}get channel(){return this._channel}get attribute(){return this._attribute}get scale(){return this._scale}get lines(){return this._lines}set lines(e){this._lines=e}}class Qy extends J{constructor(e){super(),this.type=Q.STACK,this._orientation=e.orientation,this._direction=e.direction,this._left=e.left,this._top=e.top,this._horzCellAlignment="horzCellAlignment"in e&&e.horzCellAlignment?e.horzCellAlignment:N.LEFT,this._vertCellAlignment="vertCellAlignment"in e&&e.vertCellAlignment?e.vertCellAlignment:N.BOTTOM,this._gap="gap"in e?e.gap:0}clone(){let e=new Qy({orientation:this._orientation,direction:this._direction,left:this._left,top:this._top});return e._horzCellAlignment=this._horzCellAlignment,e._vertCellAlignment=this._vertCellAlignment,e}get horzCellAlignment(){return this._horzCellAlignment}get vertCellAlignment(){return this._vertCellAlignment}get orientation(){return this._orientation}set horzCellAlignment(e){this._horzCellAlignment=e}set vertCellAlignment(e){this._vertCellAlignment=e}set orientation(e){this._orientation=e}}function em(e,t,r,n,i){let s=i.getAttributeType(r);if(s!=Oe.String&&s!=Oe.Date&&s!=Oe.Integer)throw new Error("Divide only works on a string or date attribute: "+r+" is "+s);if(!function(e){if([Lt.Line,Lt.Circle,Lt.Rect,Lt.Area,Lt.Ring,Lt.Pie,Lt.Path].indexOf(e.type)<0)return!1;if(e.type===Lt.Path&&(e.closed||!e.firstVertex.dataScope))return!1;if(e.dataScope){let t=G(e);for(let e of t)if(e.dataScope.numTuples>1)return!0;return!1}return!0}(t))throw new Error("The "+t.type+" is not dividable");switch(t.type){case Lt.Line:case Lt.Path:return;case Lt.Circle:return function(e,t,r,n,i){let s,o,a,l=G(t),u=r||ie.ANGULAR;if(u!=ie.ANGULAR&&u!=ie.RADIAL)throw new Error("Unknown orientation: "+u);u===ie.ANGULAR&&l.forEach((r=>{let l=r.dataScope?r.dataScope:new ve(i),u=i.getUniqueAttributeValues(n).map((e=>l.cross(n,e)));u=u.filter((e=>!e.isEmpty()));let c=St(e);null==o&&(o=c.id),c._classId=o,c.dataScope=r.dataScope?r.dataScope:new ve(i);let h=r.parent;h.removeChild(r),delete e._itemMap[r.id];let d=360/u.length,f=90;for(let e=0;e<u.length;e++){let n=Tt({type:"arc",innerRadius:0,outerRadius:r.radius,x:r.x,y:r.y,startAngle:me(f-d*(e+1)),endAngle:me(f-d*e),strokeColor:r.strokeColor,fillColor:r.fillColor,strokeWidth:r.strokeWidth,opacity:r.opacity});a||(a=n.id),n.classId=a,n.dataScope=u[e],n._updateBounds(),n._refBounds=n.bounds.clone(),c.addChild(n),c._layout=new Qy({orientation:ie.ANGULAR,direction:oe.CLOCKWISE}),c._layout.group=c,h.removeChild(r),h.addChild(c),r===t&&(s=c)}}));return{newMark:s.children[0],collection:s}}(e,t,n,r,i);case Lt.Rect:return function(e,t,r,n,i){let s,o=G(t),a=r||ie.HORIZONTAL;if(a!=ie.HORIZONTAL&&a!=ie.VERTICAL)throw new Error("Unknown orientation: "+a);let l=i.getUniqueAttributeValues(n).map((e=>new ve(i).cross(n,e))),u={},c=0;for(let e of o){let t=l;e.dataScope&&(t=l.map((t=>t.merge(e.dataScope))),t=t.filter((e=>!e.isEmpty()))),t.length>c&&(c=t.length),u[e.id]=t}let h,d=Tt({type:"rect",left:t.bounds.left,top:t.bounds.top,width:t.bounds.width,height:t.bounds.height,strokeColor:t.strokeColor,fillColor:t.fillColor,strokeWidth:t.strokeWidth,opacity:t.opacity});d._classId=d.id;for(let r of o){let n=St(e);null==h&&(h=n.id),n._classId=h,n.dataScope=r.dataScope?r.dataScope:new ve(i);let o=r.parent;o.removeChild(r),delete e._itemMap[r.id];let l=u[r.id],c=r.bounds,f=c.left,p=c.top,_=a==ie.HORIZONTAL?c.width/l.length:c.width,g=a==ie.HORIZONTAL?c.height:c.height/l.length;for(let e=0;e<l.length;e++){let t=It(d);t.dataScope=l[e],t.resize(_,g),t._updateBounds(),t._refBounds=t.bounds.clone(),n.addChild(t)}o.addChild(n),n._layout=new Qy({orientation:a,left:f,top:p}),n._layout.group=n,r==t&&(s=n)}return{newMark:s.children[0],collection:s}}(e,t,n,r,i);case Lt.Area:return function(e,t,r,n,i){let s,o=G(t),a=r||ie.HORIZONTAL;if(a!=ie.HORIZONTAL&&a!=ie.VERTICAL)throw new Error("Unknown orientation: "+a);let l,u=i.getUniqueAttributeValues(n).map((e=>new ve(i).cross(n,e))),c={},h=0;for(let e of o){let t=u;e.dataScope&&(t=u.map((t=>t.merge(e.dataScope))),t=t.filter((e=>!e.isEmpty()))),t.length>h&&(h=t.length),c[e.id]=t}let d=Object.assign({},t.styles);d.vertices=t.vertices.map((e=>[e.x,e.y])),d.type="area",d.orientation=t.orientation,d.baseline=t.baseline;let f=Tt(d);if(f._classId=f.id,t.vertices)for(let e=0;e<t.vertices.length;e++)t.vertices[e].dataScope&&(f.vertices[e]._dataScope=t.vertices[e].dataScope.clone());for(let r of o){let n=St(e);null==l&&(l=n.id),n._classId=l,n.dataScope=r.dataScope?r.dataScope:new ve(i);let o=r.parent;o.removeChild(r),delete e._itemMap[r.id];let u=c[r.id],h=r.bounds,d=h.left,p=h.top,_=a==ie.HORIZONTAL?h.width/u.length:h.width,g=a==ie.HORIZONTAL?h.height:h.height/u.length;for(let e=0;e<u.length;e++){let t=It(f);t.dataScope=u[e],console.log(t.dataScope),t.resize(_,g),t._updateBounds(),t._refBounds=t.bounds.clone(),n.addChild(t);for(let e of t.vertices)e.dataScope?e.dataScope=t.dataScope.merge(e.dataScope):e.dataScope=t.dataScope}o.addChild(n),n._layout=new Qy({orientation:a,left:d,top:p}),n._layout.group=n,r==t&&(s=n)}return{newMark:s.children[0],collection:s}}(e,t,n,r,i);case Lt.Ring:return function(e,t,r,n,i){let s,o,a,l=G(t),u=r||ie.ANGULAR;if(u!=ie.ANGULAR&&u!=ie.RADIAL)throw new Error("Unknown orientation: "+u);u===ie.ANGULAR&&l.forEach((r=>{let l=r.dataScope?r.dataScope:new ve(i),u=i.getUniqueAttributeValues(n).map((e=>l.cross(n,e)));u=u.filter((e=>!e.isEmpty()));let c=St(e);null==o&&(o=c.id),c._classId=o,c.dataScope=r.dataScope?r.dataScope:new ve(i);let h=r.parent;h.removeChild(r),delete e._itemMap[r.id];let d=360/u.length,f=90;for(let e=0;e<u.length;e++){let n=Tt({type:"arc",innerRadius:r.innerRadius,outerRadius:r.outerRadius,x:r.x,y:r.y,startAngle:me(f-d*(e+1)),endAngle:me(f-d*e),strokeColor:r.strokeColor,fillColor:r.fillColor,strokeWidth:r.strokeWidth,opacity:r.opacity});a||(a=n.id),n.classId=a,n.dataScope=u[e],n._updateBounds(),n._refBounds=n.bounds.clone(),c.addChild(n),c._layout=new Qy({orientation:ie.ANGULAR,direction:oe.CLOCKWISE}),c._layout.group=c,h.removeChild(r),h.addChild(c),r===t&&(s=c)}}));return{newMark:s.children[0],collection:s}}(e,t,n,r,i);case Lt.Pie:case Lt.Arc:return function(e,t,r,n,i){let s,o,a,l=G(t),u=r||ie.ANGULAR;if(u!=ie.ANGULAR&&u!=ie.RADIAL)throw new Error("Unknown orientation: "+u);u===ie.ANGULAR||l.forEach((r=>{let l=r.dataScope?r.dataScope:new ve(i),u=i.getUniqueAttributeValues(n).map((e=>l.cross(n,e)));u=u.filter((e=>!e.isEmpty()));let c=St(e);null==o&&(o=c.id),c._classId=o,c.dataScope=r.dataScope?r.dataScope:new ve(i);let h=r.parent;h.removeChild(r),delete e._itemMap[r.id];for(let e=0;e<u.length;e++){let n=Tt({type:"arc",innerRadius:r.innerRadius+e*(r.outerRadius-r.innerRadius)/u.length,outerRadius:r.innerRadius+(e+1)*(r.outerRadius-r.innerRadius)/u.length,x:r.x,y:r.y,startAngle:r.startAngle,endAngle:r.endAngle,strokeColor:r.strokeColor,fillColor:r.fillColor,strokeWidth:r.strokeWidth,opacity:r.opacity});a||(a=n.id),n.classId=a,n.dataScope=u[e],n._updateBounds(),n._refBounds=n.bounds.clone(),c.addChild(n),c._layout=new Qy({orientation:ie.RADIAL}),c._layout.group=c,h.removeChild(r),h.addChild(c),r===t&&(s=c)}}));return{newMark:s.children[0],collection:s}}(e,t,n,r,i)}}function tm(e,t,r,n){let i=n.getAttributeType(r);if(i!=Oe.String&&i!=Oe.Date&&i!=Oe.Integer)throw new Error("Repopulate only works on a string or date attribute: "+r+" is "+i);let s=G(t);for(let e of s){let t=n.getAttributeSummary(r).unique.map((t=>e.dataScope?e.dataScope.cross(r,t):new ve(n).cross(r,t)));t=t.filter((e=>!e.isEmpty()));let i=e.children.length-t.length,s=t.length-e.children.length;for(let t=0;t<i;t++)e.removeChildAt(e.children.length-1);let o=e._children.length;for(let t=0;t<s;t++){let r=It(e._children[t%o]);e.addChild(r)}e.children.forEach(((e,r)=>e.dataScope=t[r]))}}class rm{constructor(e,t,r,n){this._elem=e,this._base=t,this._channel=r,this._elemAnchor="elementAnchor"in n?n.elementAnchor:"x"==r||"angle"==r?N.CENTER:N.MIDDLE,this._baseAnchor="baseAnchor"in n?n.baseAnchor:"x"==r||"angle"==r?N.CENTER:N.MIDDLE,this._offset="offset"in n?n.offset:0}get element(){return this._elem}get base(){return this._base}get channel(){return this._channel}get elementAnchor(){return this._elemAnchor}get baseAnchor(){return this._baseAnchor}get offset(){return this._offset}}function nm(e,t,r,n){e.dataScope&&e.dataScope.dataTable.hasAttribute(t)?function(e,t,r,n){if(!e.dataScope.dataTable.hasAttribute(t))return void console.warn("Cannot order collection children by an non-existent attribute",t);let i;if(t===Mt)i=(e,r)=>parseInt(e.dataScope.getAttributeValue(t).substring(1))-parseInt(r.dataScope.getAttributeValue(t).substring(1));else{switch(e.children[0].dataScope.getAttributeType(t)){case Oe.Date:break;case Oe.Number:case Oe.Integer:i=(e,r)=>e.dataScope.aggregateNumericalAttribute(t)-r.dataScope.aggregateNumericalAttribute(t);break;case Oe.String:i=n?(e,r)=>n.indexOf(e.dataScope.getAttributeValue(t))-n.indexOf(r.dataScope.getAttributeValue(t)):(e,r)=>e.dataScope.getAttributeValue(t)<r.dataScope.getAttributeValue(t)?-1:1}}e.children.sort(i),r&&e.children.reverse()}(e,t,r,n):function(e,t,r){let n;switch(t){case"x":case"y":case"width":case"height":n=(e,r)=>e.bounds[t]-r.bounds[t];break;default:n=(e,r)=>e[t]-r[t]}e._children.sort(n),r&&e.children.reverse()}(e,t,r),e._sortBy={property:t,descending:r,vals:n}}function im(e,t,r,n){e.vertices[0].dataScope&&e.vertices[0].dataScope.dataTable.hasAttribute(t)?function(e,t,r,n){let i;if(t===Mt)i=(e,r)=>parseInt(e.dataScope.getAttributeValue(t).substring(1))-parseInt(r.dataScope.getAttributeValue(t).substring(1));else{switch(e.vertices[0].dataScope.getAttributeType(t)){case Oe.Date:break;case Oe.Number:case Oe.Integer:i=(e,r)=>e.dataScope.aggregateNumericalAttribute(t)-r.dataScope.aggregateNumericalAttribute(t);break;case Oe.String:i=n?(e,r)=>n.indexOf(e.dataScope.getAttributeValue(t))-n.indexOf(r.dataScope.getAttributeValue(t)):(e,r)=>e.dataScope.getAttributeValue(t)<r.dataScope.getAttributeValue(t)?-1:1}}e.vertices.sort(i),r&&e.vertices.reverse()}(e,t,r,n):function(e,t,r){let n=(e,r)=>e[t]-r[t];e.vertices.sort(n),r&&e.vertices.reverse()}(e,t,r),e._sortBy={property:t,descending:r,vals:n}}class sm extends J{constructor(e){super(),this.type=Q.GRID,this._numCols=e.numCols,this._numRows=e.numRows,this._start="start"in e?e.start:ne.TopLeft,this._direction="direction"in e?e.direction:re.RowFirst,this._rowGap="rowGap"in e&&void 0!==e.rowGap?e.rowGap:5,this._colGap="colGap"in e&&void 0!==e.colGap?e.colGap:5,this._cellHorzAlignment="horzCellAlignment"in e&&ee("h",e.horzCellAlignment)?e.horzCellAlignment:N.LEFT,this._cellVertAlignment="vertCellAlignment"in e&&ee("v",e.vertCellAlignment)?e.vertCellAlignment:N.BOTTOM,this._numCols||this._numRows||(this._numRows=1),this._left=void 0,this._top=void 0,this._cellBounds=void 0,this._grid=void 0}get cellBounds(){return this._cellBounds}get numCols(){return this._numCols?this._numCols:this._numRows?Math.ceil(this.group.children.length/this._numRows):0}get numRows(){return this._numRows?this._numRows:this._numCols?Math.ceil(this.group.children.length/this._numCols):0}clone(){let e=new sm({numCols:this._numCols,numRows:this._numRows,start:this._start,direction:this._direction,colGap:this._colGap,rowGap:this._rowGap,horzCellAlignment:this._cellHorzAlignment,vertCellAlignment:this._cellVertAlignment});return e._left=this._left,e._top=this._top,this._cellBounds&&(e._cellBounds=this._cellBounds.map((e=>e.clone()))),e}getElementsByRow(e,t){let r=[],n=this.group.children;for(let t=0;t<this.numRows;t++){let i=this._grid[t].filter((e=>null!=e)).map((e=>n[e]));if(e){let e=[];for(let t of i)e=e.concat(Z(t));r.push(e)}else r.push(i)}return t&&(r=this._filterElementsByExample(r,t)),r}getElementsByCol(e,t){let r=[],n=this.group.children,i=this._grid;for(let t=0;t<this.numCols;t++){let s=i.map((e=>e[t])).filter((e=>null!=e)).map((e=>n[e]));if(e){let e=[];for(let t of s)e=e.concat(Z(t));r.push(e)}else r.push(s)}return t&&(r=this._filterElementsByExample(r,t)),r}getElementsByCell(e,t){let r=[],n=this.group.children;for(let t=0;t<n.length;t++)if(e){let e=Z(n[t]);r.push(e)}else r.push(n[t]);return t&&(r=this._filterElementsByExample(r,t)),r}_filterElementsByExample(e,t){let r;return"vertex"===t.type?(r=e.map((e=>e.filter((e=>e.classId===t.parent.classId)))),r=r.map((e=>j(t,e)))):"segment"===t.type?(r=e.map((e=>e.filter((e=>e.classId===t.parent.classId)))),r=r.map((e=>z(t,e)))):r=e.map((e=>e.filter((e=>e.classId===t.classId)))),r}getIndex(e){let t=e;for(;t&&t.parent!==this.group;)t=t.parent;return this.group.children.indexOf(t)}getRowCol(e){let t,r;switch(this._direction){case re.RowFirst:t=Math.floor(e/this.numCols),r=e%this.numCols;break;case re.ColumnFirst:t=e%this.numRows,r=Math.floor(e/this.numRows);break;default:throw new Error("Invalid fill direction. Use 'row_first' or 'column_first'.")}return this._start.toLowerCase().includes("bottom")&&(t=this.numRows-1-t),this._start.toLowerCase().includes("right")&&(r=this.numCols-1-r),{row:t,col:r}}}class om extends mt{constructor(e,t){super(),this._type=Lt.Axis,this._id=this._type+Pt(),this._enc=e,this._textColor="textColor"in t?t.textColor:"#555",this._strokeColor="strokeColor"in t?t.strokeColor:"#555",this._fontSize="fontSize"in t?t.fontSize:"12px",this._x="x"in t?t.x:100,this._y="y"in t?t.y:100,this._showTitle=!("showTitle"in t)||t.showTitle,this._orientation="orientation"in t?t.orientation:ie.VERTICAL,this._numberFormat=t.numberFormat?t.numberFormat:""}get attribute(){return this._enc.attribute}get channel(){return this._enc.channel}get attributeType(){return Bt(this._enc.element).getFieldType(this.attribute)}get orientation(){return this._orientation}get textColor(){return this._textColor}}class am extends om{constructor(e,t){super(e,t),"numCols"in t||"numRows"in t?(this._numCols=t.numCols,this._numRows=t.numRows):this._orientation===ie.VERTICAL?this._numCols=1:this._numRows=1,this._initialize()}_initialize(){let e=this._enc.element.scene,t=this._enc.attribute,r=this._enc.scales[0],n=new Dt(r.domain.map((e=>({category:e,value:r.map(e)})))),i=n.getUniqueAttributeValues("category").sort(((e,t)=>t.length-e.length))[0],s=this._enc.element,o=s instanceof ce&&s.closed?s.strokeWidth:0;if(this._orientation===ie.VERTICAL){let r=0;this._showTitle&&(this.addChild(new Ct({fillColor:this._textColor,fontSize:this._fontSize,text:t,x:this._x,y:this._y,anchor:["left","top"]})),r=parseFloat(this._fontSize)+5);let a=e.mark("rect",{top:this._y+2+r,left:this._x,width:10,height:10,strokeWidth:o,strokeColor:s.strokeColor,opacity:s.opacity}),l=e.mark("text",{text:i,fillColor:this._textColor,fontSize:this._fontSize,x:this._x+20,y:this._y+r+12+o,anchor:["left","bottom"]}),u=e.glyph(a,l),c=e.repeat(u,n);e.encode(l,{channel:"text",attribute:"category",forLegend:!0}),e.encode(a,{channel:"fillColor",attribute:"category",shareScale:this._enc,forLegend:!0}),c.layout=new sm({numCols:this._numCols,numRows:this._numRows}),this.addChild(c)}else{let t=e.mark("rect",{top:this._y,left:this._x,width:10,height:10,strokeWidth:o,strokeColor:s.strokeColor,opacity:s.opacity}),r=e.mark("text",{text:i,fillColor:this._textColor,fontSize:this._fontSize,x:this._x+15,y:this._y,anchor:["left","top"]}),a=e.glyph(t,r),l=e.repeat(a,n);e.encode(r,{channel:"text",attribute:"category",forLegend:!0}),e.encode(t,{channel:"fillColor",attribute:"category",shareScale:this._enc,forLegend:!0}),l.layout=new sm({numCols:this._numCols,numRows:this._numRows,colGap:15}),this.addChild(l)}}}class lm extends om{constructor(e,t){super(e,t),this._initialize()}_initialize(){let e,t,r,i=this._enc.element.scene,s=this._enc.attribute;if(this._orientation==ie.VERTICAL?(e=15,t=300):(e=300,t=15),this._showTitle){let t=i.mark("text",{fillColor:this._textColor,text:s,x:this._x+e/2,y:this._y,anchor:["center","middle"]});this.addChild(t),r=20}else r=0;let o,a=i.mark("rect",{top:this._y+r,left:this._x,width:e,height:t,strokeWidth:0,opacity:this._enc.element.opacity}),l=Object.values(this._enc.attrValues),u=[Math.min(...l),Math.max(...l)],c=this._enc.mapping,h=[],d=[],f=n.format(this._numberFormat);if(c){let n=Object.keys(c).map((e=>parseFloat(e))).sort(((e,t)=>e-t));this._orientation==ie.VERTICAL?(o=new P({x1:0,y1:100,x2:0,y2:0}),n.forEach((n=>{let s=(n-u[0])/(u[1]-u[0]);o.addStop(100*s,c[n],1);let a=i.mark("line",{x1:this._x+e,x2:this._x+e+5,y1:this._y+t-s*t+r,y2:this._y+t-s*t+r,strokeColor:this._strokeColor});d.push(a);let l=i.mark("text",{fillColor:this._textColor,text:this._numberFormat?f(n):n.toFixed(0),x:this._x+e+5+5,y:this._y+t-s*t+r,anchor:["left","middle"]});h.push(l)}))):(o=new P({x1:0,y1:0,x2:100,y2:0}),n.forEach((n=>{let s=(n-u[0])/(u[1]-u[0]);o.addStop(100*s,c[n],1);let a=i.mark("line",{x1:this._x+s*e,x2:this._x+s*e,y1:this._y+20-5+r,y2:this._y+t+5+r,strokeColor:this._strokeColor});d.push(a);let l=i.mark("text",{fillColor:this._textColor,text:this._numberFormat?f(n):n.toFixed(0),x:this._x+s*e,y:this._y+t+5+r,anchor:["center","top"]});h.push(l)})))}else{let n=this._enc.scales[0].domain,a=Bt(this._enc.element),l=a.getAttributeType(s),u=[],c=l===Oe.Date?a.getUniqueFieldValues(s):[...new Set(Object.values(this._enc.attrValues))];if(c.length<=10)u=c,u.sort(((e,t)=>e-t));else if(l===Oe.Date){c.sort(((e,t)=>e-t));for(let e=0;e<c.length;e+=Math.ceil(c.length/10))u.push(c[e])}else{let e=(n[1]-n[0])/9;for(let t=0;t<10;t++)u.push(n[0]+t*e)}let p=0,_=(u[u.length-1]-u[0])/u.length;for(;_<1;)_*=10,p++;u=u.map((e=>e.toFixed(p))),this._orientation==ie.VERTICAL?(o=new P({x1:0,y1:100,x2:0,y2:0}),u.forEach((u=>{let c=(u-n[0])/(n[1]-n[0]);o.addStop(100*c,this._enc.scales[0].map(u),1);let p=i.mark("line",{x1:this._x+e,x2:this._x+e+5,y1:this._y+t-c*t+r,y2:this._y+t-c*t+r,strokeColor:this._strokeColor});d.push(p);let _=i.mark("text",{fillColor:this._textColor,text:l===Oe.Date?a.getRawValue(s,u):this._numberFormat?f(u):u,x:this._x+e+5+5,y:this._y+t-c*t+r,anchor:["left","middle"]});h.push(_)}))):(o=new P({x1:0,y1:0,x2:100,y2:0}),u.forEach((u=>{let c=(u-n[0])/(n[1]-n[0]);o.addStop(100*c,this._enc.scale.map(u),1);let f=i.mark("line",{x1:this._x+c*e,x2:this._x+c*e,y1:this._y+t+r,y2:this._y+t+5+r,strokeColor:this._strokeColor});d.push(f);let p=i.mark("text",{fillColor:this._textColor,text:l===Oe.Date?a.getRawValue(s,u):u,x:this._x+c*e,y:this._y+t+5+r,anchor:["center","top"]});h.push(p)})))}a.styles.fillColor=o,this.addChild(a);for(let e of h)this.addChild(e);for(let e of d)this.addChild(e)}}class um extends mt{constructor(e){super(),this._type=Lt.Composite,this._id=e&&e.id?e.id:this._type+Pt()}addChild(e){let t=e.parent;super.addChild(e);let r=Y(e)._depGraph;t&&ct(t,e,r),ht(this,e,r)}}class cm{constructor(e,t,r){this._elems=e,this._channel=t,this._anchor=r}get elements(){return this._elems}get channel(){return this._channel}get anchor(){return this._anchor}}class hm extends J{constructor(e){super(),this.type=Q.STRATA,this._direction=e.direction,this._gap="gap"in e?e.gap:0}clone(){return new hm({direction:this._direction,gap:this._gap})}}function dm(e,t,r,n,i){switch(t.type){case Lt.Circle:return function(e,t,r,n,i){let s,o=r||ae.OUTWARD,a=n||50;if(o!==ae.INWARD&&o!==ae.OUTWARD)throw"Unknown direction to stratify";let l,u=G(t,e);return u.forEach((r=>{let n=St(e);n.dataScope=void 0,null==l&&(l=n.id),n._classId=l;let u=r.parent;fm(r,t.id,o,a,i,i.getRoot(),n,e,!0),n._layout=new hm({direction:o}),n._layout.group=n,u.addChild(n),r===t&&(s=n)})),s}(e,t,r,n,i);case Lt.Rect:return function(e,t,r,n,i){let s,o,a=r||se.Top2Bottom,l=n||50;if(!Object.values(se).includes(a))throw"Unknown direction to stratify";return G(t).forEach((r=>{let n=St(e);n.dataScope=void 0,null==o&&(o=n.id),n._classId=o;let u=r.parent;pm(r,t.id,a,l,i,i.getRoot(),n,e,!0),n._layout=new hm({direction:a}),n._layout.group=n,u.addChild(n),r===t&&(s=n)})),s}(e,t,r,n,i)}}function fm(e,t,r,n,i,s,o,a,l){l&&(e.dataScope=i.getNodeDataScope(s),e._classId=t,o.addChild(e));let u=i.getChildren(s);if(0===u.length)return;let c=e.type===Lt.Circle||e.type===Lt.Ring?90:e.startAngle,h=(e.type===Lt.Circle||e.type===Lt.Ring?360:e.angle)/u.length;for(let s=0;s<u.length;s++){let a,l=e.type===Lt.Circle?e.radius:e.outerRadius;a=Tt(360===h?{type:"ring",innerRadius:l,outerRadius:l+n,x:e.x,y:e.y,strokeColor:e.strokeColor,fillColor:e.fillColor,strokeWidth:e.strokeWidth,opacity:e.opacity}:{type:"arc",innerRadius:l,outerRadius:l+n,x:e.x,y:e.y,startAngle:me(c+h*s),endAngle:me(c+h*(s+1)),strokeColor:e.strokeColor,fillColor:e.fillColor,strokeWidth:e.strokeWidth,opacity:e.opacity}),a.dataScope=i.getNodeDataScope(u[s]),a._classId=t,o.addChild(a),fm(a,t,r,n,i,u[s],o)}}function pm(e,t,r,n,i,s,o,a,l){l&&(e.dataScope=i.getNodeDataScope(s),e._classId=t,o.addChild(e));let u,c,h,d=i.getChildren(s);if(0!==d.length){switch(r){case se.Top2Bottom:case se.Bottom2Top:case se.Left2Right:case se.Right2Left:}u=e.left,c=e.bottom,h=e.width/d.length;for(let s=0;s<d.length;s++){let a=It(e);Xe(a,u-a.left,c-a.top),a.resize(h,n),a._updateBounds(),u+=h,a.dataScope=i.getNodeDataScope(d[s]),a._classId=t,o.addChild(a),pm(a,t,r,n,i,d[s],o)}}}class _m extends g{constructor(e,t,r,n){super(e,t),this._elem=r,this._cumulative=n,this._elements=[]}get element(){return this._elem}isCumulative(){return this._cumulative}get elements(){return this._elements}set elements(e){this._elements=e}}class gm extends g{constructor(e,t,r){super(e,t),this._key=r}get key(){return this._key}}class ym extends g{constructor(e,t,r){super(e,t),this._listener=r,this._elements=[]}get mouseEvent(){return this._mouseEvent}set mouseEvent(e){this._mouseEvent=e}get listener(){return this._listener}get elements(){return this._elements}set elements(e){this._elements=e}}class mm extends g{constructor(e,t,r){super(e,t),this._ctrlId=r}get id(){return this._ctrlId}}class bm extends mt{constructor(e){super(),this._itemMap={},this._type=Lt.Scene,this._id=e&&e.id?e.id:this._type+Pt(),e&&e.fillColor&&(this.fillColor=e.fillColor),this._encodings={},this._relations=[],this._triggers={},this._depGraph=new Xy}get depGraph(){return this._depGraph}get interactionTriggers(){return this._triggers}mark(e,t){if(Object.values(Nt).indexOf(e)<0)throw new Error("Mascot does not allow directly creating a "+e);let r=void 0===t?{}:t;r.type=e;let n=Tt(r);return null!==n&&(n._classId=n.id,this.addChild(n),this._itemMap[n.id]=n,st(n,this._depGraph),ht(this,n,this._depGraph)),n}glyph(...e){let t=[];for(let r of e)t.push([r.parent,r]);let r=Ot(e);if(null!==r){r._classId=r.id,this.addChild(r),this._itemMap[r.id]=r;for(let e of t)ct(e[0],e[1],this._depGraph);!function(e,t){let r=t.getVariable(_.BOUNDS,e),n=t.getIncomingDataflowOperator(f.EVAL_BBOX,r);for(let r of e.children)t.connect(t.getVariable(_.BOUNDS,r),n);t.connect(n,r),n.run()}(r,this._depGraph),ht(this,r,this._depGraph)}return r}composite(){let e=new um;return null!==e&&(e._classId=e.id,this.addChild(e),this._itemMap[e.id]=e,function(e,t){let r=t.getVariable(_.BOUNDS,e),n=t.getVariable(_.CHANNEL,"x",e),i=t.getVariable(_.CHANNEL,"y",e),s=t.getVariable(_.CHANNEL,"width",e),o=t.getVariable(_.CHANNEL,"height",e),a=t.createOneWayDependency(f.EVAL_BBOX);t.connect(n,a),t.connect(i,a),t.connect(s,a),t.connect(o,a),t.connect(a,r),a.run()}(e,this._depGraph),ht(this,e,this._depGraph)),e}attach(e,t){if(e.type==Lt.Glyph)for(let t of e.children)t._refBounds||(t._refBounds=t.bounds.clone());e.dataScope=new ve(t)}repeat(e,t,r){let n=r||{};if(n.attribute=n.attribute||Mt,console.log("------ repeat by",n.attribute," ----"),function(e,t,r){if(!e||void 0===t)throw new Error("Incomplete information to do repeat. You must specify an element, a categorical data attribute and a data table");if(t instanceof we||t instanceof Ce){if(!Array.isArray(e)||2!==e.length)throw new Error("To repeat with a tree or a network, you need to provide two marks, one for node and one for link")}else t instanceof Dt&&Se(r.attribute,t);if(r.layout&&!(r.layout instanceof J))throw new Error("Invalid layout: "+r.layout)}(e,t,n),t instanceof we||t instanceof Ce){let r=e[0].parent,n=e[1].parent,[i,s]=function(e,t,r,n){let i=n.nodeTable.getAttributeSummary(Te).unique.map((e=>t.dataScope?t.dataScope.cross(Te,e):new ve(n.nodeTable).cross(Te,e))),s=St(e),o=St(e),a={};o.dataScope=t.dataScope?t.dataScope.clone():new ve(n.nodeTable),o.addChild(t);for(let e=1;e<i.length;e++){let e=It(t);o.addChild(e)}o.children.forEach(((e,t)=>{e.dataScope=i[t],e.links=[],a[e.dataScope.getAttributeValue(Te)]=e}));let l=n.linkTable.getAttributeSummary(Mt).unique.map((e=>r.dataScope?r.dataScope.cross(Mt,e):new ve(n.linkTable).cross(Mt,e)));s.dataScope=r.dataScope?r.dataScope.clone():new ve(n.linkTable),s.addChild(r);for(let e=1;e<l.length;e++){let e=It(r);s.addChild(e)}s.children.forEach(((e,t)=>e.dataScope=l[t]));let u=n instanceof we?"parent":"source",c=n instanceof we?"child":"target";for(let e of s.children){let t=e.dataScope.getAttributeValue(u),r=e.dataScope.getAttributeValue(c),n=a[t],i=a[r];e.source=n,e.target=i,n.links.push(e),i.links.push(e)}return[o,s]}(this,e[0],e[1],t);return ct(r,e[0],this._depGraph),ct(n,e[1],this._depGraph),ut(i,this._depGraph),ut(s,this._depGraph),ht(i,e[0],this._depGraph),ht(i.parent,i,this._depGraph),ht(s,e[1],this._depGraph),ht(s.parent,s,this._depGraph),[i,s]}if(t instanceof Dt){let r=e.parent,i=Ky(this,e,n.attribute,t);return ct(r,e,this._depGraph),ut(i,this._depGraph),ht(i,e,this._depGraph),ht(i.parent,i,this._depGraph),n.layout&&(i.layout=n.layout),i}}divide(e,t,r){let n=r||{};if(n.attribute=n.attribute||Mt,console.log("------ divide by",n.attribute," ----"),function(e,t,r){if(!e||void 0===t)throw new Error("Incomplete information to do divide. You must specify an element, a categorical data attribute and a data table");if(t instanceof Dt&&Se(r.attribute,t),r.layout&&!(r.layout instanceof J))throw new Error("Invalid layout: "+r.layout)}(e,t,n),t instanceof we||t instanceof Ce)throw"Not implemented";if(t instanceof Dt){let{newMark:r,collection:i}=em(this,e,n.attribute,n.orientation,t);return ot(e,this._depGraph),st(r,this._depGraph),ut(i,this._depGraph),ht(i,r,this._depGraph),i.parent.type!==Lt.Scene&&ht(i.parent,i,this._depGraph),this.onChange(_.CHANNEL,"width",r),{newMark:r,collection:i}}}densify(e,t,r){let n=r||{};if(n.attribute=n.attribute||Mt,console.log("------ densify by",n.attribute," ----"),function(e,t,r){if(!e||void 0===t)throw new Error("Incomplete information to do densification. You must specify an element, a categorical data attribute and a data table");t instanceof Dt&&Se(r.attribute,t)}(e,t,n),t instanceof we||t instanceof Ce)throw"Not implemented";if(t instanceof Dt){let r=Ve(0,e,n.attribute,n.orientation,t);return ot(e,this._depGraph),st(r,this._depGraph),r.parent.type!==Lt.Scene&&ht(r.parent,r,this._depGraph),this.onChange(_.CHANNEL,"width",r),r}}stratify(e,t,r){if(!(t instanceof we))throw"Cannot stratify on a non-tree dataset";if(![Lt.Circle,Lt.Rect].includes(e.type))throw"Cannot stratify elements that are not rects or circles";let n=r||{},i=n.direction,s=n.size,o=e.parent,a=dm(this,e,i,s,t);return ct(o,e,this._depGraph),ut(a,this._depGraph),ht(a,e,this._depGraph),ht(a.parent,a,this._depGraph),a}repopulate(e,t,r){e.dataScope=void 0;let n=e;for(let e in r){tm(0,n,r[e],t);let i=Ge(n.children[0],!0);for(let e of i){Me(e,this),at(e,this._depGraph);for(let t of e.refElements)nr(t,this),lt(t,this._depGraph);e.clearRefElements()}let s=G(n);for(let e of s)if(e.layout){for(let t of e.layout.refElements)nr(t,this),lt(t,this._depGraph);e.layout.clearRefElements()}n=n.children[0]}e.dataScope=new ve(t),this.onChange(_.CHANNEL,"width",e.children[0])}classify(e,t){let r=t||{};console.log("------ classify by",r.attribute," ----"),function(e,t,r,n){let i=G(t);for(let t of i){let i,s={},o=t.children;for(let e of o){let t=e.dataScope.getAttributeValue(r);t in s||(s[t]=[]),s[t].push(e)}let a=Bt(o[0]);for(let o in s){let l=St(e);t.addChild(l),void 0===i&&(i=l.id),l._classId=i,l.dataScope=t.dataScope?t.dataScope.cross(r,o):new ve(a).cross(r,o);for(let e of s[o])l.addChild(e);n&&(l._layout=n.clone(),l._layout.group=l)}}}(this,e,r.attribute,r.layout),ct(e,e.firstChild.firstChild,this._depGraph),ut(e.firstChild,this._depGraph),ht(e.firstChild,e.firstChild.firstChild,this._depGraph),ht(e,e.firstChild,this._depGraph),this.onChange(_.CHANNEL,"width",e.firstChild.firstChild)}affix(e,t,r,n){let i=new rm(e,t,r,n||{});!function(e,t){let r=t.getVariable(_.CHANNEL,e.channel,e.element),n=t.getVariable(_.CHANNEL,e.channel,e.base),i=t.getVariable(_.AFFIXATION,e),s=t.createOneWayDependency(f.AFFIXER);t.connect(n,s),t.connect(i,s),t.connect(s,r),s.run()}(i,this._depGraph),this._relations.push(i)}align(e,t,r){let n=new cm(e,t,r);!function(e,t){let r=t.createMultiWayDependency(f.ALIGNER),n=t.getVariable(_.ALIGNMENT,e);t.connect(n,r);for(let n of e.elements){let i=t.getVariable(_.CHANNEL,e.channel,n);t.connect(i,r)}r.run()}(n,this._depGraph),this._relations.push(n)}encode(e,t){if("rowId"===t.attribute&&(t.attribute=Mt),function(e,t){if(!e||!("channel"in t)||!("attribute"in t))throw new Error("Incomplete information to do encoding. You must specify an item, a categorical data attribute and a data table");let r=Bt(e);if(r.tree){let e=t.attribute;if(e.indexOf(".")>0&&!r.tree.nodeTable.hasAttribute(e.split(".")[1]))throw new Error("Data attribute does not exist in the data table")}else if(!r||!r.hasAttribute(t.attribute))throw new Error("Data attribute does not exist in the data table");if(!Object.values(Be).includes(t.channel))throw new Error("Channel Not Supported")}(e,t),t.shareScale){let e=t.shareScale;if(e.channel!=t.channel&&e.channel.indexOf("Color")<0&&t.channel.indexOf("Color")<0)throw new Error("Cannot share scales between "+e.channel+" and "+t.channel+" encodings");t.scheme=t.shareScale.colorScheme}!function(e){let t;"vertex"===e.type&&e.parent.type===Lt.Area?t=e.parent:e.type===Lt.Area&&(t=e),t&&!t._refBounds&&G(t).forEach((e=>e._refBounds=e.bounds.clone()))}(e);let r=t.aggregator?t.aggregator:"sum";console.log("------ encode",t.channel,t.attribute," --");let n=ze(e,t.channel);if(n&&t.attribute!==n.attribute){Me(n,this),at(n,this._depGraph);for(let e of n.refElements)nr(e,this),lt(e,this._depGraph);n.clearRefElements()}let i=new Zy(e,t.channel,t.attribute,r,t);return this._addAttributeEncoding(i),function(e,t,r){let n=e.attribute,i=e.channel,s=e.element,o=t.createOneWayDependency(f.ENCODER);if(["width","height"].includes(e.channel)&&s.type===Lt.Area){let e=t.getVariable(_.PROPERTY,it.BASE_LINE,s);t.connect(e,o)}if(r){let n=t.getVariable(_.DOMAIN,r),a=t.getVariable(_.SCALE,r),l=t.getVariable(_.CHANNEL,i,s);t.connect(a,o),t.connect(o,l),n.addLinkedEncoding(e),a.addLinkedEncoding(e),n.incomingDataflow.run()}else{let r=t.getVariable(_.ATTRIBUTE,n,Bt(s)),a=t.getVariable(_.PROPERTY,it.INCLUDE_ZERO,e),l=t.getVariable(_.DOMAIN,e),u=t.getVariable(_.DATASCOPE,s),c=t.createOneWayDependency(f.DOMAIN_BUILDER);t.connect(r,c),t.connect(a,c),t.connect(u,c),t.connect(c,l),c.run();let h=t.getVariable(_.PROPERTY,it.RANGE_START,e),d=t.getVariable(_.PROPERTY,it.RANGE_EXTENT,e),p=t.getVariable(_.PROPERTY,it.FLIP_SCALE,e),g=t.getVariable(_.SCALE,e),y=t.createOneWayDependency(f.SCALE_BUILDER);t.connect(h,y),t.connect(d,y),t.connect(p,y),t.connect(l,y),t.connect(y,g),y.run();let m=t.getVariable(_.CHANNEL,i,s);t.connect(g,o),t.connect(o,m),o.run()}}(i,this._depGraph,t.shareScale),t.shareScale?this.onChange(_.DOMAIN,i):this.onChange(_.CHANNEL,t.channel,e),i}_addAttributeEncoding(e){let t=Fe(e.element);t in this._encodings||(this._encodings[t]={}),this._encodings[t][e.channel]=e}activate(e,t,r,n,i){!function(e,t,r,n,i){if(!("event"in e)||!("type"in e))throw"Event and trigger must be specified";if(![y.WIDGET,y.KEYBOARD].includes(e.type)){if(!("target"in t)||!("targetChannels"in t))throw"Target must be specified";if("function"!=typeof r)throw"Target evaluator must be a function"}if(e.type===y.ELEMENT&&!("element"in e))throw"Element must be specified for trigger";if(Array.isArray(n)){if(!n.every((e=>"function"==typeof e)))throw"Effect setter must be a function";if(i&&!Array.isArray(i))throw"An array of effect setters must be accompanied by an array of animation effects";if(i&&Array.isArray(i)&&i.length!==n.length)throw"the length of effect setters is not equal to the length of animation effects"}else if("function"!=typeof n)throw"Effect setter must be a function"}(e,t,r,n,i);let s=e.event,o=function(e){switch(e.type){case y.ELEMENT:return[e.type,e.element.classId?e.element.classId:e.element.id].join("-");case y.ATTRIBUTE:return[e.type].join("-");case y.WIDGET:return[e.type,e.event,e.listener?e.listener.id:"scene",e.id?e.id:""].join("-");case y.MOUSE:return[e.type,e.event,e.listener?e.listener.id:"scene"].join("-");case y.KEYBOARD:return[e.type,e.event,e.key].join("-");default:return[e.type,e.event].join("-")}}(e);if(s=0===s.indexOf("brush")?"brush":s,s in this._triggers||(this._triggers[s]={}),o in this._triggers[s]||(this._triggers[s][o]=function(e){switch(e.type){case y.ELEMENT:return new _m(e.type,e.event,e.element,"cumulative"in e&&e.cumulative);case y.MOUSE:return new ym(e.type,e.event,e.listener);case y.KEYBOARD:return new gm(e.type,e.event,e.key);case y.WIDGET:return new mm(e.type,e.event,e.id)}}(e)),this._triggers[s][o].animation=i,![y.WIDGET,y.KEYBOARD].includes(e.type)){let e=this._triggers[s][o],i=new $y(e,t,r,n);return function(e,t,r){let n=e.target,i=r.getVariable(_.COND_ENCODING,e);for(let s of t){let t=r.getVariable(_.TRIGGER,e.trigger),o=r.findIncomingDataflowOperator(f.TARGET_EVALUATOR,i);o||(o=r.createOneWayDependency(f.TARGET_EVALUATOR,e._targetEval)),r.connect(t,o),r.connect(o,i);let a=r.getVariable(_.CHANNEL,s,n),l=a.incomingDataflow;if(l&&l instanceof rt&&l.outputVar.channel===s)r.connect(i,l);else if(!l){let e=r.createOneWayDependency(f.ENCODER);r.connect(i,e),r.connect(e,a),e.storeValues(n,s)}}}(i,t.targetChannels,this._depGraph),i}this._triggers[s][o].callback=n}onChange(e,...t){if(Object.values(_).indexOf(e)<0)throw new Error("Unknown Variable Type: "+e);let r=[];this._depGraph.processChange(e,r,...t);for(let e of r)e.run()}gridlines(e,t,r){let n=r||{},i=n.element?ze(n.element,e):je(t,e,this);if(i){i.attribute!==t&&console.warn("Cannot create a "+e+" axis for "+t);let r=[];if("x"==e)for(let e of i.scales)r.push({scale:e,elems:i.getElements(e)});else if("width"==e){let e=X(i.element),t=i.scales[0];if(e.layout&&e.layout.type==Q.GRID&&e.layout.numCols>1){let n=e.layout.getElementsByCol(!0);for(let e of n)r.push({scale:t,elems:e})}else r.push({scale:i.scales[0],elems:i.getElements(i.scales[0])})}else if("y"==e){let e=X(i.element);if(e.layout&&e.layout.type==Q.GRID&&e.layout.numRows>1){let t=e.layout.getElementsByRow(!0,i.element);for(let e of t)r.push({scale:i.getScale(e[0]),elems:e})}else r.push({scale:i.scales[0],elems:i.getElements(i.scales[0])})}else if("height"==e){let e=X(i.element),t=i.scales[0];if(e.layout&&e.layout.type==Q.GRID&&e.layout.numRows>1){let n=e.layout.getElementsByRow(!0,i.element);for(let e of n)r.push({scale:t,elems:e})}else r.push({scale:t,elems:i.getElements(t)})}else"radialDistance"==e&&r.push({scale:i.scales[0],elems:G(i.element)});for(let e of r){let t=new Jy(i.channel,i.attribute,e.scale,e.elems,n);this.addChild(t),i.addRefElement(t),yt(t,this._depGraph),ht(this,t,this._depGraph)}}else{let r=n.element?n.element:U(this,t);if(!r)return void console.warn("Cannot create "+e+" gridlines for "+t);let i=H(r.parent);if(!i.layout)return void console.warn("Cannot create "+e+" gridlines for "+t);let s=G(i);for(let r of s){let i=[];r.layout.type==Q.GRID&&r.layout.numRows>1&&"x"==e?i=r.layout.getElementsByRow():r.layout.type==Q.GRID&&r.layout.numCols>1&&"y"==e?i=r.layout.getElementsByCol():i.push(r.children);for(let s of i){let i=new Jy(e,t,null,s,n);this.addChild(i),r.layout.addRefElement(i),yt(i,this._depGraph),ht(this,i,this._depGraph)}}}}axis(e,t,r){let n=r||{},i="rowId"==t?Mt:t,s=[],o=n.element?ze(n.element,e):je(i,e,this);if(o){o.attribute!==i&&console.warn("Cannot create a "+e+" axis for "+i);let t=[];if("x"==e||"width"==e){let e=X(o.element);if(e.layout&&e.layout.type==Q.GRID&&e.layout.numCols>1){let r=e.layout.getElementsByCell(!0,o.element);for(let e of r)t.push({scale:o.getScale(e[0]),elems:e})}else t.push({scale:o.scales[0],elems:o.getElements(o.scales[0])})}else if("y"==e||"height"==e){let e=X(o.element);if(e.layout&&e.layout.type==Q.GRID&&e.layout.numRows>1){let r=e.layout.getElementsByCell(!0,o.element);for(let e of r)t.push({scale:o.getScale(e[0]),elems:e})}else t.push({scale:o.scales[0],elems:o.getElements(o.scales[0])})}else"radialDistance"==e&&t.push({scale:o.scales[0],elems:G(o.element)});for(let e of t){let t=new ir(o,e.scale,e.elems,n);this.addChild(t),s.push(t),o.addRefElement(t),gt(t,this._depGraph),ht(this,t,this._depGraph),this.onChange(_.PROPERTY,it.AXIS_PATH_POSITION,t)}}else{let t=n.element?n.element:U(this,i);if(!t)return void console.warn("Cannot create a "+e+" axis for "+i);let r=H(t.parent);if(!r.layout)return void console.warn("Cannot create a "+e+" axis for "+i);let o=G(r);for(let t of o){let r=[];t.layout.type==Q.GRID&&t.layout.numRows>1&&"x"==e?r=t.layout.getElementsByRow():t.layout.type==Q.GRID&&t.layout.numCols>1&&"y"==e?r=t.layout.getElementsByCol():r.push(t.children);for(let o of r){let r=new sr(o,e,i,n);this.addChild(r),s.push(r),t.layout.addRefElement(r),_t(r,this._depGraph),ht(this,r,this._depGraph),this.onChange(_.PROPERTY,it.AXIS_PATH_POSITION,r)}}}return s}legend(e,t,r){let n=r||{},i="rowId"==t?Mt:t,s=n.element?ze(n.element,e):je(i,e,this);if(s){s.attribute!==t&&console.warn("Cannot create a "+e+" legend for "+t);let r="string"===Bt(s.element).getAttributeType(t)?new am(s,n):new lm(s,n);this.addChild(r),function(e,t){let r=t.getVariable(_.BOUNDS,e),n=t.getVariable(_.PROPERTY,it.LEGEND_POSITION,e),i=t.getIncomingDataflowOperator(f.EVAL_BBOX,r);t.connect(n,i),t.connect(i,r)}(r,this._depGraph),ht(this,r,this._depGraph),I(r),this.onChange(_.PROPERTY,it.LEGEND_POSITION,r)}else console.warn("Cannot create a "+e+" legend for "+i)}setLayout(e,t){if(e.layout&&(ft(e,e.layout,this._depGraph),t.type===Q.TREEMAP)){let t=e.firstChild;for(;t&&t.type===Lt.Collection&&t.layout;)ft(t,t.layout,this._depGraph),t=t.firstChild}if(G(e).forEach((e=>{let r=t?t.clone():t;e._layout=r,r&&(r.group=e)})),pt(e,t,this._depGraph),e.children&&e.children.length>0){let t=Z(e,!0);for(let e of t)this.onChange(_.CHANNEL,"x",e)}}setProperties(e,t,r){let n=r?[e]:G(e);n.forEach((e=>{for(const[r,n]of Object.entries(t))Ke(e,r,n)})),"width"in t&&n.forEach((e=>e._refBounds.setWidth(t.width))),"height"in t&&n.forEach((e=>e._refBounds.setHeight(t.height)));for(let r in t)["vertex","segment"].includes(e.type)&&!["x","y"].includes(r)||(Object.values(Be).includes(r)?this.onChange(_.CHANNEL,r,e):this.onChange(_.PROPERTY,r,e))}setLayoutParameters(e,t){let r=G(e);for(let e of r)for(let r in t)e.layout[r]=t[r];this.onChange(_.CHANNEL,"width",e.firstChild)}sortChildren(e,t,r,n){if(e instanceof mt)nm(e,t,r,n),this.onChange(_.ORDER,e);else if(e instanceof ce){let i=G(e);for(let e of i)im(e,t,r,n)}}findElements(e){return F(this,e)}translate(e,t,r){Xe(e,t,r);let n=Z(e,!0);for(let e of n)I(e);for(let e of n)this.onChange(_.CHANNEL,"x",e)}transform(e,t,r){let n=t.clone();switch(e){case"bin":!function(e,t,r,n,i){let s=i.getVariable(_.ATTRIBUTE,e,r),o=i.getVariable(_.ATTRIBUTE,t,n),a=i.createOneWayDependency(f.BIN_TRANSFORMER);i.connect(s,a),i.connect(a,o),a.run()}(r.attribute,r.newAttribute,t,n,this._depGraph);break;case"filter":!function(e,t,r,n){let i=n.getVariable(_.ITEMS,void 0,t),s=n.getVariable(_.ITEMS,e,r),o=n.createOneWayDependency(f.FILTER_TRANSFORMER);n.connect(i,o),n.connect(o,s),o.run()}(c(r),t,n,this._depGraph);break;case"kde":!function(e,t,r,n,i,s){let o=s.getVariable(_.ATTRIBUTE,e,r),a=s.getVariable(_.ATTRIBUTE,t,n),l=s.createOneWayDependency(f.KDE_TRANSFORMER);l.args=i,s.connect(o,l),s.connect(l,a),l.run()}(r.attribute,r.newAttribute,t,n,r,this._depGraph)}return n}}function vm(e,t){let r=new ve(t.tables[e.dt]);for(let t in e.attr2value)r._attr2value[t]=e.attr2value[t],r._updateTuples(t,e.attr2value[t]);return r}class xm extends J{constructor(e){super(),this.type=Q.DIRECTED,this._width="width"in e?e.width:500,this._height="height"in e?e.height:300,this._top="top"in e?e.top:0,this._left="left"in e?e.left:0,this._edgeSep="edgeSep"in e?e.edgeSep:50,this._spreadLinks=!("spreadLinks"in e)||e.spreadLinks,this._direction="direction"in e?e.direction:se.Top2Bottom}clone(){return new xm({width:this._width,height:this._height,top:this._top,left:this._left,edgeSep:this._edgeSep,spreadLinks:this._spreadLinks,direction:this._direction})}get width(){return this._width}get height(){return this._height}get top(){return this._top}get left(){return this._left}get edgeSep(){return this._edgeSep}get spreadLinks(){return this._spreadLinks}get direction(){return this._direction}}class Em extends J{constructor(e){super(),this.type=Q.FORCE,this._x="x"in e?e.x:0,this._y="y"in e?e.y:0,this._iterations="iterations"in e?e.iterations:1,this._repulsion="repulsion"in e?e.repulsion:30,this._attraction="attraction"in e?e.attraction:1,this._linkDistance="linkDistance"in e?e.linkDistance:30}clone(){return new Em({x:this._x,y:this._y,iterations:this._iterations,repulsion:this._repulsion,attraction:this._attraction,linkDistance:this._linkDistance})}}class wm extends J{constructor(e){super(),this.type=Q.PACKING,this._x="x"in e?e.x:400,this._y="y"in e?e.y:400,this._width=e.width,this._height=e.height}clone(){return new wm({x:this._x,y:this._y,width:this._width,height:this._height})}}class Am extends J{constructor(e){super(),this.type=Q.TIDYTREE,this._width="width"in e?e.width:500,this._height="height"in e?e.height:500,this._left="left"in e?e.left:100,this._top="top"in e?e.top:100,this._orientation="orientation"in e?e.orientation:ie.HORIZONTAL}get width(){return this._width}get height(){return this._height}get top(){return this._top}get left(){return this._left}get orientation(){return this._orientation}clone(){return new Am({width:this._width,height:this._height,top:this._top,left:this._left,orientation:this._orientation})}}class Cm extends J{constructor(e){super(),this.type=Q.TREEMAP,this._width=e.width,this._height=e.height,this._left=e.left,this._top=e.top}get width(){return this._width}get height(){return this._height}get top(){return this._top}get left(){return this._left}clone(){return new Cm({width:this._width,height:this._height,top:this._top,left:this._left})}}function Rm(e){switch(e.type){case Q.GRID:return function(e){let t=new sm(e.args);return t._left=e.left,t._top=e.top,t._cellBounds=e.cellBounds.map((e=>km(e))),t._grid=e.grid,t}(e);case Q.STACK:return function(e){let t=new Qy(e.args);return t}(e);case Q.PACKING:return function(e){let t=new wm(e.args);return t}(e);case Q.FORCE:return function(e){return new Em(e.args)}(e);case Q.DIRECTED:return function(e){return new xm(e.args)}(e);case Q.TIDYTREE:return function(e){return new Am(e.args)}(e);case Q.TREEMAP:return function(e){return new Cm(e.args)}(e);case Q.STRATA:return function(e){return new hm(e.args)}(e);default:return void console.warn("unsupported layout type for deserialization:",e.type)}}function km(e){return new k(e.x-e.width/2,e.y-e.height/2,e.width,e.height)}function Tm(e,t){e.type===Lt.Pie&&(e.type=Lt.Arc),e.args.type=e.type;let r=Tt(e.args);return e.id&&(r._id=e.id),e.classId&&(r._classId=e.classId),e.dataScope&&(r._dataScope=vm(e.dataScope,t)),e.bounds&&(r._bounds=km(e.bounds)),e.refBounds&&(r._refBounds=km(e.refBounds)),function(e,t,r){if(e.vertices){const n=[];for(let i of e.vertices){const e=Sm(i,t,r);n.push(e)}t.vertices=n,t.segments=[];let i=0;for(let e=1;e<t.vertices.length;e++)t.segments.push(new ue(t.vertices[e-1],t.vertices[e],t,i++));t.type===Lt.Rect&&t.segments.push(new ue(t.vertices[t.vertices.length-1],t.vertices[0],t,i++))}t.vertexCounter=e.vertexCounter,t.segmentCounter=e.segmentCounter,t.curveMode=e.curveMode}(e,r,t),r}function Sm(e,t,r){let n=new le(e.x,e.y,t,e.id);return e.dataScope&&(n._dataScope=vm(e.dataScope,r)),"polarAngle"in e&&(n._polarAngle=e.polarAngle),n.shape=e.shape,n.width=e.width,n.height=e.height,n.radius=e.radius,n.fillColor=e.fillColor,n.opacity=e.opacity,n.strokeWidth=e.strokeWidth,n.strokeColor=e.strokeColor,n}function Om(e){let t={};t.fillColor=e.fillColor;let r=new bm(t),n={};if(e.tables)for(let t in e.tables){let r=e.tables[t];n[t]=new Dt(r.data,r.url,r.attributeTypes),n[t]._id=r.id}r.tables=n;let i={};if(e.scales)for(let t in e.scales)i[t]=Vm(e.scales[t]);if(r.scales=i,Lm(e,r,r),Nm(e,r),e.encodings)for(let t of e.encodings)r._addAttributeEncoding(Pm(t,r));return delete r.tables,delete r.scales,r._bounds=km(e.bounds),r}function Im(e,t,r){if(e.type===Lt.Collection){let n=St(r);t.addChild(n),Lm(e,n,r),r._itemMap[n.id]=n}else if(e.type===Lt.Glyph){let n=Ot();t.addChild(n),Lm(e,n,r),r._itemMap[n.id]=n}else if(e.type===Lt.Composite){let n=new um;t.addChild(n),Lm(e,n,r),r._itemMap[n.id]=n,n._bounds=km(e.bounds)}else if(Object.values(M).includes(e.type)){let n=Tm(e,r);r._itemMap[n.id]=n,t.addChild(n)}}function Nm(e,t){if(e.children)for(let r of e.children)Nm(r,t);else if(Object.values(M).includes(e.type)){let r=t._itemMap[e.id];e.links&&(r.links=e.links.map((e=>t._itemMap[e]))),e.source&&(r.source=t._itemMap[e.source]),e.target&&(r.target=t._itemMap[e.target])}}function Lm(e,t,r){if(e.id&&(t._id=e.id),e.classId&&(t._classId=e.classId),e.dataScope&&(t._dataScope=vm(e.dataScope,r)),t._bounds=km(e.bounds),e.layout&&(t._layout=Rm(e.layout),t._layout.group=t),t._sortBy=e.sortBy,e.children)for(let n of e.children)Im(n,t,r)}function Vm(e){let t=new Xt(e.type,e.args);return t._id=e.id,t.domain=e.domain,t.range=e.range,t}function Pm(e,t){let r=function(e,t,r){if("vertex"===t){let t=e.split("_v_");return r._itemMap[t[0]].vertices.find((e=>e._id===parseInt(t[1])))}if("segment"===t){let t=e.split("_s_");return r._itemMap[t[0]].segments.find((e=>e._id===parseInt(t[1])))}return r._itemMap[e]}(e.element,e.elementType,t);r||console.warn("element not created:",e.element,e.elementType);let n=new Zy(r,e.channel,e.attr,e.aggregator,e.args);if(e.scales&&(n._scales=e.scales.map((e=>t.scales[e]))),e.elemGroups&&(n._elemGroups=e.elemGroups.map((e=>e.map((e=>t._itemMap[e]))))),e.elem2scale){n._elem2scale={};for(let r in e.elem2scale)n._elem2scale[r]=t.scales[e.elem2scale[r]]}return e.args.startAngle&&(n.startAngle=e.args.startAngle),n}function Dm(e){let t={};return t.id=e._id,t.data=e._rawData,t.attributeTypes=e._attrTypes,t.url=e.url,t}function Bm(e){let t={};return t.dt=e._dt.id,t.attr2value=Object.assign({},e._attr2value),t}function Mm(e,t){t.vertices=[];for(let r of e.vertices)t.vertices.push(Gm(r));t.vertexCounter=e.vertexCounter,t.segmentCounter=e.segmentCounter,t.curveMode=e.curveMode}function Gm(e){let t={};return t.type=e.type,t.id=e._id,t.x=e.x,t.y=e.y,e._dataScope&&(t.dataScope=Bm(e._dataScope)),void 0!==e._polarAngle&&(t.polarAngle=e._polarAngle),t.shape=e.shape,t.width=e.width,t.height=e.height,t.radius=e.radius,t.fillColor=e.fillColor,t.opacity=e.opacity,t.strokeWidth=e.strokeWidth,t.strokeColor=e.strokeColor,t}function jm(e){return e.type===Lt.Scene?function(e){let t=Um(e,{});t.fillColor=e.fillColor,t.scales={},t.encodings=[];for(let r in e._encodings)for(let n in e._encodings[r]){let i=e._encodings[r][n];i._forLegend||t.encodings.push(Fm(i));for(let e of i._scales)e.id in t.scales||(t.scales[e.id]=zm(e))}t.tables={};let r=function(e){let t={};for(let r in e._encodings)for(let n in e._encodings[r]){let i=e._encodings[r][n];i.dataTable.id in t||i._forLegend||(t[i.dataTable.id]=i.dataTable)}for(let r of e.children)if(![Lt.Axis,Lt.Legend,Lt.Gridlines].includes(r.type)){if(r.dataScope){t[r.dataScope.dataTable.id]=r.dataScope.dataTable;break}if(r.children&&r.children.length>0){let e=r.firstChild;for(;e;){if(e.dataScope){t[e.dataScope.dataTable.id]=e.dataScope.dataTable;break}e=e.children&&e.children.length>0?e.firstChild:void 0}}}return t}(e);for(let e in r)t.tables[e]=Dm(r[e]);return console.log(t.tables),t}(e):e instanceof mt?Um(e,{}):e instanceof D?function(e){let t={args:{}};t.type=e.type,t.id=e.id,e.classId&&(t.classId=e.classId),e._dataScope&&(t.dataScope=Bm(e._dataScope)),e.bounds&&(t.bounds=e.bounds.toJSON()),e.refBounds&&(t.refBounds=e.refBounds.toJSON()),e.links&&(t.links=e.links.map((e=>e.id))),e.source&&(t.source=e.source.id),e.target&&(t.target=e.target.id);for(let r in e.styles)r.indexOf("Color")>0&&e.styles[r]instanceof P?t.args[r]=e.styles[r].toJSON():t.args[r]=e.styles[r];switch(e.type){case Lt.Arc:case Lt.Pie:!function(e,t){t.args.x=e._x,t.args.y=e._y,t.args.innerRadius=e._innerRadius,t.args.outerRadius=e._outerRadius,t.args.startAngle=e._startAngle,t.args.endAngle=e._endAngle,t.args.direction=e._direction,t.args.thickness=e._thickness}(e,t),Mm(e,t);break;case Lt.Area:!function(e,t){t.args.baseline=e._baseline,t.args.orientation=e._orientation}(e,t),Mm(e,t);break;case Lt.Circle:!function(e,t){t.args.x=e.x,t.args.y=e.y,t.args.radius=e.radius}(e,t);break;case Lt.Image:break;case Lt.Line:case Lt.Path:case Lt.BezierCurve:Mm(e,t);break;case Lt.PointText:!function(e,t){t.args.x=e._x,t.args.y=e._y,t.args.text=e._text,t.args.anchor=e._anchor}(e,t);break;case Lt.Polygon:!function(e,t){t.args.x=e._x,t.args.y=e._y,t.args.radius=e._radius}(e,t),Mm(e,t);break;case Lt.Rect:!function(e,t){t.args.width=e.width,t.args.height=e.height,t.args.top=e.top,t.args.left=e.left}(e,t),Mm(e,t);case Lt.Ring:}return t}(e):(console.warn("unsupported serialization",e.type),{type:e.type})}function zm(e){let t={};return t.type=e.type,t.id=e.id,e._args&&(t.args=e._args),t.domain=e.domain,t.range=e.range,t}function Fm(e){let t={};t.element=e._elem.id,t.elementType=e._elem.type,e.attrValues&&(t.attrValues=e.attrValues),t.channel=e._channel,t.attr=e._attribute,t.aggregator=e._aggregator,t.args={},t.args.includeZero=e._includeZero,t.args.flipScale=e._flipScale,t.args.mapping=e._mapping,t.args.rangeExtent=e._preferredRangeExtent,t.args.domain=e._preferredDomain,t.args.scaleType=e._scaleType,t.args.scheme=e._colorScheme,t.scales=e._scales.map((e=>e.id)),t.elemGroups=e._elemGroups.map((e=>e.map((e=>e.id)))),t.elem2scale={};for(let r in e._elem2scale)t.elem2scale[r]=e._elem2scale[r].id;return t.refElements=e._refElements.map((e=>e.id)),"angle"==e.channel&&(t.args.startAngle=e.startAngle),t}function Um(e,t){if(t.id=e.id,t.type=e.type,e.classId&&(t.classId=e.classId),e._dataScope&&(t.dataScope=Bm(e._dataScope)),t.bounds=e.bounds.toJSON(),e._layout&&(t.layout=function(e){switch(e.type){case Q.GRID:return function(e){let t={args:{}};return t.type=e.type,t.args.numCols=e._numCols,t.args.numRows=e._numRows,t.args.start=e._start,t.args.direction=e._direction,t.args.colGap=e._colGap,t.args.rowGap=e._rowGap,t.args.horzCellAlignment=e._cellHorzAlignment,t.args.vertCellAlignment=e._cellVertAlignment,t.left=e._left,t.top=e._top,t.cellBounds=e._cellBounds.map((e=>e.toJSON())),t.group=e.group.id,t.grid=e._grid,t}(e);case Q.STACK:return function(e){let t={args:{}};return t.type=e.type,t.args.orientation=e._orientation,t.args.direction=e._direction,t.args.left=e._left,t.args.top=e._top,t.args.horzCellAlignment=e._horzCellAlignment,t.args.vertCellAlignment=e._vertCellAlignment,t.args.gap=e._gap,t.group=e.group.id,t}(e);case Q.PACKING:return function(e){let t={args:{}};return t.type=e.type,t.args.x=e._x,t.args.y=e._y,t.args.width=e._width,t.args.height=e._height,t.group=e.group.id,t}(e);case Q.FORCE:return function(e){let t={args:{}};return t.type=e.type,t.args.x=e._x,t.args.y=e._y,t.args.iterations=e._iterations,t.args.repulsion=e._repulsion,t.args.attraction=e._attraction,t.args.linkDistance=e._linkDistance,t.group=e.group.id,t}(e);case Q.CLUSTER:return function(e){let t={args:{}};return t.type=e.type,t.args.size=e._size,t.args.rootX=e._rootX,t.args.rootY=e._rootY,t}(e);case Q.DIRECTED:return function(e){let t={args:{}};return t.type=e.type,t.args.left=e._left,t.args.top=e._top,t.args.width=e._width,t.args.height=e._height,t.args.edgeSep=e._edgeSep,t.args.spreadLinks=e._spreadLinks,t.args.direction=e._direction,t}(e);case Q.TIDYTREE:return function(e){let t={args:{}};return t.type=e.type,t.args.left=e._left,t.args.top=e._top,t.args.width=e._width,t.args.height=e._height,t.args.orientation=e._orientation,t}(e);case Q.TREEMAP:return function(e){let t={args:{}};return t.type=e.type,t.args.left=e._left,t.args.top=e._top,t.args.width=e._width,t.args.height=e._height,t}(e);case Q.STRATA:return function(e){let t={args:{}};return t.type=e.type,t.args.direction=e._direction,t.args.gap=e._gap,t}(e);default:throw new Error("unknow layout type "+e.type)}}(e._layout)),t.children=[],e.children.length>0)for(let r of e.children)t.children.push(jm(r));return t.sortBy=e._sortBy,t}function Hm(e,t){return void 0===e&&void 0===t||void 0!==e&&void 0!==t}function Wm(e,t){const r=Object.keys(e),n=Object.keys(t);return r.length===n.length&&(0===r.length||r.every((e=>n.includes(e))))}function Ym(e,t){if(!Hm(e.layout,t.layout))return console.log("Not both defined or undefined:",e.bounds,t.bounds),!1;let r=e.layout,n=t.layout;if(!r&&!n)return!0;if(r.type!==n.type)return console.log("layout types are different:",r,n),!1;switch(r.type){case Q.GRID:return function(e,t){e._cellBounds.length!==t._cellBounds.length&&console.log("cell bounds length different:",e,t);for(let r=0;r<e._cellBounds;r++)if(!qm(e._cellBounds[r],t._cellBounds[r]))return console.log("cell bounds not equal:",e,t),!1;for(let r=0;r<e._grid.length;r++)for(let n=0;n<e._grid[r].length;n++)if(e._grid[r][n]!==t._grid[r][n])return console.log("grid not equal",e,t),!1;return e._numCols===t._numCols&&e._numRows===t._numRows&&e._start===t._start&&e._direction===t._direction&&e._rowGap===t._rowGap&&e._colGap===t._colGap&&e._cellHorzAlignment===t._cellHorzAlignment&&e._cellVertAlignment===t._cellVertAlignment&&e._left===t._left&&e._top===t._top}(r,n);case Q.STACK:return function(e,t){return e._orientation===t._orientation&&e._direction===t._direction&&e._left===t._left&&e._top===t._top&&e._horzCellAlignment===t._horzCellAlignment&&e._vertCellAlignment===t._vertCellAlignment&&e._gap===t._gap}(r,n);case Q.PACKING:return function(e,t){return e._x===t._x&&e._y===t._y&&e._width===t._width&&e._height===t._height}(r,n);case Q.FORCE:return function(e,t){return e._x===t._x&&e._y===t._y&&e._iterations===t._iterations&&e._repulsion===t._repulsion&&e._attraction===t._attraction&&e._linkDistance===t._linkDistance}(r,n);case Q.DIRECTED:return function(e,t){return e._width===t._width&&e._height===t._height&&e._top===t._top&&e._left===t._left&&e._edgeSep===t._edgeSep&&e._spreadLinks===t._spreadLinks&&e._direction===t._direction}(r,n);case Q.TIDYTREE:return function(e,t){return e._width===t._width&&e._height===t._height&&e._top===t._top&&e._left===t._left&&e._orientation===t._orientation}(r,n);case Q.STRATA:return function(e,t){return e._direction===t._direction&&e._gap===t._gap}(r,n);case Q.TREEMAP:return function(e,t){return e._width===t._width&&e._height===t._height&&e._top===t._top&&e._left===t._left}(r,n);default:return!1}}function Xm(e,t){if(!Hm(e.bounds,t.bounds))return console.log("Not both defined or undefined:",e.bounds,t.bounds),!1;let r=e.bounds,n=t.bounds;return!r&&!n||qm(r,n)}function qm(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Km(e,t){if(!Hm(e,t))return console.log("Not both defined or undefined:",e,t),!1;if(e.type!==t.type)return console.log("Different mark types:",e,t),!1;if(e.id!==t.id)return console.log("id not equal:",e,t),!1;if(e.classId!==t.classId)return console.log("class id not equal:",e,t),!1;if(!$m(e,t))return console.log("DataScopes not equal",e,t),!1;if(!Xm(e,t))return console.log("Bounds not equal",e,t),!1;if(!Hm(e.links,t.links))return console.log("Not both defined or undefined: links ",e.links,t.links),!1;if(!Hm(e.source,t.source))return console.log("Not both defined or undefined: source ",e.source,t.source),!1;if(!Hm(e.target,t.target))return console.log("Not both defined or undefined: links ",e.target,t.target),!1;if(e.links&&t.links&&e.links.length!==t.links.length)return console.log("unequal number of links",e,t),!1;if(e.source&&t.source&&!Km(e.source,t.source))return console.log("different sources",e.source,t.source),!1;if(e.target&&t.target&&!Km(e.target,t.target))return console.log("different targets",e.target,t.target),!1;switch(e.type){case Lt.Arc:case Lt.Pie:return Zm(e,t)?e.x===t.x&&e.y===t.y&&e.innerRadius===t.innerRadius&&e.outerRadius===t.outerRadius&&e.startAngle===t.startAngle&&e.endAngle===t.endAngle&&e.direction===t.direction&&e.thickness===t.thickness:(console.log("vertices not equal:",e,t),!1);case Lt.Area:return Zm(e,t)?e.baseline===t.baseline&&e.orientation===t.orientation:(console.log("vertices not equal:",e,t),!1);case Lt.Circle:return e.x===t.x&&e.y===t.y&&e.radius===t.radius;case Lt.Image:return console.warn("not implemented"),!0;case Lt.Line:case Lt.Path:case Lt.BezierCurve:return!!Zm(e,t)||(console.log("vertices not equal:",e,t),!1);case Lt.PointText:return e.x===t.x&&e.y===t.y&&e.text===t.text&&e.anchor[0]===t.anchor[0]&&e.anchor[1]===t.anchor[1];case Lt.Polygon:return Zm(e,t)?e.x===t.x&&e.y===t.y&&e.radius===t.radius:(console.log("vertices not equal:",e,t),!1);case Lt.Rect:return Zm(e,t)?e.width===t.width&&e.height===t.height&&e.top===t.top&&e.left===t.left:(console.log("vertices not equal:",e,t),!1);case Lt.Ring:default:return console.warn("not implemented"),!0}}function Zm(e,t){if(e.vertices.length!==t.vertices.length)return console.log("unequal number of vertices:",e,t),!1;for(let r=0;r<e.vertices.length;r++){let n=e.vertices[r],i=t.vertices[r];return n.id!==i.id?(console.log("vertex id not equal:",n,i),!1):n.x!==i.x||n.y!==i.y?(console.log("vertex position not equal:",n,i),!1):$m(n,i)?n._polarAngle===i._polarAngle&&n.shape===i.shape&&n.width===i.width&&n.height==i.height&&n.radius==i.radius&&n.fillColor==i.fillColor&&n.opacity==i.opacity&&n.strokeWidth==i.strokeWidth&&n.strokeColor==i.strokeColor:(console.log("vertex data scopes not equal:",n.dataScope,i.dataScope),!1)}}function $m(e,t){if(!Hm(e.dataScope,t.dataScope))return console.log("Not both defined or undefined:",e.dataScope,t.dataScope),!1;if(!e.dataScope&&!t.dataScope)return!0;let r=e.dataScope,n=t.dataScope;if(!Wm(r._attr2value,n._attr2value))return!1;for(let e in r._attr2value)if(r._attr2value[e]!==n._attr2value[e])return!1;return r._dt.id===n._dt.id&&r._tuples.length===n._tuples.length}function Jm(e,t){return e.type!==t.type&&console.log("Different types:",e.type,t.type),[Lt.Collection,Lt.Glyph,Lt.Composite].includes(e.type)?Qm(e,t):e instanceof D?Km(e,t):void 0}function Qm(e,t){let r=e.children.filter((e=>!Object.values(Vt).includes(e.type))),n=t.children.filter((e=>!Object.values(Vt).includes(e.type)));if(r.length!==n.length)return console.log("children length not equal:",r,n),!1;if(e.id!==t.id)return console.log("id not equal:",e,t),!1;if(e.classId!==t.classId)return console.log("class id not equal:",e,t),!1;if(!$m(e,t))return console.log("DataScopes not equal",e.dataScope,t.dataScope),!1;if(!Xm(e,t))return console.log("Bounds not equal",e,t),!1;if(!Ym(e,t))return console.log("Layouts not equal",e,t),!1;if(!function(e,t){if(!Wm(e,t))return console.log("different keys",e,t),!1;for(let r in e)if(e[r]!==t[r])return!1;return!0}(e._sortBy,t._sortBy))return console.log("SortBy not equal",e,t),!1;for(let e=0;e<r.length;e++)if(!Jm(r[e],n[e]))return console.log("Not equal",r[e],n[e]),!1;return!0}class eb extends J{constructor(e){super(),this.type=Q.CIRCULAR,this._x="x"in e?e.x:100,this._y="y"in e?e.y:100,this._radius="radius"in e?e.radius:100}get x(){return this._x}get y(){return this._y}get radius(){return this._radius}clone(){return new eb({x:this._x,y:this._y,radius:this._radius})}}class tb extends J{constructor(e){super(),this.type=Q.CLUSTER,this._isRadial="radial"in e&&e.radial,this._angleExtent="angleExtent"in e?e.angleExtent:360,this._radius="radius"in e?e.radius:300,this._rootX="x"in e?e.x:300,this._rootY="y"in e?e.y:300,this._orientation="orientation"in e?e.orientation:ie.HORIZONTAL,this._width="width"in e?e.width:800,this._height="height"in e?e.height:600,this._left="left"in e?e.left:60,this._top="top"in e?e.top:100,this._tree="tree"in e?e.tree:void 0}get radius(){return this._radius}get angleExtent(){return this._angleExtent}get x(){return this._rootX}get y(){return this._rootY}get width(){return this._width}get height(){return this._height}get left(){return this._left}get top(){return this._top}isRadial(){return this._isRadial}get orientation(){return this._orientation}clone(){return new tb({radius:this._radius,angleExtent:this._angleExtent,x:this._rootX,y:this._rootY,radial:this._isRadial,orientation:this._orientation,left:this._left,top:this._top,width:this._width,height:this._height,tree:this._tree})}}e.csv=async function(e){return async function(e){let t=await Gt("GET",e),r=n.csvParse(t.trim(),n.autoType);return new Dt(r,e)}(e)},e.deserialize=function(e){return Om(e)},e.graphJSON=async function(e){return async function(e){let t=await Gt("GET",e);return new Ce(JSON.parse(t),e)}(e)},e.isEqual=function(e,t){return function(e,t){return e.fillColor!==t.fillColor?(console.log("fillColor not equal:",e,t),!1):Qm(e,t)}(e,t)},e.layout=function(e,t){let r=t||{};switch(e.toLowerCase()){case Q.STACK:return new Qy(r);case Q.PACKING:return new wm(r);case Q.FORCE:return new Em(r);case Q.DIRECTED:return new xm(r);case Q.TIDYTREE:return new Am(r);case Q.TREEMAP:return new Cm(r);case Q.CIRCULAR:return new eb(r);case Q.CLUSTER:return new tb(r);case Q.GRID:default:return new sm(r)}},e.renderer=function(e,t){return new L(t)},e.scene=function(e){return new bm(e)},e.serialize=function(e){return jm(e)},e.treeJSON=async function(e){return async function(e){let t=await Gt("GET",e);return new we(JSON.parse(t),e)}(e)},Object.defineProperty(e,"__esModule",{value:!0})}));
|