{"version":3,"sources":["chartjs/chart.js","imagesLoaded/imagesLoaded.pkgd.js","flickity/flickity.pkgd.js","isotope/isotope.pkgd.js","main.js","partials/_responsive-carousel.js","SocialWall/socialWall.widget.js","Card/card.component.js","ConfiguratorCardList/configuratorCardList.component.js","Configurator/configurator.widget.js","ContactForm/contactForm.widget.js","GoogleMap/google-map.component.js","ImageVideo/imageVideo.widget.js","InsightsList/insightsList.widget.js","LanguageSelector/language-selector.component.js","MegaMenu/mega-menu.component.js","PagesSlider/pagesSlider.widget.js","partials/_debouncer.js","partials/_filter.js","partials/_form-validation.js","partials/_iframe-video-background.js","partials/_iubenda.js","partials/_lazy-loading-image.js","partials/_load-more.js","partials/_modal-response.js","partials/_recaptcha.js","SimpleHeading/simple-heading.component.js","ProductHeading/product-heading.component.js","Radar/radar.widget.js","TechnicalSpecifications/technicalSpecifications.widget.js","TextWithVideoBackground/textWithVideoBackground.widget.js","WallpaperImageAndText/wallpaperImageAndText.js"],"names":["t","e","exports","_typeof","module","define","amd","globalThis","self","Chart","window","requestAnimationFrame","i","s","a","n","Array","prototype","slice","call","o","_len","arguments","length","_key","apply","_len2","_key2","clearTimeout","setTimeout","this","h","l","c","d","_class2","_classCallCheck","_request","_charts","Map","_running","_lastDate","_createClass","key","value","listeners","duration","forEach","chart","initial","numSteps","currentStep","Math","min","start","_this2","_update","_refresh","_this3","undefined","Date","now","running","items","r","_active","_total","tick","pop","draw","_notify","get","set","complete","progress","_getAnims","push","_this$_getAnims$items","_toConsumableArray","reduce","max","_duration","cancel","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","b","f","g","p","m","x","_","y","v","w","M","k","S","isArray","map","P","T","O","Z","Y","X","W","V","U","R","Q","N","L","K","G","H","I","J","OiceXe","antiquewEte","aqua","aquamarRe","azuY","beige","bisque","black","blanKedOmond","Xe","XeviTet","bPwn","burlywood","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","crimson","cyan","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","khaki","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","lime","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","navy","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","peru","pRk","plum","powMrXe","purpN","YbeccapurpN","Yd","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","silver","skyXe","UXe","UWay","UgYy","snow","sprRggYF","stAlXe","tan","teO","tEstN","tomato","Qe","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","Object","assign","z","charAt","exec","keys","replace","parseInt","transparent","toLowerCase","_rgb","_valid","concat","rgb","CanvasGradient","CanvasPattern","saturate","darken","hexString","j","$","toString","Number","isFinite","q","endsWith","parseFloat","tt","datasetIndex","index","et","create","it","indexOf","st","nt","merger","ot","at","hasOwnProperty","rt","lt","ht","toUpperCase","ut","size","_step","_iterator","_createForOfIteratorHelper","done","has","err","ct","dt","ft","type","gt","pt","mt","split","xt","bt","_class3","animation","backgroundColor","borderColor","color","datasets","devicePixelRatio","platform","getDevicePixelRatio","elements","events","font","family","style","lineHeight","weight","hover","hoverBackgroundColor","hoverBorderColor","hoverColor","indexAxis","interaction","mode","intersect","maintainAspectRatio","onHover","onClick","parsing","plugins","responsive","scale","scales","showLine","drawActiveElementsOnTop","describe","defineProperties","_defineProperty","_Object$definePropert","writable","enumerable","_scriptable","startsWith","_indexable","_fallback","_t","lo","hi","yt","vt","wt","Mt","kt","_chartjs","defineProperty","configurable","_len3","_key3","St","splice","Pt","Set","add","from","Dt","PI","Ct","Ot","At","POSITIVE_INFINITY","Tt","Lt","Rt","Et","It","log10","zt","sign","Ft","round","Wt","pow","floor","Bt","sqrt","sort","Vt","isNaN","abs","Nt","Ht","jt","$t","Yt","Ut","atan2","angle","distance","Xt","qt","Kt","Gt","Zt","Jt","Qt","te","document","ee","parentNode","host","ie","se","getComputedStyle","ne","getPropertyValue","oe","ae","width","left","right","height","top","bottom","re","canvas","currentDevicePixelRatio","boxSizing","_ref","touches","offsetX","offsetY","target","shadowRoot","getBoundingClientRect","clientX","clientY","box","u","le","he","maxWidth","maxHeight","clientWidth","clientHeight","ce","ctx","setTransform","de","passive","addEventListener","removeEventListener","ue","match","ge","getSortedVisibleDatasetMetas","_o$_t","data","_fe","controller","_sorted","_cachedMeta","iScale","axis","_reversePixels","_sharedOptions","getRange","fe","skip","pe","isPointInArea","inRange","element","xe","getCenterPoint","_t$getProps","getProps","startAngle","endAngle","be","_e","evaluateInteractionItems","modes","dataset","getDatasetMeta","point","nearest","ye","ve","measureText","we","garbageCollect","save","restore","Me","ke","getContext","resetTransform","clearRect","Se","pointStyle","rotation","radius","translate","rotate","drawImage","beginPath","arc","closePath","moveTo","sin","cos","lineTo","SQRT1_2","rect","fill","borderWidth","stroke","Pe","De","clip","Ce","Oe","Ae","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","Te","strokeWidth","strokeColor","string","translation","fillStyle","textAlign","textBaseline","strokeStyle","lineWidth","strokeText","fillText","Le","strikethrough","underline","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","decorationWidth","Re","topLeft","bottomLeft","bottomRight","topRight","Ee","RegExp","Ie","ze","Fe","_step2","_iterator2","Be","Ve","We","Ne","console","warn","He","cacheable","je","$e","Ye","Ue","filter","pos","qe","Ge","Ze","ti","update","maxPadding","horizontal","stack","count","getPadding","outerWidth","outerHeight","_Je","same","other","fullSize","ei","ii","_step4","padding","_iterator4","placed","stackWeight","autoPadding","si","addBox","boxes","position","_layers","removeBox","configure","options","layout","_n8","_n8$options","_n8$options$stackWeig","isHorizontal","leftAndTop","rightAndBottom","chartArea","vertical","beforeLayout","display","freeze","availableWidth","availableHeight","vBoxMaxWidth","hBoxMaxHeight","_step3","_iterator3","includes","Ke","ni","_o8","pi","Symbol","toStringTag","Proxy","deleteProperty","_keys","_step5","_iterator5","ri","li","fi","getOwnPropertyDescriptor","Reflect","_scopes","getPrototypeOf","mi","ownKeys","_storage","oi","_cacheable","_proxy","_context","_subProxy","_stack","_descriptors","ai","setContext","override","isScriptable","Error","join","_step6","_iterator6","isIndexable","allKeys","scriptable","indexable","_t$_scriptable","_t$_indexable","_t$_allKeys","_allKeys","constructor","ci","ui","_step7","_iterator7","_rootScopes","gi","_getTarget","_step8","_iterator8","_step9","_iterator9","_step10","_iterator10","xi","_this$_parsing$key","_parsing","parse","_i","yi","bi","EPSILON","vi","previous","next","wi","Mi","ki","spanGaps","cubicInterpolationMode","tension","capBezierPoints","Si","Pi","Di","Ci","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","Oi","Ai","Ti","Li","Ri","JSON","stringify","Intl","NumberFormat","format","Ei","setWidth","xPlus","leftForLtr","Ii","getPropertyPriority","setProperty","prevTextDirection","zi","Fi","between","compare","normalize","Bi","_ref2","end","loop","Vi","property","_Fi","_ref3","_Fi2","Wi","segments","points","Ni","_loop","_ref4","Hi","stop","_fullLoop","_chart","ji","_datasetIndex","_step11","_iterator11","p0","p1","p0DataIndex","p1DataIndex","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","Ki","Yi","__proto__","easingEffects","getHoverColor","noop","uid","isNullOrUndef","isObject","finiteOrDefault","valueOrDefault","toPercentage","toDimension","callback","each","_elementsEqual","clone","_merger","merge","mergeIf","_mergerIf","_deprecated","resolveObjectKey","_capitalize","defined","isFunction","setsEqual","_isClickEvent","toFontString","_measureText","_longestText","_alignPixel","clearCanvas","drawPoint","_isPointInArea","clipArea","unclipArea","_steppedLineTo","_bezierCurveTo","renderText","addRoundedRectPath","_lookup","_lookupByKey","_rlookupByKey","_filterBetween","listenArrayEvents","unlistenArrayEvents","_arrayUnique","_createResolver","_attachContext","_parseObjectDataRadialScale","splineCurve","splineCurveMonotone","_updateBezierControlPoints","_isDomSupported","_getParentNode","getStyle","getRelativePosition","getMaximumSize","retinaScale","supportsEventListenerOptions","readUsedSize","fontString","requestAnimFrame","throttled","debounce","_toLeftRightCenter","_alignStartEnd","_textX","_pointInLine","_steppedInterpolation","_bezierInterpolation","formatNumber","toLineHeight","_readValueToProps","toTRBL","toTRBLCorners","toPadding","toFont","resolve","_addGrace","createContext","TAU","PITAU","INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","niceNum","_factorize","isNumber","almostEquals","almostWhole","_setMinAndMaxByKey","toRadians","toDegrees","_decimalPlaces","getAngleFromPoint","distanceBetweenPoints","_angleDiff","_normalizeAngle","_angleBetween","_limitValue","_int16Range","_isBetween","getRtlAdapter","overrideTextDirection","restoreTextDirection","_boundSegment","_boundSegments","_computeSegments","Ui","Xi","_inherits","_super","_createSuper","qi","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","Gi","Ji","_step12","_iterator12","contains","Qi","MutationObserver","_step13","_iterator13","addedNodes","removedNodes","observe","childList","subtree","ts","_step14","_iterator14","es","is","ss","ns","ResizeObserver","contentRect","os","disconnect","as","_re","native","rs","_super2","getAttribute","$chartjs","removeAttribute","setAttribute","$proxies","attach","detach","resize","isConnected","ls","OffscreenCanvas","hs","_detectPlatform","BasePlatform","BasicPlatform","DomPlatform","cs","ds","boolean","valid","mix","number","us","to","_fn","fn","_easing","easing","_start","delay","_target","_prop","_from","_to","_promises","Promise","res","rej","fs","gs","colors","properties","numbers","active","show","animations","visible","hide","_properties","getOwnPropertyNames","_step15","_iterator15","$shared","$animations","_createAnimations","wait","all","then","_animateOptions","ps","reverse","ms","_getSortedDatasetMetas","xs","values","bs","stacked","ys","_step16","_iterator16","getMatchingVisibleMetas","vs","_stacks","vScale","id","_top","_bottom","ws","shift","Ms","_step17","_iterator17","_parsed","ks","Ss","Ps","_ctx","_cachedDataOpts","getMeta","_type","_data","_objectData","_drawStart","_drawCount","enableOptionSharing","supportsDecimation","$context","_syncList","initialize","linkScales","_stacked","addElements","getDataset","xAxisID","yAxisID","rAxisID","iAxisID","vAxisID","xScale","getScaleForId","yScale","rScale","isExtensible","_dataCheck","datasetElementType","_resyncElements","config","datasetScopeKeys","getOptionScopes","createResolver","parseArrayData","parseObjectData","parsePrimitiveData","getLabels","_c$d","_this$_parsing","_this$_parsing$xAxisK","xAxisKey","_this$_parsing$yAxisK","yAxisKey","NaN","_getOtherScale","hidden","NEGATIVE_INFINITY","_ref5","_t$getUserBounds","getUserBounds","minDefined","maxDefined","updateRangeFromParsed","getParsed","label","getLabelForValue","_clip","getMaxOverflow","disabled","resolveDatasetElementOptions","resolveDataElementOptions","dataIndex","parsed","raw","_resolveElementOptions","dataElementType","_this4","datasetElementScopeKeys","resolveNamedOptions","datasetAnimationScopeKeys","_animationsDisabled","_resolveAnimations","getSharedOptions","_setStyle","_step18","_iterator18","_step18$value","_slicedToArray","_insertElements","_removeElements","updateElements","_t23","_dataChanges","_sync","Ds","defaults","_this$getProps","_this5","Cs","defaultRoutes","numeric","locale","notation","minimumFractionDigits","maximumFractionDigits","ticks","logarithmic","Os","formatters","Ts","ceil","offset","beginAtZero","bounds","grace","grid","drawBorder","drawOnChartArea","drawTicks","tickLength","tickWidth","tickColor","title","text","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkip","autoSkipPadding","labelOffset","minor","major","align","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","route","Ls","Rs","Is","zs","Bs","_super3","_this6","_margins","paddingTop","paddingBottom","paddingLeft","paddingRight","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_length","_maxLength","_longestTextCache","_startPixel","_endPixel","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_cache","_dataLimitsCached","suggestedMin","suggestedMax","_this$getUserBounds","getMinMax","labels","xLabels","yLabels","beforeUpdate","_this$options","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","source","maxTicksLimit","_tickSize","enabled","As","afterAutoSkip","beforeFit","fit","afterFit","afterUpdate","_alignToPixels","alignToPixels","notifyPlugins","_callHooks","beforeTickToLabelConversion","afterTickToLabelConversion","_isVisible","_getLabelSizes","widest","highest","asin","_this$options2","_this$_getLabelSizes","first","last","_calculatePadding","_handleMargins","_this$options3","_this$options3$ticks","getPixelForTick","_this$options4","generateTickLabels","_computeLabelSizes","_resolveTickFontOptions","gc","widths","heights","getPixelForValue","getBaseValue","tickBorderDash","tickBorderDashOffset","Es","tx1","ty1","tx2","ty2","x1","y1","x2","y2","_getXAxisLabelAlignment","_getYAxisLabelAlignment","textOffset","backdrop","_this$options5","_this$options6","_this$options6$ticks","fillRect","findIndex","setLineDash","lineDashOffset","_computeGridLineItems","_computeLabelArea","_computeLabelItems","_this$options7","_ref6","titleX","titleY","drawBackground","drawGrid","drawTitle","drawLabels","_this7","Vs","scope","isPrototypeOf","register","descriptors","overrides","Ws","_class4","controllers","_typedRegistries","_len4","_key4","_each","_len5","_key5","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_get","_len10","_key10","_len11","_key11","_len12","_key12","_len13","_key13","_this8","_getRegistryForType","isForType","_exec","Ns","_init","_createDescriptors","_step19","_iterator19","plugin","cancelable","_oldCache","_notifyStateChanges","getPlugin","pluginScopeKeys","js","some","$s","Ys","Us","error","Xs","qs","Ks","Gs","Zs","Js","_config","_scopeCache","_resolverCache","clearCache","clear","additionalOptionScopes","_cachedScopes","_step21","_Qs","Qs","resolver","subPrefixes","_iterator21","_step20","_ai","_iterator20","tn","en","sn","nn","on","onComplete","an","onProgress","rn","getElementById","hn","ln","un","dn","instances","_plugins","invalidate","_this9","chartOptionScopes","updateConfig","acquireContext","aspectRatio","_options","_aspectRatio","_metasets","_lastEvent","_listeners","_responsiveListeners","_sortedMetasets","_hiddenIndices","attached","_doResize","resizeDelay","listen","_initialize","_this$options8","bindEvents","_resizeBeforeDraw","_resize","onResize","render","_this10","dposition","dtype","getScale","init","_destroyDatasetMeta","_this11","_dataset","_removeUnreferencedMetasets","order","isDatasetVisible","updateIndex","getController","_bt$datasets$_o","getElement","_updateMetasets","_this12","reset","_resetElements","_updateScales","_checkEventBindings","_updateHiddenIndices","buildOrUpdateControllers","buildOrUpdateElements","_minPadding","_updateLayout","_updateDatasets","_eventHandler","_updateHoverStyles","_this13","ensureScalesHaveIDs","buildOrUpdateScales","unbindEvents","_step22","_iterator22","_getUniformDataChanges","_step22$value","method","_s28","_i30","_this14","_this14$_layers","_idx","_updateDataset","meta","_this$_resizeBeforeDr","_drawDatasets","_drawDataset","setDatasetVisibility","_updateVisibility","_destroy","remove","_stop","releaseContext","_this$canvas","toDataURL","bindUserEvents","bindResponsiveEvents","_this15","_this16","isAttached","_this17","_this18","_ref7","notify","updateHoverStyle","_this19","event","replay","inChartArea","_handleEvent","changed","_this$_active","_getActiveElements","getElementsAtEventForMode","gn","registry","version","getChart","unregister","pn","mn","_date","bn","_custom","barStart","barEnd","_n","yn","wn","Mn","Sn","_super4","_this$_parsing2","_this$_parsing2$xAxis","_this$_parsing2$yAxis","_get2","_getPrototypeOf","getBasePixel","_getRuler","includeOptions","updateSharedOptions","base","head","_calculateBarValuePixels","_calculateBarIndexPixels","enableBorderRadius","center","borderSkipped","_ref8","vn","_ref9","ratio","inflateAmount","updateElement","grouped","_getStacks","barThickness","$bar","getAllParsedValues","xn","pixels","stackCount","_getStackCount","categoryPercentage","barPercentage","_this$_cachedMeta","_this$options9","minBarLength","applyStack","getDataVisibility","getPixelForDecimal","getLineWidthForValue","skipNull","maxBarThickness","chunk","_getStackIndex","Pn","_index_","_value_","_super5","_this$_cachedMeta2","Dn","tooltip","callbacks","_super6","_this20","innerRadius","outerRadius","_this$_parsing$key2","circumference","_getRotation","_getCircumference","getMaxBorderWidth","getMaxOffset","spacing","cutout","_getRingWeight","_this$_getRotationExt","_getRotationExtents","_ref10","ratioX","ratioY","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animateRotate","calculateCircumference","animateScale","_circumference","borderAlign","hoverBorderWidth","hoverOffset","Cn","legend","generateLabels","toggleDataVisibility","formattedValue","_super7","_e$data","_ref11","_a16$getUserBounds","_scaleRanges","xmin","xmax","ymin","ymax","_decimated","segment","animated","_this$_cachedMeta3","_this$options10","updateControlPoints","On","_super8","_this21","bind","_updateRadius","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","getIndexAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","_this22","An","angleLines","circular","pointLabels","_super9","Tn","_super10","getPointPositionForValue","Ln","line","_super11","Rn","BarController","BubbleController","DoughnutController","LineController","PolarAreaController","PieController","RadarController","ScatterController","En","pixelMargin","In","borderRadius","outerStart","outerEnd","innerStart","innerEnd","zn","Fn","_In","Vn","_super12","_this23","fullCircles","_assertThisInitialized","_Ut2","_this$getProps2","_this$getProps3","_this$options11","lineJoin","Wn","lineCap","Nn","Hn","_i$start","_i$end","ilen","jn","_Hn","stepped","_ref12","_ref12$move","move","$n","_Hn2","_ref13","_ref13$move","Yn","Un","Path2D","qn","_super13","_this24","_path","_points","_segments","_pointsUpdated","_o$l","_step24","_iterator24","Xn","path","_step23","_iterator23","Kn","hitRadius","Gn","_super14","_this25","_this$getProps4","_this$getProps5","hoverRadius","Zn","_t$getProps3","Jn","eo","io","so","_super15","_this26","_this$options12","_Qn","outer","inner","_this$getProps6","no","ArcElement","LineElement","PointElement","BarElement","oo","ao","ro","algorithm","beforeElementsUpdate","_o$getUserBounds","_ref14","threshold","samples","_t$p","_objectSpread","destroy","ho","co","uo","_ref15$x","_ref15","_ref15$y","_ref16","po","_mo","interpolate","mo","unshift","xo","bo","_t$scale","_o","_ref17","_ref17$above","above","_ref17$below","below","area","yo","vo","_step25","_iterator25","pathSegment","_step29","_step26","_iterator26","_step27","_iterator27","_step28","_iterator28","_iterator29","_step29$value","_e66$style","_e66$style$background","_e$chart$chartArea","_ref18","Mo","So","_t$boxHeight","boxHeight","_t$boxWidth","boxWidth","usePointStyle","itemHeight","ko","afterDatasetsUpdate","go","$filler","fo","propagate","beforeDraw","drawTime","beforeDatasetsDraw","beforeDatasetDraw","Po","_super16","_this27","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","_this28","_computeTitleHeight","_So","_fitRows","_fitCols","row","col","_this$options13","rtl","_step30","_iterator30","_step31","_iterator31","_draw","_this29","_So2","textDirection","fontColor","lineDash","SQRT2","onLeave","_getLegendItemAt","Do","_element","adjustHitBoxes","afterEvent","handleEvent","_t$legend$options$lab","Co","_super17","_this30","_padding","_this$_drawArgs","_drawArgs","Oo","titleBlock","Ao","WeakMap","To","Lo","average","hasValue","tooltipPosition","Ro","Eo","String","zo","body","footer","bodyFont","titleFont","footerFont","before","lines","after","beforeBody","afterBody","titleSpacing","titleMarginBottom","displayColors","bodySpacing","footerMarginTop","footerSpacing","boxPadding","Bo","yAlign","xAlign","_t$chartArea","caretSize","caretPadding","Vo","cornerRadius","_Ve","Wo","No","Ho","jo","_super18","_this31","opacity","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","tooltipItems","beforeTitle","afterTitle","_this32","beforeLabel","afterLabel","beforeFooter","afterFooter","_this33","_o$getLabelAndValue","getLabelAndValue","itemSort","labelColor","labelPointStyle","labelTextColor","_createItems","getTitle","getBeforeBody","getBody","getAfterBody","getFooter","external","getCaretPosition","x3","y3","_Ve2","titleAlign","titleColor","multiKeyBackground","strokeRect","bodyAlign","bodyColor","_drawColorBox","footerAlign","footerColor","_Ve3","drawCaret","quadraticCurveTo","_updateAnimationTarget","globalAlpha","drawBody","drawFooter","_this34","_ref19","_positionChanged","_ignoreReplayEvents","positioners","Yo","Decimation","Filler","Legend","SubTitle","Title","Tooltip","afterInit","afterDraw","_willRender","Xo","_super19","_this35","_startValue","_valueRange","_addedLabels","_step32","_iterator32","_step32$value","lastIndexOf","_this$getUserBounds2","_this$getMinMax","getDecimalForPixel","qo","_ref20","Ko","_super20","_this36","_endValue","_this$getUserBounds3","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","stepSize","computeTickLimit","getTickLimit","step","precision","maxTicks","includeBounds","maxDigits","_maxDigits","Go","_super21","_this$getMinMax2","handleTickRangeOptions","Zo","Jo","_super22","_this37","_zero","_this$getMinMax3","_this$getUserBounds4","Qo","ta","ea","_pointLabels","centerPointLabels","getPointLabelContext","getPointPosition","drawingArea","setCenterPoint","_pointLabelItems","aa","ra","_super23","_this38","_this$getMinMax4","_this39","_this$_pointLabelItem","_this$options14","_this40","_t$_pointLabelItems$_","_this41","la","animate","angleLines.color","pointLabels.color","ticks.color","millisecond","common","steps","second","minute","hour","day","week","month","quarter","year","ha","ca","da","_adapter","_t$_parseOpts","_parseOpts","parser","isoWeekday","startOf","ua","fa","_t76","ga","pa","_super24","_this42","_unit","_majorUnit","_offsets","_normalized","time","adapters","date","displayFormats","formats","normalized","unit","_this$getUserBounds5","_getLabelBounds","endOf","getLabelTimestamps","_generate","minUnit","_getLabelCapacity","diff","initOffsets","offsetAfterAutoskip","getDecimalForValue","factor","getDataTimestamps","tooltipFormat","datetime","_tickFormatFunction","_getLabelSize","ma","_yt","_t$r","_t$l","_yt2","_t$r2","_t$l2","xa","_super25","_this43","_table","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","ba","CategoryScale","LinearScale","LogarithmicScale","RadialLinearScale","TimeScale","TimeSeriesScale","helpers","_adapters","Animation","Animations","animator","DatasetController","Element","Interaction","layouts","platforms","Scale","Ticks","EvEmitter","_events","once","_onceEvents","off","emitEvent","allOff","require","imagesLoaded","querySelectorAll","getImages","jqDeferred","Deferred","check","img","url","Image","jQuery","images","addElementImages","nodeName","addImage","background","addElementBackgroundImages","nodeType","11","backgroundImage","addBackground","progressedCount","hasAnyBroken","isLoaded","debug","log","isComplete","getIsImageComplete","confirm","naturalWidth","proxyImage","src","onload","onerror","makeJQueryPlugin","promise","factory","jQueryBridget","arraySlice","logError","message","namespace","PluginClass","option","opts","isPlainObject","extend","arg0","$elems","methodName","args","returnValue","pluginMethodStr","elem","instance","updateJQuery","bridget","global","proto","eventName","listener","onceEvents","onceListeners","getSize","getStyleSize","num","measurements","measurementsLength","isBoxSizeOuter","isSetup","div","createElement","borderStyle","documentElement","appendChild","removeChild","querySelector","innerWidth","innerHeight","isBorderBox","offsetWidth","offsetHeight","measurement","paddingWidth","paddingHeight","marginWidth","marginLeft","marginRight","marginHeight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderHeight","borderTopWidth","borderBottomWidth","isBorderBoxSizeOuter","styleWidth","styleHeight","matchesSelector","matchesMethod","ElemProto","matches","prefixes","selector","fizzyUIUtils","utils","prop","makeArray","obj","removeFrom","ary","getParent","getQueryElement","filterFindElements","elems","ffElems","HTMLElement","childElems","debounceMethod","_class","timeoutName","timeout","_this","docReady","readyState","toDashed","str","$1","$2","htmlInit","WidgetClass","dashedNamespace","dataAttr","dataAttrElems","jsDashElems","dataOptionsAttr","attr","className","Flickity","Cell","parent","unselect","side","originSide","setPosition","updateTarget","renderPosition","setDefaultTarget","marginProperty","cellAlign","getPositionValue","select","classList","wrapShift","slideableWidth","Slide","isOriginLeft","cells","addCell","cell","beginMargin","firstMargin","endMargin","lastCell","getLastCell","lastMargin","slideWidth","getCellElements","animatePrototype","isAnimating","restingFrames","applyDragForce","applySelectedAttraction","previousX","integratePhysics","positionSlider","settle","wrapAround","modulo","shiftWrapCells","setTranslateX","dispatchScrollEvent","is3d","cursorPosition","rightToLeft","translateX","slider","transform","firstSlide","slides","positionX","slidesWidth","dispatchEvent","selectedSlide","velocity","percentPosition","isPointerDown","isFreeScrolling","selectedIndex","beforeGap","afterGap","_shiftCells","beforeShiftCells","afterShiftCells","gap","getFrictionFactor","force","dragForce","isDraggable","dragX","applyForce","selectedAttraction","_Flickity","moveElements","toElem","GUID","queryElement","flickityGUID","$element","_create","accessibility","freeScrollFriction","friction","namespaceJQueryEvents","setGallerySize","createMethods","cellAlignShorthands","guid","viewport","_createSlider","watchCSS","activate","isActive","_filterFindCellElements","children","reloadCells","tabIndex","selectInitialIndex","isInitActivated","cellSelector","_makeCells","positionCells","_getWrapShiftCells","cellElem","getLastSlide","_sizeCells","_positionCells","maxCellHeight","startCell","cellX","len","updateSlides","_containSlides","slide","nextMargin","canCellFit","_getCanCellFit","updateSelectedSlide","groupCells","percentMatch","percent","reposition","positionSliderAtSelected","setCellAlign","shorthand","adaptiveHeight","gapX","cellIndex","_unshiftCells","_getGapCells","increment","contentWidth","isContentSmaller","beginBound","endBound","contain","isRightToLeft","emitArgs","$event","jQEvent","Event","trigger","isWrap","isInstant","_wrapSelect","prevIndex","startAnimation","wrapIndex","delta","backWrapDelta","forewardWrapDelta","isDragSelect","unselectSelectedSlide","selectedCells","selectedElements","selectedCell","selectedElement","initialIndex","queryCell","selectCell","getCellSlideIndex","getCell","getCells","getParentCell","getAdjacentCellElements","adjCount","cellElems","slideIndex","uiChange","childUIPointerDown","preventDefault","focus","onresize","content","deactivate","onkeydown","isNotFocused","activeElement","handler","keyboardHandlers","keyCode","37","leftMethod","39","rightMethod","prevScrollY","pageYOffset","preventScroll","scrollTo","pageXOffset","removeData","setJQuery","jq","Unipointer","postStartEvents","bindStartEvent","_bindStartEvent","unbindStartEvent","isAdd","bindMethod","startEvent","PointerEvent","getTouch","touch","identifier","pointerIdentifier","onmousedown","button","_pointerDown","ontouchstart","changedTouches","onpointerdown","pointer","pointerId","pointerDown","_bindPostStartEvents","mousedown","_boundPointerEvents","_unbindPostStartEvents","onmousemove","_pointerMove","onpointermove","ontouchmove","pointerMove","onmouseup","_pointerUp","onpointerup","ontouchend","_pointerDone","pointerUp","_pointerReset","pointerDone","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","getPointerPoint","pageX","pageY","Unidragger","cursorNodes","bindHandles","_bindHandles","unbindHandles","touchAction","_touchActionValue","handles","handle","okayPointerDown","pointerDownPointer","pointerDownBlur","TEXTAREA","INPUT","SELECT","OPTION","clickTypes","radio","checkbox","submit","image","file","isCursorNode","isClickType","isOkay","focused","blur","moveVector","_dragPointerMove","_dragMove","isDragging","hasDragStarted","_dragStart","_dragPointerUp","_dragEnd","_staticClick","isPreventingClicks","dragStart","dragMove","dragEnd","onclick","isIgnoringMouseUp","staticClick","draggable","dragThreshold","isTouch","isTouchmoveScrollCanceled","focusNodes","_createDrag","onActivateDrag","_uiChangeDrag","onDeactivateDrag","updateDraggable","bindDrag","unbindDrag","_pointerDownPreventDefault","pointerDownFocus","pointerDownScroll","getScrollPosition","_pointerDownDefault","isTouchStart","isTouchPointer","pointerType","isFocusNode","isTouchScrolling","dragStartPosition","previousDragX","direction","originBound","dragMoveTime","restingX","freeScroll","dragEndRestingSelect","getRestingPosition","dragEndBoostSelect","getSlideDistance","positiveResting","_getClosestResting","negativeResting","minDistance","Infinity","condition","md","isWrapAround","wrap","clickedCell","onscroll","scroll","scrollMoveX","scrollMoveY","svgURI","PrevNextButton","isEnabled","isPrevious","leftDirection","isLeft","svg","disable","createSVG","createElementNS","pathMovements","shape","arrowShape","x0","enable","lastIndex","boundIndex","prevNextButtons","_createPrevNextButtons","prevButton","nextButton","activatePrevNextButtons","deactivatePrevNextButtons","PageDots","holder","dots","handleClick","setDots","addDots","removeDots","fragment","createDocumentFragment","newDots","dot","updateSelected","selectedDot","onTap","pageDots","_createPageDots","activatePageDots","updateSelectedPageDots","updatePageDots","deactivatePageDots","Player","state","onVisibilityChange","visibilityChange","onVisibilityPlay","visibilityPlay","play","autoPlay","pause","unpause","pauseAutoPlayOnHover","_createPlayer","player","activatePlayer","stopPlayer","deactivatePlayer","playPlayer","pausePlayer","unpausePlayer","onmouseenter","onmouseleave","insert","isAppend","insertCellElement","endCells","insertBefore","cellChange","append","prepend","minCellIndex","cellSizeChange","changedCellIndex","isPositioningSlider","prevSelectedElem","LazyLoader","flickity","load","_createLazyload","lazyLoad","lazyImages","lazyCellImages","lazyloadAttr","srcAttr","srcsetAttr","imgs","getCellLazyImages","srcset","_createAsNavFor","activateAsNavFor","deactivateAsNavFor","destroyAsNavFor","asNavForOption","asNavFor","setNavCompanion","companion","navCompanion","onNavCompanionSelect","navCompanionSelect","onNavStaticClick","firstIndex","selectIndex","removeNavSelectedElements","navSelectedElements","changeNavSelectedClass","navElem","cellElement","ImagesLoaded","onAlways","queryElem","elementNodeTypes","childImgs","child","LoadingImage","Background","reURL","loadingImage","jqMethod","_createImagesLoaded","Outlayer","Item","docElemStyle","transitionProperty","transition","transformProperty","transitionEndEvent","WebkitTransition","vendorProperties","transitionDuration","transitionDelay","_transn","ingProperties","clean","onEnd","css","elemStyle","getPosition","_getOption","isOriginTop","xValue","yValue","layoutSize","layoutPosition","xResetProperty","yPadding","getXValue","yResetProperty","getYValue","_transitionTo","curX","curY","didNotMove","isTransitioning","transitionStyle","getTranslate","onTransitionEnd","isCleaning","goTo","_nonTransition","_removeStyles","_transition","enableTransition","transitionProps","dashedVendorProperties","staggerDelay","onwebkitTransitionEnd","ontransitionend","onotransitionend","-webkit-transform","cleanTransitionStyle","propertyName","isEmptyObj","disableTransition","removeTransitionStyles","cleanStyle","stagger","removeElem","reveal","isHidden","getHideRevealTransitionEndProperty","onRevealTransitionEnd","hiddenStyle","visibleStyle","styleProperty","optionStyle","onHideTransitionEnd","outlayerGUID","containerStyle","initLayout","originLeft","originTop","resizeContainer","subclass","Parent","SubClass","oldOption","compatOptions","layoutInstant","reloadItems","stamps","stamp","bindResize","_itemize","itemElems","_filterFindItemElements","item","itemSelector","getItemElements","_resetLayout","_manageStamps","_isLayoutInited","layoutItems","_getMeasurement","_getItemsForLayout","_layoutItems","_postLayout","isIgnored","queue","_emitCompleteOnItems","_getItemLayoutPosition","isLayoutInstant","_processLayoutQueue","updateStagger","_positionItem","mult","msUnits","getMilliseconds","_getContainerSize","_setContainerMeasure","measure","isWidth","elemSize","doneCount","ignore","getItem","unignore","_find","unstamp","_getBoundingRect","_manageStamp","boundingRect","_boundingRect","_getElementOffset","thisRect","isResizeBound","unbindResize","needsResizeLayout","addItems","appended","prepended","previousItems","revealItemElements","getItems","hideItemElements","removeItems","Layout","Isotope","itemGUID","sortData","updateSortData","random","getSortData","sorters","_sorters","sorter","LayoutMode","isotope","filteredItems","needsVerticalResizeLayout","getColumnWidth","getSegmentSize","getRowHeight","firstItemSize","segmentName","outerSize","getFirstItemSize","firstItem","Mode","Masonry","fitWidth","measureColumns","colYs","cols","maxY","horizontalColIndex","getContainerWidth","columnWidth","firstItemElem","containerWidth","gutter","excess","container","remainder","colSpan","colPosition","horizontalOrder","setHeight","setMax","_getTopColPosition","colGroup","_getTopColGroup","minimumY","groupCount","_getColGroupY","groupColYs","_getHorizontalColPosition","hasSize","stampSize","firstX","lastX","firstCol","lastCol","stampMaxY","_getContainerFitWidth","unusedCols","previousWidth","MasonryMode","keepModeMethods","isFitWidth","FitRows","itemWidth","Vertical","horizontalAlignment","_parseFloat","_parseInt","trim","layoutMode","isJQueryFiltering","sortAscending","mungeSorter","name","_getSorters","sortHistory","_initLayoutMode","_updateItemsSortData","initialOpts","_layout","arrange","_getIsInstant","filtered","_filter","_bindArrangeComplete","_isInstant","_noTransition","_hideReveal","_sort","needReveal","needHide","isLayoutComplete","isHideComplete","isRevealComplete","arrangeParallelCallback","hiddenMatched","visibleUnmatched","test","_getFilterTest","isMatched","query","attrMatch","getValue","textContent","getValueGetter","sortDataParsers","_x4","_x3","val","sortBys","sortAsc","sortBy","_getIsSameSortBy","itemA","itemB","_mode","_filterRevealAdded","filteredInsertItems","_remove","shuffle","getFilteredItemElements","iso","isDocumentScrolled","componentFunction","initRecaptcha","initFormsValidation","initModalResponse","initIubendaProof","initLoadMore","initModalVideo","initOpenCloseAccordion","jsLazyLoadImages","initBackgroundColorWallpaperImageAndText","initNumberingTechnicalSpecification","initMasonry","initPageSlider","initVideo","initRadarChart","initConfiguratorSlider","initSimpleHeading","initProductHeading","onreadystatechange","initMegaMenu","initSwitchLanguage","configuratorRestultsSlider","configuratorWidgetsArray","configuratorWidget","dataResultConfigurator","initCarousel","dataSlides","dataCarousel","sectionRectTop","initConfiguratorFetch","stepContainerList","dataOption","stepContainer","stepTitle","accordionContainer","stepFeatureList","clickBehaviourAccordion","stepFeature","hasAttribute","nextStepTitle","nextAccordionContainer","scrollIntoView","configuratorFetch","resultConfigurationContainer","dataResultCustomButtonsConfigurator","currentLanguage","fetch","result","parsedHTML","DOMParser","parseFromString","dataConfiguratorToAppend","dataCustomButtonsConfiguratorToAppend","clickElement","description","initFormFieldsToggle","contactFormsArray","form","togglerArray","elementsToBeToggledArray","toggler","toggleFormFields","array","selectToggler","HTMLInputElement","HTMLSelectElement","input","mapsArray","initMapScript","APIKEY","script","async","initMap","singleMap","markerLat","markerLng","markerTitle","markerDescription","google","maps","zoom","lat","lng","Marker","imageVideoWidgetArray","imageVideoWidget","iframeVideo","scrVideo","wrapperImageVideo","videoContainer","modalVideo","modalCloseIcon","clickCloseModalVideoEvent","elementClick","insightsListWidgetsArray","insightsListWidget","accordionInsightsList","plus","minus","titleAccordionInsightsList","descriptionAccordionInsightsList","clickBehaviourOneCloseAccordion","langIcon","dropdownMenuLanguage","megaMenuContainer","openMegaMenuTogglerContainer","closeMegaMenuTogglerContainer","toggle","pageSlidersWidgetsArray","pageSliderWidget","debouncer","func","timeoutId","_this44","_len14","_key14","initFilter","filterInput","itemsToFilterArray","itemsTitleToFilterArray","inputText","innerText","isFormValid","contactForms","submitButton","singleForm","temporaryDisableButton","contactFormRequiredElements","checkFormValidity","isRecaptchaEnabled","recaptchaContainer","widgetId","grecaptcha","execute","arrayOfRequiredElements","errorCounter","isValidItem","checkValidity","parentElement","iframeVideoBackground","HeadingComponentList","HeadingComponent","backgroundVideoDesktop","backgroundVideo","backgroundVideoMobile","html","btoa","encodeURI","innerHTML","textArea","createTextNode","asyncImg","asyncBg","jsLazyLoad","lazyImgs","lazyImagesBG","notLazyNodes","node","lazyImage","resizeBg","buttonsArray","dataContainersArray","dataContainer","clickedButton","HTMLAnchorElement","nextPageUrl","href","cardsToAppendArray","loadMoreButtonId","updatedButton","card","modalResponse","errorResponse","modal","closeModal","URL","location","searchParams","raise","errorConstructor","requestSubmit","submitter","TypeError","DOMException","click","HTMLFormElement","defer","submitAfterCaptcha","token","formToSubmit","sliderSelector","destroyViewport","arrayCarousel","carouselContainer","flickitySlider","arraySliderItems","buttonsContainer","buttonNext","buttonPrevious","ready","simpleHeadingComponentList","productHeadingComponentList","radarWidgetsList","radarWidget","infoRadarHoverFeature","drawRadarChartJS","featuresRadarContainer","productsNamesList","datasContainerList","dataFeatureNameArray","productsNamesArray","opponentDataProductFeatureValueArray","companyDataProductFeatureValueArray","productName","dataproductName","datasContainer","dataFeatureName","dataProductFeatureId","dataProductFeatureValueList","dataProductFeatureValue","pointRadius","pointHoverRadius","pointBackgroundColor","pointBorderColor","pointHoverBackgroundColor","pointHoverBorderColor","chartElement","cursor","context","featureProductsArray","featureProduct","featureName","numericValue","textValue","masonryGrid","elementsArray","masonry","reloadMasonry","technicalSpecificationWidgetsArray","technicalSpecification","tabsTableArray","infoTableContainersArray","infoTableContainer","tabsTable","wallpaperImageAndTextWidgetsArray","wallpaperImageAndTextWidget","textContainer"],"mappings":"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","file":"scriptsbundle.js","sourcesContent":["/*!\r\n * Chart.js v3.7.1\r\n * https://www.chartjs.org\r\n * (c) 2022 Chart.js Contributors\r\n * Released under the MIT License\r\n */\r\n!function (t, e) { \"object\" == typeof exports && \"undefined\" != typeof module ? module.exports = e() : \"function\" == typeof define && define.amd ? define(e) : (t = \"undefined\" != typeof globalThis ? globalThis : t || self).Chart = e() }(this, (function () {\r\n \"use strict\"; const t = \"undefined\" == typeof window ? function (t) { return t() } : window.requestAnimationFrame; function e(e, i, s) { const n = s || (t => Array.prototype.slice.call(t)); let o = !1, a = []; return function (...s) { a = n(s), o || (o = !0, t.call(window, (() => { o = !1, e.apply(i, a) }))) } } function i(t, e) { let i; return function (...s) { return e ? (clearTimeout(i), i = setTimeout(t, e, s)) : t.apply(this, s), e } } const s = t => \"start\" === t ? \"left\" : \"end\" === t ? \"right\" : \"center\", n = (t, e, i) => \"start\" === t ? e : \"end\" === t ? i : (e + i) / 2, o = (t, e, i, s) => t === (s ? \"left\" : \"right\") ? i : \"center\" === t ? (e + i) / 2 : e; var a = new class { constructor() { this._request = null, this._charts = new Map, this._running = !1, this._lastDate = void 0 } _notify(t, e, i, s) { const n = e.listeners[s], o = e.duration; n.forEach((s => s({ chart: t, initial: e.initial, numSteps: o, currentStep: Math.min(i - e.start, o) }))) } _refresh() { this._request || (this._running = !0, this._request = t.call(window, (() => { this._update(), this._request = null, this._running && this._refresh() }))) } _update(t = Date.now()) { let e = 0; this._charts.forEach(((i, s) => { if (!i.running || !i.items.length) return; const n = i.items; let o, a = n.length - 1, r = !1; for (; a >= 0; --a)o = n[a], o._active ? (o._total > i.duration && (i.duration = o._total), o.tick(t), r = !0) : (n[a] = n[n.length - 1], n.pop()); r && (s.draw(), this._notify(s, i, t, \"progress\")), n.length || (i.running = !1, this._notify(s, i, t, \"complete\"), i.initial = !1), e += n.length })), this._lastDate = t, 0 === e && (this._running = !1) } _getAnims(t) { const e = this._charts; let i = e.get(t); return i || (i = { running: !1, initial: !0, items: [], listeners: { complete: [], progress: [] } }, e.set(t, i)), i } listen(t, e, i) { this._getAnims(t).listeners[e].push(i) } add(t, e) { e && e.length && this._getAnims(t).items.push(...e) } has(t) { return this._getAnims(t).items.length > 0 } start(t) { const e = this._charts.get(t); e && (e.running = !0, e.start = Date.now(), e.duration = e.items.reduce(((t, e) => Math.max(t, e._duration)), 0), this._refresh()) } running(t) { if (!this._running) return !1; const e = this._charts.get(t); return !!(e && e.running && e.items.length) } stop(t) { const e = this._charts.get(t); if (!e || !e.items.length) return; const i = e.items; let s = i.length - 1; for (; s >= 0; --s)i[s].cancel(); e.items = [], this._notify(t, e, Date.now(), \"complete\") } remove(t) { return this._charts.delete(t) } };\r\n/*!\r\n * @kurkle/color v0.1.9\r\n * https://github.com/kurkle/color#readme\r\n * (c) 2020 Jukka Kurkela\r\n * Released under the MIT License\r\n */const r = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15 }, l = \"0123456789ABCDEF\", h = t => l[15 & t], c = t => l[(240 & t) >> 4] + l[15 & t], d = t => (240 & t) >> 4 == (15 & t); function u(t) { var e = function (t) { return d(t.r) && d(t.g) && d(t.b) && d(t.a) }(t) ? h : c; return t ? \"#\" + e(t.r) + e(t.g) + e(t.b) + (t.a < 255 ? e(t.a) : \"\") : t } function f(t) { return t + .5 | 0 } const g = (t, e, i) => Math.max(Math.min(t, i), e); function p(t) { return g(f(2.55 * t), 0, 255) } function m(t) { return g(f(255 * t), 0, 255) } function x(t) { return g(f(t / 2.55) / 100, 0, 1) } function b(t) { return g(f(100 * t), 0, 100) } const _ = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/; const y = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/; function v(t, e, i) { const s = e * Math.min(i, 1 - i), n = (e, n = (e + t / 30) % 12) => i - s * Math.max(Math.min(n - 3, 9 - n, 1), -1); return [n(0), n(8), n(4)] } function w(t, e, i) { const s = (s, n = (s + t / 60) % 6) => i - i * e * Math.max(Math.min(n, 4 - n, 1), 0); return [s(5), s(3), s(1)] } function M(t, e, i) { const s = v(t, 1, .5); let n; for (e + i > 1 && (n = 1 / (e + i), e *= n, i *= n), n = 0; n < 3; n++)s[n] *= 1 - e - i, s[n] += e; return s } function k(t) { const e = t.r / 255, i = t.g / 255, s = t.b / 255, n = Math.max(e, i, s), o = Math.min(e, i, s), a = (n + o) / 2; let r, l, h; return n !== o && (h = n - o, l = a > .5 ? h / (2 - n - o) : h / (n + o), r = n === e ? (i - s) / h + (i < s ? 6 : 0) : n === i ? (s - e) / h + 2 : (e - i) / h + 4, r = 60 * r + .5), [0 | r, l || 0, a] } function S(t, e, i, s) { return (Array.isArray(e) ? t(e[0], e[1], e[2]) : t(e, i, s)).map(m) } function P(t, e, i) { return S(v, t, e, i) } function D(t) { return (t % 360 + 360) % 360 } function C(t) { const e = y.exec(t); let i, s = 255; if (!e) return; e[5] !== i && (s = e[6] ? p(+e[5]) : m(+e[5])); const n = D(+e[2]), o = +e[3] / 100, a = +e[4] / 100; return i = \"hwb\" === e[1] ? function (t, e, i) { return S(M, t, e, i) }(n, o, a) : \"hsv\" === e[1] ? function (t, e, i) { return S(w, t, e, i) }(n, o, a) : P(n, o, a), { r: i[0], g: i[1], b: i[2], a: s } } const O = { x: \"dark\", Z: \"light\", Y: \"re\", X: \"blu\", W: \"gr\", V: \"medium\", U: \"slate\", A: \"ee\", T: \"ol\", S: \"or\", B: \"ra\", C: \"lateg\", D: \"ights\", R: \"in\", Q: \"turquois\", E: \"hi\", P: \"ro\", O: \"al\", N: \"le\", M: \"de\", L: \"yello\", F: \"en\", K: \"ch\", G: \"arks\", H: \"ea\", I: \"ightg\", J: \"wh\" }, A = { OiceXe: \"f0f8ff\", antiquewEte: \"faebd7\", aqua: \"ffff\", aquamarRe: \"7fffd4\", azuY: \"f0ffff\", beige: \"f5f5dc\", bisque: \"ffe4c4\", black: \"0\", blanKedOmond: \"ffebcd\", Xe: \"ff\", XeviTet: \"8a2be2\", bPwn: \"a52a2a\", burlywood: \"deb887\", caMtXe: \"5f9ea0\", KartYuse: \"7fff00\", KocTate: \"d2691e\", cSO: \"ff7f50\", cSnflowerXe: \"6495ed\", cSnsilk: \"fff8dc\", crimson: \"dc143c\", cyan: \"ffff\", xXe: \"8b\", xcyan: \"8b8b\", xgTMnPd: \"b8860b\", xWay: \"a9a9a9\", xgYF: \"6400\", xgYy: \"a9a9a9\", xkhaki: \"bdb76b\", xmagFta: \"8b008b\", xTivegYF: \"556b2f\", xSange: \"ff8c00\", xScEd: \"9932cc\", xYd: \"8b0000\", xsOmon: \"e9967a\", xsHgYF: \"8fbc8f\", xUXe: \"483d8b\", xUWay: \"2f4f4f\", xUgYy: \"2f4f4f\", xQe: \"ced1\", xviTet: \"9400d3\", dAppRk: \"ff1493\", dApskyXe: \"bfff\", dimWay: \"696969\", dimgYy: \"696969\", dodgerXe: \"1e90ff\", fiYbrick: \"b22222\", flSOwEte: \"fffaf0\", foYstWAn: \"228b22\", fuKsia: \"ff00ff\", gaRsbSo: \"dcdcdc\", ghostwEte: \"f8f8ff\", gTd: \"ffd700\", gTMnPd: \"daa520\", Way: \"808080\", gYF: \"8000\", gYFLw: \"adff2f\", gYy: \"808080\", honeyMw: \"f0fff0\", hotpRk: \"ff69b4\", RdianYd: \"cd5c5c\", Rdigo: \"4b0082\", ivSy: \"fffff0\", khaki: \"f0e68c\", lavFMr: \"e6e6fa\", lavFMrXsh: \"fff0f5\", lawngYF: \"7cfc00\", NmoncEffon: \"fffacd\", ZXe: \"add8e6\", ZcSO: \"f08080\", Zcyan: \"e0ffff\", ZgTMnPdLw: \"fafad2\", ZWay: \"d3d3d3\", ZgYF: \"90ee90\", ZgYy: \"d3d3d3\", ZpRk: \"ffb6c1\", ZsOmon: \"ffa07a\", ZsHgYF: \"20b2aa\", ZskyXe: \"87cefa\", ZUWay: \"778899\", ZUgYy: \"778899\", ZstAlXe: \"b0c4de\", ZLw: \"ffffe0\", lime: \"ff00\", limegYF: \"32cd32\", lRF: \"faf0e6\", magFta: \"ff00ff\", maPon: \"800000\", VaquamarRe: \"66cdaa\", VXe: \"cd\", VScEd: \"ba55d3\", VpurpN: \"9370db\", VsHgYF: \"3cb371\", VUXe: \"7b68ee\", VsprRggYF: \"fa9a\", VQe: \"48d1cc\", VviTetYd: \"c71585\", midnightXe: \"191970\", mRtcYam: \"f5fffa\", mistyPse: \"ffe4e1\", moccasR: \"ffe4b5\", navajowEte: \"ffdead\", navy: \"80\", Tdlace: \"fdf5e6\", Tive: \"808000\", TivedBb: \"6b8e23\", Sange: \"ffa500\", SangeYd: \"ff4500\", ScEd: \"da70d6\", pOegTMnPd: \"eee8aa\", pOegYF: \"98fb98\", pOeQe: \"afeeee\", pOeviTetYd: \"db7093\", papayawEp: \"ffefd5\", pHKpuff: \"ffdab9\", peru: \"cd853f\", pRk: \"ffc0cb\", plum: \"dda0dd\", powMrXe: \"b0e0e6\", purpN: \"800080\", YbeccapurpN: \"663399\", Yd: \"ff0000\", Psybrown: \"bc8f8f\", PyOXe: \"4169e1\", saddNbPwn: \"8b4513\", sOmon: \"fa8072\", sandybPwn: \"f4a460\", sHgYF: \"2e8b57\", sHshell: \"fff5ee\", siFna: \"a0522d\", silver: \"c0c0c0\", skyXe: \"87ceeb\", UXe: \"6a5acd\", UWay: \"708090\", UgYy: \"708090\", snow: \"fffafa\", sprRggYF: \"ff7f\", stAlXe: \"4682b4\", tan: \"d2b48c\", teO: \"8080\", tEstN: \"d8bfd8\", tomato: \"ff6347\", Qe: \"40e0d0\", viTet: \"ee82ee\", JHt: \"f5deb3\", wEte: \"ffffff\", wEtesmoke: \"f5f5f5\", Lw: \"ffff00\", LwgYF: \"9acd32\" }; let T; function L(t) { T || (T = function () { const t = {}, e = Object.keys(A), i = Object.keys(O); let s, n, o, a, r; for (s = 0; s < e.length; s++) { for (a = r = e[s], n = 0; n < i.length; n++)o = i[n], r = r.replace(o, O[o]); o = parseInt(A[a], 16), t[r] = [o >> 16 & 255, o >> 8 & 255, 255 & o] } return t }(), T.transparent = [0, 0, 0, 0]); const e = T[t.toLowerCase()]; return e && { r: e[0], g: e[1], b: e[2], a: 4 === e.length ? e[3] : 255 } } function R(t, e, i) { if (t) { let s = k(t); s[e] = Math.max(0, Math.min(s[e] + s[e] * i, 0 === e ? 360 : 1)), s = P(s), t.r = s[0], t.g = s[1], t.b = s[2] } } function E(t, e) { return t ? Object.assign(e || {}, t) : t } function I(t) { var e = { r: 0, g: 0, b: 0, a: 255 }; return Array.isArray(t) ? t.length >= 3 && (e = { r: t[0], g: t[1], b: t[2], a: 255 }, t.length > 3 && (e.a = m(t[3]))) : (e = E(t, { r: 0, g: 0, b: 0, a: 1 })).a = m(e.a), e } function z(t) { return \"r\" === t.charAt(0) ? function (t) { const e = _.exec(t); let i, s, n, o = 255; if (e) { if (e[7] !== i) { const t = +e[7]; o = 255 & (e[8] ? p(t) : 255 * t) } return i = +e[1], s = +e[3], n = +e[5], i = 255 & (e[2] ? p(i) : i), s = 255 & (e[4] ? p(s) : s), n = 255 & (e[6] ? p(n) : n), { r: i, g: s, b: n, a: o } } }(t) : C(t) } class F { constructor(t) { if (t instanceof F) return t; const e = typeof t; let i; var s, n, o; \"object\" === e ? i = I(t) : \"string\" === e && (o = (s = t).length, \"#\" === s[0] && (4 === o || 5 === o ? n = { r: 255 & 17 * r[s[1]], g: 255 & 17 * r[s[2]], b: 255 & 17 * r[s[3]], a: 5 === o ? 17 * r[s[4]] : 255 } : 7 !== o && 9 !== o || (n = { r: r[s[1]] << 4 | r[s[2]], g: r[s[3]] << 4 | r[s[4]], b: r[s[5]] << 4 | r[s[6]], a: 9 === o ? r[s[7]] << 4 | r[s[8]] : 255 })), i = n || L(t) || z(t)), this._rgb = i, this._valid = !!i } get valid() { return this._valid } get rgb() { var t = E(this._rgb); return t && (t.a = x(t.a)), t } set rgb(t) { this._rgb = I(t) } rgbString() { return this._valid ? (t = this._rgb) && (t.a < 255 ? `rgba(${t.r}, ${t.g}, ${t.b}, ${x(t.a)})` : `rgb(${t.r}, ${t.g}, ${t.b})`) : this._rgb; var t } hexString() { return this._valid ? u(this._rgb) : this._rgb } hslString() { return this._valid ? function (t) { if (!t) return; const e = k(t), i = e[0], s = b(e[1]), n = b(e[2]); return t.a < 255 ? `hsla(${i}, ${s}%, ${n}%, ${x(t.a)})` : `hsl(${i}, ${s}%, ${n}%)` }(this._rgb) : this._rgb } mix(t, e) { const i = this; if (t) { const s = i.rgb, n = t.rgb; let o; const a = e === o ? .5 : e, r = 2 * a - 1, l = s.a - n.a, h = ((r * l == -1 ? r : (r + l) / (1 + r * l)) + 1) / 2; o = 1 - h, s.r = 255 & h * s.r + o * n.r + .5, s.g = 255 & h * s.g + o * n.g + .5, s.b = 255 & h * s.b + o * n.b + .5, s.a = a * s.a + (1 - a) * n.a, i.rgb = s } return i } clone() { return new F(this.rgb) } alpha(t) { return this._rgb.a = m(t), this } clearer(t) { return this._rgb.a *= 1 - t, this } greyscale() { const t = this._rgb, e = f(.3 * t.r + .59 * t.g + .11 * t.b); return t.r = t.g = t.b = e, this } opaquer(t) { return this._rgb.a *= 1 + t, this } negate() { const t = this._rgb; return t.r = 255 - t.r, t.g = 255 - t.g, t.b = 255 - t.b, this } lighten(t) { return R(this._rgb, 2, t), this } darken(t) { return R(this._rgb, 2, -t), this } saturate(t) { return R(this._rgb, 1, t), this } desaturate(t) { return R(this._rgb, 1, -t), this } rotate(t) { return function (t, e) { var i = k(t); i[0] = D(i[0] + e), i = P(i), t.r = i[0], t.g = i[1], t.b = i[2] }(this._rgb, t), this } } function B(t) { return new F(t) } const V = t => t instanceof CanvasGradient || t instanceof CanvasPattern; function W(t) { return V(t) ? t : B(t) } function N(t) { return V(t) ? t : B(t).saturate(.5).darken(.1).hexString() } function H() { } const j = function () { let t = 0; return function () { return t++ } }(); function $(t) { return null == t } function Y(t) { if (Array.isArray && Array.isArray(t)) return !0; const e = Object.prototype.toString.call(t); return \"[object\" === e.slice(0, 7) && \"Array]\" === e.slice(-6) } function U(t) { return null !== t && \"[object Object]\" === Object.prototype.toString.call(t) } const X = t => (\"number\" == typeof t || t instanceof Number) && isFinite(+t); function q(t, e) { return X(t) ? t : e } function K(t, e) { return void 0 === t ? e : t } const G = (t, e) => \"string\" == typeof t && t.endsWith(\"%\") ? parseFloat(t) / 100 : t / e, Z = (t, e) => \"string\" == typeof t && t.endsWith(\"%\") ? parseFloat(t) / 100 * e : +t; function J(t, e, i) { if (t && \"function\" == typeof t.call) return t.apply(i, e) } function Q(t, e, i, s) { let n, o, a; if (Y(t)) if (o = t.length, s) for (n = o - 1; n >= 0; n--)e.call(i, t[n], n); else for (n = 0; n < o; n++)e.call(i, t[n], n); else if (U(t)) for (a = Object.keys(t), o = a.length, n = 0; n < o; n++)e.call(i, t[a[n]], a[n]) } function tt(t, e) { let i, s, n, o; if (!t || !e || t.length !== e.length) return !1; for (i = 0, s = t.length; i < s; ++i)if (n = t[i], o = e[i], n.datasetIndex !== o.datasetIndex || n.index !== o.index) return !1; return !0 } function et(t) { if (Y(t)) return t.map(et); if (U(t)) { const e = Object.create(null), i = Object.keys(t), s = i.length; let n = 0; for (; n < s; ++n)e[i[n]] = et(t[i[n]]); return e } return t } function it(t) { return -1 === [\"__proto__\", \"prototype\", \"constructor\"].indexOf(t) } function st(t, e, i, s) { if (!it(t)) return; const n = e[t], o = i[t]; U(n) && U(o) ? nt(n, o, s) : e[t] = et(o) } function nt(t, e, i) { const s = Y(e) ? e : [e], n = s.length; if (!U(t)) return t; const o = (i = i || {}).merger || st; for (let a = 0; a < n; ++a) { if (!U(e = s[a])) continue; const n = Object.keys(e); for (let s = 0, a = n.length; s < a; ++s)o(n[s], t, e, i) } return t } function ot(t, e) { return nt(t, e, { merger: at }) } function at(t, e, i) { if (!it(t)) return; const s = e[t], n = i[t]; U(s) && U(n) ? ot(s, n) : Object.prototype.hasOwnProperty.call(e, t) || (e[t] = et(n)) } function rt(t, e) { const i = t.indexOf(\".\", e); return -1 === i ? t.length : i } function lt(t, e) { if (\"\" === e) return t; let i = 0, s = rt(e, i); for (; t && s > i;)t = t[e.slice(i, s)], i = s + 1, s = rt(e, i); return t } function ht(t) { return t.charAt(0).toUpperCase() + t.slice(1) } const ct = t => void 0 !== t, dt = t => \"function\" == typeof t, ut = (t, e) => { if (t.size !== e.size) return !1; for (const i of t) if (!e.has(i)) return !1; return !0 }; function ft(t) { return \"mouseup\" === t.type || \"click\" === t.type || \"contextmenu\" === t.type } const gt = Object.create(null), pt = Object.create(null); function mt(t, e) { if (!e) return t; const i = e.split(\".\"); for (let e = 0, s = i.length; e < s; ++e) { const s = i[e]; t = t[s] || (t[s] = Object.create(null)) } return t } function xt(t, e, i) { return \"string\" == typeof e ? nt(mt(t, e), i) : nt(mt(t, \"\"), e) } var bt = new class { constructor(t) { this.animation = void 0, this.backgroundColor = \"rgba(0,0,0,0.1)\", this.borderColor = \"rgba(0,0,0,0.1)\", this.color = \"#666\", this.datasets = {}, this.devicePixelRatio = t => t.chart.platform.getDevicePixelRatio(), this.elements = {}, this.events = [\"mousemove\", \"mouseout\", \"click\", \"touchstart\", \"touchmove\"], this.font = { family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\", size: 12, style: \"normal\", lineHeight: 1.2, weight: null }, this.hover = {}, this.hoverBackgroundColor = (t, e) => N(e.backgroundColor), this.hoverBorderColor = (t, e) => N(e.borderColor), this.hoverColor = (t, e) => N(e.color), this.indexAxis = \"x\", this.interaction = { mode: \"nearest\", intersect: !0 }, this.maintainAspectRatio = !0, this.onHover = null, this.onClick = null, this.parsing = !0, this.plugins = {}, this.responsive = !0, this.scale = void 0, this.scales = {}, this.showLine = !0, this.drawActiveElementsOnTop = !0, this.describe(t) } set(t, e) { return xt(this, t, e) } get(t) { return mt(this, t) } describe(t, e) { return xt(pt, t, e) } override(t, e) { return xt(gt, t, e) } route(t, e, i, s) { const n = mt(this, t), o = mt(this, i), a = \"_\" + e; Object.defineProperties(n, { [a]: { value: n[e], writable: !0 }, [e]: { enumerable: !0, get() { const t = this[a], e = o[s]; return U(t) ? Object.assign({}, e, t) : K(t, e) }, set(t) { this[a] = t } } }) } }({ _scriptable: t => !t.startsWith(\"on\"), _indexable: t => \"events\" !== t, hover: { _fallback: \"interaction\" }, interaction: { _scriptable: !1, _indexable: !1 } }); function _t(t, e, i) { i = i || (i => t[i] < e); let s, n = t.length - 1, o = 0; for (; n - o > 1;)s = o + n >> 1, i(s) ? o = s : n = s; return { lo: o, hi: n } } const yt = (t, e, i) => _t(t, i, (s => t[s][e] < i)), vt = (t, e, i) => _t(t, i, (s => t[s][e] >= i)); function wt(t, e, i) { let s = 0, n = t.length; for (; s < n && t[s] < e;)s++; for (; n > s && t[n - 1] > i;)n--; return s > 0 || n < t.length ? t.slice(s, n) : t } const Mt = [\"push\", \"pop\", \"shift\", \"splice\", \"unshift\"]; function kt(t, e) { t._chartjs ? t._chartjs.listeners.push(e) : (Object.defineProperty(t, \"_chartjs\", { configurable: !0, enumerable: !1, value: { listeners: [e] } }), Mt.forEach((e => { const i = \"_onData\" + ht(e), s = t[e]; Object.defineProperty(t, e, { configurable: !0, enumerable: !1, value(...e) { const n = s.apply(this, e); return t._chartjs.listeners.forEach((t => { \"function\" == typeof t[i] && t[i](...e) })), n } }) }))) } function St(t, e) { const i = t._chartjs; if (!i) return; const s = i.listeners, n = s.indexOf(e); -1 !== n && s.splice(n, 1), s.length > 0 || (Mt.forEach((e => { delete t[e] })), delete t._chartjs) } function Pt(t) { const e = new Set; let i, s; for (i = 0, s = t.length; i < s; ++i)e.add(t[i]); return e.size === s ? t : Array.from(e) } const Dt = Math.PI, Ct = 2 * Dt, Ot = Ct + Dt, At = Number.POSITIVE_INFINITY, Tt = Dt / 180, Lt = Dt / 2, Rt = Dt / 4, Et = 2 * Dt / 3, It = Math.log10, zt = Math.sign; function Ft(t) { const e = Math.round(t); t = Wt(t, e, t / 1e3) ? e : t; const i = Math.pow(10, Math.floor(It(t))), s = t / i; return (s <= 1 ? 1 : s <= 2 ? 2 : s <= 5 ? 5 : 10) * i } function Bt(t) { const e = [], i = Math.sqrt(t); let s; for (s = 1; s < i; s++)t % s == 0 && (e.push(s), e.push(t / s)); return i === (0 | i) && e.push(i), e.sort(((t, e) => t - e)).pop(), e } function Vt(t) { return !isNaN(parseFloat(t)) && isFinite(t) } function Wt(t, e, i) { return Math.abs(t - e) < i } function Nt(t, e) { const i = Math.round(t); return i - e <= t && i + e >= t } function Ht(t, e, i) { let s, n, o; for (s = 0, n = t.length; s < n; s++)o = t[s][i], isNaN(o) || (e.min = Math.min(e.min, o), e.max = Math.max(e.max, o)) } function jt(t) { return t * (Dt / 180) } function $t(t) { return t * (180 / Dt) } function Yt(t) { if (!X(t)) return; let e = 1, i = 0; for (; Math.round(t * e) / e !== t;)e *= 10, i++; return i } function Ut(t, e) { const i = e.x - t.x, s = e.y - t.y, n = Math.sqrt(i * i + s * s); let o = Math.atan2(s, i); return o < -.5 * Dt && (o += Ct), { angle: o, distance: n } } function Xt(t, e) { return Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2)) } function qt(t, e) { return (t - e + Ot) % Ct - Dt } function Kt(t) { return (t % Ct + Ct) % Ct } function Gt(t, e, i, s) { const n = Kt(t), o = Kt(e), a = Kt(i), r = Kt(o - n), l = Kt(a - n), h = Kt(n - o), c = Kt(n - a); return n === o || n === a || s && o === a || r > l && h < c } function Zt(t, e, i) { return Math.max(e, Math.min(i, t)) } function Jt(t) { return Zt(t, -32768, 32767) } function Qt(t, e, i, s = 1e-6) { return t >= Math.min(e, i) - s && t <= Math.max(e, i) + s } function te() { return \"undefined\" != typeof window && \"undefined\" != typeof document } function ee(t) { let e = t.parentNode; return e && \"[object ShadowRoot]\" === e.toString() && (e = e.host), e } function ie(t, e, i) { let s; return \"string\" == typeof t ? (s = parseInt(t, 10), -1 !== t.indexOf(\"%\") && (s = s / 100 * e.parentNode[i])) : s = t, s } const se = t => window.getComputedStyle(t, null); function ne(t, e) { return se(t).getPropertyValue(e) } const oe = [\"top\", \"right\", \"bottom\", \"left\"]; function ae(t, e, i) { const s = {}; i = i ? \"-\" + i : \"\"; for (let n = 0; n < 4; n++) { const o = oe[n]; s[o] = parseFloat(t[e + \"-\" + o + i]) || 0 } return s.width = s.left + s.right, s.height = s.top + s.bottom, s } function re(t, e) { if (\"native\" in t) return t; const { canvas: i, currentDevicePixelRatio: s } = e, n = se(i), o = \"border-box\" === n.boxSizing, a = ae(n, \"padding\"), r = ae(n, \"border\", \"width\"), { x: l, y: h, box: c } = function (t, e) { const i = t.touches, s = i && i.length ? i[0] : t, { offsetX: n, offsetY: o } = s; let a, r, l = !1; if (((t, e, i) => (t > 0 || e > 0) && (!i || !i.shadowRoot))(n, o, t.target)) a = n, r = o; else { const t = e.getBoundingClientRect(); a = s.clientX - t.left, r = s.clientY - t.top, l = !0 } return { x: a, y: r, box: l } }(t, i), d = a.left + (c && r.left), u = a.top + (c && r.top); let { width: f, height: g } = e; return o && (f -= a.width + r.width, g -= a.height + r.height), { x: Math.round((l - d) / f * i.width / s), y: Math.round((h - u) / g * i.height / s) } } const le = t => Math.round(10 * t) / 10; function he(t, e, i, s) { const n = se(t), o = ae(n, \"margin\"), a = ie(n.maxWidth, t, \"clientWidth\") || At, r = ie(n.maxHeight, t, \"clientHeight\") || At, l = function (t, e, i) { let s, n; if (void 0 === e || void 0 === i) { const o = ee(t); if (o) { const t = o.getBoundingClientRect(), a = se(o), r = ae(a, \"border\", \"width\"), l = ae(a, \"padding\"); e = t.width - l.width - r.width, i = t.height - l.height - r.height, s = ie(a.maxWidth, o, \"clientWidth\"), n = ie(a.maxHeight, o, \"clientHeight\") } else e = t.clientWidth, i = t.clientHeight } return { width: e, height: i, maxWidth: s || At, maxHeight: n || At } }(t, e, i); let { width: h, height: c } = l; if (\"content-box\" === n.boxSizing) { const t = ae(n, \"border\", \"width\"), e = ae(n, \"padding\"); h -= e.width + t.width, c -= e.height + t.height } return h = Math.max(0, h - o.width), c = Math.max(0, s ? Math.floor(h / s) : c - o.height), h = le(Math.min(h, a, l.maxWidth)), c = le(Math.min(c, r, l.maxHeight)), h && !c && (c = le(h / 2)), { width: h, height: c } } function ce(t, e, i) { const s = e || 1, n = Math.floor(t.height * s), o = Math.floor(t.width * s); t.height = n / s, t.width = o / s; const a = t.canvas; return a.style && (i || !a.style.height && !a.style.width) && (a.style.height = `${t.height}px`, a.style.width = `${t.width}px`), (t.currentDevicePixelRatio !== s || a.height !== n || a.width !== o) && (t.currentDevicePixelRatio = s, a.height = n, a.width = o, t.ctx.setTransform(s, 0, 0, s, 0, 0), !0) } const de = function () { let t = !1; try { const e = { get passive() { return t = !0, !1 } }; window.addEventListener(\"test\", null, e), window.removeEventListener(\"test\", null, e) } catch (t) { } return t }(); function ue(t, e) { const i = ne(t, e), s = i && i.match(/^(\\d+)(\\.\\d+)?px$/); return s ? +s[1] : void 0 } function fe(t, e, i, s) { const { controller: n, data: o, _sorted: a } = t, r = n._cachedMeta.iScale; if (r && e === r.axis && \"r\" !== e && a && o.length) { const t = r._reversePixels ? vt : yt; if (!s) return t(o, e, i); if (n._sharedOptions) { const s = o[0], n = \"function\" == typeof s.getRange && s.getRange(e); if (n) { const s = t(o, e, i - n), a = t(o, e, i + n); return { lo: s.lo, hi: a.hi } } } } return { lo: 0, hi: o.length - 1 } } function ge(t, e, i, s, n) { const o = t.getSortedVisibleDatasetMetas(), a = i[e]; for (let t = 0, i = o.length; t < i; ++t) { const { index: i, data: r } = o[t], { lo: l, hi: h } = fe(o[t], e, a, n); for (let t = l; t <= h; ++t) { const e = r[t]; e.skip || s(e, i, t) } } } function pe(t, e, i, s) { const n = []; if (!t.isPointInArea(e)) return n; return ge(t, i, e, (function (t, i, o) { t.inRange(e.x, e.y, s) && n.push({ element: t, datasetIndex: i, index: o }) }), !0), n } function me(t, e, i, s, n) { let o = []; const a = function (t) { const e = -1 !== t.indexOf(\"x\"), i = -1 !== t.indexOf(\"y\"); return function (t, s) { const n = e ? Math.abs(t.x - s.x) : 0, o = i ? Math.abs(t.y - s.y) : 0; return Math.sqrt(Math.pow(n, 2) + Math.pow(o, 2)) } }(i); let r = Number.POSITIVE_INFINITY; return ge(t, i, e, (function (i, l, h) { const c = i.inRange(e.x, e.y, n); if (s && !c) return; const d = i.getCenterPoint(n); if (!t.isPointInArea(d) && !c) return; const u = a(e, d); u < r ? (o = [{ element: i, datasetIndex: l, index: h }], r = u) : u === r && o.push({ element: i, datasetIndex: l, index: h }) })), o } function xe(t, e, i, s, n) { return t.isPointInArea(e) ? \"r\" !== i || s ? me(t, e, i, s, n) : function (t, e, i, s) { let n = []; return ge(t, i, e, (function (t, i, o) { const { startAngle: a, endAngle: r } = t.getProps([\"startAngle\", \"endAngle\"], s), { angle: l } = Ut(t, { x: e.x, y: e.y }); Gt(l, a, r) && n.push({ element: t, datasetIndex: i, index: o }) })), n }(t, e, i, n) : [] } function be(t, e, i, s, n) { const o = [], a = \"x\" === i ? \"inXRange\" : \"inYRange\"; let r = !1; return ge(t, i, e, ((t, s, l) => { t[a](e[i], n) && (o.push({ element: t, datasetIndex: s, index: l }), r = r || t.inRange(e.x, e.y, n)) })), s && !r ? [] : o } var _e = { evaluateInteractionItems: ge, modes: { index(t, e, i, s) { const n = re(e, t), o = i.axis || \"x\", a = i.intersect ? pe(t, n, o, s) : xe(t, n, o, !1, s), r = []; return a.length ? (t.getSortedVisibleDatasetMetas().forEach((t => { const e = a[0].index, i = t.data[e]; i && !i.skip && r.push({ element: i, datasetIndex: t.index, index: e }) })), r) : [] }, dataset(t, e, i, s) { const n = re(e, t), o = i.axis || \"xy\"; let a = i.intersect ? pe(t, n, o, s) : xe(t, n, o, !1, s); if (a.length > 0) { const e = a[0].datasetIndex, i = t.getDatasetMeta(e).data; a = []; for (let t = 0; t < i.length; ++t)a.push({ element: i[t], datasetIndex: e, index: t }) } return a }, point: (t, e, i, s) => pe(t, re(e, t), i.axis || \"xy\", s), nearest: (t, e, i, s) => xe(t, re(e, t), i.axis || \"xy\", i.intersect, s), x: (t, e, i, s) => be(t, re(e, t), \"x\", i.intersect, s), y: (t, e, i, s) => be(t, re(e, t), \"y\", i.intersect, s) } }; function ye(t) { return !t || $(t.size) || $(t.family) ? null : (t.style ? t.style + \" \" : \"\") + (t.weight ? t.weight + \" \" : \"\") + t.size + \"px \" + t.family } function ve(t, e, i, s, n) { let o = e[n]; return o || (o = e[n] = t.measureText(n).width, i.push(n)), o > s && (s = o), s } function we(t, e, i, s) { let n = (s = s || {}).data = s.data || {}, o = s.garbageCollect = s.garbageCollect || []; s.font !== e && (n = s.data = {}, o = s.garbageCollect = [], s.font = e), t.save(), t.font = e; let a = 0; const r = i.length; let l, h, c, d, u; for (l = 0; l < r; l++)if (d = i[l], null != d && !0 !== Y(d)) a = ve(t, n, o, a, d); else if (Y(d)) for (h = 0, c = d.length; h < c; h++)u = d[h], null == u || Y(u) || (a = ve(t, n, o, a, u)); t.restore(); const f = o.length / 2; if (f > i.length) { for (l = 0; l < f; l++)delete n[o[l]]; o.splice(0, f) } return a } function Me(t, e, i) { const s = t.currentDevicePixelRatio, n = 0 !== i ? Math.max(i / 2, .5) : 0; return Math.round((e - n) * s) / s + n } function ke(t, e) { (e = e || t.getContext(\"2d\")).save(), e.resetTransform(), e.clearRect(0, 0, t.width, t.height), e.restore() } function Se(t, e, i, s) { let n, o, a, r, l; const h = e.pointStyle, c = e.rotation, d = e.radius; let u = (c || 0) * Tt; if (h && \"object\" == typeof h && (n = h.toString(), \"[object HTMLImageElement]\" === n || \"[object HTMLCanvasElement]\" === n)) return t.save(), t.translate(i, s), t.rotate(u), t.drawImage(h, -h.width / 2, -h.height / 2, h.width, h.height), void t.restore(); if (!(isNaN(d) || d <= 0)) { switch (t.beginPath(), h) { default: t.arc(i, s, d, 0, Ct), t.closePath(); break; case \"triangle\": t.moveTo(i + Math.sin(u) * d, s - Math.cos(u) * d), u += Et, t.lineTo(i + Math.sin(u) * d, s - Math.cos(u) * d), u += Et, t.lineTo(i + Math.sin(u) * d, s - Math.cos(u) * d), t.closePath(); break; case \"rectRounded\": l = .516 * d, r = d - l, o = Math.cos(u + Rt) * r, a = Math.sin(u + Rt) * r, t.arc(i - o, s - a, l, u - Dt, u - Lt), t.arc(i + a, s - o, l, u - Lt, u), t.arc(i + o, s + a, l, u, u + Lt), t.arc(i - a, s + o, l, u + Lt, u + Dt), t.closePath(); break; case \"rect\": if (!c) { r = Math.SQRT1_2 * d, t.rect(i - r, s - r, 2 * r, 2 * r); break } u += Rt; case \"rectRot\": o = Math.cos(u) * d, a = Math.sin(u) * d, t.moveTo(i - o, s - a), t.lineTo(i + a, s - o), t.lineTo(i + o, s + a), t.lineTo(i - a, s + o), t.closePath(); break; case \"crossRot\": u += Rt; case \"cross\": o = Math.cos(u) * d, a = Math.sin(u) * d, t.moveTo(i - o, s - a), t.lineTo(i + o, s + a), t.moveTo(i + a, s - o), t.lineTo(i - a, s + o); break; case \"star\": o = Math.cos(u) * d, a = Math.sin(u) * d, t.moveTo(i - o, s - a), t.lineTo(i + o, s + a), t.moveTo(i + a, s - o), t.lineTo(i - a, s + o), u += Rt, o = Math.cos(u) * d, a = Math.sin(u) * d, t.moveTo(i - o, s - a), t.lineTo(i + o, s + a), t.moveTo(i + a, s - o), t.lineTo(i - a, s + o); break; case \"line\": o = Math.cos(u) * d, a = Math.sin(u) * d, t.moveTo(i - o, s - a), t.lineTo(i + o, s + a); break; case \"dash\": t.moveTo(i, s), t.lineTo(i + Math.cos(u) * d, s + Math.sin(u) * d) }t.fill(), e.borderWidth > 0 && t.stroke() } } function Pe(t, e, i) { return i = i || .5, !e || t && t.x > e.left - i && t.x < e.right + i && t.y > e.top - i && t.y < e.bottom + i } function De(t, e) { t.save(), t.beginPath(), t.rect(e.left, e.top, e.right - e.left, e.bottom - e.top), t.clip() } function Ce(t) { t.restore() } function Oe(t, e, i, s, n) { if (!e) return t.lineTo(i.x, i.y); if (\"middle\" === n) { const s = (e.x + i.x) / 2; t.lineTo(s, e.y), t.lineTo(s, i.y) } else \"after\" === n != !!s ? t.lineTo(e.x, i.y) : t.lineTo(i.x, e.y); t.lineTo(i.x, i.y) } function Ae(t, e, i, s) { if (!e) return t.lineTo(i.x, i.y); t.bezierCurveTo(s ? e.cp1x : e.cp2x, s ? e.cp1y : e.cp2y, s ? i.cp2x : i.cp1x, s ? i.cp2y : i.cp1y, i.x, i.y) } function Te(t, e, i, s, n, o = {}) { const a = Y(e) ? e : [e], r = o.strokeWidth > 0 && \"\" !== o.strokeColor; let l, h; for (t.save(), t.font = n.string, function (t, e) { e.translation && t.translate(e.translation[0], e.translation[1]); $(e.rotation) || t.rotate(e.rotation); e.color && (t.fillStyle = e.color); e.textAlign && (t.textAlign = e.textAlign); e.textBaseline && (t.textBaseline = e.textBaseline) }(t, o), l = 0; l < a.length; ++l)h = a[l], r && (o.strokeColor && (t.strokeStyle = o.strokeColor), $(o.strokeWidth) || (t.lineWidth = o.strokeWidth), t.strokeText(h, i, s, o.maxWidth)), t.fillText(h, i, s, o.maxWidth), Le(t, i, s, h, o), s += n.lineHeight; t.restore() } function Le(t, e, i, s, n) { if (n.strikethrough || n.underline) { const o = t.measureText(s), a = e - o.actualBoundingBoxLeft, r = e + o.actualBoundingBoxRight, l = i - o.actualBoundingBoxAscent, h = i + o.actualBoundingBoxDescent, c = n.strikethrough ? (l + h) / 2 : h; t.strokeStyle = t.fillStyle, t.beginPath(), t.lineWidth = n.decorationWidth || 2, t.moveTo(a, c), t.lineTo(r, c), t.stroke() } } function Re(t, e) { const { x: i, y: s, w: n, h: o, radius: a } = e; t.arc(i + a.topLeft, s + a.topLeft, a.topLeft, -Lt, Dt, !0), t.lineTo(i, s + o - a.bottomLeft), t.arc(i + a.bottomLeft, s + o - a.bottomLeft, a.bottomLeft, Dt, Lt, !0), t.lineTo(i + n - a.bottomRight, s + o), t.arc(i + n - a.bottomRight, s + o - a.bottomRight, a.bottomRight, Lt, 0, !0), t.lineTo(i + n, s + a.topRight), t.arc(i + n - a.topRight, s + a.topRight, a.topRight, 0, -Lt, !0), t.lineTo(i + a.topLeft, s) } const Ee = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/), Ie = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/); function ze(t, e) { const i = (\"\" + t).match(Ee); if (!i || \"normal\" === i[1]) return 1.2 * e; switch (t = +i[2], i[3]) { case \"px\": return t; case \"%\": t /= 100 }return e * t } function Fe(t, e) { const i = {}, s = U(e), n = s ? Object.keys(e) : e, o = U(t) ? s ? i => K(t[i], t[e[i]]) : e => t[e] : () => t; for (const t of n) i[t] = +o(t) || 0; return i } function Be(t) { return Fe(t, { top: \"y\", right: \"x\", bottom: \"y\", left: \"x\" }) } function Ve(t) { return Fe(t, [\"topLeft\", \"topRight\", \"bottomLeft\", \"bottomRight\"]) } function We(t) { const e = Be(t); return e.width = e.left + e.right, e.height = e.top + e.bottom, e } function Ne(t, e) { t = t || {}, e = e || bt.font; let i = K(t.size, e.size); \"string\" == typeof i && (i = parseInt(i, 10)); let s = K(t.style, e.style); s && !(\"\" + s).match(Ie) && (console.warn('Invalid font style specified: \"' + s + '\"'), s = \"\"); const n = { family: K(t.family, e.family), lineHeight: ze(K(t.lineHeight, e.lineHeight), i), size: i, style: s, weight: K(t.weight, e.weight), string: \"\" }; return n.string = ye(n), n } function He(t, e, i, s) { let n, o, a, r = !0; for (n = 0, o = t.length; n < o; ++n)if (a = t[n], void 0 !== a && (void 0 !== e && \"function\" == typeof a && (a = a(e), r = !1), void 0 !== i && Y(a) && (a = a[i % a.length], r = !1), void 0 !== a)) return s && !r && (s.cacheable = !1), a } function je(t, e, i) { const { min: s, max: n } = t, o = Z(e, (n - s) / 2), a = (t, e) => i && 0 === t ? 0 : t + e; return { min: a(s, -Math.abs(o)), max: a(n, o) } } function $e(t, e) { return Object.assign(Object.create(t), e) } const Ye = [\"left\", \"top\", \"right\", \"bottom\"]; function Ue(t, e) { return t.filter((t => t.pos === e)) } function Xe(t, e) { return t.filter((t => -1 === Ye.indexOf(t.pos) && t.box.axis === e)) } function qe(t, e) { return t.sort(((t, i) => { const s = e ? i : t, n = e ? t : i; return s.weight === n.weight ? s.index - n.index : s.weight - n.weight })) } function Ke(t, e) { const i = function (t) { const e = {}; for (const i of t) { const { stack: t, pos: s, stackWeight: n } = i; if (!t || !Ye.includes(s)) continue; const o = e[t] || (e[t] = { count: 0, placed: 0, weight: 0, size: 0 }); o.count++, o.weight += n } return e }(t), { vBoxMaxWidth: s, hBoxMaxHeight: n } = e; let o, a, r; for (o = 0, a = t.length; o < a; ++o) { r = t[o]; const { fullSize: a } = r.box, l = i[r.stack], h = l && r.stackWeight / l.weight; r.horizontal ? (r.width = h ? h * s : a && e.availableWidth, r.height = n) : (r.width = s, r.height = h ? h * n : a && e.availableHeight) } return i } function Ge(t, e, i, s) { return Math.max(t[i], e[i]) + Math.max(t[s], e[s]) } function Ze(t, e) { t.top = Math.max(t.top, e.top), t.left = Math.max(t.left, e.left), t.bottom = Math.max(t.bottom, e.bottom), t.right = Math.max(t.right, e.right) } function Je(t, e, i, s) { const { pos: n, box: o } = i, a = t.maxPadding; if (!U(n)) { i.size && (t[n] -= i.size); const e = s[i.stack] || { size: 0, count: 1 }; e.size = Math.max(e.size, i.horizontal ? o.height : o.width), i.size = e.size / e.count, t[n] += i.size } o.getPadding && Ze(a, o.getPadding()); const r = Math.max(0, e.outerWidth - Ge(a, t, \"left\", \"right\")), l = Math.max(0, e.outerHeight - Ge(a, t, \"top\", \"bottom\")), h = r !== t.w, c = l !== t.h; return t.w = r, t.h = l, i.horizontal ? { same: h, other: c } : { same: c, other: h } } function Qe(t, e) { const i = e.maxPadding; function s(t) { const s = { left: 0, top: 0, right: 0, bottom: 0 }; return t.forEach((t => { s[t] = Math.max(e[t], i[t]) })), s } return s(t ? [\"left\", \"right\"] : [\"top\", \"bottom\"]) } function ti(t, e, i, s) { const n = []; let o, a, r, l, h, c; for (o = 0, a = t.length, h = 0; o < a; ++o) { r = t[o], l = r.box, l.update(r.width || e.w, r.height || e.h, Qe(r.horizontal, e)); const { same: a, other: d } = Je(e, i, r, s); h |= a && n.length, c = c || d, l.fullSize || n.push(r) } return h && ti(n, e, i, s) || c } function ei(t, e, i, s, n) { t.top = i, t.left = e, t.right = e + s, t.bottom = i + n, t.width = s, t.height = n } function ii(t, e, i, s) { const n = i.padding; let { x: o, y: a } = e; for (const r of t) { const t = r.box, l = s[r.stack] || { count: 1, placed: 0, weight: 1 }, h = r.stackWeight / l.weight || 1; if (r.horizontal) { const s = e.w * h, o = l.size || t.height; ct(l.start) && (a = l.start), t.fullSize ? ei(t, n.left, a, i.outerWidth - n.right - n.left, o) : ei(t, e.left + l.placed, a, s, o), l.start = a, l.placed += s, a = t.bottom } else { const s = e.h * h, a = l.size || t.width; ct(l.start) && (o = l.start), t.fullSize ? ei(t, o, n.top, a, i.outerHeight - n.bottom - n.top) : ei(t, o, e.top + l.placed, a, s), l.start = o, l.placed += s, o = t.right } } e.x = o, e.y = a } bt.set(\"layout\", { autoPadding: !0, padding: { top: 0, right: 0, bottom: 0, left: 0 } }); var si = { addBox(t, e) { t.boxes || (t.boxes = []), e.fullSize = e.fullSize || !1, e.position = e.position || \"top\", e.weight = e.weight || 0, e._layers = e._layers || function () { return [{ z: 0, draw(t) { e.draw(t) } }] }, t.boxes.push(e) }, removeBox(t, e) { const i = t.boxes ? t.boxes.indexOf(e) : -1; -1 !== i && t.boxes.splice(i, 1) }, configure(t, e, i) { e.fullSize = i.fullSize, e.position = i.position, e.weight = i.weight }, update(t, e, i, s) { if (!t) return; const n = We(t.options.layout.padding), o = Math.max(e - n.width, 0), a = Math.max(i - n.height, 0), r = function (t) { const e = function (t) { const e = []; let i, s, n, o, a, r; for (i = 0, s = (t || []).length; i < s; ++i)n = t[i], ({ position: o, options: { stack: a, stackWeight: r = 1 } } = n), e.push({ index: i, box: n, pos: o, horizontal: n.isHorizontal(), weight: n.weight, stack: a && o + a, stackWeight: r }); return e }(t), i = qe(e.filter((t => t.box.fullSize)), !0), s = qe(Ue(e, \"left\"), !0), n = qe(Ue(e, \"right\")), o = qe(Ue(e, \"top\"), !0), a = qe(Ue(e, \"bottom\")), r = Xe(e, \"x\"), l = Xe(e, \"y\"); return { fullSize: i, leftAndTop: s.concat(o), rightAndBottom: n.concat(l).concat(a).concat(r), chartArea: Ue(e, \"chartArea\"), vertical: s.concat(n).concat(l), horizontal: o.concat(a).concat(r) } }(t.boxes), l = r.vertical, h = r.horizontal; Q(t.boxes, (t => { \"function\" == typeof t.beforeLayout && t.beforeLayout() })); const c = l.reduce(((t, e) => e.box.options && !1 === e.box.options.display ? t : t + 1), 0) || 1, d = Object.freeze({ outerWidth: e, outerHeight: i, padding: n, availableWidth: o, availableHeight: a, vBoxMaxWidth: o / 2 / c, hBoxMaxHeight: a / 2 }), u = Object.assign({}, n); Ze(u, We(s)); const f = Object.assign({ maxPadding: u, w: o, h: a, x: n.left, y: n.top }, n), g = Ke(l.concat(h), d); ti(r.fullSize, f, d, g), ti(l, f, d, g), ti(h, f, d, g) && ti(l, f, d, g), function (t) { const e = t.maxPadding; function i(i) { const s = Math.max(e[i] - t[i], 0); return t[i] += s, s } t.y += i(\"top\"), t.x += i(\"left\"), i(\"right\"), i(\"bottom\") }(f), ii(r.leftAndTop, f, d, g), f.x += f.w, f.y += f.h, ii(r.rightAndBottom, f, d, g), t.chartArea = { left: f.left, top: f.top, right: f.left + f.w, bottom: f.top + f.h, height: f.h, width: f.w }, Q(r.chartArea, (e => { const i = e.box; Object.assign(i, t.chartArea), i.update(f.w, f.h, { left: 0, top: 0, right: 0, bottom: 0 }) })) } }; function ni(t, e = [\"\"], i = t, s, n = (() => t[0])) { ct(s) || (s = pi(\"_fallback\", t)); const o = { [Symbol.toStringTag]: \"Object\", _cacheable: !0, _scopes: t, _rootScopes: i, _fallback: s, _getTarget: n, override: n => ni([n, ...t], e, i, s) }; return new Proxy(o, { deleteProperty: (e, i) => (delete e[i], delete e._keys, delete t[0][i], !0), get: (i, s) => hi(i, s, (() => function (t, e, i, s) { let n; for (const o of e) if (n = pi(ri(o, t), i), ct(n)) return li(t, n) ? fi(i, s, t, n) : n }(s, e, t, i))), getOwnPropertyDescriptor: (t, e) => Reflect.getOwnPropertyDescriptor(t._scopes[0], e), getPrototypeOf: () => Reflect.getPrototypeOf(t[0]), has: (t, e) => mi(t).includes(e), ownKeys: t => mi(t), set(t, e, i) { const s = t._storage || (t._storage = n()); return t[e] = s[e] = i, delete t._keys, !0 } }) } function oi(t, e, i, s) { const n = { _cacheable: !1, _proxy: t, _context: e, _subProxy: i, _stack: new Set, _descriptors: ai(t, s), setContext: e => oi(t, e, i, s), override: n => oi(t.override(n), e, i, s) }; return new Proxy(n, { deleteProperty: (e, i) => (delete e[i], delete t[i], !0), get: (t, e, i) => hi(t, e, (() => function (t, e, i) { const { _proxy: s, _context: n, _subProxy: o, _descriptors: a } = t; let r = s[e]; dt(r) && a.isScriptable(e) && (r = function (t, e, i, s) { const { _proxy: n, _context: o, _subProxy: a, _stack: r } = i; if (r.has(t)) throw new Error(\"Recursion detected: \" + Array.from(r).join(\"->\") + \"->\" + t); r.add(t), e = e(o, a || s), r.delete(t), li(t, e) && (e = fi(n._scopes, n, t, e)); return e }(e, r, t, i)); Y(r) && r.length && (r = function (t, e, i, s) { const { _proxy: n, _context: o, _subProxy: a, _descriptors: r } = i; if (ct(o.index) && s(t)) e = e[o.index % e.length]; else if (U(e[0])) { const i = e, s = n._scopes.filter((t => t !== i)); e = []; for (const l of i) { const i = fi(s, n, t, l); e.push(oi(i, o, a && a[t], r)) } } return e }(e, r, t, a.isIndexable)); li(e, r) && (r = oi(r, n, o && o[e], a)); return r }(t, e, i))), getOwnPropertyDescriptor: (e, i) => e._descriptors.allKeys ? Reflect.has(t, i) ? { enumerable: !0, configurable: !0 } : void 0 : Reflect.getOwnPropertyDescriptor(t, i), getPrototypeOf: () => Reflect.getPrototypeOf(t), has: (e, i) => Reflect.has(t, i), ownKeys: () => Reflect.ownKeys(t), set: (e, i, s) => (t[i] = s, delete e[i], !0) }) } function ai(t, e = { scriptable: !0, indexable: !0 }) { const { _scriptable: i = e.scriptable, _indexable: s = e.indexable, _allKeys: n = e.allKeys } = t; return { allKeys: n, scriptable: i, indexable: s, isScriptable: dt(i) ? i : () => i, isIndexable: dt(s) ? s : () => s } } const ri = (t, e) => t ? t + ht(e) : e, li = (t, e) => U(e) && \"adapters\" !== t && (null === Object.getPrototypeOf(e) || e.constructor === Object); function hi(t, e, i) { if (Object.prototype.hasOwnProperty.call(t, e)) return t[e]; const s = i(); return t[e] = s, s } function ci(t, e, i) { return dt(t) ? t(e, i) : t } const di = (t, e) => !0 === t ? e : \"string\" == typeof t ? lt(e, t) : void 0; function ui(t, e, i, s, n) { for (const o of e) { const e = di(i, o); if (e) { t.add(e); const o = ci(e._fallback, i, n); if (ct(o) && o !== i && o !== s) return o } else if (!1 === e && ct(s) && i !== s) return null } return !1 } function fi(t, e, i, s) { const n = e._rootScopes, o = ci(e._fallback, i, s), a = [...t, ...n], r = new Set; r.add(s); let l = gi(r, a, i, o || i, s); return null !== l && ((!ct(o) || o === i || (l = gi(r, a, o, l, s), null !== l)) && ni(Array.from(r), [\"\"], n, o, (() => function (t, e, i) { const s = t._getTarget(); e in s || (s[e] = {}); const n = s[e]; if (Y(n) && U(i)) return i; return n }(e, i, s)))) } function gi(t, e, i, s, n) { for (; i;)i = ui(t, e, i, s, n); return i } function pi(t, e) { for (const i of e) { if (!i) continue; const e = i[t]; if (ct(e)) return e } } function mi(t) { let e = t._keys; return e || (e = t._keys = function (t) { const e = new Set; for (const i of t) for (const t of Object.keys(i).filter((t => !t.startsWith(\"_\")))) e.add(t); return Array.from(e) }(t._scopes)), e } function xi(t, e, i, s) { const { iScale: n } = t, { key: o = \"r\" } = this._parsing, a = new Array(s); let r, l, h, c; for (r = 0, l = s; r < l; ++r)h = r + i, c = e[h], a[r] = { r: n.parse(lt(c, o), h) }; return a } const bi = Number.EPSILON || 1e-14, _i = (t, e) => e < t.length && !t[e].skip && t[e], yi = t => \"x\" === t ? \"y\" : \"x\"; function vi(t, e, i, s) { const n = t.skip ? e : t, o = e, a = i.skip ? e : i, r = Xt(o, n), l = Xt(a, o); let h = r / (r + l), c = l / (r + l); h = isNaN(h) ? 0 : h, c = isNaN(c) ? 0 : c; const d = s * h, u = s * c; return { previous: { x: o.x - d * (a.x - n.x), y: o.y - d * (a.y - n.y) }, next: { x: o.x + u * (a.x - n.x), y: o.y + u * (a.y - n.y) } } } function wi(t, e = \"x\") { const i = yi(e), s = t.length, n = Array(s).fill(0), o = Array(s); let a, r, l, h = _i(t, 0); for (a = 0; a < s; ++a)if (r = l, l = h, h = _i(t, a + 1), l) { if (h) { const t = h[e] - l[e]; n[a] = 0 !== t ? (h[i] - l[i]) / t : 0 } o[a] = r ? h ? zt(n[a - 1]) !== zt(n[a]) ? 0 : (n[a - 1] + n[a]) / 2 : n[a - 1] : n[a] } !function (t, e, i) { const s = t.length; let n, o, a, r, l, h = _i(t, 0); for (let c = 0; c < s - 1; ++c)l = h, h = _i(t, c + 1), l && h && (Wt(e[c], 0, bi) ? i[c] = i[c + 1] = 0 : (n = i[c] / e[c], o = i[c + 1] / e[c], r = Math.pow(n, 2) + Math.pow(o, 2), r <= 9 || (a = 3 / Math.sqrt(r), i[c] = n * a * e[c], i[c + 1] = o * a * e[c]))) }(t, n, o), function (t, e, i = \"x\") { const s = yi(i), n = t.length; let o, a, r, l = _i(t, 0); for (let h = 0; h < n; ++h) { if (a = r, r = l, l = _i(t, h + 1), !r) continue; const n = r[i], c = r[s]; a && (o = (n - a[i]) / 3, r[`cp1${i}`] = n - o, r[`cp1${s}`] = c - o * e[h]), l && (o = (l[i] - n) / 3, r[`cp2${i}`] = n + o, r[`cp2${s}`] = c + o * e[h]) } }(t, o, e) } function Mi(t, e, i) { return Math.max(Math.min(t, i), e) } function ki(t, e, i, s, n) { let o, a, r, l; if (e.spanGaps && (t = t.filter((t => !t.skip))), \"monotone\" === e.cubicInterpolationMode) wi(t, n); else { let i = s ? t[t.length - 1] : t[0]; for (o = 0, a = t.length; o < a; ++o)r = t[o], l = vi(i, r, t[Math.min(o + 1, a - (s ? 0 : 1)) % a], e.tension), r.cp1x = l.previous.x, r.cp1y = l.previous.y, r.cp2x = l.next.x, r.cp2y = l.next.y, i = r } e.capBezierPoints && function (t, e) { let i, s, n, o, a, r = Pe(t[0], e); for (i = 0, s = t.length; i < s; ++i)a = o, o = r, r = i < s - 1 && Pe(t[i + 1], e), o && (n = t[i], a && (n.cp1x = Mi(n.cp1x, e.left, e.right), n.cp1y = Mi(n.cp1y, e.top, e.bottom)), r && (n.cp2x = Mi(n.cp2x, e.left, e.right), n.cp2y = Mi(n.cp2y, e.top, e.bottom))) }(t, i) } const Si = t => 0 === t || 1 === t, Pi = (t, e, i) => -Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * Ct / i), Di = (t, e, i) => Math.pow(2, -10 * t) * Math.sin((t - e) * Ct / i) + 1, Ci = { linear: t => t, easeInQuad: t => t * t, easeOutQuad: t => -t * (t - 2), easeInOutQuad: t => (t /= .5) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1), easeInCubic: t => t * t * t, easeOutCubic: t => (t -= 1) * t * t + 1, easeInOutCubic: t => (t /= .5) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2), easeInQuart: t => t * t * t * t, easeOutQuart: t => -((t -= 1) * t * t * t - 1), easeInOutQuart: t => (t /= .5) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2), easeInQuint: t => t * t * t * t * t, easeOutQuint: t => (t -= 1) * t * t * t * t + 1, easeInOutQuint: t => (t /= .5) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2), easeInSine: t => 1 - Math.cos(t * Lt), easeOutSine: t => Math.sin(t * Lt), easeInOutSine: t => -.5 * (Math.cos(Dt * t) - 1), easeInExpo: t => 0 === t ? 0 : Math.pow(2, 10 * (t - 1)), easeOutExpo: t => 1 === t ? 1 : 1 - Math.pow(2, -10 * t), easeInOutExpo: t => Si(t) ? t : t < .5 ? .5 * Math.pow(2, 10 * (2 * t - 1)) : .5 * (2 - Math.pow(2, -10 * (2 * t - 1))), easeInCirc: t => t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1), easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t), easeInOutCirc: t => (t /= .5) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1), easeInElastic: t => Si(t) ? t : Pi(t, .075, .3), easeOutElastic: t => Si(t) ? t : Di(t, .075, .3), easeInOutElastic(t) { const e = .1125; return Si(t) ? t : t < .5 ? .5 * Pi(2 * t, e, .45) : .5 + .5 * Di(2 * t - 1, e, .45) }, easeInBack(t) { const e = 1.70158; return t * t * ((e + 1) * t - e) }, easeOutBack(t) { const e = 1.70158; return (t -= 1) * t * ((e + 1) * t + e) + 1 }, easeInOutBack(t) { let e = 1.70158; return (t /= .5) < 1 ? t * t * ((1 + (e *= 1.525)) * t - e) * .5 : .5 * ((t -= 2) * t * ((1 + (e *= 1.525)) * t + e) + 2) }, easeInBounce: t => 1 - Ci.easeOutBounce(1 - t), easeOutBounce(t) { const e = 7.5625, i = 2.75; return t < 1 / i ? e * t * t : t < 2 / i ? e * (t -= 1.5 / i) * t + .75 : t < 2.5 / i ? e * (t -= 2.25 / i) * t + .9375 : e * (t -= 2.625 / i) * t + .984375 }, easeInOutBounce: t => t < .5 ? .5 * Ci.easeInBounce(2 * t) : .5 * Ci.easeOutBounce(2 * t - 1) + .5 }; function Oi(t, e, i, s) { return { x: t.x + i * (e.x - t.x), y: t.y + i * (e.y - t.y) } } function Ai(t, e, i, s) { return { x: t.x + i * (e.x - t.x), y: \"middle\" === s ? i < .5 ? t.y : e.y : \"after\" === s ? i < 1 ? t.y : e.y : i > 0 ? e.y : t.y } } function Ti(t, e, i, s) { const n = { x: t.cp2x, y: t.cp2y }, o = { x: e.cp1x, y: e.cp1y }, a = Oi(t, n, i), r = Oi(n, o, i), l = Oi(o, e, i), h = Oi(a, r, i), c = Oi(r, l, i); return Oi(h, c, i) } const Li = new Map; function Ri(t, e, i) { return function (t, e) { e = e || {}; const i = t + JSON.stringify(e); let s = Li.get(i); return s || (s = new Intl.NumberFormat(t, e), Li.set(i, s)), s }(e, i).format(t) } function Ei(t, e, i) { return t ? function (t, e) { return { x: i => t + t + e - i, setWidth(t) { e = t }, textAlign: t => \"center\" === t ? t : \"right\" === t ? \"left\" : \"right\", xPlus: (t, e) => t - e, leftForLtr: (t, e) => t - e } }(e, i) : { x: t => t, setWidth(t) { }, textAlign: t => t, xPlus: (t, e) => t + e, leftForLtr: (t, e) => t } } function Ii(t, e) { let i, s; \"ltr\" !== e && \"rtl\" !== e || (i = t.canvas.style, s = [i.getPropertyValue(\"direction\"), i.getPropertyPriority(\"direction\")], i.setProperty(\"direction\", e, \"important\"), t.prevTextDirection = s) } function zi(t, e) { void 0 !== e && (delete t.prevTextDirection, t.canvas.style.setProperty(\"direction\", e[0], e[1])) } function Fi(t) { return \"angle\" === t ? { between: Gt, compare: qt, normalize: Kt } : { between: Qt, compare: (t, e) => t - e, normalize: t => t } } function Bi({ start: t, end: e, count: i, loop: s, style: n }) { return { start: t % i, end: e % i, loop: s && (e - t + 1) % i == 0, style: n } } function Vi(t, e, i) { if (!i) return [t]; const { property: s, start: n, end: o } = i, a = e.length, { compare: r, between: l, normalize: h } = Fi(s), { start: c, end: d, loop: u, style: f } = function (t, e, i) { const { property: s, start: n, end: o } = i, { between: a, normalize: r } = Fi(s), l = e.length; let h, c, { start: d, end: u, loop: f } = t; if (f) { for (d += l, u += l, h = 0, c = l; h < c && a(r(e[d % l][s]), n, o); ++h)d--, u--; d %= l, u %= l } return u < d && (u += l), { start: d, end: u, loop: f, style: t.style } }(t, e, i), g = []; let p, m, x, b = !1, _ = null; const y = () => b || l(n, x, p) && 0 !== r(n, x), v = () => !b || 0 === r(o, p) || l(o, x, p); for (let t = c, i = c; t <= d; ++t)m = e[t % a], m.skip || (p = h(m[s]), p !== x && (b = l(p, n, o), null === _ && y() && (_ = 0 === r(p, n) ? t : i), null !== _ && v() && (g.push(Bi({ start: _, end: t, loop: u, count: a, style: f })), _ = null), i = t, x = p)); return null !== _ && g.push(Bi({ start: _, end: d, loop: u, count: a, style: f })), g } function Wi(t, e) { const i = [], s = t.segments; for (let n = 0; n < s.length; n++) { const o = Vi(s[n], t.points, e); o.length && i.push(...o) } return i } function Ni(t, e) { const i = t.points, s = t.options.spanGaps, n = i.length; if (!n) return []; const o = !!t._loop, { start: a, end: r } = function (t, e, i, s) { let n = 0, o = e - 1; if (i && !s) for (; n < e && !t[n].skip;)n++; for (; n < e && t[n].skip;)n++; for (n %= e, i && (o += n); o > n && t[o % e].skip;)o--; return o %= e, { start: n, end: o } }(i, n, o, s); if (!0 === s) return Hi(t, [{ start: a, end: r, loop: o }], i, e); return Hi(t, function (t, e, i, s) { const n = t.length, o = []; let a, r = e, l = t[e]; for (a = e + 1; a <= i; ++a) { const i = t[a % n]; i.skip || i.stop ? l.skip || (s = !1, o.push({ start: e % n, end: (a - 1) % n, loop: s }), e = r = i.stop ? a : null) : (r = a, l.skip && (e = a)), l = i } return null !== r && o.push({ start: e % n, end: r % n, loop: s }), o }(i, a, r < a ? r + n : r, !!t._fullLoop && 0 === a && r === n - 1), i, e) } function Hi(t, e, i, s) { return s && s.setContext && i ? function (t, e, i, s) { const n = t._chart.getContext(), o = ji(t.options), { _datasetIndex: a, options: { spanGaps: r } } = t, l = i.length, h = []; let c = o, d = e[0].start, u = d; function f(t, e, s, n) { const o = r ? -1 : 1; if (t !== e) { for (t += l; i[t % l].skip;)t -= o; for (; i[e % l].skip;)e += o; t % l != e % l && (h.push({ start: t % l, end: e % l, loop: s, style: n }), c = n, d = e % l) } } for (const t of e) { d = r ? d : t.start; let e, o = i[d % l]; for (u = d + 1; u <= t.end; u++) { const r = i[u % l]; e = ji(s.setContext($e(n, { type: \"segment\", p0: o, p1: r, p0DataIndex: (u - 1) % l, p1DataIndex: u % l, datasetIndex: a }))), $i(e, c) && f(d, u - 1, t.loop, c), o = r, c = e } d < u - 1 && f(d, u - 1, t.loop, c) } return h }(t, e, i, s) : e } function ji(t) { return { backgroundColor: t.backgroundColor, borderCapStyle: t.borderCapStyle, borderDash: t.borderDash, borderDashOffset: t.borderDashOffset, borderJoinStyle: t.borderJoinStyle, borderWidth: t.borderWidth, borderColor: t.borderColor } } function $i(t, e) { return e && JSON.stringify(t) !== JSON.stringify(e) } var Yi = Object.freeze({ __proto__: null, easingEffects: Ci, color: W, getHoverColor: N, noop: H, uid: j, isNullOrUndef: $, isArray: Y, isObject: U, isFinite: X, finiteOrDefault: q, valueOrDefault: K, toPercentage: G, toDimension: Z, callback: J, each: Q, _elementsEqual: tt, clone: et, _merger: st, merge: nt, mergeIf: ot, _mergerIf: at, _deprecated: function (t, e, i, s) { void 0 !== e && console.warn(t + ': \"' + i + '\" is deprecated. Please use \"' + s + '\" instead') }, resolveObjectKey: lt, _capitalize: ht, defined: ct, isFunction: dt, setsEqual: ut, _isClickEvent: ft, toFontString: ye, _measureText: ve, _longestText: we, _alignPixel: Me, clearCanvas: ke, drawPoint: Se, _isPointInArea: Pe, clipArea: De, unclipArea: Ce, _steppedLineTo: Oe, _bezierCurveTo: Ae, renderText: Te, addRoundedRectPath: Re, _lookup: _t, _lookupByKey: yt, _rlookupByKey: vt, _filterBetween: wt, listenArrayEvents: kt, unlistenArrayEvents: St, _arrayUnique: Pt, _createResolver: ni, _attachContext: oi, _descriptors: ai, _parseObjectDataRadialScale: xi, splineCurve: vi, splineCurveMonotone: wi, _updateBezierControlPoints: ki, _isDomSupported: te, _getParentNode: ee, getStyle: ne, getRelativePosition: re, getMaximumSize: he, retinaScale: ce, supportsEventListenerOptions: de, readUsedSize: ue, fontString: function (t, e, i) { return e + \" \" + t + \"px \" + i }, requestAnimFrame: t, throttled: e, debounce: i, _toLeftRightCenter: s, _alignStartEnd: n, _textX: o, _pointInLine: Oi, _steppedInterpolation: Ai, _bezierInterpolation: Ti, formatNumber: Ri, toLineHeight: ze, _readValueToProps: Fe, toTRBL: Be, toTRBLCorners: Ve, toPadding: We, toFont: Ne, resolve: He, _addGrace: je, createContext: $e, PI: Dt, TAU: Ct, PITAU: Ot, INFINITY: At, RAD_PER_DEG: Tt, HALF_PI: Lt, QUARTER_PI: Rt, TWO_THIRDS_PI: Et, log10: It, sign: zt, niceNum: Ft, _factorize: Bt, isNumber: Vt, almostEquals: Wt, almostWhole: Nt, _setMinAndMaxByKey: Ht, toRadians: jt, toDegrees: $t, _decimalPlaces: Yt, getAngleFromPoint: Ut, distanceBetweenPoints: Xt, _angleDiff: qt, _normalizeAngle: Kt, _angleBetween: Gt, _limitValue: Zt, _int16Range: Jt, _isBetween: Qt, getRtlAdapter: Ei, overrideTextDirection: Ii, restoreTextDirection: zi, _boundSegment: Vi, _boundSegments: Wi, _computeSegments: Ni }); class Ui { acquireContext(t, e) { } releaseContext(t) { return !1 } addEventListener(t, e, i) { } removeEventListener(t, e, i) { } getDevicePixelRatio() { return 1 } getMaximumSize(t, e, i, s) { return e = Math.max(0, e || t.width), i = i || t.height, { width: e, height: Math.max(0, s ? Math.floor(e / s) : i) } } isAttached(t) { return !0 } updateConfig(t) { } } class Xi extends Ui { acquireContext(t) { return t && t.getContext && t.getContext(\"2d\") || null } updateConfig(t) { t.options.animation = !1 } } const qi = { touchstart: \"mousedown\", touchmove: \"mousemove\", touchend: \"mouseup\", pointerenter: \"mouseenter\", pointerdown: \"mousedown\", pointermove: \"mousemove\", pointerup: \"mouseup\", pointerleave: \"mouseout\", pointerout: \"mouseout\" }, Ki = t => null === t || \"\" === t; const Gi = !!de && { passive: !0 }; function Zi(t, e, i) { t.canvas.removeEventListener(e, i, Gi) } function Ji(t, e) { for (const i of t) if (i === e || i.contains(e)) return !0 } function Qi(t, e, i) { const s = t.canvas, n = new MutationObserver((t => { let e = !1; for (const i of t) e = e || Ji(i.addedNodes, s), e = e && !Ji(i.removedNodes, s); e && i() })); return n.observe(document, { childList: !0, subtree: !0 }), n } function ts(t, e, i) { const s = t.canvas, n = new MutationObserver((t => { let e = !1; for (const i of t) e = e || Ji(i.removedNodes, s), e = e && !Ji(i.addedNodes, s); e && i() })); return n.observe(document, { childList: !0, subtree: !0 }), n } const es = new Map; let is = 0; function ss() { const t = window.devicePixelRatio; t !== is && (is = t, es.forEach(((e, i) => { i.currentDevicePixelRatio !== t && e() }))) } function ns(t, i, s) { const n = t.canvas, o = n && ee(n); if (!o) return; const a = e(((t, e) => { const i = o.clientWidth; s(t, e), i < o.clientWidth && s() }), window), r = new ResizeObserver((t => { const e = t[0], i = e.contentRect.width, s = e.contentRect.height; 0 === i && 0 === s || a(i, s) })); return r.observe(o), function (t, e) { es.size || window.addEventListener(\"resize\", ss), es.set(t, e) }(t, a), r } function os(t, e, i) { i && i.disconnect(), \"resize\" === e && function (t) { es.delete(t), es.size || window.removeEventListener(\"resize\", ss) }(t) } function as(t, i, s) { const n = t.canvas, o = e((e => { null !== t.ctx && s(function (t, e) { const i = qi[t.type] || t.type, { x: s, y: n } = re(t, e); return { type: i, chart: e, native: t, x: void 0 !== s ? s : null, y: void 0 !== n ? n : null } }(e, t)) }), t, (t => { const e = t[0]; return [e, e.offsetX, e.offsetY] })); return function (t, e, i) { t.addEventListener(e, i, Gi) }(n, i, o), o } class rs extends Ui { acquireContext(t, e) { const i = t && t.getContext && t.getContext(\"2d\"); return i && i.canvas === t ? (function (t, e) { const i = t.style, s = t.getAttribute(\"height\"), n = t.getAttribute(\"width\"); if (t.$chartjs = { initial: { height: s, width: n, style: { display: i.display, height: i.height, width: i.width } } }, i.display = i.display || \"block\", i.boxSizing = i.boxSizing || \"border-box\", Ki(n)) { const e = ue(t, \"width\"); void 0 !== e && (t.width = e) } if (Ki(s)) if (\"\" === t.style.height) t.height = t.width / (e || 2); else { const e = ue(t, \"height\"); void 0 !== e && (t.height = e) } }(t, e), i) : null } releaseContext(t) { const e = t.canvas; if (!e.$chartjs) return !1; const i = e.$chartjs.initial;[\"height\", \"width\"].forEach((t => { const s = i[t]; $(s) ? e.removeAttribute(t) : e.setAttribute(t, s) })); const s = i.style || {}; return Object.keys(s).forEach((t => { e.style[t] = s[t] })), e.width = e.width, delete e.$chartjs, !0 } addEventListener(t, e, i) { this.removeEventListener(t, e); const s = t.$proxies || (t.$proxies = {}), n = { attach: Qi, detach: ts, resize: ns }[e] || as; s[e] = n(t, e, i) } removeEventListener(t, e) { const i = t.$proxies || (t.$proxies = {}), s = i[e]; if (!s) return; ({ attach: os, detach: os, resize: os }[e] || Zi)(t, e, s), i[e] = void 0 } getDevicePixelRatio() { return window.devicePixelRatio } getMaximumSize(t, e, i, s) { return he(t, e, i, s) } isAttached(t) { const e = ee(t); return !(!e || !e.isConnected) } } function ls(t) { return !te() || \"undefined\" != typeof OffscreenCanvas && t instanceof OffscreenCanvas ? Xi : rs } var hs = Object.freeze({ __proto__: null, _detectPlatform: ls, BasePlatform: Ui, BasicPlatform: Xi, DomPlatform: rs }); const cs = \"transparent\", ds = { boolean: (t, e, i) => i > .5 ? e : t, color(t, e, i) { const s = W(t || cs), n = s.valid && W(e || cs); return n && n.valid ? n.mix(s, i).hexString() : e }, number: (t, e, i) => t + (e - t) * i }; class us { constructor(t, e, i, s) { const n = e[i]; s = He([t.to, s, n, t.from]); const o = He([t.from, n, s]); this._active = !0, this._fn = t.fn || ds[t.type || typeof o], this._easing = Ci[t.easing] || Ci.linear, this._start = Math.floor(Date.now() + (t.delay || 0)), this._duration = this._total = Math.floor(t.duration), this._loop = !!t.loop, this._target = e, this._prop = i, this._from = o, this._to = s, this._promises = void 0 } active() { return this._active } update(t, e, i) { if (this._active) { this._notify(!1); const s = this._target[this._prop], n = i - this._start, o = this._duration - n; this._start = i, this._duration = Math.floor(Math.max(o, t.duration)), this._total += n, this._loop = !!t.loop, this._to = He([t.to, e, s, t.from]), this._from = He([t.from, s, e]) } } cancel() { this._active && (this.tick(Date.now()), this._active = !1, this._notify(!1)) } tick(t) { const e = t - this._start, i = this._duration, s = this._prop, n = this._from, o = this._loop, a = this._to; let r; if (this._active = n !== a && (o || e < i), !this._active) return this._target[s] = a, void this._notify(!0); e < 0 ? this._target[s] = n : (r = e / i % 2, r = o && r > 1 ? 2 - r : r, r = this._easing(Math.min(1, Math.max(0, r))), this._target[s] = this._fn(n, a, r)) } wait() { const t = this._promises || (this._promises = []); return new Promise(((e, i) => { t.push({ res: e, rej: i }) })) } _notify(t) { const e = t ? \"res\" : \"rej\", i = this._promises || []; for (let t = 0; t < i.length; t++)i[t][e]() } } bt.set(\"animation\", { delay: void 0, duration: 1e3, easing: \"easeOutQuart\", fn: void 0, from: void 0, loop: void 0, to: void 0, type: void 0 }); const fs = Object.keys(bt.animation); bt.describe(\"animation\", { _fallback: !1, _indexable: !1, _scriptable: t => \"onProgress\" !== t && \"onComplete\" !== t && \"fn\" !== t }), bt.set(\"animations\", { colors: { type: \"color\", properties: [\"color\", \"borderColor\", \"backgroundColor\"] }, numbers: { type: \"number\", properties: [\"x\", \"y\", \"borderWidth\", \"radius\", \"tension\"] } }), bt.describe(\"animations\", { _fallback: \"animation\" }), bt.set(\"transitions\", { active: { animation: { duration: 400 } }, resize: { animation: { duration: 0 } }, show: { animations: { colors: { from: \"transparent\" }, visible: { type: \"boolean\", duration: 0 } } }, hide: { animations: { colors: { to: \"transparent\" }, visible: { type: \"boolean\", easing: \"linear\", fn: t => 0 | t } } } }); class gs { constructor(t, e) { this._chart = t, this._properties = new Map, this.configure(e) } configure(t) { if (!U(t)) return; const e = this._properties; Object.getOwnPropertyNames(t).forEach((i => { const s = t[i]; if (!U(s)) return; const n = {}; for (const t of fs) n[t] = s[t]; (Y(s.properties) && s.properties || [i]).forEach((t => { t !== i && e.has(t) || e.set(t, n) })) })) } _animateOptions(t, e) { const i = e.options, s = function (t, e) { if (!e) return; let i = t.options; if (!i) return void (t.options = e); i.$shared && (t.options = i = Object.assign({}, i, { $shared: !1, $animations: {} })); return i }(t, i); if (!s) return []; const n = this._createAnimations(s, i); return i.$shared && function (t, e) { const i = [], s = Object.keys(e); for (let e = 0; e < s.length; e++) { const n = t[s[e]]; n && n.active() && i.push(n.wait()) } return Promise.all(i) }(t.options.$animations, i).then((() => { t.options = i }), (() => { })), n } _createAnimations(t, e) { const i = this._properties, s = [], n = t.$animations || (t.$animations = {}), o = Object.keys(e), a = Date.now(); let r; for (r = o.length - 1; r >= 0; --r) { const l = o[r]; if (\"$\" === l.charAt(0)) continue; if (\"options\" === l) { s.push(...this._animateOptions(t, e)); continue } const h = e[l]; let c = n[l]; const d = i.get(l); if (c) { if (d && c.active()) { c.update(d, h, a); continue } c.cancel() } d && d.duration ? (n[l] = c = new us(d, t, l, h), s.push(c)) : t[l] = h } return s } update(t, e) { if (0 === this._properties.size) return void Object.assign(t, e); const i = this._createAnimations(t, e); return i.length ? (a.add(this._chart, i), !0) : void 0 } } function ps(t, e) { const i = t && t.options || {}, s = i.reverse, n = void 0 === i.min ? e : 0, o = void 0 === i.max ? e : 0; return { start: s ? o : n, end: s ? n : o } } function ms(t, e) { const i = [], s = t._getSortedDatasetMetas(e); let n, o; for (n = 0, o = s.length; n < o; ++n)i.push(s[n].index); return i } function xs(t, e, i, s = {}) { const n = t.keys, o = \"single\" === s.mode; let a, r, l, h; if (null !== e) { for (a = 0, r = n.length; a < r; ++a) { if (l = +n[a], l === i) { if (s.all) continue; break } h = t.values[l], X(h) && (o || 0 === e || zt(e) === zt(h)) && (e += h) } return e } } function bs(t, e) { const i = t && t.options.stacked; return i || void 0 === i && void 0 !== e.stack } function _s(t, e, i) { const s = t[e] || (t[e] = {}); return s[i] || (s[i] = {}) } function ys(t, e, i, s) { for (const n of e.getMatchingVisibleMetas(s).reverse()) { const e = t[n.index]; if (i && e > 0 || !i && e < 0) return n.index } return null } function vs(t, e) { const { chart: i, _cachedMeta: s } = t, n = i._stacks || (i._stacks = {}), { iScale: o, vScale: a, index: r } = s, l = o.axis, h = a.axis, c = function (t, e, i) { return `${t.id}.${e.id}.${i.stack || i.type}` }(o, a, s), d = e.length; let u; for (let t = 0; t < d; ++t) { const i = e[t], { [l]: o, [h]: d } = i; u = (i._stacks || (i._stacks = {}))[h] = _s(n, c, o), u[r] = d, u._top = ys(u, a, !0, s.type), u._bottom = ys(u, a, !1, s.type) } } function ws(t, e) { const i = t.scales; return Object.keys(i).filter((t => i[t].axis === e)).shift() } function Ms(t, e) { const i = t.controller.index, s = t.vScale && t.vScale.axis; if (s) { e = e || t._parsed; for (const t of e) { const e = t._stacks; if (!e || void 0 === e[s] || void 0 === e[s][i]) return; delete e[s][i] } } } const ks = t => \"reset\" === t || \"none\" === t, Ss = (t, e) => e ? t : Object.assign({}, t); class Ps { constructor(t, e) { this.chart = t, this._ctx = t.ctx, this.index = e, this._cachedDataOpts = {}, this._cachedMeta = this.getMeta(), this._type = this._cachedMeta.type, this.options = void 0, this._parsing = !1, this._data = void 0, this._objectData = void 0, this._sharedOptions = void 0, this._drawStart = void 0, this._drawCount = void 0, this.enableOptionSharing = !1, this.supportsDecimation = !1, this.$context = void 0, this._syncList = [], this.initialize() } initialize() { const t = this._cachedMeta; this.configure(), this.linkScales(), t._stacked = bs(t.vScale, t), this.addElements() } updateIndex(t) { this.index !== t && Ms(this._cachedMeta), this.index = t } linkScales() { const t = this.chart, e = this._cachedMeta, i = this.getDataset(), s = (t, e, i, s) => \"x\" === t ? e : \"r\" === t ? s : i, n = e.xAxisID = K(i.xAxisID, ws(t, \"x\")), o = e.yAxisID = K(i.yAxisID, ws(t, \"y\")), a = e.rAxisID = K(i.rAxisID, ws(t, \"r\")), r = e.indexAxis, l = e.iAxisID = s(r, n, o, a), h = e.vAxisID = s(r, o, n, a); e.xScale = this.getScaleForId(n), e.yScale = this.getScaleForId(o), e.rScale = this.getScaleForId(a), e.iScale = this.getScaleForId(l), e.vScale = this.getScaleForId(h) } getDataset() { return this.chart.data.datasets[this.index] } getMeta() { return this.chart.getDatasetMeta(this.index) } getScaleForId(t) { return this.chart.scales[t] } _getOtherScale(t) { const e = this._cachedMeta; return t === e.iScale ? e.vScale : e.iScale } reset() { this._update(\"reset\") } _destroy() { const t = this._cachedMeta; this._data && St(this._data, this), t._stacked && Ms(t) } _dataCheck() { const t = this.getDataset(), e = t.data || (t.data = []), i = this._data; if (U(e)) this._data = function (t) { const e = Object.keys(t), i = new Array(e.length); let s, n, o; for (s = 0, n = e.length; s < n; ++s)o = e[s], i[s] = { x: o, y: t[o] }; return i }(e); else if (i !== e) { if (i) { St(i, this); const t = this._cachedMeta; Ms(t), t._parsed = [] } e && Object.isExtensible(e) && kt(e, this), this._syncList = [], this._data = e } } addElements() { const t = this._cachedMeta; this._dataCheck(), this.datasetElementType && (t.dataset = new this.datasetElementType) } buildOrUpdateElements(t) { const e = this._cachedMeta, i = this.getDataset(); let s = !1; this._dataCheck(); const n = e._stacked; e._stacked = bs(e.vScale, e), e.stack !== i.stack && (s = !0, Ms(e), e.stack = i.stack), this._resyncElements(t), (s || n !== e._stacked) && vs(this, e._parsed) } configure() { const t = this.chart.config, e = t.datasetScopeKeys(this._type), i = t.getOptionScopes(this.getDataset(), e, !0); this.options = t.createResolver(i, this.getContext()), this._parsing = this.options.parsing, this._cachedDataOpts = {} } parse(t, e) { const { _cachedMeta: i, _data: s } = this, { iScale: n, _stacked: o } = i, a = n.axis; let r, l, h, c = 0 === t && e === s.length || i._sorted, d = t > 0 && i._parsed[t - 1]; if (!1 === this._parsing) i._parsed = s, i._sorted = !0, h = s; else { h = Y(s[t]) ? this.parseArrayData(i, s, t, e) : U(s[t]) ? this.parseObjectData(i, s, t, e) : this.parsePrimitiveData(i, s, t, e); const n = () => null === l[a] || d && l[a] < d[a]; for (r = 0; r < e; ++r)i._parsed[r + t] = l = h[r], c && (n() && (c = !1), d = l); i._sorted = c } o && vs(this, h) } parsePrimitiveData(t, e, i, s) { const { iScale: n, vScale: o } = t, a = n.axis, r = o.axis, l = n.getLabels(), h = n === o, c = new Array(s); let d, u, f; for (d = 0, u = s; d < u; ++d)f = d + i, c[d] = { [a]: h || n.parse(l[f], f), [r]: o.parse(e[f], f) }; return c } parseArrayData(t, e, i, s) { const { xScale: n, yScale: o } = t, a = new Array(s); let r, l, h, c; for (r = 0, l = s; r < l; ++r)h = r + i, c = e[h], a[r] = { x: n.parse(c[0], h), y: o.parse(c[1], h) }; return a } parseObjectData(t, e, i, s) { const { xScale: n, yScale: o } = t, { xAxisKey: a = \"x\", yAxisKey: r = \"y\" } = this._parsing, l = new Array(s); let h, c, d, u; for (h = 0, c = s; h < c; ++h)d = h + i, u = e[d], l[h] = { x: n.parse(lt(u, a), d), y: o.parse(lt(u, r), d) }; return l } getParsed(t) { return this._cachedMeta._parsed[t] } getDataElement(t) { return this._cachedMeta.data[t] } applyStack(t, e, i) { const s = this.chart, n = this._cachedMeta, o = e[t.axis]; return xs({ keys: ms(s, !0), values: e._stacks[t.axis] }, o, n.index, { mode: i }) } updateRangeFromParsed(t, e, i, s) { const n = i[e.axis]; let o = null === n ? NaN : n; const a = s && i._stacks[e.axis]; s && a && (s.values = a, o = xs(s, n, this._cachedMeta.index)), t.min = Math.min(t.min, o), t.max = Math.max(t.max, o) } getMinMax(t, e) { const i = this._cachedMeta, s = i._parsed, n = i._sorted && t === i.iScale, o = s.length, a = this._getOtherScale(t), r = ((t, e, i) => t && !e.hidden && e._stacked && { keys: ms(i, !0), values: null })(e, i, this.chart), l = { min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY }, { min: h, max: c } = function (t) { const { min: e, max: i, minDefined: s, maxDefined: n } = t.getUserBounds(); return { min: s ? e : Number.NEGATIVE_INFINITY, max: n ? i : Number.POSITIVE_INFINITY } }(a); let d, u; function f() { u = s[d]; const e = u[a.axis]; return !X(u[t.axis]) || h > e || c < e } for (d = 0; d < o && (f() || (this.updateRangeFromParsed(l, t, u, r), !n)); ++d); if (n) for (d = o - 1; d >= 0; --d)if (!f()) { this.updateRangeFromParsed(l, t, u, r); break } return l } getAllParsedValues(t) { const e = this._cachedMeta._parsed, i = []; let s, n, o; for (s = 0, n = e.length; s < n; ++s)o = e[s][t.axis], X(o) && i.push(o); return i } getMaxOverflow() { return !1 } getLabelAndValue(t) { const e = this._cachedMeta, i = e.iScale, s = e.vScale, n = this.getParsed(t); return { label: i ? \"\" + i.getLabelForValue(n[i.axis]) : \"\", value: s ? \"\" + s.getLabelForValue(n[s.axis]) : \"\" } } _update(t) { const e = this._cachedMeta; this.update(t || \"default\"), e._clip = function (t) { let e, i, s, n; return U(t) ? (e = t.top, i = t.right, s = t.bottom, n = t.left) : e = i = s = n = t, { top: e, right: i, bottom: s, left: n, disabled: !1 === t } }(K(this.options.clip, function (t, e, i) { if (!1 === i) return !1; const s = ps(t, i), n = ps(e, i); return { top: n.end, right: s.end, bottom: n.start, left: s.start } }(e.xScale, e.yScale, this.getMaxOverflow()))) } update(t) { } draw() { const t = this._ctx, e = this.chart, i = this._cachedMeta, s = i.data || [], n = e.chartArea, o = [], a = this._drawStart || 0, r = this._drawCount || s.length - a, l = this.options.drawActiveElementsOnTop; let h; for (i.dataset && i.dataset.draw(t, n, a, r), h = a; h < a + r; ++h) { const e = s[h]; e.hidden || (e.active && l ? o.push(e) : e.draw(t, n)) } for (h = 0; h < o.length; ++h)o[h].draw(t, n) } getStyle(t, e) { const i = e ? \"active\" : \"default\"; return void 0 === t && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(i) : this.resolveDataElementOptions(t || 0, i) } getContext(t, e, i) { const s = this.getDataset(); let n; if (t >= 0 && t < this._cachedMeta.data.length) { const e = this._cachedMeta.data[t]; n = e.$context || (e.$context = function (t, e, i) { return $e(t, { active: !1, dataIndex: e, parsed: void 0, raw: void 0, element: i, index: e, mode: \"default\", type: \"data\" }) }(this.getContext(), t, e)), n.parsed = this.getParsed(t), n.raw = s.data[t], n.index = n.dataIndex = t } else n = this.$context || (this.$context = function (t, e) { return $e(t, { active: !1, dataset: void 0, datasetIndex: e, index: e, mode: \"default\", type: \"dataset\" }) }(this.chart.getContext(), this.index)), n.dataset = s, n.index = n.datasetIndex = this.index; return n.active = !!e, n.mode = i, n } resolveDatasetElementOptions(t) { return this._resolveElementOptions(this.datasetElementType.id, t) } resolveDataElementOptions(t, e) { return this._resolveElementOptions(this.dataElementType.id, e, t) } _resolveElementOptions(t, e = \"default\", i) { const s = \"active\" === e, n = this._cachedDataOpts, o = t + \"-\" + e, a = n[o], r = this.enableOptionSharing && ct(i); if (a) return Ss(a, r); const l = this.chart.config, h = l.datasetElementScopeKeys(this._type, t), c = s ? [`${t}Hover`, \"hover\", t, \"\"] : [t, \"\"], d = l.getOptionScopes(this.getDataset(), h), u = Object.keys(bt.elements[t]), f = l.resolveNamedOptions(d, u, (() => this.getContext(i, s)), c); return f.$shared && (f.$shared = r, n[o] = Object.freeze(Ss(f, r))), f } _resolveAnimations(t, e, i) { const s = this.chart, n = this._cachedDataOpts, o = `animation-${e}`, a = n[o]; if (a) return a; let r; if (!1 !== s.options.animation) { const s = this.chart.config, n = s.datasetAnimationScopeKeys(this._type, e), o = s.getOptionScopes(this.getDataset(), n); r = s.createResolver(o, this.getContext(t, i, e)) } const l = new gs(s, r && r.animations); return r && r._cacheable && (n[o] = Object.freeze(l)), l } getSharedOptions(t) { if (t.$shared) return this._sharedOptions || (this._sharedOptions = Object.assign({}, t)) } includeOptions(t, e) { return !e || ks(t) || this.chart._animationsDisabled } updateElement(t, e, i, s) { ks(s) ? Object.assign(t, i) : this._resolveAnimations(e, s).update(t, i) } updateSharedOptions(t, e, i) { t && !ks(e) && this._resolveAnimations(void 0, e).update(t, i) } _setStyle(t, e, i, s) { t.active = s; const n = this.getStyle(e, s); this._resolveAnimations(e, i, s).update(t, { options: !s && this.getSharedOptions(n) || n }) } removeHoverStyle(t, e, i) { this._setStyle(t, i, \"active\", !1) } setHoverStyle(t, e, i) { this._setStyle(t, i, \"active\", !0) } _removeDatasetHoverStyle() { const t = this._cachedMeta.dataset; t && this._setStyle(t, void 0, \"active\", !1) } _setDatasetHoverStyle() { const t = this._cachedMeta.dataset; t && this._setStyle(t, void 0, \"active\", !0) } _resyncElements(t) { const e = this._data, i = this._cachedMeta.data; for (const [t, e, i] of this._syncList) this[t](e, i); this._syncList = []; const s = i.length, n = e.length, o = Math.min(n, s); o && this.parse(0, o), n > s ? this._insertElements(s, n - s, t) : n < s && this._removeElements(n, s - n) } _insertElements(t, e, i = !0) { const s = this._cachedMeta, n = s.data, o = t + e; let a; const r = t => { for (t.length += e, a = t.length - 1; a >= o; a--)t[a] = t[a - e] }; for (r(n), a = t; a < o; ++a)n[a] = new this.dataElementType; this._parsing && r(s._parsed), this.parse(t, e), i && this.updateElements(n, t, e, \"reset\") } updateElements(t, e, i, s) { } _removeElements(t, e) { const i = this._cachedMeta; if (this._parsing) { const s = i._parsed.splice(t, e); i._stacked && Ms(i, s) } i.data.splice(t, e) } _sync(t) { if (this._parsing) this._syncList.push(t); else { const [e, i, s] = t; this[e](i, s) } this.chart._dataChanges.push([this.index, ...t]) } _onDataPush() { const t = arguments.length; this._sync([\"_insertElements\", this.getDataset().data.length - t, t]) } _onDataPop() { this._sync([\"_removeElements\", this._cachedMeta.data.length - 1, 1]) } _onDataShift() { this._sync([\"_removeElements\", 0, 1]) } _onDataSplice(t, e) { e && this._sync([\"_removeElements\", t, e]); const i = arguments.length - 2; i && this._sync([\"_insertElements\", t, i]) } _onDataUnshift() { this._sync([\"_insertElements\", 0, arguments.length]) } } Ps.defaults = {}, Ps.prototype.datasetElementType = null, Ps.prototype.dataElementType = null; class Ds { constructor() { this.x = void 0, this.y = void 0, this.active = !1, this.options = void 0, this.$animations = void 0 } tooltipPosition(t) { const { x: e, y: i } = this.getProps([\"x\", \"y\"], t); return { x: e, y: i } } hasValue() { return Vt(this.x) && Vt(this.y) } getProps(t, e) { const i = this.$animations; if (!e || !i) return this; const s = {}; return t.forEach((t => { s[t] = i[t] && i[t].active() ? i[t]._to : this[t] })), s } } Ds.defaults = {}, Ds.defaultRoutes = void 0; const Cs = { values: t => Y(t) ? t : \"\" + t, numeric(t, e, i) { if (0 === t) return \"0\"; const s = this.chart.options.locale; let n, o = t; if (i.length > 1) { const e = Math.max(Math.abs(i[0].value), Math.abs(i[i.length - 1].value)); (e < 1e-4 || e > 1e15) && (n = \"scientific\"), o = function (t, e) { let i = e.length > 3 ? e[2].value - e[1].value : e[1].value - e[0].value; Math.abs(i) >= 1 && t !== Math.floor(t) && (i = t - Math.floor(t)); return i }(t, i) } const a = It(Math.abs(o)), r = Math.max(Math.min(-1 * Math.floor(a), 20), 0), l = { notation: n, minimumFractionDigits: r, maximumFractionDigits: r }; return Object.assign(l, this.options.ticks.format), Ri(t, s, l) }, logarithmic(t, e, i) { if (0 === t) return \"0\"; const s = t / Math.pow(10, Math.floor(It(t))); return 1 === s || 2 === s || 5 === s ? Cs.numeric.call(this, t, e, i) : \"\" } }; var Os = { formatters: Cs }; function As(t, e) { const i = t.options.ticks, s = i.maxTicksLimit || function (t) { const e = t.options.offset, i = t._tickSize(), s = t._length / i + (e ? 0 : 1), n = t._maxLength / i; return Math.floor(Math.min(s, n)) }(t), n = i.major.enabled ? function (t) { const e = []; let i, s; for (i = 0, s = t.length; i < s; i++)t[i].major && e.push(i); return e }(e) : [], o = n.length, a = n[0], r = n[o - 1], l = []; if (o > s) return function (t, e, i, s) { let n, o = 0, a = i[0]; for (s = Math.ceil(s), n = 0; n < t.length; n++)n === a && (e.push(t[n]), o++, a = i[o * s]) }(e, l, n, o / s), l; const h = function (t, e, i) { const s = function (t) { const e = t.length; let i, s; if (e < 2) return !1; for (s = t[0], i = 1; i < e; ++i)if (t[i] - t[i - 1] !== s) return !1; return s }(t), n = e.length / i; if (!s) return Math.max(n, 1); const o = Bt(s); for (let t = 0, e = o.length - 1; t < e; t++) { const e = o[t]; if (e > n) return e } return Math.max(n, 1) }(n, e, s); if (o > 0) { let t, i; const s = o > 1 ? Math.round((r - a) / (o - 1)) : null; for (Ts(e, l, h, $(s) ? 0 : a - s, a), t = 0, i = o - 1; t < i; t++)Ts(e, l, h, n[t], n[t + 1]); return Ts(e, l, h, r, $(s) ? e.length : r + s), l } return Ts(e, l, h), l } function Ts(t, e, i, s, n) { const o = K(s, 0), a = Math.min(K(n, t.length), t.length); let r, l, h, c = 0; for (i = Math.ceil(i), n && (r = n - s, i = r / Math.floor(r / i)), h = o; h < 0;)c++, h = Math.round(o + c * i); for (l = Math.max(o, 0); l < a; l++)l === h && (e.push(t[l]), c++, h = Math.round(o + c * i)) } bt.set(\"scale\", { display: !0, offset: !1, reverse: !1, beginAtZero: !1, bounds: \"ticks\", grace: 0, grid: { display: !0, lineWidth: 1, drawBorder: !0, drawOnChartArea: !0, drawTicks: !0, tickLength: 8, tickWidth: (t, e) => e.lineWidth, tickColor: (t, e) => e.color, offset: !1, borderDash: [], borderDashOffset: 0, borderWidth: 1 }, title: { display: !1, text: \"\", padding: { top: 4, bottom: 4 } }, ticks: { minRotation: 0, maxRotation: 50, mirror: !1, textStrokeWidth: 0, textStrokeColor: \"\", padding: 3, display: !0, autoSkip: !0, autoSkipPadding: 3, labelOffset: 0, callback: Os.formatters.values, minor: {}, major: {}, align: \"center\", crossAlign: \"near\", showLabelBackdrop: !1, backdropColor: \"rgba(255, 255, 255, 0.75)\", backdropPadding: 2 } }), bt.route(\"scale.ticks\", \"color\", \"\", \"color\"), bt.route(\"scale.grid\", \"color\", \"\", \"borderColor\"), bt.route(\"scale.grid\", \"borderColor\", \"\", \"borderColor\"), bt.route(\"scale.title\", \"color\", \"\", \"color\"), bt.describe(\"scale\", { _fallback: !1, _scriptable: t => !t.startsWith(\"before\") && !t.startsWith(\"after\") && \"callback\" !== t && \"parser\" !== t, _indexable: t => \"borderDash\" !== t && \"tickBorderDash\" !== t }), bt.describe(\"scales\", { _fallback: \"scale\" }), bt.describe(\"scale.ticks\", { _scriptable: t => \"backdropPadding\" !== t && \"callback\" !== t, _indexable: t => \"backdropPadding\" !== t }); const Ls = (t, e, i) => \"top\" === e || \"left\" === e ? t[e] + i : t[e] - i; function Rs(t, e) { const i = [], s = t.length / e, n = t.length; let o = 0; for (; o < n; o += s)i.push(t[Math.floor(o)]); return i } function Es(t, e, i) { const s = t.ticks.length, n = Math.min(e, s - 1), o = t._startPixel, a = t._endPixel, r = 1e-6; let l, h = t.getPixelForTick(n); if (!(i && (l = 1 === s ? Math.max(h - o, a - h) : 0 === e ? (t.getPixelForTick(1) - h) / 2 : (h - t.getPixelForTick(n - 1)) / 2, h += n < e ? l : -l, h < o - r || h > a + r))) return h } function Is(t) { return t.drawTicks ? t.tickLength : 0 } function zs(t, e) { if (!t.display) return 0; const i = Ne(t.font, e), s = We(t.padding); return (Y(t.text) ? t.text.length : 1) * i.lineHeight + s.height } function Fs(t, e, i) { let n = s(t); return (i && \"right\" !== e || !i && \"right\" === e) && (n = (t => \"left\" === t ? \"right\" : \"right\" === t ? \"left\" : t)(n)), n } class Bs extends Ds { constructor(t) { super(), this.id = t.id, this.type = t.type, this.options = void 0, this.ctx = t.ctx, this.chart = t.chart, this.top = void 0, this.bottom = void 0, this.left = void 0, this.right = void 0, this.width = void 0, this.height = void 0, this._margins = { left: 0, right: 0, top: 0, bottom: 0 }, this.maxWidth = void 0, this.maxHeight = void 0, this.paddingTop = void 0, this.paddingBottom = void 0, this.paddingLeft = void 0, this.paddingRight = void 0, this.axis = void 0, this.labelRotation = void 0, this.min = void 0, this.max = void 0, this._range = void 0, this.ticks = [], this._gridLineItems = null, this._labelItems = null, this._labelSizes = null, this._length = 0, this._maxLength = 0, this._longestTextCache = {}, this._startPixel = void 0, this._endPixel = void 0, this._reversePixels = !1, this._userMax = void 0, this._userMin = void 0, this._suggestedMax = void 0, this._suggestedMin = void 0, this._ticksLength = 0, this._borderValue = 0, this._cache = {}, this._dataLimitsCached = !1, this.$context = void 0 } init(t) { this.options = t.setContext(this.getContext()), this.axis = t.axis, this._userMin = this.parse(t.min), this._userMax = this.parse(t.max), this._suggestedMin = this.parse(t.suggestedMin), this._suggestedMax = this.parse(t.suggestedMax) } parse(t, e) { return t } getUserBounds() { let { _userMin: t, _userMax: e, _suggestedMin: i, _suggestedMax: s } = this; return t = q(t, Number.POSITIVE_INFINITY), e = q(e, Number.NEGATIVE_INFINITY), i = q(i, Number.POSITIVE_INFINITY), s = q(s, Number.NEGATIVE_INFINITY), { min: q(t, i), max: q(e, s), minDefined: X(t), maxDefined: X(e) } } getMinMax(t) { let e, { min: i, max: s, minDefined: n, maxDefined: o } = this.getUserBounds(); if (n && o) return { min: i, max: s }; const a = this.getMatchingVisibleMetas(); for (let r = 0, l = a.length; r < l; ++r)e = a[r].controller.getMinMax(this, t), n || (i = Math.min(i, e.min)), o || (s = Math.max(s, e.max)); return i = o && i > s ? s : i, s = n && i > s ? i : s, { min: q(i, q(s, i)), max: q(s, q(i, s)) } } getPadding() { return { left: this.paddingLeft || 0, top: this.paddingTop || 0, right: this.paddingRight || 0, bottom: this.paddingBottom || 0 } } getTicks() { return this.ticks } getLabels() { const t = this.chart.data; return this.options.labels || (this.isHorizontal() ? t.xLabels : t.yLabels) || t.labels || [] } beforeLayout() { this._cache = {}, this._dataLimitsCached = !1 } beforeUpdate() { J(this.options.beforeUpdate, [this]) } update(t, e, i) { const { beginAtZero: s, grace: n, ticks: o } = this.options, a = o.sampleSize; this.beforeUpdate(), this.maxWidth = t, this.maxHeight = e, this._margins = i = Object.assign({ left: 0, right: 0, top: 0, bottom: 0 }, i), this.ticks = null, this._labelSizes = null, this._gridLineItems = null, this._labelItems = null, this.beforeSetDimensions(), this.setDimensions(), this.afterSetDimensions(), this._maxLength = this.isHorizontal() ? this.width + i.left + i.right : this.height + i.top + i.bottom, this._dataLimitsCached || (this.beforeDataLimits(), this.determineDataLimits(), this.afterDataLimits(), this._range = je(this, n, s), this._dataLimitsCached = !0), this.beforeBuildTicks(), this.ticks = this.buildTicks() || [], this.afterBuildTicks(); const r = a < this.ticks.length; this._convertTicksToLabels(r ? Rs(this.ticks, a) : this.ticks), this.configure(), this.beforeCalculateLabelRotation(), this.calculateLabelRotation(), this.afterCalculateLabelRotation(), o.display && (o.autoSkip || \"auto\" === o.source) && (this.ticks = As(this, this.ticks), this._labelSizes = null, this.afterAutoSkip()), r && this._convertTicksToLabels(this.ticks), this.beforeFit(), this.fit(), this.afterFit(), this.afterUpdate() } configure() { let t, e, i = this.options.reverse; this.isHorizontal() ? (t = this.left, e = this.right) : (t = this.top, e = this.bottom, i = !i), this._startPixel = t, this._endPixel = e, this._reversePixels = i, this._length = e - t, this._alignToPixels = this.options.alignToPixels } afterUpdate() { J(this.options.afterUpdate, [this]) } beforeSetDimensions() { J(this.options.beforeSetDimensions, [this]) } setDimensions() { this.isHorizontal() ? (this.width = this.maxWidth, this.left = 0, this.right = this.width) : (this.height = this.maxHeight, this.top = 0, this.bottom = this.height), this.paddingLeft = 0, this.paddingTop = 0, this.paddingRight = 0, this.paddingBottom = 0 } afterSetDimensions() { J(this.options.afterSetDimensions, [this]) } _callHooks(t) { this.chart.notifyPlugins(t, this.getContext()), J(this.options[t], [this]) } beforeDataLimits() { this._callHooks(\"beforeDataLimits\") } determineDataLimits() { } afterDataLimits() { this._callHooks(\"afterDataLimits\") } beforeBuildTicks() { this._callHooks(\"beforeBuildTicks\") } buildTicks() { return [] } afterBuildTicks() { this._callHooks(\"afterBuildTicks\") } beforeTickToLabelConversion() { J(this.options.beforeTickToLabelConversion, [this]) } generateTickLabels(t) { const e = this.options.ticks; let i, s, n; for (i = 0, s = t.length; i < s; i++)n = t[i], n.label = J(e.callback, [n.value, i, t], this) } afterTickToLabelConversion() { J(this.options.afterTickToLabelConversion, [this]) } beforeCalculateLabelRotation() { J(this.options.beforeCalculateLabelRotation, [this]) } calculateLabelRotation() { const t = this.options, e = t.ticks, i = this.ticks.length, s = e.minRotation || 0, n = e.maxRotation; let o, a, r, l = s; if (!this._isVisible() || !e.display || s >= n || i <= 1 || !this.isHorizontal()) return void (this.labelRotation = s); const h = this._getLabelSizes(), c = h.widest.width, d = h.highest.height, u = Zt(this.chart.width - c, 0, this.maxWidth); o = t.offset ? this.maxWidth / i : u / (i - 1), c + 6 > o && (o = u / (i - (t.offset ? .5 : 1)), a = this.maxHeight - Is(t.grid) - e.padding - zs(t.title, this.chart.options.font), r = Math.sqrt(c * c + d * d), l = $t(Math.min(Math.asin(Zt((h.highest.height + 6) / o, -1, 1)), Math.asin(Zt(a / r, -1, 1)) - Math.asin(Zt(d / r, -1, 1)))), l = Math.max(s, Math.min(n, l))), this.labelRotation = l } afterCalculateLabelRotation() { J(this.options.afterCalculateLabelRotation, [this]) } afterAutoSkip() { } beforeFit() { J(this.options.beforeFit, [this]) } fit() { const t = { width: 0, height: 0 }, { chart: e, options: { ticks: i, title: s, grid: n } } = this, o = this._isVisible(), a = this.isHorizontal(); if (o) { const o = zs(s, e.options.font); if (a ? (t.width = this.maxWidth, t.height = Is(n) + o) : (t.height = this.maxHeight, t.width = Is(n) + o), i.display && this.ticks.length) { const { first: e, last: s, widest: n, highest: o } = this._getLabelSizes(), r = 2 * i.padding, l = jt(this.labelRotation), h = Math.cos(l), c = Math.sin(l); if (a) { const e = i.mirror ? 0 : c * n.width + h * o.height; t.height = Math.min(this.maxHeight, t.height + e + r) } else { const e = i.mirror ? 0 : h * n.width + c * o.height; t.width = Math.min(this.maxWidth, t.width + e + r) } this._calculatePadding(e, s, c, h) } } this._handleMargins(), a ? (this.width = this._length = e.width - this._margins.left - this._margins.right, this.height = t.height) : (this.width = t.width, this.height = this._length = e.height - this._margins.top - this._margins.bottom) } _calculatePadding(t, e, i, s) { const { ticks: { align: n, padding: o }, position: a } = this.options, r = 0 !== this.labelRotation, l = \"top\" !== a && \"x\" === this.axis; if (this.isHorizontal()) { const a = this.getPixelForTick(0) - this.left, h = this.right - this.getPixelForTick(this.ticks.length - 1); let c = 0, d = 0; r ? l ? (c = s * t.width, d = i * e.height) : (c = i * t.height, d = s * e.width) : \"start\" === n ? d = e.width : \"end\" === n ? c = t.width : \"inner\" !== n && (c = t.width / 2, d = e.width / 2), this.paddingLeft = Math.max((c - a + o) * this.width / (this.width - a), 0), this.paddingRight = Math.max((d - h + o) * this.width / (this.width - h), 0) } else { let i = e.height / 2, s = t.height / 2; \"start\" === n ? (i = 0, s = t.height) : \"end\" === n && (i = e.height, s = 0), this.paddingTop = i + o, this.paddingBottom = s + o } } _handleMargins() { this._margins && (this._margins.left = Math.max(this.paddingLeft, this._margins.left), this._margins.top = Math.max(this.paddingTop, this._margins.top), this._margins.right = Math.max(this.paddingRight, this._margins.right), this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom)) } afterFit() { J(this.options.afterFit, [this]) } isHorizontal() { const { axis: t, position: e } = this.options; return \"top\" === e || \"bottom\" === e || \"x\" === t } isFullSize() { return this.options.fullSize } _convertTicksToLabels(t) { let e, i; for (this.beforeTickToLabelConversion(), this.generateTickLabels(t), e = 0, i = t.length; e < i; e++)$(t[e].label) && (t.splice(e, 1), i--, e--); this.afterTickToLabelConversion() } _getLabelSizes() { let t = this._labelSizes; if (!t) { const e = this.options.ticks.sampleSize; let i = this.ticks; e < i.length && (i = Rs(i, e)), this._labelSizes = t = this._computeLabelSizes(i, i.length) } return t } _computeLabelSizes(t, e) { const { ctx: i, _longestTextCache: s } = this, n = [], o = []; let a, r, l, h, c, d, u, f, g, p, m, x = 0, b = 0; for (a = 0; a < e; ++a) { if (h = t[a].label, c = this._resolveTickFontOptions(a), i.font = d = c.string, u = s[d] = s[d] || { data: {}, gc: [] }, f = c.lineHeight, g = p = 0, $(h) || Y(h)) { if (Y(h)) for (r = 0, l = h.length; r < l; ++r)m = h[r], $(m) || Y(m) || (g = ve(i, u.data, u.gc, g, m), p += f) } else g = ve(i, u.data, u.gc, g, h), p = f; n.push(g), o.push(p), x = Math.max(g, x), b = Math.max(p, b) } !function (t, e) { Q(t, (t => { const i = t.gc, s = i.length / 2; let n; if (s > e) { for (n = 0; n < s; ++n)delete t.data[i[n]]; i.splice(0, s) } })) }(s, e); const _ = n.indexOf(x), y = o.indexOf(b), v = t => ({ width: n[t] || 0, height: o[t] || 0 }); return { first: v(0), last: v(e - 1), widest: v(_), highest: v(y), widths: n, heights: o } } getLabelForValue(t) { return t } getPixelForValue(t, e) { return NaN } getValueForPixel(t) { } getPixelForTick(t) { const e = this.ticks; return t < 0 || t > e.length - 1 ? null : this.getPixelForValue(e[t].value) } getPixelForDecimal(t) { this._reversePixels && (t = 1 - t); const e = this._startPixel + t * this._length; return Jt(this._alignToPixels ? Me(this.chart, e, 0) : e) } getDecimalForPixel(t) { const e = (t - this._startPixel) / this._length; return this._reversePixels ? 1 - e : e } getBasePixel() { return this.getPixelForValue(this.getBaseValue()) } getBaseValue() { const { min: t, max: e } = this; return t < 0 && e < 0 ? e : t > 0 && e > 0 ? t : 0 } getContext(t) { const e = this.ticks || []; if (t >= 0 && t < e.length) { const i = e[t]; return i.$context || (i.$context = function (t, e, i) { return $e(t, { tick: i, index: e, type: \"tick\" }) }(this.getContext(), t, i)) } return this.$context || (this.$context = $e(this.chart.getContext(), { scale: this, type: \"scale\" })) } _tickSize() { const t = this.options.ticks, e = jt(this.labelRotation), i = Math.abs(Math.cos(e)), s = Math.abs(Math.sin(e)), n = this._getLabelSizes(), o = t.autoSkipPadding || 0, a = n ? n.widest.width + o : 0, r = n ? n.highest.height + o : 0; return this.isHorizontal() ? r * i > a * s ? a / i : r / s : r * s < a * i ? r / i : a / s } _isVisible() { const t = this.options.display; return \"auto\" !== t ? !!t : this.getMatchingVisibleMetas().length > 0 } _computeGridLineItems(t) { const e = this.axis, i = this.chart, s = this.options, { grid: n, position: o } = s, a = n.offset, r = this.isHorizontal(), l = this.ticks.length + (a ? 1 : 0), h = Is(n), c = [], d = n.setContext(this.getContext()), u = d.drawBorder ? d.borderWidth : 0, f = u / 2, g = function (t) { return Me(i, t, u) }; let p, m, x, b, _, y, v, w, M, k, S, P; if (\"top\" === o) p = g(this.bottom), y = this.bottom - h, w = p - f, k = g(t.top) + f, P = t.bottom; else if (\"bottom\" === o) p = g(this.top), k = t.top, P = g(t.bottom) - f, y = p + f, w = this.top + h; else if (\"left\" === o) p = g(this.right), _ = this.right - h, v = p - f, M = g(t.left) + f, S = t.right; else if (\"right\" === o) p = g(this.left), M = t.left, S = g(t.right) - f, _ = p + f, v = this.left + h; else if (\"x\" === e) { if (\"center\" === o) p = g((t.top + t.bottom) / 2 + .5); else if (U(o)) { const t = Object.keys(o)[0], e = o[t]; p = g(this.chart.scales[t].getPixelForValue(e)) } k = t.top, P = t.bottom, y = p + f, w = y + h } else if (\"y\" === e) { if (\"center\" === o) p = g((t.left + t.right) / 2); else if (U(o)) { const t = Object.keys(o)[0], e = o[t]; p = g(this.chart.scales[t].getPixelForValue(e)) } _ = p - f, v = _ - h, M = t.left, S = t.right } const D = K(s.ticks.maxTicksLimit, l), C = Math.max(1, Math.ceil(l / D)); for (m = 0; m < l; m += C) { const t = n.setContext(this.getContext(m)), e = t.lineWidth, s = t.color, o = n.borderDash || [], l = t.borderDashOffset, h = t.tickWidth, d = t.tickColor, u = t.tickBorderDash || [], f = t.tickBorderDashOffset; x = Es(this, m, a), void 0 !== x && (b = Me(i, x, e), r ? _ = v = M = S = b : y = w = k = P = b, c.push({ tx1: _, ty1: y, tx2: v, ty2: w, x1: M, y1: k, x2: S, y2: P, width: e, color: s, borderDash: o, borderDashOffset: l, tickWidth: h, tickColor: d, tickBorderDash: u, tickBorderDashOffset: f })) } return this._ticksLength = l, this._borderValue = p, c } _computeLabelItems(t) { const e = this.axis, i = this.options, { position: s, ticks: n } = i, o = this.isHorizontal(), a = this.ticks, { align: r, crossAlign: l, padding: h, mirror: c } = n, d = Is(i.grid), u = d + h, f = c ? -h : u, g = -jt(this.labelRotation), p = []; let m, x, b, _, y, v, w, M, k, S, P, D, C = \"middle\"; if (\"top\" === s) v = this.bottom - f, w = this._getXAxisLabelAlignment(); else if (\"bottom\" === s) v = this.top + f, w = this._getXAxisLabelAlignment(); else if (\"left\" === s) { const t = this._getYAxisLabelAlignment(d); w = t.textAlign, y = t.x } else if (\"right\" === s) { const t = this._getYAxisLabelAlignment(d); w = t.textAlign, y = t.x } else if (\"x\" === e) { if (\"center\" === s) v = (t.top + t.bottom) / 2 + u; else if (U(s)) { const t = Object.keys(s)[0], e = s[t]; v = this.chart.scales[t].getPixelForValue(e) + u } w = this._getXAxisLabelAlignment() } else if (\"y\" === e) { if (\"center\" === s) y = (t.left + t.right) / 2 - u; else if (U(s)) { const t = Object.keys(s)[0], e = s[t]; y = this.chart.scales[t].getPixelForValue(e) } w = this._getYAxisLabelAlignment(d).textAlign } \"y\" === e && (\"start\" === r ? C = \"top\" : \"end\" === r && (C = \"bottom\")); const O = this._getLabelSizes(); for (m = 0, x = a.length; m < x; ++m) { b = a[m], _ = b.label; const t = n.setContext(this.getContext(m)); M = this.getPixelForTick(m) + n.labelOffset, k = this._resolveTickFontOptions(m), S = k.lineHeight, P = Y(_) ? _.length : 1; const e = P / 2, i = t.color, r = t.textStrokeColor, h = t.textStrokeWidth; let d, u = w; if (o ? (y = M, \"inner\" === w && (u = m === x - 1 ? this.options.reverse ? \"left\" : \"right\" : 0 === m ? this.options.reverse ? \"right\" : \"left\" : \"center\"), D = \"top\" === s ? \"near\" === l || 0 !== g ? -P * S + S / 2 : \"center\" === l ? -O.highest.height / 2 - e * S + S : -O.highest.height + S / 2 : \"near\" === l || 0 !== g ? S / 2 : \"center\" === l ? O.highest.height / 2 - e * S : O.highest.height - P * S, c && (D *= -1)) : (v = M, D = (1 - P) * S / 2), t.showLabelBackdrop) { const e = We(t.backdropPadding), i = O.heights[m], s = O.widths[m]; let n = v + D - e.top, o = y - e.left; switch (C) { case \"middle\": n -= i / 2; break; case \"bottom\": n -= i }switch (w) { case \"center\": o -= s / 2; break; case \"right\": o -= s }d = { left: o, top: n, width: s + e.width, height: i + e.height, color: t.backdropColor } } p.push({ rotation: g, label: _, font: k, color: i, strokeColor: r, strokeWidth: h, textOffset: D, textAlign: u, textBaseline: C, translation: [y, v], backdrop: d }) } return p } _getXAxisLabelAlignment() { const { position: t, ticks: e } = this.options; if (-jt(this.labelRotation)) return \"top\" === t ? \"left\" : \"right\"; let i = \"center\"; return \"start\" === e.align ? i = \"left\" : \"end\" === e.align ? i = \"right\" : \"inner\" === e.align && (i = \"inner\"), i } _getYAxisLabelAlignment(t) { const { position: e, ticks: { crossAlign: i, mirror: s, padding: n } } = this.options, o = t + n, a = this._getLabelSizes().widest.width; let r, l; return \"left\" === e ? s ? (l = this.right + n, \"near\" === i ? r = \"left\" : \"center\" === i ? (r = \"center\", l += a / 2) : (r = \"right\", l += a)) : (l = this.right - o, \"near\" === i ? r = \"right\" : \"center\" === i ? (r = \"center\", l -= a / 2) : (r = \"left\", l = this.left)) : \"right\" === e ? s ? (l = this.left + n, \"near\" === i ? r = \"right\" : \"center\" === i ? (r = \"center\", l -= a / 2) : (r = \"left\", l -= a)) : (l = this.left + o, \"near\" === i ? r = \"left\" : \"center\" === i ? (r = \"center\", l += a / 2) : (r = \"right\", l = this.right)) : r = \"right\", { textAlign: r, x: l } } _computeLabelArea() { if (this.options.ticks.mirror) return; const t = this.chart, e = this.options.position; return \"left\" === e || \"right\" === e ? { top: 0, left: this.left, bottom: t.height, right: this.right } : \"top\" === e || \"bottom\" === e ? { top: this.top, left: 0, bottom: this.bottom, right: t.width } : void 0 } drawBackground() { const { ctx: t, options: { backgroundColor: e }, left: i, top: s, width: n, height: o } = this; e && (t.save(), t.fillStyle = e, t.fillRect(i, s, n, o), t.restore()) } getLineWidthForValue(t) { const e = this.options.grid; if (!this._isVisible() || !e.display) return 0; const i = this.ticks.findIndex((e => e.value === t)); if (i >= 0) { return e.setContext(this.getContext(i)).lineWidth } return 0 } drawGrid(t) { const e = this.options.grid, i = this.ctx, s = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(t)); let n, o; const a = (t, e, s) => { s.width && s.color && (i.save(), i.lineWidth = s.width, i.strokeStyle = s.color, i.setLineDash(s.borderDash || []), i.lineDashOffset = s.borderDashOffset, i.beginPath(), i.moveTo(t.x, t.y), i.lineTo(e.x, e.y), i.stroke(), i.restore()) }; if (e.display) for (n = 0, o = s.length; n < o; ++n) { const t = s[n]; e.drawOnChartArea && a({ x: t.x1, y: t.y1 }, { x: t.x2, y: t.y2 }, t), e.drawTicks && a({ x: t.tx1, y: t.ty1 }, { x: t.tx2, y: t.ty2 }, { color: t.tickColor, width: t.tickWidth, borderDash: t.tickBorderDash, borderDashOffset: t.tickBorderDashOffset }) } } drawBorder() { const { chart: t, ctx: e, options: { grid: i } } = this, s = i.setContext(this.getContext()), n = i.drawBorder ? s.borderWidth : 0; if (!n) return; const o = i.setContext(this.getContext(0)).lineWidth, a = this._borderValue; let r, l, h, c; this.isHorizontal() ? (r = Me(t, this.left, n) - n / 2, l = Me(t, this.right, o) + o / 2, h = c = a) : (h = Me(t, this.top, n) - n / 2, c = Me(t, this.bottom, o) + o / 2, r = l = a), e.save(), e.lineWidth = s.borderWidth, e.strokeStyle = s.borderColor, e.beginPath(), e.moveTo(r, h), e.lineTo(l, c), e.stroke(), e.restore() } drawLabels(t) { if (!this.options.ticks.display) return; const e = this.ctx, i = this._computeLabelArea(); i && De(e, i); const s = this._labelItems || (this._labelItems = this._computeLabelItems(t)); let n, o; for (n = 0, o = s.length; n < o; ++n) { const t = s[n], i = t.font, o = t.label; t.backdrop && (e.fillStyle = t.backdrop.color, e.fillRect(t.backdrop.left, t.backdrop.top, t.backdrop.width, t.backdrop.height)), Te(e, o, 0, t.textOffset, i, t) } i && Ce(e) } drawTitle() { const { ctx: t, options: { position: e, title: i, reverse: s } } = this; if (!i.display) return; const o = Ne(i.font), a = We(i.padding), r = i.align; let l = o.lineHeight / 2; \"bottom\" === e || \"center\" === e || U(e) ? (l += a.bottom, Y(i.text) && (l += o.lineHeight * (i.text.length - 1))) : l += a.top; const { titleX: h, titleY: c, maxWidth: d, rotation: u } = function (t, e, i, s) { const { top: o, left: a, bottom: r, right: l, chart: h } = t, { chartArea: c, scales: d } = h; let u, f, g, p = 0; const m = r - o, x = l - a; if (t.isHorizontal()) { if (f = n(s, a, l), U(i)) { const t = Object.keys(i)[0], s = i[t]; g = d[t].getPixelForValue(s) + m - e } else g = \"center\" === i ? (c.bottom + c.top) / 2 + m - e : Ls(t, i, e); u = l - a } else { if (U(i)) { const t = Object.keys(i)[0], s = i[t]; f = d[t].getPixelForValue(s) - x + e } else f = \"center\" === i ? (c.left + c.right) / 2 - x + e : Ls(t, i, e); g = n(s, r, o), p = \"left\" === i ? -Lt : Lt } return { titleX: f, titleY: g, maxWidth: u, rotation: p } }(this, l, e, r); Te(t, i.text, 0, 0, o, { color: i.color, maxWidth: d, rotation: u, textAlign: Fs(r, e, s), textBaseline: \"middle\", translation: [h, c] }) } draw(t) { this._isVisible() && (this.drawBackground(), this.drawGrid(t), this.drawBorder(), this.drawTitle(), this.drawLabels(t)) } _layers() { const t = this.options, e = t.ticks && t.ticks.z || 0, i = K(t.grid && t.grid.z, -1); return this._isVisible() && this.draw === Bs.prototype.draw ? [{ z: i, draw: t => { this.drawBackground(), this.drawGrid(t), this.drawTitle() } }, { z: i + 1, draw: () => { this.drawBorder() } }, { z: e, draw: t => { this.drawLabels(t) } }] : [{ z: e, draw: t => { this.draw(t) } }] } getMatchingVisibleMetas(t) { const e = this.chart.getSortedVisibleDatasetMetas(), i = this.axis + \"AxisID\", s = []; let n, o; for (n = 0, o = e.length; n < o; ++n) { const o = e[n]; o[i] !== this.id || t && o.type !== t || s.push(o) } return s } _resolveTickFontOptions(t) { return Ne(this.options.ticks.setContext(this.getContext(t)).font) } _maxDigits() { const t = this._resolveTickFontOptions(0).lineHeight; return (this.isHorizontal() ? this.width : this.height) / t } } class Vs { constructor(t, e, i) { this.type = t, this.scope = e, this.override = i, this.items = Object.create(null) } isForType(t) { return Object.prototype.isPrototypeOf.call(this.type.prototype, t.prototype) } register(t) { const e = Object.getPrototypeOf(t); let i; (function (t) { return \"id\" in t && \"defaults\" in t })(e) && (i = this.register(e)); const s = this.items, n = t.id, o = this.scope + \".\" + n; if (!n) throw new Error(\"class does not have id: \" + t); return n in s || (s[n] = t, function (t, e, i) { const s = nt(Object.create(null), [i ? bt.get(i) : {}, bt.get(e), t.defaults]); bt.set(e, s), t.defaultRoutes && function (t, e) { Object.keys(e).forEach((i => { const s = i.split(\".\"), n = s.pop(), o = [t].concat(s).join(\".\"), a = e[i].split(\".\"), r = a.pop(), l = a.join(\".\"); bt.route(o, n, l, r) })) }(e, t.defaultRoutes); t.descriptors && bt.describe(e, t.descriptors) }(t, o, i), this.override && bt.override(t.id, t.overrides)), o } get(t) { return this.items[t] } unregister(t) { const e = this.items, i = t.id, s = this.scope; i in e && delete e[i], s && i in bt[s] && (delete bt[s][i], this.override && delete gt[i]) } } var Ws = new class { constructor() { this.controllers = new Vs(Ps, \"datasets\", !0), this.elements = new Vs(Ds, \"elements\"), this.plugins = new Vs(Object, \"plugins\"), this.scales = new Vs(Bs, \"scales\"), this._typedRegistries = [this.controllers, this.scales, this.elements] } add(...t) { this._each(\"register\", t) } remove(...t) { this._each(\"unregister\", t) } addControllers(...t) { this._each(\"register\", t, this.controllers) } addElements(...t) { this._each(\"register\", t, this.elements) } addPlugins(...t) { this._each(\"register\", t, this.plugins) } addScales(...t) { this._each(\"register\", t, this.scales) } getController(t) { return this._get(t, this.controllers, \"controller\") } getElement(t) { return this._get(t, this.elements, \"element\") } getPlugin(t) { return this._get(t, this.plugins, \"plugin\") } getScale(t) { return this._get(t, this.scales, \"scale\") } removeControllers(...t) { this._each(\"unregister\", t, this.controllers) } removeElements(...t) { this._each(\"unregister\", t, this.elements) } removePlugins(...t) { this._each(\"unregister\", t, this.plugins) } removeScales(...t) { this._each(\"unregister\", t, this.scales) } _each(t, e, i) { [...e].forEach((e => { const s = i || this._getRegistryForType(e); i || s.isForType(e) || s === this.plugins && e.id ? this._exec(t, s, e) : Q(e, (e => { const s = i || this._getRegistryForType(e); this._exec(t, s, e) })) })) } _exec(t, e, i) { const s = ht(t); J(i[\"before\" + s], [], i), e[t](i), J(i[\"after\" + s], [], i) } _getRegistryForType(t) { for (let e = 0; e < this._typedRegistries.length; e++) { const i = this._typedRegistries[e]; if (i.isForType(t)) return i } return this.plugins } _get(t, e, i) { const s = e.get(t); if (void 0 === s) throw new Error('\"' + t + '\" is not a registered ' + i + \".\"); return s } }; class Ns { constructor() { this._init = [] } notify(t, e, i, s) { \"beforeInit\" === e && (this._init = this._createDescriptors(t, !0), this._notify(this._init, t, \"install\")); const n = s ? this._descriptors(t).filter(s) : this._descriptors(t), o = this._notify(n, t, e, i); return \"afterDestroy\" === e && (this._notify(n, t, \"stop\"), this._notify(this._init, t, \"uninstall\")), o } _notify(t, e, i, s) { s = s || {}; for (const n of t) { const t = n.plugin; if (!1 === J(t[i], [e, s, n.options], t) && s.cancelable) return !1 } return !0 } invalidate() { $(this._cache) || (this._oldCache = this._cache, this._cache = void 0) } _descriptors(t) { if (this._cache) return this._cache; const e = this._cache = this._createDescriptors(t); return this._notifyStateChanges(t), e } _createDescriptors(t, e) { const i = t && t.config, s = K(i.options && i.options.plugins, {}), n = function (t) { const e = [], i = Object.keys(Ws.plugins.items); for (let t = 0; t < i.length; t++)e.push(Ws.getPlugin(i[t])); const s = t.plugins || []; for (let t = 0; t < s.length; t++) { const i = s[t]; -1 === e.indexOf(i) && e.push(i) } return e }(i); return !1 !== s || e ? function (t, e, i, s) { const n = [], o = t.getContext(); for (let a = 0; a < e.length; a++) { const r = e[a], l = Hs(i[r.id], s); null !== l && n.push({ plugin: r, options: js(t.config, r, l, o) }) } return n }(t, n, s, e) : [] } _notifyStateChanges(t) { const e = this._oldCache || [], i = this._cache, s = (t, e) => t.filter((t => !e.some((e => t.plugin.id === e.plugin.id)))); this._notify(s(e, i), t, \"stop\"), this._notify(s(i, e), t, \"start\") } } function Hs(t, e) { return e || !1 !== t ? !0 === t ? {} : t : null } function js(t, e, i, s) { const n = t.pluginScopeKeys(e), o = t.getOptionScopes(i, n); return t.createResolver(o, s, [\"\"], { scriptable: !1, indexable: !1, allKeys: !0 }) } function $s(t, e) { const i = bt.datasets[t] || {}; return ((e.datasets || {})[t] || {}).indexAxis || e.indexAxis || i.indexAxis || \"x\" } function Ys(t, e) { return \"x\" === t || \"y\" === t ? t : e.axis || (\"top\" === (i = e.position) || \"bottom\" === i ? \"x\" : \"left\" === i || \"right\" === i ? \"y\" : void 0) || t.charAt(0).toLowerCase(); var i } function Us(t) { const e = t.options || (t.options = {}); e.plugins = K(e.plugins, {}), e.scales = function (t, e) { const i = gt[t.type] || { scales: {} }, s = e.scales || {}, n = $s(t.type, e), o = Object.create(null), a = Object.create(null); return Object.keys(s).forEach((t => { const e = s[t]; if (!U(e)) return console.error(`Invalid scale configuration for scale: ${t}`); if (e._proxy) return console.warn(`Ignoring resolver passed as options for scale: ${t}`); const r = Ys(t, e), l = function (t, e) { return t === e ? \"_index_\" : \"_value_\" }(r, n), h = i.scales || {}; o[r] = o[r] || t, a[t] = ot(Object.create(null), [{ axis: r }, e, h[r], h[l]]) })), t.data.datasets.forEach((i => { const n = i.type || t.type, r = i.indexAxis || $s(n, e), l = (gt[n] || {}).scales || {}; Object.keys(l).forEach((t => { const e = function (t, e) { let i = t; return \"_index_\" === t ? i = e : \"_value_\" === t && (i = \"x\" === e ? \"y\" : \"x\"), i }(t, r), n = i[e + \"AxisID\"] || o[e] || e; a[n] = a[n] || Object.create(null), ot(a[n], [{ axis: e }, s[n], l[t]]) })) })), Object.keys(a).forEach((t => { const e = a[t]; ot(e, [bt.scales[e.type], bt.scale]) })), a }(t, e) } function Xs(t) { return (t = t || {}).datasets = t.datasets || [], t.labels = t.labels || [], t } const qs = new Map, Ks = new Set; function Gs(t, e) { let i = qs.get(t); return i || (i = e(), qs.set(t, i), Ks.add(i)), i } const Zs = (t, e, i) => { const s = lt(e, i); void 0 !== s && t.add(s) }; class Js { constructor(t) { this._config = function (t) { return (t = t || {}).data = Xs(t.data), Us(t), t }(t), this._scopeCache = new Map, this._resolverCache = new Map } get platform() { return this._config.platform } get type() { return this._config.type } set type(t) { this._config.type = t } get data() { return this._config.data } set data(t) { this._config.data = Xs(t) } get options() { return this._config.options } set options(t) { this._config.options = t } get plugins() { return this._config.plugins } update() { const t = this._config; this.clearCache(), Us(t) } clearCache() { this._scopeCache.clear(), this._resolverCache.clear() } datasetScopeKeys(t) { return Gs(t, (() => [[`datasets.${t}`, \"\"]])) } datasetAnimationScopeKeys(t, e) { return Gs(`${t}.transition.${e}`, (() => [[`datasets.${t}.transitions.${e}`, `transitions.${e}`], [`datasets.${t}`, \"\"]])) } datasetElementScopeKeys(t, e) { return Gs(`${t}-${e}`, (() => [[`datasets.${t}.elements.${e}`, `datasets.${t}`, `elements.${e}`, \"\"]])) } pluginScopeKeys(t) { const e = t.id; return Gs(`${this.type}-plugin-${e}`, (() => [[`plugins.${e}`, ...t.additionalOptionScopes || []]])) } _cachedScopes(t, e) { const i = this._scopeCache; let s = i.get(t); return s && !e || (s = new Map, i.set(t, s)), s } getOptionScopes(t, e, i) { const { options: s, type: n } = this, o = this._cachedScopes(t, i), a = o.get(e); if (a) return a; const r = new Set; e.forEach((e => { t && (r.add(t), e.forEach((e => Zs(r, t, e)))), e.forEach((t => Zs(r, s, t))), e.forEach((t => Zs(r, gt[n] || {}, t))), e.forEach((t => Zs(r, bt, t))), e.forEach((t => Zs(r, pt, t))) })); const l = Array.from(r); return 0 === l.length && l.push(Object.create(null)), Ks.has(e) && o.set(e, l), l } chartOptionScopes() { const { options: t, type: e } = this; return [t, gt[e] || {}, bt.datasets[e] || {}, { type: e }, bt, pt] } resolveNamedOptions(t, e, i, s = [\"\"]) { const n = { $shared: !0 }, { resolver: o, subPrefixes: a } = Qs(this._resolverCache, t, s); let r = o; if (function (t, e) { const { isScriptable: i, isIndexable: s } = ai(t); for (const n of e) { const e = i(n), o = s(n), a = (o || e) && t[n]; if (e && (dt(a) || tn(a)) || o && Y(a)) return !0 } return !1 }(o, e)) { n.$shared = !1; r = oi(o, i = dt(i) ? i() : i, this.createResolver(t, i, a)) } for (const t of e) n[t] = r[t]; return n } createResolver(t, e, i = [\"\"], s) { const { resolver: n } = Qs(this._resolverCache, t, i); return U(e) ? oi(n, e, void 0, s) : n } } function Qs(t, e, i) { let s = t.get(e); s || (s = new Map, t.set(e, s)); const n = i.join(); let o = s.get(n); if (!o) { o = { resolver: ni(e, i), subPrefixes: i.filter((t => !t.toLowerCase().includes(\"hover\"))) }, s.set(n, o) } return o } const tn = t => U(t) && Object.getOwnPropertyNames(t).reduce(((e, i) => e || dt(t[i])), !1); const en = [\"top\", \"bottom\", \"left\", \"right\", \"chartArea\"]; function sn(t, e) { return \"top\" === t || \"bottom\" === t || -1 === en.indexOf(t) && \"x\" === e } function nn(t, e) { return function (i, s) { return i[t] === s[t] ? i[e] - s[e] : i[t] - s[t] } } function on(t) { const e = t.chart, i = e.options.animation; e.notifyPlugins(\"afterRender\"), J(i && i.onComplete, [t], e) } function an(t) { const e = t.chart, i = e.options.animation; J(i && i.onProgress, [t], e) } function rn(t) { return te() && \"string\" == typeof t ? t = document.getElementById(t) : t && t.length && (t = t[0]), t && t.canvas && (t = t.canvas), t } const ln = {}, hn = t => { const e = rn(t); return Object.values(ln).filter((t => t.canvas === e)).pop() }; function cn(t, e, i) { const s = Object.keys(t); for (const n of s) { const s = +n; if (s >= e) { const o = t[n]; delete t[n], (i > 0 || s > e) && (t[s + i] = o) } } } class dn { constructor(t, e) { const s = this.config = new Js(e), n = rn(t), o = hn(n); if (o) throw new Error(\"Canvas is already in use. Chart with ID '\" + o.id + \"' must be destroyed before the canvas can be reused.\"); const r = s.createResolver(s.chartOptionScopes(), this.getContext()); this.platform = new (s.platform || ls(n)), this.platform.updateConfig(s); const l = this.platform.acquireContext(n, r.aspectRatio), h = l && l.canvas, c = h && h.height, d = h && h.width; this.id = j(), this.ctx = l, this.canvas = h, this.width = d, this.height = c, this._options = r, this._aspectRatio = this.aspectRatio, this._layers = [], this._metasets = [], this._stacks = void 0, this.boxes = [], this.currentDevicePixelRatio = void 0, this.chartArea = void 0, this._active = [], this._lastEvent = void 0, this._listeners = {}, this._responsiveListeners = void 0, this._sortedMetasets = [], this.scales = {}, this._plugins = new Ns, this.$proxies = {}, this._hiddenIndices = {}, this.attached = !1, this._animationsDisabled = void 0, this.$context = void 0, this._doResize = i((t => this.update(t)), r.resizeDelay || 0), this._dataChanges = [], ln[this.id] = this, l && h ? (a.listen(this, \"complete\", on), a.listen(this, \"progress\", an), this._initialize(), this.attached && this.update()) : console.error(\"Failed to create chart: can't acquire context from the given item\") } get aspectRatio() { const { options: { aspectRatio: t, maintainAspectRatio: e }, width: i, height: s, _aspectRatio: n } = this; return $(t) ? e && n ? n : s ? i / s : null : t } get data() { return this.config.data } set data(t) { this.config.data = t } get options() { return this._options } set options(t) { this.config.options = t } _initialize() { return this.notifyPlugins(\"beforeInit\"), this.options.responsive ? this.resize() : ce(this, this.options.devicePixelRatio), this.bindEvents(), this.notifyPlugins(\"afterInit\"), this } clear() { return ke(this.canvas, this.ctx), this } stop() { return a.stop(this), this } resize(t, e) { a.running(this) ? this._resizeBeforeDraw = { width: t, height: e } : this._resize(t, e) } _resize(t, e) { const i = this.options, s = this.canvas, n = i.maintainAspectRatio && this.aspectRatio, o = this.platform.getMaximumSize(s, t, e, n), a = i.devicePixelRatio || this.platform.getDevicePixelRatio(), r = this.width ? \"resize\" : \"attach\"; this.width = o.width, this.height = o.height, this._aspectRatio = this.aspectRatio, ce(this, a, !0) && (this.notifyPlugins(\"resize\", { size: o }), J(i.onResize, [this, o], this), this.attached && this._doResize(r) && this.render()) } ensureScalesHaveIDs() { Q(this.options.scales || {}, ((t, e) => { t.id = e })) } buildOrUpdateScales() { const t = this.options, e = t.scales, i = this.scales, s = Object.keys(i).reduce(((t, e) => (t[e] = !1, t)), {}); let n = []; e && (n = n.concat(Object.keys(e).map((t => { const i = e[t], s = Ys(t, i), n = \"r\" === s, o = \"x\" === s; return { options: i, dposition: n ? \"chartArea\" : o ? \"bottom\" : \"left\", dtype: n ? \"radialLinear\" : o ? \"category\" : \"linear\" } })))), Q(n, (e => { const n = e.options, o = n.id, a = Ys(o, n), r = K(n.type, e.dtype); void 0 !== n.position && sn(n.position, a) === sn(e.dposition) || (n.position = e.dposition), s[o] = !0; let l = null; if (o in i && i[o].type === r) l = i[o]; else { l = new (Ws.getScale(r))({ id: o, type: r, ctx: this.ctx, chart: this }), i[l.id] = l } l.init(n, t) })), Q(s, ((t, e) => { t || delete i[e] })), Q(i, (t => { si.configure(this, t, t.options), si.addBox(this, t) })) } _updateMetasets() { const t = this._metasets, e = this.data.datasets.length, i = t.length; if (t.sort(((t, e) => t.index - e.index)), i > e) { for (let t = e; t < i; ++t)this._destroyDatasetMeta(t); t.splice(e, i - e) } this._sortedMetasets = t.slice(0).sort(nn(\"order\", \"index\")) } _removeUnreferencedMetasets() { const { _metasets: t, data: { datasets: e } } = this; t.length > e.length && delete this._stacks, t.forEach(((t, i) => { 0 === e.filter((e => e === t._dataset)).length && this._destroyDatasetMeta(i) })) } buildOrUpdateControllers() { const t = [], e = this.data.datasets; let i, s; for (this._removeUnreferencedMetasets(), i = 0, s = e.length; i < s; i++) { const s = e[i]; let n = this.getDatasetMeta(i); const o = s.type || this.config.type; if (n.type && n.type !== o && (this._destroyDatasetMeta(i), n = this.getDatasetMeta(i)), n.type = o, n.indexAxis = s.indexAxis || $s(o, this.options), n.order = s.order || 0, n.index = i, n.label = \"\" + s.label, n.visible = this.isDatasetVisible(i), n.controller) n.controller.updateIndex(i), n.controller.linkScales(); else { const e = Ws.getController(o), { datasetElementType: s, dataElementType: a } = bt.datasets[o]; Object.assign(e.prototype, { dataElementType: Ws.getElement(a), datasetElementType: s && Ws.getElement(s) }), n.controller = new e(this, i), t.push(n.controller) } } return this._updateMetasets(), t } _resetElements() { Q(this.data.datasets, ((t, e) => { this.getDatasetMeta(e).controller.reset() }), this) } reset() { this._resetElements(), this.notifyPlugins(\"reset\") } update(t) { const e = this.config; e.update(); const i = this._options = e.createResolver(e.chartOptionScopes(), this.getContext()), s = this._animationsDisabled = !i.animation; if (this._updateScales(), this._checkEventBindings(), this._updateHiddenIndices(), this._plugins.invalidate(), !1 === this.notifyPlugins(\"beforeUpdate\", { mode: t, cancelable: !0 })) return; const n = this.buildOrUpdateControllers(); this.notifyPlugins(\"beforeElementsUpdate\"); let o = 0; for (let t = 0, e = this.data.datasets.length; t < e; t++) { const { controller: e } = this.getDatasetMeta(t), i = !s && -1 === n.indexOf(e); e.buildOrUpdateElements(i), o = Math.max(+e.getMaxOverflow(), o) } o = this._minPadding = i.layout.autoPadding ? o : 0, this._updateLayout(o), s || Q(n, (t => { t.reset() })), this._updateDatasets(t), this.notifyPlugins(\"afterUpdate\", { mode: t }), this._layers.sort(nn(\"z\", \"_idx\")); const { _active: a, _lastEvent: r } = this; r ? this._eventHandler(r, !0) : a.length && this._updateHoverStyles(a, a, !0), this.render() } _updateScales() { Q(this.scales, (t => { si.removeBox(this, t) })), this.ensureScalesHaveIDs(), this.buildOrUpdateScales() } _checkEventBindings() { const t = this.options, e = new Set(Object.keys(this._listeners)), i = new Set(t.events); ut(e, i) && !!this._responsiveListeners === t.responsive || (this.unbindEvents(), this.bindEvents()) } _updateHiddenIndices() { const { _hiddenIndices: t } = this, e = this._getUniformDataChanges() || []; for (const { method: i, start: s, count: n } of e) { cn(t, s, \"_removeElements\" === i ? -n : n) } } _getUniformDataChanges() { const t = this._dataChanges; if (!t || !t.length) return; this._dataChanges = []; const e = this.data.datasets.length, i = e => new Set(t.filter((t => t[0] === e)).map(((t, e) => e + \",\" + t.splice(1).join(\",\")))), s = i(0); for (let t = 1; t < e; t++)if (!ut(s, i(t))) return; return Array.from(s).map((t => t.split(\",\"))).map((t => ({ method: t[1], start: +t[2], count: +t[3] }))) } _updateLayout(t) { if (!1 === this.notifyPlugins(\"beforeLayout\", { cancelable: !0 })) return; si.update(this, this.width, this.height, t); const e = this.chartArea, i = e.width <= 0 || e.height <= 0; this._layers = [], Q(this.boxes, (t => { i && \"chartArea\" === t.position || (t.configure && t.configure(), this._layers.push(...t._layers())) }), this), this._layers.forEach(((t, e) => { t._idx = e })), this.notifyPlugins(\"afterLayout\") } _updateDatasets(t) { if (!1 !== this.notifyPlugins(\"beforeDatasetsUpdate\", { mode: t, cancelable: !0 })) { for (let t = 0, e = this.data.datasets.length; t < e; ++t)this.getDatasetMeta(t).controller.configure(); for (let e = 0, i = this.data.datasets.length; e < i; ++e)this._updateDataset(e, dt(t) ? t({ datasetIndex: e }) : t); this.notifyPlugins(\"afterDatasetsUpdate\", { mode: t }) } } _updateDataset(t, e) { const i = this.getDatasetMeta(t), s = { meta: i, index: t, mode: e, cancelable: !0 }; !1 !== this.notifyPlugins(\"beforeDatasetUpdate\", s) && (i.controller._update(e), s.cancelable = !1, this.notifyPlugins(\"afterDatasetUpdate\", s)) } render() { !1 !== this.notifyPlugins(\"beforeRender\", { cancelable: !0 }) && (a.has(this) ? this.attached && !a.running(this) && a.start(this) : (this.draw(), on({ chart: this }))) } draw() { let t; if (this._resizeBeforeDraw) { const { width: t, height: e } = this._resizeBeforeDraw; this._resize(t, e), this._resizeBeforeDraw = null } if (this.clear(), this.width <= 0 || this.height <= 0) return; if (!1 === this.notifyPlugins(\"beforeDraw\", { cancelable: !0 })) return; const e = this._layers; for (t = 0; t < e.length && e[t].z <= 0; ++t)e[t].draw(this.chartArea); for (this._drawDatasets(); t < e.length; ++t)e[t].draw(this.chartArea); this.notifyPlugins(\"afterDraw\") } _getSortedDatasetMetas(t) { const e = this._sortedMetasets, i = []; let s, n; for (s = 0, n = e.length; s < n; ++s) { const n = e[s]; t && !n.visible || i.push(n) } return i } getSortedVisibleDatasetMetas() { return this._getSortedDatasetMetas(!0) } _drawDatasets() { if (!1 === this.notifyPlugins(\"beforeDatasetsDraw\", { cancelable: !0 })) return; const t = this.getSortedVisibleDatasetMetas(); for (let e = t.length - 1; e >= 0; --e)this._drawDataset(t[e]); this.notifyPlugins(\"afterDatasetsDraw\") } _drawDataset(t) { const e = this.ctx, i = t._clip, s = !i.disabled, n = this.chartArea, o = { meta: t, index: t.index, cancelable: !0 }; !1 !== this.notifyPlugins(\"beforeDatasetDraw\", o) && (s && De(e, { left: !1 === i.left ? 0 : n.left - i.left, right: !1 === i.right ? this.width : n.right + i.right, top: !1 === i.top ? 0 : n.top - i.top, bottom: !1 === i.bottom ? this.height : n.bottom + i.bottom }), t.controller.draw(), s && Ce(e), o.cancelable = !1, this.notifyPlugins(\"afterDatasetDraw\", o)) } isPointInArea(t) { return Pe(t, this.chartArea, this._minPadding) } getElementsAtEventForMode(t, e, i, s) { const n = _e.modes[e]; return \"function\" == typeof n ? n(this, t, i, s) : [] } getDatasetMeta(t) { const e = this.data.datasets[t], i = this._metasets; let s = i.filter((t => t && t._dataset === e)).pop(); return s || (s = { type: null, data: [], dataset: null, controller: null, hidden: null, xAxisID: null, yAxisID: null, order: e && e.order || 0, index: t, _dataset: e, _parsed: [], _sorted: !1 }, i.push(s)), s } getContext() { return this.$context || (this.$context = $e(null, { chart: this, type: \"chart\" })) } getVisibleDatasetCount() { return this.getSortedVisibleDatasetMetas().length } isDatasetVisible(t) { const e = this.data.datasets[t]; if (!e) return !1; const i = this.getDatasetMeta(t); return \"boolean\" == typeof i.hidden ? !i.hidden : !e.hidden } setDatasetVisibility(t, e) { this.getDatasetMeta(t).hidden = !e } toggleDataVisibility(t) { this._hiddenIndices[t] = !this._hiddenIndices[t] } getDataVisibility(t) { return !this._hiddenIndices[t] } _updateVisibility(t, e, i) { const s = i ? \"show\" : \"hide\", n = this.getDatasetMeta(t), o = n.controller._resolveAnimations(void 0, s); ct(e) ? (n.data[e].hidden = !i, this.update()) : (this.setDatasetVisibility(t, i), o.update(n, { visible: i }), this.update((e => e.datasetIndex === t ? s : void 0))) } hide(t, e) { this._updateVisibility(t, e, !1) } show(t, e) { this._updateVisibility(t, e, !0) } _destroyDatasetMeta(t) { const e = this._metasets[t]; e && e.controller && e.controller._destroy(), delete this._metasets[t] } _stop() { let t, e; for (this.stop(), a.remove(this), t = 0, e = this.data.datasets.length; t < e; ++t)this._destroyDatasetMeta(t) } destroy() { this.notifyPlugins(\"beforeDestroy\"); const { canvas: t, ctx: e } = this; this._stop(), this.config.clearCache(), t && (this.unbindEvents(), ke(t, e), this.platform.releaseContext(e), this.canvas = null, this.ctx = null), this.notifyPlugins(\"destroy\"), delete ln[this.id], this.notifyPlugins(\"afterDestroy\") } toBase64Image(...t) { return this.canvas.toDataURL(...t) } bindEvents() { this.bindUserEvents(), this.options.responsive ? this.bindResponsiveEvents() : this.attached = !0 } bindUserEvents() { const t = this._listeners, e = this.platform, i = (i, s) => { e.addEventListener(this, i, s), t[i] = s }, s = (t, e, i) => { t.offsetX = e, t.offsetY = i, this._eventHandler(t) }; Q(this.options.events, (t => i(t, s))) } bindResponsiveEvents() { this._responsiveListeners || (this._responsiveListeners = {}); const t = this._responsiveListeners, e = this.platform, i = (i, s) => { e.addEventListener(this, i, s), t[i] = s }, s = (i, s) => { t[i] && (e.removeEventListener(this, i, s), delete t[i]) }, n = (t, e) => { this.canvas && this.resize(t, e) }; let o; const a = () => { s(\"attach\", a), this.attached = !0, this.resize(), i(\"resize\", n), i(\"detach\", o) }; o = () => { this.attached = !1, s(\"resize\", n), this._stop(), this._resize(0, 0), i(\"attach\", a) }, e.isAttached(this.canvas) ? a() : o() } unbindEvents() { Q(this._listeners, ((t, e) => { this.platform.removeEventListener(this, e, t) })), this._listeners = {}, Q(this._responsiveListeners, ((t, e) => { this.platform.removeEventListener(this, e, t) })), this._responsiveListeners = void 0 } updateHoverStyle(t, e, i) { const s = i ? \"set\" : \"remove\"; let n, o, a, r; for (\"dataset\" === e && (n = this.getDatasetMeta(t[0].datasetIndex), n.controller[\"_\" + s + \"DatasetHoverStyle\"]()), a = 0, r = t.length; a < r; ++a) { o = t[a]; const e = o && this.getDatasetMeta(o.datasetIndex).controller; e && e[s + \"HoverStyle\"](o.element, o.datasetIndex, o.index) } } getActiveElements() { return this._active || [] } setActiveElements(t) { const e = this._active || [], i = t.map((({ datasetIndex: t, index: e }) => { const i = this.getDatasetMeta(t); if (!i) throw new Error(\"No dataset found at index \" + t); return { datasetIndex: t, element: i.data[e], index: e } })); !tt(i, e) && (this._active = i, this._lastEvent = null, this._updateHoverStyles(i, e)) } notifyPlugins(t, e, i) { return this._plugins.notify(this, t, e, i) } _updateHoverStyles(t, e, i) { const s = this.options.hover, n = (t, e) => t.filter((t => !e.some((e => t.datasetIndex === e.datasetIndex && t.index === e.index)))), o = n(e, t), a = i ? t : n(t, e); o.length && this.updateHoverStyle(o, s.mode, !1), a.length && s.mode && this.updateHoverStyle(a, s.mode, !0) } _eventHandler(t, e) { const i = { event: t, replay: e, cancelable: !0, inChartArea: this.isPointInArea(t) }, s = e => (e.options.events || this.options.events).includes(t.native.type); if (!1 === this.notifyPlugins(\"beforeEvent\", i, s)) return; const n = this._handleEvent(t, e, i.inChartArea); return i.cancelable = !1, this.notifyPlugins(\"afterEvent\", i, s), (n || i.changed) && this.render(), this } _handleEvent(t, e, i) { const { _active: s = [], options: n } = this, o = e, a = this._getActiveElements(t, s, i, o), r = ft(t), l = function (t, e, i, s) { return i && \"mouseout\" !== t.type ? s ? e : t : null }(t, this._lastEvent, i, r); i && (this._lastEvent = null, J(n.onHover, [t, a, this], this), r && J(n.onClick, [t, a, this], this)); const h = !tt(a, s); return (h || e) && (this._active = a, this._updateHoverStyles(a, s, e)), this._lastEvent = l, h } _getActiveElements(t, e, i, s) { if (\"mouseout\" === t.type) return []; if (!i) return e; const n = this.options.hover; return this.getElementsAtEventForMode(t, n.mode, n, s) } } const un = () => Q(dn.instances, (t => t._plugins.invalidate())), fn = !0; function gn() { throw new Error(\"This method is not implemented: Check that a complete date adapter is provided.\") } Object.defineProperties(dn, { defaults: { enumerable: fn, value: bt }, instances: { enumerable: fn, value: ln }, overrides: { enumerable: fn, value: gt }, registry: { enumerable: fn, value: Ws }, version: { enumerable: fn, value: \"3.7.1\" }, getChart: { enumerable: fn, value: hn }, register: { enumerable: fn, value: (...t) => { Ws.add(...t), un() } }, unregister: { enumerable: fn, value: (...t) => { Ws.remove(...t), un() } } }); class pn { constructor(t) { this.options = t || {} } formats() { return gn() } parse(t, e) { return gn() } format(t, e) { return gn() } add(t, e, i) { return gn() } diff(t, e, i) { return gn() } startOf(t, e, i) { return gn() } endOf(t, e) { return gn() } } pn.override = function (t) { Object.assign(pn.prototype, t) }; var mn = { _date: pn }; function xn(t) { const e = t.iScale, i = function (t, e) { if (!t._cache.$bar) { const i = t.getMatchingVisibleMetas(e); let s = []; for (let e = 0, n = i.length; e < n; e++)s = s.concat(i[e].controller.getAllParsedValues(t)); t._cache.$bar = Pt(s.sort(((t, e) => t - e))) } return t._cache.$bar }(e, t.type); let s, n, o, a, r = e._length; const l = () => { 32767 !== o && -32768 !== o && (ct(a) && (r = Math.min(r, Math.abs(o - a) || r)), a = o) }; for (s = 0, n = i.length; s < n; ++s)o = e.getPixelForValue(i[s]), l(); for (a = void 0, s = 0, n = e.ticks.length; s < n; ++s)o = e.getPixelForTick(s), l(); return r } function bn(t, e, i, s) { return Y(t) ? function (t, e, i, s) { const n = i.parse(t[0], s), o = i.parse(t[1], s), a = Math.min(n, o), r = Math.max(n, o); let l = a, h = r; Math.abs(a) > Math.abs(r) && (l = r, h = a), e[i.axis] = h, e._custom = { barStart: l, barEnd: h, start: n, end: o, min: a, max: r } }(t, e, i, s) : e[i.axis] = i.parse(t, s), e } function _n(t, e, i, s) { const n = t.iScale, o = t.vScale, a = n.getLabels(), r = n === o, l = []; let h, c, d, u; for (h = i, c = i + s; h < c; ++h)u = e[h], d = {}, d[n.axis] = r || n.parse(a[h], h), l.push(bn(u, d, o, h)); return l } function yn(t) { return t && void 0 !== t.barStart && void 0 !== t.barEnd } function vn(t, e, i, s) { let n = e.borderSkipped; const o = {}; if (!n) return void (t.borderSkipped = o); const { start: a, end: r, reverse: l, top: h, bottom: c } = function (t) { let e, i, s, n, o; return t.horizontal ? (e = t.base > t.x, i = \"left\", s = \"right\") : (e = t.base < t.y, i = \"bottom\", s = \"top\"), e ? (n = \"end\", o = \"start\") : (n = \"start\", o = \"end\"), { start: i, end: s, reverse: e, top: n, bottom: o } }(t); \"middle\" === n && i && (t.enableBorderRadius = !0, (i._top || 0) === s ? n = h : (i._bottom || 0) === s ? n = c : (o[wn(c, a, r, l)] = !0, n = h)), o[wn(n, a, r, l)] = !0, t.borderSkipped = o } function wn(t, e, i, s) { var n, o, a; return s ? (a = i, t = Mn(t = (n = t) === (o = e) ? a : n === a ? o : n, i, e)) : t = Mn(t, e, i), t } function Mn(t, e, i) { return \"start\" === t ? e : \"end\" === t ? i : t } function kn(t, { inflateAmount: e }, i) { t.inflateAmount = \"auto\" === e ? 1 === i ? .33 : 0 : e } class Sn extends Ps { parsePrimitiveData(t, e, i, s) { return _n(t, e, i, s) } parseArrayData(t, e, i, s) { return _n(t, e, i, s) } parseObjectData(t, e, i, s) { const { iScale: n, vScale: o } = t, { xAxisKey: a = \"x\", yAxisKey: r = \"y\" } = this._parsing, l = \"x\" === n.axis ? a : r, h = \"x\" === o.axis ? a : r, c = []; let d, u, f, g; for (d = i, u = i + s; d < u; ++d)g = e[d], f = {}, f[n.axis] = n.parse(lt(g, l), d), c.push(bn(lt(g, h), f, o, d)); return c } updateRangeFromParsed(t, e, i, s) { super.updateRangeFromParsed(t, e, i, s); const n = i._custom; n && e === this._cachedMeta.vScale && (t.min = Math.min(t.min, n.min), t.max = Math.max(t.max, n.max)) } getMaxOverflow() { return 0 } getLabelAndValue(t) { const e = this._cachedMeta, { iScale: i, vScale: s } = e, n = this.getParsed(t), o = n._custom, a = yn(o) ? \"[\" + o.start + \", \" + o.end + \"]\" : \"\" + s.getLabelForValue(n[s.axis]); return { label: \"\" + i.getLabelForValue(n[i.axis]), value: a } } initialize() { this.enableOptionSharing = !0, super.initialize(); this._cachedMeta.stack = this.getDataset().stack } update(t) { const e = this._cachedMeta; this.updateElements(e.data, 0, e.data.length, t) } updateElements(t, e, i, s) { const n = \"reset\" === s, { index: o, _cachedMeta: { vScale: a } } = this, r = a.getBasePixel(), l = a.isHorizontal(), h = this._getRuler(), c = this.resolveDataElementOptions(e, s), d = this.getSharedOptions(c), u = this.includeOptions(s, d); this.updateSharedOptions(d, s, c); for (let c = e; c < e + i; c++) { const e = this.getParsed(c), i = n || $(e[a.axis]) ? { base: r, head: r } : this._calculateBarValuePixels(c), f = this._calculateBarIndexPixels(c, h), g = (e._stacks || {})[a.axis], p = { horizontal: l, base: i.base, enableBorderRadius: !g || yn(e._custom) || o === g._top || o === g._bottom, x: l ? i.head : f.center, y: l ? f.center : i.head, height: l ? f.size : Math.abs(i.size), width: l ? Math.abs(i.size) : f.size }; u && (p.options = d || this.resolveDataElementOptions(c, t[c].active ? \"active\" : s)); const m = p.options || t[c].options; vn(p, m, g, o), kn(p, m, h.ratio), this.updateElement(t[c], c, p, s) } } _getStacks(t, e) { const i = this._cachedMeta.iScale, s = i.getMatchingVisibleMetas(this._type), n = i.options.stacked, o = s.length, a = []; let r, l; for (r = 0; r < o; ++r)if (l = s[r], l.controller.options.grouped) { if (void 0 !== e) { const t = l.controller.getParsed(e)[l.controller._cachedMeta.vScale.axis]; if ($(t) || isNaN(t)) continue } if ((!1 === n || -1 === a.indexOf(l.stack) || void 0 === n && void 0 === l.stack) && a.push(l.stack), l.index === t) break } return a.length || a.push(void 0), a } _getStackCount(t) { return this._getStacks(void 0, t).length } _getStackIndex(t, e, i) { const s = this._getStacks(t, i), n = void 0 !== e ? s.indexOf(e) : -1; return -1 === n ? s.length - 1 : n } _getRuler() { const t = this.options, e = this._cachedMeta, i = e.iScale, s = []; let n, o; for (n = 0, o = e.data.length; n < o; ++n)s.push(i.getPixelForValue(this.getParsed(n)[i.axis], n)); const a = t.barThickness; return { min: a || xn(e), pixels: s, start: i._startPixel, end: i._endPixel, stackCount: this._getStackCount(), scale: i, grouped: t.grouped, ratio: a ? 1 : t.categoryPercentage * t.barPercentage } } _calculateBarValuePixels(t) { const { _cachedMeta: { vScale: e, _stacked: i }, options: { base: s, minBarLength: n } } = this, o = s || 0, a = this.getParsed(t), r = a._custom, l = yn(r); let h, c, d = a[e.axis], u = 0, f = i ? this.applyStack(e, a, i) : d; f !== d && (u = f - d, f = d), l && (d = r.barStart, f = r.barEnd - r.barStart, 0 !== d && zt(d) !== zt(r.barEnd) && (u = 0), u += d); const g = $(s) || l ? u : s; let p = e.getPixelForValue(g); if (h = this.chart.getDataVisibility(t) ? e.getPixelForValue(u + f) : p, c = h - p, Math.abs(c) < n) { c = function (t, e, i) { return 0 !== t ? zt(t) : (e.isHorizontal() ? 1 : -1) * (e.min >= i ? 1 : -1) }(c, e, o) * n, d === o && (p -= c / 2); const t = e.getPixelForDecimal(0), i = e.getPixelForDecimal(1), s = Math.min(t, i), a = Math.max(t, i); p = Math.max(Math.min(p, a), s), h = p + c } if (p === e.getPixelForValue(o)) { const t = zt(c) * e.getLineWidthForValue(o) / 2; p += t, c -= t } return { size: c, base: p, head: h, center: h + c / 2 } } _calculateBarIndexPixels(t, e) { const i = e.scale, s = this.options, n = s.skipNull, o = K(s.maxBarThickness, 1 / 0); let a, r; if (e.grouped) { const i = n ? this._getStackCount(t) : e.stackCount, l = \"flex\" === s.barThickness ? function (t, e, i, s) { const n = e.pixels, o = n[t]; let a = t > 0 ? n[t - 1] : null, r = t < n.length - 1 ? n[t + 1] : null; const l = i.categoryPercentage; null === a && (a = o - (null === r ? e.end - e.start : r - o)), null === r && (r = o + o - a); const h = o - (o - Math.min(a, r)) / 2 * l; return { chunk: Math.abs(r - a) / 2 * l / s, ratio: i.barPercentage, start: h } }(t, e, s, i) : function (t, e, i, s) { const n = i.barThickness; let o, a; return $(n) ? (o = e.min * i.categoryPercentage, a = i.barPercentage) : (o = n * s, a = 1), { chunk: o / s, ratio: a, start: e.pixels[t] - o / 2 } }(t, e, s, i), h = this._getStackIndex(this.index, this._cachedMeta.stack, n ? t : void 0); a = l.start + l.chunk * h + l.chunk / 2, r = Math.min(o, l.chunk * l.ratio) } else a = i.getPixelForValue(this.getParsed(t)[i.axis], t), r = Math.min(o, e.min * e.ratio); return { base: a - r / 2, head: a + r / 2, center: a, size: r } } draw() { const t = this._cachedMeta, e = t.vScale, i = t.data, s = i.length; let n = 0; for (; n < s; ++n)null !== this.getParsed(n)[e.axis] && i[n].draw(this._ctx) } } Sn.id = \"bar\", Sn.defaults = { datasetElementType: !1, dataElementType: \"bar\", categoryPercentage: .8, barPercentage: .9, grouped: !0, animations: { numbers: { type: \"number\", properties: [\"x\", \"y\", \"base\", \"width\", \"height\"] } } }, Sn.overrides = { scales: { _index_: { type: \"category\", offset: !0, grid: { offset: !0 } }, _value_: { type: \"linear\", beginAtZero: !0 } } }; class Pn extends Ps { initialize() { this.enableOptionSharing = !0, super.initialize() } parsePrimitiveData(t, e, i, s) { const n = super.parsePrimitiveData(t, e, i, s); for (let t = 0; t < n.length; t++)n[t]._custom = this.resolveDataElementOptions(t + i).radius; return n } parseArrayData(t, e, i, s) { const n = super.parseArrayData(t, e, i, s); for (let t = 0; t < n.length; t++) { const s = e[i + t]; n[t]._custom = K(s[2], this.resolveDataElementOptions(t + i).radius) } return n } parseObjectData(t, e, i, s) { const n = super.parseObjectData(t, e, i, s); for (let t = 0; t < n.length; t++) { const s = e[i + t]; n[t]._custom = K(s && s.r && +s.r, this.resolveDataElementOptions(t + i).radius) } return n } getMaxOverflow() { const t = this._cachedMeta.data; let e = 0; for (let i = t.length - 1; i >= 0; --i)e = Math.max(e, t[i].size(this.resolveDataElementOptions(i)) / 2); return e > 0 && e } getLabelAndValue(t) { const e = this._cachedMeta, { xScale: i, yScale: s } = e, n = this.getParsed(t), o = i.getLabelForValue(n.x), a = s.getLabelForValue(n.y), r = n._custom; return { label: e.label, value: \"(\" + o + \", \" + a + (r ? \", \" + r : \"\") + \")\" } } update(t) { const e = this._cachedMeta.data; this.updateElements(e, 0, e.length, t) } updateElements(t, e, i, s) { const n = \"reset\" === s, { iScale: o, vScale: a } = this._cachedMeta, r = this.resolveDataElementOptions(e, s), l = this.getSharedOptions(r), h = this.includeOptions(s, l), c = o.axis, d = a.axis; for (let r = e; r < e + i; r++) { const e = t[r], i = !n && this.getParsed(r), l = {}, u = l[c] = n ? o.getPixelForDecimal(.5) : o.getPixelForValue(i[c]), f = l[d] = n ? a.getBasePixel() : a.getPixelForValue(i[d]); l.skip = isNaN(u) || isNaN(f), h && (l.options = this.resolveDataElementOptions(r, e.active ? \"active\" : s), n && (l.options.radius = 0)), this.updateElement(e, r, l, s) } this.updateSharedOptions(l, s, r) } resolveDataElementOptions(t, e) { const i = this.getParsed(t); let s = super.resolveDataElementOptions(t, e); s.$shared && (s = Object.assign({}, s, { $shared: !1 })); const n = s.radius; return \"active\" !== e && (s.radius = 0), s.radius += K(i && i._custom, n), s } } Pn.id = \"bubble\", Pn.defaults = { datasetElementType: !1, dataElementType: \"point\", animations: { numbers: { type: \"number\", properties: [\"x\", \"y\", \"borderWidth\", \"radius\"] } } }, Pn.overrides = { scales: { x: { type: \"linear\" }, y: { type: \"linear\" } }, plugins: { tooltip: { callbacks: { title: () => \"\" } } } }; class Dn extends Ps { constructor(t, e) { super(t, e), this.enableOptionSharing = !0, this.innerRadius = void 0, this.outerRadius = void 0, this.offsetX = void 0, this.offsetY = void 0 } linkScales() { } parse(t, e) { const i = this.getDataset().data, s = this._cachedMeta; if (!1 === this._parsing) s._parsed = i; else { let n, o, a = t => +i[t]; if (U(i[t])) { const { key: t = \"value\" } = this._parsing; a = e => +lt(i[e], t) } for (n = t, o = t + e; n < o; ++n)s._parsed[n] = a(n) } } _getRotation() { return jt(this.options.rotation - 90) } _getCircumference() { return jt(this.options.circumference) } _getRotationExtents() { let t = Ct, e = -Ct; for (let i = 0; i < this.chart.data.datasets.length; ++i)if (this.chart.isDatasetVisible(i)) { const s = this.chart.getDatasetMeta(i).controller, n = s._getRotation(), o = s._getCircumference(); t = Math.min(t, n), e = Math.max(e, n + o) } return { rotation: t, circumference: e - t } } update(t) { const e = this.chart, { chartArea: i } = e, s = this._cachedMeta, n = s.data, o = this.getMaxBorderWidth() + this.getMaxOffset(n) + this.options.spacing, a = Math.max((Math.min(i.width, i.height) - o) / 2, 0), r = Math.min(G(this.options.cutout, a), 1), l = this._getRingWeight(this.index), { circumference: h, rotation: c } = this._getRotationExtents(), { ratioX: d, ratioY: u, offsetX: f, offsetY: g } = function (t, e, i) { let s = 1, n = 1, o = 0, a = 0; if (e < Ct) { const r = t, l = r + e, h = Math.cos(r), c = Math.sin(r), d = Math.cos(l), u = Math.sin(l), f = (t, e, s) => Gt(t, r, l, !0) ? 1 : Math.max(e, e * i, s, s * i), g = (t, e, s) => Gt(t, r, l, !0) ? -1 : Math.min(e, e * i, s, s * i), p = f(0, h, d), m = f(Lt, c, u), x = g(Dt, h, d), b = g(Dt + Lt, c, u); s = (p - x) / 2, n = (m - b) / 2, o = -(p + x) / 2, a = -(m + b) / 2 } return { ratioX: s, ratioY: n, offsetX: o, offsetY: a } }(c, h, r), p = (i.width - o) / d, m = (i.height - o) / u, x = Math.max(Math.min(p, m) / 2, 0), b = Z(this.options.radius, x), _ = (b - Math.max(b * r, 0)) / this._getVisibleDatasetWeightTotal(); this.offsetX = f * b, this.offsetY = g * b, s.total = this.calculateTotal(), this.outerRadius = b - _ * this._getRingWeightOffset(this.index), this.innerRadius = Math.max(this.outerRadius - _ * l, 0), this.updateElements(n, 0, n.length, t) } _circumference(t, e) { const i = this.options, s = this._cachedMeta, n = this._getCircumference(); return e && i.animation.animateRotate || !this.chart.getDataVisibility(t) || null === s._parsed[t] || s.data[t].hidden ? 0 : this.calculateCircumference(s._parsed[t] * n / Ct) } updateElements(t, e, i, s) { const n = \"reset\" === s, o = this.chart, a = o.chartArea, r = o.options.animation, l = (a.left + a.right) / 2, h = (a.top + a.bottom) / 2, c = n && r.animateScale, d = c ? 0 : this.innerRadius, u = c ? 0 : this.outerRadius, f = this.resolveDataElementOptions(e, s), g = this.getSharedOptions(f), p = this.includeOptions(s, g); let m, x = this._getRotation(); for (m = 0; m < e; ++m)x += this._circumference(m, n); for (m = e; m < e + i; ++m) { const e = this._circumference(m, n), i = t[m], o = { x: l + this.offsetX, y: h + this.offsetY, startAngle: x, endAngle: x + e, circumference: e, outerRadius: u, innerRadius: d }; p && (o.options = g || this.resolveDataElementOptions(m, i.active ? \"active\" : s)), x += e, this.updateElement(i, m, o, s) } this.updateSharedOptions(g, s, f) } calculateTotal() { const t = this._cachedMeta, e = t.data; let i, s = 0; for (i = 0; i < e.length; i++) { const n = t._parsed[i]; null === n || isNaN(n) || !this.chart.getDataVisibility(i) || e[i].hidden || (s += Math.abs(n)) } return s } calculateCircumference(t) { const e = this._cachedMeta.total; return e > 0 && !isNaN(t) ? Ct * (Math.abs(t) / e) : 0 } getLabelAndValue(t) { const e = this._cachedMeta, i = this.chart, s = i.data.labels || [], n = Ri(e._parsed[t], i.options.locale); return { label: s[t] || \"\", value: n } } getMaxBorderWidth(t) { let e = 0; const i = this.chart; let s, n, o, a, r; if (!t) for (s = 0, n = i.data.datasets.length; s < n; ++s)if (i.isDatasetVisible(s)) { o = i.getDatasetMeta(s), t = o.data, a = o.controller; break } if (!t) return 0; for (s = 0, n = t.length; s < n; ++s)r = a.resolveDataElementOptions(s), \"inner\" !== r.borderAlign && (e = Math.max(e, r.borderWidth || 0, r.hoverBorderWidth || 0)); return e } getMaxOffset(t) { let e = 0; for (let i = 0, s = t.length; i < s; ++i) { const t = this.resolveDataElementOptions(i); e = Math.max(e, t.offset || 0, t.hoverOffset || 0) } return e } _getRingWeightOffset(t) { let e = 0; for (let i = 0; i < t; ++i)this.chart.isDatasetVisible(i) && (e += this._getRingWeight(i)); return e } _getRingWeight(t) { return Math.max(K(this.chart.data.datasets[t].weight, 1), 0) } _getVisibleDatasetWeightTotal() { return this._getRingWeightOffset(this.chart.data.datasets.length) || 1 } } Dn.id = \"doughnut\", Dn.defaults = { datasetElementType: !1, dataElementType: \"arc\", animation: { animateRotate: !0, animateScale: !1 }, animations: { numbers: { type: \"number\", properties: [\"circumference\", \"endAngle\", \"innerRadius\", \"outerRadius\", \"startAngle\", \"x\", \"y\", \"offset\", \"borderWidth\", \"spacing\"] } }, cutout: \"50%\", rotation: 0, circumference: 360, radius: \"100%\", spacing: 0, indexAxis: \"r\" }, Dn.descriptors = { _scriptable: t => \"spacing\" !== t, _indexable: t => \"spacing\" !== t }, Dn.overrides = { aspectRatio: 1, plugins: { legend: { labels: { generateLabels(t) { const e = t.data; if (e.labels.length && e.datasets.length) { const { labels: { pointStyle: i } } = t.legend.options; return e.labels.map(((e, s) => { const n = t.getDatasetMeta(0).controller.getStyle(s); return { text: e, fillStyle: n.backgroundColor, strokeStyle: n.borderColor, lineWidth: n.borderWidth, pointStyle: i, hidden: !t.getDataVisibility(s), index: s } })) } return [] } }, onClick(t, e, i) { i.chart.toggleDataVisibility(e.index), i.chart.update() } }, tooltip: { callbacks: { title: () => \"\", label(t) { let e = t.label; const i = \": \" + t.formattedValue; return Y(e) ? (e = e.slice(), e[0] += i) : e += i, e } } } } }; class Cn extends Ps { initialize() { this.enableOptionSharing = !0, this.supportsDecimation = !0, super.initialize() } update(t) { const e = this._cachedMeta, { dataset: i, data: s = [], _dataset: n } = e, o = this.chart._animationsDisabled; let { start: a, count: r } = function (t, e, i) { const s = e.length; let n = 0, o = s; if (t._sorted) { const { iScale: a, _parsed: r } = t, l = a.axis, { min: h, max: c, minDefined: d, maxDefined: u } = a.getUserBounds(); d && (n = Zt(Math.min(yt(r, a.axis, h).lo, i ? s : yt(e, l, a.getPixelForValue(h)).lo), 0, s - 1)), o = u ? Zt(Math.max(yt(r, a.axis, c).hi + 1, i ? 0 : yt(e, l, a.getPixelForValue(c)).hi + 1), n, s) - n : s - n } return { start: n, count: o } }(e, s, o); this._drawStart = a, this._drawCount = r, function (t) { const { xScale: e, yScale: i, _scaleRanges: s } = t, n = { xmin: e.min, xmax: e.max, ymin: i.min, ymax: i.max }; if (!s) return t._scaleRanges = n, !0; const o = s.xmin !== e.min || s.xmax !== e.max || s.ymin !== i.min || s.ymax !== i.max; return Object.assign(s, n), o }(e) && (a = 0, r = s.length), i._chart = this.chart, i._datasetIndex = this.index, i._decimated = !!n._decimated, i.points = s; const l = this.resolveDatasetElementOptions(t); this.options.showLine || (l.borderWidth = 0), l.segment = this.options.segment, this.updateElement(i, void 0, { animated: !o, options: l }, t), this.updateElements(s, a, r, t) } updateElements(t, e, i, s) { const n = \"reset\" === s, { iScale: o, vScale: a, _stacked: r, _dataset: l } = this._cachedMeta, h = this.resolveDataElementOptions(e, s), c = this.getSharedOptions(h), d = this.includeOptions(s, c), u = o.axis, f = a.axis, { spanGaps: g, segment: p } = this.options, m = Vt(g) ? g : Number.POSITIVE_INFINITY, x = this.chart._animationsDisabled || n || \"none\" === s; let b = e > 0 && this.getParsed(e - 1); for (let h = e; h < e + i; ++h) { const e = t[h], i = this.getParsed(h), g = x ? e : {}, _ = $(i[f]), y = g[u] = o.getPixelForValue(i[u], h), v = g[f] = n || _ ? a.getBasePixel() : a.getPixelForValue(r ? this.applyStack(a, i, r) : i[f], h); g.skip = isNaN(y) || isNaN(v) || _, g.stop = h > 0 && i[u] - b[u] > m, p && (g.parsed = i, g.raw = l.data[h]), d && (g.options = c || this.resolveDataElementOptions(h, e.active ? \"active\" : s)), x || this.updateElement(e, h, g, s), b = i } this.updateSharedOptions(c, s, h) } getMaxOverflow() { const t = this._cachedMeta, e = t.dataset, i = e.options && e.options.borderWidth || 0, s = t.data || []; if (!s.length) return i; const n = s[0].size(this.resolveDataElementOptions(0)), o = s[s.length - 1].size(this.resolveDataElementOptions(s.length - 1)); return Math.max(i, n, o) / 2 } draw() { const t = this._cachedMeta; t.dataset.updateControlPoints(this.chart.chartArea, t.iScale.axis), super.draw() } } Cn.id = \"line\", Cn.defaults = { datasetElementType: \"line\", dataElementType: \"point\", showLine: !0, spanGaps: !1 }, Cn.overrides = { scales: { _index_: { type: \"category\" }, _value_: { type: \"linear\" } } }; class On extends Ps { constructor(t, e) { super(t, e), this.innerRadius = void 0, this.outerRadius = void 0 } getLabelAndValue(t) { const e = this._cachedMeta, i = this.chart, s = i.data.labels || [], n = Ri(e._parsed[t].r, i.options.locale); return { label: s[t] || \"\", value: n } } parseObjectData(t, e, i, s) { return xi.bind(this)(t, e, i, s) } update(t) { const e = this._cachedMeta.data; this._updateRadius(), this.updateElements(e, 0, e.length, t) } _updateRadius() { const t = this.chart, e = t.chartArea, i = t.options, s = Math.min(e.right - e.left, e.bottom - e.top), n = Math.max(s / 2, 0), o = (n - Math.max(i.cutoutPercentage ? n / 100 * i.cutoutPercentage : 1, 0)) / t.getVisibleDatasetCount(); this.outerRadius = n - o * this.index, this.innerRadius = this.outerRadius - o } updateElements(t, e, i, s) { const n = \"reset\" === s, o = this.chart, a = o.options.animation, r = this._cachedMeta.rScale, l = r.xCenter, h = r.yCenter, c = r.getIndexAngle(0) - .5 * Dt; let d, u = c; const f = 360 / this.countVisibleElements(); for (d = 0; d < e; ++d)u += this._computeAngle(d, s, f); for (d = e; d < e + i; d++) { const e = t[d]; let i = u, g = u + this._computeAngle(d, s, f), p = o.getDataVisibility(d) ? r.getDistanceFromCenterForValue(this.getParsed(d).r) : 0; u = g, n && (a.animateScale && (p = 0), a.animateRotate && (i = g = c)); const m = { x: l, y: h, innerRadius: 0, outerRadius: p, startAngle: i, endAngle: g, options: this.resolveDataElementOptions(d, e.active ? \"active\" : s) }; this.updateElement(e, d, m, s) } } countVisibleElements() { const t = this._cachedMeta; let e = 0; return t.data.forEach(((t, i) => { !isNaN(this.getParsed(i).r) && this.chart.getDataVisibility(i) && e++ })), e } _computeAngle(t, e, i) { return this.chart.getDataVisibility(t) ? jt(this.resolveDataElementOptions(t, e).angle || i) : 0 } } On.id = \"polarArea\", On.defaults = { dataElementType: \"arc\", animation: { animateRotate: !0, animateScale: !0 }, animations: { numbers: { type: \"number\", properties: [\"x\", \"y\", \"startAngle\", \"endAngle\", \"innerRadius\", \"outerRadius\"] } }, indexAxis: \"r\", startAngle: 0 }, On.overrides = { aspectRatio: 1, plugins: { legend: { labels: { generateLabels(t) { const e = t.data; if (e.labels.length && e.datasets.length) { const { labels: { pointStyle: i } } = t.legend.options; return e.labels.map(((e, s) => { const n = t.getDatasetMeta(0).controller.getStyle(s); return { text: e, fillStyle: n.backgroundColor, strokeStyle: n.borderColor, lineWidth: n.borderWidth, pointStyle: i, hidden: !t.getDataVisibility(s), index: s } })) } return [] } }, onClick(t, e, i) { i.chart.toggleDataVisibility(e.index), i.chart.update() } }, tooltip: { callbacks: { title: () => \"\", label: t => t.chart.data.labels[t.dataIndex] + \": \" + t.formattedValue } } }, scales: { r: { type: \"radialLinear\", angleLines: { display: !1 }, beginAtZero: !0, grid: { circular: !0 }, pointLabels: { display: !1 }, startAngle: 0 } } }; class An extends Dn { } An.id = \"pie\", An.defaults = { cutout: 0, rotation: 0, circumference: 360, radius: \"100%\" }; class Tn extends Ps { getLabelAndValue(t) { const e = this._cachedMeta.vScale, i = this.getParsed(t); return { label: e.getLabels()[t], value: \"\" + e.getLabelForValue(i[e.axis]) } } parseObjectData(t, e, i, s) { return xi.bind(this)(t, e, i, s) } update(t) { const e = this._cachedMeta, i = e.dataset, s = e.data || [], n = e.iScale.getLabels(); if (i.points = s, \"resize\" !== t) { const e = this.resolveDatasetElementOptions(t); this.options.showLine || (e.borderWidth = 0); const o = { _loop: !0, _fullLoop: n.length === s.length, options: e }; this.updateElement(i, void 0, o, t) } this.updateElements(s, 0, s.length, t) } updateElements(t, e, i, s) { const n = this._cachedMeta.rScale, o = \"reset\" === s; for (let a = e; a < e + i; a++) { const e = t[a], i = this.resolveDataElementOptions(a, e.active ? \"active\" : s), r = n.getPointPositionForValue(a, this.getParsed(a).r), l = o ? n.xCenter : r.x, h = o ? n.yCenter : r.y, c = { x: l, y: h, angle: r.angle, skip: isNaN(l) || isNaN(h), options: i }; this.updateElement(e, a, c, s) } } } Tn.id = \"radar\", Tn.defaults = { datasetElementType: \"line\", dataElementType: \"point\", indexAxis: \"r\", showLine: !0, elements: { line: { fill: \"start\" } } }, Tn.overrides = { aspectRatio: 1, scales: { r: { type: \"radialLinear\" } } }; class Ln extends Cn { } Ln.id = \"scatter\", Ln.defaults = { showLine: !1, fill: !1 }, Ln.overrides = { interaction: { mode: \"point\" }, plugins: { tooltip: { callbacks: { title: () => \"\", label: t => \"(\" + t.label + \", \" + t.formattedValue + \")\" } } }, scales: { x: { type: \"linear\" }, y: { type: \"linear\" } } }; var Rn = Object.freeze({ __proto__: null, BarController: Sn, BubbleController: Pn, DoughnutController: Dn, LineController: Cn, PolarAreaController: On, PieController: An, RadarController: Tn, ScatterController: Ln }); function En(t, e, i) { const { startAngle: s, pixelMargin: n, x: o, y: a, outerRadius: r, innerRadius: l } = e; let h = n / r; t.beginPath(), t.arc(o, a, r, s - h, i + h), l > n ? (h = n / l, t.arc(o, a, l, i + h, s - h, !0)) : t.arc(o, a, n, i + Lt, s - Lt), t.closePath(), t.clip() } function In(t, e, i, s) { const n = Fe(t.options.borderRadius, [\"outerStart\", \"outerEnd\", \"innerStart\", \"innerEnd\"]); const o = (i - e) / 2, a = Math.min(o, s * e / 2), r = t => { const e = (i - Math.min(o, t)) * s / 2; return Zt(t, 0, Math.min(o, e)) }; return { outerStart: r(n.outerStart), outerEnd: r(n.outerEnd), innerStart: Zt(n.innerStart, 0, a), innerEnd: Zt(n.innerEnd, 0, a) } } function zn(t, e, i, s) { return { x: i + t * Math.cos(e), y: s + t * Math.sin(e) } } function Fn(t, e, i, s, n) { const { x: o, y: a, startAngle: r, pixelMargin: l, innerRadius: h } = e, c = Math.max(e.outerRadius + s + i - l, 0), d = h > 0 ? h + s + i + l : 0; let u = 0; const f = n - r; if (s) { const t = ((h > 0 ? h - s : 0) + (c > 0 ? c - s : 0)) / 2; u = (f - (0 !== t ? f * t / (t + s) : f)) / 2 } const g = (f - Math.max(.001, f * c - i / Dt) / c) / 2, p = r + g + u, m = n - g - u, { outerStart: x, outerEnd: b, innerStart: _, innerEnd: y } = In(e, d, c, m - p), v = c - x, w = c - b, M = p + x / v, k = m - b / w, S = d + _, P = d + y, D = p + _ / S, C = m - y / P; if (t.beginPath(), t.arc(o, a, c, M, k), b > 0) { const e = zn(w, k, o, a); t.arc(e.x, e.y, b, k, m + Lt) } const O = zn(P, m, o, a); if (t.lineTo(O.x, O.y), y > 0) { const e = zn(P, C, o, a); t.arc(e.x, e.y, y, m + Lt, C + Math.PI) } if (t.arc(o, a, d, m - y / d, p + _ / d, !0), _ > 0) { const e = zn(S, D, o, a); t.arc(e.x, e.y, _, D + Math.PI, p - Lt) } const A = zn(v, p, o, a); if (t.lineTo(A.x, A.y), x > 0) { const e = zn(v, M, o, a); t.arc(e.x, e.y, x, p - Lt, M) } t.closePath() } function Bn(t, e, i, s, n) { const { options: o } = e, { borderWidth: a, borderJoinStyle: r } = o, l = \"inner\" === o.borderAlign; a && (l ? (t.lineWidth = 2 * a, t.lineJoin = r || \"round\") : (t.lineWidth = a, t.lineJoin = r || \"bevel\"), e.fullCircles && function (t, e, i) { const { x: s, y: n, startAngle: o, pixelMargin: a, fullCircles: r } = e, l = Math.max(e.outerRadius - a, 0), h = e.innerRadius + a; let c; for (i && En(t, e, o + Ct), t.beginPath(), t.arc(s, n, h, o + Ct, o, !0), c = 0; c < r; ++c)t.stroke(); for (t.beginPath(), t.arc(s, n, l, o, o + Ct), c = 0; c < r; ++c)t.stroke() }(t, e, l), l && En(t, e, n), Fn(t, e, i, s, n), t.stroke()) } class Vn extends Ds { constructor(t) { super(), this.options = void 0, this.circumference = void 0, this.startAngle = void 0, this.endAngle = void 0, this.innerRadius = void 0, this.outerRadius = void 0, this.pixelMargin = 0, this.fullCircles = 0, t && Object.assign(this, t) } inRange(t, e, i) { const s = this.getProps([\"x\", \"y\"], i), { angle: n, distance: o } = Ut(s, { x: t, y: e }), { startAngle: a, endAngle: r, innerRadius: l, outerRadius: h, circumference: c } = this.getProps([\"startAngle\", \"endAngle\", \"innerRadius\", \"outerRadius\", \"circumference\"], i), d = this.options.spacing / 2, u = K(c, r - a) >= Ct || Gt(n, a, r), f = Qt(o, l + d, h + d); return u && f } getCenterPoint(t) { const { x: e, y: i, startAngle: s, endAngle: n, innerRadius: o, outerRadius: a } = this.getProps([\"x\", \"y\", \"startAngle\", \"endAngle\", \"innerRadius\", \"outerRadius\", \"circumference\"], t), { offset: r, spacing: l } = this.options, h = (s + n) / 2, c = (o + a + l + r) / 2; return { x: e + Math.cos(h) * c, y: i + Math.sin(h) * c } } tooltipPosition(t) { return this.getCenterPoint(t) } draw(t) { const { options: e, circumference: i } = this, s = (e.offset || 0) / 2, n = (e.spacing || 0) / 2; if (this.pixelMargin = \"inner\" === e.borderAlign ? .33 : 0, this.fullCircles = i > Ct ? Math.floor(i / Ct) : 0, 0 === i || this.innerRadius < 0 || this.outerRadius < 0) return; t.save(); let o = 0; if (s) { o = s / 2; const e = (this.startAngle + this.endAngle) / 2; t.translate(Math.cos(e) * o, Math.sin(e) * o), this.circumference >= Dt && (o = s) } t.fillStyle = e.backgroundColor, t.strokeStyle = e.borderColor; const a = function (t, e, i, s) { const { fullCircles: n, startAngle: o, circumference: a } = e; let r = e.endAngle; if (n) { Fn(t, e, i, s, o + Ct); for (let e = 0; e < n; ++e)t.fill(); isNaN(a) || (r = o + a % Ct, a % Ct == 0 && (r += Ct)) } return Fn(t, e, i, s, r), t.fill(), r }(t, this, o, n); Bn(t, this, o, n, a), t.restore() } } function Wn(t, e, i = e) { t.lineCap = K(i.borderCapStyle, e.borderCapStyle), t.setLineDash(K(i.borderDash, e.borderDash)), t.lineDashOffset = K(i.borderDashOffset, e.borderDashOffset), t.lineJoin = K(i.borderJoinStyle, e.borderJoinStyle), t.lineWidth = K(i.borderWidth, e.borderWidth), t.strokeStyle = K(i.borderColor, e.borderColor) } function Nn(t, e, i) { t.lineTo(i.x, i.y) } function Hn(t, e, i = {}) { const s = t.length, { start: n = 0, end: o = s - 1 } = i, { start: a, end: r } = e, l = Math.max(n, a), h = Math.min(o, r), c = n < a && o < a || n > r && o > r; return { count: s, start: l, loop: e.loop, ilen: h < l && !c ? s + h - l : h - l } } function jn(t, e, i, s) { const { points: n, options: o } = e, { count: a, start: r, loop: l, ilen: h } = Hn(n, i, s), c = function (t) { return t.stepped ? Oe : t.tension || \"monotone\" === t.cubicInterpolationMode ? Ae : Nn }(o); let d, u, f, { move: g = !0, reverse: p } = s || {}; for (d = 0; d <= h; ++d)u = n[(r + (p ? h - d : d)) % a], u.skip || (g ? (t.moveTo(u.x, u.y), g = !1) : c(t, f, u, p, o.stepped), f = u); return l && (u = n[(r + (p ? h : 0)) % a], c(t, f, u, p, o.stepped)), !!l } function $n(t, e, i, s) { const n = e.points, { count: o, start: a, ilen: r } = Hn(n, i, s), { move: l = !0, reverse: h } = s || {}; let c, d, u, f, g, p, m = 0, x = 0; const b = t => (a + (h ? r - t : t)) % o, _ = () => { f !== g && (t.lineTo(m, g), t.lineTo(m, f), t.lineTo(m, p)) }; for (l && (d = n[b(0)], t.moveTo(d.x, d.y)), c = 0; c <= r; ++c) { if (d = n[b(c)], d.skip) continue; const e = d.x, i = d.y, s = 0 | e; s === u ? (i < f ? f = i : i > g && (g = i), m = (x * m + e) / ++x) : (_(), t.lineTo(e, i), u = s, x = 0, f = g = i), p = i } _() } function Yn(t) { const e = t.options, i = e.borderDash && e.borderDash.length; return !(t._decimated || t._loop || e.tension || \"monotone\" === e.cubicInterpolationMode || e.stepped || i) ? $n : jn } Vn.id = \"arc\", Vn.defaults = { borderAlign: \"center\", borderColor: \"#fff\", borderJoinStyle: void 0, borderRadius: 0, borderWidth: 2, offset: 0, spacing: 0, angle: void 0 }, Vn.defaultRoutes = { backgroundColor: \"backgroundColor\" }; const Un = \"function\" == typeof Path2D; function Xn(t, e, i, s) { Un && !e.options.segment ? function (t, e, i, s) { let n = e._path; n || (n = e._path = new Path2D, e.path(n, i, s) && n.closePath()), Wn(t, e.options), t.stroke(n) }(t, e, i, s) : function (t, e, i, s) { const { segments: n, options: o } = e, a = Yn(e); for (const r of n) Wn(t, o, r.style), t.beginPath(), a(t, e, r, { start: i, end: i + s - 1 }) && t.closePath(), t.stroke() }(t, e, i, s) } class qn extends Ds { constructor(t) { super(), this.animated = !0, this.options = void 0, this._chart = void 0, this._loop = void 0, this._fullLoop = void 0, this._path = void 0, this._points = void 0, this._segments = void 0, this._decimated = !1, this._pointsUpdated = !1, this._datasetIndex = void 0, t && Object.assign(this, t) } updateControlPoints(t, e) { const i = this.options; if ((i.tension || \"monotone\" === i.cubicInterpolationMode) && !i.stepped && !this._pointsUpdated) { const s = i.spanGaps ? this._loop : this._fullLoop; ki(this._points, i, t, s, e), this._pointsUpdated = !0 } } set points(t) { this._points = t, delete this._segments, delete this._path, this._pointsUpdated = !1 } get points() { return this._points } get segments() { return this._segments || (this._segments = Ni(this, this.options.segment)) } first() { const t = this.segments, e = this.points; return t.length && e[t[0].start] } last() { const t = this.segments, e = this.points, i = t.length; return i && e[t[i - 1].end] } interpolate(t, e) { const i = this.options, s = t[e], n = this.points, o = Wi(this, { property: e, start: s, end: s }); if (!o.length) return; const a = [], r = function (t) { return t.stepped ? Ai : t.tension || \"monotone\" === t.cubicInterpolationMode ? Ti : Oi }(i); let l, h; for (l = 0, h = o.length; l < h; ++l) { const { start: h, end: c } = o[l], d = n[h], u = n[c]; if (d === u) { a.push(d); continue } const f = r(d, u, Math.abs((s - d[e]) / (u[e] - d[e])), i.stepped); f[e] = t[e], a.push(f) } return 1 === a.length ? a[0] : a } pathSegment(t, e, i) { return Yn(this)(t, this, e, i) } path(t, e, i) { const s = this.segments, n = Yn(this); let o = this._loop; e = e || 0, i = i || this.points.length - e; for (const a of s) o &= n(t, this, a, { start: e, end: e + i - 1 }); return !!o } draw(t, e, i, s) { const n = this.options || {}; (this.points || []).length && n.borderWidth && (t.save(), Xn(t, this, i, s), t.restore()), this.animated && (this._pointsUpdated = !1, this._path = void 0) } } function Kn(t, e, i, s) { const n = t.options, { [i]: o } = t.getProps([i], s); return Math.abs(e - o) < n.radius + n.hitRadius } qn.id = \"line\", qn.defaults = { borderCapStyle: \"butt\", borderDash: [], borderDashOffset: 0, borderJoinStyle: \"miter\", borderWidth: 3, capBezierPoints: !0, cubicInterpolationMode: \"default\", fill: !1, spanGaps: !1, stepped: !1, tension: 0 }, qn.defaultRoutes = { backgroundColor: \"backgroundColor\", borderColor: \"borderColor\" }, qn.descriptors = { _scriptable: !0, _indexable: t => \"borderDash\" !== t && \"fill\" !== t }; class Gn extends Ds { constructor(t) { super(), this.options = void 0, this.parsed = void 0, this.skip = void 0, this.stop = void 0, t && Object.assign(this, t) } inRange(t, e, i) { const s = this.options, { x: n, y: o } = this.getProps([\"x\", \"y\"], i); return Math.pow(t - n, 2) + Math.pow(e - o, 2) < Math.pow(s.hitRadius + s.radius, 2) } inXRange(t, e) { return Kn(this, t, \"x\", e) } inYRange(t, e) { return Kn(this, t, \"y\", e) } getCenterPoint(t) { const { x: e, y: i } = this.getProps([\"x\", \"y\"], t); return { x: e, y: i } } size(t) { let e = (t = t || this.options || {}).radius || 0; e = Math.max(e, e && t.hoverRadius || 0); return 2 * (e + (e && t.borderWidth || 0)) } draw(t, e) { const i = this.options; this.skip || i.radius < .1 || !Pe(this, e, this.size(i) / 2) || (t.strokeStyle = i.borderColor, t.lineWidth = i.borderWidth, t.fillStyle = i.backgroundColor, Se(t, i, this.x, this.y)) } getRange() { const t = this.options || {}; return t.radius + t.hitRadius } } function Zn(t, e) { const { x: i, y: s, base: n, width: o, height: a } = t.getProps([\"x\", \"y\", \"base\", \"width\", \"height\"], e); let r, l, h, c, d; return t.horizontal ? (d = a / 2, r = Math.min(i, n), l = Math.max(i, n), h = s - d, c = s + d) : (d = o / 2, r = i - d, l = i + d, h = Math.min(s, n), c = Math.max(s, n)), { left: r, top: h, right: l, bottom: c } } function Jn(t, e, i, s) { return t ? 0 : Zt(e, i, s) } function Qn(t) { const e = Zn(t), i = e.right - e.left, s = e.bottom - e.top, n = function (t, e, i) { const s = t.options.borderWidth, n = t.borderSkipped, o = Be(s); return { t: Jn(n.top, o.top, 0, i), r: Jn(n.right, o.right, 0, e), b: Jn(n.bottom, o.bottom, 0, i), l: Jn(n.left, o.left, 0, e) } }(t, i / 2, s / 2), o = function (t, e, i) { const { enableBorderRadius: s } = t.getProps([\"enableBorderRadius\"]), n = t.options.borderRadius, o = Ve(n), a = Math.min(e, i), r = t.borderSkipped, l = s || U(n); return { topLeft: Jn(!l || r.top || r.left, o.topLeft, 0, a), topRight: Jn(!l || r.top || r.right, o.topRight, 0, a), bottomLeft: Jn(!l || r.bottom || r.left, o.bottomLeft, 0, a), bottomRight: Jn(!l || r.bottom || r.right, o.bottomRight, 0, a) } }(t, i / 2, s / 2); return { outer: { x: e.left, y: e.top, w: i, h: s, radius: o }, inner: { x: e.left + n.l, y: e.top + n.t, w: i - n.l - n.r, h: s - n.t - n.b, radius: { topLeft: Math.max(0, o.topLeft - Math.max(n.t, n.l)), topRight: Math.max(0, o.topRight - Math.max(n.t, n.r)), bottomLeft: Math.max(0, o.bottomLeft - Math.max(n.b, n.l)), bottomRight: Math.max(0, o.bottomRight - Math.max(n.b, n.r)) } } } } function to(t, e, i, s) { const n = null === e, o = null === i, a = t && !(n && o) && Zn(t, s); return a && (n || Qt(e, a.left, a.right)) && (o || Qt(i, a.top, a.bottom)) } function eo(t, e) { t.rect(e.x, e.y, e.w, e.h) } function io(t, e, i = {}) { const s = t.x !== i.x ? -e : 0, n = t.y !== i.y ? -e : 0, o = (t.x + t.w !== i.x + i.w ? e : 0) - s, a = (t.y + t.h !== i.y + i.h ? e : 0) - n; return { x: t.x + s, y: t.y + n, w: t.w + o, h: t.h + a, radius: t.radius } } Gn.id = \"point\", Gn.defaults = { borderWidth: 1, hitRadius: 1, hoverBorderWidth: 1, hoverRadius: 4, pointStyle: \"circle\", radius: 3, rotation: 0 }, Gn.defaultRoutes = { backgroundColor: \"backgroundColor\", borderColor: \"borderColor\" }; class so extends Ds { constructor(t) { super(), this.options = void 0, this.horizontal = void 0, this.base = void 0, this.width = void 0, this.height = void 0, this.inflateAmount = void 0, t && Object.assign(this, t) } draw(t) { const { inflateAmount: e, options: { borderColor: i, backgroundColor: s } } = this, { inner: n, outer: o } = Qn(this), a = (r = o.radius).topLeft || r.topRight || r.bottomLeft || r.bottomRight ? Re : eo; var r; t.save(), o.w === n.w && o.h === n.h || (t.beginPath(), a(t, io(o, e, n)), t.clip(), a(t, io(n, -e, o)), t.fillStyle = i, t.fill(\"evenodd\")), t.beginPath(), a(t, io(n, e)), t.fillStyle = s, t.fill(), t.restore() } inRange(t, e, i) { return to(this, t, e, i) } inXRange(t, e) { return to(this, t, null, e) } inYRange(t, e) { return to(this, null, t, e) } getCenterPoint(t) { const { x: e, y: i, base: s, horizontal: n } = this.getProps([\"x\", \"y\", \"base\", \"horizontal\"], t); return { x: n ? (e + s) / 2 : e, y: n ? i : (i + s) / 2 } } getRange(t) { return \"x\" === t ? this.width / 2 : this.height / 2 } } so.id = \"bar\", so.defaults = { borderSkipped: \"start\", borderWidth: 0, borderRadius: 0, inflateAmount: \"auto\", pointStyle: void 0 }, so.defaultRoutes = { backgroundColor: \"backgroundColor\", borderColor: \"borderColor\" }; var no = Object.freeze({ __proto__: null, ArcElement: Vn, LineElement: qn, PointElement: Gn, BarElement: so }); function oo(t) { if (t._decimated) { const e = t._data; delete t._decimated, delete t._data, Object.defineProperty(t, \"data\", { value: e }) } } function ao(t) { t.data.datasets.forEach((t => { oo(t) })) } var ro = { id: \"decimation\", defaults: { algorithm: \"min-max\", enabled: !1 }, beforeElementsUpdate: (t, e, i) => { if (!i.enabled) return void ao(t); const s = t.width; t.data.datasets.forEach(((e, n) => { const { _data: o, indexAxis: a } = e, r = t.getDatasetMeta(n), l = o || e.data; if (\"y\" === He([a, t.options.indexAxis])) return; if (!r.controller.supportsDecimation) return; const h = t.scales[r.xAxisID]; if (\"linear\" !== h.type && \"time\" !== h.type) return; if (t.options.parsing) return; let { start: c, count: d } = function (t, e) { const i = e.length; let s, n = 0; const { iScale: o } = t, { min: a, max: r, minDefined: l, maxDefined: h } = o.getUserBounds(); return l && (n = Zt(yt(e, o.axis, a).lo, 0, i - 1)), s = h ? Zt(yt(e, o.axis, r).hi + 1, n, i) - n : i - n, { start: n, count: s } }(r, l); if (d <= (i.threshold || 4 * s)) return void oo(e); let u; switch ($(o) && (e._data = l, delete e.data, Object.defineProperty(e, \"data\", { configurable: !0, enumerable: !0, get: function () { return this._decimated }, set: function (t) { this._data = t } })), i.algorithm) { case \"lttb\": u = function (t, e, i, s, n) { const o = n.samples || s; if (o >= i) return t.slice(e, e + i); const a = [], r = (i - 2) / (o - 2); let l = 0; const h = e + i - 1; let c, d, u, f, g, p = e; for (a[l++] = t[p], c = 0; c < o - 2; c++) { let s, n = 0, o = 0; const h = Math.floor((c + 1) * r) + 1 + e, m = Math.min(Math.floor((c + 2) * r) + 1, i) + e, x = m - h; for (s = h; s < m; s++)n += t[s].x, o += t[s].y; n /= x, o /= x; const b = Math.floor(c * r) + 1 + e, _ = Math.min(Math.floor((c + 1) * r) + 1, i) + e, { x: y, y: v } = t[p]; for (u = f = -1, s = b; s < _; s++)f = .5 * Math.abs((y - n) * (t[s].y - v) - (y - t[s].x) * (o - v)), f > u && (u = f, d = t[s], g = s); a[l++] = d, p = g } return a[l++] = t[h], a }(l, c, d, s, i); break; case \"min-max\": u = function (t, e, i, s) { let n, o, a, r, l, h, c, d, u, f, g = 0, p = 0; const m = [], x = e + i - 1, b = t[e].x, _ = t[x].x - b; for (n = e; n < e + i; ++n) { o = t[n], a = (o.x - b) / _ * s, r = o.y; const e = 0 | a; if (e === l) r < u ? (u = r, h = n) : r > f && (f = r, c = n), g = (p * g + o.x) / ++p; else { const i = n - 1; if (!$(h) && !$(c)) { const e = Math.min(h, c), s = Math.max(h, c); e !== d && e !== i && m.push({ ...t[e], x: g }), s !== d && s !== i && m.push({ ...t[s], x: g }) } n > 0 && i !== d && m.push(t[i]), m.push(o), l = e, p = 0, u = f = r, h = c = d = n } } return m }(l, c, d, s); break; default: throw new Error(`Unsupported decimation algorithm '${i.algorithm}'`) }e._decimated = u })) }, destroy(t) { ao(t) } }; function lo(t, e, i, s) { if (s) return; let n = e[t], o = i[t]; return \"angle\" === t && (n = Kt(n), o = Kt(o)), { property: t, start: n, end: o } } function ho(t, e, i) { for (; e > t; e--) { const t = i[e]; if (!isNaN(t.x) && !isNaN(t.y)) break } return e } function co(t, e, i, s) { return t && e ? s(t[i], e[i]) : t ? t[i] : e ? e[i] : 0 } function uo(t, e) { let i = [], s = !1; return Y(t) ? (s = !0, i = t) : i = function (t, e) { const { x: i = null, y: s = null } = t || {}, n = e.points, o = []; return e.segments.forEach((({ start: t, end: e }) => { e = ho(t, e, n); const a = n[t], r = n[e]; null !== s ? (o.push({ x: a.x, y: s }), o.push({ x: r.x, y: s })) : null !== i && (o.push({ x: i, y: a.y }), o.push({ x: i, y: r.y })) })), o }(t, e), i.length ? new qn({ points: i, options: { tension: 0 }, _loop: s, _fullLoop: s }) : null } function fo(t, e, i) { let s = t[e].fill; const n = [e]; let o; if (!i) return s; for (; !1 !== s && -1 === n.indexOf(s);) { if (!X(s)) return s; if (o = t[s], !o) return !1; if (o.visible) return s; n.push(s), s = o.fill } return !1 } function go(t, e, i) { const s = function (t) { const e = t.options, i = e.fill; let s = K(i && i.target, i); void 0 === s && (s = !!e.backgroundColor); if (!1 === s || null === s) return !1; if (!0 === s) return \"origin\"; return s }(t); if (U(s)) return !isNaN(s.value) && s; let n = parseFloat(s); return X(n) && Math.floor(n) === n ? function (t, e, i, s) { \"-\" !== t && \"+\" !== t || (i = e + i); if (i === e || i < 0 || i >= s) return !1; return i }(s[0], e, n, i) : [\"origin\", \"start\", \"end\", \"stack\", \"shape\"].indexOf(s) >= 0 && s } function po(t, e, i) { const s = []; for (let n = 0; n < i.length; n++) { const o = i[n], { first: a, last: r, point: l } = mo(o, e, \"x\"); if (!(!l || a && r)) if (a) s.unshift(l); else if (t.push(l), !r) break } t.push(...s) } function mo(t, e, i) { const s = t.interpolate(e, i); if (!s) return {}; const n = s[i], o = t.segments, a = t.points; let r = !1, l = !1; for (let t = 0; t < o.length; t++) { const e = o[t], s = a[e.start][i], h = a[e.end][i]; if (Qt(n, s, h)) { r = n === s, l = n === h; break } } return { first: r, last: l, point: s } } class xo { constructor(t) { this.x = t.x, this.y = t.y, this.radius = t.radius } pathSegment(t, e, i) { const { x: s, y: n, radius: o } = this; return e = e || { start: 0, end: Ct }, t.arc(s, n, o, e.end, e.start, !0), !i.bounds } interpolate(t) { const { x: e, y: i, radius: s } = this, n = t.angle; return { x: e + Math.cos(n) * s, y: i + Math.sin(n) * s, angle: n } } } function bo(t) { const { chart: e, fill: i, line: s } = t; if (X(i)) return function (t, e) { const i = t.getDatasetMeta(e); return i && t.isDatasetVisible(e) ? i.dataset : null }(e, i); if (\"stack\" === i) return function (t) { const { scale: e, index: i, line: s } = t, n = [], o = s.segments, a = s.points, r = function (t, e) { const i = [], s = t.getMatchingVisibleMetas(\"line\"); for (let t = 0; t < s.length; t++) { const n = s[t]; if (n.index === e) break; n.hidden || i.unshift(n.dataset) } return i }(e, i); r.push(uo({ x: null, y: e.bottom }, s)); for (let t = 0; t < o.length; t++) { const e = o[t]; for (let t = e.start; t <= e.end; t++)po(n, a[t], r) } return new qn({ points: n, options: {} }) }(t); if (\"shape\" === i) return !0; const n = function (t) { if ((t.scale || {}).getPointPositionForValue) return function (t) { const { scale: e, fill: i } = t, s = e.options, n = e.getLabels().length, o = s.reverse ? e.max : e.min, a = function (t, e, i) { let s; return s = \"start\" === t ? i : \"end\" === t ? e.options.reverse ? e.min : e.max : U(t) ? t.value : e.getBaseValue(), s }(i, e, o), r = []; if (s.grid.circular) { const t = e.getPointPositionForValue(0, o); return new xo({ x: t.x, y: t.y, radius: e.getDistanceFromCenterForValue(a) }) } for (let t = 0; t < n; ++t)r.push(e.getPointPositionForValue(t, a)); return r }(t); return function (t) { const { scale: e = {}, fill: i } = t, s = function (t, e) { let i = null; return \"start\" === t ? i = e.bottom : \"end\" === t ? i = e.top : U(t) ? i = e.getPixelForValue(t.value) : e.getBasePixel && (i = e.getBasePixel()), i }(i, e); if (X(s)) { const t = e.isHorizontal(); return { x: t ? s : null, y: t ? null : s } } return null }(t) }(t); return n instanceof xo ? n : uo(n, s) } function _o(t, e, i) { const s = bo(e), { line: n, scale: o, axis: a } = e, r = n.options, l = r.fill, h = r.backgroundColor, { above: c = h, below: d = h } = l || {}; s && n.points.length && (De(t, i), function (t, e) { const { line: i, target: s, above: n, below: o, area: a, scale: r } = e, l = i._loop ? \"angle\" : e.axis; t.save(), \"x\" === l && o !== n && (yo(t, s, a.top), vo(t, { line: i, target: s, color: n, scale: r, property: l }), t.restore(), t.save(), yo(t, s, a.bottom)); vo(t, { line: i, target: s, color: o, scale: r, property: l }), t.restore() }(t, { line: n, target: s, above: c, below: d, area: i, scale: o, axis: a }), Ce(t)) } function yo(t, e, i) { const { segments: s, points: n } = e; let o = !0, a = !1; t.beginPath(); for (const r of s) { const { start: s, end: l } = r, h = n[s], c = n[ho(s, l, n)]; o ? (t.moveTo(h.x, h.y), o = !1) : (t.lineTo(h.x, i), t.lineTo(h.x, h.y)), a = !!e.pathSegment(t, r, { move: a }), a ? t.closePath() : t.lineTo(c.x, i) } t.lineTo(e.first().x, i), t.closePath(), t.clip() } function vo(t, e) { const { line: i, target: s, property: n, color: o, scale: a } = e, r = function (t, e, i) { const s = t.segments, n = t.points, o = e.points, a = []; for (const t of s) { let { start: s, end: r } = t; r = ho(s, r, n); const l = lo(i, n[s], n[r], t.loop); if (!e.segments) { a.push({ source: t, target: l, start: n[s], end: n[r] }); continue } const h = Wi(e, l); for (const e of h) { const s = lo(i, o[e.start], o[e.end], e.loop), r = Vi(t, n, s); for (const t of r) a.push({ source: t, target: e, start: { [i]: co(l, s, \"start\", Math.max) }, end: { [i]: co(l, s, \"end\", Math.min) } }) } } return a }(i, s, n); for (const { source: e, target: l, start: h, end: c } of r) { const { style: { backgroundColor: r = o } = {} } = e, d = !0 !== s; t.save(), t.fillStyle = r, wo(t, a, d && lo(n, h, c)), t.beginPath(); const u = !!i.pathSegment(t, e); let f; if (d) { u ? t.closePath() : Mo(t, s, c, n); const e = !!s.pathSegment(t, l, { move: u, reverse: !0 }); f = u && e, f || Mo(t, s, h, n) } t.closePath(), t.fill(f ? \"evenodd\" : \"nonzero\"), t.restore() } } function wo(t, e, i) { const { top: s, bottom: n } = e.chart.chartArea, { property: o, start: a, end: r } = i || {}; \"x\" === o && (t.beginPath(), t.rect(a, s, r - a, n - s), t.clip()) } function Mo(t, e, i, s) { const n = e.interpolate(i, s); n && t.lineTo(n.x, n.y) } var ko = { id: \"filler\", afterDatasetsUpdate(t, e, i) { const s = (t.data.datasets || []).length, n = []; let o, a, r, l; for (a = 0; a < s; ++a)o = t.getDatasetMeta(a), r = o.dataset, l = null, r && r.options && r instanceof qn && (l = { visible: t.isDatasetVisible(a), index: a, fill: go(r, a, s), chart: t, axis: o.controller.options.indexAxis, scale: o.vScale, line: r }), o.$filler = l, n.push(l); for (a = 0; a < s; ++a)l = n[a], l && !1 !== l.fill && (l.fill = fo(n, a, i.propagate)) }, beforeDraw(t, e, i) { const s = \"beforeDraw\" === i.drawTime, n = t.getSortedVisibleDatasetMetas(), o = t.chartArea; for (let e = n.length - 1; e >= 0; --e) { const i = n[e].$filler; i && (i.line.updateControlPoints(o, i.axis), s && _o(t.ctx, i, o)) } }, beforeDatasetsDraw(t, e, i) { if (\"beforeDatasetsDraw\" !== i.drawTime) return; const s = t.getSortedVisibleDatasetMetas(); for (let e = s.length - 1; e >= 0; --e) { const i = s[e].$filler; i && _o(t.ctx, i, t.chartArea) } }, beforeDatasetDraw(t, e, i) { const s = e.meta.$filler; s && !1 !== s.fill && \"beforeDatasetDraw\" === i.drawTime && _o(t.ctx, s, t.chartArea) }, defaults: { propagate: !0, drawTime: \"beforeDatasetDraw\" } }; const So = (t, e) => { let { boxHeight: i = e, boxWidth: s = e } = t; return t.usePointStyle && (i = Math.min(i, e), s = Math.min(s, e)), { boxWidth: s, boxHeight: i, itemHeight: Math.max(e, i) } }; class Po extends Ds { constructor(t) { super(), this._added = !1, this.legendHitBoxes = [], this._hoveredItem = null, this.doughnutMode = !1, this.chart = t.chart, this.options = t.options, this.ctx = t.ctx, this.legendItems = void 0, this.columnSizes = void 0, this.lineWidths = void 0, this.maxHeight = void 0, this.maxWidth = void 0, this.top = void 0, this.bottom = void 0, this.left = void 0, this.right = void 0, this.height = void 0, this.width = void 0, this._margins = void 0, this.position = void 0, this.weight = void 0, this.fullSize = void 0 } update(t, e, i) { this.maxWidth = t, this.maxHeight = e, this._margins = i, this.setDimensions(), this.buildLabels(), this.fit() } setDimensions() { this.isHorizontal() ? (this.width = this.maxWidth, this.left = this._margins.left, this.right = this.width) : (this.height = this.maxHeight, this.top = this._margins.top, this.bottom = this.height) } buildLabels() { const t = this.options.labels || {}; let e = J(t.generateLabels, [this.chart], this) || []; t.filter && (e = e.filter((e => t.filter(e, this.chart.data)))), t.sort && (e = e.sort(((e, i) => t.sort(e, i, this.chart.data)))), this.options.reverse && e.reverse(), this.legendItems = e } fit() { const { options: t, ctx: e } = this; if (!t.display) return void (this.width = this.height = 0); const i = t.labels, s = Ne(i.font), n = s.size, o = this._computeTitleHeight(), { boxWidth: a, itemHeight: r } = So(i, n); let l, h; e.font = s.string, this.isHorizontal() ? (l = this.maxWidth, h = this._fitRows(o, n, a, r) + 10) : (h = this.maxHeight, l = this._fitCols(o, n, a, r) + 10), this.width = Math.min(l, t.maxWidth || this.maxWidth), this.height = Math.min(h, t.maxHeight || this.maxHeight) } _fitRows(t, e, i, s) { const { ctx: n, maxWidth: o, options: { labels: { padding: a } } } = this, r = this.legendHitBoxes = [], l = this.lineWidths = [0], h = s + a; let c = t; n.textAlign = \"left\", n.textBaseline = \"middle\"; let d = -1, u = -h; return this.legendItems.forEach(((t, f) => { const g = i + e / 2 + n.measureText(t.text).width; (0 === f || l[l.length - 1] + g + 2 * a > o) && (c += h, l[l.length - (f > 0 ? 0 : 1)] = 0, u += h, d++), r[f] = { left: 0, top: u, row: d, width: g, height: s }, l[l.length - 1] += g + a })), c } _fitCols(t, e, i, s) { const { ctx: n, maxHeight: o, options: { labels: { padding: a } } } = this, r = this.legendHitBoxes = [], l = this.columnSizes = [], h = o - t; let c = a, d = 0, u = 0, f = 0, g = 0; return this.legendItems.forEach(((t, o) => { const p = i + e / 2 + n.measureText(t.text).width; o > 0 && u + s + 2 * a > h && (c += d + a, l.push({ width: d, height: u }), f += d + a, g++, d = u = 0), r[o] = { left: f, top: u, col: g, width: p, height: s }, d = Math.max(d, p), u += s + a })), c += d, l.push({ width: d, height: u }), c } adjustHitBoxes() { if (!this.options.display) return; const t = this._computeTitleHeight(), { legendHitBoxes: e, options: { align: i, labels: { padding: s }, rtl: o } } = this, a = Ei(o, this.left, this.width); if (this.isHorizontal()) { let o = 0, r = n(i, this.left + s, this.right - this.lineWidths[o]); for (const l of e) o !== l.row && (o = l.row, r = n(i, this.left + s, this.right - this.lineWidths[o])), l.top += this.top + t + s, l.left = a.leftForLtr(a.x(r), l.width), r += l.width + s } else { let o = 0, r = n(i, this.top + t + s, this.bottom - this.columnSizes[o].height); for (const l of e) l.col !== o && (o = l.col, r = n(i, this.top + t + s, this.bottom - this.columnSizes[o].height)), l.top = r, l.left += this.left + s, l.left = a.leftForLtr(a.x(l.left), l.width), r += l.height + s } } isHorizontal() { return \"top\" === this.options.position || \"bottom\" === this.options.position } draw() { if (this.options.display) { const t = this.ctx; De(t, this), this._draw(), Ce(t) } } _draw() { const { options: t, columnSizes: e, lineWidths: i, ctx: s } = this, { align: a, labels: r } = t, l = bt.color, h = Ei(t.rtl, this.left, this.width), c = Ne(r.font), { color: d, padding: u } = r, f = c.size, g = f / 2; let p; this.drawTitle(), s.textAlign = h.textAlign(\"left\"), s.textBaseline = \"middle\", s.lineWidth = .5, s.font = c.string; const { boxWidth: m, boxHeight: x, itemHeight: b } = So(r, f), _ = this.isHorizontal(), y = this._computeTitleHeight(); p = _ ? { x: n(a, this.left + u, this.right - i[0]), y: this.top + u + y, line: 0 } : { x: this.left + u, y: n(a, this.top + y + u, this.bottom - e[0].height), line: 0 }, Ii(this.ctx, t.textDirection); const v = b + u; this.legendItems.forEach(((w, M) => { s.strokeStyle = w.fontColor || d, s.fillStyle = w.fontColor || d; const k = s.measureText(w.text).width, S = h.textAlign(w.textAlign || (w.textAlign = r.textAlign)), P = m + g + k; let D = p.x, C = p.y; h.setWidth(this.width), _ ? M > 0 && D + P + u > this.right && (C = p.y += v, p.line++, D = p.x = n(a, this.left + u, this.right - i[p.line])) : M > 0 && C + v > this.bottom && (D = p.x = D + e[p.line].width + u, p.line++, C = p.y = n(a, this.top + y + u, this.bottom - e[p.line].height)); !function (t, e, i) { if (isNaN(m) || m <= 0 || isNaN(x) || x < 0) return; s.save(); const n = K(i.lineWidth, 1); if (s.fillStyle = K(i.fillStyle, l), s.lineCap = K(i.lineCap, \"butt\"), s.lineDashOffset = K(i.lineDashOffset, 0), s.lineJoin = K(i.lineJoin, \"miter\"), s.lineWidth = n, s.strokeStyle = K(i.strokeStyle, l), s.setLineDash(K(i.lineDash, [])), r.usePointStyle) { const o = { radius: m * Math.SQRT2 / 2, pointStyle: i.pointStyle, rotation: i.rotation, borderWidth: n }, a = h.xPlus(t, m / 2); Se(s, o, a, e + g) } else { const o = e + Math.max((f - x) / 2, 0), a = h.leftForLtr(t, m), r = Ve(i.borderRadius); s.beginPath(), Object.values(r).some((t => 0 !== t)) ? Re(s, { x: a, y: o, w: m, h: x, radius: r }) : s.rect(a, o, m, x), s.fill(), 0 !== n && s.stroke() } s.restore() }(h.x(D), C, w), D = o(S, D + m + g, _ ? D + P : this.right, t.rtl), function (t, e, i) { Te(s, i.text, t, e + b / 2, c, { strikethrough: i.hidden, textAlign: h.textAlign(i.textAlign) }) }(h.x(D), C, w), _ ? p.x += P + u : p.y += v })), zi(this.ctx, t.textDirection) } drawTitle() { const t = this.options, e = t.title, i = Ne(e.font), o = We(e.padding); if (!e.display) return; const a = Ei(t.rtl, this.left, this.width), r = this.ctx, l = e.position, h = i.size / 2, c = o.top + h; let d, u = this.left, f = this.width; if (this.isHorizontal()) f = Math.max(...this.lineWidths), d = this.top + c, u = n(t.align, u, this.right - f); else { const e = this.columnSizes.reduce(((t, e) => Math.max(t, e.height)), 0); d = c + n(t.align, this.top, this.bottom - e - t.labels.padding - this._computeTitleHeight()) } const g = n(l, u, u + f); r.textAlign = a.textAlign(s(l)), r.textBaseline = \"middle\", r.strokeStyle = e.color, r.fillStyle = e.color, r.font = i.string, Te(r, e.text, g, d, i) } _computeTitleHeight() { const t = this.options.title, e = Ne(t.font), i = We(t.padding); return t.display ? e.lineHeight + i.height : 0 } _getLegendItemAt(t, e) { let i, s, n; if (Qt(t, this.left, this.right) && Qt(e, this.top, this.bottom)) for (n = this.legendHitBoxes, i = 0; i < n.length; ++i)if (s = n[i], Qt(t, s.left, s.left + s.width) && Qt(e, s.top, s.top + s.height)) return this.legendItems[i]; return null } handleEvent(t) { const e = this.options; if (!function (t, e) { if (\"mousemove\" === t && (e.onHover || e.onLeave)) return !0; if (e.onClick && (\"click\" === t || \"mouseup\" === t)) return !0; return !1 }(t.type, e)) return; const i = this._getLegendItemAt(t.x, t.y); if (\"mousemove\" === t.type) { const o = this._hoveredItem, a = (n = i, null !== (s = o) && null !== n && s.datasetIndex === n.datasetIndex && s.index === n.index); o && !a && J(e.onLeave, [t, o, this], this), this._hoveredItem = i, i && !a && J(e.onHover, [t, i, this], this) } else i && J(e.onClick, [t, i, this], this); var s, n } } var Do = { id: \"legend\", _element: Po, start(t, e, i) { const s = t.legend = new Po({ ctx: t.ctx, options: i, chart: t }); si.configure(t, s, i), si.addBox(t, s) }, stop(t) { si.removeBox(t, t.legend), delete t.legend }, beforeUpdate(t, e, i) { const s = t.legend; si.configure(t, s, i), s.options = i }, afterUpdate(t) { const e = t.legend; e.buildLabels(), e.adjustHitBoxes() }, afterEvent(t, e) { e.replay || t.legend.handleEvent(e.event) }, defaults: { display: !0, position: \"top\", align: \"center\", fullSize: !0, reverse: !1, weight: 1e3, onClick(t, e, i) { const s = e.datasetIndex, n = i.chart; n.isDatasetVisible(s) ? (n.hide(s), e.hidden = !0) : (n.show(s), e.hidden = !1) }, onHover: null, onLeave: null, labels: { color: t => t.chart.options.color, boxWidth: 40, padding: 10, generateLabels(t) { const e = t.data.datasets, { labels: { usePointStyle: i, pointStyle: s, textAlign: n, color: o } } = t.legend.options; return t._getSortedDatasetMetas().map((t => { const a = t.controller.getStyle(i ? 0 : void 0), r = We(a.borderWidth); return { text: e[t.index].label, fillStyle: a.backgroundColor, fontColor: o, hidden: !t.visible, lineCap: a.borderCapStyle, lineDash: a.borderDash, lineDashOffset: a.borderDashOffset, lineJoin: a.borderJoinStyle, lineWidth: (r.width + r.height) / 4, strokeStyle: a.borderColor, pointStyle: s || a.pointStyle, rotation: a.rotation, textAlign: n || a.textAlign, borderRadius: 0, datasetIndex: t.index } }), this) } }, title: { color: t => t.chart.options.color, display: !1, position: \"center\", text: \"\" } }, descriptors: { _scriptable: t => !t.startsWith(\"on\"), labels: { _scriptable: t => ![\"generateLabels\", \"filter\", \"sort\"].includes(t) } } }; class Co extends Ds { constructor(t) { super(), this.chart = t.chart, this.options = t.options, this.ctx = t.ctx, this._padding = void 0, this.top = void 0, this.bottom = void 0, this.left = void 0, this.right = void 0, this.width = void 0, this.height = void 0, this.position = void 0, this.weight = void 0, this.fullSize = void 0 } update(t, e) { const i = this.options; if (this.left = 0, this.top = 0, !i.display) return void (this.width = this.height = this.right = this.bottom = 0); this.width = this.right = t, this.height = this.bottom = e; const s = Y(i.text) ? i.text.length : 1; this._padding = We(i.padding); const n = s * Ne(i.font).lineHeight + this._padding.height; this.isHorizontal() ? this.height = n : this.width = n } isHorizontal() { const t = this.options.position; return \"top\" === t || \"bottom\" === t } _drawArgs(t) { const { top: e, left: i, bottom: s, right: o, options: a } = this, r = a.align; let l, h, c, d = 0; return this.isHorizontal() ? (h = n(r, i, o), c = e + t, l = o - i) : (\"left\" === a.position ? (h = i + t, c = n(r, s, e), d = -.5 * Dt) : (h = o - t, c = n(r, e, s), d = .5 * Dt), l = s - e), { titleX: h, titleY: c, maxWidth: l, rotation: d } } draw() { const t = this.ctx, e = this.options; if (!e.display) return; const i = Ne(e.font), n = i.lineHeight / 2 + this._padding.top, { titleX: o, titleY: a, maxWidth: r, rotation: l } = this._drawArgs(n); Te(t, e.text, 0, 0, i, { color: e.color, maxWidth: r, rotation: l, textAlign: s(e.align), textBaseline: \"middle\", translation: [o, a] }) } } var Oo = { id: \"title\", _element: Co, start(t, e, i) { !function (t, e) { const i = new Co({ ctx: t.ctx, options: e, chart: t }); si.configure(t, i, e), si.addBox(t, i), t.titleBlock = i }(t, i) }, stop(t) { const e = t.titleBlock; si.removeBox(t, e), delete t.titleBlock }, beforeUpdate(t, e, i) { const s = t.titleBlock; si.configure(t, s, i), s.options = i }, defaults: { align: \"center\", display: !1, font: { weight: \"bold\" }, fullSize: !0, padding: 10, position: \"top\", text: \"\", weight: 2e3 }, defaultRoutes: { color: \"color\" }, descriptors: { _scriptable: !0, _indexable: !1 } }; const Ao = new WeakMap; var To = { id: \"subtitle\", start(t, e, i) { const s = new Co({ ctx: t.ctx, options: i, chart: t }); si.configure(t, s, i), si.addBox(t, s), Ao.set(t, s) }, stop(t) { si.removeBox(t, Ao.get(t)), Ao.delete(t) }, beforeUpdate(t, e, i) { const s = Ao.get(t); si.configure(t, s, i), s.options = i }, defaults: { align: \"center\", display: !1, font: { weight: \"normal\" }, fullSize: !0, padding: 0, position: \"top\", text: \"\", weight: 1500 }, defaultRoutes: { color: \"color\" }, descriptors: { _scriptable: !0, _indexable: !1 } }; const Lo = { average(t) { if (!t.length) return !1; let e, i, s = 0, n = 0, o = 0; for (e = 0, i = t.length; e < i; ++e) { const i = t[e].element; if (i && i.hasValue()) { const t = i.tooltipPosition(); s += t.x, n += t.y, ++o } } return { x: s / o, y: n / o } }, nearest(t, e) { if (!t.length) return !1; let i, s, n, o = e.x, a = e.y, r = Number.POSITIVE_INFINITY; for (i = 0, s = t.length; i < s; ++i) { const s = t[i].element; if (s && s.hasValue()) { const t = Xt(e, s.getCenterPoint()); t < r && (r = t, n = s) } } if (n) { const t = n.tooltipPosition(); o = t.x, a = t.y } return { x: o, y: a } } }; function Ro(t, e) { return e && (Y(e) ? Array.prototype.push.apply(t, e) : t.push(e)), t } function Eo(t) { return (\"string\" == typeof t || t instanceof String) && t.indexOf(\"\\n\") > -1 ? t.split(\"\\n\") : t } function Io(t, e) { const { element: i, datasetIndex: s, index: n } = e, o = t.getDatasetMeta(s).controller, { label: a, value: r } = o.getLabelAndValue(n); return { chart: t, label: a, parsed: o.getParsed(n), raw: t.data.datasets[s].data[n], formattedValue: r, dataset: o.getDataset(), dataIndex: n, datasetIndex: s, element: i } } function zo(t, e) { const i = t.chart.ctx, { body: s, footer: n, title: o } = t, { boxWidth: a, boxHeight: r } = e, l = Ne(e.bodyFont), h = Ne(e.titleFont), c = Ne(e.footerFont), d = o.length, u = n.length, f = s.length, g = We(e.padding); let p = g.height, m = 0, x = s.reduce(((t, e) => t + e.before.length + e.lines.length + e.after.length), 0); if (x += t.beforeBody.length + t.afterBody.length, d && (p += d * h.lineHeight + (d - 1) * e.titleSpacing + e.titleMarginBottom), x) { p += f * (e.displayColors ? Math.max(r, l.lineHeight) : l.lineHeight) + (x - f) * l.lineHeight + (x - 1) * e.bodySpacing } u && (p += e.footerMarginTop + u * c.lineHeight + (u - 1) * e.footerSpacing); let b = 0; const _ = function (t) { m = Math.max(m, i.measureText(t).width + b) }; return i.save(), i.font = h.string, Q(t.title, _), i.font = l.string, Q(t.beforeBody.concat(t.afterBody), _), b = e.displayColors ? a + 2 + e.boxPadding : 0, Q(s, (t => { Q(t.before, _), Q(t.lines, _), Q(t.after, _) })), b = 0, i.font = c.string, Q(t.footer, _), i.restore(), m += g.width, { width: m, height: p } } function Fo(t, e, i, s) { const { x: n, width: o } = i, { width: a, chartArea: { left: r, right: l } } = t; let h = \"center\"; return \"center\" === s ? h = n <= (r + l) / 2 ? \"left\" : \"right\" : n <= o / 2 ? h = \"left\" : n >= a - o / 2 && (h = \"right\"), function (t, e, i, s) { const { x: n, width: o } = s, a = i.caretSize + i.caretPadding; return \"left\" === t && n + o + a > e.width || \"right\" === t && n - o - a < 0 || void 0 }(h, t, e, i) && (h = \"center\"), h } function Bo(t, e, i) { const s = i.yAlign || e.yAlign || function (t, e) { const { y: i, height: s } = e; return i < s / 2 ? \"top\" : i > t.height - s / 2 ? \"bottom\" : \"center\" }(t, i); return { xAlign: i.xAlign || e.xAlign || Fo(t, e, i, s), yAlign: s } } function Vo(t, e, i, s) { const { caretSize: n, caretPadding: o, cornerRadius: a } = t, { xAlign: r, yAlign: l } = i, h = n + o, { topLeft: c, topRight: d, bottomLeft: u, bottomRight: f } = Ve(a); let g = function (t, e) { let { x: i, width: s } = t; return \"right\" === e ? i -= s : \"center\" === e && (i -= s / 2), i }(e, r); const p = function (t, e, i) { let { y: s, height: n } = t; return \"top\" === e ? s += i : s -= \"bottom\" === e ? n + i : n / 2, s }(e, l, h); return \"center\" === l ? \"left\" === r ? g += h : \"right\" === r && (g -= h) : \"left\" === r ? g -= Math.max(c, u) + n : \"right\" === r && (g += Math.max(d, f) + n), { x: Zt(g, 0, s.width - e.width), y: Zt(p, 0, s.height - e.height) } } function Wo(t, e, i) { const s = We(i.padding); return \"center\" === e ? t.x + t.width / 2 : \"right\" === e ? t.x + t.width - s.right : t.x + s.left } function No(t) { return Ro([], Eo(t)) } function Ho(t, e) { const i = e && e.dataset && e.dataset.tooltip && e.dataset.tooltip.callbacks; return i ? t.override(i) : t } class jo extends Ds { constructor(t) { super(), this.opacity = 0, this._active = [], this._eventPosition = void 0, this._size = void 0, this._cachedAnimations = void 0, this._tooltipItems = [], this.$animations = void 0, this.$context = void 0, this.chart = t.chart || t._chart, this._chart = this.chart, this.options = t.options, this.dataPoints = void 0, this.title = void 0, this.beforeBody = void 0, this.body = void 0, this.afterBody = void 0, this.footer = void 0, this.xAlign = void 0, this.yAlign = void 0, this.x = void 0, this.y = void 0, this.height = void 0, this.width = void 0, this.caretX = void 0, this.caretY = void 0, this.labelColors = void 0, this.labelPointStyles = void 0, this.labelTextColors = void 0 } initialize(t) { this.options = t, this._cachedAnimations = void 0, this.$context = void 0 } _resolveAnimations() { const t = this._cachedAnimations; if (t) return t; const e = this.chart, i = this.options.setContext(this.getContext()), s = i.enabled && e.options.animation && i.animations, n = new gs(this.chart, s); return s._cacheable && (this._cachedAnimations = Object.freeze(n)), n } getContext() { return this.$context || (this.$context = (t = this.chart.getContext(), e = this, i = this._tooltipItems, $e(t, { tooltip: e, tooltipItems: i, type: \"tooltip\" }))); var t, e, i } getTitle(t, e) { const { callbacks: i } = e, s = i.beforeTitle.apply(this, [t]), n = i.title.apply(this, [t]), o = i.afterTitle.apply(this, [t]); let a = []; return a = Ro(a, Eo(s)), a = Ro(a, Eo(n)), a = Ro(a, Eo(o)), a } getBeforeBody(t, e) { return No(e.callbacks.beforeBody.apply(this, [t])) } getBody(t, e) { const { callbacks: i } = e, s = []; return Q(t, (t => { const e = { before: [], lines: [], after: [] }, n = Ho(i, t); Ro(e.before, Eo(n.beforeLabel.call(this, t))), Ro(e.lines, n.label.call(this, t)), Ro(e.after, Eo(n.afterLabel.call(this, t))), s.push(e) })), s } getAfterBody(t, e) { return No(e.callbacks.afterBody.apply(this, [t])) } getFooter(t, e) { const { callbacks: i } = e, s = i.beforeFooter.apply(this, [t]), n = i.footer.apply(this, [t]), o = i.afterFooter.apply(this, [t]); let a = []; return a = Ro(a, Eo(s)), a = Ro(a, Eo(n)), a = Ro(a, Eo(o)), a } _createItems(t) { const e = this._active, i = this.chart.data, s = [], n = [], o = []; let a, r, l = []; for (a = 0, r = e.length; a < r; ++a)l.push(Io(this.chart, e[a])); return t.filter && (l = l.filter(((e, s, n) => t.filter(e, s, n, i)))), t.itemSort && (l = l.sort(((e, s) => t.itemSort(e, s, i)))), Q(l, (e => { const i = Ho(t.callbacks, e); s.push(i.labelColor.call(this, e)), n.push(i.labelPointStyle.call(this, e)), o.push(i.labelTextColor.call(this, e)) })), this.labelColors = s, this.labelPointStyles = n, this.labelTextColors = o, this.dataPoints = l, l } update(t, e) { const i = this.options.setContext(this.getContext()), s = this._active; let n, o = []; if (s.length) { const t = Lo[i.position].call(this, s, this._eventPosition); o = this._createItems(i), this.title = this.getTitle(o, i), this.beforeBody = this.getBeforeBody(o, i), this.body = this.getBody(o, i), this.afterBody = this.getAfterBody(o, i), this.footer = this.getFooter(o, i); const e = this._size = zo(this, i), a = Object.assign({}, t, e), r = Bo(this.chart, i, a), l = Vo(i, a, r, this.chart); this.xAlign = r.xAlign, this.yAlign = r.yAlign, n = { opacity: 1, x: l.x, y: l.y, width: e.width, height: e.height, caretX: t.x, caretY: t.y } } else 0 !== this.opacity && (n = { opacity: 0 }); this._tooltipItems = o, this.$context = void 0, n && this._resolveAnimations().update(this, n), t && i.external && i.external.call(this, { chart: this.chart, tooltip: this, replay: e }) } drawCaret(t, e, i, s) { const n = this.getCaretPosition(t, i, s); e.lineTo(n.x1, n.y1), e.lineTo(n.x2, n.y2), e.lineTo(n.x3, n.y3) } getCaretPosition(t, e, i) { const { xAlign: s, yAlign: n } = this, { caretSize: o, cornerRadius: a } = i, { topLeft: r, topRight: l, bottomLeft: h, bottomRight: c } = Ve(a), { x: d, y: u } = t, { width: f, height: g } = e; let p, m, x, b, _, y; return \"center\" === n ? (_ = u + g / 2, \"left\" === s ? (p = d, m = p - o, b = _ + o, y = _ - o) : (p = d + f, m = p + o, b = _ - o, y = _ + o), x = p) : (m = \"left\" === s ? d + Math.max(r, h) + o : \"right\" === s ? d + f - Math.max(l, c) - o : this.caretX, \"top\" === n ? (b = u, _ = b - o, p = m - o, x = m + o) : (b = u + g, _ = b + o, p = m + o, x = m - o), y = b), { x1: p, x2: m, x3: x, y1: b, y2: _, y3: y } } drawTitle(t, e, i) { const s = this.title, n = s.length; let o, a, r; if (n) { const l = Ei(i.rtl, this.x, this.width); for (t.x = Wo(this, i.titleAlign, i), e.textAlign = l.textAlign(i.titleAlign), e.textBaseline = \"middle\", o = Ne(i.titleFont), a = i.titleSpacing, e.fillStyle = i.titleColor, e.font = o.string, r = 0; r < n; ++r)e.fillText(s[r], l.x(t.x), t.y + o.lineHeight / 2), t.y += o.lineHeight + a, r + 1 === n && (t.y += i.titleMarginBottom - a) } } _drawColorBox(t, e, i, s, n) { const o = this.labelColors[i], a = this.labelPointStyles[i], { boxHeight: r, boxWidth: l, boxPadding: h } = n, c = Ne(n.bodyFont), d = Wo(this, \"left\", n), u = s.x(d), f = r < c.lineHeight ? (c.lineHeight - r) / 2 : 0, g = e.y + f; if (n.usePointStyle) { const e = { radius: Math.min(l, r) / 2, pointStyle: a.pointStyle, rotation: a.rotation, borderWidth: 1 }, i = s.leftForLtr(u, l) + l / 2, h = g + r / 2; t.strokeStyle = n.multiKeyBackground, t.fillStyle = n.multiKeyBackground, Se(t, e, i, h), t.strokeStyle = o.borderColor, t.fillStyle = o.backgroundColor, Se(t, e, i, h) } else { t.lineWidth = o.borderWidth || 1, t.strokeStyle = o.borderColor, t.setLineDash(o.borderDash || []), t.lineDashOffset = o.borderDashOffset || 0; const e = s.leftForLtr(u, l - h), i = s.leftForLtr(s.xPlus(u, 1), l - h - 2), a = Ve(o.borderRadius); Object.values(a).some((t => 0 !== t)) ? (t.beginPath(), t.fillStyle = n.multiKeyBackground, Re(t, { x: e, y: g, w: l, h: r, radius: a }), t.fill(), t.stroke(), t.fillStyle = o.backgroundColor, t.beginPath(), Re(t, { x: i, y: g + 1, w: l - 2, h: r - 2, radius: a }), t.fill()) : (t.fillStyle = n.multiKeyBackground, t.fillRect(e, g, l, r), t.strokeRect(e, g, l, r), t.fillStyle = o.backgroundColor, t.fillRect(i, g + 1, l - 2, r - 2)) } t.fillStyle = this.labelTextColors[i] } drawBody(t, e, i) { const { body: s } = this, { bodySpacing: n, bodyAlign: o, displayColors: a, boxHeight: r, boxWidth: l, boxPadding: h } = i, c = Ne(i.bodyFont); let d = c.lineHeight, u = 0; const f = Ei(i.rtl, this.x, this.width), g = function (i) { e.fillText(i, f.x(t.x + u), t.y + d / 2), t.y += d + n }, p = f.textAlign(o); let m, x, b, _, y, v, w; for (e.textAlign = o, e.textBaseline = \"middle\", e.font = c.string, t.x = Wo(this, p, i), e.fillStyle = i.bodyColor, Q(this.beforeBody, g), u = a && \"right\" !== p ? \"center\" === o ? l / 2 + h : l + 2 + h : 0, _ = 0, v = s.length; _ < v; ++_) { for (m = s[_], x = this.labelTextColors[_], e.fillStyle = x, Q(m.before, g), b = m.lines, a && b.length && (this._drawColorBox(e, t, _, f, i), d = Math.max(c.lineHeight, r)), y = 0, w = b.length; y < w; ++y)g(b[y]), d = c.lineHeight; Q(m.after, g) } u = 0, d = c.lineHeight, Q(this.afterBody, g), t.y -= n } drawFooter(t, e, i) { const s = this.footer, n = s.length; let o, a; if (n) { const r = Ei(i.rtl, this.x, this.width); for (t.x = Wo(this, i.footerAlign, i), t.y += i.footerMarginTop, e.textAlign = r.textAlign(i.footerAlign), e.textBaseline = \"middle\", o = Ne(i.footerFont), e.fillStyle = i.footerColor, e.font = o.string, a = 0; a < n; ++a)e.fillText(s[a], r.x(t.x), t.y + o.lineHeight / 2), t.y += o.lineHeight + i.footerSpacing } } drawBackground(t, e, i, s) { const { xAlign: n, yAlign: o } = this, { x: a, y: r } = t, { width: l, height: h } = i, { topLeft: c, topRight: d, bottomLeft: u, bottomRight: f } = Ve(s.cornerRadius); e.fillStyle = s.backgroundColor, e.strokeStyle = s.borderColor, e.lineWidth = s.borderWidth, e.beginPath(), e.moveTo(a + c, r), \"top\" === o && this.drawCaret(t, e, i, s), e.lineTo(a + l - d, r), e.quadraticCurveTo(a + l, r, a + l, r + d), \"center\" === o && \"right\" === n && this.drawCaret(t, e, i, s), e.lineTo(a + l, r + h - f), e.quadraticCurveTo(a + l, r + h, a + l - f, r + h), \"bottom\" === o && this.drawCaret(t, e, i, s), e.lineTo(a + u, r + h), e.quadraticCurveTo(a, r + h, a, r + h - u), \"center\" === o && \"left\" === n && this.drawCaret(t, e, i, s), e.lineTo(a, r + c), e.quadraticCurveTo(a, r, a + c, r), e.closePath(), e.fill(), s.borderWidth > 0 && e.stroke() } _updateAnimationTarget(t) { const e = this.chart, i = this.$animations, s = i && i.x, n = i && i.y; if (s || n) { const i = Lo[t.position].call(this, this._active, this._eventPosition); if (!i) return; const o = this._size = zo(this, t), a = Object.assign({}, i, this._size), r = Bo(e, t, a), l = Vo(t, a, r, e); s._to === l.x && n._to === l.y || (this.xAlign = r.xAlign, this.yAlign = r.yAlign, this.width = o.width, this.height = o.height, this.caretX = i.x, this.caretY = i.y, this._resolveAnimations().update(this, l)) } } _willRender() { return !!this.opacity } draw(t) { const e = this.options.setContext(this.getContext()); let i = this.opacity; if (!i) return; this._updateAnimationTarget(e); const s = { width: this.width, height: this.height }, n = { x: this.x, y: this.y }; i = Math.abs(i) < .001 ? 0 : i; const o = We(e.padding), a = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length; e.enabled && a && (t.save(), t.globalAlpha = i, this.drawBackground(n, t, s, e), Ii(t, e.textDirection), n.y += o.top, this.drawTitle(n, t, e), this.drawBody(n, t, e), this.drawFooter(n, t, e), zi(t, e.textDirection), t.restore()) } getActiveElements() { return this._active || [] } setActiveElements(t, e) { const i = this._active, s = t.map((({ datasetIndex: t, index: e }) => { const i = this.chart.getDatasetMeta(t); if (!i) throw new Error(\"Cannot find a dataset at index \" + t); return { datasetIndex: t, element: i.data[e], index: e } })), n = !tt(i, s), o = this._positionChanged(s, e); (n || o) && (this._active = s, this._eventPosition = e, this._ignoreReplayEvents = !0, this.update(!0)) } handleEvent(t, e, i = !0) { if (e && this._ignoreReplayEvents) return !1; this._ignoreReplayEvents = !1; const s = this.options, n = this._active || [], o = this._getActiveElements(t, n, e, i), a = this._positionChanged(o, t), r = e || !tt(o, n) || a; return r && (this._active = o, (s.enabled || s.external) && (this._eventPosition = { x: t.x, y: t.y }, this.update(!0, e))), r } _getActiveElements(t, e, i, s) { const n = this.options; if (\"mouseout\" === t.type) return []; if (!s) return e; const o = this.chart.getElementsAtEventForMode(t, n.mode, n, i); return n.reverse && o.reverse(), o } _positionChanged(t, e) { const { caretX: i, caretY: s, options: n } = this, o = Lo[n.position].call(this, t, e); return !1 !== o && (i !== o.x || s !== o.y) } } jo.positioners = Lo; var $o = { id: \"tooltip\", _element: jo, positioners: Lo, afterInit(t, e, i) { i && (t.tooltip = new jo({ chart: t, options: i })) }, beforeUpdate(t, e, i) { t.tooltip && t.tooltip.initialize(i) }, reset(t, e, i) { t.tooltip && t.tooltip.initialize(i) }, afterDraw(t) { const e = t.tooltip; if (e && e._willRender()) { const i = { tooltip: e }; if (!1 === t.notifyPlugins(\"beforeTooltipDraw\", i)) return; e.draw(t.ctx), t.notifyPlugins(\"afterTooltipDraw\", i) } }, afterEvent(t, e) { if (t.tooltip) { const i = e.replay; t.tooltip.handleEvent(e.event, i, e.inChartArea) && (e.changed = !0) } }, defaults: { enabled: !0, external: null, position: \"average\", backgroundColor: \"rgba(0,0,0,0.8)\", titleColor: \"#fff\", titleFont: { weight: \"bold\" }, titleSpacing: 2, titleMarginBottom: 6, titleAlign: \"left\", bodyColor: \"#fff\", bodySpacing: 2, bodyFont: {}, bodyAlign: \"left\", footerColor: \"#fff\", footerSpacing: 2, footerMarginTop: 6, footerFont: { weight: \"bold\" }, footerAlign: \"left\", padding: 6, caretPadding: 2, caretSize: 5, cornerRadius: 6, boxHeight: (t, e) => e.bodyFont.size, boxWidth: (t, e) => e.bodyFont.size, multiKeyBackground: \"#fff\", displayColors: !0, boxPadding: 0, borderColor: \"rgba(0,0,0,0)\", borderWidth: 0, animation: { duration: 400, easing: \"easeOutQuart\" }, animations: { numbers: { type: \"number\", properties: [\"x\", \"y\", \"width\", \"height\", \"caretX\", \"caretY\"] }, opacity: { easing: \"linear\", duration: 200 } }, callbacks: { beforeTitle: H, title(t) { if (t.length > 0) { const e = t[0], i = e.chart.data.labels, s = i ? i.length : 0; if (this && this.options && \"dataset\" === this.options.mode) return e.dataset.label || \"\"; if (e.label) return e.label; if (s > 0 && e.dataIndex < s) return i[e.dataIndex] } return \"\" }, afterTitle: H, beforeBody: H, beforeLabel: H, label(t) { if (this && this.options && \"dataset\" === this.options.mode) return t.label + \": \" + t.formattedValue || t.formattedValue; let e = t.dataset.label || \"\"; e && (e += \": \"); const i = t.formattedValue; return $(i) || (e += i), e }, labelColor(t) { const e = t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex); return { borderColor: e.borderColor, backgroundColor: e.backgroundColor, borderWidth: e.borderWidth, borderDash: e.borderDash, borderDashOffset: e.borderDashOffset, borderRadius: 0 } }, labelTextColor() { return this.options.bodyColor }, labelPointStyle(t) { const e = t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex); return { pointStyle: e.pointStyle, rotation: e.rotation } }, afterLabel: H, afterBody: H, beforeFooter: H, footer: H, afterFooter: H } }, defaultRoutes: { bodyFont: \"font\", footerFont: \"font\", titleFont: \"font\" }, descriptors: { _scriptable: t => \"filter\" !== t && \"itemSort\" !== t && \"external\" !== t, _indexable: !1, callbacks: { _scriptable: !1, _indexable: !1 }, animation: { _fallback: !1 }, animations: { _fallback: \"animation\" } }, additionalOptionScopes: [\"interaction\"] }, Yo = Object.freeze({ __proto__: null, Decimation: ro, Filler: ko, Legend: Do, SubTitle: To, Title: Oo, Tooltip: $o }); function Uo(t, e, i, s) { const n = t.indexOf(e); if (-1 === n) return ((t, e, i, s) => (\"string\" == typeof e ? (i = t.push(e) - 1, s.unshift({ index: i, label: e })) : isNaN(e) && (i = null), i))(t, e, i, s); return n !== t.lastIndexOf(e) ? i : n } class Xo extends Bs { constructor(t) { super(t), this._startValue = void 0, this._valueRange = 0, this._addedLabels = [] } init(t) { const e = this._addedLabels; if (e.length) { const t = this.getLabels(); for (const { index: i, label: s } of e) t[i] === s && t.splice(i, 1); this._addedLabels = [] } super.init(t) } parse(t, e) { if ($(t)) return null; const i = this.getLabels(); return ((t, e) => null === t ? null : Zt(Math.round(t), 0, e))(e = isFinite(e) && i[e] === t ? e : Uo(i, t, K(e, t), this._addedLabels), i.length - 1) } determineDataLimits() { const { minDefined: t, maxDefined: e } = this.getUserBounds(); let { min: i, max: s } = this.getMinMax(!0); \"ticks\" === this.options.bounds && (t || (i = 0), e || (s = this.getLabels().length - 1)), this.min = i, this.max = s } buildTicks() { const t = this.min, e = this.max, i = this.options.offset, s = []; let n = this.getLabels(); n = 0 === t && e === n.length - 1 ? n : n.slice(t, e + 1), this._valueRange = Math.max(n.length - (i ? 0 : 1), 1), this._startValue = this.min - (i ? .5 : 0); for (let i = t; i <= e; i++)s.push({ value: i }); return s } getLabelForValue(t) { const e = this.getLabels(); return t >= 0 && t < e.length ? e[t] : t } configure() { super.configure(), this.isHorizontal() || (this._reversePixels = !this._reversePixels) } getPixelForValue(t) { return \"number\" != typeof t && (t = this.parse(t)), null === t ? NaN : this.getPixelForDecimal((t - this._startValue) / this._valueRange) } getPixelForTick(t) { const e = this.ticks; return t < 0 || t > e.length - 1 ? null : this.getPixelForValue(e[t].value) } getValueForPixel(t) { return Math.round(this._startValue + this.getDecimalForPixel(t) * this._valueRange) } getBasePixel() { return this.bottom } } function qo(t, e, { horizontal: i, minRotation: s }) { const n = jt(s), o = (i ? Math.sin(n) : Math.cos(n)) || .001, a = .75 * e * (\"\" + t).length; return Math.min(e / o, a) } Xo.id = \"category\", Xo.defaults = { ticks: { callback: Xo.prototype.getLabelForValue } }; class Ko extends Bs { constructor(t) { super(t), this.start = void 0, this.end = void 0, this._startValue = void 0, this._endValue = void 0, this._valueRange = 0 } parse(t, e) { return $(t) || (\"number\" == typeof t || t instanceof Number) && !isFinite(+t) ? null : +t } handleTickRangeOptions() { const { beginAtZero: t } = this.options, { minDefined: e, maxDefined: i } = this.getUserBounds(); let { min: s, max: n } = this; const o = t => s = e ? s : t, a = t => n = i ? n : t; if (t) { const t = zt(s), e = zt(n); t < 0 && e < 0 ? a(0) : t > 0 && e > 0 && o(0) } if (s === n) { let e = 1; (n >= Number.MAX_SAFE_INTEGER || s <= Number.MIN_SAFE_INTEGER) && (e = Math.abs(.05 * n)), a(n + e), t || o(s - e) } this.min = s, this.max = n } getTickLimit() { const t = this.options.ticks; let e, { maxTicksLimit: i, stepSize: s } = t; return s ? (e = Math.ceil(this.max / s) - Math.floor(this.min / s) + 1, e > 1e3 && (console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${e} ticks. Limiting to 1000.`), e = 1e3)) : (e = this.computeTickLimit(), i = i || 11), i && (e = Math.min(i, e)), e } computeTickLimit() { return Number.POSITIVE_INFINITY } buildTicks() { const t = this.options, e = t.ticks; let i = this.getTickLimit(); i = Math.max(2, i); const s = function (t, e) { const i = [], { bounds: s, step: n, min: o, max: a, precision: r, count: l, maxTicks: h, maxDigits: c, includeBounds: d } = t, u = n || 1, f = h - 1, { min: g, max: p } = e, m = !$(o), x = !$(a), b = !$(l), _ = (p - g) / (c + 1); let y, v, w, M, k = Ft((p - g) / f / u) * u; if (k < 1e-14 && !m && !x) return [{ value: g }, { value: p }]; M = Math.ceil(p / k) - Math.floor(g / k), M > f && (k = Ft(M * k / f / u) * u), $(r) || (y = Math.pow(10, r), k = Math.ceil(k * y) / y), \"ticks\" === s ? (v = Math.floor(g / k) * k, w = Math.ceil(p / k) * k) : (v = g, w = p), m && x && n && Nt((a - o) / n, k / 1e3) ? (M = Math.round(Math.min((a - o) / k, h)), k = (a - o) / M, v = o, w = a) : b ? (v = m ? o : v, w = x ? a : w, M = l - 1, k = (w - v) / M) : (M = (w - v) / k, M = Wt(M, Math.round(M), k / 1e3) ? Math.round(M) : Math.ceil(M)); const S = Math.max(Yt(k), Yt(v)); y = Math.pow(10, $(r) ? S : r), v = Math.round(v * y) / y, w = Math.round(w * y) / y; let P = 0; for (m && (d && v !== o ? (i.push({ value: o }), v < o && P++, Wt(Math.round((v + P * k) * y) / y, o, qo(o, _, t)) && P++) : v < o && P++); P < M; ++P)i.push({ value: Math.round((v + P * k) * y) / y }); return x && d && w !== a ? i.length && Wt(i[i.length - 1].value, a, qo(a, _, t)) ? i[i.length - 1].value = a : i.push({ value: a }) : x && w !== a || i.push({ value: w }), i }({ maxTicks: i, bounds: t.bounds, min: t.min, max: t.max, precision: e.precision, step: e.stepSize, count: e.count, maxDigits: this._maxDigits(), horizontal: this.isHorizontal(), minRotation: e.minRotation || 0, includeBounds: !1 !== e.includeBounds }, this._range || this); return \"ticks\" === t.bounds && Ht(s, this, \"value\"), t.reverse ? (s.reverse(), this.start = this.max, this.end = this.min) : (this.start = this.min, this.end = this.max), s } configure() { const t = this.ticks; let e = this.min, i = this.max; if (super.configure(), this.options.offset && t.length) { const s = (i - e) / Math.max(t.length - 1, 1) / 2; e -= s, i += s } this._startValue = e, this._endValue = i, this._valueRange = i - e } getLabelForValue(t) { return Ri(t, this.chart.options.locale, this.options.ticks.format) } } class Go extends Ko { determineDataLimits() { const { min: t, max: e } = this.getMinMax(!0); this.min = X(t) ? t : 0, this.max = X(e) ? e : 1, this.handleTickRangeOptions() } computeTickLimit() { const t = this.isHorizontal(), e = t ? this.width : this.height, i = jt(this.options.ticks.minRotation), s = (t ? Math.sin(i) : Math.cos(i)) || .001, n = this._resolveTickFontOptions(0); return Math.ceil(e / Math.min(40, n.lineHeight / s)) } getPixelForValue(t) { return null === t ? NaN : this.getPixelForDecimal((t - this._startValue) / this._valueRange) } getValueForPixel(t) { return this._startValue + this.getDecimalForPixel(t) * this._valueRange } } function Zo(t) { return 1 === t / Math.pow(10, Math.floor(It(t))) } Go.id = \"linear\", Go.defaults = { ticks: { callback: Os.formatters.numeric } }; class Jo extends Bs { constructor(t) { super(t), this.start = void 0, this.end = void 0, this._startValue = void 0, this._valueRange = 0 } parse(t, e) { const i = Ko.prototype.parse.apply(this, [t, e]); if (0 !== i) return X(i) && i > 0 ? i : null; this._zero = !0 } determineDataLimits() { const { min: t, max: e } = this.getMinMax(!0); this.min = X(t) ? Math.max(0, t) : null, this.max = X(e) ? Math.max(0, e) : null, this.options.beginAtZero && (this._zero = !0), this.handleTickRangeOptions() } handleTickRangeOptions() { const { minDefined: t, maxDefined: e } = this.getUserBounds(); let i = this.min, s = this.max; const n = e => i = t ? i : e, o = t => s = e ? s : t, a = (t, e) => Math.pow(10, Math.floor(It(t)) + e); i === s && (i <= 0 ? (n(1), o(10)) : (n(a(i, -1)), o(a(s, 1)))), i <= 0 && n(a(s, -1)), s <= 0 && o(a(i, 1)), this._zero && this.min !== this._suggestedMin && i === a(this.min, 0) && n(a(i, -1)), this.min = i, this.max = s } buildTicks() { const t = this.options, e = function (t, e) { const i = Math.floor(It(e.max)), s = Math.ceil(e.max / Math.pow(10, i)), n = []; let o = q(t.min, Math.pow(10, Math.floor(It(e.min)))), a = Math.floor(It(o)), r = Math.floor(o / Math.pow(10, a)), l = a < 0 ? Math.pow(10, Math.abs(a)) : 1; do { n.push({ value: o, major: Zo(o) }), ++r, 10 === r && (r = 1, ++a, l = a >= 0 ? 1 : l), o = Math.round(r * Math.pow(10, a) * l) / l } while (a < i || a === i && r < s); const h = q(t.max, o); return n.push({ value: h, major: Zo(o) }), n }({ min: this._userMin, max: this._userMax }, this); return \"ticks\" === t.bounds && Ht(e, this, \"value\"), t.reverse ? (e.reverse(), this.start = this.max, this.end = this.min) : (this.start = this.min, this.end = this.max), e } getLabelForValue(t) { return void 0 === t ? \"0\" : Ri(t, this.chart.options.locale, this.options.ticks.format) } configure() { const t = this.min; super.configure(), this._startValue = It(t), this._valueRange = It(this.max) - It(t) } getPixelForValue(t) { return void 0 !== t && 0 !== t || (t = this.min), null === t || isNaN(t) ? NaN : this.getPixelForDecimal(t === this.min ? 0 : (It(t) - this._startValue) / this._valueRange) } getValueForPixel(t) { const e = this.getDecimalForPixel(t); return Math.pow(10, this._startValue + e * this._valueRange) } } function Qo(t) { const e = t.ticks; if (e.display && t.display) { const t = We(e.backdropPadding); return K(e.font && e.font.size, bt.font.size) + t.height } return 0 } function ta(t, e, i, s, n) { return t === s || t === n ? { start: e - i / 2, end: e + i / 2 } : t < s || t > n ? { start: e - i, end: e } : { start: e, end: e + i } } function ea(t) { const e = { l: t.left + t._padding.left, r: t.right - t._padding.right, t: t.top + t._padding.top, b: t.bottom - t._padding.bottom }, i = Object.assign({}, e), s = [], n = [], o = t._pointLabels.length, a = t.options.pointLabels, r = a.centerPointLabels ? Dt / o : 0; for (let d = 0; d < o; d++) { const o = a.setContext(t.getPointLabelContext(d)); n[d] = o.padding; const u = t.getPointPosition(d, t.drawingArea + n[d], r), f = Ne(o.font), g = (l = t.ctx, h = f, c = Y(c = t._pointLabels[d]) ? c : [c], { w: we(l, h.string, c), h: c.length * h.lineHeight }); s[d] = g; const p = Kt(t.getIndexAngle(d) + r), m = Math.round($t(p)); ia(i, e, p, ta(m, u.x, g.w, 0, 180), ta(m, u.y, g.h, 90, 270)) } var l, h, c; t.setCenterPoint(e.l - i.l, i.r - e.r, e.t - i.t, i.b - e.b), t._pointLabelItems = function (t, e, i) { const s = [], n = t._pointLabels.length, o = t.options, a = Qo(o) / 2, r = t.drawingArea, l = o.pointLabels.centerPointLabels ? Dt / n : 0; for (let o = 0; o < n; o++) { const n = t.getPointPosition(o, r + a + i[o], l), h = Math.round($t(Kt(n.angle + Lt))), c = e[o], d = oa(n.y, c.h, h), u = sa(h), f = na(n.x, c.w, u); s.push({ x: n.x, y: d, textAlign: u, left: f, top: d, right: f + c.w, bottom: d + c.h }) } return s }(t, s, n) } function ia(t, e, i, s, n) { const o = Math.abs(Math.sin(i)), a = Math.abs(Math.cos(i)); let r = 0, l = 0; s.start < e.l ? (r = (e.l - s.start) / o, t.l = Math.min(t.l, e.l - r)) : s.end > e.r && (r = (s.end - e.r) / o, t.r = Math.max(t.r, e.r + r)), n.start < e.t ? (l = (e.t - n.start) / a, t.t = Math.min(t.t, e.t - l)) : n.end > e.b && (l = (n.end - e.b) / a, t.b = Math.max(t.b, e.b + l)) } function sa(t) { return 0 === t || 180 === t ? \"center\" : t < 180 ? \"left\" : \"right\" } function na(t, e, i) { return \"right\" === i ? t -= e : \"center\" === i && (t -= e / 2), t } function oa(t, e, i) { return 90 === i || 270 === i ? t -= e / 2 : (i > 270 || i < 90) && (t -= e), t } function aa(t, e, i, s) { const { ctx: n } = t; if (i) n.arc(t.xCenter, t.yCenter, e, 0, Ct); else { let i = t.getPointPosition(0, e); n.moveTo(i.x, i.y); for (let o = 1; o < s; o++)i = t.getPointPosition(o, e), n.lineTo(i.x, i.y) } } Jo.id = \"logarithmic\", Jo.defaults = { ticks: { callback: Os.formatters.logarithmic, major: { enabled: !0 } } }; class ra extends Ko { constructor(t) { super(t), this.xCenter = void 0, this.yCenter = void 0, this.drawingArea = void 0, this._pointLabels = [], this._pointLabelItems = [] } setDimensions() { const t = this._padding = We(Qo(this.options) / 2), e = this.width = this.maxWidth - t.width, i = this.height = this.maxHeight - t.height; this.xCenter = Math.floor(this.left + e / 2 + t.left), this.yCenter = Math.floor(this.top + i / 2 + t.top), this.drawingArea = Math.floor(Math.min(e, i) / 2) } determineDataLimits() { const { min: t, max: e } = this.getMinMax(!1); this.min = X(t) && !isNaN(t) ? t : 0, this.max = X(e) && !isNaN(e) ? e : 0, this.handleTickRangeOptions() } computeTickLimit() { return Math.ceil(this.drawingArea / Qo(this.options)) } generateTickLabels(t) { Ko.prototype.generateTickLabels.call(this, t), this._pointLabels = this.getLabels().map(((t, e) => { const i = J(this.options.pointLabels.callback, [t, e], this); return i || 0 === i ? i : \"\" })).filter(((t, e) => this.chart.getDataVisibility(e))) } fit() { const t = this.options; t.display && t.pointLabels.display ? ea(this) : this.setCenterPoint(0, 0, 0, 0) } setCenterPoint(t, e, i, s) { this.xCenter += Math.floor((t - e) / 2), this.yCenter += Math.floor((i - s) / 2), this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(t, e, i, s)) } getIndexAngle(t) { return Kt(t * (Ct / (this._pointLabels.length || 1)) + jt(this.options.startAngle || 0)) } getDistanceFromCenterForValue(t) { if ($(t)) return NaN; const e = this.drawingArea / (this.max - this.min); return this.options.reverse ? (this.max - t) * e : (t - this.min) * e } getValueForDistanceFromCenter(t) { if ($(t)) return NaN; const e = t / (this.drawingArea / (this.max - this.min)); return this.options.reverse ? this.max - e : this.min + e } getPointLabelContext(t) { const e = this._pointLabels || []; if (t >= 0 && t < e.length) { const i = e[t]; return function (t, e, i) { return $e(t, { label: i, index: e, type: \"pointLabel\" }) }(this.getContext(), t, i) } } getPointPosition(t, e, i = 0) { const s = this.getIndexAngle(t) - Lt + i; return { x: Math.cos(s) * e + this.xCenter, y: Math.sin(s) * e + this.yCenter, angle: s } } getPointPositionForValue(t, e) { return this.getPointPosition(t, this.getDistanceFromCenterForValue(e)) } getBasePosition(t) { return this.getPointPositionForValue(t || 0, this.getBaseValue()) } getPointLabelPosition(t) { const { left: e, top: i, right: s, bottom: n } = this._pointLabelItems[t]; return { left: e, top: i, right: s, bottom: n } } drawBackground() { const { backgroundColor: t, grid: { circular: e } } = this.options; if (t) { const i = this.ctx; i.save(), i.beginPath(), aa(this, this.getDistanceFromCenterForValue(this._endValue), e, this._pointLabels.length), i.closePath(), i.fillStyle = t, i.fill(), i.restore() } } drawGrid() { const t = this.ctx, e = this.options, { angleLines: i, grid: s } = e, n = this._pointLabels.length; let o, a, r; if (e.pointLabels.display && function (t, e) { const { ctx: i, options: { pointLabels: s } } = t; for (let n = e - 1; n >= 0; n--) { const e = s.setContext(t.getPointLabelContext(n)), o = Ne(e.font), { x: a, y: r, textAlign: l, left: h, top: c, right: d, bottom: u } = t._pointLabelItems[n], { backdropColor: f } = e; if (!$(f)) { const t = We(e.backdropPadding); i.fillStyle = f, i.fillRect(h - t.left, c - t.top, d - h + t.width, u - c + t.height) } Te(i, t._pointLabels[n], a, r + o.lineHeight / 2, o, { color: e.color, textAlign: l, textBaseline: \"middle\" }) } }(this, n), s.display && this.ticks.forEach(((t, e) => { if (0 !== e) { a = this.getDistanceFromCenterForValue(t.value); !function (t, e, i, s) { const n = t.ctx, o = e.circular, { color: a, lineWidth: r } = e; !o && !s || !a || !r || i < 0 || (n.save(), n.strokeStyle = a, n.lineWidth = r, n.setLineDash(e.borderDash), n.lineDashOffset = e.borderDashOffset, n.beginPath(), aa(t, i, o, s), n.closePath(), n.stroke(), n.restore()) }(this, s.setContext(this.getContext(e - 1)), a, n) } })), i.display) { for (t.save(), o = n - 1; o >= 0; o--) { const s = i.setContext(this.getPointLabelContext(o)), { color: n, lineWidth: l } = s; l && n && (t.lineWidth = l, t.strokeStyle = n, t.setLineDash(s.borderDash), t.lineDashOffset = s.borderDashOffset, a = this.getDistanceFromCenterForValue(e.ticks.reverse ? this.min : this.max), r = this.getPointPosition(o, a), t.beginPath(), t.moveTo(this.xCenter, this.yCenter), t.lineTo(r.x, r.y), t.stroke()) } t.restore() } } drawBorder() { } drawLabels() { const t = this.ctx, e = this.options, i = e.ticks; if (!i.display) return; const s = this.getIndexAngle(0); let n, o; t.save(), t.translate(this.xCenter, this.yCenter), t.rotate(s), t.textAlign = \"center\", t.textBaseline = \"middle\", this.ticks.forEach(((s, a) => { if (0 === a && !e.reverse) return; const r = i.setContext(this.getContext(a)), l = Ne(r.font); if (n = this.getDistanceFromCenterForValue(this.ticks[a].value), r.showLabelBackdrop) { t.font = l.string, o = t.measureText(s.label).width, t.fillStyle = r.backdropColor; const e = We(r.backdropPadding); t.fillRect(-o / 2 - e.left, -n - l.size / 2 - e.top, o + e.width, l.size + e.height) } Te(t, s.label, 0, -n, l, { color: r.color }) })), t.restore() } drawTitle() { } } ra.id = \"radialLinear\", ra.defaults = { display: !0, animate: !0, position: \"chartArea\", angleLines: { display: !0, lineWidth: 1, borderDash: [], borderDashOffset: 0 }, grid: { circular: !1 }, startAngle: 0, ticks: { showLabelBackdrop: !0, callback: Os.formatters.numeric }, pointLabels: { backdropColor: void 0, backdropPadding: 2, display: !0, font: { size: 10 }, callback: t => t, padding: 5, centerPointLabels: !1 } }, ra.defaultRoutes = { \"angleLines.color\": \"borderColor\", \"pointLabels.color\": \"color\", \"ticks.color\": \"color\" }, ra.descriptors = { angleLines: { _fallback: \"grid\" } }; const la = { millisecond: { common: !0, size: 1, steps: 1e3 }, second: { common: !0, size: 1e3, steps: 60 }, minute: { common: !0, size: 6e4, steps: 60 }, hour: { common: !0, size: 36e5, steps: 24 }, day: { common: !0, size: 864e5, steps: 30 }, week: { common: !1, size: 6048e5, steps: 4 }, month: { common: !0, size: 2628e6, steps: 12 }, quarter: { common: !1, size: 7884e6, steps: 4 }, year: { common: !0, size: 3154e7 } }, ha = Object.keys(la); function ca(t, e) { return t - e } function da(t, e) { if ($(e)) return null; const i = t._adapter, { parser: s, round: n, isoWeekday: o } = t._parseOpts; let a = e; return \"function\" == typeof s && (a = s(a)), X(a) || (a = \"string\" == typeof s ? i.parse(a, s) : i.parse(a)), null === a ? null : (n && (a = \"week\" !== n || !Vt(o) && !0 !== o ? i.startOf(a, n) : i.startOf(a, \"isoWeek\", o)), +a) } function ua(t, e, i, s) { const n = ha.length; for (let o = ha.indexOf(t); o < n - 1; ++o) { const t = la[ha[o]], n = t.steps ? t.steps : Number.MAX_SAFE_INTEGER; if (t.common && Math.ceil((i - e) / (n * t.size)) <= s) return ha[o] } return ha[n - 1] } function fa(t, e, i) { if (i) { if (i.length) { const { lo: s, hi: n } = _t(i, e); t[i[s] >= e ? i[s] : i[n]] = !0 } } else t[e] = !0 } function ga(t, e, i) { const s = [], n = {}, o = e.length; let a, r; for (a = 0; a < o; ++a)r = e[a], n[r] = a, s.push({ value: r, major: !1 }); return 0 !== o && i ? function (t, e, i, s) { const n = t._adapter, o = +n.startOf(e[0].value, s), a = e[e.length - 1].value; let r, l; for (r = o; r <= a; r = +n.add(r, 1, s))l = i[r], l >= 0 && (e[l].major = !0); return e }(t, s, n, i) : s } class pa extends Bs { constructor(t) { super(t), this._cache = { data: [], labels: [], all: [] }, this._unit = \"day\", this._majorUnit = void 0, this._offsets = {}, this._normalized = !1, this._parseOpts = void 0 } init(t, e) { const i = t.time || (t.time = {}), s = this._adapter = new mn._date(t.adapters.date); ot(i.displayFormats, s.formats()), this._parseOpts = { parser: i.parser, round: i.round, isoWeekday: i.isoWeekday }, super.init(t), this._normalized = e.normalized } parse(t, e) { return void 0 === t ? null : da(this, t) } beforeLayout() { super.beforeLayout(), this._cache = { data: [], labels: [], all: [] } } determineDataLimits() { const t = this.options, e = this._adapter, i = t.time.unit || \"day\"; let { min: s, max: n, minDefined: o, maxDefined: a } = this.getUserBounds(); function r(t) { o || isNaN(t.min) || (s = Math.min(s, t.min)), a || isNaN(t.max) || (n = Math.max(n, t.max)) } o && a || (r(this._getLabelBounds()), \"ticks\" === t.bounds && \"labels\" === t.ticks.source || r(this.getMinMax(!1))), s = X(s) && !isNaN(s) ? s : +e.startOf(Date.now(), i), n = X(n) && !isNaN(n) ? n : +e.endOf(Date.now(), i) + 1, this.min = Math.min(s, n - 1), this.max = Math.max(s + 1, n) } _getLabelBounds() { const t = this.getLabelTimestamps(); let e = Number.POSITIVE_INFINITY, i = Number.NEGATIVE_INFINITY; return t.length && (e = t[0], i = t[t.length - 1]), { min: e, max: i } } buildTicks() { const t = this.options, e = t.time, i = t.ticks, s = \"labels\" === i.source ? this.getLabelTimestamps() : this._generate(); \"ticks\" === t.bounds && s.length && (this.min = this._userMin || s[0], this.max = this._userMax || s[s.length - 1]); const n = this.min, o = wt(s, n, this.max); return this._unit = e.unit || (i.autoSkip ? ua(e.minUnit, this.min, this.max, this._getLabelCapacity(n)) : function (t, e, i, s, n) { for (let o = ha.length - 1; o >= ha.indexOf(i); o--) { const i = ha[o]; if (la[i].common && t._adapter.diff(n, s, i) >= e - 1) return i } return ha[i ? ha.indexOf(i) : 0] }(this, o.length, e.minUnit, this.min, this.max)), this._majorUnit = i.major.enabled && \"year\" !== this._unit ? function (t) { for (let e = ha.indexOf(t) + 1, i = ha.length; e < i; ++e)if (la[ha[e]].common) return ha[e] }(this._unit) : void 0, this.initOffsets(s), t.reverse && o.reverse(), ga(this, o, this._majorUnit) } afterAutoSkip() { this.options.offsetAfterAutoskip && this.initOffsets(this.ticks.map((t => +t.value))) } initOffsets(t) { let e, i, s = 0, n = 0; this.options.offset && t.length && (e = this.getDecimalForValue(t[0]), s = 1 === t.length ? 1 - e : (this.getDecimalForValue(t[1]) - e) / 2, i = this.getDecimalForValue(t[t.length - 1]), n = 1 === t.length ? i : (i - this.getDecimalForValue(t[t.length - 2])) / 2); const o = t.length < 3 ? .5 : .25; s = Zt(s, 0, o), n = Zt(n, 0, o), this._offsets = { start: s, end: n, factor: 1 / (s + 1 + n) } } _generate() { const t = this._adapter, e = this.min, i = this.max, s = this.options, n = s.time, o = n.unit || ua(n.minUnit, e, i, this._getLabelCapacity(e)), a = K(n.stepSize, 1), r = \"week\" === o && n.isoWeekday, l = Vt(r) || !0 === r, h = {}; let c, d, u = e; if (l && (u = +t.startOf(u, \"isoWeek\", r)), u = +t.startOf(u, l ? \"day\" : o), t.diff(i, e, o) > 1e5 * a) throw new Error(e + \" and \" + i + \" are too far apart with stepSize of \" + a + \" \" + o); const f = \"data\" === s.ticks.source && this.getDataTimestamps(); for (c = u, d = 0; c < i; c = +t.add(c, a, o), d++)fa(h, c, f); return c !== i && \"ticks\" !== s.bounds && 1 !== d || fa(h, c, f), Object.keys(h).sort(((t, e) => t - e)).map((t => +t)) } getLabelForValue(t) { const e = this._adapter, i = this.options.time; return i.tooltipFormat ? e.format(t, i.tooltipFormat) : e.format(t, i.displayFormats.datetime) } _tickFormatFunction(t, e, i, s) { const n = this.options, o = n.time.displayFormats, a = this._unit, r = this._majorUnit, l = a && o[a], h = r && o[r], c = i[e], d = r && h && c && c.major, u = this._adapter.format(t, s || (d ? h : l)), f = n.ticks.callback; return f ? J(f, [u, e, i], this) : u } generateTickLabels(t) { let e, i, s; for (e = 0, i = t.length; e < i; ++e)s = t[e], s.label = this._tickFormatFunction(s.value, e, t) } getDecimalForValue(t) { return null === t ? NaN : (t - this.min) / (this.max - this.min) } getPixelForValue(t) { const e = this._offsets, i = this.getDecimalForValue(t); return this.getPixelForDecimal((e.start + i) * e.factor) } getValueForPixel(t) { const e = this._offsets, i = this.getDecimalForPixel(t) / e.factor - e.end; return this.min + i * (this.max - this.min) } _getLabelSize(t) { const e = this.options.ticks, i = this.ctx.measureText(t).width, s = jt(this.isHorizontal() ? e.maxRotation : e.minRotation), n = Math.cos(s), o = Math.sin(s), a = this._resolveTickFontOptions(0).size; return { w: i * n + a * o, h: i * o + a * n } } _getLabelCapacity(t) { const e = this.options.time, i = e.displayFormats, s = i[e.unit] || i.millisecond, n = this._tickFormatFunction(t, 0, ga(this, [t], this._majorUnit), s), o = this._getLabelSize(n), a = Math.floor(this.isHorizontal() ? this.width / o.w : this.height / o.h) - 1; return a > 0 ? a : 1 } getDataTimestamps() { let t, e, i = this._cache.data || []; if (i.length) return i; const s = this.getMatchingVisibleMetas(); if (this._normalized && s.length) return this._cache.data = s[0].controller.getAllParsedValues(this); for (t = 0, e = s.length; t < e; ++t)i = i.concat(s[t].controller.getAllParsedValues(this)); return this._cache.data = this.normalize(i) } getLabelTimestamps() { const t = this._cache.labels || []; let e, i; if (t.length) return t; const s = this.getLabels(); for (e = 0, i = s.length; e < i; ++e)t.push(da(this, s[e])); return this._cache.labels = this._normalized ? t : this.normalize(t) } normalize(t) { return Pt(t.sort(ca)) } } function ma(t, e, i) { let s, n, o, a, r = 0, l = t.length - 1; i ? (e >= t[r].pos && e <= t[l].pos && ({ lo: r, hi: l } = yt(t, \"pos\", e)), ({ pos: s, time: o } = t[r]), ({ pos: n, time: a } = t[l])) : (e >= t[r].time && e <= t[l].time && ({ lo: r, hi: l } = yt(t, \"time\", e)), ({ time: s, pos: o } = t[r]), ({ time: n, pos: a } = t[l])); const h = n - s; return h ? o + (a - o) * (e - s) / h : o } pa.id = \"time\", pa.defaults = { bounds: \"data\", adapters: {}, time: { parser: !1, unit: !1, round: !1, isoWeekday: !1, minUnit: \"millisecond\", displayFormats: {} }, ticks: { source: \"auto\", major: { enabled: !1 } } }; class xa extends pa { constructor(t) { super(t), this._table = [], this._minPos = void 0, this._tableRange = void 0 } initOffsets() { const t = this._getTimestampsForTable(), e = this._table = this.buildLookupTable(t); this._minPos = ma(e, this.min), this._tableRange = ma(e, this.max) - this._minPos, super.initOffsets(t) } buildLookupTable(t) { const { min: e, max: i } = this, s = [], n = []; let o, a, r, l, h; for (o = 0, a = t.length; o < a; ++o)l = t[o], l >= e && l <= i && s.push(l); if (s.length < 2) return [{ time: e, pos: 0 }, { time: i, pos: 1 }]; for (o = 0, a = s.length; o < a; ++o)h = s[o + 1], r = s[o - 1], l = s[o], Math.round((h + r) / 2) !== l && n.push({ time: l, pos: o / (a - 1) }); return n } _getTimestampsForTable() { let t = this._cache.all || []; if (t.length) return t; const e = this.getDataTimestamps(), i = this.getLabelTimestamps(); return t = e.length && i.length ? this.normalize(e.concat(i)) : e.length ? e : i, t = this._cache.all = t, t } getDecimalForValue(t) { return (ma(this._table, t) - this._minPos) / this._tableRange } getValueForPixel(t) { const e = this._offsets, i = this.getDecimalForPixel(t) / e.factor - e.end; return ma(this._table, i * this._tableRange + this._minPos, !0) } } xa.id = \"timeseries\", xa.defaults = pa.defaults; var ba = Object.freeze({ __proto__: null, CategoryScale: Xo, LinearScale: Go, LogarithmicScale: Jo, RadialLinearScale: ra, TimeScale: pa, TimeSeriesScale: xa }); return dn.register(Rn, ba, no, Yo), dn.helpers = { ...Yi }, dn._adapters = mn, dn.Animation = us, dn.Animations = gs, dn.animator = a, dn.controllers = Ws.controllers.items, dn.DatasetController = Ps, dn.Element = Ds, dn.elements = no, dn.Interaction = _e, dn.layouts = si, dn.platforms = hs, dn.Scale = Bs, dn.Ticks = Os, Object.assign(dn, Rn, ba, no, Yo, hs), dn.Chart = dn, \"undefined\" != typeof window && (window.Chart = dn), dn\r\n}));","/*!\r\n * imagesLoaded PACKAGED v4.1.4\r\n * JavaScript is all like \"You images are done yet or what?\"\r\n * MIT License\r\n */\r\n\r\n!function (e, t) { \"function\" == typeof define && define.amd ? define(\"ev-emitter/ev-emitter\", t) : \"object\" == typeof module && module.exports ? module.exports = t() : e.EvEmitter = t() }(\"undefined\" != typeof window ? window : this, function () { function e() { } var t = e.prototype; return t.on = function (e, t) { if (e && t) { var i = this._events = this._events || {}, n = i[e] = i[e] || []; return n.indexOf(t) == -1 && n.push(t), this } }, t.once = function (e, t) { if (e && t) { this.on(e, t); var i = this._onceEvents = this._onceEvents || {}, n = i[e] = i[e] || {}; return n[t] = !0, this } }, t.off = function (e, t) { var i = this._events && this._events[e]; if (i && i.length) { var n = i.indexOf(t); return n != -1 && i.splice(n, 1), this } }, t.emitEvent = function (e, t) { var i = this._events && this._events[e]; if (i && i.length) { i = i.slice(0), t = t || []; for (var n = this._onceEvents && this._onceEvents[e], o = 0; o < i.length; o++) { var r = i[o], s = n && n[r]; s && (this.off(e, r), delete n[r]), r.apply(this, t) } return this } }, t.allOff = function () { delete this._events, delete this._onceEvents }, e }), function (e, t) { \"use strict\"; \"function\" == typeof define && define.amd ? define([\"ev-emitter/ev-emitter\"], function (i) { return t(e, i) }) : \"object\" == typeof module && module.exports ? module.exports = t(e, require(\"ev-emitter\")) : e.imagesLoaded = t(e, e.EvEmitter) }(\"undefined\" != typeof window ? window : this, function (e, t) { function i(e, t) { for (var i in t) e[i] = t[i]; return e } function n(e) { if (Array.isArray(e)) return e; var t = \"object\" == typeof e && \"number\" == typeof e.length; return t ? d.call(e) : [e] } function o(e, t, r) { if (!(this instanceof o)) return new o(e, t, r); var s = e; return \"string\" == typeof e && (s = document.querySelectorAll(e)), s ? (this.elements = n(s), this.options = i({}, this.options), \"function\" == typeof t ? r = t : i(this.options, t), r && this.on(\"always\", r), this.getImages(), h && (this.jqDeferred = new h.Deferred), void setTimeout(this.check.bind(this))) : void a.error(\"Bad element for imagesLoaded \" + (s || e)) } function r(e) { this.img = e } function s(e, t) { this.url = e, this.element = t, this.img = new Image } var h = e.jQuery, a = e.console, d = Array.prototype.slice; o.prototype = Object.create(t.prototype), o.prototype.options = {}, o.prototype.getImages = function () { this.images = [], this.elements.forEach(this.addElementImages, this) }, o.prototype.addElementImages = function (e) { \"IMG\" == e.nodeName && this.addImage(e), this.options.background === !0 && this.addElementBackgroundImages(e); var t = e.nodeType; if (t && u[t]) { for (var i = e.querySelectorAll(\"img\"), n = 0; n < i.length; n++) { var o = i[n]; this.addImage(o) } if (\"string\" == typeof this.options.background) { var r = e.querySelectorAll(this.options.background); for (n = 0; n < r.length; n++) { var s = r[n]; this.addElementBackgroundImages(s) } } } }; var u = { 1: !0, 9: !0, 11: !0 }; return o.prototype.addElementBackgroundImages = function (e) { var t = getComputedStyle(e); if (t) for (var i = /url\\((['\"])?(.*?)\\1\\)/gi, n = i.exec(t.backgroundImage); null !== n;) { var o = n && n[2]; o && this.addBackground(o, e), n = i.exec(t.backgroundImage) } }, o.prototype.addImage = function (e) { var t = new r(e); this.images.push(t) }, o.prototype.addBackground = function (e, t) { var i = new s(e, t); this.images.push(i) }, o.prototype.check = function () { function e(e, i, n) { setTimeout(function () { t.progress(e, i, n) }) } var t = this; return this.progressedCount = 0, this.hasAnyBroken = !1, this.images.length ? void this.images.forEach(function (t) { t.once(\"progress\", e), t.check() }) : void this.complete() }, o.prototype.progress = function (e, t, i) { this.progressedCount++, this.hasAnyBroken = this.hasAnyBroken || !e.isLoaded, this.emitEvent(\"progress\", [this, e, t]), this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify(this, e), this.progressedCount == this.images.length && this.complete(), this.options.debug && a && a.log(\"progress: \" + i, e, t) }, o.prototype.complete = function () { var e = this.hasAnyBroken ? \"fail\" : \"done\"; if (this.isComplete = !0, this.emitEvent(e, [this]), this.emitEvent(\"always\", [this]), this.jqDeferred) { var t = this.hasAnyBroken ? \"reject\" : \"resolve\"; this.jqDeferred[t](this) } }, r.prototype = Object.create(t.prototype), r.prototype.check = function () { var e = this.getIsImageComplete(); return e ? void this.confirm(0 !== this.img.naturalWidth, \"naturalWidth\") : (this.proxyImage = new Image, this.proxyImage.addEventListener(\"load\", this), this.proxyImage.addEventListener(\"error\", this), this.img.addEventListener(\"load\", this), this.img.addEventListener(\"error\", this), void (this.proxyImage.src = this.img.src)) }, r.prototype.getIsImageComplete = function () { return this.img.complete && this.img.naturalWidth }, r.prototype.confirm = function (e, t) { this.isLoaded = e, this.emitEvent(\"progress\", [this, this.img, t]) }, r.prototype.handleEvent = function (e) { var t = \"on\" + e.type; this[t] && this[t](e) }, r.prototype.onload = function () { this.confirm(!0, \"onload\"), this.unbindEvents() }, r.prototype.onerror = function () { this.confirm(!1, \"onerror\"), this.unbindEvents() }, r.prototype.unbindEvents = function () { this.proxyImage.removeEventListener(\"load\", this), this.proxyImage.removeEventListener(\"error\", this), this.img.removeEventListener(\"load\", this), this.img.removeEventListener(\"error\", this) }, s.prototype = Object.create(r.prototype), s.prototype.check = function () { this.img.addEventListener(\"load\", this), this.img.addEventListener(\"error\", this), this.img.src = this.url; var e = this.getIsImageComplete(); e && (this.confirm(0 !== this.img.naturalWidth, \"naturalWidth\"), this.unbindEvents()) }, s.prototype.unbindEvents = function () { this.img.removeEventListener(\"load\", this), this.img.removeEventListener(\"error\", this) }, s.prototype.confirm = function (e, t) { this.isLoaded = e, this.emitEvent(\"progress\", [this, this.element, t]) }, o.makeJQueryPlugin = function (t) { t = t || e.jQuery, t && (h = t, h.fn.imagesLoaded = function (e, t) { var i = new o(this, e, t); return i.jqDeferred.promise(h(this)) }) }, o.makeJQueryPlugin(), o });","/*!\r\n * Flickity PACKAGED v2.2.0\r\n * Touch, responsive, flickable carousels\r\n *\r\n * Licensed GPLv3 for open source use\r\n * or Flickity Commercial License for commercial use\r\n *\r\n * https://flickity.metafizzy.co\r\n * Copyright 2015-2018 Metafizzy\r\n */\r\n\r\n/**\r\n * Bridget makes jQuery widgets\r\n * v2.0.1\r\n * MIT license\r\n */\r\n\r\n/* jshint browser: true, strict: true, undef: true, unused: true */\r\n\r\n( function( window, factory ) {\r\n // universal module definition\r\n /*jshint strict: false */ /* globals define, module, require */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'jquery-bridget/jquery-bridget',[ 'jquery' ], function( jQuery ) {\r\n return factory( window, jQuery );\r\n });\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('jquery')\r\n );\r\n } else {\r\n // browser global\r\n window.jQueryBridget = factory(\r\n window,\r\n window.jQuery\r\n );\r\n }\r\n\r\n}( window, function factory( window, jQuery ) {\r\n'use strict';\r\n\r\n// ----- utils ----- //\r\n\r\nvar arraySlice = Array.prototype.slice;\r\n\r\n// helper function for logging errors\r\n// $.error breaks jQuery chaining\r\nvar console = window.console;\r\nvar logError = typeof console == 'undefined' ? function() {} :\r\n function( message ) {\r\n console.error( message );\r\n };\r\n\r\n// ----- jQueryBridget ----- //\r\n\r\nfunction jQueryBridget( namespace, PluginClass, $ ) {\r\n $ = $ || jQuery || window.jQuery;\r\n if ( !$ ) {\r\n return;\r\n }\r\n\r\n // add option method -> $().plugin('option', {...})\r\n if ( !PluginClass.prototype.option ) {\r\n // option setter\r\n PluginClass.prototype.option = function( opts ) {\r\n // bail out if not an object\r\n if ( !$.isPlainObject( opts ) ){\r\n return;\r\n }\r\n this.options = $.extend( true, this.options, opts );\r\n };\r\n }\r\n\r\n // make jQuery plugin\r\n $.fn[ namespace ] = function( arg0 /*, arg1 */ ) {\r\n if ( typeof arg0 == 'string' ) {\r\n // method call $().plugin( 'methodName', { options } )\r\n // shift arguments by 1\r\n var args = arraySlice.call( arguments, 1 );\r\n return methodCall( this, arg0, args );\r\n }\r\n // just $().plugin({ options })\r\n plainCall( this, arg0 );\r\n return this;\r\n };\r\n\r\n // $().plugin('methodName')\r\n function methodCall( $elems, methodName, args ) {\r\n var returnValue;\r\n var pluginMethodStr = '$().' + namespace + '(\"' + methodName + '\")';\r\n\r\n $elems.each( function( i, elem ) {\r\n // get instance\r\n var instance = $.data( elem, namespace );\r\n if ( !instance ) {\r\n logError( namespace + ' not initialized. Cannot call methods, i.e. ' +\r\n pluginMethodStr );\r\n return;\r\n }\r\n\r\n var method = instance[ methodName ];\r\n if ( !method || methodName.charAt(0) == '_' ) {\r\n logError( pluginMethodStr + ' is not a valid method' );\r\n return;\r\n }\r\n\r\n // apply method, get return value\r\n var value = method.apply( instance, args );\r\n // set return value if value is returned, use only first value\r\n returnValue = returnValue === undefined ? value : returnValue;\r\n });\r\n\r\n return returnValue !== undefined ? returnValue : $elems;\r\n }\r\n\r\n function plainCall( $elems, options ) {\r\n $elems.each( function( i, elem ) {\r\n var instance = $.data( elem, namespace );\r\n if ( instance ) {\r\n // set options & init\r\n instance.option( options );\r\n instance._init();\r\n } else {\r\n // initialize new instance\r\n instance = new PluginClass( elem, options );\r\n $.data( elem, namespace, instance );\r\n }\r\n });\r\n }\r\n\r\n updateJQuery( $ );\r\n\r\n}\r\n\r\n// ----- updateJQuery ----- //\r\n\r\n// set $.bridget for v1 backwards compatibility\r\nfunction updateJQuery( $ ) {\r\n if ( !$ || ( $ && $.bridget ) ) {\r\n return;\r\n }\r\n $.bridget = jQueryBridget;\r\n}\r\n\r\nupdateJQuery( jQuery || window.jQuery );\r\n\r\n// ----- ----- //\r\n\r\nreturn jQueryBridget;\r\n\r\n}));\r\n\r\n/**\r\n * EvEmitter v1.1.0\r\n * Lil' event emitter\r\n * MIT License\r\n */\r\n\r\n/* jshint unused: true, undef: true, strict: true */\r\n\r\n( function( global, factory ) {\r\n // universal module definition\r\n /* jshint strict: false */ /* globals define, module, window */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD - RequireJS\r\n define( 'ev-emitter/ev-emitter',factory );\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS - Browserify, Webpack\r\n module.exports = factory();\r\n } else {\r\n // Browser globals\r\n global.EvEmitter = factory();\r\n }\r\n\r\n}( typeof window != 'undefined' ? window : this, function() {\r\n\r\n\r\n\r\nfunction EvEmitter() {}\r\n\r\nvar proto = EvEmitter.prototype;\r\n\r\nproto.on = function( eventName, listener ) {\r\n if ( !eventName || !listener ) {\r\n return;\r\n }\r\n // set events hash\r\n var events = this._events = this._events || {};\r\n // set listeners array\r\n var listeners = events[ eventName ] = events[ eventName ] || [];\r\n // only add once\r\n if ( listeners.indexOf( listener ) == -1 ) {\r\n listeners.push( listener );\r\n }\r\n\r\n return this;\r\n};\r\n\r\nproto.once = function( eventName, listener ) {\r\n if ( !eventName || !listener ) {\r\n return;\r\n }\r\n // add event\r\n this.on( eventName, listener );\r\n // set once flag\r\n // set onceEvents hash\r\n var onceEvents = this._onceEvents = this._onceEvents || {};\r\n // set onceListeners object\r\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\r\n // set flag\r\n onceListeners[ listener ] = true;\r\n\r\n return this;\r\n};\r\n\r\nproto.off = function( eventName, listener ) {\r\n var listeners = this._events && this._events[ eventName ];\r\n if ( !listeners || !listeners.length ) {\r\n return;\r\n }\r\n var index = listeners.indexOf( listener );\r\n if ( index != -1 ) {\r\n listeners.splice( index, 1 );\r\n }\r\n\r\n return this;\r\n};\r\n\r\nproto.emitEvent = function( eventName, args ) {\r\n var listeners = this._events && this._events[ eventName ];\r\n if ( !listeners || !listeners.length ) {\r\n return;\r\n }\r\n // copy over to avoid interference if .off() in listener\r\n listeners = listeners.slice(0);\r\n args = args || [];\r\n // once stuff\r\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\r\n\r\n for ( var i=0; i < listeners.length; i++ ) {\r\n var listener = listeners[i]\r\n var isOnce = onceListeners && onceListeners[ listener ];\r\n if ( isOnce ) {\r\n // remove listener\r\n // remove before trigger to prevent recursion\r\n this.off( eventName, listener );\r\n // unset once flag\r\n delete onceListeners[ listener ];\r\n }\r\n // trigger listener\r\n listener.apply( this, args );\r\n }\r\n\r\n return this;\r\n};\r\n\r\nproto.allOff = function() {\r\n delete this._events;\r\n delete this._onceEvents;\r\n};\r\n\r\nreturn EvEmitter;\r\n\r\n}));\r\n\r\n/*!\r\n * getSize v2.0.3\r\n * measure size of elements\r\n * MIT license\r\n */\r\n\r\n/* jshint browser: true, strict: true, undef: true, unused: true */\r\n/* globals console: false */\r\n\r\n( function( window, factory ) {\r\n /* jshint strict: false */ /* globals define, module */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'get-size/get-size',factory );\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory();\r\n } else {\r\n // browser global\r\n window.getSize = factory();\r\n }\r\n\r\n})( window, function factory() {\r\n'use strict';\r\n\r\n// -------------------------- helpers -------------------------- //\r\n\r\n// get a number from a string, not a percentage\r\nfunction getStyleSize( value ) {\r\n var num = parseFloat( value );\r\n // not a percent like '100%', and a number\r\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\r\n return isValid && num;\r\n}\r\n\r\nfunction noop() {}\r\n\r\nvar logError = typeof console == 'undefined' ? noop :\r\n function( message ) {\r\n console.error( message );\r\n };\r\n\r\n// -------------------------- measurements -------------------------- //\r\n\r\nvar measurements = [\r\n 'paddingLeft',\r\n 'paddingRight',\r\n 'paddingTop',\r\n 'paddingBottom',\r\n 'marginLeft',\r\n 'marginRight',\r\n 'marginTop',\r\n 'marginBottom',\r\n 'borderLeftWidth',\r\n 'borderRightWidth',\r\n 'borderTopWidth',\r\n 'borderBottomWidth'\r\n];\r\n\r\nvar measurementsLength = measurements.length;\r\n\r\nfunction getZeroSize() {\r\n var size = {\r\n width: 0,\r\n height: 0,\r\n innerWidth: 0,\r\n innerHeight: 0,\r\n outerWidth: 0,\r\n outerHeight: 0\r\n };\r\n for ( var i=0; i < measurementsLength; i++ ) {\r\n var measurement = measurements[i];\r\n size[ measurement ] = 0;\r\n }\r\n return size;\r\n}\r\n\r\n// -------------------------- getStyle -------------------------- //\r\n\r\n/**\r\n * getStyle, get style of element, check for Firefox bug\r\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\r\n */\r\nfunction getStyle( elem ) {\r\n var style = getComputedStyle( elem );\r\n if ( !style ) {\r\n logError( 'Style returned ' + style +\r\n '. Are you running this code in a hidden iframe on Firefox? ' +\r\n 'See https://bit.ly/getsizebug1' );\r\n }\r\n return style;\r\n}\r\n\r\n// -------------------------- setup -------------------------- //\r\n\r\nvar isSetup = false;\r\n\r\nvar isBoxSizeOuter;\r\n\r\n/**\r\n * setup\r\n * check isBoxSizerOuter\r\n * do on first getSize() rather than on page load for Firefox bug\r\n */\r\nfunction setup() {\r\n // setup once\r\n if ( isSetup ) {\r\n return;\r\n }\r\n isSetup = true;\r\n\r\n // -------------------------- box sizing -------------------------- //\r\n\r\n /**\r\n * Chrome & Safari measure the outer-width on style.width on border-box elems\r\n * IE11 & Firefox<29 measures the inner-width\r\n */\r\n var div = document.createElement('div');\r\n div.style.width = '200px';\r\n div.style.padding = '1px 2px 3px 4px';\r\n div.style.borderStyle = 'solid';\r\n div.style.borderWidth = '1px 2px 3px 4px';\r\n div.style.boxSizing = 'border-box';\r\n\r\n var body = document.body || document.documentElement;\r\n body.appendChild( div );\r\n var style = getStyle( div );\r\n // round value for browser zoom. desandro/masonry#928\r\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\r\n getSize.isBoxSizeOuter = isBoxSizeOuter;\r\n\r\n body.removeChild( div );\r\n}\r\n\r\n// -------------------------- getSize -------------------------- //\r\n\r\nfunction getSize( elem ) {\r\n setup();\r\n\r\n // use querySeletor if elem is string\r\n if ( typeof elem == 'string' ) {\r\n elem = document.querySelector( elem );\r\n }\r\n\r\n // do not proceed on non-objects\r\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\r\n return;\r\n }\r\n\r\n var style = getStyle( elem );\r\n\r\n // if hidden, everything is 0\r\n if ( style.display == 'none' ) {\r\n return getZeroSize();\r\n }\r\n\r\n var size = {};\r\n size.width = elem.offsetWidth;\r\n size.height = elem.offsetHeight;\r\n\r\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\r\n\r\n // get all measurements\r\n for ( var i=0; i < measurementsLength; i++ ) {\r\n var measurement = measurements[i];\r\n var value = style[ measurement ];\r\n var num = parseFloat( value );\r\n // any 'auto', 'medium' value will be 0\r\n size[ measurement ] = !isNaN( num ) ? num : 0;\r\n }\r\n\r\n var paddingWidth = size.paddingLeft + size.paddingRight;\r\n var paddingHeight = size.paddingTop + size.paddingBottom;\r\n var marginWidth = size.marginLeft + size.marginRight;\r\n var marginHeight = size.marginTop + size.marginBottom;\r\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\r\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\r\n\r\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\r\n\r\n // overwrite width and height if we can get it from style\r\n var styleWidth = getStyleSize( style.width );\r\n if ( styleWidth !== false ) {\r\n size.width = styleWidth +\r\n // add padding and border unless it's already including it\r\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\r\n }\r\n\r\n var styleHeight = getStyleSize( style.height );\r\n if ( styleHeight !== false ) {\r\n size.height = styleHeight +\r\n // add padding and border unless it's already including it\r\n ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\r\n }\r\n\r\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\r\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\r\n\r\n size.outerWidth = size.width + marginWidth;\r\n size.outerHeight = size.height + marginHeight;\r\n\r\n return size;\r\n}\r\n\r\nreturn getSize;\r\n\r\n});\r\n\r\n/**\r\n * matchesSelector v2.0.2\r\n * matchesSelector( element, '.selector' )\r\n * MIT license\r\n */\r\n\r\n/*jshint browser: true, strict: true, undef: true, unused: true */\r\n\r\n( function( window, factory ) {\r\n /*global define: false, module: false */\r\n 'use strict';\r\n // universal module definition\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'desandro-matches-selector/matches-selector',factory );\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory();\r\n } else {\r\n // browser global\r\n window.matchesSelector = factory();\r\n }\r\n\r\n}( window, function factory() {\r\n 'use strict';\r\n\r\n var matchesMethod = ( function() {\r\n var ElemProto = window.Element.prototype;\r\n // check for the standard method name first\r\n if ( ElemProto.matches ) {\r\n return 'matches';\r\n }\r\n // check un-prefixed\r\n if ( ElemProto.matchesSelector ) {\r\n return 'matchesSelector';\r\n }\r\n // check vendor prefixes\r\n var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];\r\n\r\n for ( var i=0; i < prefixes.length; i++ ) {\r\n var prefix = prefixes[i];\r\n var method = prefix + 'MatchesSelector';\r\n if ( ElemProto[ method ] ) {\r\n return method;\r\n }\r\n }\r\n })();\r\n\r\n return function matchesSelector( elem, selector ) {\r\n return elem[ matchesMethod ]( selector );\r\n };\r\n\r\n}));\r\n\r\n/**\r\n * Fizzy UI utils v2.0.7\r\n * MIT license\r\n */\r\n\r\n/*jshint browser: true, undef: true, unused: true, strict: true */\r\n\r\n( function( window, factory ) {\r\n // universal module definition\r\n /*jshint strict: false */ /*globals define, module, require */\r\n\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'fizzy-ui-utils/utils',[\r\n 'desandro-matches-selector/matches-selector'\r\n ], function( matchesSelector ) {\r\n return factory( window, matchesSelector );\r\n });\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('desandro-matches-selector')\r\n );\r\n } else {\r\n // browser global\r\n window.fizzyUIUtils = factory(\r\n window,\r\n window.matchesSelector\r\n );\r\n }\r\n\r\n}( window, function factory( window, matchesSelector ) {\r\n\r\n\r\n\r\nvar utils = {};\r\n\r\n// ----- extend ----- //\r\n\r\n// extends objects\r\nutils.extend = function( a, b ) {\r\n for ( var prop in b ) {\r\n a[ prop ] = b[ prop ];\r\n }\r\n return a;\r\n};\r\n\r\n// ----- modulo ----- //\r\n\r\nutils.modulo = function( num, div ) {\r\n return ( ( num % div ) + div ) % div;\r\n};\r\n\r\n// ----- makeArray ----- //\r\n\r\nvar arraySlice = Array.prototype.slice;\r\n\r\n// turn element or nodeList into an array\r\nutils.makeArray = function( obj ) {\r\n if ( Array.isArray( obj ) ) {\r\n // use object if already an array\r\n return obj;\r\n }\r\n // return empty array if undefined or null. #6\r\n if ( obj === null || obj === undefined ) {\r\n return [];\r\n }\r\n\r\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\r\n if ( isArrayLike ) {\r\n // convert nodeList to array\r\n return arraySlice.call( obj );\r\n }\r\n\r\n // array of single index\r\n return [ obj ];\r\n};\r\n\r\n// ----- removeFrom ----- //\r\n\r\nutils.removeFrom = function( ary, obj ) {\r\n var index = ary.indexOf( obj );\r\n if ( index != -1 ) {\r\n ary.splice( index, 1 );\r\n }\r\n};\r\n\r\n// ----- getParent ----- //\r\n\r\nutils.getParent = function( elem, selector ) {\r\n while ( elem.parentNode && elem != document.body ) {\r\n elem = elem.parentNode;\r\n if ( matchesSelector( elem, selector ) ) {\r\n return elem;\r\n }\r\n }\r\n};\r\n\r\n// ----- getQueryElement ----- //\r\n\r\n// use element as selector string\r\nutils.getQueryElement = function( elem ) {\r\n if ( typeof elem == 'string' ) {\r\n return document.querySelector( elem );\r\n }\r\n return elem;\r\n};\r\n\r\n// ----- handleEvent ----- //\r\n\r\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\r\nutils.handleEvent = function( event ) {\r\n var method = 'on' + event.type;\r\n if ( this[ method ] ) {\r\n this[ method ]( event );\r\n }\r\n};\r\n\r\n// ----- filterFindElements ----- //\r\n\r\nutils.filterFindElements = function( elems, selector ) {\r\n // make array of elems\r\n elems = utils.makeArray( elems );\r\n var ffElems = [];\r\n\r\n elems.forEach( function( elem ) {\r\n // check that elem is an actual element\r\n if ( !( elem instanceof HTMLElement ) ) {\r\n return;\r\n }\r\n // add elem if no selector\r\n if ( !selector ) {\r\n ffElems.push( elem );\r\n return;\r\n }\r\n // filter & find items if we have a selector\r\n // filter\r\n if ( matchesSelector( elem, selector ) ) {\r\n ffElems.push( elem );\r\n }\r\n // find children\r\n var childElems = elem.querySelectorAll( selector );\r\n // concat childElems to filterFound array\r\n for ( var i=0; i < childElems.length; i++ ) {\r\n ffElems.push( childElems[i] );\r\n }\r\n });\r\n\r\n return ffElems;\r\n};\r\n\r\n// ----- debounceMethod ----- //\r\n\r\nutils.debounceMethod = function( _class, methodName, threshold ) {\r\n threshold = threshold || 100;\r\n // original method\r\n var method = _class.prototype[ methodName ];\r\n var timeoutName = methodName + 'Timeout';\r\n\r\n _class.prototype[ methodName ] = function() {\r\n var timeout = this[ timeoutName ];\r\n clearTimeout( timeout );\r\n\r\n var args = arguments;\r\n var _this = this;\r\n this[ timeoutName ] = setTimeout( function() {\r\n method.apply( _this, args );\r\n delete _this[ timeoutName ];\r\n }, threshold );\r\n };\r\n};\r\n\r\n// ----- docReady ----- //\r\n\r\nutils.docReady = function( callback ) {\r\n var readyState = document.readyState;\r\n if ( readyState == 'complete' || readyState == 'interactive' ) {\r\n // do async to allow for other scripts to run. metafizzy/flickity#441\r\n setTimeout( callback );\r\n } else {\r\n document.addEventListener( 'DOMContentLoaded', callback );\r\n }\r\n};\r\n\r\n// ----- htmlInit ----- //\r\n\r\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\r\nutils.toDashed = function( str ) {\r\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\r\n return $1 + '-' + $2;\r\n }).toLowerCase();\r\n};\r\n\r\nvar console = window.console;\r\n/**\r\n * allow user to initialize classes via [data-namespace] or .js-namespace class\r\n * htmlInit( Widget, 'widgetName' )\r\n * options are parsed from data-namespace-options\r\n */\r\nutils.htmlInit = function( WidgetClass, namespace ) {\r\n utils.docReady( function() {\r\n var dashedNamespace = utils.toDashed( namespace );\r\n var dataAttr = 'data-' + dashedNamespace;\r\n var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );\r\n var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );\r\n var elems = utils.makeArray( dataAttrElems )\r\n .concat( utils.makeArray( jsDashElems ) );\r\n var dataOptionsAttr = dataAttr + '-options';\r\n var jQuery = window.jQuery;\r\n\r\n elems.forEach( function( elem ) {\r\n var attr = elem.getAttribute( dataAttr ) ||\r\n elem.getAttribute( dataOptionsAttr );\r\n var options;\r\n try {\r\n options = attr && JSON.parse( attr );\r\n } catch ( error ) {\r\n // log error, do not initialize\r\n if ( console ) {\r\n console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +\r\n ': ' + error );\r\n }\r\n return;\r\n }\r\n // initialize\r\n var instance = new WidgetClass( elem, options );\r\n // make available via $().data('namespace')\r\n if ( jQuery ) {\r\n jQuery.data( elem, namespace, instance );\r\n }\r\n });\r\n\r\n });\r\n};\r\n\r\n// ----- ----- //\r\n\r\nreturn utils;\r\n\r\n}));\r\n\r\n// Flickity.Cell\r\n( function( window, factory ) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'flickity/js/cell',[\r\n 'get-size/get-size'\r\n ], function( getSize ) {\r\n return factory( window, getSize );\r\n });\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('get-size')\r\n );\r\n } else {\r\n // browser global\r\n window.Flickity = window.Flickity || {};\r\n window.Flickity.Cell = factory(\r\n window,\r\n window.getSize\r\n );\r\n }\r\n\r\n}( window, function factory( window, getSize ) {\r\n\r\n\r\n\r\nfunction Cell( elem, parent ) {\r\n this.element = elem;\r\n this.parent = parent;\r\n\r\n this.create();\r\n}\r\n\r\nvar proto = Cell.prototype;\r\n\r\nproto.create = function() {\r\n this.element.style.position = 'absolute';\r\n this.element.setAttribute( 'aria-hidden', 'true' );\r\n this.x = 0;\r\n this.shift = 0;\r\n};\r\n\r\nproto.destroy = function() {\r\n // reset style\r\n this.unselect();\r\n this.element.style.position = '';\r\n var side = this.parent.originSide;\r\n this.element.style[ side ] = '';\r\n};\r\n\r\nproto.getSize = function() {\r\n this.size = getSize( this.element );\r\n};\r\n\r\nproto.setPosition = function( x ) {\r\n this.x = x;\r\n this.updateTarget();\r\n this.renderPosition( x );\r\n};\r\n\r\n// setDefaultTarget v1 method, backwards compatibility, remove in v3\r\nproto.updateTarget = proto.setDefaultTarget = function() {\r\n var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\r\n this.target = this.x + this.size[ marginProperty ] +\r\n this.size.width * this.parent.cellAlign;\r\n};\r\n\r\nproto.renderPosition = function( x ) {\r\n // render position of cell with in slider\r\n var side = this.parent.originSide;\r\n this.element.style[ side ] = this.parent.getPositionValue( x );\r\n};\r\n\r\nproto.select = function() {\r\n this.element.classList.add('is-selected');\r\n this.element.removeAttribute('aria-hidden');\r\n};\r\n\r\nproto.unselect = function() {\r\n this.element.classList.remove('is-selected');\r\n this.element.setAttribute( 'aria-hidden', 'true' );\r\n};\r\n\r\n/**\r\n * @param {Integer} factor - 0, 1, or -1\r\n**/\r\nproto.wrapShift = function( shift ) {\r\n this.shift = shift;\r\n this.renderPosition( this.x + this.parent.slideableWidth * shift );\r\n};\r\n\r\nproto.remove = function() {\r\n this.element.parentNode.removeChild( this.element );\r\n};\r\n\r\nreturn Cell;\r\n\r\n}));\r\n\r\n// slide\r\n( function( window, factory ) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'flickity/js/slide',factory );\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory();\r\n } else {\r\n // browser global\r\n window.Flickity = window.Flickity || {};\r\n window.Flickity.Slide = factory();\r\n }\r\n\r\n}( window, function factory() {\r\n'use strict';\r\n\r\nfunction Slide( parent ) {\r\n this.parent = parent;\r\n this.isOriginLeft = parent.originSide == 'left';\r\n this.cells = [];\r\n this.outerWidth = 0;\r\n this.height = 0;\r\n}\r\n\r\nvar proto = Slide.prototype;\r\n\r\nproto.addCell = function( cell ) {\r\n this.cells.push( cell );\r\n this.outerWidth += cell.size.outerWidth;\r\n this.height = Math.max( cell.size.outerHeight, this.height );\r\n // first cell stuff\r\n if ( this.cells.length == 1 ) {\r\n this.x = cell.x; // x comes from first cell\r\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\r\n this.firstMargin = cell.size[ beginMargin ];\r\n }\r\n};\r\n\r\nproto.updateTarget = function() {\r\n var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\r\n var lastCell = this.getLastCell();\r\n var lastMargin = lastCell ? lastCell.size[ endMargin ] : 0;\r\n var slideWidth = this.outerWidth - ( this.firstMargin + lastMargin );\r\n this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\r\n};\r\n\r\nproto.getLastCell = function() {\r\n return this.cells[ this.cells.length - 1 ];\r\n};\r\n\r\nproto.select = function() {\r\n this.cells.forEach( function( cell ) {\r\n cell.select();\r\n });\r\n};\r\n\r\nproto.unselect = function() {\r\n this.cells.forEach( function( cell ) {\r\n cell.unselect();\r\n });\r\n};\r\n\r\nproto.getCellElements = function() {\r\n return this.cells.map( function( cell ) {\r\n return cell.element;\r\n });\r\n};\r\n\r\nreturn Slide;\r\n\r\n}));\r\n\r\n// animate\r\n( function( window, factory ) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'flickity/js/animate',[\r\n 'fizzy-ui-utils/utils'\r\n ], function( utils ) {\r\n return factory( window, utils );\r\n });\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('fizzy-ui-utils')\r\n );\r\n } else {\r\n // browser global\r\n window.Flickity = window.Flickity || {};\r\n window.Flickity.animatePrototype = factory(\r\n window,\r\n window.fizzyUIUtils\r\n );\r\n }\r\n\r\n}( window, function factory( window, utils ) {\r\n\r\n\r\n\r\n// -------------------------- animate -------------------------- //\r\n\r\nvar proto = {};\r\n\r\nproto.startAnimation = function() {\r\n if ( this.isAnimating ) {\r\n return;\r\n }\r\n\r\n this.isAnimating = true;\r\n this.restingFrames = 0;\r\n this.animate();\r\n};\r\n\r\nproto.animate = function() {\r\n this.applyDragForce();\r\n this.applySelectedAttraction();\r\n\r\n var previousX = this.x;\r\n\r\n this.integratePhysics();\r\n this.positionSlider();\r\n this.settle( previousX );\r\n // animate next frame\r\n if ( this.isAnimating ) {\r\n var _this = this;\r\n requestAnimationFrame( function animateFrame() {\r\n _this.animate();\r\n });\r\n }\r\n};\r\n\r\nproto.positionSlider = function() {\r\n var x = this.x;\r\n // wrap position around\r\n if ( this.options.wrapAround && this.cells.length > 1 ) {\r\n x = utils.modulo( x, this.slideableWidth );\r\n x = x - this.slideableWidth;\r\n this.shiftWrapCells( x );\r\n }\r\n\r\n this.setTranslateX( x, this.isAnimating );\r\n this.dispatchScrollEvent();\r\n};\r\n\r\nproto.setTranslateX = function( x, is3d ) {\r\n x += this.cursorPosition;\r\n // reverse if right-to-left and using transform\r\n x = this.options.rightToLeft ? -x : x;\r\n var translateX = this.getPositionValue( x );\r\n // use 3D tranforms for hardware acceleration on iOS\r\n // but use 2D when settled, for better font-rendering\r\n this.slider.style.transform = is3d ?\r\n 'translate3d(' + translateX + ',0,0)' : 'translateX(' + translateX + ')';\r\n};\r\n\r\nproto.dispatchScrollEvent = function() {\r\n var firstSlide = this.slides[0];\r\n if ( !firstSlide ) {\r\n return;\r\n }\r\n var positionX = -this.x - firstSlide.target;\r\n var progress = positionX / this.slidesWidth;\r\n this.dispatchEvent( 'scroll', null, [ progress, positionX ] );\r\n};\r\n\r\nproto.positionSliderAtSelected = function() {\r\n if ( !this.cells.length ) {\r\n return;\r\n }\r\n this.x = -this.selectedSlide.target;\r\n this.velocity = 0; // stop wobble\r\n this.positionSlider();\r\n};\r\n\r\nproto.getPositionValue = function( position ) {\r\n if ( this.options.percentPosition ) {\r\n // percent position, round to 2 digits, like 12.34%\r\n return ( Math.round( ( position / this.size.innerWidth ) * 10000 ) * 0.01 )+ '%';\r\n } else {\r\n // pixel positioning\r\n return Math.round( position ) + 'px';\r\n }\r\n};\r\n\r\nproto.settle = function( previousX ) {\r\n // keep track of frames where x hasn't moved\r\n if ( !this.isPointerDown && Math.round( this.x * 100 ) == Math.round( previousX * 100 ) ) {\r\n this.restingFrames++;\r\n }\r\n // stop animating if resting for 3 or more frames\r\n if ( this.restingFrames > 2 ) {\r\n this.isAnimating = false;\r\n delete this.isFreeScrolling;\r\n // render position with translateX when settled\r\n this.positionSlider();\r\n this.dispatchEvent( 'settle', null, [ this.selectedIndex ] );\r\n }\r\n};\r\n\r\nproto.shiftWrapCells = function( x ) {\r\n // shift before cells\r\n var beforeGap = this.cursorPosition + x;\r\n this._shiftCells( this.beforeShiftCells, beforeGap, -1 );\r\n // shift after cells\r\n var afterGap = this.size.innerWidth - ( x + this.slideableWidth + this.cursorPosition );\r\n this._shiftCells( this.afterShiftCells, afterGap, 1 );\r\n};\r\n\r\nproto._shiftCells = function( cells, gap, shift ) {\r\n for ( var i=0; i < cells.length; i++ ) {\r\n var cell = cells[i];\r\n var cellShift = gap > 0 ? shift : 0;\r\n cell.wrapShift( cellShift );\r\n gap -= cell.size.outerWidth;\r\n }\r\n};\r\n\r\nproto._unshiftCells = function( cells ) {\r\n if ( !cells || !cells.length ) {\r\n return;\r\n }\r\n for ( var i=0; i < cells.length; i++ ) {\r\n cells[i].wrapShift( 0 );\r\n }\r\n};\r\n\r\n// -------------------------- physics -------------------------- //\r\n\r\nproto.integratePhysics = function() {\r\n this.x += this.velocity;\r\n this.velocity *= this.getFrictionFactor();\r\n};\r\n\r\nproto.applyForce = function( force ) {\r\n this.velocity += force;\r\n};\r\n\r\nproto.getFrictionFactor = function() {\r\n return 1 - this.options[ this.isFreeScrolling ? 'freeScrollFriction' : 'friction' ];\r\n};\r\n\r\nproto.getRestingPosition = function() {\r\n // my thanks to Steven Wittens, who simplified this math greatly\r\n return this.x + this.velocity / ( 1 - this.getFrictionFactor() );\r\n};\r\n\r\nproto.applyDragForce = function() {\r\n if ( !this.isDraggable || !this.isPointerDown ) {\r\n return;\r\n }\r\n // change the position to drag position by applying force\r\n var dragVelocity = this.dragX - this.x;\r\n var dragForce = dragVelocity - this.velocity;\r\n this.applyForce( dragForce );\r\n};\r\n\r\nproto.applySelectedAttraction = function() {\r\n // do not attract if pointer down or no slides\r\n var dragDown = this.isDraggable && this.isPointerDown;\r\n if ( dragDown || this.isFreeScrolling || !this.slides.length ) {\r\n return;\r\n }\r\n var distance = this.selectedSlide.target * -1 - this.x;\r\n var force = distance * this.options.selectedAttraction;\r\n this.applyForce( force );\r\n};\r\n\r\nreturn proto;\r\n\r\n}));\r\n\r\n// Flickity main\r\n( function( window, factory ) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'flickity/js/flickity',[\r\n 'ev-emitter/ev-emitter',\r\n 'get-size/get-size',\r\n 'fizzy-ui-utils/utils',\r\n './cell',\r\n './slide',\r\n './animate'\r\n ], function( EvEmitter, getSize, utils, Cell, Slide, animatePrototype ) {\r\n return factory( window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype );\r\n });\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('ev-emitter'),\r\n require('get-size'),\r\n require('fizzy-ui-utils'),\r\n require('./cell'),\r\n require('./slide'),\r\n require('./animate')\r\n );\r\n } else {\r\n // browser global\r\n var _Flickity = window.Flickity;\r\n\r\n window.Flickity = factory(\r\n window,\r\n window.EvEmitter,\r\n window.getSize,\r\n window.fizzyUIUtils,\r\n _Flickity.Cell,\r\n _Flickity.Slide,\r\n _Flickity.animatePrototype\r\n );\r\n }\r\n\r\n}( window, function factory( window, EvEmitter, getSize,\r\n utils, Cell, Slide, animatePrototype ) {\r\n\r\n\r\n\r\n// vars\r\nvar jQuery = window.jQuery;\r\nvar getComputedStyle = window.getComputedStyle;\r\nvar console = window.console;\r\n\r\nfunction moveElements( elems, toElem ) {\r\n elems = utils.makeArray( elems );\r\n while ( elems.length ) {\r\n toElem.appendChild( elems.shift() );\r\n }\r\n}\r\n\r\n// -------------------------- Flickity -------------------------- //\r\n\r\n// globally unique identifiers\r\nvar GUID = 0;\r\n// internal store of all Flickity intances\r\nvar instances = {};\r\n\r\nfunction Flickity( element, options ) {\r\n var queryElement = utils.getQueryElement( element );\r\n if ( !queryElement ) {\r\n if ( console ) {\r\n console.error( 'Bad element for Flickity: ' + ( queryElement || element ) );\r\n }\r\n return;\r\n }\r\n this.element = queryElement;\r\n // do not initialize twice on same element\r\n if ( this.element.flickityGUID ) {\r\n var instance = instances[ this.element.flickityGUID ];\r\n instance.option( options );\r\n return instance;\r\n }\r\n\r\n // add jQuery\r\n if ( jQuery ) {\r\n this.$element = jQuery( this.element );\r\n }\r\n // options\r\n this.options = utils.extend( {}, this.constructor.defaults );\r\n this.option( options );\r\n\r\n // kick things off\r\n this._create();\r\n}\r\n\r\nFlickity.defaults = {\r\n accessibility: true,\r\n // adaptiveHeight: false,\r\n cellAlign: 'center',\r\n // cellSelector: undefined,\r\n // contain: false,\r\n freeScrollFriction: 0.075, // friction when free-scrolling\r\n friction: 0.28, // friction when selecting\r\n namespaceJQueryEvents: true,\r\n // initialIndex: 0,\r\n percentPosition: true,\r\n resize: true,\r\n selectedAttraction: 0.025,\r\n setGallerySize: true\r\n // watchCSS: false,\r\n // wrapAround: false\r\n};\r\n\r\n// hash of methods triggered on _create()\r\nFlickity.createMethods = [];\r\n\r\nvar proto = Flickity.prototype;\r\n// inherit EventEmitter\r\nutils.extend( proto, EvEmitter.prototype );\r\n\r\nproto._create = function() {\r\n // add id for Flickity.data\r\n var id = this.guid = ++GUID;\r\n this.element.flickityGUID = id; // expando\r\n instances[ id ] = this; // associate via id\r\n // initial properties\r\n this.selectedIndex = 0;\r\n // how many frames slider has been in same position\r\n this.restingFrames = 0;\r\n // initial physics properties\r\n this.x = 0;\r\n this.velocity = 0;\r\n this.originSide = this.options.rightToLeft ? 'right' : 'left';\r\n // create viewport & slider\r\n this.viewport = document.createElement('div');\r\n this.viewport.className = 'flickity-viewport';\r\n this._createSlider();\r\n\r\n if ( this.options.resize || this.options.watchCSS ) {\r\n window.addEventListener( 'resize', this );\r\n }\r\n\r\n // add listeners from on option\r\n for ( var eventName in this.options.on ) {\r\n var listener = this.options.on[ eventName ];\r\n this.on( eventName, listener );\r\n }\r\n\r\n Flickity.createMethods.forEach( function( method ) {\r\n this[ method ]();\r\n }, this );\r\n\r\n if ( this.options.watchCSS ) {\r\n this.watchCSS();\r\n } else {\r\n this.activate();\r\n }\r\n\r\n};\r\n\r\n/**\r\n * set options\r\n * @param {Object} opts\r\n */\r\nproto.option = function( opts ) {\r\n utils.extend( this.options, opts );\r\n};\r\n\r\nproto.activate = function() {\r\n if ( this.isActive ) {\r\n return;\r\n }\r\n this.isActive = true;\r\n this.element.classList.add('flickity-enabled');\r\n if ( this.options.rightToLeft ) {\r\n this.element.classList.add('flickity-rtl');\r\n }\r\n\r\n this.getSize();\r\n // move initial cell elements so they can be loaded as cells\r\n var cellElems = this._filterFindCellElements( this.element.children );\r\n moveElements( cellElems, this.slider );\r\n this.viewport.appendChild( this.slider );\r\n this.element.appendChild( this.viewport );\r\n // get cells from children\r\n this.reloadCells();\r\n\r\n if ( this.options.accessibility ) {\r\n // allow element to focusable\r\n this.element.tabIndex = 0;\r\n // listen for key presses\r\n this.element.addEventListener( 'keydown', this );\r\n }\r\n\r\n this.emitEvent('activate');\r\n this.selectInitialIndex();\r\n // flag for initial activation, for using initialIndex\r\n this.isInitActivated = true;\r\n // ready event. #493\r\n this.dispatchEvent('ready');\r\n};\r\n\r\n// slider positions the cells\r\nproto._createSlider = function() {\r\n // slider element does all the positioning\r\n var slider = document.createElement('div');\r\n slider.className = 'flickity-slider';\r\n slider.style[ this.originSide ] = 0;\r\n this.slider = slider;\r\n};\r\n\r\nproto._filterFindCellElements = function( elems ) {\r\n return utils.filterFindElements( elems, this.options.cellSelector );\r\n};\r\n\r\n// goes through all children\r\nproto.reloadCells = function() {\r\n // collection of item elements\r\n this.cells = this._makeCells( this.slider.children );\r\n this.positionCells();\r\n this._getWrapShiftCells();\r\n this.setGallerySize();\r\n};\r\n\r\n/**\r\n * turn elements into Flickity.Cells\r\n * @param {Array or NodeList or HTMLElement} elems\r\n * @returns {Array} items - collection of new Flickity Cells\r\n */\r\nproto._makeCells = function( elems ) {\r\n var cellElems = this._filterFindCellElements( elems );\r\n\r\n // create new Flickity for collection\r\n var cells = cellElems.map( function( cellElem ) {\r\n return new Cell( cellElem, this );\r\n }, this );\r\n\r\n return cells;\r\n};\r\n\r\nproto.getLastCell = function() {\r\n return this.cells[ this.cells.length - 1 ];\r\n};\r\n\r\nproto.getLastSlide = function() {\r\n return this.slides[ this.slides.length - 1 ];\r\n};\r\n\r\n// positions all cells\r\nproto.positionCells = function() {\r\n // size all cells\r\n this._sizeCells( this.cells );\r\n // position all cells\r\n this._positionCells( 0 );\r\n};\r\n\r\n/**\r\n * position certain cells\r\n * @param {Integer} index - which cell to start with\r\n */\r\nproto._positionCells = function( index ) {\r\n index = index || 0;\r\n // also measure maxCellHeight\r\n // start 0 if positioning all cells\r\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\r\n var cellX = 0;\r\n // get cellX\r\n if ( index > 0 ) {\r\n var startCell = this.cells[ index - 1 ];\r\n cellX = startCell.x + startCell.size.outerWidth;\r\n }\r\n var len = this.cells.length;\r\n for ( var i=index; i < len; i++ ) {\r\n var cell = this.cells[i];\r\n cell.setPosition( cellX );\r\n cellX += cell.size.outerWidth;\r\n this.maxCellHeight = Math.max( cell.size.outerHeight, this.maxCellHeight );\r\n }\r\n // keep track of cellX for wrap-around\r\n this.slideableWidth = cellX;\r\n // slides\r\n this.updateSlides();\r\n // contain slides target\r\n this._containSlides();\r\n // update slidesWidth\r\n this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0;\r\n};\r\n\r\n/**\r\n * cell.getSize() on multiple cells\r\n * @param {Array} cells\r\n */\r\nproto._sizeCells = function( cells ) {\r\n cells.forEach( function( cell ) {\r\n cell.getSize();\r\n });\r\n};\r\n\r\n// -------------------------- -------------------------- //\r\n\r\nproto.updateSlides = function() {\r\n this.slides = [];\r\n if ( !this.cells.length ) {\r\n return;\r\n }\r\n\r\n var slide = new Slide( this );\r\n this.slides.push( slide );\r\n var isOriginLeft = this.originSide == 'left';\r\n var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\r\n\r\n var canCellFit = this._getCanCellFit();\r\n\r\n this.cells.forEach( function( cell, i ) {\r\n // just add cell if first cell in slide\r\n if ( !slide.cells.length ) {\r\n slide.addCell( cell );\r\n return;\r\n }\r\n\r\n var slideWidth = ( slide.outerWidth - slide.firstMargin ) +\r\n ( cell.size.outerWidth - cell.size[ nextMargin ] );\r\n\r\n if ( canCellFit.call( this, i, slideWidth ) ) {\r\n slide.addCell( cell );\r\n } else {\r\n // doesn't fit, new slide\r\n slide.updateTarget();\r\n\r\n slide = new Slide( this );\r\n this.slides.push( slide );\r\n slide.addCell( cell );\r\n }\r\n }, this );\r\n // last slide\r\n slide.updateTarget();\r\n // update .selectedSlide\r\n this.updateSelectedSlide();\r\n};\r\n\r\nproto._getCanCellFit = function() {\r\n var groupCells = this.options.groupCells;\r\n if ( !groupCells ) {\r\n return function() {\r\n return false;\r\n };\r\n } else if ( typeof groupCells == 'number' ) {\r\n // group by number. 3 -> [0,1,2], [3,4,5], ...\r\n var number = parseInt( groupCells, 10 );\r\n return function( i ) {\r\n return ( i % number ) !== 0;\r\n };\r\n }\r\n // default, group by width of slide\r\n // parse '75%\r\n var percentMatch = typeof groupCells == 'string' &&\r\n groupCells.match(/^(\\d+)%$/);\r\n var percent = percentMatch ? parseInt( percentMatch[1], 10 ) / 100 : 1;\r\n return function( i, slideWidth ) {\r\n return slideWidth <= ( this.size.innerWidth + 1 ) * percent;\r\n };\r\n};\r\n\r\n// alias _init for jQuery plugin .flickity()\r\nproto._init =\r\nproto.reposition = function() {\r\n this.positionCells();\r\n this.positionSliderAtSelected();\r\n};\r\n\r\nproto.getSize = function() {\r\n this.size = getSize( this.element );\r\n this.setCellAlign();\r\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\r\n};\r\n\r\nvar cellAlignShorthands = {\r\n // cell align, then based on origin side\r\n center: {\r\n left: 0.5,\r\n right: 0.5\r\n },\r\n left: {\r\n left: 0,\r\n right: 1\r\n },\r\n right: {\r\n right: 0,\r\n left: 1\r\n }\r\n};\r\n\r\nproto.setCellAlign = function() {\r\n var shorthand = cellAlignShorthands[ this.options.cellAlign ];\r\n this.cellAlign = shorthand ? shorthand[ this.originSide ] : this.options.cellAlign;\r\n};\r\n\r\nproto.setGallerySize = function() {\r\n if ( this.options.setGallerySize ) {\r\n var height = this.options.adaptiveHeight && this.selectedSlide ?\r\n this.selectedSlide.height : this.maxCellHeight;\r\n this.viewport.style.height = height + 'px';\r\n }\r\n};\r\n\r\nproto._getWrapShiftCells = function() {\r\n // only for wrap-around\r\n if ( !this.options.wrapAround ) {\r\n return;\r\n }\r\n // unshift previous cells\r\n this._unshiftCells( this.beforeShiftCells );\r\n this._unshiftCells( this.afterShiftCells );\r\n // get before cells\r\n // initial gap\r\n var gapX = this.cursorPosition;\r\n var cellIndex = this.cells.length - 1;\r\n this.beforeShiftCells = this._getGapCells( gapX, cellIndex, -1 );\r\n // get after cells\r\n // ending gap between last cell and end of gallery viewport\r\n gapX = this.size.innerWidth - this.cursorPosition;\r\n // start cloning at first cell, working forwards\r\n this.afterShiftCells = this._getGapCells( gapX, 0, 1 );\r\n};\r\n\r\nproto._getGapCells = function( gapX, cellIndex, increment ) {\r\n // keep adding cells until the cover the initial gap\r\n var cells = [];\r\n while ( gapX > 0 ) {\r\n var cell = this.cells[ cellIndex ];\r\n if ( !cell ) {\r\n break;\r\n }\r\n cells.push( cell );\r\n cellIndex += increment;\r\n gapX -= cell.size.outerWidth;\r\n }\r\n return cells;\r\n};\r\n\r\n// ----- contain ----- //\r\n\r\n// contain cell targets so no excess sliding\r\nproto._containSlides = function() {\r\n if ( !this.options.contain || this.options.wrapAround || !this.cells.length ) {\r\n return;\r\n }\r\n var isRightToLeft = this.options.rightToLeft;\r\n var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\r\n var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\r\n var contentWidth = this.slideableWidth - this.getLastCell().size[ endMargin ];\r\n // content is less than gallery size\r\n var isContentSmaller = contentWidth < this.size.innerWidth;\r\n // bounds\r\n var beginBound = this.cursorPosition + this.cells[0].size[ beginMargin ];\r\n var endBound = contentWidth - this.size.innerWidth * ( 1 - this.cellAlign );\r\n // contain each cell target\r\n this.slides.forEach( function( slide ) {\r\n if ( isContentSmaller ) {\r\n // all cells fit inside gallery\r\n slide.target = contentWidth * this.cellAlign;\r\n } else {\r\n // contain to bounds\r\n slide.target = Math.max( slide.target, beginBound );\r\n slide.target = Math.min( slide.target, endBound );\r\n }\r\n }, this );\r\n};\r\n\r\n// ----- ----- //\r\n\r\n/**\r\n * emits events via eventEmitter and jQuery events\r\n * @param {String} type - name of event\r\n * @param {Event} event - original event\r\n * @param {Array} args - extra arguments\r\n */\r\nproto.dispatchEvent = function( type, event, args ) {\r\n var emitArgs = event ? [ event ].concat( args ) : args;\r\n this.emitEvent( type, emitArgs );\r\n\r\n if ( jQuery && this.$element ) {\r\n // default trigger with type if no event\r\n type += this.options.namespaceJQueryEvents ? '.flickity' : '';\r\n var $event = type;\r\n if ( event ) {\r\n // create jQuery event\r\n var jQEvent = jQuery.Event( event );\r\n jQEvent.type = type;\r\n $event = jQEvent;\r\n }\r\n this.$element.trigger( $event, args );\r\n }\r\n};\r\n\r\n// -------------------------- select -------------------------- //\r\n\r\n/**\r\n * @param {Integer} index - index of the slide\r\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\r\n * @param {Boolean} isInstant - will immediately set position at selected cell\r\n */\r\nproto.select = function( index, isWrap, isInstant ) {\r\n if ( !this.isActive ) {\r\n return;\r\n }\r\n index = parseInt( index, 10 );\r\n this._wrapSelect( index );\r\n\r\n if ( this.options.wrapAround || isWrap ) {\r\n index = utils.modulo( index, this.slides.length );\r\n }\r\n // bail if invalid index\r\n if ( !this.slides[ index ] ) {\r\n return;\r\n }\r\n var prevIndex = this.selectedIndex;\r\n this.selectedIndex = index;\r\n this.updateSelectedSlide();\r\n if ( isInstant ) {\r\n this.positionSliderAtSelected();\r\n } else {\r\n this.startAnimation();\r\n }\r\n if ( this.options.adaptiveHeight ) {\r\n this.setGallerySize();\r\n }\r\n // events\r\n this.dispatchEvent( 'select', null, [ index ] );\r\n // change event if new index\r\n if ( index != prevIndex ) {\r\n this.dispatchEvent( 'change', null, [ index ] );\r\n }\r\n // old v1 event name, remove in v3\r\n this.dispatchEvent('cellSelect');\r\n};\r\n\r\n// wraps position for wrapAround, to move to closest slide. #113\r\nproto._wrapSelect = function( index ) {\r\n var len = this.slides.length;\r\n var isWrapping = this.options.wrapAround && len > 1;\r\n if ( !isWrapping ) {\r\n return index;\r\n }\r\n var wrapIndex = utils.modulo( index, len );\r\n // go to shortest\r\n var delta = Math.abs( wrapIndex - this.selectedIndex );\r\n var backWrapDelta = Math.abs( ( wrapIndex + len ) - this.selectedIndex );\r\n var forewardWrapDelta = Math.abs( ( wrapIndex - len ) - this.selectedIndex );\r\n if ( !this.isDragSelect && backWrapDelta < delta ) {\r\n index += len;\r\n } else if ( !this.isDragSelect && forewardWrapDelta < delta ) {\r\n index -= len;\r\n }\r\n // wrap position so slider is within normal area\r\n if ( index < 0 ) {\r\n this.x -= this.slideableWidth;\r\n } else if ( index >= len ) {\r\n this.x += this.slideableWidth;\r\n }\r\n};\r\n\r\nproto.previous = function( isWrap, isInstant ) {\r\n this.select( this.selectedIndex - 1, isWrap, isInstant );\r\n};\r\n\r\nproto.next = function( isWrap, isInstant ) {\r\n this.select( this.selectedIndex + 1, isWrap, isInstant );\r\n};\r\n\r\nproto.updateSelectedSlide = function() {\r\n var slide = this.slides[ this.selectedIndex ];\r\n // selectedIndex could be outside of slides, if triggered before resize()\r\n if ( !slide ) {\r\n return;\r\n }\r\n // unselect previous selected slide\r\n this.unselectSelectedSlide();\r\n // update new selected slide\r\n this.selectedSlide = slide;\r\n slide.select();\r\n this.selectedCells = slide.cells;\r\n this.selectedElements = slide.getCellElements();\r\n // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\r\n // Remove in v3?\r\n this.selectedCell = slide.cells[0];\r\n this.selectedElement = this.selectedElements[0];\r\n};\r\n\r\nproto.unselectSelectedSlide = function() {\r\n if ( this.selectedSlide ) {\r\n this.selectedSlide.unselect();\r\n }\r\n};\r\n\r\nproto.selectInitialIndex = function() {\r\n var initialIndex = this.options.initialIndex;\r\n // already activated, select previous selectedIndex\r\n if ( this.isInitActivated ) {\r\n this.select( this.selectedIndex, false, true );\r\n return;\r\n }\r\n // select with selector string\r\n if ( initialIndex && typeof initialIndex == 'string' ) {\r\n var cell = this.queryCell( initialIndex );\r\n if ( cell ) {\r\n this.selectCell( initialIndex, false, true );\r\n return;\r\n }\r\n }\r\n\r\n var index = 0;\r\n // select with number\r\n if ( initialIndex && this.slides[ initialIndex ] ) {\r\n index = initialIndex;\r\n }\r\n // select instantly\r\n this.select( index, false, true );\r\n};\r\n\r\n/**\r\n * select slide from number or cell element\r\n * @param {Element or Number} elem\r\n */\r\nproto.selectCell = function( value, isWrap, isInstant ) {\r\n // get cell\r\n var cell = this.queryCell( value );\r\n if ( !cell ) {\r\n return;\r\n }\r\n\r\n var index = this.getCellSlideIndex( cell );\r\n this.select( index, isWrap, isInstant );\r\n};\r\n\r\nproto.getCellSlideIndex = function( cell ) {\r\n // get index of slides that has cell\r\n for ( var i=0; i < this.slides.length; i++ ) {\r\n var slide = this.slides[i];\r\n var index = slide.cells.indexOf( cell );\r\n if ( index != -1 ) {\r\n return i;\r\n }\r\n }\r\n};\r\n\r\n// -------------------------- get cells -------------------------- //\r\n\r\n/**\r\n * get Flickity.Cell, given an Element\r\n * @param {Element} elem\r\n * @returns {Flickity.Cell} item\r\n */\r\nproto.getCell = function( elem ) {\r\n // loop through cells to get the one that matches\r\n for ( var i=0; i < this.cells.length; i++ ) {\r\n var cell = this.cells[i];\r\n if ( cell.element == elem ) {\r\n return cell;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * get collection of Flickity.Cells, given Elements\r\n * @param {Element, Array, NodeList} elems\r\n * @returns {Array} cells - Flickity.Cells\r\n */\r\nproto.getCells = function( elems ) {\r\n elems = utils.makeArray( elems );\r\n var cells = [];\r\n elems.forEach( function( elem ) {\r\n var cell = this.getCell( elem );\r\n if ( cell ) {\r\n cells.push( cell );\r\n }\r\n }, this );\r\n return cells;\r\n};\r\n\r\n/**\r\n * get cell elements\r\n * @returns {Array} cellElems\r\n */\r\nproto.getCellElements = function() {\r\n return this.cells.map( function( cell ) {\r\n return cell.element;\r\n });\r\n};\r\n\r\n/**\r\n * get parent cell from an element\r\n * @param {Element} elem\r\n * @returns {Flickit.Cell} cell\r\n */\r\nproto.getParentCell = function( elem ) {\r\n // first check if elem is cell\r\n var cell = this.getCell( elem );\r\n if ( cell ) {\r\n return cell;\r\n }\r\n // try to get parent cell elem\r\n elem = utils.getParent( elem, '.flickity-slider > *' );\r\n return this.getCell( elem );\r\n};\r\n\r\n/**\r\n * get cells adjacent to a slide\r\n * @param {Integer} adjCount - number of adjacent slides\r\n * @param {Integer} index - index of slide to start\r\n * @returns {Array} cells - array of Flickity.Cells\r\n */\r\nproto.getAdjacentCellElements = function( adjCount, index ) {\r\n if ( !adjCount ) {\r\n return this.selectedSlide.getCellElements();\r\n }\r\n index = index === undefined ? this.selectedIndex : index;\r\n\r\n var len = this.slides.length;\r\n if ( 1 + ( adjCount * 2 ) >= len ) {\r\n return this.getCellElements();\r\n }\r\n\r\n var cellElems = [];\r\n for ( var i = index - adjCount; i <= index + adjCount ; i++ ) {\r\n var slideIndex = this.options.wrapAround ? utils.modulo( i, len ) : i;\r\n var slide = this.slides[ slideIndex ];\r\n if ( slide ) {\r\n cellElems = cellElems.concat( slide.getCellElements() );\r\n }\r\n }\r\n return cellElems;\r\n};\r\n\r\n/**\r\n * select slide from number or cell element\r\n * @param {Element, Selector String, or Number} selector\r\n */\r\nproto.queryCell = function( selector ) {\r\n if ( typeof selector == 'number' ) {\r\n // use number as index\r\n return this.cells[ selector ];\r\n }\r\n if ( typeof selector == 'string' ) {\r\n // do not select invalid selectors from hash: #123, #/. #791\r\n if ( selector.match(/^[#\\.]?[\\d\\/]/) ) {\r\n return;\r\n }\r\n // use string as selector, get element\r\n selector = this.element.querySelector( selector );\r\n }\r\n // get cell from element\r\n return this.getCell( selector );\r\n};\r\n\r\n// -------------------------- events -------------------------- //\r\n\r\nproto.uiChange = function() {\r\n this.emitEvent('uiChange');\r\n};\r\n\r\n// keep focus on element when child UI elements are clicked\r\nproto.childUIPointerDown = function( event ) {\r\n // HACK iOS does not allow touch events to bubble up?!\r\n if ( event.type != 'touchstart' ) {\r\n event.preventDefault();\r\n }\r\n this.focus();\r\n};\r\n\r\n// ----- resize ----- //\r\n\r\nproto.onresize = function() {\r\n this.watchCSS();\r\n this.resize();\r\n};\r\n\r\nutils.debounceMethod( Flickity, 'onresize', 150 );\r\n\r\nproto.resize = function() {\r\n if ( !this.isActive ) {\r\n return;\r\n }\r\n this.getSize();\r\n // wrap values\r\n if ( this.options.wrapAround ) {\r\n this.x = utils.modulo( this.x, this.slideableWidth );\r\n }\r\n this.positionCells();\r\n this._getWrapShiftCells();\r\n this.setGallerySize();\r\n this.emitEvent('resize');\r\n // update selected index for group slides, instant\r\n // TODO: position can be lost between groups of various numbers\r\n var selectedElement = this.selectedElements && this.selectedElements[0];\r\n this.selectCell( selectedElement, false, true );\r\n};\r\n\r\n// watches the :after property, activates/deactivates\r\nproto.watchCSS = function() {\r\n var watchOption = this.options.watchCSS;\r\n if ( !watchOption ) {\r\n return;\r\n }\r\n\r\n var afterContent = getComputedStyle( this.element, ':after' ).content;\r\n // activate if :after { content: 'flickity' }\r\n if ( afterContent.indexOf('flickity') != -1 ) {\r\n this.activate();\r\n } else {\r\n this.deactivate();\r\n }\r\n};\r\n\r\n// ----- keydown ----- //\r\n\r\n// go previous/next if left/right keys pressed\r\nproto.onkeydown = function( event ) {\r\n // only work if element is in focus\r\n var isNotFocused = document.activeElement && document.activeElement != this.element;\r\n if ( !this.options.accessibility ||isNotFocused ) {\r\n return;\r\n }\r\n\r\n var handler = Flickity.keyboardHandlers[ event.keyCode ];\r\n if ( handler ) {\r\n handler.call( this );\r\n }\r\n};\r\n\r\nFlickity.keyboardHandlers = {\r\n // left arrow\r\n 37: function() {\r\n var leftMethod = this.options.rightToLeft ? 'next' : 'previous';\r\n this.uiChange();\r\n this[ leftMethod ]();\r\n },\r\n // right arrow\r\n 39: function() {\r\n var rightMethod = this.options.rightToLeft ? 'previous' : 'next';\r\n this.uiChange();\r\n this[ rightMethod ]();\r\n },\r\n};\r\n\r\n// ----- focus ----- //\r\n\r\nproto.focus = function() {\r\n // TODO remove scrollTo once focus options gets more support\r\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#Browser_compatibility\r\n var prevScrollY = window.pageYOffset;\r\n this.element.focus({ preventScroll: true });\r\n // hack to fix scroll jump after focus, #76\r\n if ( window.pageYOffset != prevScrollY ) {\r\n window.scrollTo( window.pageXOffset, prevScrollY );\r\n }\r\n};\r\n\r\n// -------------------------- destroy -------------------------- //\r\n\r\n// deactivate all Flickity functionality, but keep stuff available\r\nproto.deactivate = function() {\r\n if ( !this.isActive ) {\r\n return;\r\n }\r\n this.element.classList.remove('flickity-enabled');\r\n this.element.classList.remove('flickity-rtl');\r\n this.unselectSelectedSlide();\r\n // destroy cells\r\n this.cells.forEach( function( cell ) {\r\n cell.destroy();\r\n });\r\n this.element.removeChild( this.viewport );\r\n // move child elements back into element\r\n moveElements( this.slider.children, this.element );\r\n if ( this.options.accessibility ) {\r\n this.element.removeAttribute('tabIndex');\r\n this.element.removeEventListener( 'keydown', this );\r\n }\r\n // set flags\r\n this.isActive = false;\r\n this.emitEvent('deactivate');\r\n};\r\n\r\nproto.destroy = function() {\r\n this.deactivate();\r\n window.removeEventListener( 'resize', this );\r\n this.allOff();\r\n this.emitEvent('destroy');\r\n if ( jQuery && this.$element ) {\r\n jQuery.removeData( this.element, 'flickity' );\r\n }\r\n delete this.element.flickityGUID;\r\n delete instances[ this.guid ];\r\n};\r\n\r\n// -------------------------- prototype -------------------------- //\r\n\r\nutils.extend( proto, animatePrototype );\r\n\r\n// -------------------------- extras -------------------------- //\r\n\r\n/**\r\n * get Flickity instance from element\r\n * @param {Element} elem\r\n * @returns {Flickity}\r\n */\r\nFlickity.data = function( elem ) {\r\n elem = utils.getQueryElement( elem );\r\n var id = elem && elem.flickityGUID;\r\n return id && instances[ id ];\r\n};\r\n\r\nutils.htmlInit( Flickity, 'flickity' );\r\n\r\nif ( jQuery && jQuery.bridget ) {\r\n jQuery.bridget( 'flickity', Flickity );\r\n}\r\n\r\n// set internal jQuery, for Webpack + jQuery v3, #478\r\nFlickity.setJQuery = function( jq ) {\r\n jQuery = jq;\r\n};\r\n\r\nFlickity.Cell = Cell;\r\nFlickity.Slide = Slide;\r\n\r\nreturn Flickity;\r\n\r\n}));\r\n\r\n/*!\r\n * Unipointer v2.3.0\r\n * base class for doing one thing with pointer event\r\n * MIT license\r\n */\r\n\r\n/*jshint browser: true, undef: true, unused: true, strict: true */\r\n\r\n( function( window, factory ) {\r\n // universal module definition\r\n /* jshint strict: false */ /*global define, module, require */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'unipointer/unipointer',[\r\n 'ev-emitter/ev-emitter'\r\n ], function( EvEmitter ) {\r\n return factory( window, EvEmitter );\r\n });\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('ev-emitter')\r\n );\r\n } else {\r\n // browser global\r\n window.Unipointer = factory(\r\n window,\r\n window.EvEmitter\r\n );\r\n }\r\n\r\n}( window, function factory( window, EvEmitter ) {\r\n\r\n\r\n\r\nfunction noop() {}\r\n\r\nfunction Unipointer() {}\r\n\r\n// inherit EvEmitter\r\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\r\n\r\nproto.bindStartEvent = function( elem ) {\r\n this._bindStartEvent( elem, true );\r\n};\r\n\r\nproto.unbindStartEvent = function( elem ) {\r\n this._bindStartEvent( elem, false );\r\n};\r\n\r\n/**\r\n * Add or remove start event\r\n * @param {Boolean} isAdd - remove if falsey\r\n */\r\nproto._bindStartEvent = function( elem, isAdd ) {\r\n // munge isAdd, default to true\r\n isAdd = isAdd === undefined ? true : isAdd;\r\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\r\n\r\n // default to mouse events\r\n var startEvent = 'mousedown';\r\n if ( window.PointerEvent ) {\r\n // Pointer Events\r\n startEvent = 'pointerdown';\r\n } else if ( 'ontouchstart' in window ) {\r\n // Touch Events. iOS Safari\r\n startEvent = 'touchstart';\r\n }\r\n elem[ bindMethod ]( startEvent, this );\r\n};\r\n\r\n// trigger handler methods for events\r\nproto.handleEvent = function( event ) {\r\n var method = 'on' + event.type;\r\n if ( this[ method ] ) {\r\n this[ method ]( event );\r\n }\r\n};\r\n\r\n// returns the touch that we're keeping track of\r\nproto.getTouch = function( touches ) {\r\n for ( var i=0; i < touches.length; i++ ) {\r\n var touch = touches[i];\r\n if ( touch.identifier == this.pointerIdentifier ) {\r\n return touch;\r\n }\r\n }\r\n};\r\n\r\n// ----- start event ----- //\r\n\r\nproto.onmousedown = function( event ) {\r\n // dismiss clicks from right or middle buttons\r\n var button = event.button;\r\n if ( button && ( button !== 0 && button !== 1 ) ) {\r\n return;\r\n }\r\n this._pointerDown( event, event );\r\n};\r\n\r\nproto.ontouchstart = function( event ) {\r\n this._pointerDown( event, event.changedTouches[0] );\r\n};\r\n\r\nproto.onpointerdown = function( event ) {\r\n this._pointerDown( event, event );\r\n};\r\n\r\n/**\r\n * pointer start\r\n * @param {Event} event\r\n * @param {Event or Touch} pointer\r\n */\r\nproto._pointerDown = function( event, pointer ) {\r\n // dismiss right click and other pointers\r\n // button = 0 is okay, 1-4 not\r\n if ( event.button || this.isPointerDown ) {\r\n return;\r\n }\r\n\r\n this.isPointerDown = true;\r\n // save pointer identifier to match up touch events\r\n this.pointerIdentifier = pointer.pointerId !== undefined ?\r\n // pointerId for pointer events, touch.indentifier for touch events\r\n pointer.pointerId : pointer.identifier;\r\n\r\n this.pointerDown( event, pointer );\r\n};\r\n\r\nproto.pointerDown = function( event, pointer ) {\r\n this._bindPostStartEvents( event );\r\n this.emitEvent( 'pointerDown', [ event, pointer ] );\r\n};\r\n\r\n// hash of events to be bound after start event\r\nvar postStartEvents = {\r\n mousedown: [ 'mousemove', 'mouseup' ],\r\n touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\r\n pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\r\n};\r\n\r\nproto._bindPostStartEvents = function( event ) {\r\n if ( !event ) {\r\n return;\r\n }\r\n // get proper events to match start event\r\n var events = postStartEvents[ event.type ];\r\n // bind events to node\r\n events.forEach( function( eventName ) {\r\n window.addEventListener( eventName, this );\r\n }, this );\r\n // save these arguments\r\n this._boundPointerEvents = events;\r\n};\r\n\r\nproto._unbindPostStartEvents = function() {\r\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\r\n if ( !this._boundPointerEvents ) {\r\n return;\r\n }\r\n this._boundPointerEvents.forEach( function( eventName ) {\r\n window.removeEventListener( eventName, this );\r\n }, this );\r\n\r\n delete this._boundPointerEvents;\r\n};\r\n\r\n// ----- move event ----- //\r\n\r\nproto.onmousemove = function( event ) {\r\n this._pointerMove( event, event );\r\n};\r\n\r\nproto.onpointermove = function( event ) {\r\n if ( event.pointerId == this.pointerIdentifier ) {\r\n this._pointerMove( event, event );\r\n }\r\n};\r\n\r\nproto.ontouchmove = function( event ) {\r\n var touch = this.getTouch( event.changedTouches );\r\n if ( touch ) {\r\n this._pointerMove( event, touch );\r\n }\r\n};\r\n\r\n/**\r\n * pointer move\r\n * @param {Event} event\r\n * @param {Event or Touch} pointer\r\n * @private\r\n */\r\nproto._pointerMove = function( event, pointer ) {\r\n this.pointerMove( event, pointer );\r\n};\r\n\r\n// public\r\nproto.pointerMove = function( event, pointer ) {\r\n this.emitEvent( 'pointerMove', [ event, pointer ] );\r\n};\r\n\r\n// ----- end event ----- //\r\n\r\n\r\nproto.onmouseup = function( event ) {\r\n this._pointerUp( event, event );\r\n};\r\n\r\nproto.onpointerup = function( event ) {\r\n if ( event.pointerId == this.pointerIdentifier ) {\r\n this._pointerUp( event, event );\r\n }\r\n};\r\n\r\nproto.ontouchend = function( event ) {\r\n var touch = this.getTouch( event.changedTouches );\r\n if ( touch ) {\r\n this._pointerUp( event, touch );\r\n }\r\n};\r\n\r\n/**\r\n * pointer up\r\n * @param {Event} event\r\n * @param {Event or Touch} pointer\r\n * @private\r\n */\r\nproto._pointerUp = function( event, pointer ) {\r\n this._pointerDone();\r\n this.pointerUp( event, pointer );\r\n};\r\n\r\n// public\r\nproto.pointerUp = function( event, pointer ) {\r\n this.emitEvent( 'pointerUp', [ event, pointer ] );\r\n};\r\n\r\n// ----- pointer done ----- //\r\n\r\n// triggered on pointer up & pointer cancel\r\nproto._pointerDone = function() {\r\n this._pointerReset();\r\n this._unbindPostStartEvents();\r\n this.pointerDone();\r\n};\r\n\r\nproto._pointerReset = function() {\r\n // reset properties\r\n this.isPointerDown = false;\r\n delete this.pointerIdentifier;\r\n};\r\n\r\nproto.pointerDone = noop;\r\n\r\n// ----- pointer cancel ----- //\r\n\r\nproto.onpointercancel = function( event ) {\r\n if ( event.pointerId == this.pointerIdentifier ) {\r\n this._pointerCancel( event, event );\r\n }\r\n};\r\n\r\nproto.ontouchcancel = function( event ) {\r\n var touch = this.getTouch( event.changedTouches );\r\n if ( touch ) {\r\n this._pointerCancel( event, touch );\r\n }\r\n};\r\n\r\n/**\r\n * pointer cancel\r\n * @param {Event} event\r\n * @param {Event or Touch} pointer\r\n * @private\r\n */\r\nproto._pointerCancel = function( event, pointer ) {\r\n this._pointerDone();\r\n this.pointerCancel( event, pointer );\r\n};\r\n\r\n// public\r\nproto.pointerCancel = function( event, pointer ) {\r\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\r\n};\r\n\r\n// ----- ----- //\r\n\r\n// utility function for getting x/y coords from event\r\nUnipointer.getPointerPoint = function( pointer ) {\r\n return {\r\n x: pointer.pageX,\r\n y: pointer.pageY\r\n };\r\n};\r\n\r\n// ----- ----- //\r\n\r\nreturn Unipointer;\r\n\r\n}));\r\n\r\n/*!\r\n * Unidragger v2.3.0\r\n * Draggable base class\r\n * MIT license\r\n */\r\n\r\n/*jshint browser: true, unused: true, undef: true, strict: true */\r\n\r\n( function( window, factory ) {\r\n // universal module definition\r\n /*jshint strict: false */ /*globals define, module, require */\r\n\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'unidragger/unidragger',[\r\n 'unipointer/unipointer'\r\n ], function( Unipointer ) {\r\n return factory( window, Unipointer );\r\n });\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('unipointer')\r\n );\r\n } else {\r\n // browser global\r\n window.Unidragger = factory(\r\n window,\r\n window.Unipointer\r\n );\r\n }\r\n\r\n}( window, function factory( window, Unipointer ) {\r\n\r\n\r\n\r\n// -------------------------- Unidragger -------------------------- //\r\n\r\nfunction Unidragger() {}\r\n\r\n// inherit Unipointer & EvEmitter\r\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\r\n\r\n// ----- bind start ----- //\r\n\r\nproto.bindHandles = function() {\r\n this._bindHandles( true );\r\n};\r\n\r\nproto.unbindHandles = function() {\r\n this._bindHandles( false );\r\n};\r\n\r\n/**\r\n * Add or remove start event\r\n * @param {Boolean} isAdd\r\n */\r\nproto._bindHandles = function( isAdd ) {\r\n // munge isAdd, default to true\r\n isAdd = isAdd === undefined ? true : isAdd;\r\n // bind each handle\r\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\r\n var touchAction = isAdd ? this._touchActionValue : '';\r\n for ( var i=0; i < this.handles.length; i++ ) {\r\n var handle = this.handles[i];\r\n this._bindStartEvent( handle, isAdd );\r\n handle[ bindMethod ]( 'click', this );\r\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\r\n if ( window.PointerEvent ) {\r\n handle.style.touchAction = touchAction;\r\n }\r\n }\r\n};\r\n\r\n// prototype so it can be overwriteable by Flickity\r\nproto._touchActionValue = 'none';\r\n\r\n// ----- start event ----- //\r\n\r\n/**\r\n * pointer start\r\n * @param {Event} event\r\n * @param {Event or Touch} pointer\r\n */\r\nproto.pointerDown = function( event, pointer ) {\r\n var isOkay = this.okayPointerDown( event );\r\n if ( !isOkay ) {\r\n return;\r\n }\r\n // track start event position\r\n this.pointerDownPointer = pointer;\r\n\r\n event.preventDefault();\r\n this.pointerDownBlur();\r\n // bind move and end events\r\n this._bindPostStartEvents( event );\r\n this.emitEvent( 'pointerDown', [ event, pointer ] );\r\n};\r\n\r\n// nodes that have text fields\r\nvar cursorNodes = {\r\n TEXTAREA: true,\r\n INPUT: true,\r\n SELECT: true,\r\n OPTION: true,\r\n};\r\n\r\n// input types that do not have text fields\r\nvar clickTypes = {\r\n radio: true,\r\n checkbox: true,\r\n button: true,\r\n submit: true,\r\n image: true,\r\n file: true,\r\n};\r\n\r\n// dismiss inputs with text fields. flickity#403, flickity#404\r\nproto.okayPointerDown = function( event ) {\r\n var isCursorNode = cursorNodes[ event.target.nodeName ];\r\n var isClickType = clickTypes[ event.target.type ];\r\n var isOkay = !isCursorNode || isClickType;\r\n if ( !isOkay ) {\r\n this._pointerReset();\r\n }\r\n return isOkay;\r\n};\r\n\r\n// kludge to blur previously focused input\r\nproto.pointerDownBlur = function() {\r\n var focused = document.activeElement;\r\n // do not blur body for IE10, metafizzy/flickity#117\r\n var canBlur = focused && focused.blur && focused != document.body;\r\n if ( canBlur ) {\r\n focused.blur();\r\n }\r\n};\r\n\r\n// ----- move event ----- //\r\n\r\n/**\r\n * drag move\r\n * @param {Event} event\r\n * @param {Event or Touch} pointer\r\n */\r\nproto.pointerMove = function( event, pointer ) {\r\n var moveVector = this._dragPointerMove( event, pointer );\r\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\r\n this._dragMove( event, pointer, moveVector );\r\n};\r\n\r\n// base pointer move logic\r\nproto._dragPointerMove = function( event, pointer ) {\r\n var moveVector = {\r\n x: pointer.pageX - this.pointerDownPointer.pageX,\r\n y: pointer.pageY - this.pointerDownPointer.pageY\r\n };\r\n // start drag if pointer has moved far enough to start drag\r\n if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\r\n this._dragStart( event, pointer );\r\n }\r\n return moveVector;\r\n};\r\n\r\n// condition if pointer has moved far enough to start drag\r\nproto.hasDragStarted = function( moveVector ) {\r\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\r\n};\r\n\r\n// ----- end event ----- //\r\n\r\n/**\r\n * pointer up\r\n * @param {Event} event\r\n * @param {Event or Touch} pointer\r\n */\r\nproto.pointerUp = function( event, pointer ) {\r\n this.emitEvent( 'pointerUp', [ event, pointer ] );\r\n this._dragPointerUp( event, pointer );\r\n};\r\n\r\nproto._dragPointerUp = function( event, pointer ) {\r\n if ( this.isDragging ) {\r\n this._dragEnd( event, pointer );\r\n } else {\r\n // pointer didn't move enough for drag to start\r\n this._staticClick( event, pointer );\r\n }\r\n};\r\n\r\n// -------------------------- drag -------------------------- //\r\n\r\n// dragStart\r\nproto._dragStart = function( event, pointer ) {\r\n this.isDragging = true;\r\n // prevent clicks\r\n this.isPreventingClicks = true;\r\n this.dragStart( event, pointer );\r\n};\r\n\r\nproto.dragStart = function( event, pointer ) {\r\n this.emitEvent( 'dragStart', [ event, pointer ] );\r\n};\r\n\r\n// dragMove\r\nproto._dragMove = function( event, pointer, moveVector ) {\r\n // do not drag if not dragging yet\r\n if ( !this.isDragging ) {\r\n return;\r\n }\r\n\r\n this.dragMove( event, pointer, moveVector );\r\n};\r\n\r\nproto.dragMove = function( event, pointer, moveVector ) {\r\n event.preventDefault();\r\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\r\n};\r\n\r\n// dragEnd\r\nproto._dragEnd = function( event, pointer ) {\r\n // set flags\r\n this.isDragging = false;\r\n // re-enable clicking async\r\n setTimeout( function() {\r\n delete this.isPreventingClicks;\r\n }.bind( this ) );\r\n\r\n this.dragEnd( event, pointer );\r\n};\r\n\r\nproto.dragEnd = function( event, pointer ) {\r\n this.emitEvent( 'dragEnd', [ event, pointer ] );\r\n};\r\n\r\n// ----- onclick ----- //\r\n\r\n// handle all clicks and prevent clicks when dragging\r\nproto.onclick = function( event ) {\r\n if ( this.isPreventingClicks ) {\r\n event.preventDefault();\r\n }\r\n};\r\n\r\n// ----- staticClick ----- //\r\n\r\n// triggered after pointer down & up with no/tiny movement\r\nproto._staticClick = function( event, pointer ) {\r\n // ignore emulated mouse up clicks\r\n if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) {\r\n return;\r\n }\r\n\r\n this.staticClick( event, pointer );\r\n\r\n // set flag for emulated clicks 300ms after touchend\r\n if ( event.type != 'mouseup' ) {\r\n this.isIgnoringMouseUp = true;\r\n // reset flag after 300ms\r\n setTimeout( function() {\r\n delete this.isIgnoringMouseUp;\r\n }.bind( this ), 400 );\r\n }\r\n};\r\n\r\nproto.staticClick = function( event, pointer ) {\r\n this.emitEvent( 'staticClick', [ event, pointer ] );\r\n};\r\n\r\n// ----- utils ----- //\r\n\r\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\r\n\r\n// ----- ----- //\r\n\r\nreturn Unidragger;\r\n\r\n}));\r\n\r\n// drag\r\n( function( window, factory ) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'flickity/js/drag',[\r\n './flickity',\r\n 'unidragger/unidragger',\r\n 'fizzy-ui-utils/utils'\r\n ], function( Flickity, Unidragger, utils ) {\r\n return factory( window, Flickity, Unidragger, utils );\r\n });\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('./flickity'),\r\n require('unidragger'),\r\n require('fizzy-ui-utils')\r\n );\r\n } else {\r\n // browser global\r\n window.Flickity = factory(\r\n window,\r\n window.Flickity,\r\n window.Unidragger,\r\n window.fizzyUIUtils\r\n );\r\n }\r\n\r\n}( window, function factory( window, Flickity, Unidragger, utils ) {\r\n\r\n\r\n\r\n// ----- defaults ----- //\r\n\r\nutils.extend( Flickity.defaults, {\r\n draggable: '>1',\r\n dragThreshold: 3,\r\n});\r\n\r\n// ----- create ----- //\r\n\r\nFlickity.createMethods.push('_createDrag');\r\n\r\n// -------------------------- drag prototype -------------------------- //\r\n\r\nvar proto = Flickity.prototype;\r\nutils.extend( proto, Unidragger.prototype );\r\nproto._touchActionValue = 'pan-y';\r\n\r\n// -------------------------- -------------------------- //\r\n\r\nvar isTouch = 'createTouch' in document;\r\nvar isTouchmoveScrollCanceled = false;\r\n\r\nproto._createDrag = function() {\r\n this.on( 'activate', this.onActivateDrag );\r\n this.on( 'uiChange', this._uiChangeDrag );\r\n this.on( 'deactivate', this.onDeactivateDrag );\r\n this.on( 'cellChange', this.updateDraggable );\r\n // TODO updateDraggable on resize? if groupCells & slides change\r\n // HACK - add seemingly innocuous handler to fix iOS 10 scroll behavior\r\n // #457, RubaXa/Sortable#973\r\n if ( isTouch && !isTouchmoveScrollCanceled ) {\r\n window.addEventListener( 'touchmove', function() {});\r\n isTouchmoveScrollCanceled = true;\r\n }\r\n};\r\n\r\nproto.onActivateDrag = function() {\r\n this.handles = [ this.viewport ];\r\n this.bindHandles();\r\n this.updateDraggable();\r\n};\r\n\r\nproto.onDeactivateDrag = function() {\r\n this.unbindHandles();\r\n this.element.classList.remove('is-draggable');\r\n};\r\n\r\nproto.updateDraggable = function() {\r\n // disable dragging if less than 2 slides. #278\r\n if ( this.options.draggable == '>1' ) {\r\n this.isDraggable = this.slides.length > 1;\r\n } else {\r\n this.isDraggable = this.options.draggable;\r\n }\r\n if ( this.isDraggable ) {\r\n this.element.classList.add('is-draggable');\r\n } else {\r\n this.element.classList.remove('is-draggable');\r\n }\r\n};\r\n\r\n// backwards compatibility\r\nproto.bindDrag = function() {\r\n this.options.draggable = true;\r\n this.updateDraggable();\r\n};\r\n\r\nproto.unbindDrag = function() {\r\n this.options.draggable = false;\r\n this.updateDraggable();\r\n};\r\n\r\nproto._uiChangeDrag = function() {\r\n delete this.isFreeScrolling;\r\n};\r\n\r\n// -------------------------- pointer events -------------------------- //\r\n\r\nproto.pointerDown = function( event, pointer ) {\r\n if ( !this.isDraggable ) {\r\n this._pointerDownDefault( event, pointer );\r\n return;\r\n }\r\n var isOkay = this.okayPointerDown( event );\r\n if ( !isOkay ) {\r\n return;\r\n }\r\n\r\n this._pointerDownPreventDefault( event );\r\n this.pointerDownFocus( event );\r\n // blur\r\n if ( document.activeElement != this.element ) {\r\n // do not blur if already focused\r\n this.pointerDownBlur();\r\n }\r\n\r\n // stop if it was moving\r\n this.dragX = this.x;\r\n this.viewport.classList.add('is-pointer-down');\r\n // track scrolling\r\n this.pointerDownScroll = getScrollPosition();\r\n window.addEventListener( 'scroll', this );\r\n\r\n this._pointerDownDefault( event, pointer );\r\n};\r\n\r\n// default pointerDown logic, used for staticClick\r\nproto._pointerDownDefault = function( event, pointer ) {\r\n // track start event position\r\n // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\r\n this.pointerDownPointer = {\r\n pageX: pointer.pageX,\r\n pageY: pointer.pageY,\r\n };\r\n // bind move and end events\r\n this._bindPostStartEvents( event );\r\n this.dispatchEvent( 'pointerDown', event, [ pointer ] );\r\n};\r\n\r\nvar focusNodes = {\r\n INPUT: true,\r\n TEXTAREA: true,\r\n SELECT: true,\r\n};\r\n\r\nproto.pointerDownFocus = function( event ) {\r\n var isFocusNode = focusNodes[ event.target.nodeName ];\r\n if ( !isFocusNode ) {\r\n this.focus();\r\n }\r\n};\r\n\r\nproto._pointerDownPreventDefault = function( event ) {\r\n var isTouchStart = event.type == 'touchstart';\r\n var isTouchPointer = event.pointerType == 'touch';\r\n var isFocusNode = focusNodes[ event.target.nodeName ];\r\n if ( !isTouchStart && !isTouchPointer && !isFocusNode ) {\r\n event.preventDefault();\r\n }\r\n};\r\n\r\n// ----- move ----- //\r\n\r\nproto.hasDragStarted = function( moveVector ) {\r\n return Math.abs( moveVector.x ) > this.options.dragThreshold;\r\n};\r\n\r\n// ----- up ----- //\r\n\r\nproto.pointerUp = function( event, pointer ) {\r\n delete this.isTouchScrolling;\r\n this.viewport.classList.remove('is-pointer-down');\r\n this.dispatchEvent( 'pointerUp', event, [ pointer ] );\r\n this._dragPointerUp( event, pointer );\r\n};\r\n\r\nproto.pointerDone = function() {\r\n window.removeEventListener( 'scroll', this );\r\n delete this.pointerDownScroll;\r\n};\r\n\r\n// -------------------------- dragging -------------------------- //\r\n\r\nproto.dragStart = function( event, pointer ) {\r\n if ( !this.isDraggable ) {\r\n return;\r\n }\r\n this.dragStartPosition = this.x;\r\n this.startAnimation();\r\n window.removeEventListener( 'scroll', this );\r\n this.dispatchEvent( 'dragStart', event, [ pointer ] );\r\n};\r\n\r\nproto.pointerMove = function( event, pointer ) {\r\n var moveVector = this._dragPointerMove( event, pointer );\r\n this.dispatchEvent( 'pointerMove', event, [ pointer, moveVector ] );\r\n this._dragMove( event, pointer, moveVector );\r\n};\r\n\r\nproto.dragMove = function( event, pointer, moveVector ) {\r\n if ( !this.isDraggable ) {\r\n return;\r\n }\r\n event.preventDefault();\r\n\r\n this.previousDragX = this.dragX;\r\n // reverse if right-to-left\r\n var direction = this.options.rightToLeft ? -1 : 1;\r\n if ( this.options.wrapAround ) {\r\n // wrap around move. #589\r\n moveVector.x = moveVector.x % this.slideableWidth;\r\n }\r\n var dragX = this.dragStartPosition + moveVector.x * direction;\r\n\r\n if ( !this.options.wrapAround && this.slides.length ) {\r\n // slow drag\r\n var originBound = Math.max( -this.slides[0].target, this.dragStartPosition );\r\n dragX = dragX > originBound ? ( dragX + originBound ) * 0.5 : dragX;\r\n var endBound = Math.min( -this.getLastSlide().target, this.dragStartPosition );\r\n dragX = dragX < endBound ? ( dragX + endBound ) * 0.5 : dragX;\r\n }\r\n\r\n this.dragX = dragX;\r\n\r\n this.dragMoveTime = new Date();\r\n this.dispatchEvent( 'dragMove', event, [ pointer, moveVector ] );\r\n};\r\n\r\nproto.dragEnd = function( event, pointer ) {\r\n if ( !this.isDraggable ) {\r\n return;\r\n }\r\n if ( this.options.freeScroll ) {\r\n this.isFreeScrolling = true;\r\n }\r\n // set selectedIndex based on where flick will end up\r\n var index = this.dragEndRestingSelect();\r\n\r\n if ( this.options.freeScroll && !this.options.wrapAround ) {\r\n // if free-scroll & not wrap around\r\n // do not free-scroll if going outside of bounding slides\r\n // so bounding slides can attract slider, and keep it in bounds\r\n var restingX = this.getRestingPosition();\r\n this.isFreeScrolling = -restingX > this.slides[0].target &&\r\n -restingX < this.getLastSlide().target;\r\n } else if ( !this.options.freeScroll && index == this.selectedIndex ) {\r\n // boost selection if selected index has not changed\r\n index += this.dragEndBoostSelect();\r\n }\r\n delete this.previousDragX;\r\n // apply selection\r\n // TODO refactor this, selecting here feels weird\r\n // HACK, set flag so dragging stays in correct direction\r\n this.isDragSelect = this.options.wrapAround;\r\n this.select( index );\r\n delete this.isDragSelect;\r\n this.dispatchEvent( 'dragEnd', event, [ pointer ] );\r\n};\r\n\r\nproto.dragEndRestingSelect = function() {\r\n var restingX = this.getRestingPosition();\r\n // how far away from selected slide\r\n var distance = Math.abs( this.getSlideDistance( -restingX, this.selectedIndex ) );\r\n // get closet resting going up and going down\r\n var positiveResting = this._getClosestResting( restingX, distance, 1 );\r\n var negativeResting = this._getClosestResting( restingX, distance, -1 );\r\n // use closer resting for wrap-around\r\n var index = positiveResting.distance < negativeResting.distance ?\r\n positiveResting.index : negativeResting.index;\r\n return index;\r\n};\r\n\r\n/**\r\n * given resting X and distance to selected cell\r\n * get the distance and index of the closest cell\r\n * @param {Number} restingX - estimated post-flick resting position\r\n * @param {Number} distance - distance to selected cell\r\n * @param {Integer} increment - +1 or -1, going up or down\r\n * @returns {Object} - { distance: {Number}, index: {Integer} }\r\n */\r\nproto._getClosestResting = function( restingX, distance, increment ) {\r\n var index = this.selectedIndex;\r\n var minDistance = Infinity;\r\n var condition = this.options.contain && !this.options.wrapAround ?\r\n // if contain, keep going if distance is equal to minDistance\r\n function( d, md ) { return d <= md; } : function( d, md ) { return d < md; };\r\n while ( condition( distance, minDistance ) ) {\r\n // measure distance to next cell\r\n index += increment;\r\n minDistance = distance;\r\n distance = this.getSlideDistance( -restingX, index );\r\n if ( distance === null ) {\r\n break;\r\n }\r\n distance = Math.abs( distance );\r\n }\r\n return {\r\n distance: minDistance,\r\n // selected was previous index\r\n index: index - increment\r\n };\r\n};\r\n\r\n/**\r\n * measure distance between x and a slide target\r\n * @param {Number} x\r\n * @param {Integer} index - slide index\r\n */\r\nproto.getSlideDistance = function( x, index ) {\r\n var len = this.slides.length;\r\n // wrap around if at least 2 slides\r\n var isWrapAround = this.options.wrapAround && len > 1;\r\n var slideIndex = isWrapAround ? utils.modulo( index, len ) : index;\r\n var slide = this.slides[ slideIndex ];\r\n if ( !slide ) {\r\n return null;\r\n }\r\n // add distance for wrap-around slides\r\n var wrap = isWrapAround ? this.slideableWidth * Math.floor( index / len ) : 0;\r\n return x - ( slide.target + wrap );\r\n};\r\n\r\nproto.dragEndBoostSelect = function() {\r\n // do not boost if no previousDragX or dragMoveTime\r\n if ( this.previousDragX === undefined || !this.dragMoveTime ||\r\n // or if drag was held for 100 ms\r\n new Date() - this.dragMoveTime > 100 ) {\r\n return 0;\r\n }\r\n\r\n var distance = this.getSlideDistance( -this.dragX, this.selectedIndex );\r\n var delta = this.previousDragX - this.dragX;\r\n if ( distance > 0 && delta > 0 ) {\r\n // boost to next if moving towards the right, and positive velocity\r\n return 1;\r\n } else if ( distance < 0 && delta < 0 ) {\r\n // boost to previous if moving towards the left, and negative velocity\r\n return -1;\r\n }\r\n return 0;\r\n};\r\n\r\n// ----- staticClick ----- //\r\n\r\nproto.staticClick = function( event, pointer ) {\r\n // get clickedCell, if cell was clicked\r\n var clickedCell = this.getParentCell( event.target );\r\n var cellElem = clickedCell && clickedCell.element;\r\n var cellIndex = clickedCell && this.cells.indexOf( clickedCell );\r\n this.dispatchEvent( 'staticClick', event, [ pointer, cellElem, cellIndex ] );\r\n};\r\n\r\n// ----- scroll ----- //\r\n\r\nproto.onscroll = function() {\r\n var scroll = getScrollPosition();\r\n var scrollMoveX = this.pointerDownScroll.x - scroll.x;\r\n var scrollMoveY = this.pointerDownScroll.y - scroll.y;\r\n // cancel click/tap if scroll is too much\r\n if ( Math.abs( scrollMoveX ) > 3 || Math.abs( scrollMoveY ) > 3 ) {\r\n this._pointerDone();\r\n }\r\n};\r\n\r\n// ----- utils ----- //\r\n\r\nfunction getScrollPosition() {\r\n return {\r\n x: window.pageXOffset,\r\n y: window.pageYOffset\r\n };\r\n}\r\n\r\n// ----- ----- //\r\n\r\nreturn Flickity;\r\n\r\n}));\r\n\r\n// prev/next buttons\r\n( function( window, factory ) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'flickity/js/prev-next-button',[\r\n './flickity',\r\n 'unipointer/unipointer',\r\n 'fizzy-ui-utils/utils'\r\n ], function( Flickity, Unipointer, utils ) {\r\n return factory( window, Flickity, Unipointer, utils );\r\n });\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('./flickity'),\r\n require('unipointer'),\r\n require('fizzy-ui-utils')\r\n );\r\n } else {\r\n // browser global\r\n factory(\r\n window,\r\n window.Flickity,\r\n window.Unipointer,\r\n window.fizzyUIUtils\r\n );\r\n }\r\n\r\n}( window, function factory( window, Flickity, Unipointer, utils ) {\r\n'use strict';\r\n\r\nvar svgURI = 'http://www.w3.org/2000/svg';\r\n\r\n// -------------------------- PrevNextButton -------------------------- //\r\n\r\nfunction PrevNextButton( direction, parent ) {\r\n this.direction = direction;\r\n this.parent = parent;\r\n this._create();\r\n}\r\n\r\nPrevNextButton.prototype = Object.create( Unipointer.prototype );\r\n\r\nPrevNextButton.prototype._create = function() {\r\n // properties\r\n this.isEnabled = true;\r\n this.isPrevious = this.direction == -1;\r\n var leftDirection = this.parent.options.rightToLeft ? 1 : -1;\r\n this.isLeft = this.direction == leftDirection;\r\n\r\n var element = this.element = document.createElement('button');\r\n element.className = 'flickity-button flickity-prev-next-button';\r\n element.className += this.isPrevious ? ' previous' : ' next';\r\n // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\r\n element.setAttribute( 'type', 'button' );\r\n // init as disabled\r\n this.disable();\r\n\r\n element.setAttribute( 'aria-label', this.isPrevious ? 'Previous' : 'Next' );\r\n\r\n // create arrow\r\n var svg = this.createSVG();\r\n element.appendChild( svg );\r\n // events\r\n this.parent.on( 'select', this.update.bind( this ) );\r\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\r\n};\r\n\r\nPrevNextButton.prototype.activate = function() {\r\n this.bindStartEvent( this.element );\r\n this.element.addEventListener( 'click', this );\r\n // add to DOM\r\n this.parent.element.appendChild( this.element );\r\n};\r\n\r\nPrevNextButton.prototype.deactivate = function() {\r\n // remove from DOM\r\n this.parent.element.removeChild( this.element );\r\n // click events\r\n this.unbindStartEvent( this.element );\r\n this.element.removeEventListener( 'click', this );\r\n};\r\n\r\nPrevNextButton.prototype.createSVG = function() {\r\n var svg = document.createElementNS( svgURI, 'svg');\r\n svg.setAttribute( 'class', 'flickity-button-icon' );\r\n svg.setAttribute( 'viewBox', '0 0 100 100' );\r\n var path = document.createElementNS( svgURI, 'path');\r\n var pathMovements = getArrowMovements( this.parent.options.arrowShape );\r\n path.setAttribute( 'd', pathMovements );\r\n path.setAttribute( 'class', 'arrow' );\r\n // rotate arrow\r\n if ( !this.isLeft ) {\r\n path.setAttribute( 'transform', 'translate(100, 100) rotate(180) ' );\r\n }\r\n svg.appendChild( path );\r\n return svg;\r\n};\r\n\r\n// get SVG path movmement\r\nfunction getArrowMovements( shape ) {\r\n // use shape as movement if string\r\n if ( typeof shape == 'string' ) {\r\n return shape;\r\n }\r\n // create movement string\r\n return 'M ' + shape.x0 + ',50' +\r\n ' L ' + shape.x1 + ',' + ( shape.y1 + 50 ) +\r\n ' L ' + shape.x2 + ',' + ( shape.y2 + 50 ) +\r\n ' L ' + shape.x3 + ',50 ' +\r\n ' L ' + shape.x2 + ',' + ( 50 - shape.y2 ) +\r\n ' L ' + shape.x1 + ',' + ( 50 - shape.y1 ) +\r\n ' Z';\r\n}\r\n\r\nPrevNextButton.prototype.handleEvent = utils.handleEvent;\r\n\r\nPrevNextButton.prototype.onclick = function() {\r\n if ( !this.isEnabled ) {\r\n return;\r\n }\r\n this.parent.uiChange();\r\n var method = this.isPrevious ? 'previous' : 'next';\r\n this.parent[ method ]();\r\n};\r\n\r\n// ----- ----- //\r\n\r\nPrevNextButton.prototype.enable = function() {\r\n if ( this.isEnabled ) {\r\n return;\r\n }\r\n this.element.disabled = false;\r\n this.isEnabled = true;\r\n};\r\n\r\nPrevNextButton.prototype.disable = function() {\r\n if ( !this.isEnabled ) {\r\n return;\r\n }\r\n this.element.disabled = true;\r\n this.isEnabled = false;\r\n};\r\n\r\nPrevNextButton.prototype.update = function() {\r\n // index of first or last slide, if previous or next\r\n var slides = this.parent.slides;\r\n // enable is wrapAround and at least 2 slides\r\n if ( this.parent.options.wrapAround && slides.length > 1 ) {\r\n this.enable();\r\n return;\r\n }\r\n var lastIndex = slides.length ? slides.length - 1 : 0;\r\n var boundIndex = this.isPrevious ? 0 : lastIndex;\r\n var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\r\n this[ method ]();\r\n};\r\n\r\nPrevNextButton.prototype.destroy = function() {\r\n this.deactivate();\r\n this.allOff();\r\n};\r\n\r\n// -------------------------- Flickity prototype -------------------------- //\r\n\r\nutils.extend( Flickity.defaults, {\r\n prevNextButtons: true,\r\n arrowShape: {\r\n x0: 10,\r\n x1: 60, y1: 50,\r\n x2: 70, y2: 40,\r\n x3: 30\r\n }\r\n});\r\n\r\nFlickity.createMethods.push('_createPrevNextButtons');\r\nvar proto = Flickity.prototype;\r\n\r\nproto._createPrevNextButtons = function() {\r\n if ( !this.options.prevNextButtons ) {\r\n return;\r\n }\r\n\r\n this.prevButton = new PrevNextButton( -1, this );\r\n this.nextButton = new PrevNextButton( 1, this );\r\n\r\n this.on( 'activate', this.activatePrevNextButtons );\r\n};\r\n\r\nproto.activatePrevNextButtons = function() {\r\n this.prevButton.activate();\r\n this.nextButton.activate();\r\n this.on( 'deactivate', this.deactivatePrevNextButtons );\r\n};\r\n\r\nproto.deactivatePrevNextButtons = function() {\r\n this.prevButton.deactivate();\r\n this.nextButton.deactivate();\r\n this.off( 'deactivate', this.deactivatePrevNextButtons );\r\n};\r\n\r\n// -------------------------- -------------------------- //\r\n\r\nFlickity.PrevNextButton = PrevNextButton;\r\n\r\nreturn Flickity;\r\n\r\n}));\r\n\r\n// page dots\r\n( function( window, factory ) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'flickity/js/page-dots',[\r\n './flickity',\r\n 'unipointer/unipointer',\r\n 'fizzy-ui-utils/utils'\r\n ], function( Flickity, Unipointer, utils ) {\r\n return factory( window, Flickity, Unipointer, utils );\r\n });\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('./flickity'),\r\n require('unipointer'),\r\n require('fizzy-ui-utils')\r\n );\r\n } else {\r\n // browser global\r\n factory(\r\n window,\r\n window.Flickity,\r\n window.Unipointer,\r\n window.fizzyUIUtils\r\n );\r\n }\r\n\r\n}( window, function factory( window, Flickity, Unipointer, utils ) {\r\n\r\n// -------------------------- PageDots -------------------------- //\r\n\r\n\r\n\r\nfunction PageDots( parent ) {\r\n this.parent = parent;\r\n this._create();\r\n}\r\n\r\nPageDots.prototype = Object.create( Unipointer.prototype );\r\n\r\nPageDots.prototype._create = function() {\r\n // create holder element\r\n this.holder = document.createElement('ol');\r\n this.holder.className = 'flickity-page-dots';\r\n // create dots, array of elements\r\n this.dots = [];\r\n // events\r\n this.handleClick = this.onClick.bind( this );\r\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\r\n};\r\n\r\nPageDots.prototype.activate = function() {\r\n this.setDots();\r\n this.holder.addEventListener( 'click', this.handleClick );\r\n this.bindStartEvent( this.holder );\r\n // add to DOM\r\n this.parent.element.appendChild( this.holder );\r\n};\r\n\r\nPageDots.prototype.deactivate = function() {\r\n this.holder.removeEventListener( 'click', this.handleClick );\r\n this.unbindStartEvent( this.holder );\r\n // remove from DOM\r\n this.parent.element.removeChild( this.holder );\r\n};\r\n\r\nPageDots.prototype.setDots = function() {\r\n // get difference between number of slides and number of dots\r\n var delta = this.parent.slides.length - this.dots.length;\r\n if ( delta > 0 ) {\r\n this.addDots( delta );\r\n } else if ( delta < 0 ) {\r\n this.removeDots( -delta );\r\n }\r\n};\r\n\r\nPageDots.prototype.addDots = function( count ) {\r\n var fragment = document.createDocumentFragment();\r\n var newDots = [];\r\n var length = this.dots.length;\r\n var max = length + count;\r\n\r\n for ( var i = length; i < max; i++ ) {\r\n var dot = document.createElement('li');\r\n dot.className = 'dot';\r\n dot.setAttribute( 'aria-label', 'Page dot ' + ( i + 1 ) );\r\n fragment.appendChild( dot );\r\n newDots.push( dot );\r\n }\r\n\r\n this.holder.appendChild( fragment );\r\n this.dots = this.dots.concat( newDots );\r\n};\r\n\r\nPageDots.prototype.removeDots = function( count ) {\r\n // remove from this.dots collection\r\n var removeDots = this.dots.splice( this.dots.length - count, count );\r\n // remove from DOM\r\n removeDots.forEach( function( dot ) {\r\n this.holder.removeChild( dot );\r\n }, this );\r\n};\r\n\r\nPageDots.prototype.updateSelected = function() {\r\n // remove selected class on previous\r\n if ( this.selectedDot ) {\r\n this.selectedDot.className = 'dot';\r\n this.selectedDot.removeAttribute('aria-current');\r\n }\r\n // don't proceed if no dots\r\n if ( !this.dots.length ) {\r\n return;\r\n }\r\n this.selectedDot = this.dots[ this.parent.selectedIndex ];\r\n this.selectedDot.className = 'dot is-selected';\r\n this.selectedDot.setAttribute( 'aria-current', 'step' );\r\n};\r\n\r\nPageDots.prototype.onTap = // old method name, backwards-compatible\r\nPageDots.prototype.onClick = function( event ) {\r\n var target = event.target;\r\n // only care about dot clicks\r\n if ( target.nodeName != 'LI' ) {\r\n return;\r\n }\r\n\r\n this.parent.uiChange();\r\n var index = this.dots.indexOf( target );\r\n this.parent.select( index );\r\n};\r\n\r\nPageDots.prototype.destroy = function() {\r\n this.deactivate();\r\n this.allOff();\r\n};\r\n\r\nFlickity.PageDots = PageDots;\r\n\r\n// -------------------------- Flickity -------------------------- //\r\n\r\nutils.extend( Flickity.defaults, {\r\n pageDots: true\r\n});\r\n\r\nFlickity.createMethods.push('_createPageDots');\r\n\r\nvar proto = Flickity.prototype;\r\n\r\nproto._createPageDots = function() {\r\n if ( !this.options.pageDots ) {\r\n return;\r\n }\r\n this.pageDots = new PageDots( this );\r\n // events\r\n this.on( 'activate', this.activatePageDots );\r\n this.on( 'select', this.updateSelectedPageDots );\r\n this.on( 'cellChange', this.updatePageDots );\r\n this.on( 'resize', this.updatePageDots );\r\n this.on( 'deactivate', this.deactivatePageDots );\r\n};\r\n\r\nproto.activatePageDots = function() {\r\n this.pageDots.activate();\r\n};\r\n\r\nproto.updateSelectedPageDots = function() {\r\n this.pageDots.updateSelected();\r\n};\r\n\r\nproto.updatePageDots = function() {\r\n this.pageDots.setDots();\r\n};\r\n\r\nproto.deactivatePageDots = function() {\r\n this.pageDots.deactivate();\r\n};\r\n\r\n// ----- ----- //\r\n\r\nFlickity.PageDots = PageDots;\r\n\r\nreturn Flickity;\r\n\r\n}));\r\n\r\n// player & autoPlay\r\n( function( window, factory ) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'flickity/js/player',[\r\n 'ev-emitter/ev-emitter',\r\n 'fizzy-ui-utils/utils',\r\n './flickity'\r\n ], function( EvEmitter, utils, Flickity ) {\r\n return factory( EvEmitter, utils, Flickity );\r\n });\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n require('ev-emitter'),\r\n require('fizzy-ui-utils'),\r\n require('./flickity')\r\n );\r\n } else {\r\n // browser global\r\n factory(\r\n window.EvEmitter,\r\n window.fizzyUIUtils,\r\n window.Flickity\r\n );\r\n }\r\n\r\n}( window, function factory( EvEmitter, utils, Flickity ) {\r\n\r\n\r\n\r\n// -------------------------- Player -------------------------- //\r\n\r\nfunction Player( parent ) {\r\n this.parent = parent;\r\n this.state = 'stopped';\r\n // visibility change event handler\r\n this.onVisibilityChange = this.visibilityChange.bind( this );\r\n this.onVisibilityPlay = this.visibilityPlay.bind( this );\r\n}\r\n\r\nPlayer.prototype = Object.create( EvEmitter.prototype );\r\n\r\n// start play\r\nPlayer.prototype.play = function() {\r\n if ( this.state == 'playing' ) {\r\n return;\r\n }\r\n // do not play if page is hidden, start playing when page is visible\r\n var isPageHidden = document.hidden;\r\n if ( isPageHidden ) {\r\n document.addEventListener( 'visibilitychange', this.onVisibilityPlay );\r\n return;\r\n }\r\n\r\n this.state = 'playing';\r\n // listen to visibility change\r\n document.addEventListener( 'visibilitychange', this.onVisibilityChange );\r\n // start ticking\r\n this.tick();\r\n};\r\n\r\nPlayer.prototype.tick = function() {\r\n // do not tick if not playing\r\n if ( this.state != 'playing' ) {\r\n return;\r\n }\r\n\r\n var time = this.parent.options.autoPlay;\r\n // default to 3 seconds\r\n time = typeof time == 'number' ? time : 3000;\r\n var _this = this;\r\n // HACK: reset ticks if stopped and started within interval\r\n this.clear();\r\n this.timeout = setTimeout( function() {\r\n _this.parent.next( true );\r\n _this.tick();\r\n }, time );\r\n};\r\n\r\nPlayer.prototype.stop = function() {\r\n this.state = 'stopped';\r\n this.clear();\r\n // remove visibility change event\r\n document.removeEventListener( 'visibilitychange', this.onVisibilityChange );\r\n};\r\n\r\nPlayer.prototype.clear = function() {\r\n clearTimeout( this.timeout );\r\n};\r\n\r\nPlayer.prototype.pause = function() {\r\n if ( this.state == 'playing' ) {\r\n this.state = 'paused';\r\n this.clear();\r\n }\r\n};\r\n\r\nPlayer.prototype.unpause = function() {\r\n // re-start play if paused\r\n if ( this.state == 'paused' ) {\r\n this.play();\r\n }\r\n};\r\n\r\n// pause if page visibility is hidden, unpause if visible\r\nPlayer.prototype.visibilityChange = function() {\r\n var isPageHidden = document.hidden;\r\n this[ isPageHidden ? 'pause' : 'unpause' ]();\r\n};\r\n\r\nPlayer.prototype.visibilityPlay = function() {\r\n this.play();\r\n document.removeEventListener( 'visibilitychange', this.onVisibilityPlay );\r\n};\r\n\r\n// -------------------------- Flickity -------------------------- //\r\n\r\nutils.extend( Flickity.defaults, {\r\n pauseAutoPlayOnHover: true\r\n});\r\n\r\nFlickity.createMethods.push('_createPlayer');\r\nvar proto = Flickity.prototype;\r\n\r\nproto._createPlayer = function() {\r\n this.player = new Player( this );\r\n\r\n this.on( 'activate', this.activatePlayer );\r\n this.on( 'uiChange', this.stopPlayer );\r\n this.on( 'pointerDown', this.stopPlayer );\r\n this.on( 'deactivate', this.deactivatePlayer );\r\n};\r\n\r\nproto.activatePlayer = function() {\r\n if ( !this.options.autoPlay ) {\r\n return;\r\n }\r\n this.player.play();\r\n this.element.addEventListener( 'mouseenter', this );\r\n};\r\n\r\n// Player API, don't hate the ... thanks I know where the door is\r\n\r\nproto.playPlayer = function() {\r\n this.player.play();\r\n};\r\n\r\nproto.stopPlayer = function() {\r\n this.player.stop();\r\n};\r\n\r\nproto.pausePlayer = function() {\r\n this.player.pause();\r\n};\r\n\r\nproto.unpausePlayer = function() {\r\n this.player.unpause();\r\n};\r\n\r\nproto.deactivatePlayer = function() {\r\n this.player.stop();\r\n this.element.removeEventListener( 'mouseenter', this );\r\n};\r\n\r\n// ----- mouseenter/leave ----- //\r\n\r\n// pause auto-play on hover\r\nproto.onmouseenter = function() {\r\n if ( !this.options.pauseAutoPlayOnHover ) {\r\n return;\r\n }\r\n this.player.pause();\r\n this.element.addEventListener( 'mouseleave', this );\r\n};\r\n\r\n// resume auto-play on hover off\r\nproto.onmouseleave = function() {\r\n this.player.unpause();\r\n this.element.removeEventListener( 'mouseleave', this );\r\n};\r\n\r\n// ----- ----- //\r\n\r\nFlickity.Player = Player;\r\n\r\nreturn Flickity;\r\n\r\n}));\r\n\r\n// add, remove cell\r\n( function( window, factory ) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'flickity/js/add-remove-cell',[\r\n './flickity',\r\n 'fizzy-ui-utils/utils'\r\n ], function( Flickity, utils ) {\r\n return factory( window, Flickity, utils );\r\n });\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('./flickity'),\r\n require('fizzy-ui-utils')\r\n );\r\n } else {\r\n // browser global\r\n factory(\r\n window,\r\n window.Flickity,\r\n window.fizzyUIUtils\r\n );\r\n }\r\n\r\n}( window, function factory( window, Flickity, utils ) {\r\n\r\n\r\n\r\n// append cells to a document fragment\r\nfunction getCellsFragment( cells ) {\r\n var fragment = document.createDocumentFragment();\r\n cells.forEach( function( cell ) {\r\n fragment.appendChild( cell.element );\r\n });\r\n return fragment;\r\n}\r\n\r\n// -------------------------- add/remove cell prototype -------------------------- //\r\n\r\nvar proto = Flickity.prototype;\r\n\r\n/**\r\n * Insert, prepend, or append cells\r\n * @param {Element, Array, NodeList} elems\r\n * @param {Integer} index\r\n */\r\nproto.insert = function( elems, index ) {\r\n var cells = this._makeCells( elems );\r\n if ( !cells || !cells.length ) {\r\n return;\r\n }\r\n var len = this.cells.length;\r\n // default to append\r\n index = index === undefined ? len : index;\r\n // add cells with document fragment\r\n var fragment = getCellsFragment( cells );\r\n // append to slider\r\n var isAppend = index == len;\r\n if ( isAppend ) {\r\n this.slider.appendChild( fragment );\r\n } else {\r\n var insertCellElement = this.cells[ index ].element;\r\n this.slider.insertBefore( fragment, insertCellElement );\r\n }\r\n // add to this.cells\r\n if ( index === 0 ) {\r\n // prepend, add to start\r\n this.cells = cells.concat( this.cells );\r\n } else if ( isAppend ) {\r\n // append, add to end\r\n this.cells = this.cells.concat( cells );\r\n } else {\r\n // insert in this.cells\r\n var endCells = this.cells.splice( index, len - index );\r\n this.cells = this.cells.concat( cells ).concat( endCells );\r\n }\r\n\r\n this._sizeCells( cells );\r\n this.cellChange( index, true );\r\n};\r\n\r\nproto.append = function( elems ) {\r\n this.insert( elems, this.cells.length );\r\n};\r\n\r\nproto.prepend = function( elems ) {\r\n this.insert( elems, 0 );\r\n};\r\n\r\n/**\r\n * Remove cells\r\n * @param {Element, Array, NodeList} elems\r\n */\r\nproto.remove = function( elems ) {\r\n var cells = this.getCells( elems );\r\n if ( !cells || !cells.length ) {\r\n return;\r\n }\r\n\r\n var minCellIndex = this.cells.length - 1;\r\n // remove cells from collection & DOM\r\n cells.forEach( function( cell ) {\r\n cell.remove();\r\n var index = this.cells.indexOf( cell );\r\n minCellIndex = Math.min( index, minCellIndex );\r\n utils.removeFrom( this.cells, cell );\r\n }, this );\r\n\r\n this.cellChange( minCellIndex, true );\r\n};\r\n\r\n/**\r\n * logic to be run after a cell's size changes\r\n * @param {Element} elem - cell's element\r\n */\r\nproto.cellSizeChange = function( elem ) {\r\n var cell = this.getCell( elem );\r\n if ( !cell ) {\r\n return;\r\n }\r\n cell.getSize();\r\n\r\n var index = this.cells.indexOf( cell );\r\n this.cellChange( index );\r\n};\r\n\r\n/**\r\n * logic any time a cell is changed: added, removed, or size changed\r\n * @param {Integer} changedCellIndex - index of the changed cell, optional\r\n */\r\nproto.cellChange = function( changedCellIndex, isPositioningSlider ) {\r\n var prevSelectedElem = this.selectedElement;\r\n this._positionCells( changedCellIndex );\r\n this._getWrapShiftCells();\r\n this.setGallerySize();\r\n // update selectedIndex\r\n // try to maintain position & select previous selected element\r\n var cell = this.getCell( prevSelectedElem );\r\n if ( cell ) {\r\n this.selectedIndex = this.getCellSlideIndex( cell );\r\n }\r\n this.selectedIndex = Math.min( this.slides.length - 1, this.selectedIndex );\r\n\r\n this.emitEvent( 'cellChange', [ changedCellIndex ] );\r\n // position slider\r\n this.select( this.selectedIndex );\r\n // do not position slider after lazy load\r\n if ( isPositioningSlider ) {\r\n this.positionSliderAtSelected();\r\n }\r\n};\r\n\r\n// ----- ----- //\r\n\r\nreturn Flickity;\r\n\r\n}));\r\n\r\n// lazyload\r\n( function( window, factory ) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'flickity/js/lazyload',[\r\n './flickity',\r\n 'fizzy-ui-utils/utils'\r\n ], function( Flickity, utils ) {\r\n return factory( window, Flickity, utils );\r\n });\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('./flickity'),\r\n require('fizzy-ui-utils')\r\n );\r\n } else {\r\n // browser global\r\n factory(\r\n window,\r\n window.Flickity,\r\n window.fizzyUIUtils\r\n );\r\n }\r\n\r\n}( window, function factory( window, Flickity, utils ) {\r\n'use strict';\r\n\r\nFlickity.createMethods.push('_createLazyload');\r\nvar proto = Flickity.prototype;\r\n\r\nproto._createLazyload = function() {\r\n this.on( 'select', this.lazyLoad );\r\n};\r\n\r\nproto.lazyLoad = function() {\r\n var lazyLoad = this.options.lazyLoad;\r\n if ( !lazyLoad ) {\r\n return;\r\n }\r\n // get adjacent cells, use lazyLoad option for adjacent count\r\n var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\r\n var cellElems = this.getAdjacentCellElements( adjCount );\r\n // get lazy images in those cells\r\n var lazyImages = [];\r\n cellElems.forEach( function( cellElem ) {\r\n var lazyCellImages = getCellLazyImages( cellElem );\r\n lazyImages = lazyImages.concat( lazyCellImages );\r\n });\r\n // load lazy images\r\n lazyImages.forEach( function( img ) {\r\n new LazyLoader( img, this );\r\n }, this );\r\n};\r\n\r\nfunction getCellLazyImages( cellElem ) {\r\n // check if cell element is lazy image\r\n if ( cellElem.nodeName == 'IMG' ) {\r\n var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\r\n var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\r\n var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\r\n if ( lazyloadAttr || srcAttr || srcsetAttr ) {\r\n return [ cellElem ];\r\n }\r\n }\r\n // select lazy images in cell\r\n var lazySelector = 'img[data-flickity-lazyload], ' +\r\n 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\r\n var imgs = cellElem.querySelectorAll( lazySelector );\r\n return utils.makeArray( imgs );\r\n}\r\n\r\n// -------------------------- LazyLoader -------------------------- //\r\n\r\n/**\r\n * class to handle loading images\r\n */\r\nfunction LazyLoader( img, flickity ) {\r\n this.img = img;\r\n this.flickity = flickity;\r\n this.load();\r\n}\r\n\r\nLazyLoader.prototype.handleEvent = utils.handleEvent;\r\n\r\nLazyLoader.prototype.load = function() {\r\n this.img.addEventListener( 'load', this );\r\n this.img.addEventListener( 'error', this );\r\n // get src & srcset\r\n var src = this.img.getAttribute('data-flickity-lazyload') ||\r\n this.img.getAttribute('data-flickity-lazyload-src');\r\n var srcset = this.img.getAttribute('data-flickity-lazyload-srcset');\r\n // set src & serset\r\n this.img.src = src;\r\n if ( srcset ) {\r\n this.img.setAttribute( 'srcset', srcset );\r\n }\r\n // remove attr\r\n this.img.removeAttribute('data-flickity-lazyload');\r\n this.img.removeAttribute('data-flickity-lazyload-src');\r\n this.img.removeAttribute('data-flickity-lazyload-srcset');\r\n};\r\n\r\nLazyLoader.prototype.onload = function( event ) {\r\n this.complete( event, 'flickity-lazyloaded' );\r\n};\r\n\r\nLazyLoader.prototype.onerror = function( event ) {\r\n this.complete( event, 'flickity-lazyerror' );\r\n};\r\n\r\nLazyLoader.prototype.complete = function( event, className ) {\r\n // unbind events\r\n this.img.removeEventListener( 'load', this );\r\n this.img.removeEventListener( 'error', this );\r\n\r\n var cell = this.flickity.getParentCell( this.img );\r\n var cellElem = cell && cell.element;\r\n this.flickity.cellSizeChange( cellElem );\r\n\r\n this.img.classList.add( className );\r\n this.flickity.dispatchEvent( 'lazyLoad', event, cellElem );\r\n};\r\n\r\n// ----- ----- //\r\n\r\nFlickity.LazyLoader = LazyLoader;\r\n\r\nreturn Flickity;\r\n\r\n}));\r\n\r\n/*!\r\n * Flickity v2.2.0\r\n * Touch, responsive, flickable carousels\r\n *\r\n * Licensed GPLv3 for open source use\r\n * or Flickity Commercial License for commercial use\r\n *\r\n * https://flickity.metafizzy.co\r\n * Copyright 2015-2018 Metafizzy\r\n */\r\n\r\n( function( window, factory ) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'flickity/js/index',[\r\n './flickity',\r\n './drag',\r\n './prev-next-button',\r\n './page-dots',\r\n './player',\r\n './add-remove-cell',\r\n './lazyload'\r\n ], factory );\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n require('./flickity'),\r\n require('./drag'),\r\n require('./prev-next-button'),\r\n require('./page-dots'),\r\n require('./player'),\r\n require('./add-remove-cell'),\r\n require('./lazyload')\r\n );\r\n }\r\n\r\n})( window, function factory( Flickity ) {\r\n /*jshint strict: false*/\r\n return Flickity;\r\n});\r\n\r\n/*!\r\n * Flickity asNavFor v2.0.1\r\n * enable asNavFor for Flickity\r\n */\r\n\r\n/*jshint browser: true, undef: true, unused: true, strict: true*/\r\n\r\n( function( window, factory ) {\r\n // universal module definition\r\n /*jshint strict: false */ /*globals define, module, require */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'flickity-as-nav-for/as-nav-for',[\r\n 'flickity/js/index',\r\n 'fizzy-ui-utils/utils'\r\n ], factory );\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n require('flickity'),\r\n require('fizzy-ui-utils')\r\n );\r\n } else {\r\n // browser global\r\n window.Flickity = factory(\r\n window.Flickity,\r\n window.fizzyUIUtils\r\n );\r\n }\r\n\r\n}( window, function factory( Flickity, utils ) {\r\n\r\n\r\n\r\n// -------------------------- asNavFor prototype -------------------------- //\r\n\r\n// Flickity.defaults.asNavFor = null;\r\n\r\nFlickity.createMethods.push('_createAsNavFor');\r\n\r\nvar proto = Flickity.prototype;\r\n\r\nproto._createAsNavFor = function() {\r\n this.on( 'activate', this.activateAsNavFor );\r\n this.on( 'deactivate', this.deactivateAsNavFor );\r\n this.on( 'destroy', this.destroyAsNavFor );\r\n\r\n var asNavForOption = this.options.asNavFor;\r\n if ( !asNavForOption ) {\r\n return;\r\n }\r\n // HACK do async, give time for other flickity to be initalized\r\n var _this = this;\r\n setTimeout( function initNavCompanion() {\r\n _this.setNavCompanion( asNavForOption );\r\n });\r\n};\r\n\r\nproto.setNavCompanion = function( elem ) {\r\n elem = utils.getQueryElement( elem );\r\n var companion = Flickity.data( elem );\r\n // stop if no companion or companion is self\r\n if ( !companion || companion == this ) {\r\n return;\r\n }\r\n\r\n this.navCompanion = companion;\r\n // companion select\r\n var _this = this;\r\n this.onNavCompanionSelect = function() {\r\n _this.navCompanionSelect();\r\n };\r\n companion.on( 'select', this.onNavCompanionSelect );\r\n // click\r\n this.on( 'staticClick', this.onNavStaticClick );\r\n\r\n this.navCompanionSelect( true );\r\n};\r\n\r\nproto.navCompanionSelect = function( isInstant ) {\r\n if ( !this.navCompanion ) {\r\n return;\r\n }\r\n // select slide that matches first cell of slide\r\n var selectedCell = this.navCompanion.selectedCells[0];\r\n var firstIndex = this.navCompanion.cells.indexOf( selectedCell );\r\n var lastIndex = firstIndex + this.navCompanion.selectedCells.length - 1;\r\n var selectIndex = Math.floor( lerp( firstIndex, lastIndex,\r\n this.navCompanion.cellAlign ) );\r\n this.selectCell( selectIndex, false, isInstant );\r\n // set nav selected class\r\n this.removeNavSelectedElements();\r\n // stop if companion has more cells than this one\r\n if ( selectIndex >= this.cells.length ) {\r\n return;\r\n }\r\n\r\n var selectedCells = this.cells.slice( firstIndex, lastIndex + 1 );\r\n this.navSelectedElements = selectedCells.map( function( cell ) {\r\n return cell.element;\r\n });\r\n this.changeNavSelectedClass('add');\r\n};\r\n\r\nfunction lerp( a, b, t ) {\r\n return ( b - a ) * t + a;\r\n}\r\n\r\nproto.changeNavSelectedClass = function( method ) {\r\n this.navSelectedElements.forEach( function( navElem ) {\r\n navElem.classList[ method ]('is-nav-selected');\r\n });\r\n};\r\n\r\nproto.activateAsNavFor = function() {\r\n this.navCompanionSelect( true );\r\n};\r\n\r\nproto.removeNavSelectedElements = function() {\r\n if ( !this.navSelectedElements ) {\r\n return;\r\n }\r\n this.changeNavSelectedClass('remove');\r\n delete this.navSelectedElements;\r\n};\r\n\r\nproto.onNavStaticClick = function( event, pointer, cellElement, cellIndex ) {\r\n if ( typeof cellIndex == 'number' ) {\r\n this.navCompanion.selectCell( cellIndex );\r\n }\r\n};\r\n\r\nproto.deactivateAsNavFor = function() {\r\n this.removeNavSelectedElements();\r\n};\r\n\r\nproto.destroyAsNavFor = function() {\r\n if ( !this.navCompanion ) {\r\n return;\r\n }\r\n this.navCompanion.off( 'select', this.onNavCompanionSelect );\r\n this.off( 'staticClick', this.onNavStaticClick );\r\n delete this.navCompanion;\r\n};\r\n\r\n// ----- ----- //\r\n\r\nreturn Flickity;\r\n\r\n}));\r\n\r\n/*!\r\n * imagesLoaded v4.1.4\r\n * JavaScript is all like \"You images are done yet or what?\"\r\n * MIT License\r\n */\r\n\r\n( function( window, factory ) { 'use strict';\r\n // universal module definition\r\n\r\n /*global define: false, module: false, require: false */\r\n\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( 'imagesloaded/imagesloaded',[\r\n 'ev-emitter/ev-emitter'\r\n ], function( EvEmitter ) {\r\n return factory( window, EvEmitter );\r\n });\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('ev-emitter')\r\n );\r\n } else {\r\n // browser global\r\n window.imagesLoaded = factory(\r\n window,\r\n window.EvEmitter\r\n );\r\n }\r\n\r\n})( typeof window !== 'undefined' ? window : this,\r\n\r\n// -------------------------- factory -------------------------- //\r\n\r\nfunction factory( window, EvEmitter ) {\r\n\r\n\r\n\r\nvar $ = window.jQuery;\r\nvar console = window.console;\r\n\r\n// -------------------------- helpers -------------------------- //\r\n\r\n// extend objects\r\nfunction extend( a, b ) {\r\n for ( var prop in b ) {\r\n a[ prop ] = b[ prop ];\r\n }\r\n return a;\r\n}\r\n\r\nvar arraySlice = Array.prototype.slice;\r\n\r\n// turn element or nodeList into an array\r\nfunction makeArray( obj ) {\r\n if ( Array.isArray( obj ) ) {\r\n // use object if already an array\r\n return obj;\r\n }\r\n\r\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\r\n if ( isArrayLike ) {\r\n // convert nodeList to array\r\n return arraySlice.call( obj );\r\n }\r\n\r\n // array of single index\r\n return [ obj ];\r\n}\r\n\r\n// -------------------------- imagesLoaded -------------------------- //\r\n\r\n/**\r\n * @param {Array, Element, NodeList, String} elem\r\n * @param {Object or Function} options - if function, use as callback\r\n * @param {Function} onAlways - callback function\r\n */\r\nfunction ImagesLoaded( elem, options, onAlways ) {\r\n // coerce ImagesLoaded() without new, to be new ImagesLoaded()\r\n if ( !( this instanceof ImagesLoaded ) ) {\r\n return new ImagesLoaded( elem, options, onAlways );\r\n }\r\n // use elem as selector string\r\n var queryElem = elem;\r\n if ( typeof elem == 'string' ) {\r\n queryElem = document.querySelectorAll( elem );\r\n }\r\n // bail if bad element\r\n if ( !queryElem ) {\r\n console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) );\r\n return;\r\n }\r\n\r\n this.elements = makeArray( queryElem );\r\n this.options = extend( {}, this.options );\r\n // shift arguments if no options set\r\n if ( typeof options == 'function' ) {\r\n onAlways = options;\r\n } else {\r\n extend( this.options, options );\r\n }\r\n\r\n if ( onAlways ) {\r\n this.on( 'always', onAlways );\r\n }\r\n\r\n this.getImages();\r\n\r\n if ( $ ) {\r\n // add jQuery Deferred object\r\n this.jqDeferred = new $.Deferred();\r\n }\r\n\r\n // HACK check async to allow time to bind listeners\r\n setTimeout( this.check.bind( this ) );\r\n}\r\n\r\nImagesLoaded.prototype = Object.create( EvEmitter.prototype );\r\n\r\nImagesLoaded.prototype.options = {};\r\n\r\nImagesLoaded.prototype.getImages = function() {\r\n this.images = [];\r\n\r\n // filter & find items if we have an item selector\r\n this.elements.forEach( this.addElementImages, this );\r\n};\r\n\r\n/**\r\n * @param {Node} element\r\n */\r\nImagesLoaded.prototype.addElementImages = function( elem ) {\r\n // filter siblings\r\n if ( elem.nodeName == 'IMG' ) {\r\n this.addImage( elem );\r\n }\r\n // get background image on element\r\n if ( this.options.background === true ) {\r\n this.addElementBackgroundImages( elem );\r\n }\r\n\r\n // find children\r\n // no non-element nodes, #143\r\n var nodeType = elem.nodeType;\r\n if ( !nodeType || !elementNodeTypes[ nodeType ] ) {\r\n return;\r\n }\r\n var childImgs = elem.querySelectorAll('img');\r\n // concat childElems to filterFound array\r\n for ( var i=0; i < childImgs.length; i++ ) {\r\n var img = childImgs[i];\r\n this.addImage( img );\r\n }\r\n\r\n // get child background images\r\n if ( typeof this.options.background == 'string' ) {\r\n var children = elem.querySelectorAll( this.options.background );\r\n for ( i=0; i < children.length; i++ ) {\r\n var child = children[i];\r\n this.addElementBackgroundImages( child );\r\n }\r\n }\r\n};\r\n\r\nvar elementNodeTypes = {\r\n 1: true,\r\n 9: true,\r\n 11: true\r\n};\r\n\r\nImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {\r\n var style = getComputedStyle( elem );\r\n if ( !style ) {\r\n // Firefox returns null if in a hidden iframe https://bugzil.la/548397\r\n return;\r\n }\r\n // get url inside url(\"...\")\r\n var reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\r\n var matches = reURL.exec( style.backgroundImage );\r\n while ( matches !== null ) {\r\n var url = matches && matches[2];\r\n if ( url ) {\r\n this.addBackground( url, elem );\r\n }\r\n matches = reURL.exec( style.backgroundImage );\r\n }\r\n};\r\n\r\n/**\r\n * @param {Image} img\r\n */\r\nImagesLoaded.prototype.addImage = function( img ) {\r\n var loadingImage = new LoadingImage( img );\r\n this.images.push( loadingImage );\r\n};\r\n\r\nImagesLoaded.prototype.addBackground = function( url, elem ) {\r\n var background = new Background( url, elem );\r\n this.images.push( background );\r\n};\r\n\r\nImagesLoaded.prototype.check = function() {\r\n var _this = this;\r\n this.progressedCount = 0;\r\n this.hasAnyBroken = false;\r\n // complete if no images\r\n if ( !this.images.length ) {\r\n this.complete();\r\n return;\r\n }\r\n\r\n function onProgress( image, elem, message ) {\r\n // HACK - Chrome triggers event before object properties have changed. #83\r\n setTimeout( function() {\r\n _this.progress( image, elem, message );\r\n });\r\n }\r\n\r\n this.images.forEach( function( loadingImage ) {\r\n loadingImage.once( 'progress', onProgress );\r\n loadingImage.check();\r\n });\r\n};\r\n\r\nImagesLoaded.prototype.progress = function( image, elem, message ) {\r\n this.progressedCount++;\r\n this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;\r\n // progress event\r\n this.emitEvent( 'progress', [ this, image, elem ] );\r\n if ( this.jqDeferred && this.jqDeferred.notify ) {\r\n this.jqDeferred.notify( this, image );\r\n }\r\n // check if completed\r\n if ( this.progressedCount == this.images.length ) {\r\n this.complete();\r\n }\r\n\r\n if ( this.options.debug && console ) {\r\n console.log( 'progress: ' + message, image, elem );\r\n }\r\n};\r\n\r\nImagesLoaded.prototype.complete = function() {\r\n var eventName = this.hasAnyBroken ? 'fail' : 'done';\r\n this.isComplete = true;\r\n this.emitEvent( eventName, [ this ] );\r\n this.emitEvent( 'always', [ this ] );\r\n if ( this.jqDeferred ) {\r\n var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\r\n this.jqDeferred[ jqMethod ]( this );\r\n }\r\n};\r\n\r\n// -------------------------- -------------------------- //\r\n\r\nfunction LoadingImage( img ) {\r\n this.img = img;\r\n}\r\n\r\nLoadingImage.prototype = Object.create( EvEmitter.prototype );\r\n\r\nLoadingImage.prototype.check = function() {\r\n // If complete is true and browser supports natural sizes,\r\n // try to check for image status manually.\r\n var isComplete = this.getIsImageComplete();\r\n if ( isComplete ) {\r\n // report based on naturalWidth\r\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\r\n return;\r\n }\r\n\r\n // If none of the checks above matched, simulate loading on detached element.\r\n this.proxyImage = new Image();\r\n this.proxyImage.addEventListener( 'load', this );\r\n this.proxyImage.addEventListener( 'error', this );\r\n // bind to image as well for Firefox. #191\r\n this.img.addEventListener( 'load', this );\r\n this.img.addEventListener( 'error', this );\r\n this.proxyImage.src = this.img.src;\r\n};\r\n\r\nLoadingImage.prototype.getIsImageComplete = function() {\r\n // check for non-zero, non-undefined naturalWidth\r\n // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671\r\n return this.img.complete && this.img.naturalWidth;\r\n};\r\n\r\nLoadingImage.prototype.confirm = function( isLoaded, message ) {\r\n this.isLoaded = isLoaded;\r\n this.emitEvent( 'progress', [ this, this.img, message ] );\r\n};\r\n\r\n// ----- events ----- //\r\n\r\n// trigger specified handler for event type\r\nLoadingImage.prototype.handleEvent = function( event ) {\r\n var method = 'on' + event.type;\r\n if ( this[ method ] ) {\r\n this[ method ]( event );\r\n }\r\n};\r\n\r\nLoadingImage.prototype.onload = function() {\r\n this.confirm( true, 'onload' );\r\n this.unbindEvents();\r\n};\r\n\r\nLoadingImage.prototype.onerror = function() {\r\n this.confirm( false, 'onerror' );\r\n this.unbindEvents();\r\n};\r\n\r\nLoadingImage.prototype.unbindEvents = function() {\r\n this.proxyImage.removeEventListener( 'load', this );\r\n this.proxyImage.removeEventListener( 'error', this );\r\n this.img.removeEventListener( 'load', this );\r\n this.img.removeEventListener( 'error', this );\r\n};\r\n\r\n// -------------------------- Background -------------------------- //\r\n\r\nfunction Background( url, element ) {\r\n this.url = url;\r\n this.element = element;\r\n this.img = new Image();\r\n}\r\n\r\n// inherit LoadingImage prototype\r\nBackground.prototype = Object.create( LoadingImage.prototype );\r\n\r\nBackground.prototype.check = function() {\r\n this.img.addEventListener( 'load', this );\r\n this.img.addEventListener( 'error', this );\r\n this.img.src = this.url;\r\n // check if image is already complete\r\n var isComplete = this.getIsImageComplete();\r\n if ( isComplete ) {\r\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\r\n this.unbindEvents();\r\n }\r\n};\r\n\r\nBackground.prototype.unbindEvents = function() {\r\n this.img.removeEventListener( 'load', this );\r\n this.img.removeEventListener( 'error', this );\r\n};\r\n\r\nBackground.prototype.confirm = function( isLoaded, message ) {\r\n this.isLoaded = isLoaded;\r\n this.emitEvent( 'progress', [ this, this.element, message ] );\r\n};\r\n\r\n// -------------------------- jQuery -------------------------- //\r\n\r\nImagesLoaded.makeJQueryPlugin = function( jQuery ) {\r\n jQuery = jQuery || window.jQuery;\r\n if ( !jQuery ) {\r\n return;\r\n }\r\n // set local variable\r\n $ = jQuery;\r\n // $().imagesLoaded()\r\n $.fn.imagesLoaded = function( options, callback ) {\r\n var instance = new ImagesLoaded( this, options, callback );\r\n return instance.jqDeferred.promise( $(this) );\r\n };\r\n};\r\n// try making plugin\r\nImagesLoaded.makeJQueryPlugin();\r\n\r\n// -------------------------- -------------------------- //\r\n\r\nreturn ImagesLoaded;\r\n\r\n});\r\n\r\n/*!\r\n * Flickity imagesLoaded v2.0.0\r\n * enables imagesLoaded option for Flickity\r\n */\r\n\r\n/*jshint browser: true, strict: true, undef: true, unused: true */\r\n\r\n( function( window, factory ) {\r\n // universal module definition\r\n /*jshint strict: false */ /*globals define, module, require */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( [\r\n 'flickity/js/index',\r\n 'imagesloaded/imagesloaded'\r\n ], function( Flickity, imagesLoaded ) {\r\n return factory( window, Flickity, imagesLoaded );\r\n });\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('flickity'),\r\n require('imagesloaded')\r\n );\r\n } else {\r\n // browser global\r\n window.Flickity = factory(\r\n window,\r\n window.Flickity,\r\n window.imagesLoaded\r\n );\r\n }\r\n\r\n}( window, function factory( window, Flickity, imagesLoaded ) {\r\n'use strict';\r\n\r\nFlickity.createMethods.push('_createImagesLoaded');\r\n\r\nvar proto = Flickity.prototype;\r\n\r\nproto._createImagesLoaded = function() {\r\n this.on( 'activate', this.imagesLoaded );\r\n};\r\n\r\nproto.imagesLoaded = function() {\r\n if ( !this.options.imagesLoaded ) {\r\n return;\r\n }\r\n var _this = this;\r\n function onImagesLoadedProgress( instance, image ) {\r\n var cell = _this.getParentCell( image.img );\r\n _this.cellSizeChange( cell && cell.element );\r\n if ( !_this.options.freeScroll ) {\r\n _this.positionSliderAtSelected();\r\n }\r\n }\r\n imagesLoaded( this.slider ).on( 'progress', onImagesLoadedProgress );\r\n};\r\n\r\nreturn Flickity;\r\n\r\n}));\r\n\r\n","/*!\r\n * Isotope PACKAGED v3.0.6\r\n *\r\n * Licensed GPLv3 for open source use\r\n * or Isotope Commercial License for commercial use\r\n *\r\n * https://isotope.metafizzy.co\r\n * Copyright 2010-2018 Metafizzy\r\n */\r\n\r\n/**\r\n * Bridget makes jQuery widgets\r\n * v2.0.1\r\n * MIT license\r\n */\r\n\r\n/* jshint browser: true, strict: true, undef: true, unused: true */\r\n\r\n(function (window, factory) {\r\n // universal module definition\r\n /*jshint strict: false */ /* globals define, module, require */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('jquery-bridget/jquery-bridget', ['jquery'], function (jQuery) {\r\n return factory(window, jQuery);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('jquery')\r\n );\r\n } else {\r\n // browser global\r\n window.jQueryBridget = factory(\r\n window,\r\n window.jQuery\r\n );\r\n }\r\n\r\n}(window, function factory(window, jQuery) {\r\n 'use strict';\r\n\r\n // ----- utils ----- //\r\n\r\n var arraySlice = Array.prototype.slice;\r\n\r\n // helper function for logging errors\r\n // $.error breaks jQuery chaining\r\n var console = window.console;\r\n var logError = typeof console == 'undefined' ? function () { } :\r\n function (message) {\r\n console.error(message);\r\n };\r\n\r\n // ----- jQueryBridget ----- //\r\n\r\n function jQueryBridget(namespace, PluginClass, $) {\r\n $ = $ || jQuery || window.jQuery;\r\n if (!$) {\r\n return;\r\n }\r\n\r\n // add option method -> $().plugin('option', {...})\r\n if (!PluginClass.prototype.option) {\r\n // option setter\r\n PluginClass.prototype.option = function (opts) {\r\n // bail out if not an object\r\n if (!$.isPlainObject(opts)) {\r\n return;\r\n }\r\n this.options = $.extend(true, this.options, opts);\r\n };\r\n }\r\n\r\n // make jQuery plugin\r\n $.fn[namespace] = function (arg0 /*, arg1 */) {\r\n if (typeof arg0 == 'string') {\r\n // method call $().plugin( 'methodName', { options } )\r\n // shift arguments by 1\r\n var args = arraySlice.call(arguments, 1);\r\n return methodCall(this, arg0, args);\r\n }\r\n // just $().plugin({ options })\r\n plainCall(this, arg0);\r\n return this;\r\n };\r\n\r\n // $().plugin('methodName')\r\n function methodCall($elems, methodName, args) {\r\n var returnValue;\r\n var pluginMethodStr = '$().' + namespace + '(\"' + methodName + '\")';\r\n\r\n $elems.each(function (i, elem) {\r\n // get instance\r\n var instance = $.data(elem, namespace);\r\n if (!instance) {\r\n logError(namespace + ' not initialized. Cannot call methods, i.e. ' +\r\n pluginMethodStr);\r\n return;\r\n }\r\n\r\n var method = instance[methodName];\r\n if (!method || methodName.charAt(0) == '_') {\r\n logError(pluginMethodStr + ' is not a valid method');\r\n return;\r\n }\r\n\r\n // apply method, get return value\r\n var value = method.apply(instance, args);\r\n // set return value if value is returned, use only first value\r\n returnValue = returnValue === undefined ? value : returnValue;\r\n });\r\n\r\n return returnValue !== undefined ? returnValue : $elems;\r\n }\r\n\r\n function plainCall($elems, options) {\r\n $elems.each(function (i, elem) {\r\n var instance = $.data(elem, namespace);\r\n if (instance) {\r\n // set options & init\r\n instance.option(options);\r\n instance._init();\r\n } else {\r\n // initialize new instance\r\n instance = new PluginClass(elem, options);\r\n $.data(elem, namespace, instance);\r\n }\r\n });\r\n }\r\n\r\n updateJQuery($);\r\n\r\n }\r\n\r\n // ----- updateJQuery ----- //\r\n\r\n // set $.bridget for v1 backwards compatibility\r\n function updateJQuery($) {\r\n if (!$ || ($ && $.bridget)) {\r\n return;\r\n }\r\n $.bridget = jQueryBridget;\r\n }\r\n\r\n updateJQuery(jQuery || window.jQuery);\r\n\r\n // ----- ----- //\r\n\r\n return jQueryBridget;\r\n\r\n}));\r\n\r\n/**\r\n * EvEmitter v1.1.0\r\n * Lil' event emitter\r\n * MIT License\r\n */\r\n\r\n/* jshint unused: true, undef: true, strict: true */\r\n\r\n(function (global, factory) {\r\n // universal module definition\r\n /* jshint strict: false */ /* globals define, module, window */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD - RequireJS\r\n define('ev-emitter/ev-emitter', factory);\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS - Browserify, Webpack\r\n module.exports = factory();\r\n } else {\r\n // Browser globals\r\n global.EvEmitter = factory();\r\n }\r\n\r\n}(typeof window != 'undefined' ? window : this, function () {\r\n\r\n\r\n\r\n function EvEmitter() { }\r\n\r\n var proto = EvEmitter.prototype;\r\n\r\n proto.on = function (eventName, listener) {\r\n if (!eventName || !listener) {\r\n return;\r\n }\r\n // set events hash\r\n var events = this._events = this._events || {};\r\n // set listeners array\r\n var listeners = events[eventName] = events[eventName] || [];\r\n // only add once\r\n if (listeners.indexOf(listener) == -1) {\r\n listeners.push(listener);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n proto.once = function (eventName, listener) {\r\n if (!eventName || !listener) {\r\n return;\r\n }\r\n // add event\r\n this.on(eventName, listener);\r\n // set once flag\r\n // set onceEvents hash\r\n var onceEvents = this._onceEvents = this._onceEvents || {};\r\n // set onceListeners object\r\n var onceListeners = onceEvents[eventName] = onceEvents[eventName] || {};\r\n // set flag\r\n onceListeners[listener] = true;\r\n\r\n return this;\r\n };\r\n\r\n proto.off = function (eventName, listener) {\r\n var listeners = this._events && this._events[eventName];\r\n if (!listeners || !listeners.length) {\r\n return;\r\n }\r\n var index = listeners.indexOf(listener);\r\n if (index != -1) {\r\n listeners.splice(index, 1);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n proto.emitEvent = function (eventName, args) {\r\n var listeners = this._events && this._events[eventName];\r\n if (!listeners || !listeners.length) {\r\n return;\r\n }\r\n // copy over to avoid interference if .off() in listener\r\n listeners = listeners.slice(0);\r\n args = args || [];\r\n // once stuff\r\n var onceListeners = this._onceEvents && this._onceEvents[eventName];\r\n\r\n for (var i = 0; i < listeners.length; i++) {\r\n var listener = listeners[i]\r\n var isOnce = onceListeners && onceListeners[listener];\r\n if (isOnce) {\r\n // remove listener\r\n // remove before trigger to prevent recursion\r\n this.off(eventName, listener);\r\n // unset once flag\r\n delete onceListeners[listener];\r\n }\r\n // trigger listener\r\n listener.apply(this, args);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n proto.allOff = function () {\r\n delete this._events;\r\n delete this._onceEvents;\r\n };\r\n\r\n return EvEmitter;\r\n\r\n}));\r\n\r\n/*!\r\n * getSize v2.0.3\r\n * measure size of elements\r\n * MIT license\r\n */\r\n\r\n/* jshint browser: true, strict: true, undef: true, unused: true */\r\n/* globals console: false */\r\n\r\n(function (window, factory) {\r\n /* jshint strict: false */ /* globals define, module */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('get-size/get-size', factory);\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory();\r\n } else {\r\n // browser global\r\n window.getSize = factory();\r\n }\r\n\r\n})(window, function factory() {\r\n 'use strict';\r\n\r\n // -------------------------- helpers -------------------------- //\r\n\r\n // get a number from a string, not a percentage\r\n function getStyleSize(value) {\r\n var num = parseFloat(value);\r\n // not a percent like '100%', and a number\r\n var isValid = value.indexOf('%') == -1 && !isNaN(num);\r\n return isValid && num;\r\n }\r\n\r\n function noop() { }\r\n\r\n var logError = typeof console == 'undefined' ? noop :\r\n function (message) {\r\n console.error(message);\r\n };\r\n\r\n // -------------------------- measurements -------------------------- //\r\n\r\n var measurements = [\r\n 'paddingLeft',\r\n 'paddingRight',\r\n 'paddingTop',\r\n 'paddingBottom',\r\n 'marginLeft',\r\n 'marginRight',\r\n 'marginTop',\r\n 'marginBottom',\r\n 'borderLeftWidth',\r\n 'borderRightWidth',\r\n 'borderTopWidth',\r\n 'borderBottomWidth'\r\n ];\r\n\r\n var measurementsLength = measurements.length;\r\n\r\n function getZeroSize() {\r\n var size = {\r\n width: 0,\r\n height: 0,\r\n innerWidth: 0,\r\n innerHeight: 0,\r\n outerWidth: 0,\r\n outerHeight: 0\r\n };\r\n for (var i = 0; i < measurementsLength; i++) {\r\n var measurement = measurements[i];\r\n size[measurement] = 0;\r\n }\r\n return size;\r\n }\r\n\r\n // -------------------------- getStyle -------------------------- //\r\n\r\n /**\r\n * getStyle, get style of element, check for Firefox bug\r\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\r\n */\r\n function getStyle(elem) {\r\n var style = getComputedStyle(elem);\r\n if (!style) {\r\n logError('Style returned ' + style +\r\n '. Are you running this code in a hidden iframe on Firefox? ' +\r\n 'See https://bit.ly/getsizebug1');\r\n }\r\n return style;\r\n }\r\n\r\n // -------------------------- setup -------------------------- //\r\n\r\n var isSetup = false;\r\n\r\n var isBoxSizeOuter;\r\n\r\n /**\r\n * setup\r\n * check isBoxSizerOuter\r\n * do on first getSize() rather than on page load for Firefox bug\r\n */\r\n function setup() {\r\n // setup once\r\n if (isSetup) {\r\n return;\r\n }\r\n isSetup = true;\r\n\r\n // -------------------------- box sizing -------------------------- //\r\n\r\n /**\r\n * Chrome & Safari measure the outer-width on style.width on border-box elems\r\n * IE11 & Firefox<29 measures the inner-width\r\n */\r\n var div = document.createElement('div');\r\n div.style.width = '200px';\r\n div.style.padding = '1px 2px 3px 4px';\r\n div.style.borderStyle = 'solid';\r\n div.style.borderWidth = '1px 2px 3px 4px';\r\n div.style.boxSizing = 'border-box';\r\n\r\n var body = document.body || document.documentElement;\r\n body.appendChild(div);\r\n var style = getStyle(div);\r\n // round value for browser zoom. desandro/masonry#928\r\n isBoxSizeOuter = Math.round(getStyleSize(style.width)) == 200;\r\n getSize.isBoxSizeOuter = isBoxSizeOuter;\r\n\r\n body.removeChild(div);\r\n }\r\n\r\n // -------------------------- getSize -------------------------- //\r\n\r\n function getSize(elem) {\r\n setup();\r\n\r\n // use querySeletor if elem is string\r\n if (typeof elem == 'string') {\r\n elem = document.querySelector(elem);\r\n }\r\n\r\n // do not proceed on non-objects\r\n if (!elem || typeof elem != 'object' || !elem.nodeType) {\r\n return;\r\n }\r\n\r\n var style = getStyle(elem);\r\n\r\n // if hidden, everything is 0\r\n if (style.display == 'none') {\r\n return getZeroSize();\r\n }\r\n\r\n var size = {};\r\n size.width = elem.offsetWidth;\r\n size.height = elem.offsetHeight;\r\n\r\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\r\n\r\n // get all measurements\r\n for (var i = 0; i < measurementsLength; i++) {\r\n var measurement = measurements[i];\r\n var value = style[measurement];\r\n var num = parseFloat(value);\r\n // any 'auto', 'medium' value will be 0\r\n size[measurement] = !isNaN(num) ? num : 0;\r\n }\r\n\r\n var paddingWidth = size.paddingLeft + size.paddingRight;\r\n var paddingHeight = size.paddingTop + size.paddingBottom;\r\n var marginWidth = size.marginLeft + size.marginRight;\r\n var marginHeight = size.marginTop + size.marginBottom;\r\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\r\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\r\n\r\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\r\n\r\n // overwrite width and height if we can get it from style\r\n var styleWidth = getStyleSize(style.width);\r\n if (styleWidth !== false) {\r\n size.width = styleWidth +\r\n // add padding and border unless it's already including it\r\n (isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth);\r\n }\r\n\r\n var styleHeight = getStyleSize(style.height);\r\n if (styleHeight !== false) {\r\n size.height = styleHeight +\r\n // add padding and border unless it's already including it\r\n (isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight);\r\n }\r\n\r\n size.innerWidth = size.width - (paddingWidth + borderWidth);\r\n size.innerHeight = size.height - (paddingHeight + borderHeight);\r\n\r\n size.outerWidth = size.width + marginWidth;\r\n size.outerHeight = size.height + marginHeight;\r\n\r\n return size;\r\n }\r\n\r\n return getSize;\r\n\r\n});\r\n\r\n/**\r\n * matchesSelector v2.0.2\r\n * matchesSelector( element, '.selector' )\r\n * MIT license\r\n */\r\n\r\n/*jshint browser: true, strict: true, undef: true, unused: true */\r\n\r\n(function (window, factory) {\r\n /*global define: false, module: false */\r\n 'use strict';\r\n // universal module definition\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('desandro-matches-selector/matches-selector', factory);\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory();\r\n } else {\r\n // browser global\r\n window.matchesSelector = factory();\r\n }\r\n\r\n}(window, function factory() {\r\n 'use strict';\r\n\r\n var matchesMethod = (function () {\r\n var ElemProto = window.Element.prototype;\r\n // check for the standard method name first\r\n if (ElemProto.matches) {\r\n return 'matches';\r\n }\r\n // check un-prefixed\r\n if (ElemProto.matchesSelector) {\r\n return 'matchesSelector';\r\n }\r\n // check vendor prefixes\r\n var prefixes = ['webkit', 'moz', 'ms', 'o'];\r\n\r\n for (var i = 0; i < prefixes.length; i++) {\r\n var prefix = prefixes[i];\r\n var method = prefix + 'MatchesSelector';\r\n if (ElemProto[method]) {\r\n return method;\r\n }\r\n }\r\n })();\r\n\r\n return function matchesSelector(elem, selector) {\r\n return elem[matchesMethod](selector);\r\n };\r\n\r\n}));\r\n\r\n/**\r\n * Fizzy UI utils v2.0.7\r\n * MIT license\r\n */\r\n\r\n/*jshint browser: true, undef: true, unused: true, strict: true */\r\n\r\n(function (window, factory) {\r\n // universal module definition\r\n /*jshint strict: false */ /*globals define, module, require */\r\n\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('fizzy-ui-utils/utils', [\r\n 'desandro-matches-selector/matches-selector'\r\n ], function (matchesSelector) {\r\n return factory(window, matchesSelector);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('desandro-matches-selector')\r\n );\r\n } else {\r\n // browser global\r\n window.fizzyUIUtils = factory(\r\n window,\r\n window.matchesSelector\r\n );\r\n }\r\n\r\n}(window, function factory(window, matchesSelector) {\r\n\r\n\r\n\r\n var utils = {};\r\n\r\n // ----- extend ----- //\r\n\r\n // extends objects\r\n utils.extend = function (a, b) {\r\n for (var prop in b) {\r\n a[prop] = b[prop];\r\n }\r\n return a;\r\n };\r\n\r\n // ----- modulo ----- //\r\n\r\n utils.modulo = function (num, div) {\r\n return ((num % div) + div) % div;\r\n };\r\n\r\n // ----- makeArray ----- //\r\n\r\n var arraySlice = Array.prototype.slice;\r\n\r\n // turn element or nodeList into an array\r\n utils.makeArray = function (obj) {\r\n if (Array.isArray(obj)) {\r\n // use object if already an array\r\n return obj;\r\n }\r\n // return empty array if undefined or null. #6\r\n if (obj === null || obj === undefined) {\r\n return [];\r\n }\r\n\r\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\r\n if (isArrayLike) {\r\n // convert nodeList to array\r\n return arraySlice.call(obj);\r\n }\r\n\r\n // array of single index\r\n return [obj];\r\n };\r\n\r\n // ----- removeFrom ----- //\r\n\r\n utils.removeFrom = function (ary, obj) {\r\n var index = ary.indexOf(obj);\r\n if (index != -1) {\r\n ary.splice(index, 1);\r\n }\r\n };\r\n\r\n // ----- getParent ----- //\r\n\r\n utils.getParent = function (elem, selector) {\r\n while (elem.parentNode && elem != document.body) {\r\n elem = elem.parentNode;\r\n if (matchesSelector(elem, selector)) {\r\n return elem;\r\n }\r\n }\r\n };\r\n\r\n // ----- getQueryElement ----- //\r\n\r\n // use element as selector string\r\n utils.getQueryElement = function (elem) {\r\n if (typeof elem == 'string') {\r\n return document.querySelector(elem);\r\n }\r\n return elem;\r\n };\r\n\r\n // ----- handleEvent ----- //\r\n\r\n // enable .ontype to trigger from .addEventListener( elem, 'type' )\r\n utils.handleEvent = function (event) {\r\n var method = 'on' + event.type;\r\n if (this[method]) {\r\n this[method](event);\r\n }\r\n };\r\n\r\n // ----- filterFindElements ----- //\r\n\r\n utils.filterFindElements = function (elems, selector) {\r\n // make array of elems\r\n elems = utils.makeArray(elems);\r\n var ffElems = [];\r\n\r\n elems.forEach(function (elem) {\r\n // check that elem is an actual element\r\n if (!(elem instanceof HTMLElement)) {\r\n return;\r\n }\r\n // add elem if no selector\r\n if (!selector) {\r\n ffElems.push(elem);\r\n return;\r\n }\r\n // filter & find items if we have a selector\r\n // filter\r\n if (matchesSelector(elem, selector)) {\r\n ffElems.push(elem);\r\n }\r\n // find children\r\n var childElems = elem.querySelectorAll(selector);\r\n // concat childElems to filterFound array\r\n for (var i = 0; i < childElems.length; i++) {\r\n ffElems.push(childElems[i]);\r\n }\r\n });\r\n\r\n return ffElems;\r\n };\r\n\r\n // ----- debounceMethod ----- //\r\n\r\n utils.debounceMethod = function (_class, methodName, threshold) {\r\n threshold = threshold || 100;\r\n // original method\r\n var method = _class.prototype[methodName];\r\n var timeoutName = methodName + 'Timeout';\r\n\r\n _class.prototype[methodName] = function () {\r\n var timeout = this[timeoutName];\r\n clearTimeout(timeout);\r\n\r\n var args = arguments;\r\n var _this = this;\r\n this[timeoutName] = setTimeout(function () {\r\n method.apply(_this, args);\r\n delete _this[timeoutName];\r\n }, threshold);\r\n };\r\n };\r\n\r\n // ----- docReady ----- //\r\n\r\n utils.docReady = function (callback) {\r\n var readyState = document.readyState;\r\n if (readyState == 'complete' || readyState == 'interactive') {\r\n // do async to allow for other scripts to run. metafizzy/flickity#441\r\n setTimeout(callback);\r\n } else {\r\n document.addEventListener('DOMContentLoaded', callback);\r\n }\r\n };\r\n\r\n // ----- htmlInit ----- //\r\n\r\n // http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\r\n utils.toDashed = function (str) {\r\n return str.replace(/(.)([A-Z])/g, function (match, $1, $2) {\r\n return $1 + '-' + $2;\r\n }).toLowerCase();\r\n };\r\n\r\n var console = window.console;\r\n /**\r\n * allow user to initialize classes via [data-namespace] or .js-namespace class\r\n * htmlInit( Widget, 'widgetName' )\r\n * options are parsed from data-namespace-options\r\n */\r\n utils.htmlInit = function (WidgetClass, namespace) {\r\n utils.docReady(function () {\r\n var dashedNamespace = utils.toDashed(namespace);\r\n var dataAttr = 'data-' + dashedNamespace;\r\n var dataAttrElems = document.querySelectorAll('[' + dataAttr + ']');\r\n var jsDashElems = document.querySelectorAll('.js-' + dashedNamespace);\r\n var elems = utils.makeArray(dataAttrElems)\r\n .concat(utils.makeArray(jsDashElems));\r\n var dataOptionsAttr = dataAttr + '-options';\r\n var jQuery = window.jQuery;\r\n\r\n elems.forEach(function (elem) {\r\n var attr = elem.getAttribute(dataAttr) ||\r\n elem.getAttribute(dataOptionsAttr);\r\n var options;\r\n try {\r\n options = attr && JSON.parse(attr);\r\n } catch (error) {\r\n // log error, do not initialize\r\n if (console) {\r\n console.error('Error parsing ' + dataAttr + ' on ' + elem.className +\r\n ': ' + error);\r\n }\r\n return;\r\n }\r\n // initialize\r\n var instance = new WidgetClass(elem, options);\r\n // make available via $().data('namespace')\r\n if (jQuery) {\r\n jQuery.data(elem, namespace, instance);\r\n }\r\n });\r\n\r\n });\r\n };\r\n\r\n // ----- ----- //\r\n\r\n return utils;\r\n\r\n}));\r\n\r\n/**\r\n * Outlayer Item\r\n */\r\n\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */ /* globals define, module, require */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD - RequireJS\r\n define('outlayer/item', [\r\n 'ev-emitter/ev-emitter',\r\n 'get-size/get-size'\r\n ],\r\n factory\r\n );\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS - Browserify, Webpack\r\n module.exports = factory(\r\n require('ev-emitter'),\r\n require('get-size')\r\n );\r\n } else {\r\n // browser global\r\n window.Outlayer = {};\r\n window.Outlayer.Item = factory(\r\n window.EvEmitter,\r\n window.getSize\r\n );\r\n }\r\n\r\n}(window, function factory(EvEmitter, getSize) {\r\n 'use strict';\r\n\r\n // ----- helpers ----- //\r\n\r\n function isEmptyObj(obj) {\r\n for (var prop in obj) {\r\n return false;\r\n }\r\n prop = null;\r\n return true;\r\n }\r\n\r\n // -------------------------- CSS3 support -------------------------- //\r\n\r\n\r\n var docElemStyle = document.documentElement.style;\r\n\r\n var transitionProperty = typeof docElemStyle.transition == 'string' ?\r\n 'transition' : 'WebkitTransition';\r\n var transformProperty = typeof docElemStyle.transform == 'string' ?\r\n 'transform' : 'WebkitTransform';\r\n\r\n var transitionEndEvent = {\r\n WebkitTransition: 'webkitTransitionEnd',\r\n transition: 'transitionend'\r\n }[transitionProperty];\r\n\r\n // cache all vendor properties that could have vendor prefix\r\n var vendorProperties = {\r\n transform: transformProperty,\r\n transition: transitionProperty,\r\n transitionDuration: transitionProperty + 'Duration',\r\n transitionProperty: transitionProperty + 'Property',\r\n transitionDelay: transitionProperty + 'Delay'\r\n };\r\n\r\n // -------------------------- Item -------------------------- //\r\n\r\n function Item(element, layout) {\r\n if (!element) {\r\n return;\r\n }\r\n\r\n this.element = element;\r\n // parent layout class, i.e. Masonry, Isotope, or Packery\r\n this.layout = layout;\r\n this.position = {\r\n x: 0,\r\n y: 0\r\n };\r\n\r\n this._create();\r\n }\r\n\r\n // inherit EvEmitter\r\n var proto = Item.prototype = Object.create(EvEmitter.prototype);\r\n proto.constructor = Item;\r\n\r\n proto._create = function () {\r\n // transition objects\r\n this._transn = {\r\n ingProperties: {},\r\n clean: {},\r\n onEnd: {}\r\n };\r\n\r\n this.css({\r\n position: 'absolute'\r\n });\r\n };\r\n\r\n // trigger specified handler for event type\r\n proto.handleEvent = function (event) {\r\n var method = 'on' + event.type;\r\n if (this[method]) {\r\n this[method](event);\r\n }\r\n };\r\n\r\n proto.getSize = function () {\r\n this.size = getSize(this.element);\r\n };\r\n\r\n /**\r\n * apply CSS styles to element\r\n * @param {Object} style\r\n */\r\n proto.css = function (style) {\r\n var elemStyle = this.element.style;\r\n\r\n for (var prop in style) {\r\n // use vendor property if available\r\n var supportedProp = vendorProperties[prop] || prop;\r\n elemStyle[supportedProp] = style[prop];\r\n }\r\n };\r\n\r\n // measure position, and sets it\r\n proto.getPosition = function () {\r\n var style = getComputedStyle(this.element);\r\n var isOriginLeft = this.layout._getOption('originLeft');\r\n var isOriginTop = this.layout._getOption('originTop');\r\n var xValue = style[isOriginLeft ? 'left' : 'right'];\r\n var yValue = style[isOriginTop ? 'top' : 'bottom'];\r\n var x = parseFloat(xValue);\r\n var y = parseFloat(yValue);\r\n // convert percent to pixels\r\n var layoutSize = this.layout.size;\r\n if (xValue.indexOf('%') != -1) {\r\n x = (x / 100) * layoutSize.width;\r\n }\r\n if (yValue.indexOf('%') != -1) {\r\n y = (y / 100) * layoutSize.height;\r\n }\r\n // clean up 'auto' or other non-integer values\r\n x = isNaN(x) ? 0 : x;\r\n y = isNaN(y) ? 0 : y;\r\n // remove padding from measurement\r\n x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;\r\n y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;\r\n\r\n this.position.x = x;\r\n this.position.y = y;\r\n };\r\n\r\n // set settled position, apply padding\r\n proto.layoutPosition = function () {\r\n var layoutSize = this.layout.size;\r\n var style = {};\r\n var isOriginLeft = this.layout._getOption('originLeft');\r\n var isOriginTop = this.layout._getOption('originTop');\r\n\r\n // x\r\n var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight';\r\n var xProperty = isOriginLeft ? 'left' : 'right';\r\n var xResetProperty = isOriginLeft ? 'right' : 'left';\r\n\r\n var x = this.position.x + layoutSize[xPadding];\r\n // set in percentage or pixels\r\n style[xProperty] = this.getXValue(x);\r\n // reset other property\r\n style[xResetProperty] = '';\r\n\r\n // y\r\n var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom';\r\n var yProperty = isOriginTop ? 'top' : 'bottom';\r\n var yResetProperty = isOriginTop ? 'bottom' : 'top';\r\n\r\n var y = this.position.y + layoutSize[yPadding];\r\n // set in percentage or pixels\r\n style[yProperty] = this.getYValue(y);\r\n // reset other property\r\n style[yResetProperty] = '';\r\n\r\n this.css(style);\r\n this.emitEvent('layout', [this]);\r\n };\r\n\r\n proto.getXValue = function (x) {\r\n var isHorizontal = this.layout._getOption('horizontal');\r\n return this.layout.options.percentPosition && !isHorizontal ?\r\n ((x / this.layout.size.width) * 100) + '%' : x + 'px';\r\n };\r\n\r\n proto.getYValue = function (y) {\r\n var isHorizontal = this.layout._getOption('horizontal');\r\n return this.layout.options.percentPosition && isHorizontal ?\r\n ((y / this.layout.size.height) * 100) + '%' : y + 'px';\r\n };\r\n\r\n proto._transitionTo = function (x, y) {\r\n this.getPosition();\r\n // get current x & y from top/left\r\n var curX = this.position.x;\r\n var curY = this.position.y;\r\n\r\n var didNotMove = x == this.position.x && y == this.position.y;\r\n\r\n // save end position\r\n this.setPosition(x, y);\r\n\r\n // if did not move and not transitioning, just go to layout\r\n if (didNotMove && !this.isTransitioning) {\r\n this.layoutPosition();\r\n return;\r\n }\r\n\r\n var transX = x - curX;\r\n var transY = y - curY;\r\n var transitionStyle = {};\r\n transitionStyle.transform = this.getTranslate(transX, transY);\r\n\r\n this.transition({\r\n to: transitionStyle,\r\n onTransitionEnd: {\r\n transform: this.layoutPosition\r\n },\r\n isCleaning: true\r\n });\r\n };\r\n\r\n proto.getTranslate = function (x, y) {\r\n // flip cooridinates if origin on right or bottom\r\n var isOriginLeft = this.layout._getOption('originLeft');\r\n var isOriginTop = this.layout._getOption('originTop');\r\n x = isOriginLeft ? x : -x;\r\n y = isOriginTop ? y : -y;\r\n return 'translate3d(' + x + 'px, ' + y + 'px, 0)';\r\n };\r\n\r\n // non transition + transform support\r\n proto.goTo = function (x, y) {\r\n this.setPosition(x, y);\r\n this.layoutPosition();\r\n };\r\n\r\n proto.moveTo = proto._transitionTo;\r\n\r\n proto.setPosition = function (x, y) {\r\n this.position.x = parseFloat(x);\r\n this.position.y = parseFloat(y);\r\n };\r\n\r\n // ----- transition ----- //\r\n\r\n /**\r\n * @param {Object} style - CSS\r\n * @param {Function} onTransitionEnd\r\n */\r\n\r\n // non transition, just trigger callback\r\n proto._nonTransition = function (args) {\r\n this.css(args.to);\r\n if (args.isCleaning) {\r\n this._removeStyles(args.to);\r\n }\r\n for (var prop in args.onTransitionEnd) {\r\n args.onTransitionEnd[prop].call(this);\r\n }\r\n };\r\n\r\n /**\r\n * proper transition\r\n * @param {Object} args - arguments\r\n * @param {Object} to - style to transition to\r\n * @param {Object} from - style to start transition from\r\n * @param {Boolean} isCleaning - removes transition styles after transition\r\n * @param {Function} onTransitionEnd - callback\r\n */\r\n proto.transition = function (args) {\r\n // redirect to nonTransition if no transition duration\r\n if (!parseFloat(this.layout.options.transitionDuration)) {\r\n this._nonTransition(args);\r\n return;\r\n }\r\n\r\n var _transition = this._transn;\r\n // keep track of onTransitionEnd callback by css property\r\n for (var prop in args.onTransitionEnd) {\r\n _transition.onEnd[prop] = args.onTransitionEnd[prop];\r\n }\r\n // keep track of properties that are transitioning\r\n for (prop in args.to) {\r\n _transition.ingProperties[prop] = true;\r\n // keep track of properties to clean up when transition is done\r\n if (args.isCleaning) {\r\n _transition.clean[prop] = true;\r\n }\r\n }\r\n\r\n // set from styles\r\n if (args.from) {\r\n this.css(args.from);\r\n // force redraw. http://blog.alexmaccaw.com/css-transitions\r\n var h = this.element.offsetHeight;\r\n // hack for JSHint to hush about unused var\r\n h = null;\r\n }\r\n // enable transition\r\n this.enableTransition(args.to);\r\n // set styles that are transitioning\r\n this.css(args.to);\r\n\r\n this.isTransitioning = true;\r\n\r\n };\r\n\r\n // dash before all cap letters, including first for\r\n // WebkitTransform => -webkit-transform\r\n function toDashedAll(str) {\r\n return str.replace(/([A-Z])/g, function ($1) {\r\n return '-' + $1.toLowerCase();\r\n });\r\n }\r\n\r\n var transitionProps = 'opacity,' + toDashedAll(transformProperty);\r\n\r\n proto.enableTransition = function (/* style */) {\r\n // HACK changing transitionProperty during a transition\r\n // will cause transition to jump\r\n if (this.isTransitioning) {\r\n return;\r\n }\r\n\r\n // make `transition: foo, bar, baz` from style object\r\n // HACK un-comment this when enableTransition can work\r\n // while a transition is happening\r\n // var transitionValues = [];\r\n // for ( var prop in style ) {\r\n // // dash-ify camelCased properties like WebkitTransition\r\n // prop = vendorProperties[ prop ] || prop;\r\n // transitionValues.push( toDashedAll( prop ) );\r\n // }\r\n // munge number to millisecond, to match stagger\r\n var duration = this.layout.options.transitionDuration;\r\n duration = typeof duration == 'number' ? duration + 'ms' : duration;\r\n // enable transition styles\r\n this.css({\r\n transitionProperty: transitionProps,\r\n transitionDuration: duration,\r\n transitionDelay: this.staggerDelay || 0\r\n });\r\n // listen for transition end event\r\n this.element.addEventListener(transitionEndEvent, this, false);\r\n };\r\n\r\n // ----- events ----- //\r\n\r\n proto.onwebkitTransitionEnd = function (event) {\r\n this.ontransitionend(event);\r\n };\r\n\r\n proto.onotransitionend = function (event) {\r\n this.ontransitionend(event);\r\n };\r\n\r\n // properties that I munge to make my life easier\r\n var dashedVendorProperties = {\r\n '-webkit-transform': 'transform'\r\n };\r\n\r\n proto.ontransitionend = function (event) {\r\n // disregard bubbled events from children\r\n if (event.target !== this.element) {\r\n return;\r\n }\r\n var _transition = this._transn;\r\n // get property name of transitioned property, convert to prefix-free\r\n var propertyName = dashedVendorProperties[event.propertyName] || event.propertyName;\r\n\r\n // remove property that has completed transitioning\r\n delete _transition.ingProperties[propertyName];\r\n // check if any properties are still transitioning\r\n if (isEmptyObj(_transition.ingProperties)) {\r\n // all properties have completed transitioning\r\n this.disableTransition();\r\n }\r\n // clean style\r\n if (propertyName in _transition.clean) {\r\n // clean up style\r\n this.element.style[event.propertyName] = '';\r\n delete _transition.clean[propertyName];\r\n }\r\n // trigger onTransitionEnd callback\r\n if (propertyName in _transition.onEnd) {\r\n var onTransitionEnd = _transition.onEnd[propertyName];\r\n onTransitionEnd.call(this);\r\n delete _transition.onEnd[propertyName];\r\n }\r\n\r\n this.emitEvent('transitionEnd', [this]);\r\n };\r\n\r\n proto.disableTransition = function () {\r\n this.removeTransitionStyles();\r\n this.element.removeEventListener(transitionEndEvent, this, false);\r\n this.isTransitioning = false;\r\n };\r\n\r\n /**\r\n * removes style property from element\r\n * @param {Object} style\r\n **/\r\n proto._removeStyles = function (style) {\r\n // clean up transition styles\r\n var cleanStyle = {};\r\n for (var prop in style) {\r\n cleanStyle[prop] = '';\r\n }\r\n this.css(cleanStyle);\r\n };\r\n\r\n var cleanTransitionStyle = {\r\n transitionProperty: '',\r\n transitionDuration: '',\r\n transitionDelay: ''\r\n };\r\n\r\n proto.removeTransitionStyles = function () {\r\n // remove transition\r\n this.css(cleanTransitionStyle);\r\n };\r\n\r\n // ----- stagger ----- //\r\n\r\n proto.stagger = function (delay) {\r\n delay = isNaN(delay) ? 0 : delay;\r\n this.staggerDelay = delay + 'ms';\r\n };\r\n\r\n // ----- show/hide/remove ----- //\r\n\r\n // remove element from DOM\r\n proto.removeElem = function () {\r\n this.element.parentNode.removeChild(this.element);\r\n // remove display: none\r\n this.css({ display: '' });\r\n this.emitEvent('remove', [this]);\r\n };\r\n\r\n proto.remove = function () {\r\n // just remove element if no transition support or no transition\r\n if (!transitionProperty || !parseFloat(this.layout.options.transitionDuration)) {\r\n this.removeElem();\r\n return;\r\n }\r\n\r\n // start transition\r\n this.once('transitionEnd', function () {\r\n this.removeElem();\r\n });\r\n this.hide();\r\n };\r\n\r\n proto.reveal = function () {\r\n delete this.isHidden;\r\n // remove display: none\r\n this.css({ display: '' });\r\n\r\n var options = this.layout.options;\r\n\r\n var onTransitionEnd = {};\r\n var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle');\r\n onTransitionEnd[transitionEndProperty] = this.onRevealTransitionEnd;\r\n\r\n this.transition({\r\n from: options.hiddenStyle,\r\n to: options.visibleStyle,\r\n isCleaning: true,\r\n onTransitionEnd: onTransitionEnd\r\n });\r\n };\r\n\r\n proto.onRevealTransitionEnd = function () {\r\n // check if still visible\r\n // during transition, item may have been hidden\r\n if (!this.isHidden) {\r\n this.emitEvent('reveal');\r\n }\r\n };\r\n\r\n /**\r\n * get style property use for hide/reveal transition end\r\n * @param {String} styleProperty - hiddenStyle/visibleStyle\r\n * @returns {String}\r\n */\r\n proto.getHideRevealTransitionEndProperty = function (styleProperty) {\r\n var optionStyle = this.layout.options[styleProperty];\r\n // use opacity\r\n if (optionStyle.opacity) {\r\n return 'opacity';\r\n }\r\n // get first property\r\n for (var prop in optionStyle) {\r\n return prop;\r\n }\r\n };\r\n\r\n proto.hide = function () {\r\n // set flag\r\n this.isHidden = true;\r\n // remove display: none\r\n this.css({ display: '' });\r\n\r\n var options = this.layout.options;\r\n\r\n var onTransitionEnd = {};\r\n var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle');\r\n onTransitionEnd[transitionEndProperty] = this.onHideTransitionEnd;\r\n\r\n this.transition({\r\n from: options.visibleStyle,\r\n to: options.hiddenStyle,\r\n // keep hidden stuff hidden\r\n isCleaning: true,\r\n onTransitionEnd: onTransitionEnd\r\n });\r\n };\r\n\r\n proto.onHideTransitionEnd = function () {\r\n // check if still hidden\r\n // during transition, item may have been un-hidden\r\n if (this.isHidden) {\r\n this.css({ display: 'none' });\r\n this.emitEvent('hide');\r\n }\r\n };\r\n\r\n proto.destroy = function () {\r\n this.css({\r\n position: '',\r\n left: '',\r\n right: '',\r\n top: '',\r\n bottom: '',\r\n transition: '',\r\n transform: ''\r\n });\r\n };\r\n\r\n return Item;\r\n\r\n}));\r\n\r\n/*!\r\n * Outlayer v2.1.1\r\n * the brains and guts of a layout library\r\n * MIT license\r\n */\r\n\r\n(function (window, factory) {\r\n 'use strict';\r\n // universal module definition\r\n /* jshint strict: false */ /* globals define, module, require */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD - RequireJS\r\n define('outlayer/outlayer', [\r\n 'ev-emitter/ev-emitter',\r\n 'get-size/get-size',\r\n 'fizzy-ui-utils/utils',\r\n './item'\r\n ],\r\n function (EvEmitter, getSize, utils, Item) {\r\n return factory(window, EvEmitter, getSize, utils, Item);\r\n }\r\n );\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS - Browserify, Webpack\r\n module.exports = factory(\r\n window,\r\n require('ev-emitter'),\r\n require('get-size'),\r\n require('fizzy-ui-utils'),\r\n require('./item')\r\n );\r\n } else {\r\n // browser global\r\n window.Outlayer = factory(\r\n window,\r\n window.EvEmitter,\r\n window.getSize,\r\n window.fizzyUIUtils,\r\n window.Outlayer.Item\r\n );\r\n }\r\n\r\n}(window, function factory(window, EvEmitter, getSize, utils, Item) {\r\n 'use strict';\r\n\r\n // ----- vars ----- //\r\n\r\n var console = window.console;\r\n var jQuery = window.jQuery;\r\n var noop = function () { };\r\n\r\n // -------------------------- Outlayer -------------------------- //\r\n\r\n // globally unique identifiers\r\n var GUID = 0;\r\n // internal store of all Outlayer intances\r\n var instances = {};\r\n\r\n\r\n /**\r\n * @param {Element, String} element\r\n * @param {Object} options\r\n * @constructor\r\n */\r\n function Outlayer(element, options) {\r\n var queryElement = utils.getQueryElement(element);\r\n if (!queryElement) {\r\n if (console) {\r\n console.error('Bad element for ' + this.constructor.namespace +\r\n ': ' + (queryElement || element));\r\n }\r\n return;\r\n }\r\n this.element = queryElement;\r\n // add jQuery\r\n if (jQuery) {\r\n this.$element = jQuery(this.element);\r\n }\r\n\r\n // options\r\n this.options = utils.extend({}, this.constructor.defaults);\r\n this.option(options);\r\n\r\n // add id for Outlayer.getFromElement\r\n var id = ++GUID;\r\n this.element.outlayerGUID = id; // expando\r\n instances[id] = this; // associate via id\r\n\r\n // kick it off\r\n this._create();\r\n\r\n var isInitLayout = this._getOption('initLayout');\r\n if (isInitLayout) {\r\n this.layout();\r\n }\r\n }\r\n\r\n // settings are for internal use only\r\n Outlayer.namespace = 'outlayer';\r\n Outlayer.Item = Item;\r\n\r\n // default options\r\n Outlayer.defaults = {\r\n containerStyle: {\r\n position: 'relative'\r\n },\r\n initLayout: true,\r\n originLeft: true,\r\n originTop: true,\r\n resize: true,\r\n resizeContainer: true,\r\n // item options\r\n transitionDuration: '0.4s',\r\n hiddenStyle: {\r\n opacity: 0,\r\n transform: 'scale(0.001)'\r\n },\r\n visibleStyle: {\r\n opacity: 1,\r\n transform: 'scale(1)'\r\n }\r\n };\r\n\r\n var proto = Outlayer.prototype;\r\n // inherit EvEmitter\r\n utils.extend(proto, EvEmitter.prototype);\r\n\r\n /**\r\n * set options\r\n * @param {Object} opts\r\n */\r\n proto.option = function (opts) {\r\n utils.extend(this.options, opts);\r\n };\r\n\r\n /**\r\n * get backwards compatible option value, check old name\r\n */\r\n proto._getOption = function (option) {\r\n var oldOption = this.constructor.compatOptions[option];\r\n return oldOption && this.options[oldOption] !== undefined ?\r\n this.options[oldOption] : this.options[option];\r\n };\r\n\r\n Outlayer.compatOptions = {\r\n // currentName: oldName\r\n initLayout: 'isInitLayout',\r\n horizontal: 'isHorizontal',\r\n layoutInstant: 'isLayoutInstant',\r\n originLeft: 'isOriginLeft',\r\n originTop: 'isOriginTop',\r\n resize: 'isResizeBound',\r\n resizeContainer: 'isResizingContainer'\r\n };\r\n\r\n proto._create = function () {\r\n // get items from children\r\n this.reloadItems();\r\n // elements that affect layout, but are not laid out\r\n this.stamps = [];\r\n this.stamp(this.options.stamp);\r\n // set container style\r\n utils.extend(this.element.style, this.options.containerStyle);\r\n\r\n // bind resize method\r\n var canBindResize = this._getOption('resize');\r\n if (canBindResize) {\r\n this.bindResize();\r\n }\r\n };\r\n\r\n // goes through all children again and gets bricks in proper order\r\n proto.reloadItems = function () {\r\n // collection of item elements\r\n this.items = this._itemize(this.element.children);\r\n };\r\n\r\n\r\n /**\r\n * turn elements into Outlayer.Items to be used in layout\r\n * @param {Array or NodeList or HTMLElement} elems\r\n * @returns {Array} items - collection of new Outlayer Items\r\n */\r\n proto._itemize = function (elems) {\r\n\r\n var itemElems = this._filterFindItemElements(elems);\r\n var Item = this.constructor.Item;\r\n\r\n // create new Outlayer Items for collection\r\n var items = [];\r\n for (var i = 0; i < itemElems.length; i++) {\r\n var elem = itemElems[i];\r\n var item = new Item(elem, this);\r\n items.push(item);\r\n }\r\n\r\n return items;\r\n };\r\n\r\n /**\r\n * get item elements to be used in layout\r\n * @param {Array or NodeList or HTMLElement} elems\r\n * @returns {Array} items - item elements\r\n */\r\n proto._filterFindItemElements = function (elems) {\r\n return utils.filterFindElements(elems, this.options.itemSelector);\r\n };\r\n\r\n /**\r\n * getter method for getting item elements\r\n * @returns {Array} elems - collection of item elements\r\n */\r\n proto.getItemElements = function () {\r\n return this.items.map(function (item) {\r\n return item.element;\r\n });\r\n };\r\n\r\n // ----- init & layout ----- //\r\n\r\n /**\r\n * lays out all items\r\n */\r\n proto.layout = function () {\r\n this._resetLayout();\r\n this._manageStamps();\r\n\r\n // don't animate first layout\r\n var layoutInstant = this._getOption('layoutInstant');\r\n var isInstant = layoutInstant !== undefined ?\r\n layoutInstant : !this._isLayoutInited;\r\n this.layoutItems(this.items, isInstant);\r\n\r\n // flag for initalized\r\n this._isLayoutInited = true;\r\n };\r\n\r\n // _init is alias for layout\r\n proto._init = proto.layout;\r\n\r\n /**\r\n * logic before any new layout\r\n */\r\n proto._resetLayout = function () {\r\n this.getSize();\r\n };\r\n\r\n\r\n proto.getSize = function () {\r\n this.size = getSize(this.element);\r\n };\r\n\r\n /**\r\n * get measurement from option, for columnWidth, rowHeight, gutter\r\n * if option is String -> get element from selector string, & get size of element\r\n * if option is Element -> get size of element\r\n * else use option as a number\r\n *\r\n * @param {String} measurement\r\n * @param {String} size - width or height\r\n * @private\r\n */\r\n proto._getMeasurement = function (measurement, size) {\r\n var option = this.options[measurement];\r\n var elem;\r\n if (!option) {\r\n // default to 0\r\n this[measurement] = 0;\r\n } else {\r\n // use option as an element\r\n if (typeof option == 'string') {\r\n elem = this.element.querySelector(option);\r\n } else if (option instanceof HTMLElement) {\r\n elem = option;\r\n }\r\n // use size of element, if element\r\n this[measurement] = elem ? getSize(elem)[size] : option;\r\n }\r\n };\r\n\r\n /**\r\n * layout a collection of item elements\r\n * @api public\r\n */\r\n proto.layoutItems = function (items, isInstant) {\r\n items = this._getItemsForLayout(items);\r\n\r\n this._layoutItems(items, isInstant);\r\n\r\n this._postLayout();\r\n };\r\n\r\n /**\r\n * get the items to be laid out\r\n * you may want to skip over some items\r\n * @param {Array} items\r\n * @returns {Array} items\r\n */\r\n proto._getItemsForLayout = function (items) {\r\n return items.filter(function (item) {\r\n return !item.isIgnored;\r\n });\r\n };\r\n\r\n /**\r\n * layout items\r\n * @param {Array} items\r\n * @param {Boolean} isInstant\r\n */\r\n proto._layoutItems = function (items, isInstant) {\r\n this._emitCompleteOnItems('layout', items);\r\n\r\n if (!items || !items.length) {\r\n // no items, emit event with empty array\r\n return;\r\n }\r\n\r\n var queue = [];\r\n\r\n items.forEach(function (item) {\r\n // get x/y object from method\r\n var position = this._getItemLayoutPosition(item);\r\n // enqueue\r\n position.item = item;\r\n position.isInstant = isInstant || item.isLayoutInstant;\r\n queue.push(position);\r\n }, this);\r\n\r\n this._processLayoutQueue(queue);\r\n };\r\n\r\n /**\r\n * get item layout position\r\n * @param {Outlayer.Item} item\r\n * @returns {Object} x and y position\r\n */\r\n proto._getItemLayoutPosition = function ( /* item */) {\r\n return {\r\n x: 0,\r\n y: 0\r\n };\r\n };\r\n\r\n /**\r\n * iterate over array and position each item\r\n * Reason being - separating this logic prevents 'layout invalidation'\r\n * thx @paul_irish\r\n * @param {Array} queue\r\n */\r\n proto._processLayoutQueue = function (queue) {\r\n this.updateStagger();\r\n queue.forEach(function (obj, i) {\r\n this._positionItem(obj.item, obj.x, obj.y, obj.isInstant, i);\r\n }, this);\r\n };\r\n\r\n // set stagger from option in milliseconds number\r\n proto.updateStagger = function () {\r\n var stagger = this.options.stagger;\r\n if (stagger === null || stagger === undefined) {\r\n this.stagger = 0;\r\n return;\r\n }\r\n this.stagger = getMilliseconds(stagger);\r\n return this.stagger;\r\n };\r\n\r\n /**\r\n * Sets position of item in DOM\r\n * @param {Outlayer.Item} item\r\n * @param {Number} x - horizontal position\r\n * @param {Number} y - vertical position\r\n * @param {Boolean} isInstant - disables transitions\r\n */\r\n proto._positionItem = function (item, x, y, isInstant, i) {\r\n if (isInstant) {\r\n // if not transition, just set CSS\r\n item.goTo(x, y);\r\n } else {\r\n item.stagger(i * this.stagger);\r\n item.moveTo(x, y);\r\n }\r\n };\r\n\r\n /**\r\n * Any logic you want to do after each layout,\r\n * i.e. size the container\r\n */\r\n proto._postLayout = function () {\r\n this.resizeContainer();\r\n };\r\n\r\n proto.resizeContainer = function () {\r\n var isResizingContainer = this._getOption('resizeContainer');\r\n if (!isResizingContainer) {\r\n return;\r\n }\r\n var size = this._getContainerSize();\r\n if (size) {\r\n this._setContainerMeasure(size.width, true);\r\n this._setContainerMeasure(size.height, false);\r\n }\r\n };\r\n\r\n /**\r\n * Sets width or height of container if returned\r\n * @returns {Object} size\r\n * @param {Number} width\r\n * @param {Number} height\r\n */\r\n proto._getContainerSize = noop;\r\n\r\n /**\r\n * @param {Number} measure - size of width or height\r\n * @param {Boolean} isWidth\r\n */\r\n proto._setContainerMeasure = function (measure, isWidth) {\r\n if (measure === undefined) {\r\n return;\r\n }\r\n\r\n var elemSize = this.size;\r\n // add padding and border width if border box\r\n if (elemSize.isBorderBox) {\r\n measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight +\r\n elemSize.borderLeftWidth + elemSize.borderRightWidth :\r\n elemSize.paddingBottom + elemSize.paddingTop +\r\n elemSize.borderTopWidth + elemSize.borderBottomWidth;\r\n }\r\n\r\n measure = Math.max(measure, 0);\r\n this.element.style[isWidth ? 'width' : 'height'] = measure + 'px';\r\n };\r\n\r\n /**\r\n * emit eventComplete on a collection of items events\r\n * @param {String} eventName\r\n * @param {Array} items - Outlayer.Items\r\n */\r\n proto._emitCompleteOnItems = function (eventName, items) {\r\n var _this = this;\r\n function onComplete() {\r\n _this.dispatchEvent(eventName + 'Complete', null, [items]);\r\n }\r\n\r\n var count = items.length;\r\n if (!items || !count) {\r\n onComplete();\r\n return;\r\n }\r\n\r\n var doneCount = 0;\r\n function tick() {\r\n doneCount++;\r\n if (doneCount == count) {\r\n onComplete();\r\n }\r\n }\r\n\r\n // bind callback\r\n items.forEach(function (item) {\r\n item.once(eventName, tick);\r\n });\r\n };\r\n\r\n /**\r\n * emits events via EvEmitter and jQuery events\r\n * @param {String} type - name of event\r\n * @param {Event} event - original event\r\n * @param {Array} args - extra arguments\r\n */\r\n proto.dispatchEvent = function (type, event, args) {\r\n // add original event to arguments\r\n var emitArgs = event ? [event].concat(args) : args;\r\n this.emitEvent(type, emitArgs);\r\n\r\n if (jQuery) {\r\n // set this.$element\r\n this.$element = this.$element || jQuery(this.element);\r\n if (event) {\r\n // create jQuery event\r\n var $event = jQuery.Event(event);\r\n $event.type = type;\r\n this.$element.trigger($event, args);\r\n } else {\r\n // just trigger with type if no event available\r\n this.$element.trigger(type, args);\r\n }\r\n }\r\n };\r\n\r\n // -------------------------- ignore & stamps -------------------------- //\r\n\r\n\r\n /**\r\n * keep item in collection, but do not lay it out\r\n * ignored items do not get skipped in layout\r\n * @param {Element} elem\r\n */\r\n proto.ignore = function (elem) {\r\n var item = this.getItem(elem);\r\n if (item) {\r\n item.isIgnored = true;\r\n }\r\n };\r\n\r\n /**\r\n * return item to layout collection\r\n * @param {Element} elem\r\n */\r\n proto.unignore = function (elem) {\r\n var item = this.getItem(elem);\r\n if (item) {\r\n delete item.isIgnored;\r\n }\r\n };\r\n\r\n /**\r\n * adds elements to stamps\r\n * @param {NodeList, Array, Element, or String} elems\r\n */\r\n proto.stamp = function (elems) {\r\n elems = this._find(elems);\r\n if (!elems) {\r\n return;\r\n }\r\n\r\n this.stamps = this.stamps.concat(elems);\r\n // ignore\r\n elems.forEach(this.ignore, this);\r\n };\r\n\r\n /**\r\n * removes elements to stamps\r\n * @param {NodeList, Array, or Element} elems\r\n */\r\n proto.unstamp = function (elems) {\r\n elems = this._find(elems);\r\n if (!elems) {\r\n return;\r\n }\r\n\r\n elems.forEach(function (elem) {\r\n // filter out removed stamp elements\r\n utils.removeFrom(this.stamps, elem);\r\n this.unignore(elem);\r\n }, this);\r\n };\r\n\r\n /**\r\n * finds child elements\r\n * @param {NodeList, Array, Element, or String} elems\r\n * @returns {Array} elems\r\n */\r\n proto._find = function (elems) {\r\n if (!elems) {\r\n return;\r\n }\r\n // if string, use argument as selector string\r\n if (typeof elems == 'string') {\r\n elems = this.element.querySelectorAll(elems);\r\n }\r\n elems = utils.makeArray(elems);\r\n return elems;\r\n };\r\n\r\n proto._manageStamps = function () {\r\n if (!this.stamps || !this.stamps.length) {\r\n return;\r\n }\r\n\r\n this._getBoundingRect();\r\n\r\n this.stamps.forEach(this._manageStamp, this);\r\n };\r\n\r\n // update boundingLeft / Top\r\n proto._getBoundingRect = function () {\r\n // get bounding rect for container element\r\n var boundingRect = this.element.getBoundingClientRect();\r\n var size = this.size;\r\n this._boundingRect = {\r\n left: boundingRect.left + size.paddingLeft + size.borderLeftWidth,\r\n top: boundingRect.top + size.paddingTop + size.borderTopWidth,\r\n right: boundingRect.right - (size.paddingRight + size.borderRightWidth),\r\n bottom: boundingRect.bottom - (size.paddingBottom + size.borderBottomWidth)\r\n };\r\n };\r\n\r\n /**\r\n * @param {Element} stamp\r\n **/\r\n proto._manageStamp = noop;\r\n\r\n /**\r\n * get x/y position of element relative to container element\r\n * @param {Element} elem\r\n * @returns {Object} offset - has left, top, right, bottom\r\n */\r\n proto._getElementOffset = function (elem) {\r\n var boundingRect = elem.getBoundingClientRect();\r\n var thisRect = this._boundingRect;\r\n var size = getSize(elem);\r\n var offset = {\r\n left: boundingRect.left - thisRect.left - size.marginLeft,\r\n top: boundingRect.top - thisRect.top - size.marginTop,\r\n right: thisRect.right - boundingRect.right - size.marginRight,\r\n bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom\r\n };\r\n return offset;\r\n };\r\n\r\n // -------------------------- resize -------------------------- //\r\n\r\n // enable event handlers for listeners\r\n // i.e. resize -> onresize\r\n proto.handleEvent = utils.handleEvent;\r\n\r\n /**\r\n * Bind layout to window resizing\r\n */\r\n proto.bindResize = function () {\r\n window.addEventListener('resize', this);\r\n this.isResizeBound = true;\r\n };\r\n\r\n /**\r\n * Unbind layout to window resizing\r\n */\r\n proto.unbindResize = function () {\r\n window.removeEventListener('resize', this);\r\n this.isResizeBound = false;\r\n };\r\n\r\n proto.onresize = function () {\r\n this.resize();\r\n };\r\n\r\n utils.debounceMethod(Outlayer, 'onresize', 100);\r\n\r\n proto.resize = function () {\r\n // don't trigger if size did not change\r\n // or if resize was unbound. See #9\r\n if (!this.isResizeBound || !this.needsResizeLayout()) {\r\n return;\r\n }\r\n\r\n this.layout();\r\n };\r\n\r\n /**\r\n * check if layout is needed post layout\r\n * @returns Boolean\r\n */\r\n proto.needsResizeLayout = function () {\r\n var size = getSize(this.element);\r\n // check that this.size and size are there\r\n // IE8 triggers resize on body size change, so they might not be\r\n var hasSizes = this.size && size;\r\n return hasSizes && size.innerWidth !== this.size.innerWidth;\r\n };\r\n\r\n // -------------------------- methods -------------------------- //\r\n\r\n /**\r\n * add items to Outlayer instance\r\n * @param {Array or NodeList or Element} elems\r\n * @returns {Array} items - Outlayer.Items\r\n **/\r\n proto.addItems = function (elems) {\r\n var items = this._itemize(elems);\r\n // add items to collection\r\n if (items.length) {\r\n this.items = this.items.concat(items);\r\n }\r\n return items;\r\n };\r\n\r\n /**\r\n * Layout newly-appended item elements\r\n * @param {Array or NodeList or Element} elems\r\n */\r\n proto.appended = function (elems) {\r\n var items = this.addItems(elems);\r\n if (!items.length) {\r\n return;\r\n }\r\n // layout and reveal just the new items\r\n this.layoutItems(items, true);\r\n this.reveal(items);\r\n };\r\n\r\n /**\r\n * Layout prepended elements\r\n * @param {Array or NodeList or Element} elems\r\n */\r\n proto.prepended = function (elems) {\r\n var items = this._itemize(elems);\r\n if (!items.length) {\r\n return;\r\n }\r\n // add items to beginning of collection\r\n var previousItems = this.items.slice(0);\r\n this.items = items.concat(previousItems);\r\n // start new layout\r\n this._resetLayout();\r\n this._manageStamps();\r\n // layout new stuff without transition\r\n this.layoutItems(items, true);\r\n this.reveal(items);\r\n // layout previous items\r\n this.layoutItems(previousItems);\r\n };\r\n\r\n /**\r\n * reveal a collection of items\r\n * @param {Array of Outlayer.Items} items\r\n */\r\n proto.reveal = function (items) {\r\n this._emitCompleteOnItems('reveal', items);\r\n if (!items || !items.length) {\r\n return;\r\n }\r\n var stagger = this.updateStagger();\r\n items.forEach(function (item, i) {\r\n item.stagger(i * stagger);\r\n item.reveal();\r\n });\r\n };\r\n\r\n /**\r\n * hide a collection of items\r\n * @param {Array of Outlayer.Items} items\r\n */\r\n proto.hide = function (items) {\r\n this._emitCompleteOnItems('hide', items);\r\n if (!items || !items.length) {\r\n return;\r\n }\r\n var stagger = this.updateStagger();\r\n items.forEach(function (item, i) {\r\n item.stagger(i * stagger);\r\n item.hide();\r\n });\r\n };\r\n\r\n /**\r\n * reveal item elements\r\n * @param {Array}, {Element}, {NodeList} items\r\n */\r\n proto.revealItemElements = function (elems) {\r\n var items = this.getItems(elems);\r\n this.reveal(items);\r\n };\r\n\r\n /**\r\n * hide item elements\r\n * @param {Array}, {Element}, {NodeList} items\r\n */\r\n proto.hideItemElements = function (elems) {\r\n var items = this.getItems(elems);\r\n this.hide(items);\r\n };\r\n\r\n /**\r\n * get Outlayer.Item, given an Element\r\n * @param {Element} elem\r\n * @param {Function} callback\r\n * @returns {Outlayer.Item} item\r\n */\r\n proto.getItem = function (elem) {\r\n // loop through items to get the one that matches\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n if (item.element == elem) {\r\n // return item\r\n return item;\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * get collection of Outlayer.Items, given Elements\r\n * @param {Array} elems\r\n * @returns {Array} items - Outlayer.Items\r\n */\r\n proto.getItems = function (elems) {\r\n elems = utils.makeArray(elems);\r\n var items = [];\r\n elems.forEach(function (elem) {\r\n var item = this.getItem(elem);\r\n if (item) {\r\n items.push(item);\r\n }\r\n }, this);\r\n\r\n return items;\r\n };\r\n\r\n /**\r\n * remove element(s) from instance and DOM\r\n * @param {Array or NodeList or Element} elems\r\n */\r\n proto.remove = function (elems) {\r\n var removeItems = this.getItems(elems);\r\n\r\n this._emitCompleteOnItems('remove', removeItems);\r\n\r\n // bail if no items to remove\r\n if (!removeItems || !removeItems.length) {\r\n return;\r\n }\r\n\r\n removeItems.forEach(function (item) {\r\n item.remove();\r\n // remove item from collection\r\n utils.removeFrom(this.items, item);\r\n }, this);\r\n };\r\n\r\n // ----- destroy ----- //\r\n\r\n // remove and disable Outlayer instance\r\n proto.destroy = function () {\r\n // clean up dynamic styles\r\n var style = this.element.style;\r\n style.height = '';\r\n style.position = '';\r\n style.width = '';\r\n // destroy items\r\n this.items.forEach(function (item) {\r\n item.destroy();\r\n });\r\n\r\n this.unbindResize();\r\n\r\n var id = this.element.outlayerGUID;\r\n delete instances[id]; // remove reference to instance by id\r\n delete this.element.outlayerGUID;\r\n // remove data for jQuery\r\n if (jQuery) {\r\n jQuery.removeData(this.element, this.constructor.namespace);\r\n }\r\n\r\n };\r\n\r\n // -------------------------- data -------------------------- //\r\n\r\n /**\r\n * get Outlayer instance from element\r\n * @param {Element} elem\r\n * @returns {Outlayer}\r\n */\r\n Outlayer.data = function (elem) {\r\n elem = utils.getQueryElement(elem);\r\n var id = elem && elem.outlayerGUID;\r\n return id && instances[id];\r\n };\r\n\r\n\r\n // -------------------------- create Outlayer class -------------------------- //\r\n\r\n /**\r\n * create a layout class\r\n * @param {String} namespace\r\n */\r\n Outlayer.create = function (namespace, options) {\r\n // sub-class Outlayer\r\n var Layout = subclass(Outlayer);\r\n // apply new options and compatOptions\r\n Layout.defaults = utils.extend({}, Outlayer.defaults);\r\n utils.extend(Layout.defaults, options);\r\n Layout.compatOptions = utils.extend({}, Outlayer.compatOptions);\r\n\r\n Layout.namespace = namespace;\r\n\r\n Layout.data = Outlayer.data;\r\n\r\n // sub-class Item\r\n Layout.Item = subclass(Item);\r\n\r\n // -------------------------- declarative -------------------------- //\r\n\r\n utils.htmlInit(Layout, namespace);\r\n\r\n // -------------------------- jQuery bridge -------------------------- //\r\n\r\n // make into jQuery plugin\r\n if (jQuery && jQuery.bridget) {\r\n jQuery.bridget(namespace, Layout);\r\n }\r\n\r\n return Layout;\r\n };\r\n\r\n function subclass(Parent) {\r\n function SubClass() {\r\n Parent.apply(this, arguments);\r\n }\r\n\r\n SubClass.prototype = Object.create(Parent.prototype);\r\n SubClass.prototype.constructor = SubClass;\r\n\r\n return SubClass;\r\n }\r\n\r\n // ----- helpers ----- //\r\n\r\n // how many milliseconds are in each unit\r\n var msUnits = {\r\n ms: 1,\r\n s: 1000\r\n };\r\n\r\n // munge time-like parameter into millisecond number\r\n // '0.4s' -> 40\r\n function getMilliseconds(time) {\r\n if (typeof time == 'number') {\r\n return time;\r\n }\r\n var matches = time.match(/(^\\d*\\.?\\d*)(\\w*)/);\r\n var num = matches && matches[1];\r\n var unit = matches && matches[2];\r\n if (!num.length) {\r\n return 0;\r\n }\r\n num = parseFloat(num);\r\n var mult = msUnits[unit] || 1;\r\n return num * mult;\r\n }\r\n\r\n // ----- fin ----- //\r\n\r\n // back in global\r\n Outlayer.Item = Item;\r\n\r\n return Outlayer;\r\n\r\n}));\r\n\r\n/**\r\n * Isotope Item\r\n**/\r\n\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */ /*globals define, module, require */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('isotope-layout/js/item', [\r\n 'outlayer/outlayer'\r\n ],\r\n factory);\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n require('outlayer')\r\n );\r\n } else {\r\n // browser global\r\n window.Isotope = window.Isotope || {};\r\n window.Isotope.Item = factory(\r\n window.Outlayer\r\n );\r\n }\r\n\r\n}(window, function factory(Outlayer) {\r\n 'use strict';\r\n\r\n // -------------------------- Item -------------------------- //\r\n\r\n // sub-class Outlayer Item\r\n function Item() {\r\n Outlayer.Item.apply(this, arguments);\r\n }\r\n\r\n var proto = Item.prototype = Object.create(Outlayer.Item.prototype);\r\n\r\n var _create = proto._create;\r\n proto._create = function () {\r\n // assign id, used for original-order sorting\r\n this.id = this.layout.itemGUID++;\r\n _create.call(this);\r\n this.sortData = {};\r\n };\r\n\r\n proto.updateSortData = function () {\r\n if (this.isIgnored) {\r\n return;\r\n }\r\n // default sorters\r\n this.sortData.id = this.id;\r\n // for backward compatibility\r\n this.sortData['original-order'] = this.id;\r\n this.sortData.random = Math.random();\r\n // go thru getSortData obj and apply the sorters\r\n var getSortData = this.layout.options.getSortData;\r\n var sorters = this.layout._sorters;\r\n for (var key in getSortData) {\r\n var sorter = sorters[key];\r\n this.sortData[key] = sorter(this.element, this);\r\n }\r\n };\r\n\r\n var _destroy = proto.destroy;\r\n proto.destroy = function () {\r\n // call super\r\n _destroy.apply(this, arguments);\r\n // reset display, #741\r\n this.css({\r\n display: ''\r\n });\r\n };\r\n\r\n return Item;\r\n\r\n}));\r\n\r\n/**\r\n * Isotope LayoutMode\r\n */\r\n\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */ /*globals define, module, require */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('isotope-layout/js/layout-mode', [\r\n 'get-size/get-size',\r\n 'outlayer/outlayer'\r\n ],\r\n factory);\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n require('get-size'),\r\n require('outlayer')\r\n );\r\n } else {\r\n // browser global\r\n window.Isotope = window.Isotope || {};\r\n window.Isotope.LayoutMode = factory(\r\n window.getSize,\r\n window.Outlayer\r\n );\r\n }\r\n\r\n}(window, function factory(getSize, Outlayer) {\r\n 'use strict';\r\n\r\n // layout mode class\r\n function LayoutMode(isotope) {\r\n this.isotope = isotope;\r\n // link properties\r\n if (isotope) {\r\n this.options = isotope.options[this.namespace];\r\n this.element = isotope.element;\r\n this.items = isotope.filteredItems;\r\n this.size = isotope.size;\r\n }\r\n }\r\n\r\n var proto = LayoutMode.prototype;\r\n\r\n /**\r\n * some methods should just defer to default Outlayer method\r\n * and reference the Isotope instance as `this`\r\n **/\r\n var facadeMethods = [\r\n '_resetLayout',\r\n '_getItemLayoutPosition',\r\n '_manageStamp',\r\n '_getContainerSize',\r\n '_getElementOffset',\r\n 'needsResizeLayout',\r\n '_getOption'\r\n ];\r\n\r\n facadeMethods.forEach(function (methodName) {\r\n proto[methodName] = function () {\r\n return Outlayer.prototype[methodName].apply(this.isotope, arguments);\r\n };\r\n });\r\n\r\n // ----- ----- //\r\n\r\n // for horizontal layout modes, check vertical size\r\n proto.needsVerticalResizeLayout = function () {\r\n // don't trigger if size did not change\r\n var size = getSize(this.isotope.element);\r\n // check that this.size and size are there\r\n // IE8 triggers resize on body size change, so they might not be\r\n var hasSizes = this.isotope.size && size;\r\n return hasSizes && size.innerHeight != this.isotope.size.innerHeight;\r\n };\r\n\r\n // ----- measurements ----- //\r\n\r\n proto._getMeasurement = function () {\r\n this.isotope._getMeasurement.apply(this, arguments);\r\n };\r\n\r\n proto.getColumnWidth = function () {\r\n this.getSegmentSize('column', 'Width');\r\n };\r\n\r\n proto.getRowHeight = function () {\r\n this.getSegmentSize('row', 'Height');\r\n };\r\n\r\n /**\r\n * get columnWidth or rowHeight\r\n * segment: 'column' or 'row'\r\n * size 'Width' or 'Height'\r\n **/\r\n proto.getSegmentSize = function (segment, size) {\r\n var segmentName = segment + size;\r\n var outerSize = 'outer' + size;\r\n // columnWidth / outerWidth // rowHeight / outerHeight\r\n this._getMeasurement(segmentName, outerSize);\r\n // got rowHeight or columnWidth, we can chill\r\n if (this[segmentName]) {\r\n return;\r\n }\r\n // fall back to item of first element\r\n var firstItemSize = this.getFirstItemSize();\r\n this[segmentName] = firstItemSize && firstItemSize[outerSize] ||\r\n // or size of container\r\n this.isotope.size['inner' + size];\r\n };\r\n\r\n proto.getFirstItemSize = function () {\r\n var firstItem = this.isotope.filteredItems[0];\r\n return firstItem && firstItem.element && getSize(firstItem.element);\r\n };\r\n\r\n // ----- methods that should reference isotope ----- //\r\n\r\n proto.layout = function () {\r\n this.isotope.layout.apply(this.isotope, arguments);\r\n };\r\n\r\n proto.getSize = function () {\r\n this.isotope.getSize();\r\n this.size = this.isotope.size;\r\n };\r\n\r\n // -------------------------- create -------------------------- //\r\n\r\n LayoutMode.modes = {};\r\n\r\n LayoutMode.create = function (namespace, options) {\r\n\r\n function Mode() {\r\n LayoutMode.apply(this, arguments);\r\n }\r\n\r\n Mode.prototype = Object.create(proto);\r\n Mode.prototype.constructor = Mode;\r\n\r\n // default options\r\n if (options) {\r\n Mode.options = options;\r\n }\r\n\r\n Mode.prototype.namespace = namespace;\r\n // register in Isotope\r\n LayoutMode.modes[namespace] = Mode;\r\n\r\n return Mode;\r\n };\r\n\r\n return LayoutMode;\r\n\r\n}));\r\n\r\n/*!\r\n * Masonry v4.2.1\r\n * Cascading grid layout library\r\n * https://masonry.desandro.com\r\n * MIT License\r\n * by David DeSandro\r\n */\r\n\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */ /*globals define, module, require */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('masonry-layout/masonry', [\r\n 'outlayer/outlayer',\r\n 'get-size/get-size'\r\n ],\r\n factory);\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n require('outlayer'),\r\n require('get-size')\r\n );\r\n } else {\r\n // browser global\r\n window.Masonry = factory(\r\n window.Outlayer,\r\n window.getSize\r\n );\r\n }\r\n\r\n}(window, function factory(Outlayer, getSize) {\r\n\r\n\r\n\r\n // -------------------------- masonryDefinition -------------------------- //\r\n\r\n // create an Outlayer layout class\r\n var Masonry = Outlayer.create('masonry');\r\n // isFitWidth -> fitWidth\r\n Masonry.compatOptions.fitWidth = 'isFitWidth';\r\n\r\n var proto = Masonry.prototype;\r\n\r\n proto._resetLayout = function () {\r\n this.getSize();\r\n this._getMeasurement('columnWidth', 'outerWidth');\r\n this._getMeasurement('gutter', 'outerWidth');\r\n this.measureColumns();\r\n\r\n // reset column Y\r\n this.colYs = [];\r\n for (var i = 0; i < this.cols; i++) {\r\n this.colYs.push(0);\r\n }\r\n\r\n this.maxY = 0;\r\n this.horizontalColIndex = 0;\r\n };\r\n\r\n proto.measureColumns = function () {\r\n this.getContainerWidth();\r\n // if columnWidth is 0, default to outerWidth of first item\r\n if (!this.columnWidth) {\r\n var firstItem = this.items[0];\r\n var firstItemElem = firstItem && firstItem.element;\r\n // columnWidth fall back to item of first element\r\n this.columnWidth = firstItemElem && getSize(firstItemElem).outerWidth ||\r\n // if first elem has no width, default to size of container\r\n this.containerWidth;\r\n }\r\n\r\n var columnWidth = this.columnWidth += this.gutter;\r\n\r\n // calculate columns\r\n var containerWidth = this.containerWidth + this.gutter;\r\n var cols = containerWidth / columnWidth;\r\n // fix rounding errors, typically with gutters\r\n var excess = columnWidth - containerWidth % columnWidth;\r\n // if overshoot is less than a pixel, round up, otherwise floor it\r\n var mathMethod = excess && excess < 1 ? 'round' : 'floor';\r\n cols = Math[mathMethod](cols);\r\n this.cols = Math.max(cols, 1);\r\n };\r\n\r\n proto.getContainerWidth = function () {\r\n // container is parent if fit width\r\n var isFitWidth = this._getOption('fitWidth');\r\n var container = isFitWidth ? this.element.parentNode : this.element;\r\n // check that this.size and size are there\r\n // IE8 triggers resize on body size change, so they might not be\r\n var size = getSize(container);\r\n this.containerWidth = size && size.innerWidth;\r\n };\r\n\r\n proto._getItemLayoutPosition = function (item) {\r\n item.getSize();\r\n // how many columns does this brick span\r\n var remainder = item.size.outerWidth % this.columnWidth;\r\n var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil';\r\n // round if off by 1 pixel, otherwise use ceil\r\n var colSpan = Math[mathMethod](item.size.outerWidth / this.columnWidth);\r\n colSpan = Math.min(colSpan, this.cols);\r\n // use horizontal or top column position\r\n var colPosMethod = this.options.horizontalOrder ?\r\n '_getHorizontalColPosition' : '_getTopColPosition';\r\n var colPosition = this[colPosMethod](colSpan, item);\r\n // position the brick\r\n var position = {\r\n x: this.columnWidth * colPosition.col,\r\n y: colPosition.y\r\n };\r\n // apply setHeight to necessary columns\r\n var setHeight = colPosition.y + item.size.outerHeight;\r\n var setMax = colSpan + colPosition.col;\r\n for (var i = colPosition.col; i < setMax; i++) {\r\n this.colYs[i] = setHeight;\r\n }\r\n\r\n return position;\r\n };\r\n\r\n proto._getTopColPosition = function (colSpan) {\r\n var colGroup = this._getTopColGroup(colSpan);\r\n // get the minimum Y value from the columns\r\n var minimumY = Math.min.apply(Math, colGroup);\r\n\r\n return {\r\n col: colGroup.indexOf(minimumY),\r\n y: minimumY,\r\n };\r\n };\r\n\r\n /**\r\n * @param {Number} colSpan - number of columns the element spans\r\n * @returns {Array} colGroup\r\n */\r\n proto._getTopColGroup = function (colSpan) {\r\n if (colSpan < 2) {\r\n // if brick spans only one column, use all the column Ys\r\n return this.colYs;\r\n }\r\n\r\n var colGroup = [];\r\n // how many different places could this brick fit horizontally\r\n var groupCount = this.cols + 1 - colSpan;\r\n // for each group potential horizontal position\r\n for (var i = 0; i < groupCount; i++) {\r\n colGroup[i] = this._getColGroupY(i, colSpan);\r\n }\r\n return colGroup;\r\n };\r\n\r\n proto._getColGroupY = function (col, colSpan) {\r\n if (colSpan < 2) {\r\n return this.colYs[col];\r\n }\r\n // make an array of colY values for that one group\r\n var groupColYs = this.colYs.slice(col, col + colSpan);\r\n // and get the max value of the array\r\n return Math.max.apply(Math, groupColYs);\r\n };\r\n\r\n // get column position based on horizontal index. #873\r\n proto._getHorizontalColPosition = function (colSpan, item) {\r\n var col = this.horizontalColIndex % this.cols;\r\n var isOver = colSpan > 1 && col + colSpan > this.cols;\r\n // shift to next row if item can't fit on current row\r\n col = isOver ? 0 : col;\r\n // don't let zero-size items take up space\r\n var hasSize = item.size.outerWidth && item.size.outerHeight;\r\n this.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex;\r\n\r\n return {\r\n col: col,\r\n y: this._getColGroupY(col, colSpan),\r\n };\r\n };\r\n\r\n proto._manageStamp = function (stamp) {\r\n var stampSize = getSize(stamp);\r\n var offset = this._getElementOffset(stamp);\r\n // get the columns that this stamp affects\r\n var isOriginLeft = this._getOption('originLeft');\r\n var firstX = isOriginLeft ? offset.left : offset.right;\r\n var lastX = firstX + stampSize.outerWidth;\r\n var firstCol = Math.floor(firstX / this.columnWidth);\r\n firstCol = Math.max(0, firstCol);\r\n var lastCol = Math.floor(lastX / this.columnWidth);\r\n // lastCol should not go over if multiple of columnWidth #425\r\n lastCol -= lastX % this.columnWidth ? 0 : 1;\r\n lastCol = Math.min(this.cols - 1, lastCol);\r\n // set colYs to bottom of the stamp\r\n\r\n var isOriginTop = this._getOption('originTop');\r\n var stampMaxY = (isOriginTop ? offset.top : offset.bottom) +\r\n stampSize.outerHeight;\r\n for (var i = firstCol; i <= lastCol; i++) {\r\n this.colYs[i] = Math.max(stampMaxY, this.colYs[i]);\r\n }\r\n };\r\n\r\n proto._getContainerSize = function () {\r\n this.maxY = Math.max.apply(Math, this.colYs);\r\n var size = {\r\n height: this.maxY\r\n };\r\n\r\n if (this._getOption('fitWidth')) {\r\n size.width = this._getContainerFitWidth();\r\n }\r\n\r\n return size;\r\n };\r\n\r\n proto._getContainerFitWidth = function () {\r\n var unusedCols = 0;\r\n // count unused columns\r\n var i = this.cols;\r\n while (--i) {\r\n if (this.colYs[i] !== 0) {\r\n break;\r\n }\r\n unusedCols++;\r\n }\r\n // fit container to columns that have been used\r\n return (this.cols - unusedCols) * this.columnWidth - this.gutter;\r\n };\r\n\r\n proto.needsResizeLayout = function () {\r\n var previousWidth = this.containerWidth;\r\n this.getContainerWidth();\r\n return previousWidth != this.containerWidth;\r\n };\r\n\r\n return Masonry;\r\n\r\n}));\r\n\r\n/*!\r\n * Masonry layout mode\r\n * sub-classes Masonry\r\n * https://masonry.desandro.com\r\n */\r\n\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */ /*globals define, module, require */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('isotope-layout/js/layout-modes/masonry', [\r\n '../layout-mode',\r\n 'masonry-layout/masonry'\r\n ],\r\n factory);\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n require('../layout-mode'),\r\n require('masonry-layout')\r\n );\r\n } else {\r\n // browser global\r\n factory(\r\n window.Isotope.LayoutMode,\r\n window.Masonry\r\n );\r\n }\r\n\r\n}(window, function factory(LayoutMode, Masonry) {\r\n 'use strict';\r\n\r\n // -------------------------- masonryDefinition -------------------------- //\r\n\r\n // create an Outlayer layout class\r\n var MasonryMode = LayoutMode.create('masonry');\r\n\r\n var proto = MasonryMode.prototype;\r\n\r\n var keepModeMethods = {\r\n _getElementOffset: true,\r\n layout: true,\r\n _getMeasurement: true\r\n };\r\n\r\n // inherit Masonry prototype\r\n for (var method in Masonry.prototype) {\r\n // do not inherit mode methods\r\n if (!keepModeMethods[method]) {\r\n proto[method] = Masonry.prototype[method];\r\n }\r\n }\r\n\r\n var measureColumns = proto.measureColumns;\r\n proto.measureColumns = function () {\r\n // set items, used if measuring first item\r\n this.items = this.isotope.filteredItems;\r\n measureColumns.call(this);\r\n };\r\n\r\n // point to mode options for fitWidth\r\n var _getOption = proto._getOption;\r\n proto._getOption = function (option) {\r\n if (option == 'fitWidth') {\r\n return this.options.isFitWidth !== undefined ?\r\n this.options.isFitWidth : this.options.fitWidth;\r\n }\r\n return _getOption.apply(this.isotope, arguments);\r\n };\r\n\r\n return MasonryMode;\r\n\r\n}));\r\n\r\n/**\r\n * fitRows layout mode\r\n */\r\n\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */ /*globals define, module, require */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('isotope-layout/js/layout-modes/fit-rows', [\r\n '../layout-mode'\r\n ],\r\n factory);\r\n } else if (typeof exports == 'object') {\r\n // CommonJS\r\n module.exports = factory(\r\n require('../layout-mode')\r\n );\r\n } else {\r\n // browser global\r\n factory(\r\n window.Isotope.LayoutMode\r\n );\r\n }\r\n\r\n}(window, function factory(LayoutMode) {\r\n 'use strict';\r\n\r\n var FitRows = LayoutMode.create('fitRows');\r\n\r\n var proto = FitRows.prototype;\r\n\r\n proto._resetLayout = function () {\r\n this.x = 0;\r\n this.y = 0;\r\n this.maxY = 0;\r\n this._getMeasurement('gutter', 'outerWidth');\r\n };\r\n\r\n proto._getItemLayoutPosition = function (item) {\r\n item.getSize();\r\n\r\n var itemWidth = item.size.outerWidth + this.gutter;\r\n // if this element cannot fit in the current row\r\n var containerWidth = this.isotope.size.innerWidth + this.gutter;\r\n if (this.x !== 0 && itemWidth + this.x > containerWidth) {\r\n this.x = 0;\r\n this.y = this.maxY;\r\n }\r\n\r\n var position = {\r\n x: this.x,\r\n y: this.y\r\n };\r\n\r\n this.maxY = Math.max(this.maxY, this.y + item.size.outerHeight);\r\n this.x += itemWidth;\r\n\r\n return position;\r\n };\r\n\r\n proto._getContainerSize = function () {\r\n return { height: this.maxY };\r\n };\r\n\r\n return FitRows;\r\n\r\n}));\r\n\r\n/**\r\n * vertical layout mode\r\n */\r\n\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */ /*globals define, module, require */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('isotope-layout/js/layout-modes/vertical', [\r\n '../layout-mode'\r\n ],\r\n factory);\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n require('../layout-mode')\r\n );\r\n } else {\r\n // browser global\r\n factory(\r\n window.Isotope.LayoutMode\r\n );\r\n }\r\n\r\n}(window, function factory(LayoutMode) {\r\n 'use strict';\r\n\r\n var Vertical = LayoutMode.create('vertical', {\r\n horizontalAlignment: 0\r\n });\r\n\r\n var proto = Vertical.prototype;\r\n\r\n proto._resetLayout = function () {\r\n this.y = 0;\r\n };\r\n\r\n proto._getItemLayoutPosition = function (item) {\r\n item.getSize();\r\n var x = (this.isotope.size.innerWidth - item.size.outerWidth) *\r\n this.options.horizontalAlignment;\r\n var y = this.y;\r\n this.y += item.size.outerHeight;\r\n return { x: x, y: y };\r\n };\r\n\r\n proto._getContainerSize = function () {\r\n return { height: this.y };\r\n };\r\n\r\n return Vertical;\r\n\r\n}));\r\n\r\n/*!\r\n * Isotope v3.0.6\r\n *\r\n * Licensed GPLv3 for open source use\r\n * or Isotope Commercial License for commercial use\r\n *\r\n * https://isotope.metafizzy.co\r\n * Copyright 2010-2018 Metafizzy\r\n */\r\n\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */ /*globals define, module, require */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define([\r\n 'outlayer/outlayer',\r\n 'get-size/get-size',\r\n 'desandro-matches-selector/matches-selector',\r\n 'fizzy-ui-utils/utils',\r\n 'isotope-layout/js/item',\r\n 'isotope-layout/js/layout-mode',\r\n // include default layout modes\r\n 'isotope-layout/js/layout-modes/masonry',\r\n 'isotope-layout/js/layout-modes/fit-rows',\r\n 'isotope-layout/js/layout-modes/vertical'\r\n ],\r\n function (Outlayer, getSize, matchesSelector, utils, Item, LayoutMode) {\r\n return factory(window, Outlayer, getSize, matchesSelector, utils, Item, LayoutMode);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('outlayer'),\r\n require('get-size'),\r\n require('desandro-matches-selector'),\r\n require('fizzy-ui-utils'),\r\n require('isotope-layout/js/item'),\r\n require('isotope-layout/js/layout-mode'),\r\n // include default layout modes\r\n require('isotope-layout/js/layout-modes/masonry'),\r\n require('isotope-layout/js/layout-modes/fit-rows'),\r\n require('isotope-layout/js/layout-modes/vertical')\r\n );\r\n } else {\r\n // browser global\r\n window.Isotope = factory(\r\n window,\r\n window.Outlayer,\r\n window.getSize,\r\n window.matchesSelector,\r\n window.fizzyUIUtils,\r\n window.Isotope.Item,\r\n window.Isotope.LayoutMode\r\n );\r\n }\r\n\r\n}(window, function factory(window, Outlayer, getSize, matchesSelector, utils,\r\n Item, LayoutMode) {\r\n\r\n\r\n\r\n // -------------------------- vars -------------------------- //\r\n\r\n var jQuery = window.jQuery;\r\n\r\n // -------------------------- helpers -------------------------- //\r\n\r\n var trim = String.prototype.trim ?\r\n function (str) {\r\n return str.trim();\r\n } :\r\n function (str) {\r\n return str.replace(/^\\s+|\\s+$/g, '');\r\n };\r\n\r\n // -------------------------- isotopeDefinition -------------------------- //\r\n\r\n // create an Outlayer layout class\r\n var Isotope = Outlayer.create('isotope', {\r\n layoutMode: 'masonry',\r\n isJQueryFiltering: true,\r\n sortAscending: true\r\n });\r\n\r\n Isotope.Item = Item;\r\n Isotope.LayoutMode = LayoutMode;\r\n\r\n var proto = Isotope.prototype;\r\n\r\n proto._create = function () {\r\n this.itemGUID = 0;\r\n // functions that sort items\r\n this._sorters = {};\r\n this._getSorters();\r\n // call super\r\n Outlayer.prototype._create.call(this);\r\n\r\n // create layout modes\r\n this.modes = {};\r\n // start filteredItems with all items\r\n this.filteredItems = this.items;\r\n // keep of track of sortBys\r\n this.sortHistory = ['original-order'];\r\n // create from registered layout modes\r\n for (var name in LayoutMode.modes) {\r\n this._initLayoutMode(name);\r\n }\r\n };\r\n\r\n proto.reloadItems = function () {\r\n // reset item ID counter\r\n this.itemGUID = 0;\r\n // call super\r\n Outlayer.prototype.reloadItems.call(this);\r\n };\r\n\r\n proto._itemize = function () {\r\n var items = Outlayer.prototype._itemize.apply(this, arguments);\r\n // assign ID for original-order\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n item.id = this.itemGUID++;\r\n }\r\n this._updateItemsSortData(items);\r\n return items;\r\n };\r\n\r\n\r\n // -------------------------- layout -------------------------- //\r\n\r\n proto._initLayoutMode = function (name) {\r\n var Mode = LayoutMode.modes[name];\r\n // set mode options\r\n // HACK extend initial options, back-fill in default options\r\n var initialOpts = this.options[name] || {};\r\n this.options[name] = Mode.options ?\r\n utils.extend(Mode.options, initialOpts) : initialOpts;\r\n // init layout mode instance\r\n this.modes[name] = new Mode(this);\r\n };\r\n\r\n\r\n proto.layout = function () {\r\n // if first time doing layout, do all magic\r\n if (!this._isLayoutInited && this._getOption('initLayout')) {\r\n this.arrange();\r\n return;\r\n }\r\n this._layout();\r\n };\r\n\r\n // private method to be used in layout() & magic()\r\n proto._layout = function () {\r\n // don't animate first layout\r\n var isInstant = this._getIsInstant();\r\n // layout flow\r\n this._resetLayout();\r\n this._manageStamps();\r\n this.layoutItems(this.filteredItems, isInstant);\r\n\r\n // flag for initalized\r\n this._isLayoutInited = true;\r\n };\r\n\r\n // filter + sort + layout\r\n proto.arrange = function (opts) {\r\n // set any options pass\r\n this.option(opts);\r\n this._getIsInstant();\r\n // filter, sort, and layout\r\n\r\n // filter\r\n var filtered = this._filter(this.items);\r\n this.filteredItems = filtered.matches;\r\n\r\n this._bindArrangeComplete();\r\n\r\n if (this._isInstant) {\r\n this._noTransition(this._hideReveal, [filtered]);\r\n } else {\r\n this._hideReveal(filtered);\r\n }\r\n\r\n this._sort();\r\n this._layout();\r\n };\r\n // alias to _init for main plugin method\r\n proto._init = proto.arrange;\r\n\r\n proto._hideReveal = function (filtered) {\r\n this.reveal(filtered.needReveal);\r\n this.hide(filtered.needHide);\r\n };\r\n\r\n // HACK\r\n // Don't animate/transition first layout\r\n // Or don't animate/transition other layouts\r\n proto._getIsInstant = function () {\r\n var isLayoutInstant = this._getOption('layoutInstant');\r\n var isInstant = isLayoutInstant !== undefined ? isLayoutInstant :\r\n !this._isLayoutInited;\r\n this._isInstant = isInstant;\r\n return isInstant;\r\n };\r\n\r\n // listen for layoutComplete, hideComplete and revealComplete\r\n // to trigger arrangeComplete\r\n proto._bindArrangeComplete = function () {\r\n // listen for 3 events to trigger arrangeComplete\r\n var isLayoutComplete, isHideComplete, isRevealComplete;\r\n var _this = this;\r\n function arrangeParallelCallback() {\r\n if (isLayoutComplete && isHideComplete && isRevealComplete) {\r\n _this.dispatchEvent('arrangeComplete', null, [_this.filteredItems]);\r\n }\r\n }\r\n this.once('layoutComplete', function () {\r\n isLayoutComplete = true;\r\n arrangeParallelCallback();\r\n });\r\n this.once('hideComplete', function () {\r\n isHideComplete = true;\r\n arrangeParallelCallback();\r\n });\r\n this.once('revealComplete', function () {\r\n isRevealComplete = true;\r\n arrangeParallelCallback();\r\n });\r\n };\r\n\r\n // -------------------------- filter -------------------------- //\r\n\r\n proto._filter = function (items) {\r\n var filter = this.options.filter;\r\n filter = filter || '*';\r\n var matches = [];\r\n var hiddenMatched = [];\r\n var visibleUnmatched = [];\r\n\r\n var test = this._getFilterTest(filter);\r\n\r\n // test each item\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item.isIgnored) {\r\n continue;\r\n }\r\n // add item to either matched or unmatched group\r\n var isMatched = test(item);\r\n // item.isFilterMatched = isMatched;\r\n // add to matches if its a match\r\n if (isMatched) {\r\n matches.push(item);\r\n }\r\n // add to additional group if item needs to be hidden or revealed\r\n if (isMatched && item.isHidden) {\r\n hiddenMatched.push(item);\r\n } else if (!isMatched && !item.isHidden) {\r\n visibleUnmatched.push(item);\r\n }\r\n }\r\n\r\n // return collections of items to be manipulated\r\n return {\r\n matches: matches,\r\n needReveal: hiddenMatched,\r\n needHide: visibleUnmatched\r\n };\r\n };\r\n\r\n // get a jQuery, function, or a matchesSelector test given the filter\r\n proto._getFilterTest = function (filter) {\r\n if (jQuery && this.options.isJQueryFiltering) {\r\n // use jQuery\r\n return function (item) {\r\n return jQuery(item.element).is(filter);\r\n };\r\n }\r\n if (typeof filter == 'function') {\r\n // use filter as function\r\n return function (item) {\r\n return filter(item.element);\r\n };\r\n }\r\n // default, use filter as selector string\r\n return function (item) {\r\n return matchesSelector(item.element, filter);\r\n };\r\n };\r\n\r\n // -------------------------- sorting -------------------------- //\r\n\r\n /**\r\n * @params {Array} elems\r\n * @public\r\n */\r\n proto.updateSortData = function (elems) {\r\n // get items\r\n var items;\r\n if (elems) {\r\n elems = utils.makeArray(elems);\r\n items = this.getItems(elems);\r\n } else {\r\n // update all items if no elems provided\r\n items = this.items;\r\n }\r\n\r\n this._getSorters();\r\n this._updateItemsSortData(items);\r\n };\r\n\r\n proto._getSorters = function () {\r\n var getSortData = this.options.getSortData;\r\n for (var key in getSortData) {\r\n var sorter = getSortData[key];\r\n this._sorters[key] = mungeSorter(sorter);\r\n }\r\n };\r\n\r\n /**\r\n * @params {Array} items - of Isotope.Items\r\n * @private\r\n */\r\n proto._updateItemsSortData = function (items) {\r\n // do not update if no items\r\n var len = items && items.length;\r\n\r\n for (var i = 0; len && i < len; i++) {\r\n var item = items[i];\r\n item.updateSortData();\r\n }\r\n };\r\n\r\n // ----- munge sorter ----- //\r\n\r\n // encapsulate this, as we just need mungeSorter\r\n // other functions in here are just for munging\r\n var mungeSorter = (function () {\r\n // add a magic layer to sorters for convienent shorthands\r\n // `.foo-bar` will use the text of .foo-bar querySelector\r\n // `[foo-bar]` will use attribute\r\n // you can also add parser\r\n // `.foo-bar parseInt` will parse that as a number\r\n function mungeSorter(sorter) {\r\n // if not a string, return function or whatever it is\r\n if (typeof sorter != 'string') {\r\n return sorter;\r\n }\r\n // parse the sorter string\r\n var args = trim(sorter).split(' ');\r\n var query = args[0];\r\n // check if query looks like [an-attribute]\r\n var attrMatch = query.match(/^\\[(.+)\\]$/);\r\n var attr = attrMatch && attrMatch[1];\r\n var getValue = getValueGetter(attr, query);\r\n // use second argument as a parser\r\n var parser = Isotope.sortDataParsers[args[1]];\r\n // parse the value, if there was a parser\r\n sorter = parser ? function (elem) {\r\n return elem && parser(getValue(elem));\r\n } :\r\n // otherwise just return value\r\n function (elem) {\r\n return elem && getValue(elem);\r\n };\r\n\r\n return sorter;\r\n }\r\n\r\n // get an attribute getter, or get text of the querySelector\r\n function getValueGetter(attr, query) {\r\n // if query looks like [foo-bar], get attribute\r\n if (attr) {\r\n return function getAttribute(elem) {\r\n return elem.getAttribute(attr);\r\n };\r\n }\r\n\r\n // otherwise, assume its a querySelector, and get its text\r\n return function getChildText(elem) {\r\n var child = elem.querySelector(query);\r\n return child && child.textContent;\r\n };\r\n }\r\n\r\n return mungeSorter;\r\n })();\r\n\r\n // parsers used in getSortData shortcut strings\r\n Isotope.sortDataParsers = {\r\n 'parseInt': function (val) {\r\n return parseInt(val, 10);\r\n },\r\n 'parseFloat': function (val) {\r\n return parseFloat(val);\r\n }\r\n };\r\n\r\n // ----- sort method ----- //\r\n\r\n // sort filteredItem order\r\n proto._sort = function () {\r\n if (!this.options.sortBy) {\r\n return;\r\n }\r\n // keep track of sortBy History\r\n var sortBys = utils.makeArray(this.options.sortBy);\r\n if (!this._getIsSameSortBy(sortBys)) {\r\n // concat all sortBy and sortHistory, add to front, oldest goes in last\r\n this.sortHistory = sortBys.concat(this.sortHistory);\r\n }\r\n // sort magic\r\n var itemSorter = getItemSorter(this.sortHistory, this.options.sortAscending);\r\n this.filteredItems.sort(itemSorter);\r\n };\r\n\r\n // check if sortBys is same as start of sortHistory\r\n proto._getIsSameSortBy = function (sortBys) {\r\n for (var i = 0; i < sortBys.length; i++) {\r\n if (sortBys[i] != this.sortHistory[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n\r\n // returns a function used for sorting\r\n function getItemSorter(sortBys, sortAsc) {\r\n return function sorter(itemA, itemB) {\r\n // cycle through all sortKeys\r\n for (var i = 0; i < sortBys.length; i++) {\r\n var sortBy = sortBys[i];\r\n var a = itemA.sortData[sortBy];\r\n var b = itemB.sortData[sortBy];\r\n if (a > b || a < b) {\r\n // if sortAsc is an object, use the value given the sortBy key\r\n var isAscending = sortAsc[sortBy] !== undefined ? sortAsc[sortBy] : sortAsc;\r\n var direction = isAscending ? 1 : -1;\r\n return (a > b ? 1 : -1) * direction;\r\n }\r\n }\r\n return 0;\r\n };\r\n }\r\n\r\n // -------------------------- methods -------------------------- //\r\n\r\n // get layout mode\r\n proto._mode = function () {\r\n var layoutMode = this.options.layoutMode;\r\n var mode = this.modes[layoutMode];\r\n if (!mode) {\r\n // TODO console.error\r\n throw new Error('No layout mode: ' + layoutMode);\r\n }\r\n // HACK sync mode's options\r\n // any options set after init for layout mode need to be synced\r\n mode.options = this.options[layoutMode];\r\n return mode;\r\n };\r\n\r\n proto._resetLayout = function () {\r\n // trigger original reset layout\r\n Outlayer.prototype._resetLayout.call(this);\r\n this._mode()._resetLayout();\r\n };\r\n\r\n proto._getItemLayoutPosition = function (item) {\r\n return this._mode()._getItemLayoutPosition(item);\r\n };\r\n\r\n proto._manageStamp = function (stamp) {\r\n this._mode()._manageStamp(stamp);\r\n };\r\n\r\n proto._getContainerSize = function () {\r\n return this._mode()._getContainerSize();\r\n };\r\n\r\n proto.needsResizeLayout = function () {\r\n return this._mode().needsResizeLayout();\r\n };\r\n\r\n // -------------------------- adding & removing -------------------------- //\r\n\r\n // HEADS UP overwrites default Outlayer appended\r\n proto.appended = function (elems) {\r\n var items = this.addItems(elems);\r\n if (!items.length) {\r\n return;\r\n }\r\n // filter, layout, reveal new items\r\n var filteredItems = this._filterRevealAdded(items);\r\n // add to filteredItems\r\n this.filteredItems = this.filteredItems.concat(filteredItems);\r\n };\r\n\r\n // HEADS UP overwrites default Outlayer prepended\r\n proto.prepended = function (elems) {\r\n var items = this._itemize(elems);\r\n if (!items.length) {\r\n return;\r\n }\r\n // start new layout\r\n this._resetLayout();\r\n this._manageStamps();\r\n // filter, layout, reveal new items\r\n var filteredItems = this._filterRevealAdded(items);\r\n // layout previous items\r\n this.layoutItems(this.filteredItems);\r\n // add to items and filteredItems\r\n this.filteredItems = filteredItems.concat(this.filteredItems);\r\n this.items = items.concat(this.items);\r\n };\r\n\r\n proto._filterRevealAdded = function (items) {\r\n var filtered = this._filter(items);\r\n this.hide(filtered.needHide);\r\n // reveal all new items\r\n this.reveal(filtered.matches);\r\n // layout new items, no transition\r\n this.layoutItems(filtered.matches, true);\r\n return filtered.matches;\r\n };\r\n\r\n /**\r\n * Filter, sort, and layout newly-appended item elements\r\n * @param {Array or NodeList or Element} elems\r\n */\r\n proto.insert = function (elems) {\r\n var items = this.addItems(elems);\r\n if (!items.length) {\r\n return;\r\n }\r\n // append item elements\r\n var i, item;\r\n var len = items.length;\r\n for (i = 0; i < len; i++) {\r\n item = items[i];\r\n this.element.appendChild(item.element);\r\n }\r\n // filter new stuff\r\n var filteredInsertItems = this._filter(items).matches;\r\n // set flag\r\n for (i = 0; i < len; i++) {\r\n items[i].isLayoutInstant = true;\r\n }\r\n this.arrange();\r\n // reset flag\r\n for (i = 0; i < len; i++) {\r\n delete items[i].isLayoutInstant;\r\n }\r\n this.reveal(filteredInsertItems);\r\n };\r\n\r\n var _remove = proto.remove;\r\n proto.remove = function (elems) {\r\n elems = utils.makeArray(elems);\r\n var removeItems = this.getItems(elems);\r\n // do regular thing\r\n _remove.call(this, elems);\r\n // bail if no items to remove\r\n var len = removeItems && removeItems.length;\r\n // remove elems from filteredItems\r\n for (var i = 0; len && i < len; i++) {\r\n var item = removeItems[i];\r\n // remove item from collection\r\n utils.removeFrom(this.filteredItems, item);\r\n }\r\n };\r\n\r\n proto.shuffle = function () {\r\n // update random sortData\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n item.sortData.random = Math.random();\r\n }\r\n this.options.sortBy = 'random';\r\n this._sort();\r\n this._layout();\r\n };\r\n\r\n /**\r\n * trigger fn without transition\r\n * kind of hacky to have this in the first place\r\n * @param {Function} fn\r\n * @param {Array} args\r\n * @returns ret\r\n * @private\r\n */\r\n proto._noTransition = function (fn, args) {\r\n // save transitionDuration before disabling\r\n var transitionDuration = this.options.transitionDuration;\r\n // disable transition\r\n this.options.transitionDuration = 0;\r\n // do it\r\n var returnValue = fn.apply(this, args);\r\n // re-enable transition for reveal\r\n this.options.transitionDuration = transitionDuration;\r\n return returnValue;\r\n };\r\n\r\n // ----- helper methods ----- //\r\n\r\n /**\r\n * getter method for getting filtered item elements\r\n * @returns {Array} elems - collection of item elements\r\n */\r\n proto.getFilteredItemElements = function () {\r\n return this.filteredItems.map(function (item) {\r\n return item.element;\r\n });\r\n };\r\n\r\n // ----- ----- //\r\n\r\n return Isotope;\r\n\r\n}));\r\n","/*\n * MAIN SCRIPT\n * DON'T WRITE FUNCTION HERE, ONLY CALL THEM\n *\n * **/\n// document event listeners\nlet isDocumentScrolled = false;\ndocument.addEventListener('scroll', () => {\n //assure to trigger just once\n if (!isDocumentScrolled) {\n isDocumentScrolled = true;\n initRecaptcha();\n }\n});\nif (document.readyState !== 'loading' && document.readyState !== 'interactive') {\n console.log('document is already ready, just execute code here');\n initFormsValidation();\n initModalResponse();\n initIubendaProof();\n initLoadMore();\n // initMegaMenu();\n // initSwitchLanguage();\n initModalVideo();\n initOpenCloseAccordion();\n jsLazyLoadImages();\n initBackgroundColorWallpaperImageAndText();\n initNumberingTechnicalSpecification();\n initMasonry();\n initPageSlider();\n initVideo();\n initRadarChart();\n initConfiguratorSlider();\n initSimpleHeading();\n initProductHeading();\n}\nelse {\n document.addEventListener('DOMContentLoaded', function () {\n console.log('document was not ready, place code here');\n initFormsValidation();\n initModalResponse();\n initIubendaProof();\n initLoadMore();\n // initMegaMenu();\n // initSwitchLanguage();\n initModalVideo();\n initOpenCloseAccordion();\n jsLazyLoadImages();\n initBackgroundColorWallpaperImageAndText();\n initNumberingTechnicalSpecification();\n initMasonry();\n initPageSlider();\n initVideo();\n initRadarChart();\n initConfiguratorSlider();\n initSimpleHeading();\n initProductHeading();\n });\n}\ndocument.onreadystatechange = function () {\n if (document.readyState == \"complete\") {\n console.log('document ready state is complete');\n initFormsValidation();\n initModalResponse();\n initIubendaProof();\n initLoadMore();\n initMegaMenu();\n initSwitchLanguage();\n initModalVideo();\n initOpenCloseAccordion();\n jsLazyLoadImages();\n initBackgroundColorWallpaperImageAndText();\n initNumberingTechnicalSpecification();\n initMasonry();\n initPageSlider();\n initVideo();\n initRadarChart();\n initConfiguratorSlider();\n initSimpleHeading();\n initProductHeading();\n }\n};\n","/**\n * Align cells within the carousel element.\n * \"left\", \"center\", \"right\"\n */\nvar cellAlign;\n(function (cellAlign) {\n cellAlign[\"left\"] = \"left\";\n cellAlign[\"center\"] = \"center\";\n cellAlign[\"right\"] = \"right\";\n})(cellAlign || (cellAlign = {}));\n/**\n * Responsive slider\n * If the container can't contain all the slides then the carousel will be initialized\n *\n * You must add the attribute\n * data-slide to every slide of the slider\n *\n * @param {string} sliderSelector - querySelector of carousel. Choose [data-carousel] if you want to select all carousel.\n * @param {cellAlign} cellAlign - Align cells within the carousel element. Choose \"left\", \"center\", \"right\".\n * @param {boolean} contain - Contains cells to carousel element to prevent excess scroll at beginning or end. Has no effect if wrapAround: true\n * @param {boolean | number} autoPlay - Automatically advances to the next cell.\n * @param {boolean} wrapAround - At the end of cells, wrap-around to the other end for infinite scrolling.\n * @param {number} viewport - An optional parameter to decide at which viewport the carousel should be activated.\n * @param {number} destroyViewport - An optional parameter to decide at which viewport the carousel should be destroyed.\n *\n */\nconst initCarousel = (sliderSelector, cellAlign, contain, autoPlay, wrapAround, viewport, destroyViewport) => {\n if (window.innerWidth <= viewport || !viewport) {\n const arrayCarousel = document.querySelectorAll(sliderSelector);\n if (arrayCarousel && arrayCarousel.length > 0) {\n arrayCarousel.forEach((carouselContainer) => {\n const arraySliderItems = carouselContainer.querySelectorAll(\"[data-slide]\");\n const buttonsContainer = carouselContainer.parentElement.querySelector(\".custom-buttons-container\");\n const buttonNext = buttonsContainer.querySelector(\".button-next\");\n const buttonPrevious = buttonsContainer.querySelector(\".button-previous\");\n //Max number of slides that could exist into the slider\n const maxNumberOfItems = ((carouselContainer.clientWidth + (arraySliderItems[0].offsetWidth - arraySliderItems[0].clientWidth)) / arraySliderItems[0].offsetWidth);\n //Array of slider's items (How many slide there are on the carousel)\n const actualSliderItemsNumber = arraySliderItems.length;\n //If Number max is less than item exist then initialize slider carousel or add a calss to center item\n if (actualSliderItemsNumber > maxNumberOfItems) {\n if (window.innerWidth > destroyViewport || !destroyViewport) {\n const flickitySlider = new Flickity(carouselContainer, {\n on: {\n ready: function () {\n carouselContainer.setAttribute(\"data-carousel\", \"active\");\n }\n },\n //slider options\n cellAlign: cellAlign.toString(),\n contain: contain,\n autoPlay: autoPlay,\n wrapAround: wrapAround,\n imagesLoaded: true\n });\n buttonNext.addEventListener(\"click\", () => {\n flickitySlider.next();\n });\n buttonPrevious.addEventListener(\"click\", () => {\n flickitySlider.previous();\n });\n console.log(flickitySlider);\n }\n }\n else {\n carouselContainer.classList.add(\"is-not-slider\");\n carouselContainer.setAttribute(\"data-carousel\", \"not-active\");\n }\n });\n }\n }\n};\n","let iso;\nconst masonryGrid = document.querySelector('.masonry');\nconst initMasonry = () => {\n const elementsArray = document.querySelectorAll('.masonry .masonry-item');\n if (masonryGrid && elementsArray) {\n iso = new Isotope(masonryGrid, {\n // options\n itemSelector: '.masonry-cell',\n layoutMode: 'masonry',\n masonry: {\n gutter: 30,\n // @ts-ignore\n horizontalOrder: true\n }\n });\n reloadMasonry(masonryGrid, iso);\n }\n};\nconst reloadMasonry = (element, isotope) => {\n imagesLoaded(element).on('progress', () => {\n // layout Isotope after each image loads, to avoid layout collapsing\n isotope.layout();\n });\n};\n","const componentFunction = (test) => {\n return test;\n};\n","const configuratorRestultsSlider = () => {\n const configuratorWidgetsArray = document.querySelectorAll(\".configurator-widget\");\n if (configuratorWidgetsArray && configuratorWidgetsArray.length > 0) {\n configuratorWidgetsArray.forEach((configuratorWidget) => {\n const dataResultsConfiguratorList = configuratorWidget.querySelectorAll(\"[data-result-configurator]\");\n dataResultsConfiguratorList.forEach((dataResultConfigurator) => {\n initCarousel(\"[data-configurator-to-append][data-carousel]\", cellAlign.left, true, false, false, null, null);\n });\n });\n }\n};\n","const initConfiguratorSlider = () => {\n const configuratorWidgetsArray = document.querySelectorAll(\".configurator-widget\");\n if (configuratorWidgetsArray && configuratorWidgetsArray.length > 0) {\n configuratorWidgetsArray.forEach((configuratorWidget) => {\n const dataCarousel = configuratorWidget.querySelector(\"[data-carousel]\");\n if (dataCarousel) {\n const dataSlides = dataCarousel.querySelectorAll(\"[data-slide]\");\n if (dataSlides && dataSlides.length > 2) {\n initCarousel(\"[data-carousel]\", cellAlign.left, true, false, false, null, null);\n }\n else {\n dataCarousel.setAttribute(\"data-carousel\", \"not-active\");\n configuratorWidget.classList.add(\"not-slider\");\n }\n }\n let isDocumentScrolled = false;\n window.addEventListener(\"scroll\", () => {\n const sectionRectTop = configuratorWidget.getBoundingClientRect().top;\n if (window.innerWidth <= 767) {\n if (sectionRectTop > 300 && sectionRectTop < 400) {\n if (!isDocumentScrolled) {\n isDocumentScrolled = true;\n console.log(\"dentro al viewport\");\n initConfiguratorFetch();\n }\n }\n }\n else {\n if (sectionRectTop > 100 && sectionRectTop < 200) {\n if (!isDocumentScrolled) {\n isDocumentScrolled = true;\n console.log(\"dentro al viewport\");\n initConfiguratorFetch();\n }\n }\n }\n });\n });\n }\n};\nconst initConfiguratorFetch = () => {\n const configuratorWidgetsArray = document.querySelectorAll(\".configurator-widget\");\n if (configuratorWidgetsArray && configuratorWidgetsArray.length > 0) {\n configuratorWidgetsArray.forEach((configuratorWidget) => {\n const stepContainerList = configuratorWidget.querySelectorAll(\".step-container\");\n let i = 0;\n const dataOption = [];\n stepContainerList.forEach((stepContainer) => {\n setTimeout(() => {\n if (parseInt(stepContainer.getAttribute(\"data-number-step-container\")) >= 2) {\n stepTitle.classList.remove(\"active\");\n accordionContainer.classList.remove(\"active\");\n }\n }, 500);\n i += 1;\n stepContainer.setAttribute(\"data-number-step-container\", `${i}`);\n const stepTitle = stepContainer.querySelector(\".step-title\");\n const accordionContainer = stepContainer.querySelector(\".accordion-container\");\n clickBehaviourAccordion(stepTitle, accordionContainer);\n const stepFeatureList = accordionContainer.querySelectorAll(\".step-feature\");\n stepFeatureList.forEach((stepFeature) => {\n stepFeature.addEventListener(\"click\", () => {\n if (stepFeature.hasAttribute(\"data-check\")) {\n stepFeature.removeAttribute(\"data-check\");\n const index = dataOption.indexOf(`options=${stepFeature.getAttribute(\"data-option\")}`);\n if (index > -1) {\n dataOption.splice(index, 1);\n }\n }\n else {\n for (let i = 0; i < stepFeatureList.length; i++) {\n if (stepFeatureList[i].hasAttribute(\"data-check\")) {\n stepFeatureList[i].removeAttribute(\"data-check\");\n const index = dataOption.indexOf(`options=${stepFeatureList[i].getAttribute(\"data-option\")}`);\n if (index > -1) {\n dataOption.splice(index, 1);\n }\n }\n }\n stepFeature.setAttribute(\"data-check\", \"active\");\n dataOption.push(`options=${stepFeature.getAttribute(\"data-option\")}`);\n }\n for (let j = 0; j < stepContainerList.length; j++) {\n if ((parseInt(stepContainer.getAttribute(\"data-number-step-container\")) + 1) == parseInt(stepContainerList[j].getAttribute(\"data-number-step-container\"))) {\n const nextStepTitle = stepContainerList[j].querySelector(\".step-title\");\n const nextAccordionContainer = stepContainerList[j].querySelector(\".accordion-container\");\n if (!nextAccordionContainer.classList.contains(\"active\")) {\n nextStepTitle.classList.add(\"active\");\n nextAccordionContainer.classList.add(\"active\");\n nextStepTitle.scrollIntoView();\n }\n }\n }\n configuratorFetch(configuratorWidget, dataOption.join(\"&\"));\n });\n });\n });\n });\n }\n};\nconst configuratorFetch = (configuratorWidget, dataOption) => {\n const resultConfigurationContainer = configuratorWidget.querySelector(\"[data-result-configurator]\");\n const dataResultConfigurator = resultConfigurationContainer.querySelector(\"[data-configurator-to-append]\");\n const dataResultCustomButtonsConfigurator = resultConfigurationContainer.querySelector(\"[data-custom-buttons-configurator-to-append]\");\n const currentLanguage = document.querySelector(\"html\").getAttribute(\"lang\");\n fetch(`/${currentLanguage}/api/configurator/GetResults?${dataOption}`)\n .then(data => {\n //convert the response into plain text\n data.text()\n //resolve the promise\n .then((result) => {\n // Initialize the DOM parser\n const parser = new DOMParser();\n // Parse the text and convert it into HTML\n const parsedHTML = parser.parseFromString(result, \"text/html\");\n const dataConfiguratorToAppend = parsedHTML.querySelector(\"[data-configurator-to-append]\");\n const dataCustomButtonsConfiguratorToAppend = parsedHTML.querySelector(\"[data-custom-buttons-configurator-to-append]\");\n //get only the cards\n if (dataResultConfigurator) {\n resultConfigurationContainer.removeChild(dataResultConfigurator);\n resultConfigurationContainer.removeChild(dataResultCustomButtonsConfigurator);\n resultConfigurationContainer.append(dataConfiguratorToAppend);\n resultConfigurationContainer.append(dataCustomButtonsConfiguratorToAppend);\n }\n else {\n resultConfigurationContainer.append(dataConfiguratorToAppend);\n resultConfigurationContainer.append(dataCustomButtonsConfiguratorToAppend);\n }\n configuratorRestultsSlider();\n });\n });\n};\nconst clickBehaviourAccordion = (clickElement, description) => {\n clickElement.addEventListener(\"click\", () => {\n if (description.classList.contains(\"active\")) {\n clickElement.classList.remove(\"active\");\n description.classList.remove(\"active\");\n }\n else {\n clickElement.classList.add(\"active\");\n description.classList.add(\"active\");\n }\n });\n};\n","// ACTIVATE:\n// invoke initFormFieldsToggle() in main.ts if you need to add this hide / show feature for form fields\n// EXAMPLE:\n// you need to show additional fields if a specific option is selected\n// and hide other non-related-fields\n// HOW TO DO IT:\n// add [data-toggler] to all the select fields, that make some extra fields appear\nconst initFormFieldsToggle = () => {\n const contactFormsArray = document.querySelectorAll(\"[contact-form]\");\n if (contactFormsArray && contactFormsArray.length > 0) {\n contactFormsArray.forEach((form) => {\n const togglerArray = form.querySelectorAll(\"[data-toggler]\");\n const elementsToBeToggledArray = document.querySelectorAll(\"[data-form-toggle-type]\");\n togglerArray && togglerArray.length > 0 && togglerArray.forEach((toggler) => {\n //give it a first run to show correct data only\n toggleFormFields(elementsToBeToggledArray, toggler);\n //bind the function to the change event\n toggler.addEventListener(\"change\", () => {\n toggleFormFields(elementsToBeToggledArray, toggler);\n });\n });\n });\n }\n};\n//IF YOU WANT TO INSERT A NEW \"data-form-toggle-type\", THIS CODE HANDLES ONLY SINGLE WORDS\n//SO MAKE THE VALUE OF THE OPTION AND THE ATTR BE JUST ONE WORD\n//EXAMPLE: \n// OK => NEWTYPE, newtype, NewType\n// NOT OK => NEW-TYPE, NEW TYPE\n//IF YOU WANT AN ELEMENT TO BE AVAILABLE FOR MORE THAN ONE TYPE OF OPTION\n//THEN SEPARE THE TYPES WITH \";\"\n//LIKE THIS \"data-form-toggle-type=\"type1;type2\"\nconst toggleFormFields = (array, selectToggler) => {\n array.forEach((element) => {\n if (element.getAttribute(\"data-form-toggle-type\").split(\";\").includes(selectToggler.value.toLowerCase())) {\n element.classList.remove(\"hidden\");\n if (element instanceof HTMLInputElement || element instanceof HTMLSelectElement) {\n element.removeAttribute('disabled');\n }\n else {\n element.querySelectorAll(\"input, select\").forEach((input) => {\n input.removeAttribute('disabled');\n });\n }\n }\n else {\n element.classList.add(\"hidden\");\n if (element instanceof HTMLInputElement || element instanceof HTMLSelectElement) {\n element.disabled = true;\n }\n else {\n element.querySelectorAll(\"input, select\").forEach((input) => {\n input.disabled = true;\n });\n }\n }\n });\n};\n","const mapsArray = document.querySelectorAll(\".google-map\");\nconst initMapScript = () => {\n if (mapsArray && mapsArray.length > 0) {\n const APIKEY = document.querySelector(\"[data-api-key]\").getAttribute(\"data-api-key\");\n const script = document.createElement('script');\n script.async = true;\n script.src = `https://maps.googleapis.com/maps/api/js?key=${APIKEY}&callback=initMap&libraries=&v=weekly`;\n document.head.appendChild(script);\n }\n};\nconst initMap = () => {\n mapsArray && mapsArray.length > 0 && mapsArray.forEach((singleMap) => {\n const markerLat = parseFloat(singleMap.getAttribute(\"data-lat\").replace(\",\", \".\"));\n const markerLng = parseFloat(singleMap.getAttribute(\"data-lng\").replace(\",\", \".\"));\n const markerTitle = singleMap.getAttribute(\"data-marker-title\");\n const markerDescription = singleMap.getAttribute(\"data-marker-description\");\n if (markerLat && markerLng) {\n const map = new google.maps.Map(singleMap, {\n zoom: 10,\n center: { lat: markerLat, lng: markerLng }\n });\n if (markerTitle && markerDescription) {\n new google.maps.Marker({\n position: { lat: markerLat, lng: markerLng },\n map: map,\n title: markerTitle,\n label: markerDescription\n });\n }\n }\n });\n};\n//USARE PER DUE MARKER\n/**\n * Come dovrebbero arrivarmi i dati?\n * Crea un mockup\n * */\n//const mapsArray = document.querySelectorAll(\".google-map\");\n//const initMapScript = () => {\n// if (mapsArray && mapsArray.length > 0) {\n// const APIKEY = \"AIzaSyD03t8qazgdw-SdqcNnlH124LtF4NpLkes\";\n// const script = document.createElement('script');\n// script.async = true;\n// script.src = `https://maps.googleapis.com/maps/api/js?key=${APIKEY}&callback=initMap&libraries=&v=weekly`;\n// document.head.appendChild(script);\n// }\n//};\n//const initMap = () => {\n// mapsArray && mapsArray.length > 0 && mapsArray.forEach((singleMap) => {\n// //styling map\n// const styleMap = [\n// {\n// \"featureType\": \"landscape\",\n// \"stylers\": [\n// {\n// \"hue\": \"#FFBB00\"\n// },\n// {\n// \"saturation\": 43.400000000000006\n// },\n// {\n// \"lightness\": 37.599999999999994\n// },\n// {\n// \"gamma\": 1\n// }\n// ]\n// },\n// {\n// \"featureType\": \"road.highway\",\n// \"stylers\": [\n// {\n// \"hue\": \"#FFC200\"\n// },\n// {\n// \"saturation\": -61.8\n// },\n// {\n// \"lightness\": 45.599999999999994\n// },\n// {\n// \"gamma\": 1\n// }\n// ]\n// },\n// {\n// \"featureType\": \"road.arterial\",\n// \"stylers\": [\n// {\n// \"hue\": \"#FF0300\"\n// },\n// {\n// \"saturation\": -100\n// },\n// {\n// \"lightness\": 51.19999999999999\n// },\n// {\n// \"gamma\": 1\n// }\n// ]\n// },\n// {\n// \"featureType\": \"road.local\",\n// \"stylers\": [\n// {\n// \"hue\": \"#FF0300\"\n// },\n// {\n// \"saturation\": -100\n// },\n// {\n// \"lightness\": 52\n// },\n// {\n// \"gamma\": 1\n// }\n// ]\n// },\n// {\n// \"featureType\": \"water\",\n// \"stylers\": [\n// {\n// \"hue\": \"#0078FF\"\n// },\n// {\n// \"saturation\": -13.200000000000003\n// },\n// {\n// \"lightness\": 2.4000000000000057\n// },\n// {\n// \"gamma\": 1\n// }\n// ]\n// },\n// {\n// \"featureType\": \"poi\",\n// \"stylers\": [\n// {\n// \"hue\": \"#00FF6A\"\n// },\n// {\n// \"saturation\": -1.0989010989011234\n// },\n// {\n// \"lightness\": 11.200000000000017\n// },\n// {\n// \"gamma\": 1\n// }\n// ]\n// }\n// ];\n// // lat lng marker\n//TODO AGGIUNGERE REPLACE\n// const markerLatArray = singleMap.getAttribute(\"data-marker-lat\").split(\";\");\n// const markerLngArray = singleMap.getAttribute(\"data-marker-lng\").split(\";\");\n// // create empty LatLngBounds object to center map automatically between markers\n// let bounds = new google.maps.LatLngBounds();\n// if (markerLatArray && markerLngArray) {\n// const map = new google.maps.Map(singleMap, {\n// zoom: 11,\n// disableDefaultUI: true,\n// styles: styleMap\n// });\n// const iconDefault = \"/assets/icons/Marker.svg\";\n// if (markerLatArray && markerLngArray && markerLatArray.length > 0 && markerLngArray.length > 0) {\n// for (let i = 0; i < markerLatArray.length && i < markerLngArray.length; i++) {\n// let markerLat = parseFloat(markerLatArray[i]);\n// let markerLng = parseFloat(markerLngArray[i]);\n// let marker = new google.maps.Marker({\n// position: { lat: markerLat, lng: markerLng },\n// map: map,\n// icon: iconDefault\n// });\n// bounds.extend(marker.getPosition());\n// }\n// map.fitBounds(bounds);\n// }\n// }\n// });\n//};\n","const initModalVideo = () => {\n const imageVideoWidgetArray = document.querySelectorAll(\".image-video-widget\");\n if (imageVideoWidgetArray && imageVideoWidgetArray.length > 0) {\n const body = document.querySelector(\"body\");\n imageVideoWidgetArray.forEach((imageVideoWidget) => {\n const wrapperImageVideo = imageVideoWidget.querySelector(\".wrapper-image-video\");\n const videoContainer = imageVideoWidget.querySelector(\".video-container\");\n const modalVideo = imageVideoWidget.querySelector(\".modal-video\");\n const modalCloseIcon = modalVideo.querySelector(\".close-icon\");\n if (videoContainer && modalVideo) {\n const iframeVideo = modalVideo.querySelector(\"iframe\");\n const scrVideo = modalVideo.querySelector(\"iframe\").getAttribute(\"src\");\n videoContainer.addEventListener(\"click\", () => {\n wrapperImageVideo.classList.add(\"modal-active\");\n iframeVideo.setAttribute(\"src\", scrVideo);\n body.classList.add(\"no-scroll\");\n });\n clickCloseModalVideoEvent(modalCloseIcon, wrapperImageVideo, iframeVideo, body);\n clickCloseModalVideoEvent(modalVideo, wrapperImageVideo, iframeVideo, body);\n }\n });\n }\n};\nconst clickCloseModalVideoEvent = (elementClick, wrapperImageVideo, iframeVideo, body) => {\n elementClick.addEventListener(\"click\", () => {\n wrapperImageVideo.classList.remove(\"modal-active\");\n iframeVideo.setAttribute(\"src\", \"\");\n body.classList.remove(\"no-scroll\");\n });\n};\n","const initOpenCloseAccordion = () => {\n const insightsListWidgetsArray = document.querySelectorAll(\".insights-list-widget\");\n if (insightsListWidgetsArray && insightsListWidgetsArray.length > 0) {\n insightsListWidgetsArray.forEach((insightsListWidget) => {\n const accordionsInsightsListArray = insightsListWidget.querySelectorAll(\".accordion-insights-list\");\n accordionsInsightsListArray.forEach((accordionInsightsList) => {\n const plus = accordionInsightsList.querySelector(\".plus\");\n const minus = accordionInsightsList.querySelector(\".minus\");\n const titleAccordionInsightsList = accordionInsightsList.querySelector(\".title-accordion-insights-list\");\n const descriptionAccordionInsightsList = accordionInsightsList.querySelector(\".description-accordion-insights-list\");\n clickBehaviourOneCloseAccordion(titleAccordionInsightsList, plus, minus, descriptionAccordionInsightsList);\n clickBehaviourOneCloseAccordion(plus, plus, minus, descriptionAccordionInsightsList);\n clickBehaviourOneCloseAccordion(minus, plus, minus, descriptionAccordionInsightsList);\n });\n });\n }\n};\nconst clickBehaviourOneCloseAccordion = (clickElement, plus, minus, description) => {\n clickElement.addEventListener(\"click\", () => {\n if (minus.classList.contains(\"active\")) {\n minus.classList.remove(\"active\");\n description.classList.remove(\"active\");\n plus.classList.add(\"active\");\n }\n else {\n plus.classList.remove(\"active\");\n minus.classList.add(\"active\");\n description.classList.add(\"active\");\n }\n });\n};\n","const initSwitchLanguage = () => {\n const langIcon = document.querySelector(\"[data-language-selector-container]\");\n const dropdownMenuLanguage = document.querySelector(\"[data-dropdown-lang]\");\n langIcon && langIcon.addEventListener('click', () => {\n if (dropdownMenuLanguage.classList.contains('is-visible')) {\n dropdownMenuLanguage.classList.remove('is-visible');\n dropdownMenuLanguage.classList.add('not-visible');\n }\n else {\n dropdownMenuLanguage.classList.remove('not-visible');\n dropdownMenuLanguage.classList.add('is-visible');\n }\n });\n};\n","const initMegaMenu = () => {\n const megaMenuContainer = document.querySelector(\"[data-mega-menu-container]\");\n const openMegaMenuTogglerContainer = document.querySelector(\"[data-menu-toggler-container]\");\n const closeMegaMenuTogglerContainer = megaMenuContainer.querySelector(\".close-hamburger\");\n const body = document.querySelector(\"body\");\n if (megaMenuContainer && openMegaMenuTogglerContainer && closeMegaMenuTogglerContainer) {\n openMegaMenuTogglerContainer.addEventListener(\"click\", () => {\n megaMenuContainer.classList.toggle(\"active\");\n openMegaMenuTogglerContainer.classList.toggle(\"active\");\n body.classList.toggle(\"no-scroll\");\n });\n closeMegaMenuTogglerContainer.addEventListener(\"click\", () => {\n megaMenuContainer.classList.toggle(\"active\");\n openMegaMenuTogglerContainer.classList.toggle(\"active\");\n body.classList.toggle(\"no-scroll\");\n });\n }\n};\n","const initPageSlider = () => {\n const pageSlidersWidgetsArray = document.querySelectorAll(\".pages-slider-widget\");\n if (pageSlidersWidgetsArray && pageSlidersWidgetsArray.length > 0) {\n pageSlidersWidgetsArray.forEach((pageSliderWidget) => {\n const dataCarousel = pageSliderWidget.querySelector(\"[data-carousel]\");\n if (dataCarousel) {\n const dataSlides = dataCarousel.querySelectorAll(\"[data-slide]\");\n if (dataSlides && dataSlides.length > 2) {\n initCarousel(\"[data-carousel]\", cellAlign.left, true, false, false, null, 768);\n }\n else {\n dataCarousel.setAttribute(\"data-carousel\", \"not-active\");\n pageSliderWidget.classList.add(\"not-slider\");\n }\n }\n });\n }\n};\n","/**\n* debouncer - Limits the rate at which a function can fire.\n*\n* Example:\n*\n* $(window).resize(debouncer(function(e) {\n* function();\n* }, 300));\n*\n* @param {function} func The function you want to limit\n* @param {ms} timeout Optional: timeout of the debouncer. Defaults at 200ms.\n*/\nconst debouncer = (func, timeout = 300) => {\n let timeoutId;\n return function (...args) {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => func.apply(this, args), timeout);\n };\n};\n","const initFilter = () => {\n const filterInput = document.querySelector(\"[data-input-filter]\");\n const itemsToFilterArray = document.querySelectorAll(\"[data-item-toggle]\");\n const itemsTitleToFilterArray = document.querySelectorAll(\"[data-item-filter]\");\n if (filterInput) {\n filterInput.addEventListener(\"keyup\", (e) => {\n const inputText = e.target.value.toLowerCase();\n for (let i = 0; i < itemsTitleToFilterArray.length; i++) {\n if (itemsTitleToFilterArray[i].innerText.toLowerCase().includes(inputText)) {\n itemsToFilterArray[i].classList.remove(\"not-visible\");\n }\n else {\n itemsToFilterArray[i].classList.add(\"not-visible\");\n }\n }\n });\n }\n};\n","let isFormValid = false;\nconst contactForms = document.querySelectorAll(\"form\");\nconst initFormsValidation = () => {\n contactForms && contactForms.forEach((form) => {\n const submitButton = form.querySelector(\"[submit-button]\");\n submitButton.addEventListener(\"click\", (e) => {\n e.preventDefault();\n // set active form\n contactForms.forEach((singleForm) => singleForm.removeAttribute(\"data-active-form\"));\n form.setAttribute(\"data-active-form\", \"true\");\n // disable button\n temporaryDisableButton(submitButton);\n // check form validity\n const contactFormRequiredElements = form.querySelectorAll(\"[required]:not([disabled])\");\n if (contactFormRequiredElements && contactFormRequiredElements.length > 0) {\n isFormValid = checkFormValidity(contactFormRequiredElements);\n if (isFormValid) {\n if (isRecaptchaEnabled) {\n const recaptchaContainer = form.querySelector(\".g-recaptcha\");\n const widgetId = grecaptcha.render(recaptchaContainer);\n grecaptcha.execute(widgetId);\n }\n else {\n form.submit();\n }\n }\n }\n });\n });\n};\nconst temporaryDisableButton = (button) => {\n button.disabled = true;\n setTimeout(() => {\n button.removeAttribute(\"disabled\");\n }, 2000);\n};\nconst checkFormValidity = (arrayOfRequiredElements) => {\n let errorCounter = 0;\n arrayOfRequiredElements.forEach((item) => {\n if (item.hasAttribute(\"required\")) {\n const isValidItem = item.checkValidity();\n //handle checkbox\n if (item.type === \"checkbox\") {\n const label = item.parentElement.querySelector(\"label\");\n if (isValidItem) {\n label.classList.remove('error');\n }\n else {\n label.classList.add('error');\n errorCounter++;\n }\n //all other inputs\n }\n else {\n if (isValidItem) {\n item.classList.remove('error');\n }\n else {\n item.classList.add('error');\n errorCounter++;\n }\n }\n item.addEventListener(\"click\", () => {\n item.classList.remove('error');\n });\n }\n });\n return errorCounter > 0 ? false : true;\n};\n","const iframeVideoBackground = (HeadingComponentList) => {\n if (HeadingComponentList && HeadingComponentList.length > 0) {\n HeadingComponentList.forEach((HeadingComponent) => {\n const backgroundVideo = HeadingComponent.querySelector(\"[data-background-video]\");\n const iframeVideo = HeadingComponent.querySelector(\"[data-iframe-video]\");\n if (backgroundVideo) {\n const backgroundVideoDesktop = backgroundVideo.getAttribute(\"data-video-desktop\");\n const backgroundVideoMobile = backgroundVideo.getAttribute(\"data-video-mobile\");\n if (backgroundVideoDesktop && backgroundVideoMobile) {\n if (window.innerWidth >= 768) {\n iframeVideo.setAttribute(\"src\", `${backgroundVideoDesktop}&autoplay=1&loop=1&controls=0&mute=1&background=1`);\n }\n else {\n iframeVideo.setAttribute(\"src\", `${backgroundVideoMobile}&autoplay=1&loop=1&controls=0&mute=1&background=1`);\n }\n iframeVideo.setAttribute(\"title\", \"video\");\n }\n }\n });\n }\n};\n","const initIubendaProof = () => {\n document.querySelectorAll('form[method=POST]').forEach(function (value) {\n const html = btoa(encodeURI(value.innerHTML));\n const textArea = document.createElement(\"textarea\");\n const innerText = document.createTextNode(html);\n textArea.name = \"iubenda_proof\";\n textArea.style.display = \"none\";\n value.appendChild(textArea);\n textArea.appendChild(innerText);\n });\n};\n","/**\n* LAZY LOAD IMG\n* loading non-critical img (and background img) at the moment of need\n*\n* for img use:\n* - data-src=url\n* -\n* - src=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII= *\n*\n* - class => \"notLazy\" to not include that img in lazyLoading function\n*\n* for background img use:\n* - data-bg=url\n*\n* To exclude an entire DOM element (as well as all the children) apply the class \"notLazy\" to that element.\n*\n* recall jsLazyLoadImages() every time you add images asynchronously\n*\n* @external Debouncer.fn\n* @see {@link ./frontend.util.js => debouncer}\n*\n* @external imagesloaded\n* @see {@link https://imagesloaded.desandro.com/}\n*\n* @param {object} settings => [OPTIONAL] settings object\n* @param {bool} settings0=> [OPTIONAL] add all img to lazyLoad\n* @param {bool} settings1 => [OPTIONAL] add all bacgkroundImg to lazyLoad\n* @param {bool} settings2 => [OPTIONAL] container\n*\n*/\nconst jsLazyLoadImages = (asyncImg = true, asyncBg = true, container = document) => {\n if (!asyncImg && !asyncBg)\n return false;\n let lazyImgs = [];\n let lazyImagesBG = [];\n let lazyImages = [];\n let active = false;\n const jsLazyLoad = () => {\n // Puts the contents of the querySelectorAll into the array.\n lazyImgs = asyncImg ? [].slice.call(container.querySelectorAll(\"[data-src]:not(.notLazy):not([js-done])\")) : lazyImgs;\n lazyImagesBG = asyncBg ? [].slice.call(container.querySelectorAll(\"[data-bg]:not([js-done])\")) : lazyImagesBG;\n // filter out images inside '.notLazy' containers\n const notLazyNodes = [...container.querySelectorAll('.notLazy:not(img)')];\n lazyImgs.forEach(img => {\n if (notLazyNodes.some(node => node.contains(img)))\n lazyImgs.splice(img);\n });\n //notLazyNodes\n lazyImages = lazyImgs.concat(lazyImagesBG);\n active = false;\n if (active === false) {\n active = true;\n lazyImages.forEach(lazyImage => {\n if ((lazyImage.getBoundingClientRect().top - window.innerHeight / 2 <= window.innerHeight &&\n lazyImage.getBoundingClientRect().bottom + window.innerHeight / 2 >= 0) &&\n getComputedStyle(lazyImage).display !== \"none\") {\n setTimeout(() => {\n if (lazyImage.getAttribute(\"data-bg\")) {\n resizeBg([lazyImage]);\n }\n else {\n lazyImage.src = lazyImage.getAttribute(\"data-src\");\n }\n lazyImage.setAttribute(\"js-done\", \"1\");\n lazyImages = lazyImages.filter(image => image !== lazyImage);\n if (lazyImages.length === 0) {\n document.removeEventListener(\"scroll\", jsLazyLoad);\n }\n }, 300);\n }\n });\n active = false;\n }\n };\n //clear old events\n document.removeEventListener(\"scroll\", jsLazyLoad);\n window.removeEventListener('resize', debouncer(() => {\n resizeBg();\n }, 150));\n window.removeEventListener('orientationchange', debouncer(() => {\n resizeBg();\n }, 150));\n jsLazyLoad();\n document.addEventListener(\"scroll\", jsLazyLoad);\n window.addEventListener('resize', debouncer(() => {\n resizeBg();\n }, 150));\n window.addEventListener('orientationchange', debouncer(() => {\n resizeBg();\n }, 150));\n};\nconst resizeBg = (lazyImage) => {\n const lazyImagesBG = lazyImage ? lazyImage : [].slice.call(document.querySelectorAll(\"[data-bg]\"));\n lazyImagesBG.forEach(lazyImage => {\n let url = \"\";\n if (window.innerWidth < 1281) {\n if (window.innerWidth > 767) {\n url = \"data-bg1280\";\n }\n else {\n url = \"data-bg480\";\n }\n }\n else {\n url = \"data-bg\";\n }\n const backgroundImage = lazyImage.getAttribute(url) || lazyImage.getAttribute(\"data-bg\");\n lazyImage.style.backgroundImage = `url('${backgroundImage}')`;\n });\n};\n","/**\n * In the page there should be one or more listings [data-container-loadmore] with the functionality of the load more [data-btn-loadmore];\n * At the click of the load more button of the listing referenced by its ID, it executes a fetch call in GET\n * The resolution of the PROMISE of the fetch transforms the data into a text with the PROMISE Text()\n * The resolution of the PROMISE Text() gives us the result NOT parsed.\n * At this point we will instantiate a DOM Parser, so that it allows us to parse our result in text / html\n * We take only the elements we want [data-to-append]\n * We verify that the listing to which we will hang the elements received is related to the Load more button clicked\n * I append the elements to the listing.\n *\n * At this point, the button will update with the new href\n * If it doesn't have an href, the button node will be removed\n *\n * */\nconst initLoadMore = () => {\n const buttonsArray = document.querySelectorAll(\"[data-btn-loadmore]\");\n const dataContainersArray = document.querySelectorAll(\"[data-container-loadmore]\");\n if (buttonsArray && dataContainersArray && buttonsArray.length > 0 && dataContainersArray.length > 0) {\n // Put unique id on data container\n dataContainersArray.forEach((dataContainer, index) => {\n dataContainer.setAttribute(\"data-container-loadmore\", index.toString());\n });\n buttonsArray.forEach((button, index) => {\n //Put unique id on data button load more\n button.setAttribute(\"data-btn-loadmore\", index.toString());\n button.addEventListener(\"click\", (event) => {\n event.preventDefault();\n if (event.target instanceof HTMLAnchorElement) {\n const clickedButton = event.target;\n //start loading animation\n clickedButton.classList.add(\"loading\");\n const nextPageUrl = event.target.href;\n fetch(`${nextPageUrl}&partial=1`)\n .then(data => {\n //convert the response into plain text\n data.text()\n //resolve the promise\n .then((result) => {\n // Initialize the DOM parser\n const parser = new DOMParser();\n // Parse the text and convert it into HTML\n const parsedHTML = parser.parseFromString(result, \"text/html\");\n //get only the cards\n const cardsToAppendArray = parsedHTML.querySelectorAll(\"[data-to-append]\");\n //append them to the deck\n const loadMoreButtonId = clickedButton.getAttribute(\"data-btn-loadmore\");\n const dataContainer = document.querySelector(`[data-container-loadmore='${loadMoreButtonId}']`);\n cardsToAppendArray.forEach(card => {\n dataContainer.append(card);\n });\n //update loadmore link or hide button\n const updatedButton = parsedHTML.querySelector(\"[data-btn-loadmore]\");\n if (updatedButton != null) {\n clickedButton.href = updatedButton.href;\n //stop loading animation\n clickedButton.classList.remove(\"loading\");\n }\n else {\n //remove load more button\n clickedButton.remove();\n }\n });\n });\n }\n });\n });\n }\n};\n","const initModalResponse = () => {\n const modal = document.querySelector(\".modal\");\n const closeModal = document.querySelector(\".modal .close-icon\");\n if (modal && closeModal) {\n const url = new URL(window.location.href);\n const modalResponse = url.searchParams.get(\"contact\") === \"1\";\n const errorResponse = url.searchParams.get(\"contact\") === \"0\";\n if (modalResponse || errorResponse) {\n modal.classList.remove('not-visible');\n if (modalResponse) {\n modal.classList.add('success');\n }\n if (errorResponse) {\n modal.classList.add('error');\n }\n }\n closeModal.addEventListener('click', () => {\n modal.classList.add('not-visible');\n });\n }\n};\n","(function (prototype) {\n if (typeof prototype.requestSubmit == \"function\")\n return;\n prototype.requestSubmit = function (submitter) {\n if (submitter) {\n validateSubmitter(submitter, this);\n submitter.click();\n }\n else {\n submitter = document.createElement(\"input\");\n submitter.type = \"submit\";\n submitter.hidden = true;\n this.appendChild(submitter);\n submitter.click();\n this.removeChild(submitter);\n }\n };\n function validateSubmitter(submitter, form) {\n submitter instanceof HTMLElement || raise(TypeError, \"parameter 1 is not of type 'HTMLElement'\", \"typeError\");\n submitter.type == \"submit\" || raise(TypeError, \"The specified element is not a submit button\", \"typeError\");\n submitter.form == form || raise(DOMException, \"The specified element is not owned by this form element\", \"NotFoundError\");\n }\n function raise(errorConstructor, message, name) {\n throw new errorConstructor(\"Failed to execute 'requestSubmit' on 'HTMLFormElement': \" + message + \".\", name);\n }\n})(HTMLFormElement.prototype);\nconst isRecaptchaEnabled = true;\nconst initRecaptcha = () => {\n if (isRecaptchaEnabled) {\n const script = document.createElement('script');\n script.async = true;\n script.defer = true;\n script.src = `https://www.google.com/recaptcha/api.js?render=explicit&hl=it-IT`;\n document.head.appendChild(script);\n contactForms && contactForms.length > 0 && contactForms.forEach((form, i) => {\n const recaptchaContainer = form.querySelector(\".g-recaptcha\");\n if (recaptchaContainer) {\n form.querySelector(\".g-recaptcha\").setAttribute(\"g-recaptcha-index\", i.toString());\n return true;\n }\n });\n }\n return false;\n};\nconst submitAfterCaptcha = (token) => {\n const formToSubmit = document.querySelector(`form[data-active-form='true']`);\n const recaptchaTextarea = formToSubmit.querySelector(\".g-recaptcha-response\");\n recaptchaTextarea.value = token;\n formToSubmit.requestSubmit();\n};\n","const initSimpleHeading = () => {\n const simpleHeadingComponentList = document.querySelectorAll(\"[data-product-heading-component]\");\n iframeVideoBackground(simpleHeadingComponentList);\n};\n","const initProductHeading = () => {\n const productHeadingComponentList = document.querySelectorAll(\"[data-simple-heading-component]\");\n iframeVideoBackground(productHeadingComponentList);\n};\n","const initRadarChart = () => {\n const radarWidgetsList = document.querySelectorAll(\".radar-widget\");\n if (radarWidgetsList && radarWidgetsList.length > 0) {\n radarWidgetsList.forEach((radarWidget) => {\n infoRadarHoverFeature(radarWidget);\n drawRadarChartJS(radarWidget);\n });\n }\n};\nconst drawRadarChartJS = (radarWidget) => {\n const featuresRadarContainer = radarWidget.querySelector(\".features-radar-container\");\n const productsNamesList = radarWidget.querySelectorAll(\"[data-product-name]\");\n const datasContainerList = featuresRadarContainer.querySelectorAll(\".datas-container\");\n const dataFeatureNameArray = [];\n const productsNamesArray = [];\n const opponentDataProductFeatureValueArray = [];\n const companyDataProductFeatureValueArray = [];\n productsNamesList.forEach((productName) => {\n const dataproductName = productName.getAttribute(\"data-product-name\");\n productsNamesArray.push(dataproductName);\n });\n datasContainerList.forEach((datasContainer) => {\n const dataFeatureName = datasContainer.querySelector(\"[data-feature-name]\").getAttribute(\"data-feature-name\");\n const dataProductFeatureId = datasContainer.querySelector(\"[data-product-feature-id]\").getAttribute(\"data-product-feature-id\");\n const dataProductFeatureValueList = datasContainer.querySelectorAll(\"[data-company]\");\n dataFeatureNameArray.push(`${dataFeatureName}`);\n productsNamesArray.push(dataProductFeatureId);\n dataProductFeatureValueList.forEach((dataProductFeatureValue) => {\n if (dataProductFeatureValue.getAttribute(\"data-company\") == \"company-product\") {\n companyDataProductFeatureValueArray.push(dataProductFeatureValue.getAttribute(\"data-product-feature-value\"));\n }\n else if (dataProductFeatureValue.getAttribute(\"data-company\") == \"opponent-product\") {\n opponentDataProductFeatureValueArray.push(dataProductFeatureValue.getAttribute(\"data-product-feature-value\"));\n }\n });\n });\n const labels = [\n dataFeatureNameArray\n ];\n const data = {\n labels: labels[0],\n datasets: [{\n data: [100, 100, 100, 100, 100, 100, 100, 100],\n fill: false,\n borderColor: 'rgba(255, 255, 255, 0)',\n pointRadius: 8,\n pointHoverRadius: 8,\n pointBackgroundColor: '#CCCCCC',\n pointBorderColor: '#CCCCCC',\n pointHoverBackgroundColor: '#00AED7',\n pointHoverBorderColor: '#00AED7'\n }, {\n label: productsNamesArray[0],\n data: companyDataProductFeatureValueArray,\n fill: true,\n backgroundColor: 'rgba(0, 174, 215, 0.15)',\n borderColor: '#00AED7',\n borderWidth: 4,\n pointRadius: 0,\n }, {\n label: productsNamesArray[1],\n data: opponentDataProductFeatureValueArray,\n fill: true,\n backgroundColor: 'rgba(204, 204, 204, 0.75)',\n borderColor: 'rgba(204, 204, 204, 0.75)',\n borderWidth: 1,\n pointRadius: 0\n }]\n };\n const options = {\n responsive: true,\n onHover: (event, chartElement) => {\n if (chartElement.length == 1) {\n event.native.target.style.cursor = chartElement[0] ? \"pointer\" : \"default\";\n }\n },\n scales: {\n r: {\n grid: {\n circular: true,\n color: [\"#CCCCCC\", \"#CCCCCC\", \"#CCCCCC\", \"#CCCCCC\", \"#CCCCCC\", \"#CCCCCC\", \"#CCCCCC\", \"#CCCCCC\", \"#CCCCCC\", \"#999999\"],\n lineWidth: [1, 1, 1, 1, 1, 1, 1, 1, 1, 2],\n },\n pointLabels: {\n font: function (ctx) {\n const viewportWidth = ctx.chart.width;\n if (viewportWidth <= 400) {\n return {\n family: \"Helvetica, sans-serif\",\n size: 8,\n weight: \"normal\"\n };\n }\n else {\n return {\n family: \"Helvetica, sans-serif\",\n size: 14,\n weight: \"normal\"\n };\n }\n },\n padding: 15,\n color: \"#000\"\n },\n ticks: {\n display: false\n },\n beginAtZero: true\n }\n },\n plugins: {\n tooltip: {\n enabled: false\n },\n legend: {\n display: false\n }\n },\n };\n const config = {\n type: \"radar\",\n data: data,\n options: options\n };\n const radar = document.querySelector(\"#productChart\");\n const context = radar.getContext(\"2d\");\n const myChart = new Chart(context, config);\n};\nconst infoRadarHoverFeature = (radarWidget) => {\n const featureProductsArray = radarWidget.querySelectorAll(\".feature-product\");\n if (featureProductsArray && featureProductsArray.length > 0) {\n featureProductsArray.forEach((featureProduct) => {\n const featureName = featureProduct.querySelector(\".feature-name\");\n featureName.addEventListener(\"mouseover\", () => {\n const numericValue = featureProduct.querySelector(\".numeric-value\");\n const textValue = featureProduct.querySelector(\".text-value\");\n if (numericValue && textValue) {\n featureName.classList.add(\"hover\");\n numericValue.classList.add(\"hover\");\n textValue.classList.add(\"hover\");\n }\n });\n featureName.addEventListener(\"mouseleave\", () => {\n const numericValue = featureProduct.querySelector(\".numeric-value\");\n const textValue = featureProduct.querySelector(\".text-value\");\n if (numericValue && textValue) {\n featureName.classList.remove(\"hover\");\n numericValue.classList.remove(\"hover\");\n textValue.classList.remove(\"hover\");\n }\n });\n });\n }\n};\n","const initNumberingTechnicalSpecification = () => {\n const technicalSpecificationWidgetsArray = document.querySelectorAll(\".technical-specifications-widget\");\n if (technicalSpecificationWidgetsArray && technicalSpecificationWidgetsArray.length > 0) {\n technicalSpecificationWidgetsArray.forEach((technicalSpecification) => {\n const tabsTableArray = technicalSpecification.querySelectorAll(\".tab-table\");\n const infoTableContainersArray = technicalSpecification.querySelectorAll(\".info-table-container\");\n infoTableContainersArray.forEach((infoTableContainer) => {\n // NUMBERING INFO TABLE CONTAINER\n for (let i = 0; i < infoTableContainersArray.length; i++) {\n infoTableContainersArray[i].setAttribute(\"data-number-info\", i.toString());\n }\n });\n tabsTableArray.forEach((tabsTable) => {\n //NUMBERING TABS\n for (let j = 0; j < tabsTableArray.length; j++) {\n tabsTableArray[j].setAttribute(\"data-number-tab\", j.toString());\n }\n // CLICK BEHAVIOUR\n tabsTable.addEventListener(\"click\", () => {\n if (!tabsTable.classList.contains(\"active\")) {\n for (let k = 0; k < tabsTableArray.length; k++) {\n tabsTableArray[k].classList.remove(\"active\");\n }\n tabsTable.classList.add(\"active\");\n for (let z = 0; z < infoTableContainersArray.length; z++) {\n infoTableContainersArray[z].classList.remove(\"active\");\n if (tabsTable.getAttribute(\"data-number-tab\") == infoTableContainersArray[z].getAttribute(\"data-number-info\")) {\n infoTableContainersArray[z].classList.add(\"active\");\n }\n }\n }\n });\n });\n });\n }\n};\n","const initVideo = () => {\n const video = document.querySelector(\"[data-video]\");\n if (video) {\n const script = document.createElement('script');\n script.async = true;\n script.src = `https://player.vimeo.com/api/player.js`;\n document.head.appendChild(script);\n }\n};\n","const initBackgroundColorWallpaperImageAndText = () => {\n const wallpaperImageAndTextWidgetsArray = document.querySelectorAll(\".wallpaper-image-and-text-widget\");\n if (wallpaperImageAndTextWidgetsArray && wallpaperImageAndTextWidgetsArray.length > 0) {\n wallpaperImageAndTextWidgetsArray.forEach((wallpaperImageAndTextWidget) => {\n const textContainer = wallpaperImageAndTextWidget.querySelector(\".text-container\");\n if (window.innerWidth <= 767) {\n if (textContainer) {\n textContainer.style.backgroundColor = `#${textContainer.getAttribute(\"data-bg-color\")}`;\n }\n else {\n return;\n }\n }\n });\n }\n};\n"]}