-
✘✘✘ WIBUHAX0R1337 ✘✘✘
-
✘
PATCH :
/
var
/
www
/
clients
/
client4
/
web4
/
web
/
ris
/
includes
/
amcharts4
/
plugins
/
Upload File:
files >> /var/www/clients/client4/web4/web/ris/includes/amcharts4/plugins/venn.js.map
{"version":3,"sources":["webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/schedule.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/interrupt.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-color/src/define.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-color/src/color.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-color/src/math.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-color/src/lab.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-color/src/cubehelix.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/basis.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/constant.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/color.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/rgb.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/basisClosed.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/date.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/number.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/string.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/transform/parse.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/transform/decompose.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/transform/index.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/zoom.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/hsl.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/hcl.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/cubehelix.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/tween.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/interpolate.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/remove.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/selection.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/style.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/textTween.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/index.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/select.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/selectAll.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/filter.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/merge.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/transition.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/on.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/attr.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/attrTween.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/styleTween.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/text.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/delay.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/duration.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/ease.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/end.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/poly.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/sin.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/back.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/elastic.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/selection/transition.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/cubic.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/selection/index.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/selection/interrupt.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/active.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/index.js","webpack:///../../../../../src/.internal/plugins/venn/VennDiagram.ts","webpack:///../../../../../src/.internal/plugins/venn/VennSeries.ts","webpack:///./plugins/venn.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/namespaces.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/namespace.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/creator.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selector.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selectorAll.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/matcher.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/sparse.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/enter.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/constant.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/data.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/sort.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/attr.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/window.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/style.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/classed.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/text.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/html.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/raise.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/lower.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/insert.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/remove.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/clone.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/on.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/dispatch.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/index.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/select.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/selectAll.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/filter.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/exit.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/join.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/merge.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/order.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/call.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/nodes.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/node.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/size.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/empty.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/each.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/property.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/append.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/datum.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/select.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/create.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/local.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/sourceEvent.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/point.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/mouse.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selectAll.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/touch.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/touches.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/index.js","webpack:///C:/Dropbox/www/amcharts4dev/node_modules/venn.js/build/venn.js"],"names":["emptyOn","Object","d3_dispatch_src","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","transition_schedule","node","name","id","index","group","timing","schedules","__transition","self","tween","start","elapsed","i","j","n","o","state","stop","d3_timer_src","timer","on","call","__data__","restart","tick","delay","time","Array","length","value","t","duration","ease","create","init","schedule","get","Error","set","interrupt","active","empty","define","constructor","factory","prototype","extend","parent","definition","key","Color","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","this","rgb","formatHex","color_formatRgb","formatRgb","color_color","format","m","l","trim","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","hasOwnProperty","NaN","r","g","b","a","rgbConvert","opacity","color_rgb","arguments","rgb_formatHex","hex","rgb_formatRgb","isNaN","Math","max","min","round","toString","h","s","Hsl","hslConvert","hsl","hsl2rgb","m1","m2","copy","channels","assign","displayable","formatHsl","brighter","k","pow","darker","deg2rad","PI","rad2deg","Xn","Yn","Zn","t0","t1","t2","t3","labConvert","Lab","Hcl","hcl2lab","x","z","rgb2lrgb","y","xyz2lab","lab","lab2xyz","lrgb2rgb","hclConvert","c","atan2","sqrt","hcl","cos","sin","A","B","C","D","E","ED","EB","BC_DA","cubehelix_cubehelix","Cubehelix","bl","cubehelixConvert","basis","v0","v1","v2","v3","cosh","sinh","constant","linear","d","color_hue","gamma","nogamma","exponential","src_rgb","rgbGamma","color","end","rgbSpline","spline","colors","values","floor","number","reA","reB","source","cssNode","cssRoot","cssView","svgNode","string","am","bm","bs","bi","lastIndex","q","slice","push","one","zero","join","degrees","identity","translateX","translateY","rotate","skewX","scaleX","scaleY","decompose","e","f","atan","interpolateTransform","parse","pxComma","pxParen","degParen","pop","xa","ya","xb","yb","translate","scale","interpolateTransformCss","document","createElement","documentElement","defaultView","style","transform","getComputedStyle","appendChild","getPropertyValue","removeChild","split","interpolateTransformSvg","createElementNS","setAttribute","baseVal","consolidate","matrix","SQRT2","hsl_hsl","hue","hcl_hcl","src_cubehelix_cubehelix","cubehelixGamma","cubehelix","tweenValue","transition","_id","each","apply","transition_interpolate","Selection","src","styleRemove","removeProperty","transition_id","Transition","groups","parents","_groups","_parents","_name","src_transition_transition","newId","selection_prototype","select","subgroups","subnode","subgroup","selectAll","child","children","inherit","filter","match","merge","groups0","groups1","m0","merges","group0","group1","selection","id0","id1","nodes","size","listener","on0","on1","sit","every","indexOf","on_start","onFunction","attr","fullname","attrTween","local","interpolate","string00","string10","interpolate0","string0","string1","value1","getAttributeNS","space","removeAttributeNS","getAttribute","removeAttribute","_value","i0","setAttributeNS","attrInterpolateNS","attrInterpolate","priority","styleTween","styleNull","styleFunction","listener0","remove","event","undefined","styleMaybeRemove","styleConstant","setProperty","styleInterpolate","text","textContent","textFunction","textConstant","textTween","textInterpolate","parentNode","removeFunction","tween0","tween1","splice","easeConstant","that","Promise","resolve","reject","cancel","_","custom","polyIn","exponent","polyOut","polyInOut","backIn","overshoot","backOut","backInOut","tau","defaultTiming","p","asin","elasticIn","amplitude","period","elasticOut","elasticInOut","transition_inherit","root","src_active","__webpack_require__","__webpack_exports__","VennDiagram_VennDiagramDataItem","_super","VennDiagramDataItem","_this","className","applyTheme","tslib_es6","PercentChart","VennDiagram_VennDiagram","VennDiagram","seriesContainer","layout","padding","applyInternalDefaults","Type","readerTitle","language","setLegend","legend","valueLabels","template","disabled","Registry","registeredClasses","VennSeries_VennSeriesDataItem","VennSeriesDataItem","radius","events","component","defineProperty","properties","intersections","hide","toValue","fields","dataItems","dataItem","category","show","animateRadius","easing","animation","animate","property","to","_disposers","path","Path","isHover","updateHoverSprite","PercentSeries","VennSeries_VennSeries","VennSeries","width","Percent","height","slicesContainer","slices","strokeWidth","stroke","vennData","invalidateDataItems","labelsContainer","itemReaderText","hoverSprite","createChild","Sprite","strokeOpacity","InterfaceColorSet","getFor","strokeDasharray","zIndex","Number","MAX_VALUE","interactionsEnabled","fill","strokeDashoffset","hs","states","transitionDuration","target","visible","createSlice","createDataItem","initSlice","isMeasured","tooltipText","initLabel","label","verticalCenter","horizontalCenter","sprite","validateDataElements","labelTemplate","labels","alignLabels","sets","getValue","isHidden","di","getDataItemByCategory","isHiding","newSets","venn","innerWidth","innerHeight","circles_1","name_1","item","interpolationDuration","interpolationEasing","centers_1","i_1","center","cc","intersectionPath","tooltipX","tooltipY","updateLegendValue","propertyFields","window","am4plugins_venn","venn_namespaceObject","xhtml","namespaces","svg","xlink","xml","xmlns","namespace","prefix","creator","ownerDocument","uri","namespaceURI","none","src_selector","selector","querySelector","selectorAll","querySelectorAll","matcher","matches","sparse","update","EnterNode","datum","_next","_parent","insertBefore","next","keyPrefix","bindIndex","enter","exit","data","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","ascending","src_window","styleValue","classArray","classList","ClassList","_node","_names","classedAdd","names","list","add","classedRemove","contains","textRemove","htmlRemove","innerHTML","raise","nextSibling","lower","previousSibling","firstChild","constantNull","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","filterEvents","on_event","mouseenter","mouseleave","filterContextListener","contextListener","related","relatedTarget","compareDocumentPosition","event1","event0","onRemove","typename","__on","type","removeEventListener","capture","onAdd","wrap","addEventListener","customEvent","args","sourceEvent","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","selection_selection","bind","enterGroup","updateGroup","previous","i1","_enter","_exit","map","onenter","onupdate","onexit","append","order","sort","compare","compareNode","sortgroups","sortgroup","callback","v","classed","html","insert","before","deep","typenames","parseTypenames","dispatch","src_selection","src_select","src_create","nextId","Local","current","point","ownerSVGElement","createSVGPoint","clientX","clientY","matrixTransform","getScreenCTM","inverse","rect","getBoundingClientRect","left","clientLeft","top","clientTop","mouse","changedTouches","src_selectAll","src_touch","touches","identifier","touch","src_touches","points","global","exports","d3Selection","d3Transition","SMALL","intersectionArea","circles","stats","intersectionPoints","ret","intersect","circleCircleIntersection","parentIndex","getIntersectionPoints","innerPoints","distance","containedInCircles","arcArea","polygonArea","arcs","getCenter","angle","p2","p1","midPoint","arc","circle","a1","a2","angleDiff","circleArea","smallest","disjoint","abs","area","acos","circleOverlap","r1","r2","w2","x0","y0","rx","ry","zeros","zerosM","dot","norm2","weightedSum","w1","nelderMead","parameters","maxDiff","maxIterations","nonZeroDelta","zeroDelta","minErrorDelta","minTolerance","rho","chi","psi","sigma","N","simplex","fx","updateSimplex","sortOrder","centroid","reflected","contracted","expanded","iteration","history","sortedSimplex","worst","shouldReduce","wolfeLineSearch","pk","c1","c2","phi0","phiPrime0","fxprime","phi","phi_old","phiPrime","a0","zoom","a_lo","a_high","phi_lo","conjugateGradient","initial","temp","yk","alpha","delta_k","areas","setid","initialLayout","bestInitialLayout","loss","lossFunction","ids","pairs","addMissingAreas","setids","positions","SMALL$1","distanceFromIntersectArea","overlap","tolerance","fA","fB","delta","mid","fMid","bisect","distance$$1","greedyLayout","constrained","restarts","matrices","distances","constraints","right","getDistanceMatrices","norm","row","best","obj","xi","yi","xj","yj","dij","constraint","squaredDistance","constrainedMDSGradient","random","constrainedMDSLayout","setOverlaps","rowid","weight","mostOverlapped","positioned","isPositioned","element","positionSet","setIndex","d1","d2","extraPoints","bestLoss","bestPoint","localLoss","overlaps","output","getCircles","indices","orientateCircles","orientation","orientationOrder","largestX","largestY","rotation","slope","disjointCluster","find","union","xRoot","yRoot","maxDistance","disjointClusters","getBoundingBox","minMax","xRange","yRange","normalizeSolution","solution","clusters","bounds","returnBounds","spacing","addCluster","cluster","bottom","xOffset","yOffset","centreing","scaleSolution","console","log","xScaling","yScaling","scaling","scaled","wrapText","labeller","joined","words","reverse","minChars","word","line","lineNumber","tspan","getComputedTextLength","circleMargin","interior","exterior","margin","computeTextCentre","valid","areaStats","getOverlappingCircles","circleids","circleid","computeTextCentres","overlapped","areaids","exclude","centre","circlePath","circleFromPath","tokens","parseFloat","intersectionAreaPath","wide","normalize","styled","fontSize","colourMap","colourScheme","colourIndex","colours","layoutFunction","chart","toremove","forEach","textCentres","some","hasPrevious","pathTween","enterPath","enterText","updateText","exitText","sortAreas","div","relativeTo","check","shouldExclude"],"mappings":"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","file":"./plugins/venn.js","sourcesContent":["import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/schedule.js\n// module id = null\n// module chunks = ","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/interrupt.js\n// module id = null\n// module chunks = ","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-color/src/define.js\n// module id = null\n// module chunks = ","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? new Rgb(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? new Rgb((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-color/src/color.js\n// module id = null\n// module chunks = ","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-color/src/math.js\n// module id = null\n// module chunks = ","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return hcl2lab(this).rgb();\n }\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-color/src/lab.js\n// module id = null\n// module chunks = ","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-color/src/cubehelix.js\n// module id = null\n// module chunks = ","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/basis.js\n// module id = null\n// module chunks = ","export default function(x) {\n return function() {\n return x;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/constant.js\n// module id = null\n// module chunks = ","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/color.js\n// module id = null\n// module chunks = ","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/rgb.js\n// module id = null\n// module chunks = ","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/basisClosed.js\n// module id = null\n// module chunks = ","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/date.js\n// module id = null\n// module chunks = ","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/number.js\n// module id = null\n// module chunks = ","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/string.js\n// module id = null\n// module chunks = ","import decompose, {identity} from \"./decompose.js\";\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/transform/parse.js\n// module id = null\n// module chunks = ","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/transform/decompose.js\n// module id = null\n// module chunks = ","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/transform/index.js\n// module id = null\n// module chunks = ","var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nexport default function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/zoom.js\n// module id = null\n// module chunks = ","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/hsl.js\n// module id = null\n// module chunks = ","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/hcl.js\n// module id = null\n// module chunks = ","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-interpolate/src/cubehelix.js\n// module id = null\n// module chunks = ","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/tween.js\n// module id = null\n// module chunks = ","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/interpolate.js\n// module id = null\n// module chunks = ","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/remove.js\n// module id = null\n// module chunks = ","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/selection.js\n// module id = null\n// module chunks = ","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/style.js\n// module id = null\n// module chunks = ","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/textTween.js\n// module id = null\n// module chunks = ","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n end: transition_end\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/index.js\n// module id = null\n// module chunks = ","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/select.js\n// module id = null\n// module chunks = ","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/selectAll.js\n// module id = null\n// module chunks = ","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/filter.js\n// module id = null\n// module chunks = ","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/merge.js\n// module id = null\n// module chunks = ","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/transition.js\n// module id = null\n// module chunks = ","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/on.js\n// module id = null\n// module chunks = ","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/attr.js\n// module id = null\n// module chunks = ","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/attrTween.js\n// module id = null\n// module chunks = ","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/styleTween.js\n// module id = null\n// module chunks = ","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/text.js\n// module id = null\n// module chunks = ","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/delay.js\n// module id = null\n// module chunks = ","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/duration.js\n// module id = null\n// module chunks = ","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/ease.js\n// module id = null\n// module chunks = ","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/transition/end.js\n// module id = null\n// module chunks = ","var exponent = 3;\n\nexport var polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nexport var polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nexport var polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/poly.js\n// module id = null\n// module chunks = ","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/sin.js\n// module id = null\n// module chunks = ","var overshoot = 1.70158;\n\nexport var backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return t * t * ((s + 1) * t - s);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nexport var backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((s + 1) * t + s) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nexport var backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/back.js\n// module id = null\n// module chunks = ","var tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)\n : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/elastic.js\n// module id = null\n// module chunks = ","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/selection/transition.js\n// module id = null\n// module chunks = ","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-ease/src/cubic.js\n// module id = null\n// module chunks = ","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/selection/index.js\n// module id = null\n// module chunks = ","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/selection/interrupt.js\n// module id = null\n// module chunks = ","import {Transition} from \"./transition/index.js\";\nimport {SCHEDULED} from \"./transition/schedule.js\";\n\nvar root = [null];\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/active.js\n// module id = null\n// module chunks = ","import \"./selection/index.js\";\nexport {default as transition} from \"./transition/index.js\";\nexport {default as active} from \"./active.js\";\nexport {default as interrupt} from \"./interrupt.js\";\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-transition/src/index.js\n// module id = null\n// module chunks = ","/**\r\n * Venn Diagram module.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { PercentChart, IPercentChartProperties, IPercentChartDataFields, IPercentChartAdapters, IPercentChartEvents, PercentChartDataItem } from \"../../charts/types/PercentChart\";\r\nimport { VennSeries } from \"./VennSeries\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { Legend } from \"../../charts/Legend\";\r\nimport * as $type from \"../../core/utils/Type\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[VennDiagram]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class VennDiagramDataItem extends PercentChartDataItem {\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: VennDiagram;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"VennDiagramDataItem\";\r\n\t\tthis.applyTheme();\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[VennDiagram]].\r\n */\r\nexport interface IVennDiagramDataFields extends IPercentChartDataFields { }\r\n\r\n/**\r\n * Defines properties for [[VennDiagram]]\r\n */\r\nexport interface IVennDiagramProperties extends IPercentChartProperties { }\r\n\r\n/**\r\n * Defines events for [[VennDiagram]].\r\n */\r\nexport interface IVennDiagramEvents extends IPercentChartEvents { }\r\n\r\n/**\r\n * Defines adapters for [[VennDiagram]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IVennDiagramAdapters extends IPercentChartAdapters, IVennDiagramProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates a Venn Diagram.\r\n * \r\n * Venn diagram uses Ben Frederickson's [venn.js](https://github.com/benfred/venn.js).\r\n *\r\n * @see {@link IVennDiagramEvents} for a list of available Events\r\n * @see {@link IVennDiagramAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/venn/} for documentation\r\n * @important\r\n * @since 4.9.0\r\n */\r\nexport class VennDiagram extends PercentChart {\r\n\r\n\t/**\r\n\t * Defines available data fields.\r\n\t */\r\n\tpublic _dataFields: IVennDiagramDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IVennDiagramProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IVennDiagramAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IVennDiagramEvents;\r\n\r\n\t/**\r\n\t * Defines a type of series that this chart uses.\r\n\t */\r\n\tpublic _seriesType: VennSeries;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\r\n\t\t// Init\r\n\t\tsuper();\r\n\t\tthis.className = \"VennDiagram\";\r\n\r\n\t\tthis.seriesContainer.layout = \"horizontal\";\r\n\r\n\t\tthis.padding(15, 15, 15, 15);\r\n\r\n\t\t// Apply theme\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\r\n\t\tsuper.applyInternalDefaults();\r\n\r\n\t\t// Add a default screen reader title for accessibility\r\n\t\t// This will be overridden in screen reader if there are any `titles` set\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Venn Diagram\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected setLegend(legend: Legend) {\r\n\t\tsuper.setLegend(legend);\r\n\t\tif (legend) {\r\n\t\t\tlegend.valueLabels.template.disabled = true;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"VennDiagram\"] = VennDiagram;\r\nregistry.registeredClasses[\"VennDiagramDataItem\"] = VennDiagramDataItem;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/plugins/venn/VennDiagram.ts","/**\r\n * Defines Venn Diagram Series.\r\n */\r\n\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { IPercentSeriesAdapters, IPercentSeriesDataFields, IPercentSeriesEvents, IPercentSeriesProperties, PercentSeries, PercentSeriesDataItem } from \"../../charts/series/PercentSeries\";\r\nimport { Label } from \"../../core/elements/Label\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { VennDiagram } from \"./VennDiagram\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { percent } from \"../../core/utils/Percent\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { Animation } from \"../../core/utils/Animation\";\r\nimport { color } from \"../../core/utils/Color\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as venn from \"venn.js\";\r\n\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines a [[DataItem]] for [[VennSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nexport class VennSeriesDataItem extends PercentSeriesDataItem {\r\n\r\n\t/**\r\n\t * A type of slice used for this series.\r\n\t */\r\n\tpublic _slice: Sprite;\r\n\r\n\t/**\r\n\t * A reference to a label element.\r\n\t */\r\n\tpublic _label: Label;\r\n\r\n\t/**\r\n\t * Defines a type of [[Component]] this data item is used for.\r\n\t */\r\n\tpublic _component!: VennSeries;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic radius: number = 0;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.className = \"VennSeriesDataItem\";\r\n\t\t// this helps to invalidate series when value is 0 an it is hidden (no other events are triggered then)\r\n\t\tthis.events.on(\"visibilitychanged\", () => {\r\n\t\t\tif (this.component) {\r\n\t\t\t\t//this.component.invalidateDataItems();\r\n\t\t\t}\r\n\t\t}, this, false);\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * List of categories this data item represents intersection of.\r\n\t *\r\n\t * @param value Array of intersecting categories\r\n\t */\r\n\tpublic set intersections(value: string[]) {\r\n\t\tthis.setProperty(\"intersections\", value);\r\n\t}\r\n\r\n\t/**\r\n\t * @return Array of intersecting categories\r\n\t */\r\n\tpublic get intersections(): string[] {\r\n\t\treturn this.properties.intersections;\r\n\t}\r\n\r\n\t/**\r\n\t * Hide the data item (and corresponding visual elements).\r\n\t *\r\n\t * @param duration Duration (ms)\r\n\t * @param delay Delay hiding (ms)\r\n\t * @param toValue Target value for animation\r\n\t * @param fields Fields to animate while hiding\r\n\t */\r\n\tpublic hide(duration?: number, delay?: number, toValue?: number, fields?: string[]): $type.Optional<Animation> {\r\n\r\n\t\tif (!this.intersections) {\r\n\t\t\tthis.component.dataItems.each((dataItem) => {\r\n\t\t\t\tif (dataItem != this && dataItem.intersections) {\r\n\t\t\t\t\tif (dataItem.intersections.indexOf(this.category) != -1) {\r\n\t\t\t\t\t\tdataItem.hide(duration, delay, toValue, fields);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\treturn super.hide(duration, delay, toValue, fields);\r\n\t\tif (this.component) {\r\n\t\t\tthis.component.invalidateProcessedData();\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Show hidden data item (and corresponding visual elements).\r\n\t *\r\n\t * @param duration Duration (ms)\r\n\t * @param delay Delay hiding (ms)\r\n\t * @param fields Fields to animate while hiding\r\n\t */\r\n\tpublic show(duration?: number, delay?: number, fields?: string[]): $type.Optional<Animation> {\r\n\r\n\t\tif (!this.intersections) {\r\n\t\t\tthis.component.dataItems.each((dataItem) => {\r\n\t\t\t\tif (dataItem != this && dataItem.intersections) {\r\n\t\t\t\t\tif (dataItem.intersections.indexOf(this.category) != -1) {\r\n\t\t\t\t\t\tdataItem.show(duration, delay, fields);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\treturn super.show(duration, delay, fields);\r\n\r\n\t\tif (this.component) {\r\n\t\t\tthis.component.invalidateProcessedData();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic animateRadius(toValue: number, duration: number, easing: (value: number) => number) {\r\n\t\tlet animation = this.animate({ property: \"radius\", to: toValue }, duration, easing);\r\n\t\tthis._disposers.push(animation);\r\n\t\tthis._disposers.push(animation.events.on(\"animationprogress\", (event) => {\r\n\t\t\tlet radius = this.radius\r\n\t\t\tlet path = $path.moveTo({ x: -radius, y: 0 });\r\n\t\t\tpath += $path.arcToPoint({ x: radius, y: 0 }, radius, radius, true);\r\n\t\t\tpath += $path.arcToPoint({ x: -radius, y: 0 }, radius, radius, true);\r\n\t\t\tthis.slice.path = path;\r\n\r\n\t\t\tif (this.slice.isHover) {\r\n\t\t\t\tthis.component.updateHoverSprite(this.slice);\r\n\t\t\t}\r\n\t\t}))\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * REQUISITES\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Defines data fields for [[VennSeries]].\r\n */\r\nexport interface IVennSeriesDataFields extends IPercentSeriesDataFields {\r\n\r\n\t/**\r\n\t * A field that may hold an array of categories. If present, this data item\r\n\t * will represent an intersection of categories listed in an array.\r\n\t */\r\n\tintersections?: string;\r\n\r\n}\r\n\r\n/**\r\n * Defines properties for [[VennSeries]].\r\n */\r\nexport interface IVennSeriesProperties extends IPercentSeriesProperties { }\r\n\r\n/**\r\n * Defines events for [[VennSeries]].\r\n */\r\nexport interface IVennSeriesEvents extends IPercentSeriesEvents { }\r\n\r\n/**\r\n * Defines adapters for [[VennSeries]].\r\n *\r\n * @see {@link Adapter}\r\n */\r\nexport interface IVennSeriesAdapters extends IPercentSeriesAdapters, IVennSeriesProperties { }\r\n\r\n\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n\r\n/**\r\n * Creates Venn Diagram Series.\r\n * \r\n * Venn series uses Ben Frederickson's [venn.js](https://github.com/benfred/venn.js).\r\n *\r\n * @see {@link IVennSeriesEvents} for a list of available Events\r\n * @see {@link IVennSeriesAdapters} for a list of available Adapters\r\n * @see {@link https://www.amcharts.com/docs/v4/chart-types/venn/} for documentation\r\n * @important\r\n * @since 4.9.0\r\n */\r\nexport class VennSeries extends PercentSeries {\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _slice: Sprite;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _label: Label;\r\n\r\n\t/**\r\n\t * A reference to chart this series is for.\r\n\t *\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic _chart: VennDiagram;\r\n\r\n\t/**\r\n\t * Defines the type of data fields used for the series.\r\n\t */\r\n\tpublic _dataFields: IVennSeriesDataFields;\r\n\r\n\t/**\r\n\t * Defines available properties.\r\n\t */\r\n\tpublic _properties!: IVennSeriesProperties;\r\n\r\n\t/**\r\n\t * Defines available adapters.\r\n\t */\r\n\tpublic _adapter!: IVennSeriesAdapters;\r\n\r\n\t/**\r\n\t * Defines available events.\r\n\t */\r\n\tpublic _events!: IVennSeriesEvents;\r\n\r\n\t/**\r\n\t * Defines the type of data item.\r\n\t */\r\n\tpublic _dataItem: VennSeriesDataItem;\r\n\r\n\t/**\r\n\t * Holds sum of values for all slices.\r\n\t */\r\n\tprotected _total: number;\r\n\r\n\t/**\r\n\t * Holds number of slices.\r\n\t */\r\n\tprotected _count: number;\r\n\r\n\t/**\r\n\t * A sprite which is visible when slice is hovered.\r\n\t * \r\n\t * This sprite gets the path of a hovered slice so the shape is identical. It\r\n\t * helps create nice hover effect.\r\n\t */\r\n\tpublic hoverSprite: Sprite;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tprotected vennData: string;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.className = \"VennSeries\";\r\n\r\n\t\tthis.width = percent(100);\r\n\t\tthis.height = percent(100);\r\n\t\tthis.layout = \"absolute\";\r\n\r\n\t\tthis.slicesContainer.width = percent(100);\r\n\t\tthis.slicesContainer.height = percent(100);\r\n\t\tthis.slicesContainer.layout = \"none\";\r\n\r\n\t\tlet template = this.slices.template;\r\n\t\ttemplate.strokeWidth = 0;\r\n\t\ttemplate.stroke = color(\"#ffffff\");\r\n\r\n\t\tthis._disposers.push(this.events.on(\"maxsizechanged\", () => {\r\n\t\t\tthis.vennData = undefined;\r\n\t\t\tthis.invalidateDataItems();\r\n\t\t}, this, false));\r\n\r\n\t\tthis.labelsContainer.layout = \"none\";\r\n\r\n\t\tthis.itemReaderText = \"{category}\";\r\n\r\n\t\tlet hoverSprite = this.slicesContainer.createChild(Sprite);\r\n\t\thoverSprite.strokeOpacity = 1;\r\n\t\thoverSprite.strokeWidth = 2;\r\n\t\thoverSprite.stroke = new InterfaceColorSet().getFor(\"background\");\r\n\t\thoverSprite.strokeDasharray = \"3,3\";\r\n\t\thoverSprite.zIndex = Number.MAX_VALUE;\r\n\t\thoverSprite.interactionsEnabled = false;\r\n\t\thoverSprite.fill = color();\r\n\t\thoverSprite.strokeDashoffset = 0;\r\n\r\n\t\tlet hs = hoverSprite.states.create(\"hover\");\r\n\t\ths.properties.strokeDashoffset = 1000;\r\n\t\ths.transitionDuration = 100000;\r\n\r\n\t\tthis.hoverSprite = hoverSprite;\r\n\r\n\t\ttemplate.events.on(\"over\", (event) => {\r\n\t\t\thoverSprite.hide(0);\r\n\t\t\thoverSprite.show();\r\n\t\t\thoverSprite.isHover = true;\r\n\t\t\tthis.updateHoverSprite(event.target);\r\n\t\t})\r\n\r\n\t\ttemplate.events.on(\"out\", (event) => {\r\n\t\t\thoverSprite.isHover = false;\r\n\t\t})\r\n\r\n\t\ttemplate.events.on(\"visibilitychanged\", (event) => {\r\n\t\t\tif (event.visible == false) {\r\n\t\t\t\tthis.hoverSprite.hide();\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\ttemplate.events.on(\"out\", (event) => {\r\n\t\t\tthis.hoverSprite.hide();\r\n\t\t})\r\n\r\n\t\tthis.applyTheme();\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a Sprite element.\r\n\t *\r\n\t * @return Sprite\r\n\t */\r\n\tprotected createSlice(): Sprite {\r\n\t\treturn new Sprite();\r\n\t}\r\n\r\n\t/**\r\n\t * Sets defaults that instantiate some objects that rely on parent, so they\r\n\t * cannot be set in constructor.\r\n\t */\r\n\tprotected applyInternalDefaults(): void {\r\n\t\tsuper.applyInternalDefaults();\r\n\t\tif (!$type.hasValue(this.readerTitle)) {\r\n\t\t\tthis.readerTitle = this.language.translate(\"Venn Series\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a new/empty DataItem of the type appropriate for this object.\r\n\t *\r\n\t * @see {@link DataItem}\r\n\t * @return Data Item\r\n\t */\r\n\tprotected createDataItem(): this[\"_dataItem\"] {\r\n\t\treturn new VennSeriesDataItem();\r\n\t}\r\n\r\n\t/**\r\n\t * Inits Slice.\r\n\t *\r\n\t * @param Slice to init\r\n\t */\r\n\tprotected initSlice(slice: this[\"_slice\"]) {\r\n\t\tslice.isMeasured = false;\r\n\t\tslice.tooltipText = \"{category}\";\r\n\t}\r\n\r\n\t/**\r\n\t * Inits a Slice label.\r\n\t * \r\n\t * @param Label\r\n\t */\r\n\tprotected initLabel(label: this[\"_label\"]) {\r\n\t\tlabel.verticalCenter = \"middle\";\r\n\t\tlabel.horizontalCenter = \"middle\";\r\n\t\tlabel.isMeasured = false;\r\n\t\tlabel.text = \"{category}\";\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic updateHoverSprite(sprite: Sprite) {\r\n\t\tthis.hoverSprite.path = sprite.path;\r\n\t\tthis.hoverSprite.x = sprite.x;\r\n\t\tthis.hoverSprite.y = sprite.y;\r\n\t}\r\n\r\n\t/**\r\n\t * [validateDataElements description]\r\n\t *\r\n\t * @todo Description\r\n\t * @ignore Exclude from docs\r\n\t */\r\n\tpublic validateDataElements() {\r\n\t\tsuper.validateDataElements();\r\n\r\n\t\tlet slicesContainer = this.slicesContainer;\r\n\t\tlet labelsContainer = this.labelsContainer;\r\n\t\tlet labelTemplate = this.labels.template;\r\n\r\n\t\tif (this.alignLabels) {\r\n\t\t\tlabelTemplate.interactionsEnabled = true;\r\n\t\t\tslicesContainer.isMeasured = true;\r\n\t\t\tlabelsContainer.isMeasured = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlabelTemplate.interactionsEnabled = false;\r\n\t\t\tslicesContainer.isMeasured = false;\r\n\t\t\tlabelsContainer.isMeasured = false;\r\n\t\t}\r\n\r\n\t\tlet sets: any[] = [];\r\n\t\t// prepare data for venn\r\n\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\tlet set: any = {};\r\n\t\t\tif (dataItem.intersections) {\r\n\t\t\t\tset.sets = dataItem.intersections;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tset.sets = [dataItem.category];\r\n\t\t\t}\r\n\t\t\tset.size = dataItem.getValue(\"value\");\r\n\t\t\tlet isHidden = false;\r\n\t\t\tif (dataItem.intersections) {\r\n\t\t\t\tfor (let i = 0; i < dataItem.intersections.length; i++) {\r\n\t\t\t\t\tlet category = dataItem.intersections[i];\r\n\t\t\t\t\tlet di = this.getDataItemByCategory(category);\r\n\r\n\t\t\t\t\tif (di.isHiding || !di.visible) {\r\n\t\t\t\t\t\tisHidden = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (isHidden && dataItem.visible) {\r\n\t\t\t\t\tdataItem.hide(0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (set.size > 0 && !isHidden && !dataItem.isHiding && dataItem.visible) {\r\n\t\t\t\tsets.push(set);\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tlet newSets = sets.toString();\r\n\r\n\t\tif (newSets != this.vennData) {\r\n\r\n\t\t\tthis.vennData = newSets;\r\n\r\n\t\t\tif (sets.length > 0) {\r\n\t\t\t\tlet vennData = venn.venn(sets);\r\n\r\n\t\t\t\tvennData = venn.normalizeSolution(vennData, null, null);\r\n\r\n\t\t\t\tvennData = venn.scaleSolution(vennData, this.innerWidth, this.innerHeight, 0);\r\n\r\n\t\t\t\tlet circles: any = {};\r\n\t\t\t\tfor (let name in vennData) {\r\n\t\t\t\t\tlet item = vennData[name];\r\n\r\n\t\t\t\t\tlet radius = item.radius;\r\n\r\n\t\t\t\t\tlet dataItem = this.getDataItemByCategory(name);\r\n\t\t\t\t\tif (this.interpolationDuration > 0) {\r\n\t\t\t\t\t\tdataItem.animateRadius(radius, this.interpolationDuration, this.interpolationEasing);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tlet path = $path.moveTo({ x: -radius, y: 0 });\r\n\t\t\t\t\t\tpath += $path.arcToPoint({ x: radius, y: 0 }, radius, radius, true);\r\n\t\t\t\t\t\tpath += $path.arcToPoint({ x: -radius, y: 0 }, radius, radius, true);\r\n\t\t\t\t\t\tdataItem.slice.path = path;\r\n\r\n\t\t\t\t\t\tif (dataItem.slice.isHover) {\r\n\t\t\t\t\t\t\tthis.updateHoverSprite(dataItem.slice);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet slice = dataItem.slice;\r\n\r\n\t\t\t\t\tif (slice.x == undefined || slice.y == undefined) {\r\n\t\t\t\t\t\tslice.x = item.x;\r\n\t\t\t\t\t\tslice.y = item.y;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tslice.animate([{ property: \"x\", to: item.x }, { property: \"y\", to: item.y }], this.interpolationDuration, this.interpolationEasing);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcircles[name] = item;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet centers: any = venn.computeTextCentres(circles, sets);\r\n\r\n\t\t\t\tlet i = 0;\r\n\t\t\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\t\t\tlet name = dataItem.category;\r\n\t\t\t\t\tlet center = centers[name];\r\n\t\t\t\t\tif (dataItem.intersections) {\r\n\t\t\t\t\t\tname = dataItem.intersections.toString();\r\n\t\t\t\t\t\tcenter = centers[name];\r\n\t\t\t\t\t\tif (center) {\r\n\t\t\t\t\t\t\tlet set = dataItem.intersections;\r\n\t\t\t\t\t\t\tlet cc = [];\r\n\r\n\t\t\t\t\t\t\tfor (let s = 0; s < set.length; s++) {\r\n\t\t\t\t\t\t\t\tcc.push(circles[set[s]]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tlet intersectionPath = venn.intersectionAreaPath(cc)\r\n\r\n\t\t\t\t\t\t\tlet slice = dataItem.slice;\r\n\t\t\t\t\t\t\tslice.path = intersectionPath;\r\n\r\n\t\t\t\t\t\t\tslice.tooltipX = center.x;\r\n\t\t\t\t\t\t\tslice.tooltipY = center.y;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (center) {\r\n\t\t\t\t\t\tlet label = dataItem.label;\r\n\t\t\t\t\t\tif (label.x == undefined || label.y == undefined) {\r\n\t\t\t\t\t\t\tlabel.x = center.x;\r\n\t\t\t\t\t\t\tlabel.y = center.y;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tlabel.animate([{ property: \"x\", to: center.x }, { property: \"y\", to: center.y }], this.interpolationDuration, this.interpolationEasing);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t//dataItem.label.x = -10000;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.updateLegendValue(dataItem);\r\n\r\n\t\t\t\t\tif (!this.slices.template.propertyFields.zIndex) {\r\n\t\t\t\t\t\tdataItem.slice.zIndex = i;\r\n\t\t\t\t\t}\r\n\t\t\t\t\ti++;\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Returns data item by category.\r\n\t * \r\n\t * @param category Category\r\n\t * @return Data item\r\n\t */\r\n\tpublic getDataItemByCategory(category: string): VennSeriesDataItem {\r\n\t\tlet di: VennSeriesDataItem;\r\n\t\tthis.dataItems.each((dataItem) => {\r\n\t\t\tif (dataItem.category == category) {\r\n\t\t\t\tdi = dataItem;\r\n\t\t\t}\r\n\t\t})\r\n\t\treturn di;\r\n\t}\r\n}\r\n\r\n/**\r\n * Adds class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"VennSeries\"] = VennSeries;\r\nregistry.registeredClasses[\"VennSeriesDataItem\"] = VennSeriesDataItem;\r\n\n\n\n// WEBPACK FOOTER //\n// ../../../../../src/.internal/plugins/venn/VennSeries.ts","import * as m from \"../../es2015/plugins/venn\";\nwindow.am4plugins_venn = m;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./plugins/venn.js\n// module id = null\n// module chunks = ","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/namespaces.js\n// module id = null\n// module chunks = ","import namespaces from \"./namespaces\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/namespace.js\n// module id = null\n// module chunks = ","import namespace from \"./namespace\";\nimport {xhtml} from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/creator.js\n// module id = null\n// module chunks = ","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selector.js\n// module id = null\n// module chunks = ","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selectorAll.js\n// module id = null\n// module chunks = ","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/matcher.js\n// module id = null\n// module chunks = ","export default function(update) {\n return new Array(update.length);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/sparse.js\n// module id = null\n// module chunks = ","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/enter.js\n// module id = null\n// module chunks = ","export default function(x) {\n return function() {\n return x;\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/constant.js\n// module id = null\n// module chunks = ","import {Selection} from \"./index\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nexport default function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/data.js\n// module id = null\n// module chunks = ","import {Selection} from \"./index\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/sort.js\n// module id = null\n// module chunks = ","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/attr.js\n// module id = null\n// module chunks = ","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/window.js\n// module id = null\n// module chunks = ","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/style.js\n// module id = null\n// module chunks = ","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/classed.js\n// module id = null\n// module chunks = ","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/text.js\n// module id = null\n// module chunks = ","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/html.js\n// module id = null\n// module chunks = ","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/raise.js\n// module id = null\n// module chunks = ","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/lower.js\n// module id = null\n// module chunks = ","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/insert.js\n// module id = null\n// module chunks = ","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/remove.js\n// module id = null\n// module chunks = ","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/clone.js\n// module id = null\n// module chunks = ","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/on.js\n// module id = null\n// module chunks = ","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/dispatch.js\n// module id = null\n// module chunks = ","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nexport default selection;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/index.js\n// module id = null\n// module chunks = ","import {Selection} from \"./index\";\nimport selector from \"../selector\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/select.js\n// module id = null\n// module chunks = ","import {Selection} from \"./index\";\nimport selectorAll from \"../selectorAll\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/selectAll.js\n// module id = null\n// module chunks = ","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/filter.js\n// module id = null\n// module chunks = ","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/exit.js\n// module id = null\n// module chunks = ","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/join.js\n// module id = null\n// module chunks = ","import {Selection} from \"./index\";\n\nexport default function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/merge.js\n// module id = null\n// module chunks = ","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/order.js\n// module id = null\n// module chunks = ","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/call.js\n// module id = null\n// module chunks = ","export default function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/nodes.js\n// module id = null\n// module chunks = ","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/node.js\n// module id = null\n// module chunks = ","export default function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/size.js\n// module id = null\n// module chunks = ","export default function() {\n return !this.node();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/empty.js\n// module id = null\n// module chunks = ","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/each.js\n// module id = null\n// module chunks = ","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/property.js\n// module id = null\n// module chunks = ","import creator from \"../creator\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/append.js\n// module id = null\n// module chunks = ","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selection/datum.js\n// module id = null\n// module chunks = ","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/select.js\n// module id = null\n// module chunks = ","import creator from \"./creator\";\nimport select from \"./select\";\n\nexport default function(name) {\n return select(creator(name).call(document.documentElement));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/create.js\n// module id = null\n// module chunks = ","var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/local.js\n// module id = null\n// module chunks = ","import {event} from \"./selection/on\";\n\nexport default function() {\n var current = event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/sourceEvent.js\n// module id = null\n// module chunks = ","export default function(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/point.js\n// module id = null\n// module chunks = ","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point(node, event);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/mouse.js\n// module id = null\n// module chunks = ","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/selectAll.js\n// module id = null\n// module chunks = ","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/touch.js\n// module id = null\n// module chunks = ","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches) {\n if (touches == null) touches = sourceEvent().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = point(node, touches[i]);\n }\n\n return points;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/touches.js\n// module id = null\n// module chunks = ","export {default as create} from \"./create\";\nexport {default as creator} from \"./creator\";\nexport {default as local} from \"./local\";\nexport {default as matcher} from \"./matcher\";\nexport {default as mouse} from \"./mouse\";\nexport {default as namespace} from \"./namespace\";\nexport {default as namespaces} from \"./namespaces\";\nexport {default as clientPoint} from \"./point\";\nexport {default as select} from \"./select\";\nexport {default as selectAll} from \"./selectAll\";\nexport {default as selection} from \"./selection/index\";\nexport {default as selector} from \"./selector\";\nexport {default as selectorAll} from \"./selectorAll\";\nexport {styleValue as style} from \"./selection/style\";\nexport {default as touch} from \"./touch\";\nexport {default as touches} from \"./touches\";\nexport {default as window} from \"./window\";\nexport {event, customEvent} from \"./selection/on\";\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/d3-selection/src/index.js\n// module id = null\n// module chunks = ","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-selection'), require('d3-transition')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', 'd3-selection', 'd3-transition'], factory) :\n\t(factory((global.venn = {}),global.d3,global.d3));\n}(this, (function (exports,d3Selection,d3Transition) { 'use strict';\n\nvar SMALL = 1e-10;\n\n/** Returns the intersection area of a bunch of circles (where each circle\n is an object having an x,y and radius property) */\nfunction intersectionArea(circles, stats) {\n // get all the intersection points of the circles\n var intersectionPoints = getIntersectionPoints(circles);\n\n // filter out points that aren't included in all the circles\n var innerPoints = intersectionPoints.filter(function (p) {\n return containedInCircles(p, circles);\n });\n\n var arcArea = 0, polygonArea = 0, arcs = [], i;\n\n // if we have intersection points that are within all the circles,\n // then figure out the area contained by them\n if (innerPoints.length > 1) {\n // sort the points by angle from the center of the polygon, which lets\n // us just iterate over points to get the edges\n var center = getCenter(innerPoints);\n for (i = 0; i < innerPoints.length; ++i ) {\n var p = innerPoints[i];\n p.angle = Math.atan2(p.x - center.x, p.y - center.y);\n }\n innerPoints.sort(function(a,b) { return b.angle - a.angle;});\n\n // iterate over all points, get arc between the points\n // and update the areas\n var p2 = innerPoints[innerPoints.length - 1];\n for (i = 0; i < innerPoints.length; ++i) {\n var p1 = innerPoints[i];\n\n // polygon area updates easily ...\n polygonArea += (p2.x + p1.x) * (p1.y - p2.y);\n\n // updating the arc area is a little more involved\n var midPoint = {x : (p1.x + p2.x) / 2,\n y : (p1.y + p2.y) / 2},\n arc = null;\n\n for (var j = 0; j < p1.parentIndex.length; ++j) {\n if (p2.parentIndex.indexOf(p1.parentIndex[j]) > -1) {\n // figure out the angle halfway between the two points\n // on the current circle\n var circle = circles[p1.parentIndex[j]],\n a1 = Math.atan2(p1.x - circle.x, p1.y - circle.y),\n a2 = Math.atan2(p2.x - circle.x, p2.y - circle.y);\n\n var angleDiff = (a2 - a1);\n if (angleDiff < 0) {\n angleDiff += 2*Math.PI;\n }\n\n // and use that angle to figure out the width of the\n // arc\n var a = a2 - angleDiff/2,\n width = distance(midPoint, {\n x : circle.x + circle.radius * Math.sin(a),\n y : circle.y + circle.radius * Math.cos(a)\n });\n\n // clamp the width to the largest is can actually be\n // (sometimes slightly overflows because of FP errors)\n if (width > circle.radius * 2) {\n width = circle.radius * 2;\n }\n\n // pick the circle whose arc has the smallest width\n if ((arc === null) || (arc.width > width)) {\n arc = { circle : circle,\n width : width,\n p1 : p1,\n p2 : p2};\n }\n }\n }\n\n if (arc !== null) {\n arcs.push(arc);\n arcArea += circleArea(arc.circle.radius, arc.width);\n p2 = p1;\n }\n }\n } else {\n // no intersection points, is either disjoint - or is completely\n // overlapped. figure out which by examining the smallest circle\n var smallest = circles[0];\n for (i = 1; i < circles.length; ++i) {\n if (circles[i].radius < smallest.radius) {\n smallest = circles[i];\n }\n }\n\n // make sure the smallest circle is completely contained in all\n // the other circles\n var disjoint = false;\n for (i = 0; i < circles.length; ++i) {\n if (distance(circles[i], smallest) > Math.abs(smallest.radius - circles[i].radius)) {\n disjoint = true;\n break;\n }\n }\n\n if (disjoint) {\n arcArea = polygonArea = 0;\n\n } else {\n arcArea = smallest.radius * smallest.radius * Math.PI;\n arcs.push({circle : smallest,\n p1: { x: smallest.x, y : smallest.y + smallest.radius},\n p2: { x: smallest.x - SMALL, y : smallest.y + smallest.radius},\n width : smallest.radius * 2 });\n }\n }\n\n polygonArea /= 2;\n if (stats) {\n stats.area = arcArea + polygonArea;\n stats.arcArea = arcArea;\n stats.polygonArea = polygonArea;\n stats.arcs = arcs;\n stats.innerPoints = innerPoints;\n stats.intersectionPoints = intersectionPoints;\n }\n\n return arcArea + polygonArea;\n}\n\n/** returns whether a point is contained by all of a list of circles */\nfunction containedInCircles(point, circles) {\n for (var i = 0; i < circles.length; ++i) {\n if (distance(point, circles[i]) > circles[i].radius + SMALL) {\n return false;\n }\n }\n return true;\n}\n\n/** Gets all intersection points between a bunch of circles */\nfunction getIntersectionPoints(circles) {\n var ret = [];\n for (var i = 0; i < circles.length; ++i) {\n for (var j = i + 1; j < circles.length; ++j) {\n var intersect = circleCircleIntersection(circles[i],\n circles[j]);\n for (var k = 0; k < intersect.length; ++k) {\n var p = intersect[k];\n p.parentIndex = [i,j];\n ret.push(p);\n }\n }\n }\n return ret;\n}\n\n/** Circular segment area calculation. See http://mathworld.wolfram.com/CircularSegment.html */\nfunction circleArea(r, width) {\n return r * r * Math.acos(1 - width/r) - (r - width) * Math.sqrt(width * (2 * r - width));\n}\n\n/** euclidean distance between two points */\nfunction distance(p1, p2) {\n return Math.sqrt((p1.x - p2.x) * (p1.x - p2.x) +\n (p1.y - p2.y) * (p1.y - p2.y));\n}\n\n\n/** Returns the overlap area of two circles of radius r1 and r2 - that\nhave their centers separated by distance d. Simpler faster\ncircle intersection for only two circles */\nfunction circleOverlap(r1, r2, d) {\n // no overlap\n if (d >= r1 + r2) {\n return 0;\n }\n\n // completely overlapped\n if (d <= Math.abs(r1 - r2)) {\n return Math.PI * Math.min(r1, r2) * Math.min(r1, r2);\n }\n\n var w1 = r1 - (d * d - r2 * r2 + r1 * r1) / (2 * d),\n w2 = r2 - (d * d - r1 * r1 + r2 * r2) / (2 * d);\n return circleArea(r1, w1) + circleArea(r2, w2);\n}\n\n/** Given two circles (containing a x/y/radius attributes),\nreturns the intersecting points if possible.\nnote: doesn't handle cases where there are infinitely many\nintersection points (circles are equivalent):, or only one intersection point*/\nfunction circleCircleIntersection(p1, p2) {\n var d = distance(p1, p2),\n r1 = p1.radius,\n r2 = p2.radius;\n\n // if to far away, or self contained - can't be done\n if ((d >= (r1 + r2)) || (d <= Math.abs(r1 - r2))) {\n return [];\n }\n\n var a = (r1 * r1 - r2 * r2 + d * d) / (2 * d),\n h = Math.sqrt(r1 * r1 - a * a),\n x0 = p1.x + a * (p2.x - p1.x) / d,\n y0 = p1.y + a * (p2.y - p1.y) / d,\n rx = -(p2.y - p1.y) * (h / d),\n ry = -(p2.x - p1.x) * (h / d);\n\n return [{x: x0 + rx, y : y0 - ry },\n {x: x0 - rx, y : y0 + ry }];\n}\n\n/** Returns the center of a bunch of points */\nfunction getCenter(points) {\n var center = {x: 0, y: 0};\n for (var i =0; i < points.length; ++i ) {\n center.x += points[i].x;\n center.y += points[i].y;\n }\n center.x /= points.length;\n center.y /= points.length;\n return center;\n}\n\n/** finds the zeros of a function, given two starting points (which must\n * have opposite signs */\nfunction bisect(f, a, b, parameters) {\n parameters = parameters || {};\n var maxIterations = parameters.maxIterations || 100,\n tolerance = parameters.tolerance || 1e-10,\n fA = f(a),\n fB = f(b),\n delta = b - a;\n\n if (fA * fB > 0) {\n throw \"Initial bisect points must have opposite signs\";\n }\n\n if (fA === 0) return a;\n if (fB === 0) return b;\n\n for (var i = 0; i < maxIterations; ++i) {\n delta /= 2;\n var mid = a + delta,\n fMid = f(mid);\n\n if (fMid * fA >= 0) {\n a = mid;\n }\n\n if ((Math.abs(delta) < tolerance) || (fMid === 0)) {\n return mid;\n }\n }\n return a + delta;\n}\n\n// need some basic operations on vectors, rather than adding a dependency,\n// just define here\nfunction zeros(x) { var r = new Array(x); for (var i = 0; i < x; ++i) { r[i] = 0; } return r; }\nfunction zerosM(x,y) { return zeros(x).map(function() { return zeros(y); }); }\n\nfunction dot(a, b) {\n var ret = 0;\n for (var i = 0; i < a.length; ++i) {\n ret += a[i] * b[i];\n }\n return ret;\n}\n\nfunction norm2(a) {\n return Math.sqrt(dot(a, a));\n}\n\nfunction scale(ret, value, c) {\n for (var i = 0; i < value.length; ++i) {\n ret[i] = value[i] * c;\n }\n}\n\nfunction weightedSum(ret, w1, v1, w2, v2) {\n for (var j = 0; j < ret.length; ++j) {\n ret[j] = w1 * v1[j] + w2 * v2[j];\n }\n}\n\n/** minimizes a function using the downhill simplex method */\nfunction nelderMead(f, x0, parameters) {\n parameters = parameters || {};\n\n var maxIterations = parameters.maxIterations || x0.length * 200,\n nonZeroDelta = parameters.nonZeroDelta || 1.05,\n zeroDelta = parameters.zeroDelta || 0.001,\n minErrorDelta = parameters.minErrorDelta || 1e-6,\n minTolerance = parameters.minErrorDelta || 1e-5,\n rho = (parameters.rho !== undefined) ? parameters.rho : 1,\n chi = (parameters.chi !== undefined) ? parameters.chi : 2,\n psi = (parameters.psi !== undefined) ? parameters.psi : -0.5,\n sigma = (parameters.sigma !== undefined) ? parameters.sigma : 0.5,\n maxDiff;\n\n // initialize simplex.\n var N = x0.length,\n simplex = new Array(N + 1);\n simplex[0] = x0;\n simplex[0].fx = f(x0);\n simplex[0].id = 0;\n for (var i = 0; i < N; ++i) {\n var point = x0.slice();\n point[i] = point[i] ? point[i] * nonZeroDelta : zeroDelta;\n simplex[i+1] = point;\n simplex[i+1].fx = f(point);\n simplex[i+1].id = i+1;\n }\n\n function updateSimplex(value) {\n for (var i = 0; i < value.length; i++) {\n simplex[N][i] = value[i];\n }\n simplex[N].fx = value.fx;\n }\n\n var sortOrder = function(a, b) { return a.fx - b.fx; };\n\n var centroid = x0.slice(),\n reflected = x0.slice(),\n contracted = x0.slice(),\n expanded = x0.slice();\n\n for (var iteration = 0; iteration < maxIterations; ++iteration) {\n simplex.sort(sortOrder);\n\n if (parameters.history) {\n // copy the simplex (since later iterations will mutate) and\n // sort it to have a consistent order between iterations\n var sortedSimplex = simplex.map(function (x) {\n var state = x.slice();\n state.fx = x.fx;\n state.id = x.id;\n return state;\n });\n sortedSimplex.sort(function(a,b) { return a.id - b.id; });\n\n parameters.history.push({x: simplex[0].slice(),\n fx: simplex[0].fx,\n simplex: sortedSimplex});\n }\n\n maxDiff = 0;\n for (i = 0; i < N; ++i) {\n maxDiff = Math.max(maxDiff, Math.abs(simplex[0][i] - simplex[1][i]));\n }\n\n if ((Math.abs(simplex[0].fx - simplex[N].fx) < minErrorDelta) &&\n (maxDiff < minTolerance)) {\n break;\n }\n\n // compute the centroid of all but the worst point in the simplex\n for (i = 0; i < N; ++i) {\n centroid[i] = 0;\n for (var j = 0; j < N; ++j) {\n centroid[i] += simplex[j][i];\n }\n centroid[i] /= N;\n }\n\n // reflect the worst point past the centroid and compute loss at reflected\n // point\n var worst = simplex[N];\n weightedSum(reflected, 1+rho, centroid, -rho, worst);\n reflected.fx = f(reflected);\n\n // if the reflected point is the best seen, then possibly expand\n if (reflected.fx < simplex[0].fx) {\n weightedSum(expanded, 1+chi, centroid, -chi, worst);\n expanded.fx = f(expanded);\n if (expanded.fx < reflected.fx) {\n updateSimplex(expanded);\n } else {\n updateSimplex(reflected);\n }\n }\n\n // if the reflected point is worse than the second worst, we need to\n // contract\n else if (reflected.fx >= simplex[N-1].fx) {\n var shouldReduce = false;\n\n if (reflected.fx > worst.fx) {\n // do an inside contraction\n weightedSum(contracted, 1+psi, centroid, -psi, worst);\n contracted.fx = f(contracted);\n if (contracted.fx < worst.fx) {\n updateSimplex(contracted);\n } else {\n shouldReduce = true;\n }\n } else {\n // do an outside contraction\n weightedSum(contracted, 1-psi * rho, centroid, psi*rho, worst);\n contracted.fx = f(contracted);\n if (contracted.fx < reflected.fx) {\n updateSimplex(contracted);\n } else {\n shouldReduce = true;\n }\n }\n\n if (shouldReduce) {\n // if we don't contract here, we're done\n if (sigma >= 1) break;\n\n // do a reduction\n for (i = 1; i < simplex.length; ++i) {\n weightedSum(simplex[i], 1 - sigma, simplex[0], sigma, simplex[i]);\n simplex[i].fx = f(simplex[i]);\n }\n }\n } else {\n updateSimplex(reflected);\n }\n }\n\n simplex.sort(sortOrder);\n return {fx : simplex[0].fx,\n x : simplex[0]};\n}\n\n/// searches along line 'pk' for a point that satifies the wolfe conditions\n/// See 'Numerical Optimization' by Nocedal and Wright p59-60\n/// f : objective function\n/// pk : search direction\n/// current: object containing current gradient/loss\n/// next: output: contains next gradient/loss\n/// returns a: step size taken\nfunction wolfeLineSearch(f, pk, current, next, a, c1, c2) {\n var phi0 = current.fx, phiPrime0 = dot(current.fxprime, pk),\n phi = phi0, phi_old = phi0,\n phiPrime = phiPrime0,\n a0 = 0;\n\n a = a || 1;\n c1 = c1 || 1e-6;\n c2 = c2 || 0.1;\n\n function zoom(a_lo, a_high, phi_lo) {\n for (var iteration = 0; iteration < 16; ++iteration) {\n a = (a_lo + a_high)/2;\n weightedSum(next.x, 1.0, current.x, a, pk);\n phi = next.fx = f(next.x, next.fxprime);\n phiPrime = dot(next.fxprime, pk);\n\n if ((phi > (phi0 + c1 * a * phiPrime0)) ||\n (phi >= phi_lo)) {\n a_high = a;\n\n } else {\n if (Math.abs(phiPrime) <= -c2 * phiPrime0) {\n return a;\n }\n\n if (phiPrime * (a_high - a_lo) >=0) {\n a_high = a_lo;\n }\n\n a_lo = a;\n phi_lo = phi;\n }\n }\n\n return 0;\n }\n\n for (var iteration = 0; iteration < 10; ++iteration) {\n weightedSum(next.x, 1.0, current.x, a, pk);\n phi = next.fx = f(next.x, next.fxprime);\n phiPrime = dot(next.fxprime, pk);\n if ((phi > (phi0 + c1 * a * phiPrime0)) ||\n (iteration && (phi >= phi_old))) {\n return zoom(a0, a, phi_old);\n }\n\n if (Math.abs(phiPrime) <= -c2 * phiPrime0) {\n return a;\n }\n\n if (phiPrime >= 0 ) {\n return zoom(a, a0, phi);\n }\n\n phi_old = phi;\n a0 = a;\n a *= 2;\n }\n\n return a;\n}\n\nfunction conjugateGradient(f, initial, params) {\n // allocate all memory up front here, keep out of the loop for perfomance\n // reasons\n var current = {x: initial.slice(), fx: 0, fxprime: initial.slice()},\n next = {x: initial.slice(), fx: 0, fxprime: initial.slice()},\n yk = initial.slice(),\n pk, temp,\n a = 1,\n maxIterations;\n\n params = params || {};\n maxIterations = params.maxIterations || initial.length * 20;\n\n current.fx = f(current.x, current.fxprime);\n pk = current.fxprime.slice();\n scale(pk, current.fxprime,-1);\n\n for (var i = 0; i < maxIterations; ++i) {\n a = wolfeLineSearch(f, pk, current, next, a);\n\n // todo: history in wrong spot?\n if (params.history) {\n params.history.push({x: current.x.slice(),\n fx: current.fx,\n fxprime: current.fxprime.slice(),\n alpha: a});\n }\n\n if (!a) {\n // faiiled to find point that satifies wolfe conditions.\n // reset direction for next iteration\n scale(pk, current.fxprime, -1);\n\n } else {\n // update direction using Polak–Ribiere CG method\n weightedSum(yk, 1, next.fxprime, -1, current.fxprime);\n\n var delta_k = dot(current.fxprime, current.fxprime),\n beta_k = Math.max(0, dot(yk, next.fxprime) / delta_k);\n\n weightedSum(pk, beta_k, pk, -1, next.fxprime);\n\n temp = current;\n current = next;\n next = temp;\n }\n\n if (norm2(current.fxprime) <= 1e-5) {\n break;\n }\n }\n\n if (params.history) {\n params.history.push({x: current.x.slice(),\n fx: current.fx,\n fxprime: current.fxprime.slice(),\n alpha: a});\n }\n\n return current;\n}\n\n/** given a list of set objects, and their corresponding overlaps.\nupdates the (x, y, radius) attribute on each set such that their positions\nroughly correspond to the desired overlaps */\nfunction venn(areas, parameters) {\n parameters = parameters || {};\n parameters.maxIterations = parameters.maxIterations || 500;\n var initialLayout = parameters.initialLayout || bestInitialLayout;\n var loss = parameters.lossFunction || lossFunction;\n\n // add in missing pairwise areas as having 0 size\n areas = addMissingAreas(areas);\n\n // initial layout is done greedily\n var circles = initialLayout(areas, parameters);\n\n // transform x/y coordinates to a vector to optimize\n var initial = [], setids = [], setid;\n for (setid in circles) {\n if (circles.hasOwnProperty(setid)) {\n initial.push(circles[setid].x);\n initial.push(circles[setid].y);\n setids.push(setid);\n }\n }\n\n // optimize initial layout from our loss function\n var solution = nelderMead(\n function(values) {\n var current = {};\n for (var i = 0; i < setids.length; ++i) {\n var setid = setids[i];\n current[setid] = {x: values[2 * i],\n y: values[2 * i + 1],\n radius : circles[setid].radius,\n // size : circles[setid].size\n };\n }\n return loss(current, areas);\n },\n initial,\n parameters);\n\n // transform solution vector back to x/y points\n var positions = solution.x;\n for (var i = 0; i < setids.length; ++i) {\n setid = setids[i];\n circles[setid].x = positions[2 * i];\n circles[setid].y = positions[2 * i + 1];\n }\n\n return circles;\n}\n\nvar SMALL$1 = 1e-10;\n\n/** Returns the distance necessary for two circles of radius r1 + r2 to\nhave the overlap area 'overlap' */\nfunction distanceFromIntersectArea(r1, r2, overlap) {\n // handle complete overlapped circles\n if (Math.min(r1, r2) * Math.min(r1,r2) * Math.PI <= overlap + SMALL$1) {\n return Math.abs(r1 - r2);\n }\n\n return bisect(function(distance$$1) {\n return circleOverlap(r1, r2, distance$$1) - overlap;\n }, 0, r1 + r2);\n}\n\n/** Missing pair-wise intersection area data can cause problems:\n treating as an unknown means that sets will be laid out overlapping,\n which isn't what people expect. To reflect that we want disjoint sets\n here, set the overlap to 0 for all missing pairwise set intersections */\nfunction addMissingAreas(areas) {\n areas = areas.slice();\n\n // two circle intersections that aren't defined\n var ids = [], pairs = {}, i, j, a, b;\n for (i = 0; i < areas.length; ++i) {\n var area = areas[i];\n if (area.sets.length == 1) {\n ids.push(area.sets[0]);\n } else if (area.sets.length == 2) {\n a = area.sets[0];\n b = area.sets[1];\n pairs[[a, b]] = true;\n pairs[[b, a]] = true;\n }\n }\n ids.sort(function(a, b) { return a > b; });\n\n for (i = 0; i < ids.length; ++i) {\n a = ids[i];\n for (j = i + 1; j < ids.length; ++j) {\n b = ids[j];\n if (!([a, b] in pairs)) {\n areas.push({'sets': [a, b],\n 'size': 0});\n }\n }\n }\n return areas;\n}\n\n/// Returns two matrices, one of the euclidean distances between the sets\n/// and the other indicating if there are subset or disjoint set relationships\nfunction getDistanceMatrices(areas, sets, setids) {\n // initialize an empty distance matrix between all the points\n var distances = zerosM(sets.length, sets.length),\n constraints = zerosM(sets.length, sets.length);\n\n // compute required distances between all the sets such that\n // the areas match\n areas.filter(function(x) { return x.sets.length == 2; })\n .map(function(current) {\n var left = setids[current.sets[0]],\n right = setids[current.sets[1]],\n r1 = Math.sqrt(sets[left].size / Math.PI),\n r2 = Math.sqrt(sets[right].size / Math.PI),\n distance$$1 = distanceFromIntersectArea(r1, r2, current.size);\n\n distances[left][right] = distances[right][left] = distance$$1;\n\n // also update constraints to indicate if its a subset or disjoint\n // relationship\n var c = 0;\n if (current.size + 1e-10 >= Math.min(sets[left].size,\n sets[right].size)) {\n c = 1;\n } else if (current.size <= 1e-10) {\n c = -1;\n }\n constraints[left][right] = constraints[right][left] = c;\n });\n\n return {distances: distances, constraints: constraints};\n}\n\n/// computes the gradient and loss simulatenously for our constrained MDS optimizer\nfunction constrainedMDSGradient(x, fxprime, distances, constraints) {\n var loss = 0, i;\n for (i = 0; i < fxprime.length; ++i) {\n fxprime[i] = 0;\n }\n\n for (i = 0; i < distances.length; ++i) {\n var xi = x[2 * i], yi = x[2 * i + 1];\n for (var j = i + 1; j < distances.length; ++j) {\n var xj = x[2 * j], yj = x[2 * j + 1],\n dij = distances[i][j],\n constraint = constraints[i][j];\n\n var squaredDistance = (xj - xi) * (xj - xi) + (yj - yi) * (yj - yi),\n distance$$1 = Math.sqrt(squaredDistance),\n delta = squaredDistance - dij * dij;\n\n if (((constraint > 0) && (distance$$1 <= dij)) ||\n ((constraint < 0) && (distance$$1 >= dij))) {\n continue;\n }\n\n loss += 2 * delta * delta;\n\n fxprime[2*i] += 4 * delta * (xi - xj);\n fxprime[2*i + 1] += 4 * delta * (yi - yj);\n\n fxprime[2*j] += 4 * delta * (xj - xi);\n fxprime[2*j + 1] += 4 * delta * (yj - yi);\n }\n }\n return loss;\n}\n\n/// takes the best working variant of either constrained MDS or greedy\nfunction bestInitialLayout(areas, params) {\n var initial = greedyLayout(areas, params);\n var loss = params.lossFunction || lossFunction;\n\n // greedylayout is sufficient for all 2/3 circle cases. try out\n // constrained MDS for higher order problems, take its output\n // if it outperforms. (greedy is aesthetically better on 2/3 circles\n // since it axis aligns)\n if (areas.length >= 8) {\n var constrained = constrainedMDSLayout(areas, params),\n constrainedLoss = loss(constrained, areas),\n greedyLoss = loss(initial, areas);\n\n if (constrainedLoss + 1e-8 < greedyLoss) {\n initial = constrained;\n }\n }\n return initial;\n}\n\n/// use the constrained MDS variant to generate an initial layout\nfunction constrainedMDSLayout(areas, params) {\n params = params || {};\n var restarts = params.restarts || 10;\n\n // bidirectionally map sets to a rowid (so we can create a matrix)\n var sets = [], setids = {}, i;\n for (i = 0; i < areas.length; ++i ) {\n var area = areas[i];\n if (area.sets.length == 1) {\n setids[area.sets[0]] = sets.length;\n sets.push(area);\n }\n }\n\n var matrices = getDistanceMatrices(areas, sets, setids),\n distances = matrices.distances,\n constraints = matrices.constraints;\n\n // keep distances bounded, things get messed up otherwise.\n // TODO: proper preconditioner?\n var norm = norm2(distances.map(norm2))/(distances.length);\n distances = distances.map(function (row) {\n return row.map(function (value) { return value / norm; });});\n\n var obj = function(x, fxprime) {\n return constrainedMDSGradient(x, fxprime, distances, constraints);\n };\n\n var best, current;\n for (i = 0; i < restarts; ++i) {\n var initial = zeros(distances.length*2).map(Math.random);\n\n current = conjugateGradient(obj, initial, params);\n if (!best || (current.fx < best.fx)) {\n best = current;\n }\n }\n var positions = best.x;\n\n // translate rows back to (x,y,radius) coordinates\n var circles = {};\n for (i = 0; i < sets.length; ++i) {\n var set = sets[i];\n circles[set.sets[0]] = {\n x: positions[2*i] * norm,\n y: positions[2*i + 1] * norm,\n radius: Math.sqrt(set.size / Math.PI)\n };\n }\n\n if (params.history) {\n for (i = 0; i < params.history.length; ++i) {\n scale(params.history[i].x, norm);\n }\n }\n return circles;\n}\n\n/** Lays out a Venn diagram greedily, going from most overlapped sets to\nleast overlapped, attempting to position each new set such that the\noverlapping areas to already positioned sets are basically right */\nfunction greedyLayout(areas, params) {\n var loss = params && params.lossFunction ? params.lossFunction : lossFunction;\n // define a circle for each set\n var circles = {}, setOverlaps = {}, set;\n for (var i = 0; i < areas.length; ++i) {\n var area = areas[i];\n if (area.sets.length == 1) {\n set = area.sets[0];\n circles[set] = {x: 1e10, y: 1e10,\n rowid: circles.length,\n size: area.size,\n radius: Math.sqrt(area.size / Math.PI)};\n setOverlaps[set] = [];\n }\n }\n areas = areas.filter(function(a) { return a.sets.length == 2; });\n\n // map each set to a list of all the other sets that overlap it\n for (i = 0; i < areas.length; ++i) {\n var current = areas[i];\n var weight = current.hasOwnProperty('weight') ? current.weight : 1.0;\n var left = current.sets[0], right = current.sets[1];\n\n // completely overlapped circles shouldn't be positioned early here\n if (current.size + SMALL$1 >= Math.min(circles[left].size,\n circles[right].size)) {\n weight = 0;\n }\n\n setOverlaps[left].push ({set:right, size:current.size, weight:weight});\n setOverlaps[right].push({set:left, size:current.size, weight:weight});\n }\n\n // get list of most overlapped sets\n var mostOverlapped = [];\n for (set in setOverlaps) {\n if (setOverlaps.hasOwnProperty(set)) {\n var size = 0;\n for (i = 0; i < setOverlaps[set].length; ++i) {\n size += setOverlaps[set][i].size * setOverlaps[set][i].weight;\n }\n\n mostOverlapped.push({set: set, size:size});\n }\n }\n\n // sort by size desc\n function sortOrder(a,b) {\n return b.size - a.size;\n }\n mostOverlapped.sort(sortOrder);\n\n // keep track of what sets have been laid out\n var positioned = {};\n function isPositioned(element) {\n return element.set in positioned;\n }\n\n // adds a point to the output\n function positionSet(point, index) {\n circles[index].x = point.x;\n circles[index].y = point.y;\n positioned[index] = true;\n }\n\n // add most overlapped set at (0,0)\n positionSet({x: 0, y: 0}, mostOverlapped[0].set);\n\n // get distances between all points. TODO, necessary?\n // answer: probably not\n // var distances = venn.getDistanceMatrices(circles, areas).distances;\n for (i = 1; i < mostOverlapped.length; ++i) {\n var setIndex = mostOverlapped[i].set,\n overlap = setOverlaps[setIndex].filter(isPositioned);\n set = circles[setIndex];\n overlap.sort(sortOrder);\n\n if (overlap.length === 0) {\n // this shouldn't happen anymore with addMissingAreas\n throw \"ERROR: missing pairwise overlap information\";\n }\n\n var points = [];\n for (var j = 0; j < overlap.length; ++j) {\n // get appropriate distance from most overlapped already added set\n var p1 = circles[overlap[j].set],\n d1 = distanceFromIntersectArea(set.radius, p1.radius,\n overlap[j].size);\n\n // sample positions at 90 degrees for maximum aesthetics\n points.push({x : p1.x + d1, y : p1.y});\n points.push({x : p1.x - d1, y : p1.y});\n points.push({y : p1.y + d1, x : p1.x});\n points.push({y : p1.y - d1, x : p1.x});\n\n // if we have at least 2 overlaps, then figure out where the\n // set should be positioned analytically and try those too\n for (var k = j + 1; k < overlap.length; ++k) {\n var p2 = circles[overlap[k].set],\n d2 = distanceFromIntersectArea(set.radius, p2.radius,\n overlap[k].size);\n\n var extraPoints = circleCircleIntersection(\n { x: p1.x, y: p1.y, radius: d1},\n { x: p2.x, y: p2.y, radius: d2});\n\n for (var l = 0; l < extraPoints.length; ++l) {\n points.push(extraPoints[l]);\n }\n }\n }\n\n // we have some candidate positions for the set, examine loss\n // at each position to figure out where to put it at\n var bestLoss = 1e50, bestPoint = points[0];\n for (j = 0; j < points.length; ++j) {\n circles[setIndex].x = points[j].x;\n circles[setIndex].y = points[j].y;\n var localLoss = loss(circles, areas);\n if (localLoss < bestLoss) {\n bestLoss = localLoss;\n bestPoint = points[j];\n }\n }\n\n positionSet(bestPoint, setIndex);\n }\n\n return circles;\n}\n\n/** Given a bunch of sets, and the desired overlaps between these sets - computes\nthe distance from the actual overlaps to the desired overlaps. Note that\nthis method ignores overlaps of more than 2 circles */\nfunction lossFunction(sets, overlaps) {\n var output = 0;\n\n function getCircles(indices) {\n return indices.map(function(i) { return sets[i]; });\n }\n\n for (var i = 0; i < overlaps.length; ++i) {\n var area = overlaps[i], overlap;\n if (area.sets.length == 1) {\n continue;\n } else if (area.sets.length == 2) {\n var left = sets[area.sets[0]],\n right = sets[area.sets[1]];\n overlap = circleOverlap(left.radius, right.radius,\n distance(left, right));\n } else {\n overlap = intersectionArea(getCircles(area.sets));\n }\n\n var weight = area.hasOwnProperty('weight') ? area.weight : 1.0;\n output += weight * (overlap - area.size) * (overlap - area.size);\n }\n\n return output;\n}\n\n// orientates a bunch of circles to point in orientation\nfunction orientateCircles(circles, orientation, orientationOrder) {\n if (orientationOrder === null) {\n circles.sort(function (a, b) { return b.radius - a.radius; });\n } else {\n circles.sort(orientationOrder);\n }\n\n var i;\n // shift circles so largest circle is at (0, 0)\n if (circles.length > 0) {\n var largestX = circles[0].x,\n largestY = circles[0].y;\n\n for (i = 0; i < circles.length; ++i) {\n circles[i].x -= largestX;\n circles[i].y -= largestY;\n }\n }\n\n if (circles.length == 2) {\n // if the second circle is a subset of the first, arrange so that\n // it is off to one side. hack for https://github.com/benfred/venn.js/issues/120\n var dist = distance(circles[0], circles[1]);\n if (dist < Math.abs(circles[1].radius - circles[0].radius)) {\n circles[1].x = circles[0].x + circles[0].radius - circles[1].radius - 1e-10;\n circles[1].y = circles[0].y;\n }\n }\n\n // rotate circles so that second largest is at an angle of 'orientation'\n // from largest\n if (circles.length > 1) {\n var rotation = Math.atan2(circles[1].x, circles[1].y) - orientation,\n c = Math.cos(rotation),\n s = Math.sin(rotation), x, y;\n\n for (i = 0; i < circles.length; ++i) {\n x = circles[i].x;\n y = circles[i].y;\n circles[i].x = c * x - s * y;\n circles[i].y = s * x + c * y;\n }\n }\n\n // mirror solution if third solution is above plane specified by\n // first two circles\n if (circles.length > 2) {\n var angle = Math.atan2(circles[2].x, circles[2].y) - orientation;\n while (angle < 0) { angle += 2* Math.PI; }\n while (angle > 2*Math.PI) { angle -= 2* Math.PI; }\n if (angle > Math.PI) {\n var slope = circles[1].y / (1e-10 + circles[1].x);\n for (i = 0; i < circles.length; ++i) {\n var d = (circles[i].x + slope * circles[i].y) / (1 + slope*slope);\n circles[i].x = 2 * d - circles[i].x;\n circles[i].y = 2 * d * slope - circles[i].y;\n }\n }\n }\n}\n\nfunction disjointCluster(circles) {\n // union-find clustering to get disjoint sets\n circles.map(function(circle) { circle.parent = circle; });\n\n // path compression step in union find\n function find(circle) {\n if (circle.parent !== circle) {\n circle.parent = find(circle.parent);\n }\n return circle.parent;\n }\n\n function union(x, y) {\n var xRoot = find(x), yRoot = find(y);\n xRoot.parent = yRoot;\n }\n\n // get the union of all overlapping sets\n for (var i = 0; i < circles.length; ++i) {\n for (var j = i + 1; j < circles.length; ++j) {\n var maxDistance = circles[i].radius + circles[j].radius;\n if (distance(circles[i], circles[j]) + 1e-10 < maxDistance) {\n union(circles[j], circles[i]);\n }\n }\n }\n\n // find all the disjoint clusters and group them together\n var disjointClusters = {}, setid;\n for (i = 0; i < circles.length; ++i) {\n setid = find(circles[i]).parent.setid;\n if (!(setid in disjointClusters)) {\n disjointClusters[setid] = [];\n }\n disjointClusters[setid].push(circles[i]);\n }\n\n // cleanup bookkeeping\n circles.map(function(circle) { delete circle.parent; });\n\n // return in more usable form\n var ret = [];\n for (setid in disjointClusters) {\n if (disjointClusters.hasOwnProperty(setid)) {\n ret.push(disjointClusters[setid]);\n }\n }\n return ret;\n}\n\nfunction getBoundingBox(circles) {\n var minMax = function(d) {\n var hi = Math.max.apply(null, circles.map(\n function(c) { return c[d] + c.radius; } )),\n lo = Math.min.apply(null, circles.map(\n function(c) { return c[d] - c.radius;} ));\n return {max:hi, min:lo};\n };\n\n return {xRange: minMax('x'), yRange: minMax('y')};\n}\n\nfunction normalizeSolution(solution, orientation, orientationOrder) {\n if (orientation === null){\n orientation = Math.PI/2;\n }\n\n // work with a list instead of a dictionary, and take a copy so we\n // don't mutate input\n var circles = [], i, setid;\n for (setid in solution) {\n if (solution.hasOwnProperty(setid)) {\n var previous = solution[setid];\n circles.push({x: previous.x,\n y: previous.y,\n radius: previous.radius,\n setid: setid});\n }\n }\n\n // get all the disjoint clusters\n var clusters = disjointCluster(circles);\n\n // orientate all disjoint sets, get sizes\n for (i = 0; i < clusters.length; ++i) {\n orientateCircles(clusters[i], orientation, orientationOrder);\n var bounds = getBoundingBox(clusters[i]);\n clusters[i].size = (bounds.xRange.max - bounds.xRange.min) * (bounds.yRange.max - bounds.yRange.min);\n clusters[i].bounds = bounds;\n }\n clusters.sort(function(a, b) { return b.size - a.size; });\n\n // orientate the largest at 0,0, and get the bounds\n circles = clusters[0];\n var returnBounds = circles.bounds;\n\n var spacing = (returnBounds.xRange.max - returnBounds.xRange.min)/50;\n\n function addCluster(cluster, right, bottom) {\n if (!cluster) return;\n\n var bounds = cluster.bounds, xOffset, yOffset, centreing;\n\n if (right) {\n xOffset = returnBounds.xRange.max - bounds.xRange.min + spacing;\n } else {\n xOffset = returnBounds.xRange.max - bounds.xRange.max;\n centreing = (bounds.xRange.max - bounds.xRange.min) / 2 -\n (returnBounds.xRange.max - returnBounds.xRange.min) / 2;\n if (centreing < 0) xOffset += centreing;\n }\n\n if (bottom) {\n yOffset = returnBounds.yRange.max - bounds.yRange.min + spacing;\n } else {\n yOffset = returnBounds.yRange.max - bounds.yRange.max;\n centreing = (bounds.yRange.max - bounds.yRange.min) / 2 -\n (returnBounds.yRange.max - returnBounds.yRange.min) / 2;\n if (centreing < 0) yOffset += centreing;\n }\n\n for (var j = 0; j < cluster.length; ++j) {\n cluster[j].x += xOffset;\n cluster[j].y += yOffset;\n circles.push(cluster[j]);\n }\n }\n\n var index = 1;\n while (index < clusters.length) {\n addCluster(clusters[index], true, false);\n addCluster(clusters[index+1], false, true);\n addCluster(clusters[index+2], true, true);\n index += 3;\n\n // have one cluster (in top left). lay out next three relative\n // to it in a grid\n returnBounds = getBoundingBox(circles);\n }\n\n // convert back to solution form\n var ret = {};\n for (i = 0; i < circles.length; ++i) {\n ret[circles[i].setid] = circles[i];\n }\n return ret;\n}\n\n/** Scales a solution from venn.venn or venn.greedyLayout such that it fits in\na rectangle of width/height - with padding around the borders. also\ncenters the diagram in the available space at the same time */\nfunction scaleSolution(solution, width, height, padding) {\n var circles = [], setids = [];\n for (var setid in solution) {\n if (solution.hasOwnProperty(setid)) {\n setids.push(setid);\n circles.push(solution[setid]);\n }\n }\n\n width -= 2*padding;\n height -= 2*padding;\n\n var bounds = getBoundingBox(circles),\n xRange = bounds.xRange,\n yRange = bounds.yRange;\n\n if ((xRange.max == xRange.min) ||\n (yRange.max == yRange.min)) {\n console.log(\"not scaling solution: zero size detected\");\n return solution;\n }\n\n var xScaling = width / (xRange.max - xRange.min),\n yScaling = height / (yRange.max - yRange.min),\n scaling = Math.min(yScaling, xScaling),\n\n // while we're at it, center the diagram too\n xOffset = (width - (xRange.max - xRange.min) * scaling) / 2,\n yOffset = (height - (yRange.max - yRange.min) * scaling) / 2;\n\n var scaled = {};\n for (var i = 0; i < circles.length; ++i) {\n var circle = circles[i];\n scaled[setids[i]] = {\n radius: scaling * circle.radius,\n x: padding + xOffset + (circle.x - xRange.min) * scaling,\n y: padding + yOffset + (circle.y - yRange.min) * scaling,\n };\n }\n\n return scaled;\n}\n\n/*global console:true*/\n\nfunction VennDiagram() {\n var width = 600,\n height = 350,\n padding = 15,\n duration = 1000,\n orientation = Math.PI / 2,\n normalize = true,\n wrap = true,\n styled = true,\n fontSize = null,\n orientationOrder = null,\n\n // mimic the behaviour of d3.scale.category10 from the previous\n // version of d3\n colourMap = {},\n\n // so this is the same as d3.schemeCategory10, which is only defined in d3 4.0\n // since we can support older versions of d3 as long as we don't force this,\n // I'm hackily redefining below. TODO: remove this and change to d3.schemeCategory10\n colourScheme = [\"#1f77b4\", \"#ff7f0e\", \"#2ca02c\", \"#d62728\", \"#9467bd\", \"#8c564b\", \"#e377c2\", \"#7f7f7f\", \"#bcbd22\", \"#17becf\"],\n colourIndex = 0,\n colours = function(key) {\n if (key in colourMap) {\n return colourMap[key];\n }\n var ret = colourMap[key] = colourScheme[colourIndex];\n colourIndex += 1;\n if (colourIndex >= colourScheme.length) {\n colourIndex = 0;\n }\n return ret;\n },\n layoutFunction = venn,\n loss = lossFunction;\n\n\n function chart(selection) {\n var data = selection.datum();\n\n // handle 0-sized sets by removing from input\n var toremove = {};\n data.forEach(function(datum) {\n if ((datum.size == 0) && datum.sets.length == 1) {\n toremove[datum.sets[0]] = 1;\n }\n });\n data = data.filter(function(datum) {\n return !datum.sets.some(function(set) { return set in toremove; });\n });\n\n var circles = {};\n var textCentres = {};\n\n if (data.length > 0) {\n var solution = layoutFunction(data, {lossFunction: loss});\n\n if (normalize) {\n solution = normalizeSolution(solution,\n orientation,\n orientationOrder);\n }\n\n circles = scaleSolution(solution, width, height, padding);\n textCentres = computeTextCentres(circles, data);\n }\n\n // Figure out the current label for each set. These can change\n // and D3 won't necessarily update (fixes https://github.com/benfred/venn.js/issues/103)\n var labels = {};\n data.forEach(function(datum) {\n if (datum.label) {\n labels[datum.sets] = datum.label;\n }\n });\n\n function label(d) {\n if (d.sets in labels) {\n return labels[d.sets];\n }\n if (d.sets.length == 1) {\n return '' + d.sets[0];\n }\n }\n\n // create svg if not already existing\n selection.selectAll(\"svg\").data([circles]).enter().append(\"svg\");\n\n var svg = selection.select(\"svg\")\n .attr(\"width\", width)\n .attr(\"height\", height);\n\n // to properly transition intersection areas, we need the\n // previous circles locations. load from elements\n var previous = {}, hasPrevious = false;\n svg.selectAll(\".venn-area path\").each(function (d) {\n var path = d3Selection.select(this).attr(\"d\");\n if ((d.sets.length == 1) && path) {\n hasPrevious = true;\n previous[d.sets[0]] = circleFromPath(path);\n }\n });\n\n // interpolate intersection area paths between previous and\n // current paths\n var pathTween = function(d) {\n return function(t) {\n var c = d.sets.map(function(set) {\n var start = previous[set], end = circles[set];\n if (!start) {\n start = {x : width/2, y : height/2, radius : 1};\n }\n if (!end) {\n end = {x : width/2, y : height/2, radius : 1};\n }\n return {'x' : start.x * (1 - t) + end.x * t,\n 'y' : start.y * (1 - t) + end.y * t,\n 'radius' : start.radius * (1 - t) + end.radius * t};\n });\n return intersectionAreaPath(c);\n };\n };\n\n // update data, joining on the set ids\n var nodes = svg.selectAll(\".venn-area\")\n .data(data, function(d) { return d.sets; });\n\n // create new nodes\n var enter = nodes.enter()\n .append('g')\n .attr(\"class\", function(d) {\n return \"venn-area venn-\" +\n (d.sets.length == 1 ? \"circle\" : \"intersection\");\n })\n .attr(\"data-venn-sets\", function(d) {\n return d.sets.join(\"_\");\n });\n\n var enterPath = enter.append(\"path\"),\n enterText = enter.append(\"text\")\n .attr(\"class\", \"label\")\n .text(function (d) { return label(d); } )\n .attr(\"text-anchor\", \"middle\")\n .attr(\"dy\", \".35em\")\n .attr(\"x\", width/2)\n .attr(\"y\", height/2);\n\n\n // apply minimal style if wanted\n if (styled) {\n enterPath.style(\"fill-opacity\", \"0\")\n .filter(function (d) { return d.sets.length == 1; } )\n .style(\"fill\", function(d) { return colours(d.sets); })\n .style(\"fill-opacity\", \".25\");\n\n enterText\n .style(\"fill\", function(d) { return d.sets.length == 1 ? colours(d.sets) : \"#444\"; });\n }\n\n // update existing, using pathTween if necessary\n var update = selection;\n if (hasPrevious) {\n update = selection.transition(\"venn\").duration(duration);\n update.selectAll(\"path\")\n .attrTween(\"d\", pathTween);\n } else {\n update.selectAll(\"path\")\n .attr(\"d\", function(d) {\n return intersectionAreaPath(d.sets.map(function (set) { return circles[set]; }));\n });\n }\n\n var updateText = update.selectAll(\"text\")\n .filter(function (d) { return d.sets in textCentres; })\n .text(function (d) { return label(d); } )\n .attr(\"x\", function(d) { return Math.floor(textCentres[d.sets].x);})\n .attr(\"y\", function(d) { return Math.floor(textCentres[d.sets].y);});\n\n if (wrap) {\n if (hasPrevious) {\n // d3 4.0 uses 'on' for events on transitions,\n // but d3 3.0 used 'each' instead. switch appropiately\n if ('on' in updateText) {\n updateText.on(\"end\", wrapText(circles, label));\n } else {\n updateText.each(\"end\", wrapText(circles, label));\n }\n } else {\n updateText.each(wrapText(circles, label));\n }\n }\n\n // remove old\n var exit = nodes.exit().transition('venn').duration(duration).remove();\n exit.selectAll(\"path\")\n .attrTween(\"d\", pathTween);\n\n var exitText = exit.selectAll(\"text\")\n .attr(\"x\", width/2)\n .attr(\"y\", height/2);\n\n // if we've been passed a fontSize explicitly, use it to\n // transition\n if (fontSize !== null) {\n enterText.style(\"font-size\", \"0px\");\n updateText.style(\"font-size\", fontSize);\n exitText.style(\"font-size\", \"0px\");\n }\n\n\n return {'circles': circles,\n 'textCentres': textCentres,\n 'nodes': nodes,\n 'enter': enter,\n 'update': update,\n 'exit': exit};\n }\n\n chart.wrap = function(_) {\n if (!arguments.length) return wrap;\n wrap = _;\n return chart;\n };\n\n chart.width = function(_) {\n if (!arguments.length) return width;\n width = _;\n return chart;\n };\n\n chart.height = function(_) {\n if (!arguments.length) return height;\n height = _;\n return chart;\n };\n\n chart.padding = function(_) {\n if (!arguments.length) return padding;\n padding = _;\n return chart;\n };\n\n chart.colours = function(_) {\n if (!arguments.length) return colours;\n colours = _;\n return chart;\n };\n\n chart.fontSize = function(_) {\n if (!arguments.length) return fontSize;\n fontSize = _;\n return chart;\n };\n\n chart.duration = function(_) {\n if (!arguments.length) return duration;\n duration = _;\n return chart;\n };\n\n chart.layoutFunction = function(_) {\n if (!arguments.length) return layoutFunction;\n layoutFunction = _;\n return chart;\n };\n\n chart.normalize = function(_) {\n if (!arguments.length) return normalize;\n normalize = _;\n return chart;\n };\n\n chart.styled = function(_) {\n if (!arguments.length) return styled;\n styled = _;\n return chart;\n };\n\n chart.orientation = function(_) {\n if (!arguments.length) return orientation;\n orientation = _;\n return chart;\n };\n\n chart.orientationOrder = function(_) {\n if (!arguments.length) return orientationOrder;\n orientationOrder = _;\n return chart;\n };\n\n chart.lossFunction = function(_) {\n if (!arguments.length) return loss;\n loss = _;\n return chart;\n };\n\n return chart;\n}\n// sometimes text doesn't fit inside the circle, if thats the case lets wrap\n// the text here such that it fits\n// todo: looks like this might be merged into d3 (\n// https://github.com/mbostock/d3/issues/1642),\n// also worth checking out is\n// http://engineering.findthebest.com/wrapping-axis-labels-in-d3-js/\n// this seems to be one of those things that should be easy but isn't\nfunction wrapText(circles, labeller) {\n return function() {\n var text = d3Selection.select(this),\n data = text.datum(),\n width = circles[data.sets[0]].radius || 50,\n label = labeller(data) || '';\n\n var words = label.split(/\\s+/).reverse(),\n maxLines = 3,\n minChars = (label.length + words.length) / maxLines,\n word = words.pop(),\n line = [word],\n joined,\n lineNumber = 0,\n lineHeight = 1.1, // ems\n tspan = text.text(null).append(\"tspan\").text(word);\n\n while (true) {\n word = words.pop();\n if (!word) break;\n line.push(word);\n joined = line.join(\" \");\n tspan.text(joined);\n if (joined.length > minChars && tspan.node().getComputedTextLength() > width) {\n line.pop();\n tspan.text(line.join(\" \"));\n line = [word];\n tspan = text.append(\"tspan\").text(word);\n lineNumber++;\n }\n }\n\n var initial = 0.35 - lineNumber * lineHeight / 2,\n x = text.attr(\"x\"),\n y = text.attr(\"y\");\n\n text.selectAll(\"tspan\")\n .attr(\"x\", x)\n .attr(\"y\", y)\n .attr(\"dy\", function(d, i) {\n return (initial + i * lineHeight) + \"em\";\n });\n };\n}\n\nfunction circleMargin(current, interior, exterior) {\n var margin = interior[0].radius - distance(interior[0], current), i, m;\n for (i = 1; i < interior.length; ++i) {\n m = interior[i].radius - distance(interior[i], current);\n if (m <= margin) {\n margin = m;\n }\n }\n\n for (i = 0; i < exterior.length; ++i) {\n m = distance(exterior[i], current) - exterior[i].radius;\n if (m <= margin) {\n margin = m;\n }\n }\n return margin;\n}\n\n// compute the center of some circles by maximizing the margin of\n// the center point relative to the circles (interior) after subtracting\n// nearby circles (exterior)\nfunction computeTextCentre(interior, exterior) {\n // get an initial estimate by sampling around the interior circles\n // and taking the point with the biggest margin\n var points = [], i;\n for (i = 0; i < interior.length; ++i) {\n var c = interior[i];\n points.push({x: c.x, y: c.y});\n points.push({x: c.x + c.radius/2, y: c.y});\n points.push({x: c.x - c.radius/2, y: c.y});\n points.push({x: c.x, y: c.y + c.radius/2});\n points.push({x: c.x, y: c.y - c.radius/2});\n }\n var initial = points[0], margin = circleMargin(points[0], interior, exterior);\n for (i = 1; i < points.length; ++i) {\n var m = circleMargin(points[i], interior, exterior);\n if (m >= margin) {\n initial = points[i];\n margin = m;\n }\n }\n\n // maximize the margin numerically\n var solution = nelderMead(\n function(p) { return -1 * circleMargin({x: p[0], y: p[1]}, interior, exterior); },\n [initial.x, initial.y],\n {maxIterations:500, minErrorDelta:1e-10}).x;\n var ret = {x: solution[0], y: solution[1]};\n\n // check solution, fallback as needed (happens if fully overlapped\n // etc)\n var valid = true;\n for (i = 0; i < interior.length; ++i) {\n if (distance(ret, interior[i]) > interior[i].radius) {\n valid = false;\n break;\n }\n }\n\n for (i = 0; i < exterior.length; ++i) {\n if (distance(ret, exterior[i]) < exterior[i].radius) {\n valid = false;\n break;\n }\n }\n\n if (!valid) {\n if (interior.length == 1) {\n ret = {x: interior[0].x, y: interior[0].y};\n } else {\n var areaStats = {};\n intersectionArea(interior, areaStats);\n\n if (areaStats.arcs.length === 0) {\n ret = {'x': 0, 'y': -1000, disjoint:true};\n\n } else if (areaStats.arcs.length == 1) {\n ret = {'x': areaStats.arcs[0].circle.x,\n 'y': areaStats.arcs[0].circle.y};\n\n } else if (exterior.length) {\n // try again without other circles\n ret = computeTextCentre(interior, []);\n\n } else {\n // take average of all the points in the intersection\n // polygon. this should basically never happen\n // and has some issues:\n // https://github.com/benfred/venn.js/issues/48#issuecomment-146069777\n ret = getCenter(areaStats.arcs.map(function (a) { return a.p1; }));\n }\n }\n }\n\n return ret;\n}\n\n// given a dictionary of {setid : circle}, returns\n// a dictionary of setid to list of circles that completely overlap it\nfunction getOverlappingCircles(circles) {\n var ret = {}, circleids = [];\n for (var circleid in circles) {\n circleids.push(circleid);\n ret[circleid] = [];\n }\n for (var i = 0; i < circleids.length; i++) {\n var a = circles[circleids[i]];\n for (var j = i + 1; j < circleids.length; ++j) {\n var b = circles[circleids[j]],\n d = distance(a, b);\n\n if (d + b.radius <= a.radius + 1e-10) {\n ret[circleids[j]].push(circleids[i]);\n\n } else if (d + a.radius <= b.radius + 1e-10) {\n ret[circleids[i]].push(circleids[j]);\n }\n }\n }\n return ret;\n}\n\nfunction computeTextCentres(circles, areas) {\n var ret = {}, overlapped = getOverlappingCircles(circles);\n for (var i = 0; i < areas.length; ++i) {\n var area = areas[i].sets, areaids = {}, exclude = {};\n for (var j = 0; j < area.length; ++j) {\n areaids[area[j]] = true;\n var overlaps = overlapped[area[j]];\n // keep track of any circles that overlap this area,\n // and don't consider for purposes of computing the text\n // centre\n for (var k = 0; k < overlaps.length; ++k) {\n exclude[overlaps[k]] = true;\n }\n }\n\n var interior = [], exterior = [];\n for (var setid in circles) {\n if (setid in areaids) {\n interior.push(circles[setid]);\n } else if (!(setid in exclude)) {\n exterior.push(circles[setid]);\n }\n }\n var centre = computeTextCentre(interior, exterior);\n ret[area] = centre;\n if (centre.disjoint && (areas[i].size > 0)) {\n console.log(\"WARNING: area \" + area + \" not represented on screen\");\n }\n }\n return ret;\n}\n\n// sorts all areas in the venn diagram, so that\n// a particular area is on top (relativeTo) - and\n// all other areas are so that the smallest areas are on top\nfunction sortAreas(div, relativeTo) {\n\n // figure out sets that are completly overlapped by relativeTo\n var overlaps = getOverlappingCircles(div.selectAll(\"svg\").datum());\n var exclude = {};\n for (var i = 0; i < relativeTo.sets.length; ++i) {\n var check = relativeTo.sets[i];\n for (var setid in overlaps) {\n var overlap = overlaps[setid];\n for (var j = 0; j < overlap.length; ++j) {\n if (overlap[j] == check) {\n exclude[setid] = true;\n break;\n }\n }\n }\n }\n\n // checks that all sets are in exclude;\n function shouldExclude(sets) {\n for (var i = 0; i < sets.length; ++i) {\n if (!(sets[i] in exclude)) {\n return false;\n }\n }\n return true;\n }\n\n // need to sort div's so that Z order is correct\n div.selectAll(\"g\").sort(function (a, b) {\n // highest order set intersections first\n if (a.sets.length != b.sets.length) {\n return a.sets.length - b.sets.length;\n }\n\n if (a == relativeTo) {\n return shouldExclude(b.sets) ? -1 : 1;\n }\n if (b == relativeTo) {\n return shouldExclude(a.sets) ? 1 : -1;\n }\n\n // finally by size\n return b.size - a.size;\n });\n}\n\nfunction circlePath(x, y, r) {\n var ret = [];\n ret.push(\"\\nM\", x, y);\n ret.push(\"\\nm\", -r, 0);\n ret.push(\"\\na\", r, r, 0, 1, 0, r *2, 0);\n ret.push(\"\\na\", r, r, 0, 1, 0,-r *2, 0);\n return ret.join(\" \");\n}\n\n// inverse of the circlePath function, returns a circle object from an svg path\nfunction circleFromPath(path) {\n var tokens = path.split(' ');\n return {'x' : parseFloat(tokens[1]),\n 'y' : parseFloat(tokens[2]),\n 'radius' : -parseFloat(tokens[4])\n };\n}\n\n/** returns a svg path of the intersection area of a bunch of circles */\nfunction intersectionAreaPath(circles) {\n var stats = {};\n intersectionArea(circles, stats);\n var arcs = stats.arcs;\n\n if (arcs.length === 0) {\n return \"M 0 0\";\n\n } else if (arcs.length == 1) {\n var circle = arcs[0].circle;\n return circlePath(circle.x, circle.y, circle.radius);\n\n } else {\n // draw path around arcs\n var ret = [\"\\nM\", arcs[0].p2.x, arcs[0].p2.y];\n for (var i = 0; i < arcs.length; ++i) {\n var arc = arcs[i], r = arc.circle.radius, wide = arc.width > r;\n ret.push(\"\\nA\", r, r, 0, wide ? 1 : 0, 1,\n arc.p1.x, arc.p1.y);\n }\n return ret.join(\" \");\n }\n}\n\nexports.intersectionArea = intersectionArea;\nexports.circleCircleIntersection = circleCircleIntersection;\nexports.circleOverlap = circleOverlap;\nexports.circleArea = circleArea;\nexports.distance = distance;\nexports.venn = venn;\nexports.greedyLayout = greedyLayout;\nexports.scaleSolution = scaleSolution;\nexports.normalizeSolution = normalizeSolution;\nexports.bestInitialLayout = bestInitialLayout;\nexports.lossFunction = lossFunction;\nexports.disjointCluster = disjointCluster;\nexports.distanceFromIntersectArea = distanceFromIntersectArea;\nexports.VennDiagram = VennDiagram;\nexports.wrapText = wrapText;\nexports.computeTextCentres = computeTextCentres;\nexports.computeTextCentre = computeTextCentre;\nexports.sortAreas = sortAreas;\nexports.circlePath = circlePath;\nexports.circleFromPath = circleFromPath;\nexports.intersectionAreaPath = intersectionAreaPath;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// C:/Dropbox/www/amcharts4dev/node_modules/venn.js/build/venn.js\n// module id = YT44\n// module chunks = 7005"],"sourceRoot":""}
2022 - 2023 Copyright By Lutfifakee || Padang Blackhat ♥