{"version":3,"sources":["node_modules/browser-pack/_prelude.js","config.js","node_modules/@babel/runtime/helpers/asyncToGenerator.js","node_modules/@babel/runtime/helpers/defineProperty.js","node_modules/@babel/runtime/helpers/interopRequireDefault.js","node_modules/@babel/runtime/helpers/toPrimitive.js","node_modules/@babel/runtime/helpers/toPropertyKey.js","node_modules/@babel/runtime/helpers/typeof.js","node_modules/@dotsunited/load-css-polyfill/dist/load-css-polyfill.js","node_modules/@kurkle/color/dist/color.cjs","node_modules/body-scroll-lock/lib/bodyScrollLock.min.js","node_modules/chart.js/auto/auto.cjs","node_modules/chart.js/dist/chart.cjs","node_modules/chart.js/dist/chunks/helpers.segment.cjs","node_modules/chart.js/dist/helpers.cjs","node_modules/chart.js/helpers/helpers.cjs","node_modules/chartjs-adapter-moment/dist/chartjs-adapter-moment.js","node_modules/chartjs-plugin-datalabels/dist/chartjs-plugin-datalabels.js","node_modules/colcade/colcade.js","node_modules/desandro-matches-selector/matches-selector.js","node_modules/dotenv/lib/main.js","node_modules/ev-emitter/ev-emitter.js","node_modules/fizzy-ui-utils/utils.js","node_modules/flickity-as-nav-for/as-nav-for.js","node_modules/flickity-fade/flickity-fade.js","node_modules/flickity/js/add-remove-cell.js","node_modules/flickity/js/animate.js","node_modules/flickity/js/cell.js","node_modules/flickity/js/drag.js","node_modules/flickity/js/flickity.js","node_modules/flickity/js/index.js","node_modules/flickity/js/lazyload.js","node_modules/flickity/js/page-dots.js","node_modules/flickity/js/player.js","node_modules/flickity/js/prev-next-button.js","node_modules/flickity/js/slide.js","node_modules/focus-visible/dist/focus-visible.js","node_modules/get-size/get-size.js","node_modules/glightbox/dist/js/glightbox.min.js","node_modules/intersection-observer/intersection-observer.js","node_modules/lazysizes/lazysizes.js","node_modules/moment/moment.js","node_modules/object-fit-images/dist/ofi.common-js.js","node_modules/path-browserify/index.js","node_modules/process/browser.js","node_modules/unidragger/unidragger.js","node_modules/unipointer/unipointer.js","package.json","src/components/atoms/map/Map.js","src/components/atoms/parallax/Parallax.js","src/components/atoms/product-card/ProductCard.js","src/components/atoms/search-bar/SearchBar.js","src/components/atoms/skeleton-loader-component/skeleton-loader-component.js","src/components/atoms/video/Video.js","src/components/index.js","src/components/molecules/accordion/Accordion.js","src/components/molecules/b2b-lite/account/request-returns-details/RequestReturnsDetails.js","src/components/molecules/b2b-lite/admin/chart-new-revived/ChartNewRevived.js","src/components/molecules/b2b-lite/admin/chart-new-revived/LegendConfig.js","src/components/molecules/b2b-lite/admin/widget-orders-over-time/WidgetOrdersOverTime.js","src/components/molecules/b2b-lite/aside-navigation/AsideNavigation.js","src/components/molecules/carousel-products/CarouselProducts.js","src/components/molecules/carousel/Carousel.js","src/components/molecules/cart-summary-new/Cartsummary-new.js","src/components/molecules/cart-summary/Cartsummary.js","src/components/molecules/configurator/Configurator.js","src/components/molecules/cookie-bar/CookieBar.js","src/components/molecules/expander/Expander.js","src/components/molecules/filter-carousel/FilterCarousel.js","src/components/molecules/filters/Filters.js","src/components/molecules/form/CheckoutForm.js","src/components/molecules/form/Form.js","src/components/molecules/gispen-filter/GispenFilter.js","src/components/molecules/gispen-menu/GispenMenu.js","src/components/molecules/gispen-menu/ProfileMenu.js","src/components/molecules/header-carousel/HeaderCarousel.js","src/components/molecules/history/History.js","src/components/molecules/inspiration-grid-vertical/InspirationGrid.js","src/components/molecules/photo-gallery/PhotoGallery.js","src/components/molecules/progress-circle/ProgressCircle.js","src/components/molecules/region-selector/HandleModal.js","src/components/molecules/side-menu/SideMenu.js","src/components/molecules/sub-navigation/SubNavigation.js","src/components/molecules/summary-about/Summaryabout.js","src/components/molecules/summary/Summary.js","src/components/molecules/tabs/Tabs.js","src/components/molecules/user-menu/UserMenu.js","src/mock/developer.utils.js","src/static/js/form/Form.js","src/static/js/form/FormItem.js","src/static/js/form/JumpList.js","src/static/js/main.js","src/static/js/motion/animate.js","src/static/js/toggle/Controller.js","src/static/js/toggle/Toggle.js","src/static/js/toggle/Trigger.js","src/static/js/ui/Collapsible.js","src/static/js/ui/StickyNavigation.js","src/static/js/utils/DOMHelpers.js","src/static/js/utils/Observer.js","src/static/js/utils/ScriptLoader.js","src/static/js/utils/bust.js","src/static/js/utils/cookies.js","src/static/js/utils/debounce.js","src/static/js/utils/eventHelpers.js","src/static/js/utils/initializeComponents.js","src/static/js/utils/scrollTo.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_dotenv","_interopRequireDefault","_package","argv","env","default","load","silent","process","base","src","dist","docs","browsersync","server","baseDir","open","ui","notify","https","includes","port","clean","css","static","staticAll","components","vendor","index","indexDir","layoutDir","templates","statics","component","preview","componentsAll","componentsData","codeBeautifier","indent-size","max-preserve-newlines","fonts","mock","githooks","all","html","templatesDir","templatesData","layout","componentsDir","baseUri","img","spritesheetDir","spritesheet","shape","id","separator","whitespace","mode","symbol","bust","dest","sprite","js","bundles","tests","babelHelpers","browserify","paths","debug","plugin","transform","eslintAutofix","upload","target","options","host","UPLOAD_HOST","user","UPLOAD_USER","password","UPLOAD_PASSWORD","zip","filename","name","asyncGeneratorStep","value","done","Promise","resolve","then","this","arguments","apply","_next","_throw","__esModule","toPropertyKey","Object","defineProperty","enumerable","configurable","writable","_typeof","Symbol","toPrimitive","String","Number","TypeError","iterator","constructor","prototype","global","factory","win","run","links","doc","querySelectorAll","forEach","link","rel","newLink","createElement","finish","href","media","getAttribute","removeEventListener","addEventListener","parentNode","insertBefore","nextSibling","timer","w","window","document","relList","supports","readyState","setInterval","clearInterval","define","amd","loadCSSPolyfill","round","v","lim","l","h","Math","max","min","p2b","n2b","b2n","n2p","map$1","0","2","3","4","5","6","7","8","9","A","B","C","D","E","F","b","d","hex","h1","h2","eq","hexParse","str","ret","len","g","hexString","undefined","HUE_RE","hsl2rgbn","s","k","hsv2rgbn","hwb2rgbn","rgb","let","rgb2hsl","calln","Array","isArray","map","hsl2rgb","hwb2rgb","hsv2rgb","hue","hueParse","p1","p2","m","exec","rotate","deg","hslString","x","Z","Y","X","W","V","U","T","S","R","Q","P","O","N","M","L","K","G","H","I","J","names$1","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","names","nameParse","unpacked","keys","tkeys","j","ok","nk","replace","parseInt","transparent","toLowerCase","RGB_RE","rgbParse","rgbString","to","pow","from","modHSL","ratio","tmp","clone","proto","assign","fromObject","input","Color","type","charAt","_rgb","_valid","valid","obj","mix","color","weight","c1","w1","w2","c2","interpolate","rgb1","rgb2","alpha","clearer","greyscale","val","opaquer","negate","lighten","darken","saturate","desaturate","index_esm","freeze","__proto__","b2p","globalThis","self","some","allowTouchMove","event","touches","preventDefault","setTimeout","body","style","paddingRight","overflow","passive","navigator","platform","test","maxTouchPoints","disableBodyScroll","targetElement","concat","ontouchstart","targetTouches","clientY","ontouchmove","scrollTop","scrollHeight","clientHeight","stopPropagation","console","error","reserveScrollBarGap","innerWidth","documentElement","clientWidth","clearAllBodyScrollLocks","enableBodyScroll","filter","bodyScrollLock","chartjs","Chart","registerables","register","helpers_segment","Animator","_request","_charts","Map","_running","_lastDate","_notify","chart","anims","date","callbacks","listeners","numSteps","duration","fn","initial","currentStep","start","_refresh","requestAnimFrame","_update","Date","now","remaining","running","items","item","draw","_active","_total","tick","pop","_getAnims","charts","get","complete","progress","set","listen","cb","push","add","has","reduce","acc","cur","_duration","stop","cancel","remove","delete","animator","interpolators","boolean","factor","c0","number","Animation","cfg","prop","currentValue","_fn","_easing","effects","easing","linear","_start","floor","delay","_loop","loop","_target","_prop","_from","_to","_promises","active","update","elapsed","remain","wait","promises","res","rej","resolved","method","Animations","config","_chart","_properties","configure","isObject","animationOptions","defaults","animation","animatedProps","getOwnPropertyNames","key","option","properties","_animateOptions","values","newOptions","$shared","$animations","animations","_createAnimations","anim","props","size","scaleClip","scale","allowedOverflow","opts","reverse","end","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","ilen","applyStack","stack","dsIndex","singleMode","datasetIndex","otherValue","found","isNumberFinite","sign","isStacked","meta","stacked","getLastIndexInStack","vScale","positive","getMatchingVisibleMetas","updateStacks","controller","parsed","_cachedMeta","stacks","_stacks","iScale","iAxis","axis","vAxis","indexValue","subStack","stackKey","_top","_bottom","_visualValues","getFirstScaleId","scales","shift","clearStacks","_parsed","isDirectUpdateMode","cloneIfNotShared","cached","shared","DatasetController","datasetElementType","dataElementType","_ctx","ctx","_cachedDataOpts","getMeta","_type","_parsing","_data","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","supportsDecimation","$context","_syncList","initialize","linkScales","_stacked","addElements","fill","isPluginEnabled","warn","updateIndex","dataset","getDataset","chooseId","y","xid","xAxisID","valueOrDefault","yid","yAxisID","rid","rAxisID","indexAxis","iid","iAxisID","vid","vAxisID","xScale","getScaleForId","yScale","rScale","data","datasets","getDatasetMeta","scaleID","_getOtherScale","reset","_destroy","unlistenArrayEvents","_dataCheck","iAxisKey","vAxisKey","adata","isExtensible","listenArrayEvents","buildOrUpdateElements","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","scopes","getOptionScopes","createResolver","getContext","parsing","parse","count","sorted","_sorted","prev","parseArrayData","parseObjectData","parsePrimitiveData","labels","getLabels","singleScale","xAxisKey","yAxisKey","resolveObjectKey","getParsed","getDataElement","updateRangeFromParsed","range","parsedValue","NaN","getMinMax","canStack","otherScale","hidden","POSITIVE_INFINITY","NEGATIVE_INFINITY","otherMin","otherMax","minDefined","maxDefined","getUserBounds","_skip","getAllParsedValues","getMaxOverflow","getLabelAndValue","label","getLabelForValue","_clip","top","right","bottom","left","disabled","clip","elements","area","chartArea","drawActiveElementsOnTop","element","getStyle","resolveDatasetElementOptions","resolveDataElementOptions","parent","context","createContext","dataIndex","raw","_resolveElementOptions","elementType","prefixes","cache","cacheKey","sharing","defined","datasetElementScopeKeys","resolveNamedOptions","_resolveAnimations","transition","datasetAnimationScopeKeys","_cacheable","getSharedOptions","includeOptions","sharedOptions","_animationsDisabled","_getSharedOptions","firstOpts","previouslySharedOptions","updateSharedOptions","updateElement","_setStyle","removeHoverStyle","setHoverStyle","_removeDatasetHoverStyle","_setDatasetHoverStyle","arg1","arg2","numMeta","numData","_insertElements","_removeElements","move","arr","updateElements","removed","splice","_sync","args","_dataChanges","_onDataPush","_onDataPop","_onDataShift","_onDataSplice","newCount","_onDataUnshift","computeMinSampleSize","_cache","$bar","visibleMetas","_arrayUnique","sort","_length","curr","updateMinAndPrev","abs","getPixelForValue","ticks","getPixelForTick","parseValue","entry","parseFloatBar","startValue","endValue","barStart","barEnd","_custom","parseArrayOrPrimitive","isFloatBar","custom","setBorderSkipped","edge","borderSkipped","horizontal","enableBorderRadius","parseEdge","orig","v1","v2","startEnd","BarController","categoryPercentage","barPercentage","grouped","numbers","overrides","_index_","offset","grid","_value_","beginAtZero","super","bars","getBasePixel","isHorizontal","ruler","_getRuler","vpixels","isNullOrUndef","head","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","center","height","width","setInflateAmount","inflateAmount","_getStacks","last","currentParsed","iScaleValue","skipNull","find","isNaN","indexOf","_getStackCount","_getStackIndex","pixels","barThickness","_startPixel","_endPixel","stackCount","baseValue","minBarLength","actualBase","floating","getDataVisibility","startPixel","getPixelForDecimal","endPixel","getValueForPixel","halfGrid","getLineWidthForValue","stackIndex","maxBarThickness","Infinity","next","percent","chunk","thickness","rects","BubbleController","radius","points","point","iPixel","vPixel","skip","DoughnutController","animateRotate","animateScale","cutout","rotation","circumference","spacing","descriptors","_scriptable","_indexable","startsWith","aspectRatio","plugins","legend","generateLabels","pointStyle","text","fillStyle","backgroundColor","strokeStyle","borderColor","fontColor","lineWidth","borderWidth","onClick","legendItem","toggleDataVisibility","innerRadius","outerRadius","offsetX","offsetY","getter","_getRotation","toRadians","_getCircumference","_getRotationExtents","TAU","isDatasetVisible","arcs","getMaxBorderWidth","getMaxOffset","maxSize","toPercentage","chartWeight","_getRingWeight","ratioX","ratioY","startAngle","endAngle","startX","cos","startY","sin","endX","endY","calcMax","angle","_angleBetween","calcMin","maxX","maxY","HALF_PI","minX","PI","minY","maxWidth","maxHeight","maxRadius","toDimension","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","_circumference","calculateCircumference","animationOpts","centerX","centerY","arc","metaData","formatNumber","locale","borderAlign","hoverBorderWidth","hoverOffset","ringWeightOffset","LineController","showLine","spanGaps","line","_dataset","animationsDisabled","_getStartAndCountOfVisiblePoints","_scaleRangesChanged","_datasetIndex","_decimated","segment","animated","maxGapLength","isNumber","directUpdate","pointsCount","prevParsed","nullData","firstPoint","border","lastPoint","updateControlPoints","PolarAreaController","angleLines","display","circular","pointLabels","_parseObjectDataRadialScale","bind","_updateRadius","minSize","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","PieController","RadarController","_fullLoop","pointPosition","getPointPositionForValue","ScatterController","interaction","registry","getElement","controllers","abstract","adapters","_date","DateAdapterBase","override","members","init","formats","format","diff","startOf","endOf","evaluateInteractionItems","position","handler","intersect","getSortedVisibleDatasetMetas","lo","hi","metaset","lookupMethod","_reversePixels","_rlookupByKey","_lookupByKey","el","getRange","getIntersectItems","useFinalPosition","includeInvisible","isPointInArea","_isPointInArea","inRange","getNearestRadialItems","getProps","getAngleFromPoint","getNearestCartesianItems","distanceMetric","useX","useY","pt1","pt2","deltaX","deltaY","sqrt","minDistance","getCenterPoint","distance","getNearestItems","getAxisItems","rangeMethod","intersectsItem","Interaction","modes","getRelativePosition","nearest","STATIC_POSITIONS","filterByPosition","array","pos","filterDynamicPositionByAxis","box","sortByWeight","v0","setLayoutDims","layouts","params","wrap","stackWeight","_stack","placed","vBoxMaxWidth","hBoxMaxHeight","fullSize","availableWidth","availableHeight","buildLayoutBoxes","boxes","layoutBoxes","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","vertical","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","fitBoxes","refitBoxes","refit","changed","marginForPositions","positions","margin","same","other","newWidth","getPadding","outerWidth","newHeight","outerHeight","widthChanged","heightChanged","setBoxDims","placeBoxes","userPadding","padding","addBox","_layers","z","removeBox","layoutItem","minPadding","toPadding","verticalBoxes","horizontalBoxes","visibleVerticalBoxCount","each","beforeLayout","handleMaxPadding","updatePos","change","BasePlatform","acquireContext","canvas","releaseContext","listener","getDevicePixelRatio","getMaximumSize","isAttached","updateConfig","BasicPlatform","EXPANDO_KEY","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","isNullOrEmpty","eventListenerOptions","supportsEventListenerOptions","removeListener","nodeListContains","nodeList","node","contains","createAttachObserver","observer","MutationObserver","trigger","entries","addedNodes","removedNodes","observe","childList","subtree","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","devicePixelRatio","resize","currentDevicePixelRatio","createResizeObserver","container","_getParentNode","throttled","ResizeObserver","contentRect","releaseObserver","disconnect","createProxyAndListen","proxy","native","DomPlatform","renderHeight","renderWidth","boxSizing","displayWidth","readUsedSize","displayHeight","removeAttribute","setAttribute","proxies","$proxies","attach","detach","isConnected","_detectPlatform","_isDomSupported","OffscreenCanvas","Element","defaultRoutes","tooltipPosition","hasValue","final","autoSkip","tickOpts","determinedMaxTicks","tickLength","_tickSize","maxScale","maxChart","_maxLength","ticksLimit","maxTicksLimit","majorIndices","major","enabled","result","numMajorIndices","first","newTicks","skipMajors","ceil","evenMajorSpacing","factors","_factorize","avgMajorSpacing","majorStart","majorEnd","offsetFromEdge","getTicksLimit","ticksLength","sample","numItems","increment","getTickMarkLength","drawTicks","getTitleHeight","fallback","font","toFont","lineHeight","Scale","_margins","paddingTop","paddingBottom","paddingLeft","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","setContext","suggestedMin","suggestedMax","finiteOrDefault","metas","getTicks","xLabels","yLabels","getLabelItems","_computeLabelItems","beforeUpdate","callback","margins","grace","sampleSize","samplingEnabled","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","_addGrace","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","source","afterAutoSkip","beforeFit","fit","afterFit","afterUpdate","reversePixels","_alignToPixels","alignToPixels","_callHooks","notifyPlugins","beforeTickToLabelConversion","generateTickLabels","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","numTicks","minRotation","maxRotation","_isVisible","_getLabelSizes","widest","highest","_limitValue","title","maxLabelDiagonal","toDegrees","asin","tickPadding","labelWidth","titleOpts","gridOpts","titleHeight","angleRadians","labelHeight","mirror","_calculatePadding","_handleMargins","align","isRotated","labelsBelowTicks","offsetLeft","offsetRight","isFullSize","_computeLabelSizes","caches","widths","heights","widestLabelSize","highestLabelSize","jlen","tickFont","fontString","nestedLabel","_resolveTickFontOptions","string","gc","_measureText","gcLen","valueAt","idx","pixel","decimal","_int16Range","_alignPixel","getDecimalForPixel","getBaseValue","optionTicks","rot","autoSkipPadding","_computeGridLineItems","tl","borderOpts","axisWidth","alignBorderValue","positionAxisID","axisHalfWidth","borderValue","lineValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","limit","step","optsAtIndex","optsAtIndexBorder","lineColor","borderDash","dash","borderDashOffset","dashOffset","tickColor","tickBorderDash","tickBorderDashOffset","offsetGridLines","validIndex","crossAlign","tickAndPadding","hTickAndPadding","textAlign","lineCount","textOffset","textBaseline","_getXAxisLabelAlignment","_getYAxisLabelAlignment","halfCount","labelOffset","strokeColor","textStrokeColor","strokeWidth","textStrokeWidth","tickTextAlign","showLabelBackdrop","backdrop","labelPadding","backdropPadding","backdropColor","translation","_computeLabelArea","drawBackground","save","fillRect","restore","findIndex","drawGrid","drawLine","setLineDash","lineDashOffset","beginPath","moveTo","lineTo","stroke","drawOnChartArea","drawBorder","lastLineWidth","drawLabels","clipArea","renderTextOptions","renderText","unclipArea","drawTitle","titleX","titleY","_alignStartEnd","_toLeftRightCenter","tz","gz","bz","axisID","_maxDigits","fontSize","TypedRegistry","scope","create","isForType","isPrototypeOf","getPrototypeOf","parentScope","routes","itemDefaults","merge","propertyParts","property","split","sourceName","sourceScope","join","parts","targetName","targetScope","route","describe","unregister","Registry","_typedRegistries","_each","addControllers","addPlugins","addScales","getController","_get","getPlugin","getScale","removeControllers","removeElements","removePlugins","removeScales","typedRegistry","reg","_getRegistryForType","arg","_exec","itemReg","camelMethod","_capitalize","PluginService","_init","hook","_createDescriptors","_descriptors","descriptor","cancelable","invalidate","_oldCache","_notifyStateChanges","localIds","local","createDescriptors","pluginScopeKeys","scriptable","indexable","allKeys","previousDescriptors","getIndexAxis","datasetDefaults","idMatchesAxis","determineAxis","scaleOptions","getAxisFromDataset","mergeScaleConfig","chartDefaults","configScales","chartIndexAxis","defaultScaleOptions","scaleConf","_proxy","boundDs","defaultId","mergeIf","defaultID","initOptions","initData","keyCache","keysCached","Set","cachedKeys","generate","addIfFound","Config","_config","_scopeCache","_resolverCache","clearCache","clear","datasetType","additionalOptionScopes","_cachedScopes","mainScope","resetCache","keyLists","chartOptionScopes","resolver","subPrefixes","getResolver","isScriptable","isIndexable","isFunction","hasFunction","subResolver","_attachContext","descriptorDefaults","resolverCache","_createResolver","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","onComplete","onAnimationProgress","onProgress","getCanvas","getElementById","instances","getChart","getSizeForArea","field","version","invalidatePlugins","userConfig","initialCanvas","existingChart","uid","_options","_aspectRatio","_metasets","_lastEvent","_listeners","_responsiveListeners","_sortedMetasets","_plugins","_hiddenIndices","attached","_doResize","debounce","resizeDelay","_initialize","maintainAspectRatio","responsive","retinaScale","bindEvents","clearCanvas","_resizeBeforeDraw","_resize","newSize","newRatio","onResize","render","ensureScalesHaveIDs","scalesOptions","axisOptions","buildOrUpdateScales","scaleOpts","updated","isRadial","dposition","dtype","scaleType","scaleClass","hasUpdated","_updateMetasets","_destroyDatasetMeta","slice","_removeUnreferencedMetasets","buildOrUpdateControllers","newControllers","order","visible","ControllerClass","_resetElements","animsDisabled","_updateScales","_checkEventBindings","_updateHiddenIndices","_minPadding","autoPadding","_updateLayout","_updateDatasets","_eventHandler","_updateHoverStyles","existingEvents","newEvents","events","setsEqual","unbindEvents","_getUniformDataChanges","intKey","datasetCount","makeSet","changeSet","noArea","_idx","_updateDataset","layers","_drawDatasets","_drawDataset","useClip","getElementsAtEventForMode","setDatasetVisibility","_updateVisibility","hide","show","_stop","destroy","toBase64Image","toDataURL","bindUserEvents","bindResponsiveEvents","_add","_remove","detached","updateHoverStyle","prefix","getActiveElements","setActiveElements","activeElements","lastActive","_elementsEqual","pluginId","replay","hoverOptions","hover","deactivated","activated","inChartArea","eventFilter","_handleEvent","_getActiveElements","isClick","_isClickEvent","lastEvent","onHover","parseBorderRadius$1","angleDelta","borderRadius","_readValueToProps","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","outerStart","outerEnd","innerStart","innerEnd","rThetaToXY","theta","pathArc","pixelMargin","innerR","spacingOffset","beta","avNogSpacingRadius","angleOffset","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","outerMidAdjustedAngle","pCenter","p4","innerMidAdjustedAngle","p8","outerStartX","outerStartY","outerEndX","outerEndY","closePath","angleMargin","fullCircles","borderJoinStyle","inner","lineJoin","ArcElement","chartX","chartY","rAdjust","nonZeroBetween","betweenAngles","withinRadius","_isBetween","halfAngle","halfRadius","fix","translate","radiusOffset","drawArc","setStyle","lineCap","borderCapStyle","previous","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","pathSegment","lineMethod","stepped","_steppedLineTo","tension","cubicInterpolationMode","_bezierCurveTo","fastPathSegment","avgX","countX","prevX","lastY","truncX","pointIndex","drawX","_getSegmentMethod","usePath2D","Path2D","strokePathWithCache","path","_path","strokePathDirect","segments","segmentMethod","LineElement","capBezierPoints","_points","_segments","_pointsUpdated","_updateBezierControlPoints","_computeSegments","_boundSegments","_interpolate","_steppedInterpolation","_bezierInterpolation","_pointInLine","interpolated","inRange$1","hitRadius","PointElement","hoverRadius","mouseX","mouseY","inXRange","inYRange","drawPoint","getBarBounds","bar","half","skipOrLimit","boundingRects","maxW","maxH","bounds","toTRBL","toTRBLCorners","maxR","topLeft","enableBorder","topRight","bottomLeft","bottomRight","outer","skipX","skipY","addNormalRectPath","rect","inflateRect","amount","refRect","BarElement","addRectPath","addRoundedRectPath","BORDER_COLORS","BACKGROUND_COLORS","getBorderColor","getBackgroundColor","getColorizer","containsColorsDefinitions","plugin_colors","forceOverride","_args","colorizer","chartOptions","containsColorDefenition","cleanDecimatedDataset","cleanDecimatedData","plugin_decimation","algorithm","beforeElementsUpdate","xAxis","pointCount","threshold","decimated","samples","bucketWidth","sampledIndex","endIndex","maxAreaPoint","maxArea","nextA","avgY","avgRangeStart","avgRangeEnd","avgRangeLength","rangeOffs","rangeTo","pointAx","pointAy","minIndex","maxIndex","startIndex","xMin","dx","lastIndex","intermediateIndex1","intermediateIndex2","_getBounds","_normalizeAngle","_findSegmentEnd","_getEdge","_createBoundaryLine","boundary","linePoints","_shouldApplyFill","_decodeFill","firstCh","fillOption","parseFloat","_buildStackLine","sourcePoints","linesBelow","below","unshift","postponed","sourcePoint","addPointsBelow","pointValue","firstValue","lastValue","simpleArc","_getTarget","computeCircularBoundary","_drawfill","lineOpts","above","clipVertical","clipY","lineLoop","tgt","tpoints","fillSource","subBounds","_boundSegment","notShape","interpolatedLineTo","targetLoop","interpolatedPoint","afterDatasetsUpdate","sources","$filler","propagate","visited","beforeDraw","drawTime","beforeDatasetsDraw","beforeDatasetDraw","getBoxSize","labelOpts","boxHeight","boxWidth","usePointStyle","pointStyleWidth","itemHeight","Legend","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","labelFont","_computeTitleHeight","_fitRows","_fitCols","hitboxes","totalHeight","row","itemWidth","measureText","_itemHeight","heightLimit","totalWidth","currentColWidth","currentColHeight","col","legendItemText","fontLineHeight","calculateLegendItemHeight","adjustHitBoxes","rtl","rtlHelper","getRtlAdapter","hitbox","leftForLtr","_draw","defaultColor","halfFontSize","cursor","overrideTextDirection","textDirection","textWidth","setWidth","yBoxTop","xBoxLeft","realX","lineDash","drawOptions","SQRT2","xPlus","drawPointLegend","_textX","strikethrough","restoreTextDirection","titleFont","titlePadding","topPaddingPlusHalfFontSize","_getLegendItemAt","hitBox","lh","handleEvent","hoveredItem","onLeave","sameItem","plugin_legend","_element","afterEvent","ci","useBorderRadius","Title","_padding","textSize","_drawArgs","fontOpts","plugin_title","titleBlock","WeakMap","plugin_subtitle","positioners","average","xSet","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","getTooltipSize","tooltip","footer","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","before","lines","after","beforeBody","afterBody","titleSpacing","titleMarginBottom","bodyLineHeight","displayColors","bodySpacing","footerMarginTop","footerSpacing","maxLineWidth","widthPadding","determineXAlign","yAlign","chartWidth","xAlign","caret","caretSize","caretPadding","determineAlignment","getBackgroundPoint","alignment","cornerRadius","paddingAndSize","getAlignedX","getBeforeAfterBodyLines","overrideCallbacks","defaultCallbacks","beforeTitle","noop","tooltipItems","labelCount","afterTitle","beforeLabel","tooltipItem","formattedValue","labelColor","labelTextColor","bodyColor","labelPointStyle","afterLabel","beforeFooter","afterFooter","invokeCallbackWithFallback","Tooltip","opacity","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","getTitle","getBeforeBody","getBody","bodyItems","scoped","getAfterBody","getFooter","_createItems","itemSort","backgroundPoint","positionAndSize","external","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","pt","titleAlign","titleColor","fillText","_drawColorBox","colorX","rtlColorX","yOffSet","colorY","multiKeyBackground","outerX","innerX","strokeRect","drawBody","bodyAlign","xLinePadding","fillLineOfText","bodyAlignForCalculation","textColor","drawFooter","footerAlign","footerColor","tooltipSize","quadraticCurveTo","_updateAnimationTarget","animX","animY","_willRender","hasTooltipContent","globalAlpha","positionChanged","_positionChanged","_ignoreReplayEvents","plugin_tooltip","afterInit","afterDraw","_fallback","Colors","Decimation","Filler","SubTitle","findOrAddLabel","addedLabels","lastIndexOf","_getLabelForValue","CategoryScale","_startValue","_valueRange","_addedLabels","added","isFinite","relativeLabelSize","minSpacing","rad","LinearScaleBase","_endValue","handleTickRangeOptions","maxSign","setMin","setMax","minSign","getTickLimit","stepSize","maxTicks","computeTickLimit","generationOptions","dataRange","precision","maxDigits","includeBounds","unit","maxSpaces","rmin","rmax","countDefined","niceNum","niceMin","niceMax","numSpaces","almostWhole","almostEquals","decimalPlaces","_decimalPlaces","tickValue","_setMinAndMaxByKey","LinearScale","Ticks","formatters","numeric","log10Floor","log10","changeExponent","isMajor","tickVal","steps","rangeExp","rangeStep","generateTicks","minExp","exp","significand","lastTick","LogarithmicScale","logarithmic","_zero","getTickBackdropHeight","determineLimits","fitWithPointLabels","limits","valueCount","_pointLabels","pointLabelOpts","additionalAngle","centerPointLabels","getPointLabelContext","getPointPosition","drawingArea","plFont","_longestText","hLimits","vLimits","updateLimits","setCenterPoint","_pointLabelItems","itemOpts","extra","outerDistance","pointLabelPosition","apexesInArea","drawPointLabels","backdropTop","backdropLeft","backdropWidth","backdropHeight","pathRadiusLine","RadialLinearScale","animate","angleLines.color","pointLabels.color","ticks.color","leftMovement","rightMovement","topMovement","bottomMovement","angleMultiplier","scalingFactor","getValueForDistanceFromCenter","scaledDistance","pointLabel","distanceFromCenter","getBasePosition","getPointLabelPosition","gridLineOpts","INTERVALS","millisecond","common","second","minute","hour","day","week","month","quarter","year","UNITS","sorter","adapter","_adapter","parser","isoWeekday","_parseOpts","determineUnitForAutoTicks","minUnit","capacity","interval","MAX_SAFE_INTEGER","addTick","time","timestamps","_lookup","ticksFromTimestamps","majorUnit","setMajorTicks","TimeScale","displayFormats","_unit","_majorUnit","_offsets","_normalized","normalized","_applyBounds","_getLabelBounds","getLabelTimestamps","timeOpts","_generate","_filterBetween","_getLabelCapacity","initOffsets","offsetAfterAutoskip","getDecimalForValue","minor","weekday","hasWeekday","getDataTimestamps","tooltipFormat","datetime","fmt","_tickFormatFunction","formatter","minorFormat","majorFormat","offsets","_getLabelSize","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","normalize","table","prevSource","nextSource","prevTarget","nextTarget","span","TimeSeriesScale","_table","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","_adapters","color$1","toString","defaultValue","dimension","endsWith","klen","isValidKey","_merger","tval","sval","current","merger","_mergerIf","hasOwnProperty","keyResolvers","","_splitKey","part","toUpperCase","PITAU","INFINITY","RAD_PER_DEG","QUARTER_PI","TWO_THIRDS_PI","epsilon","_angleDiff","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","cmp","mid","ti","arrayEvents","requestAnimationFrame","atEdge","elasticIn","elasticOut","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","isPatternOrGradient","getHoverColor","colors","intlCache","num","JSON","stringify","Intl","NumberFormat","notation","delta","maxTick","logDelta","numDecimal","minimumFractionDigits","maximumFractionDigits","getScope$1","root","Defaults","_appliers","family","hoverBackgroundColor","hoverBorderColor","hoverColor","scopeObject","targetScopeObject","privateName","defineProperties","appliers","toFontString","longest","xOffset","yOffset","xOffsetW","yOffsetW","ellipse","SQRT1_2","drawImage","LINE_HEIGHT","FONT_STYLE","toLineHeight","matches","match","numberOrZero","objProps","read","parentContext","rootScopes","getTarget","finalRootScopes","_resolve","toStringTag","_scopes","_rootScopes","Proxy","deleteProperty","_keys","_cached","_resolveWithPrefixes","readKey","needsSubResolver","createSubResolver","getOwnPropertyDescriptor","Reflect","getKeysFromAllScopes","ownKeys","storage","_storage","subProxy","_context","_subProxy","receiver","_resolveWithContext","getValue","_allKeys","resolveFallback","getScope","parentScopes","allScopes","addScopesFromKey","subGetTarget","parentFallback","EPSILON","getPoint","getValueAxis","splineCurve","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","splineCurveMonotone","slopeDelta","valueAxis","pointsLen","deltaK","mK","pointBefore","pointCurrent","pointAfter","monotoneAdjust","betaK","squaredMagnitude","alphaK","tauK","monotoneCompute","capControlPoint","domNode","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","ownerDocument","defaultView","getPropertyValue","getPositionedStyle","styles","suffix","useOffsetPos","shadowRoot","round1","passiveSupported","propertyFn","between","compare","normalizeSegment","startBound","endBound","inside","subStart","prevValue","shouldStart","shouldStop","splitByStyles","segmentOptions","doSplitByStyles","chartContext","baseStyle","readStyle","prevStyle","addStyle","st","dir","replacer","p0","p0DataIndex","p1DataIndex","minmax","keepZero","halfWidth","flip","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","cp1","cp2","sub","_deprecated","a0","a1","arrayOfThings","garbageCollect","thing","nestedThing","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","midpoint","controlPoints","inArea","inAreaPrev","inAreaNext","rounded","thisArg","resetTransform","clearRect","timeout","clearTimeout","loopable","pixelSize","fontStyle","fontFamily","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","atan2","bbWidth","bbHeight","borders","containerSize","containerStyle","containerBorder","containerPadding","getBoundingClientRect","paddings","borderBox","clientX","rectX","_itemWidth","_chartjs","object","roundedRange","niceRange","fraction","direction","original","getPropertyPriority","setProperty","prevTextDirection","oldColor","strokeText","underline","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxDescent","yDecoration","actualBoundingBoxAscent","decorationWidth","inputs","info","cacheable","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","argsToUse","ticking","radians","degrees","stub","easingEffects","moment","chart_js","_interopDefaultLegacy","moment__default","FORMATS","_id","isValid","valueOf","trunc","helpers","screen","deviceXDPI","logicalXDPI","utils","updates","orient","origin","x0","y0","dy","ln","R_INSIDE","R_LEFT","R_RIGHT","R_BOTTOM","R_TOP","region","compute$1","anchor","clamp","r0","r1","vx","vy","rx","ry","sx","sy","rasterize","drawFrame","model","bgColor","drawText","shadow","stroked","filled","shadowBlur","textShadowBlur","shadowColor","textShadowColor","Label","_index","_model","_rects","_el","_modelize","positioner","tx","ty","th","tw","frame","geometry","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","rotated","cx","cy","projected","dp","toAxis","HitBox","_rotation","_rect","coordinates","vs","intersects","pr0","pr1","axes","prepare","$layout","_box","_hidable","_visible","_set","sa","sb","state","dirty","compute","collide","s0","s1","collider","h0","lookup","dispatchEvent","groups","$groups","_key","_dirty","handleMoveEvents","expando","enter","leave","_labels","_hovered","beforeInit","_actives","_listened","_datasets","afterDatasetUpdate","configs","datalabels","afterDatasetsDraw","beforeEvent","handlers","click","actives","ChartDataLabels","Colcade","instance","getQueryElement","colcadeGUID","GUID","htmlInit","elem","attrParts","pair","trim","makeArray","ary","querySelect","selector","querySelector","errorCheck","guid","reload","_windowResizeHandler","_loadHandler","onLoad","errors","columns","updateColumns","updateItems","getActiveColumns","column","activeColumns","_layout","columnHeights","layoutItems","minHeight","appendChild","offsetHeight","append","elems","getQueryItems","prepend","fragment","createDocumentFragment","measureColumnHeight","boundingRect","lastChildRect","lastElementChild","resizeTimeout","onDebouncedResize","isSameLength","isSameColumns","onReady","makeJQueryPlugin","$","jQuery","colcade","arg0","$elems","methodName","returnValue","matchesMethod","ElemProto","matchesSelector","fs","keyValueArr","dotenvPath","cwd","encoding","readFileSync","EvEmitter","on","eventName","_events","once","onceEvents","_onceEvents","off","emitEvent","onceListeners","allOff","extend","modulo","div","arraySlice","removeFrom","getParent","filterFindElements","ffElems","HTMLElement","childElems","debounceMethod","_class","timeoutName","_this","docReady","toDashed","$1","$2","WidgetClass","namespace","dashedNamespace","dataAttr","dataAttrElems","jsDashElems","dataOptionsAttr","attr","className","fizzyUIUtils","Flickity","createMethods","_createAsNavFor","activateAsNavFor","deactivateAsNavFor","destroyAsNavFor","asNavForOption","asNavFor","setNavCompanion","companion","navCompanion","onNavCompanionSelect","navCompanionSelect","onNavStaticClick","isInstant","firstIndex","selectedCell","selectedCells","cells","selectIndex","cellAlign","selectCell","removeNavSelectedElements","navSelectedElements","cell","changeNavSelectedClass","navElem","classList","pointer","cellElement","cellIndex","Slide","slideUpdateTarget","updateTarget","slideTargetX","firstCellX","fade","targetX","renderPosition","setOpacity","updateSlides","_createFade","fadeIndex","selectedIndex","prevSelectedIndex","onSelectFade","onDragEndFade","onSettleFade","onActivateFade","onDeactivateFade","positionSlider","slides","slide","didDragEnd","selectedSlide","positionSliderAtSelected","fadeSlides","dispatchScrollEvent","_getWrapShiftCells","setTranslateX","indexes","fadeSlideB","fadeHideIndex","getFadeIndexes","fadeSlideA","wrapDifference","isDragging","wrapAround","getFadeDragWrapIndexes","getFadeDragLimitIndexes","distances","getSlideDistance","absDistances","closestIndex","dragIndex","diffMinus","diffPlus","slideableWidth","shiftWrapCells","insert","isAppend","insertCellElement","endCells","_makeCells","slider","_sizeCells","cellChange","minCellIndex","getCells","cellSizeChange","getCell","getSize","changedCellIndex","isPositioningSlider","prevSelectedElem","selectedElement","_positionCells","setGallerySize","getCellSlideIndex","select","startAnimation","isAnimating","restingFrames","applyDragForce","applySelectedAttraction","previousX","integratePhysics","settle","is3d","cursorPosition","rightToLeft","translateX","getPositionValue","firstSlide","positionX","slidesWidth","velocity","percentPosition","isPointerDown","isFreeScrolling","beforeGap","afterGap","_shiftCells","beforeShiftCells","afterShiftCells","gap","wrapShift","_unshiftCells","getFrictionFactor","applyForce","force","getRestingPosition","dragForce","isDraggable","dragX","selectedAttraction","animatePrototype","Cell","originSide","unselect","side","setPosition","setDefaultTarget","marginProperty","sideOffset","adjustedX","removeChild","Unidragger","draggable","dragThreshold","focusNodes","_touchActionValue","_createDrag","onActivateDrag","_uiChangeDrag","onDeactivateDrag","updateDraggable","handles","viewport","bindHandles","unbindHandles","bindDrag","unbindDrag","pointerDown","okayPointerDown","_pointerDownPreventDefault","pointerDownFocus","activeElement","pointerDownBlur","pointerDownScroll","getScrollPosition","_pointerDownDefault","pointerDownPointer","pageX","pageY","_bindPostStartEvents","INPUT","TEXTAREA","SELECT","pageXOffset","pageYOffset","nodeName","focus","isTouchStart","isFocusNode","pointerType","hasDragStarted","moveVector","pointerUp","isTouchScrolling","_dragPointerUp","pointerDone","dragStart","dragStartPosition","pointerMove","_dragPointerMove","_dragMove","dragMove","previousDragX","originBound","getLastSlide","dragMoveTime","dragEnd","restingX","freeScroll","dragEndRestingSelect","dragEndBoostSelect","isDragSelect","positiveResting","_getClosestResting","negativeResting","condition","contain","minDist","isWrapAround","slideIndex","staticClick","clickedCell","getParentCell","cellElem","onscroll","scroll","scrollMoveX","scrollMoveY","_pointerDone","moveElements","toElem","queryElement","flickityGUID","$element","_create","accessibility","freeScrollFriction","friction","namespaceJQueryEvents","cellAlignShorthands","_createSlider","watchCSS","activate","isActive","_filterFindCellElements","children","reloadCells","tabIndex","selectInitialIndex","isInitActivated","cellSelector","positionCells","getLastCell","maxCellHeight","startCell","cellX","_containSlides","nextMargin","canCellFit","_getCanCellFit","slideWidth","firstMargin","addCell","updateSelectedSlide","groupCells","percentMatch","reposition","setCellAlign","shorthand","adaptiveHeight","gapX","_getGapCells","beginMargin","endMargin","contentWidth","isContentSmaller","beginBound","isRightToLeft","emitArgs","$event","jQEvent","Event","isWrap","_wrapSelect","prevIndex","wrapIndex","backWrapDelta","forewardWrapDelta","unselectSelectedSlide","selectedElements","getCellElements","initialIndex","queryCell","getAdjacentCellElements","adjCount","cellElems","uiChange","childUIPointerDown","onresize","content","deactivate","onkeydown","isNotFocused","keyboardHandlers","keyCode","37","leftMethod","39","rightMethod","prevScrollY","preventScroll","scrollTo","removeData","bridget","setJQuery","jq","_Flickity","LazyLoader","flickity","_createLazyload","lazyLoad","lazyImages","lazyCellImages","lazyloadAttr","srcAttr","srcsetAttr","imgs","srcset","onload","onerror","Unipointer","PageDots","holder","dots","handleClick","setDots","bindStartEvent","unbindStartEvent","addDots","removeDots","newDots","dot","updateSelected","selectedDot","onTap","pageDots","_createPageDots","activatePageDots","updateSelectedPageDots","updatePageDots","deactivatePageDots","Player","onVisibilityChange","visibilityChange","onVisibilityPlay","visibilityPlay","play","autoPlay","pause","unpause","pauseAutoPlayOnHover","_createPlayer","player","activatePlayer","stopPlayer","deactivatePlayer","playPlayer","pausePlayer","unpausePlayer","onmouseenter","onmouseleave","svgURI","PrevNextButton","isEnabled","isPrevious","leftDirection","isLeft","svg","disable","createSVG","createElementNS","pathMovements","arrowShape","onclick","enable","boundIndex","prevNextButtons","_createPrevNextButtons","prevButton","nextButton","activatePrevNextButtons","deactivatePrevNextButtons","isOriginLeft","lastCell","lastMargin","applyFocusVisiblePolyfill","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesAllowlist","search","url","tel","email","datetime-local","isValidFocusTarget","addFocusVisibleClass","onPointerDown","addInitialPointerMoveListeners","onInitialPointerMove","metaKey","altKey","ctrlKey","visibilityState","tagName","readOnly","isContentEditable","hasAttribute","nodeType","Node","DOCUMENT_FRAGMENT_NODE","DOCUMENT_NODE","CustomEvent","createEvent","initCustomEvent","getStyleSize","logError","message","measurements","measurementsLength","isBoxSizeOuter","isSetup","borderStyle","innerHeight","isBorderBox","offsetWidth","measurement","paddingWidth","paddingHeight","marginWidth","marginLeft","marginRight","marginHeight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderHeight","borderTopWidth","borderBottomWidth","isBorderBoxSizeOuter","styleWidth","styleHeight","evt","onElement","withCallback","avoidDuplicate","useCapture","parentElement","msMatchesSelector","OAnimation","MozAnimation","WebkitAnimation","webkitTransform","MozTransform","msTransform","OTransform","innerHTML","firstChild","getElementsByTagName","userAgent","q","onclose","setZoomEvents","zoomedIn","dragging","currentX","currentY","initialX","initialY","drag","zoomOut","zoomIn","widowWidth","naturalWidth","naturalHeight","setTranslate","dragEl","toleranceX","toleranceY","lastDirection","toleranceReached","dragContainer","doSlideChange","preventOutsideClick","prevSlide","nextSlide","doSlideClose","close","shouldChange","settings","dragAutoSnap","shouldClose","lastChild","sizes","videoProvider","description","alt","descPosition","effect","zoomable","sourceType","setSize","sanitizeValue","RegExp","substring","DOMException","slideConfig","checkSize","videosWidth","_hasCustomWidth","_hasCustomHeight","beforeSlideLoad","afterSlideLoad","getSlidePlayerInstance","moreLength","smallDescription","slideShortDesc","moreText","descriptionEvents","cloneNode","dragToleranceX","dragToleranceY","Image","allow","appendTo","_","getAllPlayers","plyr","Plyr","detail","ready","innerText","substr","slideHTML","slideExtraAttributes","parseConfig","preV","pinchStartLen","zoom","isDoubleTap","touchStart","multipointStart","multipointEnd","pinch","swipe","tap","doubleTap","longTap","singleTap","pressMove","twoFingerPressMove","touchMove","touchEnd","touchCancel","translateContainer","_cancelAllHandler","cancelAll","tapTimeout","singleTapTimeout","longTapTimeout","swipeTimeout","preTapPosition","log","dispatch","_cancelLongTap","_cancelSingleTap","_preventTap","acos","sx2","sy2","changedTouches","_swipeDirection","del","OTransition","MozTransition","WebkitTransition","createTouch","msMaxTouchPoints","ee","te","skin","theme","closeButton","startAt","autoplayVideos","autofocusVideos","beforeSlideChange","afterSlideChange","slideInserted","slideRemoved","onOpen","onClose","preload","oneSlidePerOpen","touchNavigation","touchFollowAxis","keyboardNavigation","closeOnOutsideClick","fullscreen","iosNative","youtube","noCookie","showinfo","iv_load_policy","vimeo","byline","portrait","openEffect","closeEffect","slideEffect","cssEfects","in","out","slideBack","none","lightboxHTML","ie","customOptions","effectsClasses","getAnimationClasses","videoPlayers","apiEvents","fullElementsList","getSelector","baseEvents","getElements","activeSlide","prevActiveSlideIndex","prevActiveSlide","getGalleryElements","getElementIndex","build","overlay","showSlide","lightboxOpen","scaleX","scaleY","touch","keyboard","toLocaleLowerCase","loader","slidesContainer","slideAnimateOut","slideAnimateIn","slideNode","setContent","slideDescription","slideDescriptionContained","preloadSlide","updateNavigationClasses","goToSlide","getConfig","getActiveSlideIndex","slidePlayerPlay","slidePlayerPause","playing","muted","gallery","built","childNodes","modal","bodyHiddenChildElms","outClose","loopAtEnd","closing","clearAllEvents","GLightbox","getFrameElement","frameElement","IntersectionObserverEntry","rootBounds","ensureDOMRect","boundingClientRect","intersectionRect","getEmptyRect","isIntersecting","targetRect","targetArea","intersectionArea","intersectionRatio","toFixed","IntersectionObserver","opt_options","_checkForIntersections","THROTTLE_TIMEOUT","_callback","_observationTargets","_queuedEntries","_rootMarginValues","_parseRootMargin","rootMargin","thresholds","_initThresholds","_monitoringDocuments","_monitoringUnsubscribes","addEvent","opt_useCapture","attachEvent","removeEvent","detachEvent","err","convertFromParentRect","parentBoundingRect","parentIntersectionRect","containsDeep","child","getParentNode","assignedSlot","isDoc","crossOriginUpdater","crossOriginRect","POLL_INTERVAL","USE_MUTATION_OBSERVER","_setupCrossOriginUpdater","_resetCrossOriginUpdater","isTargetAlreadyObserved","_registerInstance","_monitorIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","_unmonitorAllIntersections","takeRecords","records","opt_threshold","opt_rootMargin","monitoringInterval","domObserver","attributes","characterData","rootDoc","unsubscribe","itemDoc","unsubscribes","rootIsInDom","rootRect","_rootIsInDom","_getRootRect","rootContainsTarget","_rootContainsTarget","oldEntry","_computeTargetAndRootIntersection","newEntry","performance","_hasCrossedThreshold","atRoot","frameRect","frameIntersect","parentRect","parentComputedStyle","rect1","rect2","_expandRectByRootMargin","newRect","oldRatio","lazysizes","lazySizesCfg","docElem","supportPicture","_addEventListener","_getAttribute","requestIdleCallback","regPicture","loadEvents","regClassCache","hasClass","addClass","removeClass","addRemoveLoadEvents","triggerEvent","updatePolyfill","getCSS","getWidth","rAF","waiting","firstFns","secondFns","fns","rAFIt","preloadElems","isCompleted","resetPreloadingTimer","loadMode","started","eLvW","elvH","eLtop","eLleft","eLright","eLbottom","isBodyHidden","lastTime","gDelay","rICTimeout","idleCallback","regImg","regIframe","supportScroll","currentExpand","isLoading","lowRuns","isVisible","throttledCheckElements","rafedSwitchLoadingClass","rafSwitchLoadingClass","lazyUnveil","unveilElement","afterScroll","autoSizer","autosizesElems","sizeElement","debouncedUpdateElementsSizes","lazySizesDefaults","lazyClass","loadedClass","loadingClass","preloadClass","errorClass","autosizesClass","fastLoadedClass","iframeLoadMode","sizesAttr","customMedia","expFactor","hFac","loadHidden","ricTimeout","throttleDelay","lazySizesConfig","lazysizesConfig","getElementsByClassName","HTMLPictureElement","ele","cls","dom","action","noBubbles","noCancelable","initEvent","full","polyfill","picturefill","pf","reevaluate","_lazysizesWidth","rafBatch","_lsFlush","simple","that","func","later","timestamp","checkElements","switchLoadingClass","isAuto","isImg","isPicture","firesLoad","defaultPrevented","resetPreloading","handleSources","contentWindow","location","_lazyRace","isLoaded","_lazyCache","loading","loadingElements","persisted","checkElems","isPriority","unveil","updateElem","_aLSL","altLoadmodeScrollListner","getSizeElement","uP","aC","rC","hC","fire","gW","noSupport","runFns","queue","eLlen","autoLoadElem","loadedSomething","elemExpand","elemNegativeExpand","elemExpandVal","beforeExpandVal","defaultExpand","preloadExpand","lazyloadElems","prematureUnveil","expand","_defEx","outerRect","offsetParent","preloadAfterLoad","sourceSrcset","lazySizes","hookCallback","hooks","hasOwnProp","isObjectEmpty","isUndefined","isDate","arrLen","createUTC","strict","createLocalOrUTC","utc","getParsingFlags","_pf","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","flags","parsedParts","isNowValid","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","_isValid","createInvalid","fun","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","Function","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","targetLength","forceSign","absNumber","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","localeData","formatMoment","expandFormat","mom","output","invalidDate","replaceLongDateFormatTokens","longDateFormat","aliases","dates","days","weekdays","isoweekdays","isoweekday","DDD","dayofyears","dayofyear","hours","ms","milliseconds","minutes","months","quarters","seconds","gg","weekyears","weekyear","GG","isoweekyears","isoweekyear","weeks","isoweeks","isoweek","years","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","dayOfYear","weekYear","isoWeekYear","isoWeek","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","match1to2NoLeadingZero","match1to2HasZero","addRegexToken","regex","strictRegex","regexes","isStrict","getParseRegexForToken","regexEscape","matched","p3","absFloor","toInt","argumentForCoercion","coercedNumber","tokens","addParseToken","tokenLen","addWeekParseToken","_w","isLeapYear","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","parseTwoDigitYear","getSetYear","makeGetSet","keepTime","set$1","isUTC","getUTCMilliseconds","getMilliseconds","getUTCSeconds","getSeconds","getUTCMinutes","getMinutes","getUTCHours","getHours","getUTCDate","getDate","getUTCDay","getDay","getUTCMonth","getMonth","getUTCFullYear","getFullYear","setUTCMilliseconds","setMilliseconds","setUTCSeconds","setSeconds","setUTCMinutes","setMinutes","setUTCHours","setHours","setUTCDate","setDate","setUTCFullYear","setFullYear","daysInMonth","modMonth","monthsShort","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","setMonth","setUTCMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortP","longP","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createDate","createUTCDate","UTC","firstWeekOffset","dow","doy","fwd","dayOfYearFromWeeks","resYear","resDayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","weekdaysMin","weekdaysShort","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","lowercase","matchMeridiem","_meridiemParse","kInput","_isPm","isPM","_meridiem","pos1","pos2","getSetHour","globalLocale","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","ww","MM","yy","meridiemParse","locales","localeFamilies","normalizeLocale","chooseLocale","loadLocale","arr1","arr2","minl","oldLocale","_abbr","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","checkOverflow","_a","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","configFromRFC2822","obsOffset","militaryOffset","parsedArray","weekdayStr","parsedInput","numOffset","hm","configFromArray","currentDate","weekdayOverflow","curWeek","nowValue","_useUTC","createLocal","_week","temp","_dayOfYear","yearToUse","_nextDay","expectedWeekday","ISO_8601","RFC_2822","stringLength","totalParsedInputLength","skipped","meridiemHour","isPm","erasConvertYear","prepareConfig","dayOrDate","preparse","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","createFromInputFallback","prototypeMin","prototypeMax","pickBy","moments","ordering","Duration","unitHasDecimal","orderLen","_milliseconds","_days","_months","_bubble","isDuration","absRound","utcOffset","offsetFromString","chunkOffset","matcher","cloneWithOffset","setTime","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","parseIso","diffRes","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","period","addSubtract","isAdding","invalid","subtract","isString","isMomentInput","arrayTest","dataTypeTest","objectTest","propertyTest","propertyLen","monthDiff","wholeMonthDiff","newLocaleData","defaultFormat","defaultFormatUtc","lang","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","erasName","erasAbbr","erasNarrow","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetSecond","parseMs","getSetMillisecond","preParsePostFormat","sod","calendarFormat","asFloat","zoneDelta","startOfDate","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","priority","prioritizedLen","toArray","toObject","toDate","toISOString","keepOffset","inspect","zone","isLocal","for","toJSON","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","proto$1","get$1","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","_eras","isFormat","_monthsShort","monthName","_monthsParseExact","ii","llc","_monthsParse","_longMonthsParse","_shortMonthsParse","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","weekdayName","_weekdaysParseExact","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","_fullWeekdaysParse","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","makeGetter","relativeTime$1","posNegDuration","abs$1","toISOString$1","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","toIsoString","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","OFI","propRegex","testImg","object-position","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","nativeSetAttribute","autoModeEnabled","setPlaceholder","placeholder","onImageReady","fixOne","ofi","skipTest","ns","evaled","fillImg","reselect","curSrc","supported","backgroundImage","backgroundPosition","backgroundRepeat","backgroundOrigin","backgroundSize","startAutoMode","watchMQ","getOfiImageMaybe","HTMLImageElement","normalizeArray","allowAboveRoot","up","xs","resolvedPath","resolvedAbsolute","isAbsolute","trailingSlash","relative","fromParts","toParts","samePartsLength","outputParts","sep","delimiter","dirname","hasRoot","charCodeAt","matchedSlash","basename","ext","extname","startDot","startPart","preDotState","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","marker","Item","nextTick","browser","versions","addListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","chdir","umask","cursorNodes","_bindHandles","isAdd","bindMethod","touchAction","handle","_bindStartEvent","PointerEvent","OPTION","clickTypes","radio","checkbox","button","submit","image","file","isCursorNode","isClickType","isOkay","_pointerReset","focused","blur","_dragStart","_dragEnd","_staticClick","isPreventingClicks","isIgnoringMouseUp","getPointerPoint","postStartEvents","startEvent","getTouch","identifier","pointerIdentifier","onmousedown","_pointerDown","onpointerdown","pointerId","mousedown","_boundPointerEvents","_unbindPostStartEvents","onmousemove","_pointerMove","onpointermove","onmouseup","_pointerUp","onpointerup","ontouchend","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","repository","scripts","gulp","dev","prettier","prettier:fix","stylelint","stylelint:fix","eslint","eslint:dry","eslint:fix","eslint:needles","preclean","postclean","contributors","readmeFilename","license","devDependencies","@babel/core","@babel/eslint-parser","@babel/plugin-external-helpers","@babel/plugin-proposal-class-properties","@babel/plugin-proposal-object-rest-spread","@babel/plugin-transform-async-to-generator","@babel/plugin-transform-runtime","@babel/polyfill","@babel/preset-env","@babel/register","autoprefixer","babelify","browser-sync","dotenv","errorify","eslint-config-prettier","glob","gulp-changed","gulp-clean-css","gulp-data","gulp-ext-replace","gulp-filter","gulp-if","gulp-imagemin","gulp-mocha","gulp-nunjucks-render","gulp-postcss","gulp-rename","gulp-sass","gulp-sourcemaps","gulp-svg-sprite","gulp-transform","gulp-uglify","gulp-util","gulp-zip","highlight.js","ignore","js-beautify","js-yaml","marked","moment-timezone","nunjucks-includeData","require-globify","sass","stylelint-config-prettier-scss","stylelint-config-recommended-scss","stylelint-config-standard-scss","stylelint-selector-bem-pattern","vinyl","vinyl-buffer","vinyl-ftp","vinyl-source-stream","watchify","zen-observable","dependencies","@babel/runtime","@dotsunited/load-css-polyfill","body-scroll-lock","chart.js","chartjs-adapter-moment","chartjs-plugin-datalabels","element-matches-polyfill","element-qsa-scope","eligrey-classlist-js-polyfill","flickity-as-nav-for","flickity-fade","focus-visible","glightbox","intersection-observer","mdn-polyfills","normalize-scss","object-fit-images","svg4everybody","webfontloader","_debounce","_ScriptLoader","getOwnPropertySymbols","_objectSpread","_defineProperty2","getOwnPropertyDescriptors","markerPopup","hoveredCountryId","popOpen","hasPopup","typeone","typetwo","typethree","mobile","_loadMarker","_handleCountryClick","mapbox","_mapboxgl","mapboxgl","_cacheSelectors","catch","accessToken","_elements","markers","lng","lat","maxZoom","maxzoom","minZoom","minzoom","crossOrigin","debounceTime","scrollZoom","addControl","NavigationControl","_state","addLayer","countries1","countries2","countries3","water","setFilter","features","queryRenderedFeatures","country","ADM0_A3_IS","figure","fig","linkMarker","address","phone","popup","Popup","setLngLat","unproject","setHTML","addTo","mobileBreakpoint","dragRotate","touchZoomRotate","brand","textContent","Marker","markerOffset","setPopup","flyTo","currentTarget","source-layer","paint","fill-color","line-color","Parallax","inViewport","imageSize","_moveParallax","_viewportHandler","scrolled","background","coords","speed","_setImage","ProductCard","moodboard","download","_initDownload","_initMoodboard","_createDownload","fetch","response","blob","_downloadBlob","URL","createObjectURL","_clickHandler","revokeObjectURL","credentials","redirect","headers","X-Requested-With","_bodyScrollLock","SearchBar","toggleSearch","closeSearch","resultpage","_disableScroll","_enableScroll","Video","_video","autoplay","showControls","_addListeners","_handleIntersect","_playVideo","_controlsActivated","_enableControls","_disableControls","controls","volume","currentTime","intersectionObserver","atoms/map/Map","atoms/parallax/Parallax","atoms/product-card/ProductCard","atoms/search-bar/SearchBar","atoms/skeleton-loader-component/skeleton-loader-component","atoms/video/Video","molecules/accordion/Accordion","molecules/b2b-lite/account/request-returns-details/RequestReturnsDetails","molecules/b2b-lite/admin/chart-new-revived/ChartNewRevived","molecules/b2b-lite/admin/chart-new-revived/LegendConfig","molecules/b2b-lite/admin/widget-orders-over-time/WidgetOrdersOverTime","molecules/b2b-lite/aside-navigation/AsideNavigation","molecules/carousel-products/CarouselProducts","molecules/carousel/Carousel","molecules/cart-summary-new/Cartsummary-new","molecules/cart-summary/Cartsummary","molecules/configurator/Configurator","molecules/cookie-bar/CookieBar","molecules/expander/Expander","molecules/filter-carousel/FilterCarousel","molecules/filters/Filters","molecules/form/CheckoutForm","molecules/form/Form","molecules/gispen-filter/GispenFilter","molecules/gispen-menu/GispenMenu","molecules/gispen-menu/ProfileMenu","molecules/header-carousel/HeaderCarousel","molecules/history/History","molecules/inspiration-grid-vertical/InspirationGrid","molecules/photo-gallery/PhotoGallery","molecules/progress-circle/ProgressCircle","molecules/region-selector/HandleModal","molecules/side-menu/SideMenu","molecules/sub-navigation/SubNavigation","molecules/summary-about/Summaryabout","molecules/summary/Summary","molecules/tabs/Tabs","molecules/user-menu/ProfileMenu","molecules/user-menu/UserMenu","./atoms/map/Map.js","./atoms/parallax/Parallax.js","./atoms/product-card/ProductCard.js","./atoms/search-bar/SearchBar.js","./atoms/skeleton-loader-component/skeleton-loader-component.js","./atoms/video/Video.js","./index.js","./molecules/accordion/Accordion.js","./molecules/b2b-lite/account/request-returns-details/RequestReturnsDetails.js","./molecules/b2b-lite/admin/chart-new-revived/ChartNewRevived.js","./molecules/b2b-lite/admin/chart-new-revived/LegendConfig.js","./molecules/b2b-lite/admin/widget-orders-over-time/WidgetOrdersOverTime.js","./molecules/b2b-lite/aside-navigation/AsideNavigation.js","./molecules/carousel-products/CarouselProducts.js","./molecules/carousel/Carousel.js","./molecules/cart-summary-new/Cartsummary-new.js","./molecules/cart-summary/Cartsummary.js","./molecules/configurator/Configurator.js","./molecules/cookie-bar/CookieBar.js","./molecules/expander/Expander.js","./molecules/filter-carousel/FilterCarousel.js","./molecules/filters/Filters.js","./molecules/form/CheckoutForm.js","./molecules/form/Form.js","./molecules/gispen-filter/GispenFilter.js","./molecules/gispen-menu/GispenMenu.js","./molecules/gispen-menu/ProfileMenu.js","./molecules/header-carousel/HeaderCarousel.js","./molecules/history/History.js","./molecules/inspiration-grid-vertical/InspirationGrid.js","./molecules/photo-gallery/PhotoGallery.js","./molecules/progress-circle/ProgressCircle.js","./molecules/region-selector/HandleModal.js","./molecules/side-menu/SideMenu.js","./molecules/sub-navigation/SubNavigation.js","./molecules/summary-about/Summaryabout.js","./molecules/summary/Summary.js","./molecules/tabs/Tabs.js","./molecules/user-menu/ProfileMenu.js","./molecules/user-menu/UserMenu.js","56","_triggers","panelGroup","panel","nextElementSibling","_selectionProducts","_selectionNextButton","_selectedProducts","_selectedNextButton","_selectionPanel","_selectedPanel","_disableSelectionNextButton","selectionProduct","_selectionProductButton","eventSelectionProductButton","_currentSelectionProductButton","isSelected","_setSelectedProducts","selectedProducts","removedProducts","selectedProduct","removedProduct","productId","_setRemoveSelectedProducts","_auto","_chartjsPluginDatalabels","_LegendConfig","_developer","iconList","icon","monthList","chartDataModel","orderQuantityForNewKg","orderQuantityForRevivedKg","newKg","tooltipDataNew","revivedKg","tooltipDataRevived","ChartNewRevived","_chartTitleCategory","titleCategory","_chartTitlePeriod","titlePeriod","_apiEndpoint","apiEndpoint","_language","language","_showByCategory","showByCategory","_selectedYearSet","_createEmissionChart","_yearButtonWrapper","_messageWrapper","_chartCategory","_legendCategory","_btnCategory","_chartPeriod","_legendPeriod","_btnPeriod","_chartYearValue","_chartTotalValue","_chartTitleValue","_showMessage","_rebuildSelectedChart","_chart1","_createDataResultCategory","_emissionsByType","_initChartCategory","_dataResultCategory","_chart2","_createDataResultPeriod","_emissionsByDate","_initChartPeriod","_dataResultPeriod","_mergeDataTooltip","tooltipData","tmpTooltipList","tmpTooltip","kg","_mergeData","dataCopy","filteredData","selectedYear","completeYearList","tooltipDataNewList","tooltipDataRevivedList","newModel","completeYear","emissionsByType","emissionsData","_updateSavedEmissions","tooltipText","_fillMissingMonths","emissionsByDate","newTotal","_kgSavedPerYear","_fetchData","_asyncToGenerator2","dataUrl","isDeveloperMode","yield","json","status","statusText","_this2","kgSavedPerYear","visibility","_yearList","activeYear","_initYearButtons","showMessage","messageText","yearButton","yearIndex","toggle","_createIcon","_initTooltip","TOOLTIP_ID","tooltipModel","tooltipEl","tooltipBodyArea","tooltipIcon","innerTooltip","scrollX","scrollY","pointerEvents","_initDataLabel","dataItem","htmlLegendPlugin","htmlLegend","containerID","ul","containerId","legendContainer","listContainer","flexDirection","li","boxSpan","alignItems","textContainer","flexShrink","minWidth","justifyContent","textDecoration","createTextNode","_ordersOverTimeChart","colorData1","pointRadius","pointBackgroundColor","_cookies","_initTriggers","_initCollapsible","_collapsibleTrigger","_collapsedTrigger","_collapsibleAside","_collapsibleBody","setCookie","defaultOpen","getCookie","_eventHelpers","_DOMHelpers","CarouselProducts","_refs","products","scrollLeft","currentPos","maxPos","goto","_addEventListeners","_onTouchMove","raf","_onTouchStart","_onTouchEnd","activeProduct","product","_initProductCarousel","maxItems","breakpoint","childElementCount","isWithinBounds","bound","setPrefixedStyle","slideTo","bullet","_scrollTo","Carousel","bullets","_onBulletClick","handleArrows","activeBullet","pace","Cartsummary","_initToggle","_toggles","targetId","closest","Configurator","_initFields","_fields","_selects","_setSelect","CookieBar","_regionToggle","_region","_notification","_checkboxes","_submit","_cancel","_setEventListeners","cookieName","_handleModal","cookies","mandatory","cookie","optional","_setVisibility","eraseCookie","_showNotification","_initTrigger","_initExpander","_trigger","_flickity","_getOptions","_carousel","flkty","matchMedia","imagesLoaded","isOpen","_content","_close","_body","_html","CheckoutForm","_setTextarea","_textareaEvents","_textarea","textarea","compStyles","lineheight","paddingtop","paddingbottom","Form","disableTextareaSizing","GispenFilter","_menu","_anchorLinks","_anchors","anchorLink","hash","anchorObserver","GispenMenu","_main","_navigation","_backButton","_closeButtons","_contactButtons","closeSideMenu","togglemenu","_profileToggle","_profileMenu","initEventListeners","checkState","closeProfileMenu","openProfileMenu","setState","_carouselNav","flktyNav","_colcade","_grid","colc","_glightbox","_initColcade","_initLightbox","_grids","_lightboxItems","lightbox","progressText","progressVal","strokeVal","scaleDigit","progressTotal","strokeDasharray","textLength","HandleModal","modalOpen","toggleButtons","closeButtons","regionanchor","header","menu","SideMenu","subOpen","_menuLevels","first_level_menu","second_level_menu","third_level_menu","images","navigationList","backButton","backButtonTitle","_closeAllMenus","_showMenu","_clickedNavigationItem","_clickedBackButton","_switchImages","innerLink","clickedElement","nextMenu","clickedElementLevel","level","menuLevel","currentShowLevel","showLevel","previousTitle","imageIndex","targ","SubNavigation","About","Summary","tabbed","back","activeTitle","filters","tablist","tabs","panels","_switchTab","oldTab","newTab","oldIndex","animatein","animateout","_toggleTab","tab","currentTab","mintabs","which","down","startTab","Tabs","UserMenu","_FormItem","_Observer","_formItems","recaptchaUrl","_initializeFormItems","_buttons","disableSubmitUntilValid","_toggleSubmit","_bindEvents","_onSubmit","_onInvalid","_onButtonClick","formItem","subscribe","getFormItemByElement","getItem","captcha","grecaptcha","getResponse","validate","publish","isHidden","every","isIgnored","getForm","DATA_FILTER_ATTR","DATA_VALID_ATTR","DATA_MATCHES_ATTR","DATA_ERROR_CLASS","DATA_FOCUS","_label","_validateRegex","_filterRegex","_matchingElement","_errorMessage","_requiredMessage","_onChange","_onFocus","_onFocusOut","_onKeyUp","_onPaste","_onLoad","_onInput","_onMatchingElementInput","setTextarea","setFocus","setEmpty","setValid","setInvalid","filteredValue","checkValidity","_getRadioErrorLabel","_setErrorMessage","insertAfter","JumpList","_handleChange","form","ex","_initializeComponents","initializeComponents","reinit","ease","_groupHandlers","handleGroupFn","group","activeEvent","_handleGroup","getToggles","targets","_getToggle","_Controller","attribute","activeState","inActiveState","switch","inActiveEvent","unload","_Toggle","_toggle","_targets","_triggerFn","_intitialize","_setTargets","getTargets","TRANSITION_END_EVENT","_collapsingElement","_createCollapsingElement","_expand","_collapse","_onTransitionEnd","_setHeight","collapsingElement","_getHeight","reflow","propertyName","StickyNavigation","previousY","previousRatio","_wrapper","_bust","setVendor","newNode","referenceNode","webkitMatchesSelector","mozMatchesSelector","parseFromString","DOMParser","getHTML","unloadComponents","_subscriptions","_informants","_push","_filter","filterFn","subject","subscription","_subject","publishAsync","inform","informant","conceal","_receiver","_scripts","script","reject","tag","nameEQ","ca","expires","MILLISECONDS_IN_DAY","toUTCString","throttle","throttling","debounceHead","debounceTail","cancelAnimationFrame","listenOnce","bubbles","_components","_StickyNavigation","_loadCssPolyfill","_objectFitImages","_lazysizes","_animate","scrollTarget","scr"],"mappings":"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KAAA,MACAg3F,IAAA,yDACA,EACAywC,QAAA,CACAC,KAAA,qCACAhiI,MAAA,WACAiiI,IAAA,WACAvgJ,KAAA,YACAyb,KAAA,YACA+kI,SAAA,sFACAC,eAAA,kGACAC,UAAA,6EACAC,gBAAA,mFACAC,OAAA,kGACAC,aAAA,gHACAC,aAAA,wGACAC,iBAAA,iFACAC,SAAA,cACArgJ,MAAA,cACAsgJ,UAAA,2DACA/lC,IAAA,2CACA,EACAgmC,aAAA,CACA,iEACA,mEACA,mCACA,sEACA,iEACA,kDACA,gDACA,0DACA,iEACA,mEACA,2DACA,6DACA,iEACA,2EACA,8DACA,+DACA,8DAEAC,eAAA,YACAC,QAAA,eACAC,gBAAA,CACAC,cAAA,SACAC,uBAAA,UACAC,iCAAA,SACAC,0CAAA,SACAC,4CAAA,SACAC,6CAAA,UACAC,kCAAA,SACAC,kBAAA,SACAC,oBAAA,SACAC,kBAAA,SACAC,aAAA,SACAC,SAAA,UACAC,eAAA,UACA3+I,WAAA,UACA23G,IAAA,SACAinC,OAAA,SACAC,SAAA,SACAxB,OAAA,UACAyB,yBAAA,UACAC,KAAA,SACAhC,KAAA,QACAiC,eAAA,SACAC,iBAAA,SACAC,YAAA,SACAC,mBAAA,SACAC,cAAA,SACAC,UAAA,SACAC,gBAAA,SACAC,aAAA,SACAC,uBAAA,SACAC,eAAA,UACAC,cAAA,SACAC,YAAA,SACAC,kBAAA,SACAC,kBAAA,SACAC,iBAAA,SACAC,cAAA,SACAC,YAAA,SACAC,WAAA,SACAC,eAAA,WACAC,OAAA,SACAC,cAAA,UACAC,UAAA,SACAC,OAAA,SACAC,kBAAA,UACAC,uBAAA,QACAvD,SAAA,SACAwD,kBAAA,SACAC,KAAA,SACAvD,UAAA,UACAwD,iCAAA,SACAC,oCAAA,UACAC,iCAAA,UACAC,iCAAA,SACAC,MAAA,SACAC,eAAA,SACAC,YAAA,SACAC,sBAAA,SACAC,SAAA,UACAC,iBAAA,QACA,EACAC,aAAA,CACAC,iBAAA,SACAC,gCAAA,SACAC,mBAAA,SACAC,WAAA,SACAC,yBAAA,SACAC,4BAAA,SACAxxD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","file":"main.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()","import dotenv from 'dotenv';\r\nimport pkg from './package.json';\r\n\r\ndotenv.load({ silent: true });\r\n\r\nconst { argv, env } = process;\r\n\r\nconst base = {\r\n src: './src',\r\n dist: './dist',\r\n docs: './tasks/docs',\r\n};\r\n\r\nmodule.exports = {\r\n base: {\r\n src: base.src,\r\n dist: base.dist,\r\n docs: base.docs,\r\n },\r\n\r\n browsersync: {\r\n server: {\r\n baseDir: base.dist,\r\n },\r\n open: false,\r\n ui: false,\r\n notify: false,\r\n https: argv.includes('--https'),\r\n port: 3004,\r\n },\r\n\r\n clean: {\r\n dist: {\r\n base: base.dist,\r\n },\r\n },\r\n\r\n css: {\r\n src: {\r\n static: `${base.src}/static/scss/**/!(_)*.scss`,\r\n staticAll: `${base.src}/static/scss/**/*.scss`,\r\n components: `${base.src}/components/**/*.scss`,\r\n vendor: `${base.src}/static/scss/vendor/**/*.scss`,\r\n },\r\n dist: {\r\n base: `${base.dist}/static/gispen/css`,\r\n },\r\n },\r\n\r\n docs: {\r\n src: {\r\n index: `${base.docs}/index.njk`,\r\n indexDir: base.docs,\r\n layoutDir: `${base.docs}/layout`,\r\n templates: `${base.src}/templates`,\r\n statics: `${base.docs}/static/**`,\r\n component: 'component-detail.njk',\r\n preview: 'component-preview.njk',\r\n components: `${base.src}/components`,\r\n componentsAll: `${base.src}/components/**/*.yml`,\r\n componentsData: `${base.src}/components/**/*.json`,\r\n },\r\n dist: {\r\n base: base.dist,\r\n index: `${base.dist}/index.html`,\r\n static: `${base.dist}/docs/static/`,\r\n components: `${base.dist}/docs/components/`,\r\n },\r\n codeBeautifier: {\r\n 'indent-size': 2,\r\n 'max-preserve-newlines': 0,\r\n },\r\n },\r\n\r\n fonts: {\r\n src: {\r\n fonts: `${base.src}/static/fonts/**/*.{woff,woff2,ttf,eot,css}`,\r\n },\r\n dist: {\r\n fonts: `${base.dist}/static/gispen/fonts`,\r\n },\r\n },\r\n\r\n mock: {\r\n src: {\r\n mock: `${base.src}/mock/**/*`,\r\n },\r\n dist: {\r\n mock: `${base.dist}/mock`,\r\n },\r\n },\r\n\r\n githooks: {\r\n src: {\r\n all: './tasks/githooks/*',\r\n },\r\n dist: {\r\n base: './.git/hooks',\r\n all: './.git/hooks/*',\r\n },\r\n },\r\n\r\n html: {\r\n src: {\r\n templates: `${base.src}/templates/**/*.njk`,\r\n templatesDir: `${base.src}/templates`,\r\n templatesData: `${base.src}/templates/**/*.json`,\r\n layout: `${base.src}/layout/*.njk`,\r\n layoutDir: `${base.src}/layout`,\r\n components: `${base.src}/components/**/*.njk`,\r\n componentsDir: `${base.src}/components`,\r\n componentsData: `${base.src}/components/**/*.json`,\r\n },\r\n dist: {\r\n base: `${base.dist}/templates`,\r\n },\r\n baseUri: '/',\r\n },\r\n\r\n img: {\r\n src: {\r\n all: `${base.src}/static/gispen/img/**/*.{svg,png,jpg,gif,webp}`,\r\n spritesheetDir: `${base.src}/static/sprites`,\r\n },\r\n dist: {\r\n base: `${base.dist}/static/gispen/img`,\r\n },\r\n spritesheet: {\r\n shape: {\r\n id: {\r\n separator: '-',\r\n whitespace: '-',\r\n },\r\n },\r\n mode: {\r\n symbol: {\r\n bust: false,\r\n dest: './',\r\n sprite: `${base.dist}/static/gispen/img/sprite.svg`,\r\n },\r\n },\r\n },\r\n },\r\n\r\n js: {\r\n src: {\r\n all: `${base.src}/static/js/**/*.js`,\r\n bundles: `${base.src}/static/js/*.js`,\r\n components: `${base.src}/components/**/!(*.Spec).js`,\r\n vendor: `${base.src}/static/js/vendor`,\r\n tests: `${base.src}/components/**/*.Spec.js`,\r\n },\r\n dist: {\r\n base: `${base.dist}/static/gispen/js`,\r\n babelHelpers: `${base.dist}/static/js/babel-helpers.js`,\r\n },\r\n browserify: {\r\n paths: [`${base.src}/static/js/`, `${base.src}/components/`],\r\n debug: true,\r\n // Keep in config, we concat 'watchify' when running 'gulp dev'\r\n plugin: ['errorify'],\r\n transform: ['babelify', 'require-globify'],\r\n },\r\n eslintAutofix: false,\r\n },\r\n\r\n upload: {\r\n src: {\r\n all: `${base.dist}/**`,\r\n },\r\n dist: {\r\n target: '/',\r\n base: base.dist,\r\n },\r\n options: {\r\n // Defined in .env file\r\n host: env.UPLOAD_HOST,\r\n user: env.UPLOAD_USER,\r\n password: env.UPLOAD_PASSWORD,\r\n },\r\n },\r\n\r\n zip: {\r\n filename: `${pkg.name}.zip`,\r\n src: {\r\n all: `${base.dist}/**/!(*.zip)`,\r\n },\r\n dist: {\r\n base: base.dist,\r\n },\r\n },\r\n};\r\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*! load-css-polyfill v1.2.0 - Copyright 2017-2018 Dots United GmbH - Licensed MIT */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.loadCSSPolyfill = factory());\n}(this, (function () { 'use strict';\n\nfunction supports(win) {\n try {\n return (win || window).document.createElement('link').relList.supports('preload');\n } catch (e) {\n return false;\n }\n}\n\nfunction shim(win) {\n var w = win || window;\n var doc = w.document;\n\n function run() {\n var links = doc.querySelectorAll('link[rel=\"preload\"][as=\"style\"]');\n\n [].forEach.call(links, function (link) {\n link.rel = '';\n\n var newLink = doc.createElement('link');\n\n newLink.rel = 'stylesheet';\n newLink.href = link.href;\n newLink.media = 'only x';\n\n var finish = function() {\n newLink.media = link.getAttribute('media') || 'all';\n newLink.removeEventListener('load', finish);\n };\n\n newLink.addEventListener('load', finish);\n\n link.parentNode.insertBefore(newLink, link.nextSibling || link);\n });\n }\n\n run();\n\n if (doc.readyState !== 'complete') {\n var timer = w.setInterval(run, 300);\n\n w.addEventListener('load', function() {\n run();\n w.clearInterval(timer);\n });\n }\n}\n\nfunction polyfill(win) {\n if (!supports(win)) {\n shim(win);\n }\n}\n\nreturn polyfill;\n\n})));\n","/*!\n * @kurkle/color v0.3.4\n * https://github.com/kurkle/color#readme\n * (c) 2024 Jukka Kurkela\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\ntypeof define === 'function' && define.amd ? define(factory) :\n(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global[\"@kurkle/color\"] = factory());\n})(this, (function () { 'use strict';\n\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {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};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names$1 = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nvar color = /*#__PURE__*/Object.freeze({\n__proto__: null,\nColor: Color,\nb2n: b2n,\nb2p: b2p,\ndefault: index_esm,\nhexParse: hexParse,\nhexString: hexString,\nhsl2rgb: hsl2rgb,\nhslString: hslString,\nhsv2rgb: hsv2rgb,\nhueParse: hueParse,\nhwb2rgb: hwb2rgb,\nlim: lim,\nn2b: n2b,\nn2p: n2p,\nnameParse: nameParse,\np2b: p2b,\nrgb2hsl: rgb2hsl,\nrgbParse: rgbParse,\nrgbString: rgbString,\nrotate: rotate,\nround: round\n});\n\nvar index = Object.assign(index_esm, color);\n\nreturn index;\n\n}));\n","!function(e,t){if(\"function\"==typeof define&&define.amd)define([\"exports\"],t);else if(\"undefined\"!=typeof exports)t(exports);else{var o={};t(o),e.bodyScrollLock=o}}(this,function(exports){\"use strict\";function i(e){if(Array.isArray(e)){for(var t=0,o=Array(e.length);t<e.length;t++)o[t]=e[t];return o}return Array.from(e)}Object.defineProperty(exports,\"__esModule\",{value:!0});var l=!1;if(\"undefined\"!=typeof window){var e={get passive(){l=!0}};window.addEventListener(\"testPassive\",null,e),window.removeEventListener(\"testPassive\",null,e)}function d(t){return u.some(function(e){return!(!e.options.allowTouchMove||!e.options.allowTouchMove(t))})}function c(e){var t=e||window.event;return!!d(t.target)||(1<t.touches.length||(t.preventDefault&&t.preventDefault(),!1))}function o(){setTimeout(function(){void 0!==m&&(document.body.style.paddingRight=m,m=void 0),void 0!==f&&(document.body.style.overflow=f,f=void 0)})}var a=\"undefined\"!=typeof window&&window.navigator&&window.navigator.platform&&(/iP(ad|hone|od)/.test(window.navigator.platform)||\"MacIntel\"===window.navigator.platform&&1<window.navigator.maxTouchPoints),u=[],s=!1,v=-1,f=void 0,m=void 0;exports.disableBodyScroll=function(r,e){if(a){if(!r)return void console.error(\"disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.\");if(r&&!u.some(function(e){return e.targetElement===r})){var t={targetElement:r,options:e||{}};u=[].concat(i(u),[t]),r.ontouchstart=function(e){1===e.targetTouches.length&&(v=e.targetTouches[0].clientY)},r.ontouchmove=function(e){var t,o,n,i;1===e.targetTouches.length&&(o=r,i=(t=e).targetTouches[0].clientY-v,d(t.target)||(o&&0===o.scrollTop&&0<i||(n=o)&&n.scrollHeight-n.scrollTop<=n.clientHeight&&i<0?c(t):t.stopPropagation()))},s||(document.addEventListener(\"touchmove\",c,l?{passive:!1}:void 0),s=!0)}}else{n=e,setTimeout(function(){if(void 0===m){var e=!!n&&!0===n.reserveScrollBarGap,t=window.innerWidth-document.documentElement.clientWidth;e&&0<t&&(m=document.body.style.paddingRight,document.body.style.paddingRight=t+\"px\")}void 0===f&&(f=document.body.style.overflow,document.body.style.overflow=\"hidden\")});var o={targetElement:r,options:e||{}};u=[].concat(i(u),[o])}var n},exports.clearAllBodyScrollLocks=function(){a?(u.forEach(function(e){e.targetElement.ontouchstart=null,e.targetElement.ontouchmove=null}),s&&(document.removeEventListener(\"touchmove\",c,l?{passive:!1}:void 0),s=!1),u=[],v=-1):(o(),u=[])},exports.enableBodyScroll=function(t){if(a){if(!t)return void console.error(\"enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.\");t.ontouchstart=null,t.ontouchmove=null,u=u.filter(function(e){return e.targetElement!==t}),s&&0===u.length&&(document.removeEventListener(\"touchmove\",c,l?{passive:!1}:void 0),s=!1)}else(u=u.filter(function(e){return e.targetElement!==t})).length||o()}});\n","const chartjs = require('../dist/chart.cjs');\nconst {Chart, registerables} = chartjs;\n\nChart.register(...registerables);\n\nmodule.exports = Object.assign(Chart, chartjs);\n","/*!\n * Chart.js v4.4.6\n * https://www.chartjs.org\n * (c) 2024 Chart.js Contributors\n * Released under the MIT License\n */\n'use strict';\n\nvar helpers_segment = require('./chunks/helpers.segment.cjs');\nrequire('@kurkle/color');\n\nclass Animator {\n constructor(){\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach((fn)=>fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = helpers_segment.requestAnimFrame.call(window, ()=>{\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart)=>{\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for(; i >= 0; --i){\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur)=>Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for(; i >= 0; --i){\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = /* #__PURE__ */ new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean (from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color (from, to, factor) {\n const c0 = helpers_segment.color(from || transparent);\n const c1 = c0.valid && helpers_segment.color(to || transparent);\n return c1 && c1.valid ? c1.mix(c0, factor).hexString() : to;\n },\n number (from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to){\n const currentValue = target[prop];\n to = helpers_segment.resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n const from = helpers_segment.resolve([\n cfg.from,\n currentValue,\n to\n ]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = helpers_segment.effects[cfg.easing] || helpers_segment.effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = helpers_segment.resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n this._from = helpers_segment.resolve([\n cfg.from,\n currentValue,\n to\n ]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || elapsed < duration);\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = elapsed / duration % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej)=>{\n promises.push({\n res,\n rej\n });\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for(let i = 0; i < promises.length; i++){\n promises[i][method]();\n }\n }\n}\n\nclass Animations {\n constructor(chart, config){\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!helpers_segment.isObject(config)) {\n return;\n }\n const animationOptions = Object.keys(helpers_segment.defaults.animation);\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach((key)=>{\n const cfg = config[key];\n if (!helpers_segment.isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions){\n resolved[option] = cfg[option];\n }\n (helpers_segment.isArray(cfg.properties) && cfg.properties || [\n key\n ]).forEach((prop)=>{\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(()=>{\n target.options = newOptions;\n }, ()=>{\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for(i = props.length - 1; i >= 0; --i){\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for(let i = 0; i < keys.length; i++){\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {\n $shared: false,\n $animations: {}\n });\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (helpers_segment.isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n let found = false;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n found = true;\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (helpers_segment.isNumberFinite(otherValue) && (singleMode || value === 0 || helpers_segment.sign(value) === helpers_segment.sign(otherValue))) {\n value += otherValue;\n }\n }\n if (!found && !options.all) {\n return 0;\n }\n return value;\n}\nfunction convertObjectDataToArray(data, meta) {\n const { iScale , vScale } = meta;\n const iAxisKey = iScale.axis === 'x' ? 'x' : 'y';\n const vAxisKey = vScale.axis === 'x' ? 'x' : 'y';\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n key = keys[i];\n adata[i] = {\n [iAxisKey]: key,\n [vAxisKey]: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || stacked === undefined && meta.stack !== undefined;\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const { min , max , minDefined , maxDefined } = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()){\n const value = stack[meta.index];\n if (positive && value > 0 || !positive && value < 0) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const { chart , _cachedMeta: meta } = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const { iScale , vScale , index: datasetIndex } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for(let i = 0; i < ilen; ++i){\n const item = parsed[i];\n const { [iAxis]: index , [vAxis]: value } = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n const visualValues = stack._visualValues || (stack._visualValues = {});\n visualValues[datasetIndex] = value;\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter((key)=>scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return helpers_segment.createContext(parent, {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n });\n}\nfunction createDataContext(parent, index, element) {\n return helpers_segment.createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items){\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n if (stacks[axis]._visualValues !== undefined && stacks[axis]._visualValues[datasetIndex] !== undefined) {\n delete stacks[axis]._visualValues[datasetIndex];\n }\n }\n}\nconst isDirectUpdateMode = (mode)=>mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared)=>shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart)=>canStack && !meta.hidden && meta._stacked && {\n keys: getSortedDatasetIndices(chart, true),\n values: null\n };\nclass DatasetController {\n static defaults = {};\n static datasetElementType = null;\n static dataElementType = null;\n constructor(chart, datasetIndex){\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.datasetElementType = new.target.datasetElementType;\n this.dataElementType = new.target.dataElementType;\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n if (this.options.fill && !this.chart.isPluginEnabled('filler')) {\n console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\");\n }\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r)=>axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = helpers_segment.valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = helpers_segment.valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = helpers_segment.valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale ? meta.vScale : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n helpers_segment.unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (helpers_segment.isObject(data)) {\n const meta = this._cachedMeta;\n this._data = convertObjectDataToArray(data, meta);\n } else if (_data !== data) {\n if (_data) {\n helpers_segment.unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n helpers_segment.listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n meta._stacked = isStacked(meta.vScale, meta);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const { _cachedMeta: meta , _data: data } = this;\n const { iScale , _stacked } = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (helpers_segment.isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (helpers_segment.isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = ()=>cur[iAxis] === null || prev && cur[iAxis] < prev[iAxis];\n for(i = 0; i < count; ++i){\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(helpers_segment.resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(helpers_segment.resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]._visualValues\n };\n return applyStack(stack, value, meta.index, {\n mode\n });\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n const { min: otherMin , max: otherMax } = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !helpers_segment.isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for(i = 0; i < ilen; ++i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for(i = ilen - 1; i >= 0; --i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for(i = 0, ilen = parsed.length; i < ilen; ++i){\n value = parsed[i][scale.axis];\n if (helpers_segment.isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(helpers_segment.valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || elements.length - start;\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for(i = start; i < start + count; ++i){\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for(i = 0; i < active.length; ++i){\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(mode) : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context || (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context || (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && helpers_segment.defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [\n `${elementType}Hover`,\n 'hover',\n elementType,\n ''\n ] : [\n elementType,\n ''\n ];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(helpers_segment.defaults.elements[elementType]);\n const context = ()=>this.getContext(index, active, mode);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || sharedOptions !== previouslySharedOptions;\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {\n sharedOptions,\n includeOptions\n };\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: !active && this.getSharedOptions(options) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList){\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr)=>{\n arr.length += count;\n for(i = arr.length - 1; i >= end; i--){\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for(i = start; i < end; ++i){\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([\n this.index,\n ...args\n ]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync([\n '_insertElements',\n this.getDataset().data.length - count,\n count\n ]);\n }\n _onDataPop() {\n this._sync([\n '_removeElements',\n this._cachedMeta.data.length - 1,\n 1\n ]);\n }\n _onDataShift() {\n this._sync([\n '_removeElements',\n 0,\n 1\n ]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync([\n '_removeElements',\n start,\n count\n ]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync([\n '_insertElements',\n start,\n newCount\n ]);\n }\n }\n _onDataUnshift() {\n this._sync([\n '_insertElements',\n 0,\n arguments.length\n ]);\n }\n}\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for(let i = 0, ilen = visibleMetas.length; i < ilen; i++){\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = helpers_segment._arrayUnique(values.sort((a, b)=>a - b));\n }\n return scale._cache.$bar;\n}\n function computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = ()=>{\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (helpers_segment.defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for(i = 0, ilen = values.length; i < ilen; ++i){\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for(i = 0, ilen = scale.ticks.length; i < ilen; ++i){\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\n function computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (helpers_segment.isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - size / 2\n };\n}\n function computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (helpers_segment.isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for(i = start, ilen = start + count; i < ilen; ++i){\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return helpers_segment.sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {\n start,\n end,\n reverse,\n top,\n bottom\n };\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n if (edge === true) {\n properties.borderSkipped = {\n top: true,\n right: true,\n bottom: true,\n left: true\n };\n return;\n }\n const { start , end , reverse , top , bottom } = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, { inflateAmount }, ratio) {\n properties.inflateAmount = inflateAmount === 'auto' ? ratio === 1 ? 0.33 : 0 : inflateAmount;\n}\nclass BarController extends DatasetController {\n static id = 'bar';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true\n }\n }\n };\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for(i = start, ilen = start + count; i < ilen; ++i){\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(helpers_segment.resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(helpers_segment.resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const { iScale , vScale } = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom) ? '[' + custom.start + ', ' + custom.end + ']' : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const { index , _cachedMeta: { vScale } } = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n for(let i = start; i < start + count; i++){\n const parsed = this.getParsed(i);\n const vpixels = reset || helpers_segment.isNullOrUndef(parsed[vScale.axis]) ? {\n base,\n head: base\n } : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || index === stack._top || index === stack._bottom,\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const { iScale } = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type).filter((meta)=>meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const currentParsed = this._cachedMeta.controller.getParsed(dataIndex);\n const iScaleValue = currentParsed && currentParsed[iScale.axis];\n const skipNull = (meta)=>{\n const parsed = meta._parsed.find((item)=>item[iScale.axis] === iScaleValue);\n const val = parsed && parsed[meta.vScale.axis];\n if (helpers_segment.isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n for (const meta of metasets){\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n if (stacked === false || stacks.indexOf(meta.stack) === -1 || stacked === undefined && meta.stack === undefined) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = name !== undefined ? stacks.indexOf(name) : -1;\n return index === -1 ? stacks.length - 1 : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for(i = 0, ilen = meta.data.length; i < ilen; ++i){\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const { _cachedMeta: { vScale , _stacked , index: datasetIndex } , options: { base: baseValue , minBarLength } } = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && helpers_segment.sign(value) !== helpers_segment.sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !helpers_segment.isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n if (_stacked && !floating) {\n parsed._stacks[vScale.axis]._visualValues[datasetIndex] = vScale.getValueForPixel(head) - vScale.getValueForPixel(base);\n }\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = helpers_segment.sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = helpers_segment.valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount) : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + range.chunk * stackIndex + range.chunk / 2;\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for(; i < ilen; ++i){\n if (this.getParsed(i)[vScale.axis] !== null && !rects[i].hidden) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\n\nclass BubbleController extends DatasetController {\n static id = 'bubble';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'borderWidth',\n 'radius'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = helpers_segment.valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = helpers_segment.valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {\n $shared: false\n });\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += helpers_segment.valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < helpers_segment.TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b)=>helpers_segment._angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b)=>helpers_segment._angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(helpers_segment.HALF_PI, startY, endY);\n const minX = calcMin(helpers_segment.PI, startX, endX);\n const minY = calcMin(helpers_segment.PI + helpers_segment.HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {\n ratioX,\n ratioY,\n offsetX,\n offsetY\n };\n}\nclass DoughnutController extends DatasetController {\n static id = 'doughnut';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'circumference',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'startAngle',\n 'x',\n 'y',\n 'offset',\n 'borderWidth',\n 'spacing'\n ]\n }\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r'\n };\n static descriptors = {\n _scriptable: (name)=>name !== 'spacing',\n _indexable: (name)=>name !== 'spacing' && !name.startsWith('borderDash') && !name.startsWith('hoverBorderDash')\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const { labels: { pointStyle , color } } = chart.legend.options;\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i)=>+data[i];\n if (helpers_segment.isObject(data[start])) {\n const { key ='value' } = this._parsing;\n getter = (i)=>+helpers_segment.resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for(i = start, ilen = start + count; i < ilen; ++i){\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return helpers_segment.toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return helpers_segment.toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = helpers_segment.TAU;\n let max = -helpers_segment.TAU;\n for(let i = 0; i < this.chart.data.datasets.length; ++i){\n if (this.chart.isDatasetVisible(i) && this.chart.getDatasetMeta(i).type === this._type) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min\n };\n }\n update(mode) {\n const chart = this.chart;\n const { chartArea } = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(helpers_segment.toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const { circumference , rotation } = this._getRotationExtents();\n const { ratioX , ratioY , offsetX , offsetY } = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = helpers_segment.toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if (reset && opts.animation.animateRotate || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / helpers_segment.TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n for(i = 0; i < start; ++i){\n startAngle += this._circumference(i, reset);\n }\n for(i = start; i < start + count; ++i){\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for(i = 0; i < metaData.length; i++){\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return helpers_segment.TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = helpers_segment.formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for(i = 0, ilen = chart.data.datasets.length; i < ilen; ++i){\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for(i = 0, ilen = arcs.length; i < ilen; ++i){\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for(let i = 0, ilen = arcs.length; i < ilen; ++i){\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for(let i = 0; i < datasetIndex; ++i){\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(helpers_segment.valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\n\nclass LineController extends DatasetController {\n static id = 'line';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category'\n },\n _value_: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { dataset: line , data: points = [] , _dataset } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = helpers_segment._getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (helpers_segment._scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = helpers_segment.isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n const end = start + count;\n const pointsCount = points.length;\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = 0; i < pointsCount; ++i){\n const point = points[i];\n const properties = directUpdate ? point : {};\n if (i < start || i >= end) {\n properties.skip = true;\n continue;\n }\n const parsed = this.getParsed(i);\n const nullData = helpers_segment.isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\n\nclass PolarAreaController extends DatasetController {\n static id = 'polarArea';\n static defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ]\n }\n },\n indexAxis: 'r',\n startAngle: 0\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const { labels: { pointStyle , color } } = chart.legend.options;\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = helpers_segment.formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n parseObjectData(meta, data, start, count) {\n return helpers_segment._parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n meta.data.forEach((element, index)=>{\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? outerRadius / 100 * opts.cutoutPercentage : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - radiusLength * this.index;\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * helpers_segment.PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for(i = 0; i < start; ++i){\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for(i = start; i < start + count; i++){\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index)=>{\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index) ? helpers_segment.toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle) : 0;\n }\n}\n\nclass PieController extends DoughnutController {\n static id = 'pie';\n static defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n };\n}\n\nclass RadarController extends DatasetController {\n static id = 'radar';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n }\n };\n static overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear'\n }\n }\n };\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return helpers_segment._parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\n\nclass ScatterController extends DatasetController {\n static id = 'scatter';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n };\n static overrides = {\n interaction: {\n mode: 'point'\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + ')'\n };\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { data: points = [] } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = helpers_segment._getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (helpers_segment._scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n if (this.options.showLine) {\n if (!this.datasetElementType) {\n this.addElements();\n }\n const { dataset: line , _dataset } = meta;\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n } else if (this.datasetElementType) {\n delete meta.dataset;\n this.datasetElementType = false;\n }\n this.updateElements(points, start, count, mode);\n }\n addElements() {\n const { showLine } = this.options;\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = this.chart.registry.getElement('line');\n }\n super.addElements();\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = helpers_segment.isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = start; i < start + count; ++i){\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = helpers_segment.isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n if (!this.options.showLine) {\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPieController: PieController,\nPolarAreaController: PolarAreaController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\n/**\n * @namespace Chart._adapters\n * @since 2.8.0\n * @private\n */ function abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */ class DateAdapterBase {\n /**\n * Override default date adapter methods.\n * Accepts type parameter to define options type.\n * @example\n * Chart._adapters._date.override<{myAdapterOption: string}>({\n * init() {\n * console.log(this.options.myAdapterOption);\n * }\n * })\n */ static override(members) {\n Object.assign(DateAdapterBase.prototype, members);\n }\n options;\n constructor(options){\n this.options = options || {};\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n init() {}\n formats() {\n return abstract();\n }\n parse() {\n return abstract();\n }\n format() {\n return abstract();\n }\n add() {\n return abstract();\n }\n diff() {\n return abstract();\n }\n startOf() {\n return abstract();\n }\n endOf() {\n return abstract();\n }\n}\nvar adapters = {\n _date: DateAdapterBase\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n const { controller , data , _sorted } = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? helpers_segment._rlookupByKey : helpers_segment._lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {\n lo: start.lo,\n hi: end.hi\n };\n }\n }\n }\n return {\n lo: 0,\n hi: data.length - 1\n };\n}\n function evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for(let i = 0, ilen = metasets.length; i < ilen; ++i){\n const { index , data } = metasets[i];\n const { lo , hi } = binarySearch(metasets[i], axis, value, intersect);\n for(let j = lo; j <= hi; ++j){\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n function getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\n function getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !helpers_segment._isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\n function getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const { startAngle , endAngle } = element.getProps([\n 'startAngle',\n 'endAngle'\n ], useFinalPosition);\n const { angle } = helpers_segment.getAngleFromPoint(element, {\n x: position.x,\n y: position.y\n });\n if (helpers_segment._angleBetween(angle, startAngle, endAngle)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [\n {\n element,\n datasetIndex,\n index\n }\n ];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect ? getNearestRadialItems(chart, position, axis, useFinalPosition) : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\n function getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index)=>{\n if (element[rangeMethod] && element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\n var Interaction = {\n evaluateInteractionItems,\n modes: {\n index (chart, e, options, useFinalPosition) {\n const position = helpers_segment.getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta)=>{\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({\n element,\n datasetIndex: meta.index,\n index\n });\n }\n });\n return elements;\n },\n dataset (chart, e, options, useFinalPosition) {\n const position = helpers_segment.getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for(let i = 0; i < data.length; ++i){\n items.push({\n element: data[i],\n datasetIndex,\n index: i\n });\n }\n }\n return items;\n },\n point (chart, e, options, useFinalPosition) {\n const position = helpers_segment.getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest (chart, e, options, useFinalPosition) {\n const position = helpers_segment.getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x (chart, e, options, useFinalPosition) {\n const position = helpers_segment.getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y (chart, e, options, useFinalPosition) {\n const position = helpers_segment.getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = [\n 'left',\n 'top',\n 'right',\n 'bottom'\n];\nfunction filterByPosition(array, position) {\n return array.filter((v)=>v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter((v)=>STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b)=>{\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ? v0.index - v1.index : v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for(i = 0, ilen = (boxes || []).length; i < ilen; ++i){\n box = boxes[i];\n ({ position: pos , options: { stack , stackWeight =1 } } = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && pos + stack,\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts){\n const { stack , pos , stackWeight } = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {\n count: 0,\n placed: 0,\n weight: 0,\n size: 0\n });\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\n function setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const { vBoxMaxWidth , hBoxMaxHeight } = params;\n let i, ilen, layout;\n for(i = 0, ilen = layouts.length; i < ilen; ++i){\n layout = layouts[i];\n const { fullSize } = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter((wrap)=>wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const { pos , box } = layout;\n const maxPadding = chartArea.maxPadding;\n if (!helpers_segment.isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {\n size: 0,\n count: 1\n };\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal ? {\n same: widthChanged,\n other: heightChanged\n } : {\n same: heightChanged,\n other: widthChanged\n };\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n positions.forEach((pos)=>{\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal ? marginForPositions([\n 'left',\n 'right'\n ]) : marginForPositions([\n 'top',\n 'bottom'\n ]);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for(i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i){\n layout = boxes[i];\n box = layout.box;\n box.update(layout.width || chartArea.w, layout.height || chartArea.h, getMargins(layout.horizontal, chartArea));\n const { same , other } = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let { x , y } = chartArea;\n for (const layout of boxes){\n const box = layout.box;\n const stack = stacks[layout.stack] || {\n count: 1,\n placed: 0,\n weight: 1\n };\n const weight = layout.stackWeight / stack.weight || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (helpers_segment.defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (helpers_segment.defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\nvar layouts = {\n addBox (chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [\n {\n z: 0,\n draw (chartArea) {\n item.draw(chartArea);\n }\n }\n ];\n };\n chart.boxes.push(item);\n },\n removeBox (chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure (chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update (chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = helpers_segment.toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n helpers_segment.each(chart.boxes, (box)=>{\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap)=>wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, helpers_segment.toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w\n };\n helpers_segment.each(boxes.chartArea, (layout)=>{\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n });\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\n const EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = (value)=>value === null || value === '';\n function initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = helpers_segment.readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = helpers_segment.readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = helpers_segment.supportsEventListenerOptions ? {\n passive: true\n} : false;\nfunction addListener(node, type, listener) {\n if (node) {\n node.addEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction removeListener(chart, type, listener) {\n if (chart && chart.canvas) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const { x , y } = helpers_segment.getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList){\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart)=>{\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && helpers_segment._getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = helpers_segment.throttled((width, height)=>{\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver((entries)=>{\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = helpers_segment.throttled((event)=>{\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart);\n addListener(canvas, type, proxy);\n return proxy;\n}\n class DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n [\n 'height',\n 'width'\n ].forEach((prop)=>{\n const value = initial[prop];\n if (helpers_segment.isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key)=>{\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return helpers_segment.getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = canvas && helpers_segment._getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!helpers_segment._isDomSupported() || typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass Element {\n static defaults = {};\n static defaultRoutes = undefined;\n x;\n y;\n active = false;\n options;\n $animations;\n tooltipPosition(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n hasValue() {\n return helpers_segment.isNumber(this.x) && helpers_segment.isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n // let's not create an object, if not needed\n return this;\n }\n const ret = {};\n props.forEach((prop)=>{\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const determinedMaxTicks = determineMaxTicks(scale);\n const ticksLimit = Math.min(tickOpts.maxTicksLimit || determinedMaxTicks, determinedMaxTicks);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, helpers_segment.isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for(i = 0, ilen = numMajorIndices - 1; i < ilen; i++){\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, helpers_segment.isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\n function calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = helpers_segment._factorize(evenMajorSpacing);\n for(let i = 0, ilen = factors.length - 1; i < ilen; i++){\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\n function getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\n function skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for(i = 0; i < ticks.length; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\n function skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = helpers_segment.valueOrDefault(majorStart, 0);\n const end = Math.min(helpers_segment.valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while(next < 0){\n count++;\n next = Math.round(start + count * spacing);\n }\n for(i = Math.max(start, 0); i < end; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\n function getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for(diff = arr[0], i = 1; i < len; ++i){\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align)=>align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset)=>edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nconst getTicksLimit = (ticksLength, maxTicksLimit)=>Math.min(maxTicksLimit || ticksLength, ticksLength);\n function sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for(; i < len; i += increment){\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\n function getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\n function garbageCollect(caches, length) {\n helpers_segment.each(caches, (cache)=>{\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for(i = 0; i < gcLen; ++i){\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\n function getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\n function getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = helpers_segment.toFont(options.font, fallback);\n const padding = helpers_segment.toPadding(options.padding);\n const lines = helpers_segment.isArray(options.text) ? options.text.length : 1;\n return lines * font.lineHeight + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return helpers_segment.createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return helpers_segment.createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = helpers_segment._toLeftRightCenter(align);\n if (reverse && position !== 'right' || !reverse && position === 'right') {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const { top , left , bottom , right , chart } = scale;\n const { chartArea , scales } = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = helpers_segment._alignStartEnd(align, left, right);\n if (helpers_segment.isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (helpers_segment.isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = helpers_segment._alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -helpers_segment.HALF_PI : helpers_segment.HALF_PI;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n}\nclass Scale extends Element {\n constructor(cfg){\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let { _userMin , _userMax , _suggestedMin , _suggestedMax } = this;\n _userMin = helpers_segment.finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = helpers_segment.finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = helpers_segment.finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = helpers_segment.finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: helpers_segment.finiteOrDefault(_userMin, _suggestedMin),\n max: helpers_segment.finiteOrDefault(_userMax, _suggestedMax),\n minDefined: helpers_segment.isNumberFinite(_userMin),\n maxDefined: helpers_segment.isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {\n min,\n max\n };\n }\n const metas = this.getMatchingVisibleMetas();\n for(let i = 0, ilen = metas.length; i < ilen; ++i){\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: helpers_segment.finiteOrDefault(min, helpers_segment.finiteOrDefault(max, min)),\n max: helpers_segment.finiteOrDefault(max, helpers_segment.finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n getLabelItems(chartArea = this.chart.chartArea) {\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n return items;\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n helpers_segment.callback(this.options.beforeUpdate, [\n this\n ]);\n }\n update(maxWidth, maxHeight, margins) {\n const { beginAtZero , grace , ticks: tickOpts } = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal() ? this.width + margins.left + margins.right : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = helpers_segment._addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n helpers_segment.callback(this.options.afterUpdate, [\n this\n ]);\n }\n beforeSetDimensions() {\n helpers_segment.callback(this.options.beforeSetDimensions, [\n this\n ]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n helpers_segment.callback(this.options.afterSetDimensions, [\n this\n ]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n helpers_segment.callback(this.options[name], [\n this\n ]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n helpers_segment.callback(this.options.beforeTickToLabelConversion, [\n this\n ]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n tick = ticks[i];\n tick.label = helpers_segment.callback(tickOpts.callback, [\n tick.value,\n i,\n ticks\n ], this);\n }\n }\n afterTickToLabelConversion() {\n helpers_segment.callback(this.options.afterTickToLabelConversion, [\n this\n ]);\n }\n beforeCalculateLabelRotation() {\n helpers_segment.callback(this.options.beforeCalculateLabelRotation, [\n this\n ]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = getTicksLimit(this.ticks.length, options.ticks.maxTicksLimit);\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = helpers_segment._limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid) - tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = helpers_segment.toDegrees(Math.min(Math.asin(helpers_segment._limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)), Math.asin(helpers_segment._limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(helpers_segment._limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n helpers_segment.callback(this.options.afterCalculateLabelRotation, [\n this\n ]);\n }\n afterAutoSkip() {}\n beforeFit() {\n helpers_segment.callback(this.options.beforeFit, [\n this\n ]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const { chart , options: { ticks: tickOpts , title: titleOpts , grid: gridOpts } } = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const { first , last , widest , highest } = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = helpers_segment.toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const { ticks: { align , padding } , position } = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n helpers_segment.callback(this.options.afterFit, [\n this\n ]);\n }\n isHorizontal() {\n const { axis , position } = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (helpers_segment.isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length, this.options.ticks.maxTicksLimit);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length, maxTicksLimit) {\n const { ctx , _longestTextCache: caches } = this;\n const widths = [];\n const heights = [];\n const increment = Math.floor(length / getTicksLimit(length, maxTicksLimit));\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for(i = 0; i < length; i += increment){\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {\n data: {},\n gc: []\n };\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!helpers_segment.isNullOrUndef(label) && !helpers_segment.isArray(label)) {\n width = helpers_segment._measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (helpers_segment.isArray(label)) {\n for(j = 0, jlen = label.length; j < jlen; ++j){\n nestedLabel = label[j];\n if (!helpers_segment.isNullOrUndef(nestedLabel) && !helpers_segment.isArray(nestedLabel)) {\n width = helpers_segment._measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx)=>({\n width: widths[idx] || 0,\n height: heights[idx] || 0\n });\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return helpers_segment._int16Range(this._alignToPixels ? helpers_segment._alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const { min , max } = this;\n return min < 0 && max < 0 ? max : min > 0 && max > 0 ? min : 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context || (tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context || (this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = helpers_segment.toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal() ? h * cos > w * sin ? w / cos : h / sin : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const { grid , position , border } = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = borderOpts.display ? borderOpts.width : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return helpers_segment._alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (helpers_segment.isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (helpers_segment.isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = helpers_segment.valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for(i = 0; i < ticksLength; i += step){\n const context = this.getContext(i);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndexBorder.dash || [];\n const borderDashOffset = optsAtIndexBorder.dashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = helpers_segment._alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const { position , ticks: optionTicks } = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const { align , crossAlign , padding , mirror } = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -helpers_segment.toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = (chartArea.top + chartArea.bottom) / 2 + tickAndPadding;\n } else if (helpers_segment.isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = (chartArea.left + chartArea.right) / 2 - tickAndPadding;\n } else if (helpers_segment.isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = helpers_segment.isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n if (rotation !== 0 && !optsAtIndex.showLabelBackdrop) {\n x += lineHeight / 2 * Math.sin(rotation);\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = helpers_segment.toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = textOffset - labelPadding.top;\n let left = 0 - labelPadding.left;\n switch(textBaseline){\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch(textAlign){\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n case 'inner':\n if (i === ilen - 1) {\n left -= width;\n } else if (i > 0) {\n left -= width / 2;\n }\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor\n };\n }\n items.push({\n label,\n font,\n textOffset,\n options: {\n rotation,\n color,\n strokeColor,\n strokeWidth,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [\n x,\n y\n ],\n backdrop\n }\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const { position , ticks } = this.options;\n const rotation = -helpers_segment.toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const { position , ticks: { crossAlign , mirror , padding } } = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {\n textAlign,\n x\n };\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {\n top: 0,\n left: this.left,\n bottom: chart.height,\n right: this.right\n };\n }\n if (position === 'top' || position === 'bottom') {\n return {\n top: this.top,\n left: 0,\n bottom: this.bottom,\n right: chart.width\n };\n }\n }\n drawBackground() {\n const { ctx , options: { backgroundColor } , left , top , width , height } = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex((t)=>t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style)=>{\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for(i = 0, ilen = items.length; i < ilen; ++i){\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine({\n x: item.x1,\n y: item.y1\n }, {\n x: item.x2,\n y: item.y2\n }, item);\n }\n if (grid.drawTicks) {\n drawLine({\n x: item.tx1,\n y: item.ty1\n }, {\n x: item.tx2,\n y: item.ty2\n }, {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n });\n }\n }\n }\n }\n drawBorder() {\n const { chart , ctx , options: { border , grid } } = this;\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = border.display ? borderOpts.width : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = helpers_segment._alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = helpers_segment._alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = helpers_segment._alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = helpers_segment._alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.width;\n ctx.strokeStyle = borderOpts.color;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n helpers_segment.clipArea(ctx, area);\n }\n const items = this.getLabelItems(chartArea);\n for (const item of items){\n const renderTextOptions = item.options;\n const tickFont = item.font;\n const label = item.label;\n const y = item.textOffset;\n helpers_segment.renderText(ctx, label, 0, y, tickFont, renderTextOptions);\n }\n if (area) {\n helpers_segment.unclipArea(ctx);\n }\n }\n drawTitle() {\n const { ctx , options: { position , title , reverse } } = this;\n if (!title.display) {\n return;\n }\n const font = helpers_segment.toFont(title.font);\n const padding = helpers_segment.toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || helpers_segment.isObject(position)) {\n offset += padding.bottom;\n if (helpers_segment.isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const { titleX , titleY , maxWidth , rotation } = titleArgs(this, offset, position, align);\n helpers_segment.renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = helpers_segment.valueOrDefault(opts.grid && opts.grid.z, -1);\n const bz = helpers_segment.valueOrDefault(opts.border && opts.border.z, 0);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [\n {\n z: tz,\n draw: (chartArea)=>{\n this.draw(chartArea);\n }\n }\n ];\n }\n return [\n {\n z: gz,\n draw: (chartArea)=>{\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n },\n {\n z: bz,\n draw: ()=>{\n this.drawBorder();\n }\n },\n {\n z: tz,\n draw: (chartArea)=>{\n this.drawLabels(chartArea);\n }\n }\n ];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return helpers_segment.toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override){\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n helpers_segment.defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in helpers_segment.defaults[scope]) {\n delete helpers_segment.defaults[scope][id];\n if (this.override) {\n delete helpers_segment.overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = helpers_segment.merge(Object.create(null), [\n parentScope ? helpers_segment.defaults.get(parentScope) : {},\n helpers_segment.defaults.get(scope),\n item.defaults\n ]);\n helpers_segment.defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n helpers_segment.defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach((property)=>{\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [\n scope\n ].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n helpers_segment.defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor(){\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [\n this.controllers,\n this.scales,\n this.elements\n ];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [\n ...args\n ].forEach((arg)=>{\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || reg === this.plugins && arg.id) {\n this._exec(method, reg, arg);\n } else {\n helpers_segment.each(arg, (item)=>{\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = helpers_segment._capitalize(method);\n helpers_segment.callback(component['before' + camelMethod], [], component);\n registry[method](component);\n helpers_segment.callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for(let i = 0; i < this._typedRegistries.length; i++){\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = /* #__PURE__ */ new Registry();\n\nclass PluginService {\n constructor(){\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors){\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [\n chart,\n args,\n descriptor.options\n ];\n if (helpers_segment.callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!helpers_segment.isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = helpers_segment.valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\n function allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for(let i = 0; i < keys.length; i++){\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for(let i = 0; i < local.length; i++){\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n return {\n plugins,\n localIds\n };\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, { plugins , localIds }, options, all) {\n const result = [];\n const context = chart.getContext();\n for (const plugin of plugins){\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {\n plugin,\n local: localIds[id]\n }, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, { plugin , local }, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [\n ''\n ], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = helpers_segment.defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction idMatchesAxis(id) {\n if (id === 'x' || id === 'y' || id === 'r') {\n return id;\n }\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, ...scaleOptions) {\n if (idMatchesAxis(id)) {\n return id;\n }\n for (const opts of scaleOptions){\n const axis = opts.axis || axisFromPosition(opts.position) || id.length > 1 && idMatchesAxis(id[0].toLowerCase());\n if (axis) {\n return axis;\n }\n }\n throw new Error(`Cannot determine type of '${id}' axis. Please provide 'axis' or 'position' option.`);\n}\nfunction getAxisFromDataset(id, axis, dataset) {\n if (dataset[axis + 'AxisID'] === id) {\n return {\n axis\n };\n }\n}\nfunction retrieveAxisFromDatasets(id, config) {\n if (config.data && config.data.datasets) {\n const boundDs = config.data.datasets.filter((d)=>d.xAxisID === id || d.yAxisID === id);\n if (boundDs.length) {\n return getAxisFromDataset(id, 'x', boundDs[0]) || getAxisFromDataset(id, 'y', boundDs[0]);\n }\n }\n return {};\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = helpers_segment.overrides[config.type] || {\n scales: {}\n };\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const scales = Object.create(null);\n Object.keys(configScales).forEach((id)=>{\n const scaleConf = configScales[id];\n if (!helpers_segment.isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf, retrieveAxisFromDatasets(id, config), helpers_segment.defaults.scales[scaleConf.type]);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n scales[id] = helpers_segment.mergeIf(Object.create(null), [\n {\n axis\n },\n scaleConf,\n defaultScaleOptions[axis],\n defaultScaleOptions[defaultId]\n ]);\n });\n config.data.datasets.forEach((dataset)=>{\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = helpers_segment.overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach((defaultID)=>{\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || axis;\n scales[id] = scales[id] || Object.create(null);\n helpers_segment.mergeIf(scales[id], [\n {\n axis\n },\n configScales[id],\n defaultScaleOptions[defaultID]\n ]);\n });\n });\n Object.keys(scales).forEach((key)=>{\n const scale = scales[key];\n helpers_segment.mergeIf(scale, [\n helpers_segment.defaults.scales[scale.type],\n helpers_segment.defaults.scale\n ]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = helpers_segment.valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key)=>{\n const opts = helpers_segment.resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config){\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType, ()=>[\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`, ()=>[\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`, ()=>[\n [\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]\n ]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`, ()=>[\n [\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || []\n ]\n ]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const { options , type } = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach((keys)=>{\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach((key)=>addIfFound(scopes, mainScope, key));\n }\n keys.forEach((key)=>addIfFound(scopes, options, key));\n keys.forEach((key)=>addIfFound(scopes, helpers_segment.overrides[type] || {}, key));\n keys.forEach((key)=>addIfFound(scopes, helpers_segment.defaults, key));\n keys.forEach((key)=>addIfFound(scopes, helpers_segment.descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const { options , type } = this;\n return [\n options,\n helpers_segment.overrides[type] || {},\n helpers_segment.defaults.datasets[type] || {},\n {\n type\n },\n helpers_segment.defaults,\n helpers_segment.descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = [\n ''\n ]) {\n const result = {\n $shared: true\n };\n const { resolver , subPrefixes } = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = helpers_segment.isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = helpers_segment._attachContext(resolver, context, subResolver);\n }\n for (const prop of names){\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [\n ''\n ], descriptorDefaults) {\n const { resolver } = getResolver(this._resolverCache, scopes, prefixes);\n return helpers_segment.isObject(context) ? helpers_segment._attachContext(resolver, context, undefined, descriptorDefaults) : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = helpers_segment._createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter((p)=>!p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = (value)=>helpers_segment.isObject(value) && Object.getOwnPropertyNames(value).some((key)=>helpers_segment.isFunction(value[key]));\nfunction needContext(proxy, names) {\n const { isScriptable , isIndexable } = helpers_segment._descriptors(proxy);\n for (const prop of names){\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if (scriptable && (helpers_segment.isFunction(value) || hasFunction(value)) || indexable && helpers_segment.isArray(value)) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"4.4.6\";\n\nconst KNOWN_POSITIONS = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'chartArea'\n];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1] ? a[l2] - b[l2] : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n helpers_segment.callback(animationOptions && animationOptions.onComplete, [\n context\n ], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n helpers_segment.callback(animationOptions && animationOptions.onProgress, [\n context\n ], chart);\n}\n function getCanvas(item) {\n if (helpers_segment._isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key)=>{\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c)=>c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys){\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\n function determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nfunction getSizeForArea(scale, chartArea, field) {\n return scale.options.clip ? scale[field] : chartArea[field];\n}\nfunction getDatasetArea(meta, chartArea) {\n const { xScale , yScale } = meta;\n if (xScale && yScale) {\n return {\n left: getSizeForArea(xScale, chartArea, 'left'),\n right: getSizeForArea(xScale, chartArea, 'right'),\n top: getSizeForArea(yScale, chartArea, 'top'),\n bottom: getSizeForArea(yScale, chartArea, 'bottom')\n };\n }\n return chartArea;\n}\nclass Chart {\n static defaults = helpers_segment.defaults;\n static instances = instances;\n static overrides = helpers_segment.overrides;\n static registry = registry;\n static version = version;\n static getChart = getChart;\n static register(...items) {\n registry.add(...items);\n invalidatePlugins();\n }\n static unregister(...items) {\n registry.remove(...items);\n invalidatePlugins();\n }\n constructor(item, userConfig){\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error('Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' + ' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.');\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = helpers_segment.uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = helpers_segment.debounce((mode)=>this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const { options: { aspectRatio , maintainAspectRatio } , width , height , _aspectRatio } = this;\n if (!helpers_segment.isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n get registry() {\n return registry;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n helpers_segment.retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n helpers_segment.clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {\n width,\n height\n };\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!helpers_segment.retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {\n size: newSize\n });\n helpers_segment.callback(options.onResize, [\n this,\n newSize\n ], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n helpers_segment.each(scalesOptions, (axisOptions, axisID)=>{\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id)=>{\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(Object.keys(scaleOpts).map((id)=>{\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n }));\n }\n helpers_segment.each(items, (item)=>{\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = helpers_segment.valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n helpers_segment.each(updated, (hasUpdated, id)=>{\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n helpers_segment.each(scales, (scale)=>{\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b)=>a.index - b.index);\n if (numMeta > numData) {\n for(let i = numData; i < numMeta; ++i){\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const { _metasets: metasets , data: { datasets } } = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index)=>{\n if (datasets.filter((x)=>x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for(i = 0, ilen = datasets.length; i < ilen; i++){\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const { datasetElementType , dataElementType } = helpers_segment.defaults.datasets[type];\n Object.assign(ControllerClass, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n helpers_segment.each(this.data.datasets, (dataset, datasetIndex)=>{\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; i++){\n const { controller } = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n helpers_segment.each(newControllers, (controller)=>{\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {\n mode\n });\n this._layers.sort(compare2Level('z', '_idx'));\n const { _active , _lastEvent } = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n helpers_segment.each(this.scales, (scale)=>{\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!helpers_segment.setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const { _hiddenIndices } = this;\n const changes = this._getUniformDataChanges() || [];\n for (const { method , start , count } of changes){\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx)=>new Set(_dataChanges.filter((c)=>c[0] === idx).map((c, i)=>i + ',' + c.splice(1).join(',')));\n const changeSet = makeSet(0);\n for(let i = 1; i < datasetCount; i++){\n if (!helpers_segment.setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet).map((c)=>c.split(',')).map((a)=>({\n method: a[1],\n start: +a[2],\n count: +a[3]\n }));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {\n cancelable: true\n }) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n helpers_segment.each(this.boxes, (box)=>{\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index)=>{\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this.getDatasetMeta(i).controller.configure();\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._updateDataset(i, helpers_segment.isFunction(mode) ? mode({\n datasetIndex: i\n }) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {\n mode\n });\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {\n meta,\n index,\n mode,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {\n cancelable: true\n }) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({\n chart: this\n });\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const { width , height } = this._resizeBeforeDraw;\n this._resizeBeforeDraw = null;\n this._resize(width, height);\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const layers = this._layers;\n for(i = 0; i < layers.length && layers[i].z <= 0; ++i){\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for(; i < layers.length; ++i){\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = getDatasetArea(meta, this.chartArea);\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n helpers_segment.clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n helpers_segment.unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return helpers_segment._isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter((x)=>x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = helpers_segment.createContext(null, {\n chart: this,\n type: 'chart'\n }));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (helpers_segment.defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {\n visible\n });\n this.update((ctx)=>ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for(i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const { canvas , ctx } = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n helpers_segment.clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y)=>{\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n helpers_segment.each(this.options.events, (type)=>_add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener)=>{\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height)=>{\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = ()=>{\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = ()=>{\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n helpers_segment.each(this._listeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n helpers_segment.each(this._responsiveListeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !helpers_segment._elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n isPluginEnabled(pluginId) {\n return this._plugins._cache.filter((p)=>p.plugin.id === pluginId).length === 1;\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin)=>(plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const { _active: lastActive = [] , options } = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = helpers_segment._isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n helpers_segment.callback(options.onHover, [\n e,\n active,\n this\n ], this);\n if (isClick) {\n helpers_segment.callback(options.onClick, [\n e,\n active,\n this\n ], this);\n }\n }\n const changed = !helpers_segment._elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nfunction invalidatePlugins() {\n return helpers_segment.each(Chart.instances, (chart)=>chart._plugins.invalidate());\n}\n\nfunction clipArc(ctx, element, endAngle) {\n const { startAngle , pixelMargin , x , y , outerRadius , innerRadius } = element;\n let angleMargin = pixelMargin / outerRadius;\n // Draw an inner border by clipping the arc and drawing a double-width border\n // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + helpers_segment.HALF_PI, startAngle - helpers_segment.HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return helpers_segment._readValueToProps(value, [\n 'outerStart',\n 'outerEnd',\n 'innerStart',\n 'innerEnd'\n ]);\n}\n/**\n * Parse border radius from the provided options\n */ function parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n // Outer limits are complicated. We want to compute the available angular distance at\n // a radius of outerRadius - borderRadius because for small angular distances, this term limits.\n // We compute at r = outerRadius - borderRadius because this circle defines the center of the border corners.\n //\n // If the borderRadius is large, that value can become negative.\n // This causes the outer borders to lose their radius entirely, which is rather unexpected. To solve that, if borderRadius > outerRadius\n // we know that the thickness term will dominate and compute the limits at that point\n const computeOuterLimit = (val)=>{\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return helpers_segment._limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: helpers_segment._limitValue(o.innerStart, 0, innerLimit),\n innerEnd: helpers_segment._limitValue(o.innerEnd, 0, innerLimit)\n };\n}\n/**\n * Convert (r, ðœƒ) to (x, y)\n */ function rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta)\n };\n}\n/**\n * Path the arc, respecting border radius by separating into left and right halves.\n *\n * Start End\n *\n * 1--->a--->2 Outer\n * / \\\n * 8 3\n * | |\n * | |\n * 7 4\n * \\ /\n * 6<---b<---5 Inner\n */ function pathArc(ctx, element, offset, spacing, end, circular) {\n const { x , y , startAngle: start , pixelMargin , innerRadius: innerR } = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n // When spacing is present, it is the same for all items\n // So we adjust the start and end angle of the arc such that\n // the distance is the same as it would be without the spacing\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? alpha * avNogSpacingRadius / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / helpers_segment.PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const { outerStart , outerEnd , innerStart , innerEnd } = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n if (circular) {\n // The first arc segments from point 1 to point a to point 2\n const outerMidAdjustedAngle = (outerStartAdjustedAngle + outerEndAdjustedAngle) / 2;\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerMidAdjustedAngle);\n ctx.arc(x, y, outerRadius, outerMidAdjustedAngle, outerEndAdjustedAngle);\n // The corner segment from point 2 to point 3\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + helpers_segment.HALF_PI);\n }\n // The line from point 3 to point 4\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n // The corner segment from point 4 to point 5\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + helpers_segment.HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n // The inner arc from point 5 to point b to point 6\n const innerMidAdjustedAngle = (endAngle - innerEnd / innerRadius + (startAngle + innerStart / innerRadius)) / 2;\n ctx.arc(x, y, innerRadius, endAngle - innerEnd / innerRadius, innerMidAdjustedAngle, true);\n ctx.arc(x, y, innerRadius, innerMidAdjustedAngle, startAngle + innerStart / innerRadius, true);\n // The corner segment from point 6 to point 7\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - helpers_segment.HALF_PI);\n }\n // The line from point 7 to point 8\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n // The corner segment from point 8 to point 1\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - helpers_segment.HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference } = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % helpers_segment.TAU || helpers_segment.TAU);\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\nfunction drawBorder(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference , options } = element;\n const { borderWidth , borderJoinStyle , borderDash , borderDashOffset } = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n ctx.setLineDash(borderDash || []);\n ctx.lineDashOffset = borderDashOffset;\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.stroke();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % helpers_segment.TAU || helpers_segment.TAU);\n }\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n if (!fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n }\n}\nclass ArcElement extends Element {\n static id = 'arc';\n static defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash'\n };\n circumference;\n endAngle;\n fullCircles;\n innerRadius;\n outerRadius;\n pixelMargin;\n startAngle;\n constructor(cfg){\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n const { angle , distance } = helpers_segment.getAngleFromPoint(point, {\n x: chartX,\n y: chartY\n });\n const { startAngle , endAngle , innerRadius , outerRadius , circumference } = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = (this.options.spacing + this.options.borderWidth) / 2;\n const _circumference = helpers_segment.valueOrDefault(circumference, endAngle - startAngle);\n const nonZeroBetween = helpers_segment._angleBetween(angle, startAngle, endAngle) && startAngle !== endAngle;\n const betweenAngles = _circumference >= helpers_segment.TAU || nonZeroBetween;\n const withinRadius = helpers_segment._isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return betweenAngles && withinRadius;\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , startAngle , endAngle , innerRadius , outerRadius } = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ], useFinalPosition);\n const { offset , spacing } = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const { options , circumference } = this;\n const offset = (options.offset || 0) / 4;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = options.borderAlign === 'inner' ? 0.33 : 0;\n this.fullCircles = circumference > helpers_segment.TAU ? Math.floor(circumference / helpers_segment.TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * offset, Math.sin(halfAngle) * offset);\n const fix = 1 - Math.sin(Math.min(helpers_segment.PI, circumference || 0));\n const radiusOffset = offset * fix;\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, circular);\n ctx.restore();\n }\n}\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = helpers_segment.valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(helpers_segment.valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = helpers_segment.valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = helpers_segment.valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = helpers_segment.valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = helpers_segment.valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\n function getLineMethod(options) {\n if (options.stepped) {\n return helpers_segment._steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return helpers_segment._bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const { start: paramsStart = 0 , end: paramsEnd = count - 1 } = params;\n const { start: segmentStart , end: segmentEnd } = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\n function pathSegment(ctx, line, segment, params) {\n const { points , options } = line;\n const { count , start , loop , ilen } = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let { move =true , reverse } = params || {};\n let i, point, prev;\n for(i = 0; i <= ilen; ++i){\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\n function fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const { count , start , ilen } = pathVars(points, segment, params);\n const { move =true , reverse } = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index)=>(start + (reverse ? ilen - index : index)) % count;\n const drawX = ()=>{\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for(i = 0; i <= ilen; ++i){\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\n function _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\n function _getInterpolationMethod(options) {\n if (options.stepped) {\n return helpers_segment._steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return helpers_segment._bezierInterpolation;\n }\n return helpers_segment._pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const { segments , options } = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments){\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {\n start,\n end: start + count - 1\n })) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n static id = 'line';\n static defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash' && name !== 'fill'\n };\n constructor(cfg){\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n helpers_segment._updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = helpers_segment._computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = helpers_segment._boundSegments(this, {\n property,\n start: value,\n end: value\n });\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for(i = 0, ilen = segments.length; i < ilen; ++i){\n const { start , end } = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || this.points.length - start;\n for (const segment of segments){\n loop &= segmentMethod(ctx, this, segment, {\n start,\n end: start + count - 1\n });\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const { [axis]: value } = el.getProps([\n axis\n ], useFinalPosition);\n return Math.abs(pos - value) < options.radius + options.hitRadius;\n}\nclass PointElement extends Element {\n static id = 'point';\n parsed;\n skip;\n stop;\n /**\n * @type {any}\n */ static defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n };\n /**\n * @type {any}\n */ static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2) < Math.pow(options.hitRadius + options.radius, 2);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !helpers_segment._isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n helpers_segment.drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n // @ts-expect-error Fallbacks should never be hit in practice\n return options.radius + options.hitRadius;\n }\n}\n\nfunction getBarBounds(bar, useFinalPosition) {\n const { x , y , base , width , height } = bar.getProps([\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {\n left,\n top,\n right,\n bottom\n };\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : helpers_segment._limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = helpers_segment.toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const { enableBorderRadius } = bar.getProps([\n 'enableBorderRadius'\n ]);\n const value = bar.options.borderRadius;\n const o = helpers_segment.toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || helpers_segment.isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r))\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds && (skipX || helpers_segment._isBetween(x, bounds.left, bounds.right)) && (skipY || helpers_segment._isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n function addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n static id = 'bar';\n static defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const { inflateAmount , options: { borderColor , backgroundColor } } = this;\n const { inner , outer } = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? helpers_segment.addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , base , horizontal } = this.getProps([\n 'x',\n 'y',\n 'base',\n 'horizontal'\n ], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nBarElement: BarElement,\nLineElement: LineElement,\nPointElement: PointElement\n});\n\nconst BORDER_COLORS = [\n 'rgb(54, 162, 235)',\n 'rgb(255, 99, 132)',\n 'rgb(255, 159, 64)',\n 'rgb(255, 205, 86)',\n 'rgb(75, 192, 192)',\n 'rgb(153, 102, 255)',\n 'rgb(201, 203, 207)' // grey\n];\n// Border colors with 50% transparency\nconst BACKGROUND_COLORS = /* #__PURE__ */ BORDER_COLORS.map((color)=>color.replace('rgb(', 'rgba(').replace(')', ', 0.5)'));\nfunction getBorderColor(i) {\n return BORDER_COLORS[i % BORDER_COLORS.length];\n}\nfunction getBackgroundColor(i) {\n return BACKGROUND_COLORS[i % BACKGROUND_COLORS.length];\n}\nfunction colorizeDefaultDataset(dataset, i) {\n dataset.borderColor = getBorderColor(i);\n dataset.backgroundColor = getBackgroundColor(i);\n return ++i;\n}\nfunction colorizeDoughnutDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBorderColor(i++));\n return i;\n}\nfunction colorizePolarAreaDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBackgroundColor(i++));\n return i;\n}\nfunction getColorizer(chart) {\n let i = 0;\n return (dataset, datasetIndex)=>{\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n if (controller instanceof DoughnutController) {\n i = colorizeDoughnutDataset(dataset, i);\n } else if (controller instanceof PolarAreaController) {\n i = colorizePolarAreaDataset(dataset, i);\n } else if (controller) {\n i = colorizeDefaultDataset(dataset, i);\n }\n };\n}\nfunction containsColorsDefinitions(descriptors) {\n let k;\n for(k in descriptors){\n if (descriptors[k].borderColor || descriptors[k].backgroundColor) {\n return true;\n }\n }\n return false;\n}\nfunction containsColorsDefinition(descriptor) {\n return descriptor && (descriptor.borderColor || descriptor.backgroundColor);\n}\nfunction containsDefaultColorsDefenitions() {\n return helpers_segment.defaults.borderColor !== 'rgba(0,0,0,0.1)' || helpers_segment.defaults.backgroundColor !== 'rgba(0,0,0,0.1)';\n}\nvar plugin_colors = {\n id: 'colors',\n defaults: {\n enabled: true,\n forceOverride: false\n },\n beforeLayout (chart, _args, options) {\n if (!options.enabled) {\n return;\n }\n const { data: { datasets } , options: chartOptions } = chart.config;\n const { elements } = chartOptions;\n const containsColorDefenition = containsColorsDefinitions(datasets) || containsColorsDefinition(chartOptions) || elements && containsColorsDefinitions(elements) || containsDefaultColorsDefenitions();\n if (!options.forceOverride && containsColorDefenition) {\n return;\n }\n const colorizer = getColorizer(chart);\n datasets.forEach(colorizer);\n }\n};\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for(i = 0; i < samples - 2; i++){\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for(j = avgRangeStart; j < avgRangeEnd; j++){\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const { x: pointAx , y: pointAy } = data[a];\n maxArea = area = -1;\n for(j = rangeOffs; j < rangeTo; j++){\n area = 0.5 * Math.abs((pointAx - avgX) * (data[j].y - pointAy) - (pointAx - data[j].x) * (avgY - pointAy));\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for(i = start; i < start + count; ++i){\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!helpers_segment.isNullOrUndef(minIndex) && !helpers_segment.isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: data\n });\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset)=>{\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const { iScale } = meta;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = helpers_segment._limitValue(helpers_segment._lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = helpers_segment._limitValue(helpers_segment._lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {\n start,\n count\n };\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false\n },\n beforeElementsUpdate: (chart, args, options)=>{\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex)=>{\n const { _data , indexAxis } = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (helpers_segment.resolve([\n indexAxis,\n chart.options.indexAxis\n ]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let { start , count } = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (helpers_segment.isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch(options.algorithm){\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy (chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments){\n let { start , end } = segment;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = helpers_segment._boundSegments(target, bounds);\n for (const tgt of targetSegments){\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = helpers_segment._boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources){\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = helpers_segment._normalizeAngle(start);\n end = helpers_segment._normalizeAngle(end);\n }\n return {\n property,\n start,\n end\n };\n}\nfunction _pointsFromSegments(boundary, line) {\n const { x =null , y =null } = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({ start , end })=>{\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({\n x: first.x,\n y\n });\n points.push({\n x: last.x,\n y\n });\n } else if (x !== null) {\n points.push({\n x,\n y: first.y\n });\n points.push({\n x,\n y: last.y\n });\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for(; end > start; end--){\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (helpers_segment.isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {\n tension: 0\n },\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [\n index\n ];\n let target;\n if (!propagate) {\n return fill;\n }\n while(fill !== false && visited.indexOf(fill) === -1){\n if (!helpers_segment.isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\n function _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (helpers_segment.isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (helpers_segment.isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return [\n 'origin',\n 'start',\n 'end',\n 'stack',\n 'shape'\n ].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\n function _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (helpers_segment.isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\n function _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (helpers_segment.isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\n function parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = helpers_segment.valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n\nfunction _buildStackLine(source) {\n const { scale , index , line } = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({\n x: null,\n y: scale.bottom\n }, line));\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n for(let j = segment.start; j <= segment.end; j++){\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({\n points,\n options: {}\n });\n}\n function getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for(let i = 0; i < metas.length; i++){\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\n function addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for(let j = 0; j < linesBelow.length; j++){\n const line = linesBelow[j];\n const { first , last , point } = findPoint(line, sourcePoint, 'x');\n if (!point || first && last) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\n function findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (helpers_segment._isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {\n first,\n last,\n point\n };\n}\n\nclass simpleArc {\n constructor(opts){\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const { x , y , radius } = this;\n bounds = bounds || {\n start: 0,\n end: helpers_segment.TAU\n };\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const { x , y , radius } = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n\nfunction _getTarget(source) {\n const { chart , fill , line } = source;\n if (helpers_segment.isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\n function getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const { scale ={} , fill } = source;\n const pixel = _getTargetPixel(fill, scale);\n if (helpers_segment.isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const { scale , fill } = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for(let i = 0; i < length; ++i){\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const { line , scale , axis } = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const { above =color , below =color } = fillOption || {};\n if (target && line.points.length) {\n helpers_segment.clipArea(ctx, area);\n doFill(ctx, {\n line,\n target,\n above,\n below,\n area,\n scale,\n axis\n });\n helpers_segment.unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const { line , target , above , below , area , scale } = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n clipVertical(ctx, target, area.top);\n fill(ctx, {\n line,\n target,\n color: above,\n scale,\n property\n });\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n }\n fill(ctx, {\n line,\n target,\n color: below,\n scale,\n property\n });\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const { segments , points } = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments){\n const { start , end } = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {\n move: lineLoop\n });\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const { line , target , property , color , scale } = cfg;\n const segments = _segments(line, target, property);\n for (const { source: src , target: tgt , start , end } of segments){\n const { style: { backgroundColor =color } = {} } = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {\n move: lineLoop,\n reverse: true\n });\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, bounds) {\n const { top , bottom } = scale.chart.chartArea;\n const { property , start , end } = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate (chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for(i = 0; i < count; ++i){\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for(i = 0; i < count; ++i){\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw (chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw (chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw (chart, args, options) {\n const source = args.meta.$filler;\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize)=>{\n let { boxHeight =fontSize , boxWidth =fontSize } = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b)=>a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config){\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = helpers_segment.callback(labelOpts.generateLabels, [\n this.chart\n ], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item)=>labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b)=>labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const { options , ctx } = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = helpers_segment.toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const { boxWidth , itemHeight } = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, labelFont, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const { ctx , maxWidth , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [\n 0\n ];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i)=>{\n const itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {\n left: 0,\n top,\n row,\n width: itemWidth,\n height: itemHeight\n };\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, labelFont, boxWidth, _itemHeight) {\n const { ctx , maxHeight , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i)=>{\n const { itemWidth , itemHeight } = calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight);\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {\n left,\n top: currentColHeight,\n col,\n width: itemWidth,\n height: itemHeight\n };\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const { legendHitBoxes: hitboxes , options: { align , labels: { padding } , rtl } } = this;\n const rtlHelper = helpers_segment.getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = helpers_segment._alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes){\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = helpers_segment._alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = helpers_segment._alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes){\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = helpers_segment._alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n helpers_segment.clipArea(ctx, this);\n this._draw();\n helpers_segment.unclipArea(ctx);\n }\n }\n _draw() {\n const { options: opts , columnSizes , lineWidths , ctx } = this;\n const { align , labels: labelOpts } = opts;\n const defaultColor = helpers_segment.defaults.color;\n const rtlHelper = helpers_segment.getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = helpers_segment.toFont(labelOpts.font);\n const { padding } = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const { boxWidth , boxHeight , itemHeight } = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = helpers_segment.valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = helpers_segment.valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = helpers_segment.valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = helpers_segment.valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = helpers_segment.valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = helpers_segment.valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(helpers_segment.valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n helpers_segment.drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = helpers_segment.toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n helpers_segment.addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n helpers_segment.renderText(ctx, legendItem.text, x, y + itemHeight / 2, labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: helpers_segment._alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: helpers_segment._alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n helpers_segment.overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i)=>{\n ctx.strokeStyle = legendItem.fontColor;\n ctx.fillStyle = legendItem.fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = helpers_segment._alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = helpers_segment._alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = helpers_segment._textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else if (typeof legendItem.text !== 'string') {\n const fontLineHeight = labelFont.lineHeight;\n cursor.y += calculateLegendItemHeight(legendItem, fontLineHeight) + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n helpers_segment.restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = helpers_segment.toFont(titleOpts.font);\n const titlePadding = helpers_segment.toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = helpers_segment.getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = helpers_segment._alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size)=>Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + helpers_segment._alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = helpers_segment._alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(helpers_segment._toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n helpers_segment.renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = helpers_segment.toFont(titleOpts.font);\n const titlePadding = helpers_segment.toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (helpers_segment._isBetween(x, this.left, this.right) && helpers_segment._isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for(i = 0; i < lh.length; ++i){\n hitBox = lh[i];\n if (helpers_segment._isBetween(x, hitBox.left, hitBox.left + hitBox.width) && helpers_segment._isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n helpers_segment.callback(opts.onLeave, [\n e,\n previous,\n this\n ], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n helpers_segment.callback(opts.onHover, [\n e,\n hoveredItem,\n this\n ], this);\n }\n } else if (hoveredItem) {\n helpers_segment.callback(opts.onClick, [\n e,\n hoveredItem,\n this\n ], this);\n }\n }\n}\nfunction calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight) {\n const itemWidth = calculateItemWidth(legendItem, boxWidth, labelFont, ctx);\n const itemHeight = calculateItemHeight(_itemHeight, legendItem, labelFont.lineHeight);\n return {\n itemWidth,\n itemHeight\n };\n}\nfunction calculateItemWidth(legendItem, boxWidth, labelFont, ctx) {\n let legendItemText = legendItem.text;\n if (legendItemText && typeof legendItemText !== 'string') {\n legendItemText = legendItemText.reduce((a, b)=>a.length > b.length ? a : b);\n }\n return boxWidth + labelFont.size / 2 + ctx.measureText(legendItemText).width;\n}\nfunction calculateItemHeight(_itemHeight, legendItem, fontLineHeight) {\n let itemHeight = _itemHeight;\n if (typeof legendItem.text !== 'string') {\n itemHeight = calculateLegendItemHeight(legendItem, fontLineHeight);\n }\n return itemHeight;\n}\nfunction calculateLegendItemHeight(legendItem, fontLineHeight) {\n const labelHeight = legendItem.text ? legendItem.text.length : 0;\n return fontLineHeight * labelHeight;\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start (chart, _args, options) {\n const legend = chart.legend = new Legend({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop (chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate (chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate (chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent (chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick (e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx)=>ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels (chart) {\n const datasets = chart.data.datasets;\n const { labels: { usePointStyle , pointStyle , textAlign , color , useBorderRadius , borderRadius } } = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta)=>{\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = helpers_segment.toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx)=>ctx.chart.options.color,\n display: false,\n position: 'center',\n text: ''\n }\n },\n descriptors: {\n _scriptable: (name)=>!name.startsWith('on'),\n labels: {\n _scriptable: (name)=>![\n 'generateLabels',\n 'filter',\n 'sort'\n ].includes(name)\n }\n }\n};\n\nclass Title extends Element {\n constructor(config){\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = helpers_segment.isArray(opts.text) ? opts.text.length : 1;\n this._padding = helpers_segment.toPadding(opts.padding);\n const textSize = lineCount * helpers_segment.toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const { top , left , bottom , right , options } = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = helpers_segment._alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = helpers_segment._alignStartEnd(align, bottom, top);\n rotation = helpers_segment.PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = helpers_segment._alignStartEnd(align, top, bottom);\n rotation = helpers_segment.PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = helpers_segment.toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const { titleX , titleY , maxWidth , rotation } = this._drawArgs(offset);\n helpers_segment.renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: helpers_segment._toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start (chart, _args, options) {\n createTitle(chart, options);\n },\n stop (chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate (chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold'\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start (chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop (chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate (chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal'\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst positioners = {\n average (items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let xSet = new Set();\n let y = 0;\n let count = 0;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n xSet.add(pos.x);\n y += pos.y;\n ++count;\n }\n }\n if (count === 0 || xSet.size === 0) {\n return false;\n }\n const xAverage = [\n ...xSet\n ].reduce((a, b)=>a + b) / xSet.size;\n return {\n x: xAverage,\n y: y / count\n };\n },\n nearest (items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = helpers_segment.distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (helpers_segment.isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\n function splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\n function createTooltipItem(chart, item) {\n const { element , datasetIndex , index } = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const { label , value } = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\n function getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const { body , footer , title } = tooltip;\n const { boxWidth , boxHeight } = options;\n const bodyFont = helpers_segment.toFont(options.bodyFont);\n const titleFont = helpers_segment.toFont(options.titleFont);\n const footerFont = helpers_segment.toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = helpers_segment.toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem)=>count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight + (titleLineCount - 1) * options.titleSpacing + options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight + (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight + (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop + footerLineCount * footerFont.lineHeight + (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n helpers_segment.each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n helpers_segment.each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? boxWidth + 2 + options.boxPadding : 0;\n helpers_segment.each(body, (bodyItem)=>{\n helpers_segment.each(bodyItem.before, maxLineWidth);\n helpers_segment.each(bodyItem.lines, maxLineWidth);\n helpers_segment.each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n helpers_segment.each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {\n width,\n height\n };\n}\nfunction determineYAlign(chart, size) {\n const { y , height } = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > chart.height - height / 2) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const { x , width } = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const { x , width } = size;\n const { width: chartWidth , chartArea: { left , right } } = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\n function determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let { x , width } = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= width / 2;\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let { y , height } = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= height / 2;\n }\n return y;\n}\n function getBackgroundPoint(options, size, alignment, chart) {\n const { caretSize , caretPadding , cornerRadius } = options;\n const { xAlign , yAlign } = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const { topLeft , topRight , bottomLeft , bottomRight } = helpers_segment.toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: helpers_segment._limitValue(x, 0, chart.width - size.width),\n y: helpers_segment._limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = helpers_segment.toPadding(options.padding);\n return align === 'center' ? tooltip.x + tooltip.width / 2 : align === 'right' ? tooltip.x + tooltip.width - padding.right : tooltip.x + padding.left;\n}\n function getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return helpers_segment.createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nconst defaultCallbacks = {\n beforeTitle: helpers_segment.noop,\n title (tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: helpers_segment.noop,\n beforeBody: helpers_segment.noop,\n beforeLabel: helpers_segment.noop,\n label (tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!helpers_segment.isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0\n };\n },\n labelTextColor () {\n return this.options.bodyColor;\n },\n labelPointStyle (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation\n };\n },\n afterLabel: helpers_segment.noop,\n afterBody: helpers_segment.noop,\n beforeFooter: helpers_segment.noop,\n footer: helpers_segment.noop,\n afterFooter: helpers_segment.noop\n};\n function invokeCallbackWithFallback(callbacks, name, ctx, arg) {\n const result = callbacks[name].call(ctx, arg);\n if (typeof result === 'undefined') {\n return defaultCallbacks[name].call(ctx, arg);\n }\n return result;\n}\nclass Tooltip extends Element {\n static positioners = positioners;\n constructor(config){\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context || (this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const { callbacks } = options;\n const beforeTitle = invokeCallbackWithFallback(callbacks, 'beforeTitle', this, context);\n const title = invokeCallbackWithFallback(callbacks, 'title', this, context);\n const afterTitle = invokeCallbackWithFallback(callbacks, 'afterTitle', this, context);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'beforeBody', this, tooltipItems));\n }\n getBody(tooltipItems, options) {\n const { callbacks } = options;\n const bodyItems = [];\n helpers_segment.each(tooltipItems, (context)=>{\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(invokeCallbackWithFallback(scoped, 'beforeLabel', this, context)));\n pushOrConcat(bodyItem.lines, invokeCallbackWithFallback(scoped, 'label', this, context));\n pushOrConcat(bodyItem.after, splitNewlines(invokeCallbackWithFallback(scoped, 'afterLabel', this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'afterBody', this, tooltipItems));\n }\n getFooter(tooltipItems, options) {\n const { callbacks } = options;\n const beforeFooter = invokeCallbackWithFallback(callbacks, 'beforeFooter', this, tooltipItems);\n const footer = invokeCallbackWithFallback(callbacks, 'footer', this, tooltipItems);\n const afterFooter = invokeCallbackWithFallback(callbacks, 'afterFooter', this, tooltipItems);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for(i = 0, len = active.length; i < len; ++i){\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array)=>options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b)=>options.itemSort(a, b, data));\n }\n helpers_segment.each(tooltipItems, (context)=>{\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(invokeCallbackWithFallback(scoped, 'labelColor', this, context));\n labelPointStyles.push(invokeCallbackWithFallback(scoped, 'labelPointStyle', this, context));\n labelTextColors.push(invokeCallbackWithFallback(scoped, 'labelTextColor', this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {\n chart: this.chart,\n tooltip: this,\n replay\n });\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const { xAlign , yAlign } = this;\n const { caretSize , cornerRadius } = options;\n const { topLeft , topRight , bottomLeft , bottomRight } = helpers_segment.toTRBLCorners(cornerRadius);\n const { x: ptX , y: ptY } = tooltipPoint;\n const { width , height } = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + height / 2;\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {\n x1,\n x2,\n x3,\n y1,\n y2,\n y3\n };\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = helpers_segment.getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = helpers_segment.toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColor = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const { boxHeight , boxWidth } = options;\n const bodyFont = helpers_segment.toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n helpers_segment.drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColor.borderColor;\n ctx.fillStyle = labelColor.backgroundColor;\n helpers_segment.drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = helpers_segment.isObject(labelColor.borderWidth) ? Math.max(...Object.values(labelColor.borderWidth)) : labelColor.borderWidth || 1;\n ctx.strokeStyle = labelColor.borderColor;\n ctx.setLineDash(labelColor.borderDash || []);\n ctx.lineDashOffset = labelColor.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);\n const borderRadius = helpers_segment.toTRBLCorners(labelColor.borderRadius);\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n helpers_segment.addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.beginPath();\n helpers_segment.addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const { body } = this;\n const { bodySpacing , bodyAlign , displayColors , boxHeight , boxWidth , boxPadding } = options;\n const bodyFont = helpers_segment.toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = helpers_segment.getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n helpers_segment.each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right' ? bodyAlign === 'center' ? boxWidth / 2 + boxPadding : boxWidth + 2 + boxPadding : 0;\n for(i = 0, ilen = body.length; i < ilen; ++i){\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n helpers_segment.each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for(j = 0, jlen = lines.length; j < jlen; ++j){\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n helpers_segment.each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n helpers_segment.each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = helpers_segment.getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = helpers_segment.toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const { xAlign , yAlign } = this;\n const { x , y } = pt;\n const { width , height } = tooltipSize;\n const { topLeft , topRight , bottomLeft , bottomRight } = helpers_segment.toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = helpers_segment.toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n helpers_segment.overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n helpers_segment.restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !helpers_segment._elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !helpers_segment._elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive.filter((i)=>this.chart.data.datasets[i.datasetIndex] && this.chart.getDatasetMeta(i.datasetIndex).controller.getParsed(i.index) !== undefined);\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const { caretX , caretY , options } = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit (chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({\n chart,\n options\n });\n }\n },\n beforeUpdate (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw (chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', {\n ...args,\n cancelable: true\n }) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent (chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold'\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {},\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold'\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts)=>opts.bodyFont.size,\n boxWidth: (ctx, opts)=>opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart'\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'width',\n 'height',\n 'caretX',\n 'caretY'\n ]\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: defaultCallbacks\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name)=>name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: [\n 'interaction'\n ]\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nColors: plugin_colors,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels)=>{\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({\n index,\n label: raw\n });\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max)=>index === null ? null : helpers_segment._limitValue(Math.round(index), 0, max);\nfunction _getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n}\nclass CategoryScale extends Scale {\n static id = 'category';\n static defaults = {\n ticks: {\n callback: _getLabelForValue\n }\n };\n constructor(cfg){\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const { index , label } of added){\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (helpers_segment.isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index : findOrAddLabel(labels, raw, helpers_segment.valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = min === 0 && max === labels.length - 1 ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for(let value = min; value <= max; value++){\n ticks.push({\n value\n });\n }\n return ticks;\n }\n getLabelForValue(value) {\n return _getLabelForValue.call(this, value);\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const { bounds , step , min , max , precision , count , maxTicks , maxDigits , includeBounds } = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const { min: rmin , max: rmax } = dataRange;\n const minDefined = !helpers_segment.isNullOrUndef(min);\n const maxDefined = !helpers_segment.isNullOrUndef(max);\n const countDefined = !helpers_segment.isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = helpers_segment.niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [\n {\n value: rmin\n },\n {\n value: rmax\n }\n ];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = helpers_segment.niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!helpers_segment.isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && helpers_segment.almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (helpers_segment.almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(helpers_segment._decimalPlaces(spacing), helpers_segment._decimalPlaces(niceMin));\n factor = Math.pow(10, helpers_segment.isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({\n value: min\n });\n if (niceMin < min) {\n j++;\n }\n if (helpers_segment.almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for(; j < numSpaces; ++j){\n const tickValue = Math.round((niceMin + j * spacing) * factor) / factor;\n if (maxDefined && tickValue > max) {\n break;\n }\n ticks.push({\n value: tickValue\n });\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && helpers_segment.almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({\n value: max\n });\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({\n value: niceMax\n });\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, { horizontal , minRotation }) {\n const rad = helpers_segment.toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (helpers_segment.isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const { beginAtZero } = this.options;\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (beginAtZero) {\n const minSign = helpers_segment.sign(min);\n const maxSign = helpers_segment.sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = max === 0 ? 1 : Math.abs(max * 0.05);\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let { maxTicksLimit , stepSize } = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n helpers_segment._setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return helpers_segment.formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n static id = 'linear';\n static defaults = {\n ticks: {\n callback: helpers_segment.Ticks.formatters.numeric\n }\n };\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = helpers_segment.isNumberFinite(min) ? min : 0;\n this.max = helpers_segment.isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = helpers_segment.toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\n\nconst log10Floor = (v)=>Math.floor(helpers_segment.log10(v));\nconst changeExponent = (v, m)=>Math.pow(10, log10Floor(v) + m);\nfunction isMajor(tickVal) {\n const remain = tickVal / Math.pow(10, log10Floor(tickVal));\n return remain === 1;\n}\nfunction steps(min, max, rangeExp) {\n const rangeStep = Math.pow(10, rangeExp);\n const start = Math.floor(min / rangeStep);\n const end = Math.ceil(max / rangeStep);\n return end - start;\n}\nfunction startExp(min, max) {\n const range = max - min;\n let rangeExp = log10Floor(range);\n while(steps(min, max, rangeExp) > 10){\n rangeExp++;\n }\n while(steps(min, max, rangeExp) < 10){\n rangeExp--;\n }\n return Math.min(rangeExp, log10Floor(min));\n}\n function generateTicks(generationOptions, { min , max }) {\n min = helpers_segment.finiteOrDefault(generationOptions.min, min);\n const ticks = [];\n const minExp = log10Floor(min);\n let exp = startExp(min, max);\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n const stepSize = Math.pow(10, exp);\n const base = minExp > exp ? Math.pow(10, minExp) : 0;\n const start = Math.round((min - base) * precision) / precision;\n const offset = Math.floor((min - base) / stepSize / 10) * stepSize * 10;\n let significand = Math.floor((start - offset) / Math.pow(10, exp));\n let value = helpers_segment.finiteOrDefault(generationOptions.min, Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision);\n while(value < max){\n ticks.push({\n value,\n major: isMajor(value),\n significand\n });\n if (significand >= 10) {\n significand = significand < 15 ? 15 : 20;\n } else {\n significand++;\n }\n if (significand >= 20) {\n exp++;\n significand = 2;\n precision = exp >= 0 ? 1 : precision;\n }\n value = Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision;\n }\n const lastTick = helpers_segment.finiteOrDefault(generationOptions.max, value);\n ticks.push({\n value: lastTick,\n major: isMajor(lastTick),\n significand\n });\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n static id = 'logarithmic';\n static defaults = {\n ticks: {\n callback: helpers_segment.Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n };\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [\n raw,\n index\n ]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return helpers_segment.isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = helpers_segment.isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = helpers_segment.isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n if (this._zero && this.min !== this._suggestedMin && !helpers_segment.isNumberFinite(this._userMin)) {\n this.min = min === changeExponent(this.min, 0) ? changeExponent(this.min, -1) : changeExponent(this.min, 0);\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(changeExponent(min, -1));\n setMax(changeExponent(max, +1));\n }\n }\n if (min <= 0) {\n setMin(changeExponent(max, -1));\n }\n if (max <= 0) {\n setMax(changeExponent(min, +1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n helpers_segment._setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined ? '0' : helpers_segment.formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = helpers_segment.log10(start);\n this._valueRange = helpers_segment.log10(this.max) - helpers_segment.log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min ? 0 : (helpers_segment.log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = helpers_segment.toPadding(tickOpts.backdropPadding);\n return helpers_segment.valueOrDefault(tickOpts.font && tickOpts.font.size, helpers_segment.defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = helpers_segment.isArray(label) ? label : [\n label\n ];\n return {\n w: helpers_segment._longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - size / 2,\n end: pos + size / 2\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\n function fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? helpers_segment.PI / valueCount : 0;\n for(let i = 0; i < valueCount; i++){\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = helpers_segment.toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = helpers_segment._normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(helpers_segment.toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(orig.l - limits.l, limits.r - orig.r, orig.t - limits.t, limits.b - orig.b);\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction createPointLabelItem(scale, index, itemOpts) {\n const outerDistance = scale.drawingArea;\n const { extra , additionalAngle , padding , size } = itemOpts;\n const pointLabelPosition = scale.getPointPosition(index, outerDistance + extra + padding, additionalAngle);\n const angle = Math.round(helpers_segment.toDegrees(helpers_segment._normalizeAngle(pointLabelPosition.angle + helpers_segment.HALF_PI)));\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n return {\n visible: true,\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n };\n}\nfunction isNotOverlapped(item, area) {\n if (!area) {\n return true;\n }\n const { left , top , right , bottom } = item;\n const apexesInArea = helpers_segment._isPointInArea({\n x: left,\n y: top\n }, area) || helpers_segment._isPointInArea({\n x: left,\n y: bottom\n }, area) || helpers_segment._isPointInArea({\n x: right,\n y: top\n }, area) || helpers_segment._isPointInArea({\n x: right,\n y: bottom\n }, area);\n return !apexesInArea;\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const { centerPointLabels , display } = opts.pointLabels;\n const itemOpts = {\n extra: getTickBackdropHeight(opts) / 2,\n additionalAngle: centerPointLabels ? helpers_segment.PI / valueCount : 0\n };\n let area;\n for(let i = 0; i < valueCount; i++){\n itemOpts.padding = padding[i];\n itemOpts.size = labelSizes[i];\n const item = createPointLabelItem(scale, i, itemOpts);\n items.push(item);\n if (display === 'auto') {\n item.visible = isNotOverlapped(item, area);\n if (item.visible) {\n area = item;\n }\n }\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= w / 2;\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= h / 2;\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabelBox(ctx, opts, item) {\n const { left , top , right , bottom } = item;\n const { backdropColor } = opts;\n if (!helpers_segment.isNullOrUndef(backdropColor)) {\n const borderRadius = helpers_segment.toTRBLCorners(opts.borderRadius);\n const padding = helpers_segment.toPadding(opts.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n helpers_segment.addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n}\nfunction drawPointLabels(scale, labelCount) {\n const { ctx , options: { pointLabels } } = scale;\n for(let i = labelCount - 1; i >= 0; i--){\n const item = scale._pointLabelItems[i];\n if (!item.visible) {\n continue;\n }\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n drawPointLabelBox(ctx, optsAtIndex, item);\n const plFont = helpers_segment.toFont(optsAtIndex.font);\n const { x , y , textAlign } = item;\n helpers_segment.renderText(ctx, scale._pointLabels[i], x, y + plFont.lineHeight / 2, plFont, {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n });\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const { ctx } = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, helpers_segment.TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for(let i = 1; i < labelCount; i++){\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount, borderOpts) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const { color , lineWidth } = gridLineOpts;\n if (!circular && !labelCount || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(borderOpts.dash || []);\n ctx.lineDashOffset = borderOpts.dashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return helpers_segment.createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n static id = 'radialLinear';\n static defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: helpers_segment.Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback (label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n };\n static defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n };\n static descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n };\n constructor(cfg){\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = helpers_segment.toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(false);\n this.min = helpers_segment.isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = helpers_segment.isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels().map((value, index)=>{\n const label = helpers_segment.callback(this.options.pointLabels.callback, [\n value,\n index\n ], this);\n return label || label === 0 ? label : '';\n }).filter((v, i)=>this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = helpers_segment.TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return helpers_segment._normalizeAngle(index * angleMultiplier + helpers_segment.toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (helpers_segment.isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (helpers_segment.isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - helpers_segment.HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const { left , top , right , bottom } = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom\n };\n }\n drawBackground() {\n const { backgroundColor , grid: { circular } } = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const { angleLines , grid , border } = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index)=>{\n if (index !== 0 || index === 0 && this.min < 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const context = this.getContext(index);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n drawRadiusLine(this, optsAtIndex, offset, labelCount, optsAtIndexBorder);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for(i = labelCount - 1; i >= 0; i--){\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const { color , lineWidth } = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index)=>{\n if (index === 0 && this.min >= 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = helpers_segment.toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = helpers_segment.toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(-width / 2 - padding.left, -offset - tickFont.size / 2 - padding.top, width + padding.width, tickFont.size + padding.height);\n }\n helpers_segment.renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n strokeColor: optsAtIndex.textStrokeColor,\n strokeWidth: optsAtIndex.textStrokeWidth\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\n\nconst INTERVALS = {\n millisecond: {\n common: true,\n size: 1,\n steps: 1000\n },\n second: {\n common: true,\n size: 1000,\n steps: 60\n },\n minute: {\n common: true,\n size: 60000,\n steps: 60\n },\n hour: {\n common: true,\n size: 3600000,\n steps: 24\n },\n day: {\n common: true,\n size: 86400000,\n steps: 30\n },\n week: {\n common: false,\n size: 604800000,\n steps: 4\n },\n month: {\n common: true,\n size: 2.628e9,\n steps: 12\n },\n quarter: {\n common: false,\n size: 7.884e9,\n steps: 4\n },\n year: {\n common: true,\n size: 3.154e10\n }\n};\n const UNITS = /* #__PURE__ */ Object.keys(INTERVALS);\n function sorter(a, b) {\n return a - b;\n}\n function parse(scale, input) {\n if (helpers_segment.isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const { parser , round , isoWeekday } = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!helpers_segment.isNumberFinite(value)) {\n value = typeof parser === 'string' ? adapter.parse(value, parser) : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (helpers_segment.isNumber(isoWeekday) || isoWeekday === true) ? adapter.startOf(value, 'isoWeek', isoWeekday) : adapter.startOf(value, round);\n }\n return +value;\n}\n function determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for(let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i){\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\n function determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for(let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--){\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n function determineMajorUnit(unit) {\n for(let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i){\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\n function addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const { lo , hi } = helpers_segment._lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\n function setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for(major = first; major <= last; major = +adapter.add(major, 1, majorUnit)){\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\n function ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for(i = 0; i < ilen; ++i){\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return ilen === 0 || !majorUnit ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n static id = 'time';\n static defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n callback: false,\n major: {\n enabled: false\n }\n }\n };\n constructor(props){\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts = {}) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n adapter.init(opts);\n helpers_segment.mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = helpers_segment.isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = helpers_segment.isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {\n min,\n max\n };\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = helpers_segment._filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min)) : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map((tick)=>+tick.value));\n }\n }\n initOffsets(timestamps = []) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = helpers_segment._limitValue(start, 0, limit);\n end = helpers_segment._limitValue(end, 0, limit);\n this._offsets = {\n start,\n end,\n factor: 1 / (start + 1 + end)\n };\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = helpers_segment.valueOrDefault(options.ticks.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = helpers_segment.isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for(time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++){\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort(sorter).map((x)=>+x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n format(value, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const fmt = format || formats[unit];\n return this._adapter.format(value, fmt);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formatter = options.ticks.callback;\n if (formatter) {\n return helpers_segment.callback(formatter, [\n time,\n index,\n ticks\n ], this);\n }\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n return this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = helpers_segment.toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: tickLabelWidth * cosRotation + tickFontSize * sinRotation,\n h: tickLabelWidth * sinRotation + tickFontSize * cosRotation\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [\n exampleTime\n ], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return this._cache.data = metas[0].controller.getAllParsedValues(this);\n }\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return this._cache.data = this.normalize(timestamps);\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for(i = 0, ilen = labels.length; i < ilen; ++i){\n timestamps.push(parse(this, labels[i]));\n }\n return this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps);\n }\n normalize(values) {\n return helpers_segment._arrayUnique(values.sort(sorter));\n }\n}\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({ lo , hi } = helpers_segment._lookupByKey(table, 'pos', val));\n }\n ({ pos: prevSource , time: prevTarget } = table[lo]);\n ({ pos: nextSource , time: nextTarget } = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({ lo , hi } = helpers_segment._lookupByKey(table, 'time', val));\n }\n ({ time: prevSource , pos: prevTarget } = table[lo]);\n ({ time: nextSource , pos: nextTarget } = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n static id = 'timeseries';\n static defaults = TimeScale.defaults;\n constructor(props){\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const { min , max } = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for(i = 0, ilen = timestamps.length; i < ilen; ++i){\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {\n time: min,\n pos: 0\n },\n {\n time: max,\n pos: 1\n }\n ];\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({\n time: curr,\n pos: i / (ilen - 1)\n });\n }\n }\n return table;\n }\n _generate() {\n const min = this.min;\n const max = this.max;\n let timestamps = super.getDataTimestamps();\n if (!timestamps.includes(min) || !timestamps.length) {\n timestamps.splice(0, 0, min);\n }\n if (!timestamps.includes(max) || timestamps.length === 1) {\n timestamps.push(max);\n }\n return timestamps.sort((a, b)=>a - b);\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales\n];\n\nexports.Ticks = helpers_segment.Ticks;\nexports.defaults = helpers_segment.defaults;\nexports.Animation = Animation;\nexports.Animations = Animations;\nexports.ArcElement = ArcElement;\nexports.BarController = BarController;\nexports.BarElement = BarElement;\nexports.BasePlatform = BasePlatform;\nexports.BasicPlatform = BasicPlatform;\nexports.BubbleController = BubbleController;\nexports.CategoryScale = CategoryScale;\nexports.Chart = Chart;\nexports.Colors = plugin_colors;\nexports.DatasetController = DatasetController;\nexports.Decimation = plugin_decimation;\nexports.DomPlatform = DomPlatform;\nexports.DoughnutController = DoughnutController;\nexports.Element = Element;\nexports.Filler = index;\nexports.Interaction = Interaction;\nexports.Legend = plugin_legend;\nexports.LineController = LineController;\nexports.LineElement = LineElement;\nexports.LinearScale = LinearScale;\nexports.LogarithmicScale = LogarithmicScale;\nexports.PieController = PieController;\nexports.PointElement = PointElement;\nexports.PolarAreaController = PolarAreaController;\nexports.RadarController = RadarController;\nexports.RadialLinearScale = RadialLinearScale;\nexports.Scale = Scale;\nexports.ScatterController = ScatterController;\nexports.SubTitle = plugin_subtitle;\nexports.TimeScale = TimeScale;\nexports.TimeSeriesScale = TimeSeriesScale;\nexports.Title = plugin_title;\nexports.Tooltip = plugin_tooltip;\nexports._adapters = adapters;\nexports._detectPlatform = _detectPlatform;\nexports.animator = animator;\nexports.controllers = controllers;\nexports.elements = elements;\nexports.layouts = layouts;\nexports.plugins = plugins;\nexports.registerables = registerables;\nexports.registry = registry;\nexports.scales = scales;\n//# sourceMappingURL=chart.cjs.map\n","/*!\n * Chart.js v4.4.6\n * https://www.chartjs.org\n * (c) 2024 Chart.js Contributors\n * Released under the MIT License\n */\n'use strict';\n\nvar color$1 = require('@kurkle/color');\n\n/**\n * @namespace Chart.helpers\n */ /**\n * An empty function that can be used, for example, for optional callback.\n */ function noop() {\n/* noop */ }\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */ const uid = (()=>{\n let id = 0;\n return ()=>id++;\n})();\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */ function isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value - The value to test.\n */ function isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */ function finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */ function valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : +value / dimension;\nconst toDimension = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */ function callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for(i = len - 1; i >= 0; i--){\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */ function _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for(i = 0, ilen = a0.length; i < ilen; ++i){\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */ function clone(source) {\n if (isArray(source)) {\n return source.map(clone);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for(; k < klen; ++k){\n target[keys[k]] = clone(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return [\n '__proto__',\n 'prototype',\n 'constructor'\n ].indexOf(key) === -1;\n}\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */ function _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n merge(tval, sval, options);\n } else {\n target[key] = clone(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [\n source\n ];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n let current;\n for(let i = 0; i < ilen; ++i){\n current = sources[i];\n if (!isObject(current)) {\n continue;\n }\n const keys = Object.keys(current);\n for(let k = 0, klen = keys.length; k < klen; ++k){\n merger(keys[k], target, current, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */ function _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone(sval);\n }\n}\n/**\n * @private\n */ function _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n '': (v)=>v,\n // default resolvers\n x: (o)=>o.x,\n y: (o)=>o.y\n};\n/**\n * @private\n */ function _splitKey(key) {\n const parts = key.split('.');\n const keys = [];\n let tmp = '';\n for (const part of parts){\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\nfunction _getKeyResolver(key) {\n const keys = _splitKey(key);\n return (obj)=>{\n for (const k of keys){\n if (k === '') {\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\nfunction resolveObjectKey(obj, key) {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\n/**\n * @private\n */ function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value)=>typeof value !== 'undefined';\nconst isFunction = (value)=>typeof value === 'function';\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nconst setsEqual = (a, b)=>{\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a){\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\n/**\n * @param e - The event\n * @private\n */ function _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */ const PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */ function niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */ function _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for(i = 1; i < sqrt; i++){\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b)=>a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n/**\n * @private\n */ function _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for(i = 0, ilen = array.length; i < ilen; i++){\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */ function _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while(Math.round(x * e) / e !== x){\n e *= 10;\n p++;\n }\n return p;\n}\n// Gets the angle from vertical upright to the point about a centre.\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < -0.5 * PI) {\n angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */ function _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */ function _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n/**\n * @private\n */ function _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */ function _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n/**\n * @param {number} value\n * @private\n */ function _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */ function _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index)=>table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while(hi - lo > 1){\n mid = lo + hi >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {\n lo,\n hi\n };\n}\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */ const _lookupByKey = (table, key, value, last)=>_lookup(table, value, last ? (index)=>{\n const ti = table[index][key];\n return ti < value || ti === value && table[index + 1][key] === value;\n } : (index)=>table[index][key] < value);\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */ const _rlookupByKey = (table, key, value)=>_lookup(table, value, (index)=>table[index][key] >= value);\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */ function _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while(start < end && values[start] < min){\n start++;\n }\n while(end > start && values[end - 1] > max){\n end--;\n }\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\nconst arrayEvents = [\n 'push',\n 'pop',\n 'shift',\n 'splice',\n 'unshift'\n];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [\n listener\n ]\n }\n });\n arrayEvents.forEach((key)=>{\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value (...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object)=>{\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key)=>{\n delete array[key];\n });\n delete array._chartjs;\n}\n/**\n * @param items\n */ function _arrayUnique(items) {\n const set = new Set(items);\n if (set.size === items.length) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n/**\n* Request animation polyfill\n*/ const requestAnimFrame = function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}();\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */ function throttled(fn, thisArg) {\n let argsToUse = [];\n let ticking = false;\n return function(...args) {\n // Save the args for use later\n argsToUse = args;\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, ()=>{\n ticking = false;\n fn.apply(thisArg, argsToUse);\n });\n }\n };\n}\n/**\n * Debounces calling `fn` for `delay` ms\n */ function debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */ const _toLeftRightCenter = (align)=>align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */ const _alignStartEnd = (align, start, end)=>align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */ const _textX = (align, left, right, rtl)=>{\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n/**\n * Return start and count of visible points.\n * @private\n */ function _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const { iScale , _parsed } = meta;\n const axis = iScale.axis;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(Math.min(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, axis, min).lo, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo), 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1), start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {\n start,\n count\n };\n}\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */ function _scaleRangesChanged(meta) {\n const { xScale , yScale , _scaleRanges } = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nconst atEdge = (t)=>t === 0 || t === 1;\nconst elasticIn = (t, s, p)=>-(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p)=>Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */ const effects = {\n linear: (t)=>t,\n easeInQuad: (t)=>t * t,\n easeOutQuad: (t)=>-t * (t - 2),\n easeInOutQuad: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1),\n easeInCubic: (t)=>t * t * t,\n easeOutCubic: (t)=>(t -= 1) * t * t + 1,\n easeInOutCubic: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: (t)=>t * t * t * t,\n easeOutQuart: (t)=>-((t -= 1) * t * t * t - 1),\n easeInOutQuart: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: (t)=>t * t * t * t * t,\n easeOutQuint: (t)=>(t -= 1) * t * t * t * t + 1,\n easeInOutQuint: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: (t)=>-Math.cos(t * HALF_PI) + 1,\n easeOutSine: (t)=>Math.sin(t * HALF_PI),\n easeInOutSine: (t)=>-0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: (t)=>t === 0 ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: (t)=>t === 1 ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: (t)=>atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: (t)=>t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: (t)=>Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: (t)=>(t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: (t)=>atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: (t)=>atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic (t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack (t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack (t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack (t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: (t)=>1 - effects.easeOutBounce(1 - t),\n easeOutBounce (t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < 1 / d) {\n return m * t * t;\n }\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: (t)=>t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5\n};\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : new color$1.Color(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : new color$1.Color(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst numbers = [\n 'x',\n 'y',\n 'borderWidth',\n 'radius',\n 'tension'\n];\nconst colors = [\n 'color',\n 'borderColor',\n 'backgroundColor'\n];\nfunction applyAnimationsDefaults(defaults) {\n defaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined\n });\n defaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name)=>name !== 'onProgress' && name !== 'onComplete' && name !== 'fn'\n });\n defaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n }\n });\n defaults.describe('animations', {\n _fallback: 'animation'\n });\n defaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n }\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: (v)=>v | 0\n }\n }\n }\n });\n}\n\nfunction applyLayoutsDefaults(defaults) {\n defaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n });\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst formatters = {\n values (value) {\n return isArray(value) ? value : '' + value;\n },\n numeric (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = isNaN(logDelta) ? 1 : Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {\n notation,\n minimumFractionDigits: numDecimal,\n maximumFractionDigits: numDecimal\n };\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = ticks[index].significand || tickValue / Math.pow(10, Math.floor(log10(tickValue)));\n if ([\n 1,\n 2,\n 3,\n 5,\n 10,\n 15\n ].includes(remain) || index > 0.8 * ticks.length) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\n var Ticks = {\n formatters\n};\n\nfunction applyScaleDefaults(defaults) {\n defaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n clip: true,\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options)=>options.lineWidth,\n tickColor: (_ctx, options)=>options.color,\n offset: false\n },\n border: {\n display: true,\n dash: [],\n dashOffset: 0.0,\n width: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2\n }\n });\n defaults.route('scale.ticks', 'color', '', 'color');\n defaults.route('scale.grid', 'color', '', 'borderColor');\n defaults.route('scale.border', 'color', '', 'borderColor');\n defaults.route('scale.title', 'color', '', 'color');\n defaults.describe('scale', {\n _fallback: false,\n _scriptable: (name)=>!name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name)=>name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash'\n });\n defaults.describe('scales', {\n _fallback: 'scale'\n });\n defaults.describe('scale.ticks', {\n _scriptable: (name)=>name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name)=>name !== 'backdropPadding'\n });\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\n function getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for(let i = 0, n = keys.length; i < n; ++i){\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\n class Defaults {\n constructor(_descriptors, _appliers){\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context)=>context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options)=>getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options)=>getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options)=>getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n this.apply(_appliers);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get () {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set (value) {\n this[privateName] = value;\n }\n }\n });\n }\n apply(appliers) {\n appliers.forEach((apply)=>apply(this));\n }\n}\nvar defaults = /* #__PURE__ */ new Defaults({\n _scriptable: (name)=>!name.startsWith('on'),\n _indexable: (name)=>name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false\n }\n}, [\n applyAnimationsDefaults,\n applyLayoutsDefaults,\n applyScaleDefaults\n]);\n\n/**\n * Converts the given font object into a CSS font string.\n * @param font - A font object.\n * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */ function toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n/**\n * @private\n */ function _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\n/**\n * @private\n */ // eslint-disable-next-line complexity\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for(i = 0; i < ilen; i++){\n thing = arrayOfThings[i];\n // Undefined strings and arrays should not be measured\n if (thing !== undefined && thing !== null && !isArray(thing)) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n // if it is an array lets measure each element\n // to do maybe simplify this function a bit so we can do this more recursively?\n for(j = 0, jlen = thing.length; j < jlen; j++){\n nestedThing = thing[j];\n // Undefined strings and arrays should not be measured\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for(i = 0; i < gcLen; i++){\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param chart - The chart instance.\n * @param pixel - A pixel value.\n * @param width - The width of the element.\n * @returns The aligned pixel value.\n * @private\n */ function _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n/**\n * Clears the entire canvas.\n */ function clearCanvas(canvas, ctx) {\n if (!ctx && !canvas) {\n return;\n }\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n // canvas.width and canvas.height do not consider the canvas transform,\n // while clearRect does\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n drawPointLegend(ctx, options, x, y, null);\n}\n// eslint-disable-next-line complexity\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width, xOffsetW, yOffsetW;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch(style){\n // Default includes circle\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n width = w ? w / 2 : radius;\n ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n // NOTE: the rounded rect implementation changed to use `arc` instead of\n // `quadraticCurveTo` since it generates better results when rect is\n // almost a circle. 0.516 (instead of 0.5) produces results with visually\n // closer proportion to the previous impl and it is inscribed in the\n // circle with `radius`. For more details, see the following PRs:\n // https://github.com/chartjs/Chart.js/issues/5597\n // https://github.com/chartjs/Chart.js/issues/5858\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n /* falls through */ case 'rectRot':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n /* falls through */ case 'cross':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'star':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n rad += QUARTER_PI;\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n break;\n case false:\n ctx.closePath();\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n/**\n * Returns true if the point is inside the rectangle\n * @param point - The point to test\n * @param area - The rectangle\n * @param margin - allowed margin\n * @private\n */ function _isPointInArea(point, area, margin) {\n margin = margin || 0.5; // margin - default is to match rounded decimals\n return !area || point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\n/**\n * @private\n */ function _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\n/**\n * @private\n */ function _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n /**\n * Now that IE11 support has been dropped, we can use more\n * of the TextMetrics object. The actual bounding boxes\n * are unflagged in Chrome, Firefox, Edge, and Safari so they\n * can be safely used.\n * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n */ const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction drawBackdrop(ctx, opts) {\n const oldColor = ctx.fillStyle;\n ctx.fillStyle = opts.color;\n ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n ctx.fillStyle = oldColor;\n}\n/**\n * Render text onto the canvas\n */ function renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [\n text\n ];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for(i = 0; i < lines.length; ++i){\n line = lines[i];\n if (opts.backdrop) {\n drawBackdrop(ctx, opts.backdrop);\n }\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += Number(font.lineHeight);\n }\n ctx.restore();\n}\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param ctx - Context\n * @param rect - Bounding rect\n */ function addRoundedRectPath(ctx, rect) {\n const { x , y , w , h , radius } = rect;\n // top left arc\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, 1.5 * PI, PI, true);\n // line from top left to bottom left\n ctx.lineTo(x, y + h - radius.bottomLeft);\n // bottom left arc\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n // line from bottom left to bottom right\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n // bottom right arc\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n // line from bottom right to top right\n ctx.lineTo(x + w, y + radius.topRight);\n // top right arc\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n // line from top right to top left\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n/**\n * @alias Chart.helpers.options\n * @namespace\n */ /**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */ function toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch(matches[3]){\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = (v)=>+v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value) ? objProps ? (prop)=>valueOrDefault(value[prop], value[props[prop]]) : (prop)=>value[prop] : ()=>value;\n for (const prop of keys){\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */ function toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */ function toTRBLCorners(value) {\n return _readValueToProps(value, [\n 'topLeft',\n 'topRight',\n 'bottomLeft',\n 'bottomRight'\n ]);\n}\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */ function toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */ function toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = undefined;\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */ function resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for(i = 0, ilen = inputs.length; i < ilen; ++i){\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */ function _addGrace(minmax, grace, beginAtZero) {\n const { min , max } = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add)=>beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param scopes - The option scopes to look for values, in resolution order\n * @param prefixes - The prefixes for values, in resolution order.\n * @param rootScopes - The root option scopes\n * @param fallback - Parent scopes fallback\n * @param getTarget - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */ function _createResolver(scopes, prefixes = [\n ''\n], rootScopes, fallback, getTarget = ()=>scopes[0]) {\n const finalRootScopes = rootScopes || scopes;\n if (typeof fallback === 'undefined') {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: finalRootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope)=>_createResolver([\n scope,\n ...scopes\n ], prefixes, finalRootScopes, fallback)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete target._keys; // remove cached keys\n delete scopes[0][prop]; // remove from top level scope\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop) {\n return _cached(target, prop, ()=>_resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys (target) {\n return getKeysFromAllScopes(target);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value; // set to top level scope + cache\n delete target._keys; // remove cached keys\n return true;\n }\n });\n}\n/**\n * Returns an Proxy for resolving option values with context.\n * @param proxy - The Proxy returned by `_createResolver`\n * @param context - Context object for scriptable/indexable options\n * @param subProxy - The proxy provided for scriptable options\n * @param descriptorDefaults - Defaults for descriptors\n * @private\n */ function _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx)=>_attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope)=>_attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete proxy[prop]; // remove from proxy\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop, receiver) {\n return _cached(target, prop, ()=>_resolveWithContext(target, prop, receiver));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n enumerable: true,\n configurable: true\n } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(proxy);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return Reflect.has(proxy, prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys () {\n return Reflect.ownKeys(proxy);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n proxy[prop] = value; // set to proxy\n delete target[prop]; // remove from cache\n return true;\n }\n });\n}\n/**\n * @private\n */ function _descriptors(proxy, defaults = {\n scriptable: true,\n indexable: true\n}) {\n const { _scriptable =defaults.scriptable , _indexable =defaults.indexable , _allKeys =defaults.allKeys } = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : ()=>_scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : ()=>_indexable\n };\n}\nconst readKey = (prefix, name)=>prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value)=>isObject(value) && prop !== 'adapters' && (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop) || prop === 'constructor') {\n return target[prop];\n }\n const value = resolve();\n // cache the resolved value\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n let value = _proxy[prop]; // resolve from proxy\n // resolve with context\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n // if the resolved value is an object, create a sub resolver for it\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, getValue, target, receiver) {\n const { _proxy , _context , _subProxy , _stack } = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n let value = getValue(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n // When scriptable option returns an object, create a resolver on that.\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n if (typeof _context.index !== 'undefined' && isIndexable(prop)) {\n return value[_context.index % value.length];\n } else if (isObject(value[0])) {\n // Array of objects, return array or resolvers\n const arr = value;\n const scopes = _proxy._scopes.filter((s)=>s !== arr);\n value = [];\n for (const item of arr){\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent)=>key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes){\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (typeof fallback !== 'undefined' && fallback !== key && fallback !== parentFallback) {\n // When we reach the descriptor that defines a new _fallback, return that.\n // The fallback will resume to that new scope.\n return fallback;\n }\n } else if (scope === false && typeof parentFallback !== 'undefined' && key !== parentFallback) {\n // Fallback to `false` results to `false`, when falling back to different key.\n // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [\n ...parentScopes,\n ...rootScopes\n ];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (typeof fallback !== 'undefined' && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [\n ''\n ], rootScopes, fallback, ()=>subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while(key){\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n // For array of objects, the object is used to store updated values\n return value;\n }\n return target || {};\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes){\n value = _resolve(readKey(prefix, prop), scopes);\n if (typeof value !== 'undefined') {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes){\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (typeof value !== 'undefined') {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes){\n for (const key of Object.keys(scope).filter((k)=>!k.startsWith('_'))){\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const { iScale } = meta;\n const { key ='r' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i)=>i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis)=>indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n // This function must also respect \"skipped\" points\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01; // scaling factor for triangle Ta\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n/**\n * Adjust tangents to ensure monotonic properties\n */ function monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen - 1; ++i){\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */ function splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n // Calculate slopes (deltaK) and initialize tangents (mK)\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for(i = 0, ilen = points.length; i < ilen; ++i){\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n/**\n * @private\n */ function _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n // Only consider points that are drawn in case the spanGaps option is used\n if (options.spanGaps) {\n points = points.filter((pt)=>!pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for(i = 0, ilen = points.length; i < ilen; ++i){\n point = points[i];\n controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\n/**\n * Note: typedefs are auto-exported, so use a made-up `dom` namespace where\n * necessary to avoid duplicates with `export * from './helpers`; see\n * https://github.com/microsoft/TypeScript/issues/46011\n * @typedef { import('../core/core.controller.js').default } dom.Chart\n * @typedef { import('../../types').ChartEvent } ChartEvent\n */ /**\n * @private\n */ function _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * @private\n */ function _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */ function parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element)=>element.ownerDocument.defaultView.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = [\n 'top',\n 'right',\n 'bottom',\n 'left'\n];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for(let i = 0; i < 4; i++){\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target)=>(x > 0 || y > 0) && (!target || !target.shadowRoot);\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */ function getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const { offsetX , offsetY } = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {\n x,\n y,\n box\n };\n}\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */ function getRelativePosition(event, chart) {\n if ('native' in event) {\n return event;\n }\n const { canvas , currentDevicePixelRatio } = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const { x , y , box } = getCanvasPosition(event, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let { width , height } = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect(); // this is the border box of the container\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = (v)=>Math.round(v * 10) / 10;\n// eslint-disable-next-line complexity\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let { width , height } = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n // https://github.com/chartjs/Chart.js/issues/4659\n // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n height = round1(width / 2);\n }\n const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n height = containerSize.height;\n width = round1(Math.floor(height * aspectRatio));\n }\n return {\n width,\n height\n };\n}\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */ function retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = Math.floor(chart.height);\n chart.width = Math.floor(chart.width);\n const canvas = chart.canvas;\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */ const supportsEventListenerOptions = function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive () {\n passiveSupported = true;\n return false;\n }\n };\n if (_isDomSupported()) {\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n }\n } catch (e) {\n // continue regardless of error\n }\n return passiveSupported;\n}();\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */ function readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\n/**\n * @private\n */ function _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n/**\n * @private\n */ function _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n };\n}\n/**\n * @private\n */ function _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n const cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x (x) {\n return rectX + rectX + width - x;\n },\n setWidth (w) {\n width = w;\n },\n textAlign (align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus (x, value) {\n return x - value;\n },\n leftForLtr (x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x (x) {\n return x;\n },\n setWidth (w) {},\n textAlign (align) {\n return align;\n },\n xPlus (x, value) {\n return x + value;\n },\n leftForLtr (x, _itemWidth) {\n return x;\n }\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction')\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle\n };\n }\n return {\n between: _isBetween,\n compare: (a, b)=>a - b,\n normalize: (x)=>x\n };\n}\nfunction normalizeSegment({ start , end , count , loop , style }) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const { property , start: startBound , end: endBound } = bounds;\n const { between , normalize } = propertyFn(property);\n const count = points.length;\n let { start , end , loop } = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for(i = 0, ilen = count; i < ilen; ++i){\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {\n start,\n end,\n loop,\n style: segment.style\n };\n}\n function _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [\n segment\n ];\n }\n const { property , start: startBound , end: endBound } = bounds;\n const count = points.length;\n const { compare , between , normalize } = propertyFn(property);\n const { start , end , loop , style } = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = ()=>between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = ()=>compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = ()=>inside || startIsBefore();\n const shouldStop = ()=>!inside || endIsBefore();\n for(let i = start, prev = start; i <= end; ++i){\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop,\n count,\n style\n }));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end,\n loop,\n count,\n style\n }));\n }\n return result;\n}\n function _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for(let i = 0; i < segments.length; i++){\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\n function findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while(start < count && !points[start].skip){\n start++;\n }\n }\n while(start < count && points[start].skip){\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while(end > start && points[end % count].skip){\n end--;\n }\n end %= count;\n return {\n start,\n end\n };\n}\n function solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for(end = start + 1; end <= max; ++end){\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({\n start: start % count,\n end: (end - 1) % count,\n loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop\n });\n }\n return result;\n}\n function _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const { start , end } = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [\n {\n start,\n end,\n loop\n }\n ], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n function splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n function doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const { _datasetIndex: datasetIndex , options: { spanGaps } } = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while(points[s % count].skip){\n s -= dir;\n }\n while(points[e % count].skip){\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({\n start: s % count,\n end: e % count,\n loop: l,\n style: st\n });\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments){\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for(i = start + 1; i <= segment.end; i++){\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n if (!prevStyle) {\n return false;\n }\n const cache = [];\n const replacer = function(key, value) {\n if (!isPatternOrGradient(value)) {\n return value;\n }\n if (!cache.includes(value)) {\n cache.push(value);\n }\n return cache.indexOf(value);\n };\n return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);\n}\n\nexports.HALF_PI = HALF_PI;\nexports.INFINITY = INFINITY;\nexports.PI = PI;\nexports.PITAU = PITAU;\nexports.QUARTER_PI = QUARTER_PI;\nexports.RAD_PER_DEG = RAD_PER_DEG;\nexports.TAU = TAU;\nexports.TWO_THIRDS_PI = TWO_THIRDS_PI;\nexports.Ticks = Ticks;\nexports._addGrace = _addGrace;\nexports._alignPixel = _alignPixel;\nexports._alignStartEnd = _alignStartEnd;\nexports._angleBetween = _angleBetween;\nexports._angleDiff = _angleDiff;\nexports._arrayUnique = _arrayUnique;\nexports._attachContext = _attachContext;\nexports._bezierCurveTo = _bezierCurveTo;\nexports._bezierInterpolation = _bezierInterpolation;\nexports._boundSegment = _boundSegment;\nexports._boundSegments = _boundSegments;\nexports._capitalize = _capitalize;\nexports._computeSegments = _computeSegments;\nexports._createResolver = _createResolver;\nexports._decimalPlaces = _decimalPlaces;\nexports._deprecated = _deprecated;\nexports._descriptors = _descriptors;\nexports._elementsEqual = _elementsEqual;\nexports._factorize = _factorize;\nexports._filterBetween = _filterBetween;\nexports._getParentNode = _getParentNode;\nexports._getStartAndCountOfVisiblePoints = _getStartAndCountOfVisiblePoints;\nexports._int16Range = _int16Range;\nexports._isBetween = _isBetween;\nexports._isClickEvent = _isClickEvent;\nexports._isDomSupported = _isDomSupported;\nexports._isPointInArea = _isPointInArea;\nexports._limitValue = _limitValue;\nexports._longestText = _longestText;\nexports._lookup = _lookup;\nexports._lookupByKey = _lookupByKey;\nexports._measureText = _measureText;\nexports._merger = _merger;\nexports._mergerIf = _mergerIf;\nexports._normalizeAngle = _normalizeAngle;\nexports._parseObjectDataRadialScale = _parseObjectDataRadialScale;\nexports._pointInLine = _pointInLine;\nexports._readValueToProps = _readValueToProps;\nexports._rlookupByKey = _rlookupByKey;\nexports._scaleRangesChanged = _scaleRangesChanged;\nexports._setMinAndMaxByKey = _setMinAndMaxByKey;\nexports._splitKey = _splitKey;\nexports._steppedInterpolation = _steppedInterpolation;\nexports._steppedLineTo = _steppedLineTo;\nexports._textX = _textX;\nexports._toLeftRightCenter = _toLeftRightCenter;\nexports._updateBezierControlPoints = _updateBezierControlPoints;\nexports.addRoundedRectPath = addRoundedRectPath;\nexports.almostEquals = almostEquals;\nexports.almostWhole = almostWhole;\nexports.callback = callback;\nexports.clearCanvas = clearCanvas;\nexports.clipArea = clipArea;\nexports.clone = clone;\nexports.color = color;\nexports.createContext = createContext;\nexports.debounce = debounce;\nexports.defaults = defaults;\nexports.defined = defined;\nexports.descriptors = descriptors;\nexports.distanceBetweenPoints = distanceBetweenPoints;\nexports.drawPoint = drawPoint;\nexports.drawPointLegend = drawPointLegend;\nexports.each = each;\nexports.effects = effects;\nexports.finiteOrDefault = finiteOrDefault;\nexports.fontString = fontString;\nexports.formatNumber = formatNumber;\nexports.getAngleFromPoint = getAngleFromPoint;\nexports.getHoverColor = getHoverColor;\nexports.getMaximumSize = getMaximumSize;\nexports.getRelativePosition = getRelativePosition;\nexports.getRtlAdapter = getRtlAdapter;\nexports.getStyle = getStyle;\nexports.isArray = isArray;\nexports.isFunction = isFunction;\nexports.isNullOrUndef = isNullOrUndef;\nexports.isNumber = isNumber;\nexports.isNumberFinite = isNumberFinite;\nexports.isObject = isObject;\nexports.isPatternOrGradient = isPatternOrGradient;\nexports.listenArrayEvents = listenArrayEvents;\nexports.log10 = log10;\nexports.merge = merge;\nexports.mergeIf = mergeIf;\nexports.niceNum = niceNum;\nexports.noop = noop;\nexports.overrideTextDirection = overrideTextDirection;\nexports.overrides = overrides;\nexports.readUsedSize = readUsedSize;\nexports.renderText = renderText;\nexports.requestAnimFrame = requestAnimFrame;\nexports.resolve = resolve;\nexports.resolveObjectKey = resolveObjectKey;\nexports.restoreTextDirection = restoreTextDirection;\nexports.retinaScale = retinaScale;\nexports.setsEqual = setsEqual;\nexports.sign = sign;\nexports.splineCurve = splineCurve;\nexports.splineCurveMonotone = splineCurveMonotone;\nexports.supportsEventListenerOptions = supportsEventListenerOptions;\nexports.throttled = throttled;\nexports.toDegrees = toDegrees;\nexports.toDimension = toDimension;\nexports.toFont = toFont;\nexports.toFontString = toFontString;\nexports.toLineHeight = toLineHeight;\nexports.toPadding = toPadding;\nexports.toPercentage = toPercentage;\nexports.toRadians = toRadians;\nexports.toTRBL = toTRBL;\nexports.toTRBLCorners = toTRBLCorners;\nexports.uid = uid;\nexports.unclipArea = unclipArea;\nexports.unlistenArrayEvents = unlistenArrayEvents;\nexports.valueOrDefault = valueOrDefault;\n//# sourceMappingURL=helpers.segment.cjs.map\n","/*!\n * Chart.js v4.4.6\n * https://www.chartjs.org\n * (c) 2024 Chart.js Contributors\n * Released under the MIT License\n */\n'use strict';\n\nvar helpers_segment = require('./chunks/helpers.segment.cjs');\nrequire('@kurkle/color');\n\n\n\nexports.HALF_PI = helpers_segment.HALF_PI;\nexports.INFINITY = helpers_segment.INFINITY;\nexports.PI = helpers_segment.PI;\nexports.PITAU = helpers_segment.PITAU;\nexports.QUARTER_PI = helpers_segment.QUARTER_PI;\nexports.RAD_PER_DEG = helpers_segment.RAD_PER_DEG;\nexports.TAU = helpers_segment.TAU;\nexports.TWO_THIRDS_PI = helpers_segment.TWO_THIRDS_PI;\nexports._addGrace = helpers_segment._addGrace;\nexports._alignPixel = helpers_segment._alignPixel;\nexports._alignStartEnd = helpers_segment._alignStartEnd;\nexports._angleBetween = helpers_segment._angleBetween;\nexports._angleDiff = helpers_segment._angleDiff;\nexports._arrayUnique = helpers_segment._arrayUnique;\nexports._attachContext = helpers_segment._attachContext;\nexports._bezierCurveTo = helpers_segment._bezierCurveTo;\nexports._bezierInterpolation = helpers_segment._bezierInterpolation;\nexports._boundSegment = helpers_segment._boundSegment;\nexports._boundSegments = helpers_segment._boundSegments;\nexports._capitalize = helpers_segment._capitalize;\nexports._computeSegments = helpers_segment._computeSegments;\nexports._createResolver = helpers_segment._createResolver;\nexports._decimalPlaces = helpers_segment._decimalPlaces;\nexports._deprecated = helpers_segment._deprecated;\nexports._descriptors = helpers_segment._descriptors;\nexports._elementsEqual = helpers_segment._elementsEqual;\nexports._factorize = helpers_segment._factorize;\nexports._filterBetween = helpers_segment._filterBetween;\nexports._getParentNode = helpers_segment._getParentNode;\nexports._getStartAndCountOfVisiblePoints = helpers_segment._getStartAndCountOfVisiblePoints;\nexports._int16Range = helpers_segment._int16Range;\nexports._isBetween = helpers_segment._isBetween;\nexports._isClickEvent = helpers_segment._isClickEvent;\nexports._isDomSupported = helpers_segment._isDomSupported;\nexports._isPointInArea = helpers_segment._isPointInArea;\nexports._limitValue = helpers_segment._limitValue;\nexports._longestText = helpers_segment._longestText;\nexports._lookup = helpers_segment._lookup;\nexports._lookupByKey = helpers_segment._lookupByKey;\nexports._measureText = helpers_segment._measureText;\nexports._merger = helpers_segment._merger;\nexports._mergerIf = helpers_segment._mergerIf;\nexports._normalizeAngle = helpers_segment._normalizeAngle;\nexports._parseObjectDataRadialScale = helpers_segment._parseObjectDataRadialScale;\nexports._pointInLine = helpers_segment._pointInLine;\nexports._readValueToProps = helpers_segment._readValueToProps;\nexports._rlookupByKey = helpers_segment._rlookupByKey;\nexports._scaleRangesChanged = helpers_segment._scaleRangesChanged;\nexports._setMinAndMaxByKey = helpers_segment._setMinAndMaxByKey;\nexports._splitKey = helpers_segment._splitKey;\nexports._steppedInterpolation = helpers_segment._steppedInterpolation;\nexports._steppedLineTo = helpers_segment._steppedLineTo;\nexports._textX = helpers_segment._textX;\nexports._toLeftRightCenter = helpers_segment._toLeftRightCenter;\nexports._updateBezierControlPoints = helpers_segment._updateBezierControlPoints;\nexports.addRoundedRectPath = helpers_segment.addRoundedRectPath;\nexports.almostEquals = helpers_segment.almostEquals;\nexports.almostWhole = helpers_segment.almostWhole;\nexports.callback = helpers_segment.callback;\nexports.clearCanvas = helpers_segment.clearCanvas;\nexports.clipArea = helpers_segment.clipArea;\nexports.clone = helpers_segment.clone;\nexports.color = helpers_segment.color;\nexports.createContext = helpers_segment.createContext;\nexports.debounce = helpers_segment.debounce;\nexports.defined = helpers_segment.defined;\nexports.distanceBetweenPoints = helpers_segment.distanceBetweenPoints;\nexports.drawPoint = helpers_segment.drawPoint;\nexports.drawPointLegend = helpers_segment.drawPointLegend;\nexports.each = helpers_segment.each;\nexports.easingEffects = helpers_segment.effects;\nexports.finiteOrDefault = helpers_segment.finiteOrDefault;\nexports.fontString = helpers_segment.fontString;\nexports.formatNumber = helpers_segment.formatNumber;\nexports.getAngleFromPoint = helpers_segment.getAngleFromPoint;\nexports.getHoverColor = helpers_segment.getHoverColor;\nexports.getMaximumSize = helpers_segment.getMaximumSize;\nexports.getRelativePosition = helpers_segment.getRelativePosition;\nexports.getRtlAdapter = helpers_segment.getRtlAdapter;\nexports.getStyle = helpers_segment.getStyle;\nexports.isArray = helpers_segment.isArray;\nexports.isFinite = helpers_segment.isNumberFinite;\nexports.isFunction = helpers_segment.isFunction;\nexports.isNullOrUndef = helpers_segment.isNullOrUndef;\nexports.isNumber = helpers_segment.isNumber;\nexports.isObject = helpers_segment.isObject;\nexports.isPatternOrGradient = helpers_segment.isPatternOrGradient;\nexports.listenArrayEvents = helpers_segment.listenArrayEvents;\nexports.log10 = helpers_segment.log10;\nexports.merge = helpers_segment.merge;\nexports.mergeIf = helpers_segment.mergeIf;\nexports.niceNum = helpers_segment.niceNum;\nexports.noop = helpers_segment.noop;\nexports.overrideTextDirection = helpers_segment.overrideTextDirection;\nexports.readUsedSize = helpers_segment.readUsedSize;\nexports.renderText = helpers_segment.renderText;\nexports.requestAnimFrame = helpers_segment.requestAnimFrame;\nexports.resolve = helpers_segment.resolve;\nexports.resolveObjectKey = helpers_segment.resolveObjectKey;\nexports.restoreTextDirection = helpers_segment.restoreTextDirection;\nexports.retinaScale = helpers_segment.retinaScale;\nexports.setsEqual = helpers_segment.setsEqual;\nexports.sign = helpers_segment.sign;\nexports.splineCurve = helpers_segment.splineCurve;\nexports.splineCurveMonotone = helpers_segment.splineCurveMonotone;\nexports.supportsEventListenerOptions = helpers_segment.supportsEventListenerOptions;\nexports.throttled = helpers_segment.throttled;\nexports.toDegrees = helpers_segment.toDegrees;\nexports.toDimension = helpers_segment.toDimension;\nexports.toFont = helpers_segment.toFont;\nexports.toFontString = helpers_segment.toFontString;\nexports.toLineHeight = helpers_segment.toLineHeight;\nexports.toPadding = helpers_segment.toPadding;\nexports.toPercentage = helpers_segment.toPercentage;\nexports.toRadians = helpers_segment.toRadians;\nexports.toTRBL = helpers_segment.toTRBL;\nexports.toTRBLCorners = helpers_segment.toTRBLCorners;\nexports.uid = helpers_segment.uid;\nexports.unclipArea = helpers_segment.unclipArea;\nexports.unlistenArrayEvents = helpers_segment.unlistenArrayEvents;\nexports.valueOrDefault = helpers_segment.valueOrDefault;\n//# sourceMappingURL=helpers.cjs.map\n","module.exports = require('../dist/helpers.cjs');\n","/*!\n * chartjs-adapter-moment v1.0.1\n * https://www.chartjs.org\n * (c) 2022 chartjs-adapter-moment Contributors\n * Released under the MIT license\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? factory(require('moment'), require('chart.js')) :\ntypeof define === 'function' && define.amd ? define(['moment', 'chart.js'], factory) :\n(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.moment, global.Chart));\n}(this, (function (moment, chart_js) { 'use strict';\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);\n\nconst FORMATS = {\n datetime: 'MMM D, YYYY, h:mm:ss a',\n millisecond: 'h:mm:ss.SSS a',\n second: 'h:mm:ss a',\n minute: 'h:mm a',\n hour: 'hA',\n day: 'MMM D',\n week: 'll',\n month: 'MMM YYYY',\n quarter: '[Q]Q - YYYY',\n year: 'YYYY'\n};\n\nchart_js._adapters._date.override(typeof moment__default['default'] === 'function' ? {\n _id: 'moment', // DEBUG ONLY\n\n formats: function() {\n return FORMATS;\n },\n\n parse: function(value, format) {\n if (typeof value === 'string' && typeof format === 'string') {\n value = moment__default['default'](value, format);\n } else if (!(value instanceof moment__default['default'])) {\n value = moment__default['default'](value);\n }\n return value.isValid() ? value.valueOf() : null;\n },\n\n format: function(time, format) {\n return moment__default['default'](time).format(format);\n },\n\n add: function(time, amount, unit) {\n return moment__default['default'](time).add(amount, unit).valueOf();\n },\n\n diff: function(max, min, unit) {\n return moment__default['default'](max).diff(moment__default['default'](min), unit);\n },\n\n startOf: function(time, unit, weekday) {\n time = moment__default['default'](time);\n if (unit === 'isoWeek') {\n weekday = Math.trunc(Math.min(Math.max(0, weekday), 6));\n return time.isoWeekday(weekday).startOf('day').valueOf();\n }\n return time.startOf(unit).valueOf();\n },\n\n endOf: function(time, unit) {\n return moment__default['default'](time).endOf(unit).valueOf();\n }\n} : {});\n\n})));\n","/*!\n * chartjs-plugin-datalabels v2.2.0\n * https://chartjs-plugin-datalabels.netlify.app\n * (c) 2017-2022 chartjs-plugin-datalabels contributors\n * Released under the MIT license\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('chart.js/helpers'), require('chart.js')) :\ntypeof define === 'function' && define.amd ? define(['chart.js/helpers', 'chart.js'], factory) :\n(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ChartDataLabels = factory(global.Chart.helpers, global.Chart));\n})(this, (function (helpers, chart_js) { 'use strict';\n\nvar devicePixelRatio = (function() {\n if (typeof window !== 'undefined') {\n if (window.devicePixelRatio) {\n return window.devicePixelRatio;\n }\n\n // devicePixelRatio is undefined on IE10\n // https://stackoverflow.com/a/20204180/8837887\n // https://github.com/chartjs/chartjs-plugin-datalabels/issues/85\n var screen = window.screen;\n if (screen) {\n return (screen.deviceXDPI || 1) / (screen.logicalXDPI || 1);\n }\n }\n\n return 1;\n}());\n\nvar utils = {\n // @todo move this in Chart.helpers.toTextLines\n toTextLines: function(inputs) {\n var lines = [];\n var input;\n\n inputs = [].concat(inputs);\n while (inputs.length) {\n input = inputs.pop();\n if (typeof input === 'string') {\n lines.unshift.apply(lines, input.split('\\n'));\n } else if (Array.isArray(input)) {\n inputs.push.apply(inputs, input);\n } else if (!helpers.isNullOrUndef(inputs)) {\n lines.unshift('' + input);\n }\n }\n\n return lines;\n },\n\n // @todo move this in Chart.helpers.canvas.textSize\n // @todo cache calls of measureText if font doesn't change?!\n textSize: function(ctx, lines, font) {\n var items = [].concat(lines);\n var ilen = items.length;\n var prev = ctx.font;\n var width = 0;\n var i;\n\n ctx.font = font.string;\n\n for (i = 0; i < ilen; ++i) {\n width = Math.max(ctx.measureText(items[i]).width, width);\n }\n\n ctx.font = prev;\n\n return {\n height: ilen * font.lineHeight,\n width: width\n };\n },\n\n /**\n * Returns value bounded by min and max. This is equivalent to max(min, min(value, max)).\n * @todo move this method in Chart.helpers.bound\n * https://doc.qt.io/qt-5/qtglobal.html#qBound\n */\n bound: function(min, value, max) {\n return Math.max(min, Math.min(value, max));\n },\n\n /**\n * Returns an array of pair [value, state] where state is:\n * * -1: value is only in a0 (removed)\n * * 1: value is only in a1 (added)\n */\n arrayDiff: function(a0, a1) {\n var prev = a0.slice();\n var updates = [];\n var i, j, ilen, v;\n\n for (i = 0, ilen = a1.length; i < ilen; ++i) {\n v = a1[i];\n j = prev.indexOf(v);\n\n if (j === -1) {\n updates.push([v, 1]);\n } else {\n prev.splice(j, 1);\n }\n }\n\n for (i = 0, ilen = prev.length; i < ilen; ++i) {\n updates.push([prev[i], -1]);\n }\n\n return updates;\n },\n\n /**\n * https://github.com/chartjs/chartjs-plugin-datalabels/issues/70\n */\n rasterize: function(v) {\n return Math.round(v * devicePixelRatio) / devicePixelRatio;\n }\n};\n\nfunction orient(point, origin) {\n var x0 = origin.x;\n var y0 = origin.y;\n\n if (x0 === null) {\n return {x: 0, y: -1};\n }\n if (y0 === null) {\n return {x: 1, y: 0};\n }\n\n var dx = point.x - x0;\n var dy = point.y - y0;\n var ln = Math.sqrt(dx * dx + dy * dy);\n\n return {\n x: ln ? dx / ln : 0,\n y: ln ? dy / ln : -1\n };\n}\n\nfunction aligned(x, y, vx, vy, align) {\n switch (align) {\n case 'center':\n vx = vy = 0;\n break;\n case 'bottom':\n vx = 0;\n vy = 1;\n break;\n case 'right':\n vx = 1;\n vy = 0;\n break;\n case 'left':\n vx = -1;\n vy = 0;\n break;\n case 'top':\n vx = 0;\n vy = -1;\n break;\n case 'start':\n vx = -vx;\n vy = -vy;\n break;\n case 'end':\n // keep natural orientation\n break;\n default:\n // clockwise rotation (in degree)\n align *= (Math.PI / 180);\n vx = Math.cos(align);\n vy = Math.sin(align);\n break;\n }\n\n return {\n x: x,\n y: y,\n vx: vx,\n vy: vy\n };\n}\n\n// Line clipping (Cohen–Sutherland algorithm)\n// https://en.wikipedia.org/wiki/Cohen–Sutherland_algorithm\n\nvar R_INSIDE = 0;\nvar R_LEFT = 1;\nvar R_RIGHT = 2;\nvar R_BOTTOM = 4;\nvar R_TOP = 8;\n\nfunction region(x, y, rect) {\n var res = R_INSIDE;\n\n if (x < rect.left) {\n res |= R_LEFT;\n } else if (x > rect.right) {\n res |= R_RIGHT;\n }\n if (y < rect.top) {\n res |= R_TOP;\n } else if (y > rect.bottom) {\n res |= R_BOTTOM;\n }\n\n return res;\n}\n\nfunction clipped(segment, area) {\n var x0 = segment.x0;\n var y0 = segment.y0;\n var x1 = segment.x1;\n var y1 = segment.y1;\n var r0 = region(x0, y0, area);\n var r1 = region(x1, y1, area);\n var r, x, y;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (!(r0 | r1) || (r0 & r1)) {\n // both points inside or on the same side: no clipping\n break;\n }\n\n // at least one point is outside\n r = r0 || r1;\n\n if (r & R_TOP) {\n x = x0 + (x1 - x0) * (area.top - y0) / (y1 - y0);\n y = area.top;\n } else if (r & R_BOTTOM) {\n x = x0 + (x1 - x0) * (area.bottom - y0) / (y1 - y0);\n y = area.bottom;\n } else if (r & R_RIGHT) {\n y = y0 + (y1 - y0) * (area.right - x0) / (x1 - x0);\n x = area.right;\n } else if (r & R_LEFT) {\n y = y0 + (y1 - y0) * (area.left - x0) / (x1 - x0);\n x = area.left;\n }\n\n if (r === r0) {\n x0 = x;\n y0 = y;\n r0 = region(x0, y0, area);\n } else {\n x1 = x;\n y1 = y;\n r1 = region(x1, y1, area);\n }\n }\n\n return {\n x0: x0,\n x1: x1,\n y0: y0,\n y1: y1\n };\n}\n\nfunction compute$1(range, config) {\n var anchor = config.anchor;\n var segment = range;\n var x, y;\n\n if (config.clamp) {\n segment = clipped(segment, config.area);\n }\n\n if (anchor === 'start') {\n x = segment.x0;\n y = segment.y0;\n } else if (anchor === 'end') {\n x = segment.x1;\n y = segment.y1;\n } else {\n x = (segment.x0 + segment.x1) / 2;\n y = (segment.y0 + segment.y1) / 2;\n }\n\n return aligned(x, y, range.vx, range.vy, config.align);\n}\n\nvar positioners = {\n arc: function(el, config) {\n var angle = (el.startAngle + el.endAngle) / 2;\n var vx = Math.cos(angle);\n var vy = Math.sin(angle);\n var r0 = el.innerRadius;\n var r1 = el.outerRadius;\n\n return compute$1({\n x0: el.x + vx * r0,\n y0: el.y + vy * r0,\n x1: el.x + vx * r1,\n y1: el.y + vy * r1,\n vx: vx,\n vy: vy\n }, config);\n },\n\n point: function(el, config) {\n var v = orient(el, config.origin);\n var rx = v.x * el.options.radius;\n var ry = v.y * el.options.radius;\n\n return compute$1({\n x0: el.x - rx,\n y0: el.y - ry,\n x1: el.x + rx,\n y1: el.y + ry,\n vx: v.x,\n vy: v.y\n }, config);\n },\n\n bar: function(el, config) {\n var v = orient(el, config.origin);\n var x = el.x;\n var y = el.y;\n var sx = 0;\n var sy = 0;\n\n if (el.horizontal) {\n x = Math.min(el.x, el.base);\n sx = Math.abs(el.base - el.x);\n } else {\n y = Math.min(el.y, el.base);\n sy = Math.abs(el.base - el.y);\n }\n\n return compute$1({\n x0: x,\n y0: y + sy,\n x1: x + sx,\n y1: y,\n vx: v.x,\n vy: v.y\n }, config);\n },\n\n fallback: function(el, config) {\n var v = orient(el, config.origin);\n\n return compute$1({\n x0: el.x,\n y0: el.y,\n x1: el.x + (el.width || 0),\n y1: el.y + (el.height || 0),\n vx: v.x,\n vy: v.y\n }, config);\n }\n};\n\nvar rasterize = utils.rasterize;\n\nfunction boundingRects(model) {\n var borderWidth = model.borderWidth || 0;\n var padding = model.padding;\n var th = model.size.height;\n var tw = model.size.width;\n var tx = -tw / 2;\n var ty = -th / 2;\n\n return {\n frame: {\n x: tx - padding.left - borderWidth,\n y: ty - padding.top - borderWidth,\n w: tw + padding.width + borderWidth * 2,\n h: th + padding.height + borderWidth * 2\n },\n text: {\n x: tx,\n y: ty,\n w: tw,\n h: th\n }\n };\n}\n\nfunction getScaleOrigin(el, context) {\n var scale = context.chart.getDatasetMeta(context.datasetIndex).vScale;\n\n if (!scale) {\n return null;\n }\n\n if (scale.xCenter !== undefined && scale.yCenter !== undefined) {\n return {x: scale.xCenter, y: scale.yCenter};\n }\n\n var pixel = scale.getBasePixel();\n return el.horizontal ?\n {x: pixel, y: null} :\n {x: null, y: pixel};\n}\n\nfunction getPositioner(el) {\n if (el instanceof chart_js.ArcElement) {\n return positioners.arc;\n }\n if (el instanceof chart_js.PointElement) {\n return positioners.point;\n }\n if (el instanceof chart_js.BarElement) {\n return positioners.bar;\n }\n return positioners.fallback;\n}\n\nfunction drawRoundedRect(ctx, x, y, w, h, radius) {\n var HALF_PI = Math.PI / 2;\n\n if (radius) {\n var r = Math.min(radius, h / 2, w / 2);\n var left = x + r;\n var top = y + r;\n var right = x + w - r;\n var bottom = y + h - r;\n\n ctx.moveTo(x, top);\n if (left < right && top < bottom) {\n ctx.arc(left, top, r, -Math.PI, -HALF_PI);\n ctx.arc(right, top, r, -HALF_PI, 0);\n ctx.arc(right, bottom, r, 0, HALF_PI);\n ctx.arc(left, bottom, r, HALF_PI, Math.PI);\n } else if (left < right) {\n ctx.moveTo(left, y);\n ctx.arc(right, top, r, -HALF_PI, HALF_PI);\n ctx.arc(left, top, r, HALF_PI, Math.PI + HALF_PI);\n } else if (top < bottom) {\n ctx.arc(left, top, r, -Math.PI, 0);\n ctx.arc(left, bottom, r, 0, Math.PI);\n } else {\n ctx.arc(left, top, r, -Math.PI, Math.PI);\n }\n ctx.closePath();\n ctx.moveTo(x, y);\n } else {\n ctx.rect(x, y, w, h);\n }\n}\n\nfunction drawFrame(ctx, rect, model) {\n var bgColor = model.backgroundColor;\n var borderColor = model.borderColor;\n var borderWidth = model.borderWidth;\n\n if (!bgColor && (!borderColor || !borderWidth)) {\n return;\n }\n\n ctx.beginPath();\n\n drawRoundedRect(\n ctx,\n rasterize(rect.x) + borderWidth / 2,\n rasterize(rect.y) + borderWidth / 2,\n rasterize(rect.w) - borderWidth,\n rasterize(rect.h) - borderWidth,\n model.borderRadius);\n\n ctx.closePath();\n\n if (bgColor) {\n ctx.fillStyle = bgColor;\n ctx.fill();\n }\n\n if (borderColor && borderWidth) {\n ctx.strokeStyle = borderColor;\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = 'miter';\n ctx.stroke();\n }\n}\n\nfunction textGeometry(rect, align, font) {\n var h = font.lineHeight;\n var w = rect.w;\n var x = rect.x;\n var y = rect.y + h / 2;\n\n if (align === 'center') {\n x += w / 2;\n } else if (align === 'end' || align === 'right') {\n x += w;\n }\n\n return {\n h: h,\n w: w,\n x: x,\n y: y\n };\n}\n\nfunction drawTextLine(ctx, text, cfg) {\n var shadow = ctx.shadowBlur;\n var stroked = cfg.stroked;\n var x = rasterize(cfg.x);\n var y = rasterize(cfg.y);\n var w = rasterize(cfg.w);\n\n if (stroked) {\n ctx.strokeText(text, x, y, w);\n }\n\n if (cfg.filled) {\n if (shadow && stroked) {\n // Prevent drawing shadow on both the text stroke and fill, so\n // if the text is stroked, remove the shadow for the text fill.\n ctx.shadowBlur = 0;\n }\n\n ctx.fillText(text, x, y, w);\n\n if (shadow && stroked) {\n ctx.shadowBlur = shadow;\n }\n }\n}\n\nfunction drawText(ctx, lines, rect, model) {\n var align = model.textAlign;\n var color = model.color;\n var filled = !!color;\n var font = model.font;\n var ilen = lines.length;\n var strokeColor = model.textStrokeColor;\n var strokeWidth = model.textStrokeWidth;\n var stroked = strokeColor && strokeWidth;\n var i;\n\n if (!ilen || (!filled && !stroked)) {\n return;\n }\n\n // Adjust coordinates based on text alignment and line height\n rect = textGeometry(rect, align, font);\n\n ctx.font = font.string;\n ctx.textAlign = align;\n ctx.textBaseline = 'middle';\n ctx.shadowBlur = model.textShadowBlur;\n ctx.shadowColor = model.textShadowColor;\n\n if (filled) {\n ctx.fillStyle = color;\n }\n if (stroked) {\n ctx.lineJoin = 'round';\n ctx.lineWidth = strokeWidth;\n ctx.strokeStyle = strokeColor;\n }\n\n for (i = 0, ilen = lines.length; i < ilen; ++i) {\n drawTextLine(ctx, lines[i], {\n stroked: stroked,\n filled: filled,\n w: rect.w,\n x: rect.x,\n y: rect.y + rect.h * i\n });\n }\n}\n\nvar Label = function(config, ctx, el, index) {\n var me = this;\n\n me._config = config;\n me._index = index;\n me._model = null;\n me._rects = null;\n me._ctx = ctx;\n me._el = el;\n};\n\nhelpers.merge(Label.prototype, {\n /**\n * @private\n */\n _modelize: function(display, lines, config, context) {\n var me = this;\n var index = me._index;\n var font = helpers.toFont(helpers.resolve([config.font, {}], context, index));\n var color = helpers.resolve([config.color, chart_js.defaults.color], context, index);\n\n return {\n align: helpers.resolve([config.align, 'center'], context, index),\n anchor: helpers.resolve([config.anchor, 'center'], context, index),\n area: context.chart.chartArea,\n backgroundColor: helpers.resolve([config.backgroundColor, null], context, index),\n borderColor: helpers.resolve([config.borderColor, null], context, index),\n borderRadius: helpers.resolve([config.borderRadius, 0], context, index),\n borderWidth: helpers.resolve([config.borderWidth, 0], context, index),\n clamp: helpers.resolve([config.clamp, false], context, index),\n clip: helpers.resolve([config.clip, false], context, index),\n color: color,\n display: display,\n font: font,\n lines: lines,\n offset: helpers.resolve([config.offset, 4], context, index),\n opacity: helpers.resolve([config.opacity, 1], context, index),\n origin: getScaleOrigin(me._el, context),\n padding: helpers.toPadding(helpers.resolve([config.padding, 4], context, index)),\n positioner: getPositioner(me._el),\n rotation: helpers.resolve([config.rotation, 0], context, index) * (Math.PI / 180),\n size: utils.textSize(me._ctx, lines, font),\n textAlign: helpers.resolve([config.textAlign, 'start'], context, index),\n textShadowBlur: helpers.resolve([config.textShadowBlur, 0], context, index),\n textShadowColor: helpers.resolve([config.textShadowColor, color], context, index),\n textStrokeColor: helpers.resolve([config.textStrokeColor, color], context, index),\n textStrokeWidth: helpers.resolve([config.textStrokeWidth, 0], context, index)\n };\n },\n\n update: function(context) {\n var me = this;\n var model = null;\n var rects = null;\n var index = me._index;\n var config = me._config;\n var value, label, lines;\n\n // We first resolve the display option (separately) to avoid computing\n // other options in case the label is hidden (i.e. display: false).\n var display = helpers.resolve([config.display, true], context, index);\n\n if (display) {\n value = context.dataset.data[index];\n label = helpers.valueOrDefault(helpers.callback(config.formatter, [value, context]), value);\n lines = helpers.isNullOrUndef(label) ? [] : utils.toTextLines(label);\n\n if (lines.length) {\n model = me._modelize(display, lines, config, context);\n rects = boundingRects(model);\n }\n }\n\n me._model = model;\n me._rects = rects;\n },\n\n geometry: function() {\n return this._rects ? this._rects.frame : {};\n },\n\n rotation: function() {\n return this._model ? this._model.rotation : 0;\n },\n\n visible: function() {\n return this._model && this._model.opacity;\n },\n\n model: function() {\n return this._model;\n },\n\n draw: function(chart, center) {\n var me = this;\n var ctx = chart.ctx;\n var model = me._model;\n var rects = me._rects;\n var area;\n\n if (!this.visible()) {\n return;\n }\n\n ctx.save();\n\n if (model.clip) {\n area = model.area;\n ctx.beginPath();\n ctx.rect(\n area.left,\n area.top,\n area.right - area.left,\n area.bottom - area.top);\n ctx.clip();\n }\n\n ctx.globalAlpha = utils.bound(0, model.opacity, 1);\n ctx.translate(rasterize(center.x), rasterize(center.y));\n ctx.rotate(model.rotation);\n\n drawFrame(ctx, rects.frame, model);\n drawText(ctx, model.lines, rects.text, model);\n\n ctx.restore();\n }\n});\n\nvar MIN_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991; // eslint-disable-line es/no-number-minsafeinteger\nvar MAX_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991; // eslint-disable-line es/no-number-maxsafeinteger\n\nfunction rotated(point, center, angle) {\n var cos = Math.cos(angle);\n var sin = Math.sin(angle);\n var cx = center.x;\n var cy = center.y;\n\n return {\n x: cx + cos * (point.x - cx) - sin * (point.y - cy),\n y: cy + sin * (point.x - cx) + cos * (point.y - cy)\n };\n}\n\nfunction projected(points, axis) {\n var min = MAX_INTEGER;\n var max = MIN_INTEGER;\n var origin = axis.origin;\n var i, pt, vx, vy, dp;\n\n for (i = 0; i < points.length; ++i) {\n pt = points[i];\n vx = pt.x - origin.x;\n vy = pt.y - origin.y;\n dp = axis.vx * vx + axis.vy * vy;\n min = Math.min(min, dp);\n max = Math.max(max, dp);\n }\n\n return {\n min: min,\n max: max\n };\n}\n\nfunction toAxis(p0, p1) {\n var vx = p1.x - p0.x;\n var vy = p1.y - p0.y;\n var ln = Math.sqrt(vx * vx + vy * vy);\n\n return {\n vx: (p1.x - p0.x) / ln,\n vy: (p1.y - p0.y) / ln,\n origin: p0,\n ln: ln\n };\n}\n\nvar HitBox = function() {\n this._rotation = 0;\n this._rect = {\n x: 0,\n y: 0,\n w: 0,\n h: 0\n };\n};\n\nhelpers.merge(HitBox.prototype, {\n center: function() {\n var r = this._rect;\n return {\n x: r.x + r.w / 2,\n y: r.y + r.h / 2\n };\n },\n\n update: function(center, rect, rotation) {\n this._rotation = rotation;\n this._rect = {\n x: rect.x + center.x,\n y: rect.y + center.y,\n w: rect.w,\n h: rect.h\n };\n },\n\n contains: function(point) {\n var me = this;\n var margin = 1;\n var rect = me._rect;\n\n point = rotated(point, me.center(), -me._rotation);\n\n return !(point.x < rect.x - margin\n || point.y < rect.y - margin\n || point.x > rect.x + rect.w + margin * 2\n || point.y > rect.y + rect.h + margin * 2);\n },\n\n // Separating Axis Theorem\n // https://gamedevelopment.tutsplus.com/tutorials/collision-detection-using-the-separating-axis-theorem--gamedev-169\n intersects: function(other) {\n var r0 = this._points();\n var r1 = other._points();\n var axes = [\n toAxis(r0[0], r0[1]),\n toAxis(r0[0], r0[3])\n ];\n var i, pr0, pr1;\n\n if (this._rotation !== other._rotation) {\n // Only separate with r1 axis if the rotation is different,\n // else it's enough to separate r0 and r1 with r0 axis only!\n axes.push(\n toAxis(r1[0], r1[1]),\n toAxis(r1[0], r1[3])\n );\n }\n\n for (i = 0; i < axes.length; ++i) {\n pr0 = projected(r0, axes[i]);\n pr1 = projected(r1, axes[i]);\n\n if (pr0.max < pr1.min || pr1.max < pr0.min) {\n return false;\n }\n }\n\n return true;\n },\n\n /**\n * @private\n */\n _points: function() {\n var me = this;\n var rect = me._rect;\n var angle = me._rotation;\n var center = me.center();\n\n return [\n rotated({x: rect.x, y: rect.y}, center, angle),\n rotated({x: rect.x + rect.w, y: rect.y}, center, angle),\n rotated({x: rect.x + rect.w, y: rect.y + rect.h}, center, angle),\n rotated({x: rect.x, y: rect.y + rect.h}, center, angle)\n ];\n }\n});\n\nfunction coordinates(el, model, geometry) {\n var point = model.positioner(el, model);\n var vx = point.vx;\n var vy = point.vy;\n\n if (!vx && !vy) {\n // if aligned center, we don't want to offset the center point\n return {x: point.x, y: point.y};\n }\n\n var w = geometry.w;\n var h = geometry.h;\n\n // take in account the label rotation\n var rotation = model.rotation;\n var dx = Math.abs(w / 2 * Math.cos(rotation)) + Math.abs(h / 2 * Math.sin(rotation));\n var dy = Math.abs(w / 2 * Math.sin(rotation)) + Math.abs(h / 2 * Math.cos(rotation));\n\n // scale the unit vector (vx, vy) to get at least dx or dy equal to\n // w or h respectively (else we would calculate the distance to the\n // ellipse inscribed in the bounding rect)\n var vs = 1 / Math.max(Math.abs(vx), Math.abs(vy));\n dx *= vx * vs;\n dy *= vy * vs;\n\n // finally, include the explicit offset\n dx += model.offset * vx;\n dy += model.offset * vy;\n\n return {\n x: point.x + dx,\n y: point.y + dy\n };\n}\n\nfunction collide(labels, collider) {\n var i, j, s0, s1;\n\n // IMPORTANT Iterate in the reverse order since items at the end of the\n // list have an higher weight/priority and thus should be less impacted\n // by the overlapping strategy.\n\n for (i = labels.length - 1; i >= 0; --i) {\n s0 = labels[i].$layout;\n\n for (j = i - 1; j >= 0 && s0._visible; --j) {\n s1 = labels[j].$layout;\n\n if (s1._visible && s0._box.intersects(s1._box)) {\n collider(s0, s1);\n }\n }\n }\n\n return labels;\n}\n\nfunction compute(labels) {\n var i, ilen, label, state, geometry, center, proxy;\n\n // Initialize labels for overlap detection\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n label = labels[i];\n state = label.$layout;\n\n if (state._visible) {\n // Chart.js 3 removed el._model in favor of getProps(), making harder to\n // abstract reading values in positioners. Also, using string arrays to\n // read values (i.e. var {a,b,c} = el.getProps([\"a\",\"b\",\"c\"])) would make\n // positioners inefficient in the normal case (i.e. not the final values)\n // and the code a bit ugly, so let's use a Proxy instead.\n proxy = new Proxy(label._el, {get: (el, p) => el.getProps([p], true)[p]});\n\n geometry = label.geometry();\n center = coordinates(proxy, label.model(), geometry);\n state._box.update(center, geometry, label.rotation());\n }\n }\n\n // Auto hide overlapping labels\n return collide(labels, function(s0, s1) {\n var h0 = s0._hidable;\n var h1 = s1._hidable;\n\n if ((h0 && h1) || h1) {\n s1._visible = false;\n } else if (h0) {\n s0._visible = false;\n }\n });\n}\n\nvar layout = {\n prepare: function(datasets) {\n var labels = [];\n var i, j, ilen, jlen, label;\n\n for (i = 0, ilen = datasets.length; i < ilen; ++i) {\n for (j = 0, jlen = datasets[i].length; j < jlen; ++j) {\n label = datasets[i][j];\n labels.push(label);\n label.$layout = {\n _box: new HitBox(),\n _hidable: false,\n _visible: true,\n _set: i,\n _idx: label._index\n };\n }\n }\n\n // TODO New `z` option: labels with a higher z-index are drawn\n // of top of the ones with a lower index. Lowest z-index labels\n // are also discarded first when hiding overlapping labels.\n labels.sort(function(a, b) {\n var sa = a.$layout;\n var sb = b.$layout;\n\n return sa._idx === sb._idx\n ? sb._set - sa._set\n : sb._idx - sa._idx;\n });\n\n this.update(labels);\n\n return labels;\n },\n\n update: function(labels) {\n var dirty = false;\n var i, ilen, label, model, state;\n\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n label = labels[i];\n model = label.model();\n state = label.$layout;\n state._hidable = model && model.display === 'auto';\n state._visible = label.visible();\n dirty |= state._hidable;\n }\n\n if (dirty) {\n compute(labels);\n }\n },\n\n lookup: function(labels, point) {\n var i, state;\n\n // IMPORTANT Iterate in the reverse order since items at the end of\n // the list have an higher z-index, thus should be picked first.\n\n for (i = labels.length - 1; i >= 0; --i) {\n state = labels[i].$layout;\n\n if (state && state._visible && state._box.contains(point)) {\n return labels[i];\n }\n }\n\n return null;\n },\n\n draw: function(chart, labels) {\n var i, ilen, label, state, geometry, center;\n\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n label = labels[i];\n state = label.$layout;\n\n if (state._visible) {\n geometry = label.geometry();\n center = coordinates(label._el, label.model(), geometry);\n state._box.update(center, geometry, label.rotation());\n label.draw(chart, center);\n }\n }\n }\n};\n\nvar formatter = function(value) {\n if (helpers.isNullOrUndef(value)) {\n return null;\n }\n\n var label = value;\n var keys, klen, k;\n if (helpers.isObject(value)) {\n if (!helpers.isNullOrUndef(value.label)) {\n label = value.label;\n } else if (!helpers.isNullOrUndef(value.r)) {\n label = value.r;\n } else {\n label = '';\n keys = Object.keys(value);\n for (k = 0, klen = keys.length; k < klen; ++k) {\n label += (k !== 0 ? ', ' : '') + keys[k] + ': ' + value[keys[k]];\n }\n }\n }\n\n return '' + label;\n};\n\n/**\n * IMPORTANT: make sure to also update tests and TypeScript definition\n * files (`/test/specs/defaults.spec.js` and `/types/options.d.ts`)\n */\n\nvar defaults = {\n align: 'center',\n anchor: 'center',\n backgroundColor: null,\n borderColor: null,\n borderRadius: 0,\n borderWidth: 0,\n clamp: false,\n clip: false,\n color: undefined,\n display: true,\n font: {\n family: undefined,\n lineHeight: 1.2,\n size: undefined,\n style: undefined,\n weight: null\n },\n formatter: formatter,\n labels: undefined,\n listeners: {},\n offset: 4,\n opacity: 1,\n padding: {\n top: 4,\n right: 4,\n bottom: 4,\n left: 4\n },\n rotation: 0,\n textAlign: 'start',\n textStrokeColor: undefined,\n textStrokeWidth: 0,\n textShadowBlur: 0,\n textShadowColor: undefined\n};\n\n/**\n * @see https://github.com/chartjs/Chart.js/issues/4176\n */\n\nvar EXPANDO_KEY = '$datalabels';\nvar DEFAULT_KEY = '$default';\n\nfunction configure(dataset, options) {\n var override = dataset.datalabels;\n var listeners = {};\n var configs = [];\n var labels, keys;\n\n if (override === false) {\n return null;\n }\n if (override === true) {\n override = {};\n }\n\n options = helpers.merge({}, [options, override]);\n labels = options.labels || {};\n keys = Object.keys(labels);\n delete options.labels;\n\n if (keys.length) {\n keys.forEach(function(key) {\n if (labels[key]) {\n configs.push(helpers.merge({}, [\n options,\n labels[key],\n {_key: key}\n ]));\n }\n });\n } else {\n // Default label if no \"named\" label defined.\n configs.push(options);\n }\n\n // listeners: {<event-type>: {<label-key>: <fn>}}\n listeners = configs.reduce(function(target, config) {\n helpers.each(config.listeners || {}, function(fn, event) {\n target[event] = target[event] || {};\n target[event][config._key || DEFAULT_KEY] = fn;\n });\n\n delete config.listeners;\n return target;\n }, {});\n\n return {\n labels: configs,\n listeners: listeners\n };\n}\n\nfunction dispatchEvent(chart, listeners, label, event) {\n if (!listeners) {\n return;\n }\n\n var context = label.$context;\n var groups = label.$groups;\n var callback;\n\n if (!listeners[groups._set]) {\n return;\n }\n\n callback = listeners[groups._set][groups._key];\n if (!callback) {\n return;\n }\n\n if (helpers.callback(callback, [context, event]) === true) {\n // Users are allowed to tweak the given context by injecting values that can be\n // used in scriptable options to display labels differently based on the current\n // event (e.g. highlight an hovered label). That's why we update the label with\n // the output context and schedule a new chart render by setting it dirty.\n chart[EXPANDO_KEY]._dirty = true;\n label.update(context);\n }\n}\n\nfunction dispatchMoveEvents(chart, listeners, previous, label, event) {\n var enter, leave;\n\n if (!previous && !label) {\n return;\n }\n\n if (!previous) {\n enter = true;\n } else if (!label) {\n leave = true;\n } else if (previous !== label) {\n leave = enter = true;\n }\n\n if (leave) {\n dispatchEvent(chart, listeners.leave, previous, event);\n }\n if (enter) {\n dispatchEvent(chart, listeners.enter, label, event);\n }\n}\n\nfunction handleMoveEvents(chart, event) {\n var expando = chart[EXPANDO_KEY];\n var listeners = expando._listeners;\n var previous, label;\n\n if (!listeners.enter && !listeners.leave) {\n return;\n }\n\n if (event.type === 'mousemove') {\n label = layout.lookup(expando._labels, event);\n } else if (event.type !== 'mouseout') {\n return;\n }\n\n previous = expando._hovered;\n expando._hovered = label;\n dispatchMoveEvents(chart, listeners, previous, label, event);\n}\n\nfunction handleClickEvents(chart, event) {\n var expando = chart[EXPANDO_KEY];\n var handlers = expando._listeners.click;\n var label = handlers && layout.lookup(expando._labels, event);\n if (label) {\n dispatchEvent(chart, handlers, label, event);\n }\n}\n\nvar plugin = {\n id: 'datalabels',\n\n defaults: defaults,\n\n beforeInit: function(chart) {\n chart[EXPANDO_KEY] = {\n _actives: []\n };\n },\n\n beforeUpdate: function(chart) {\n var expando = chart[EXPANDO_KEY];\n expando._listened = false;\n expando._listeners = {}; // {<event-type>: {<dataset-index>: {<label-key>: <fn>}}}\n expando._datasets = []; // per dataset labels: [Label[]]\n expando._labels = []; // layouted labels: Label[]\n },\n\n afterDatasetUpdate: function(chart, args, options) {\n var datasetIndex = args.index;\n var expando = chart[EXPANDO_KEY];\n var labels = expando._datasets[datasetIndex] = [];\n var visible = chart.isDatasetVisible(datasetIndex);\n var dataset = chart.data.datasets[datasetIndex];\n var config = configure(dataset, options);\n var elements = args.meta.data || [];\n var ctx = chart.ctx;\n var i, j, ilen, jlen, cfg, key, el, label;\n\n ctx.save();\n\n for (i = 0, ilen = elements.length; i < ilen; ++i) {\n el = elements[i];\n el[EXPANDO_KEY] = [];\n\n if (visible && el && chart.getDataVisibility(i) && !el.skip) {\n for (j = 0, jlen = config.labels.length; j < jlen; ++j) {\n cfg = config.labels[j];\n key = cfg._key;\n\n label = new Label(cfg, ctx, el, i);\n label.$groups = {\n _set: datasetIndex,\n _key: key || DEFAULT_KEY\n };\n label.$context = {\n active: false,\n chart: chart,\n dataIndex: i,\n dataset: dataset,\n datasetIndex: datasetIndex\n };\n\n label.update(label.$context);\n el[EXPANDO_KEY].push(label);\n labels.push(label);\n }\n }\n }\n\n ctx.restore();\n\n // Store listeners at the chart level and per event type to optimize\n // cases where no listeners are registered for a specific event.\n helpers.merge(expando._listeners, config.listeners, {\n merger: function(event, target, source) {\n target[event] = target[event] || {};\n target[event][args.index] = source[event];\n expando._listened = true;\n }\n });\n },\n\n afterUpdate: function(chart) {\n chart[EXPANDO_KEY]._labels = layout.prepare(chart[EXPANDO_KEY]._datasets);\n },\n\n // Draw labels on top of all dataset elements\n // https://github.com/chartjs/chartjs-plugin-datalabels/issues/29\n // https://github.com/chartjs/chartjs-plugin-datalabels/issues/32\n afterDatasetsDraw: function(chart) {\n layout.draw(chart, chart[EXPANDO_KEY]._labels);\n },\n\n beforeEvent: function(chart, args) {\n // If there is no listener registered for this chart, `listened` will be false,\n // meaning we can immediately ignore the incoming event and avoid useless extra\n // computation for users who don't implement label interactions.\n if (chart[EXPANDO_KEY]._listened) {\n var event = args.event;\n switch (event.type) {\n case 'mousemove':\n case 'mouseout':\n handleMoveEvents(chart, event);\n break;\n case 'click':\n handleClickEvents(chart, event);\n break;\n }\n }\n },\n\n afterEvent: function(chart) {\n var expando = chart[EXPANDO_KEY];\n var previous = expando._actives;\n var actives = expando._actives = chart.getActiveElements();\n var updates = utils.arrayDiff(previous, actives);\n var i, ilen, j, jlen, update, label, labels;\n\n for (i = 0, ilen = updates.length; i < ilen; ++i) {\n update = updates[i];\n if (update[1]) {\n labels = update[0].element[EXPANDO_KEY] || [];\n for (j = 0, jlen = labels.length; j < jlen; ++j) {\n label = labels[j];\n label.$context.active = (update[1] === 1);\n label.update(label.$context);\n }\n }\n }\n\n if (expando._dirty || updates.length) {\n layout.update(expando._labels);\n chart.render();\n }\n\n delete expando._dirty;\n }\n};\n\nreturn plugin;\n\n}));\n","/*!\n * Colcade v0.2.0\n * Lightweight masonry layout\n * by David DeSandro\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */\n /*global define: false, module: false */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.Colcade = factory();\n }\n\n}( window, function factory() {\n\n// -------------------------- Colcade -------------------------- //\n\nfunction Colcade( element, options ) {\n element = getQueryElement( element );\n\n // do not initialize twice on same element\n if ( element && element.colcadeGUID ) {\n var instance = instances[ element.colcadeGUID ];\n instance.option( options );\n return instance;\n }\n\n this.element = element;\n // options\n this.options = {};\n this.option( options );\n // kick things off\n this.create();\n}\n\nvar proto = Colcade.prototype;\n\nproto.option = function( options ) {\n this.options = extend( this.options, options );\n};\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Colcade intances\nvar instances = {};\n\nproto.create = function() {\n this.errorCheck();\n // add guid for Colcade.data\n var guid = this.guid = ++GUID;\n this.element.colcadeGUID = guid;\n instances[ guid ] = this; // associate via id\n // update initial properties & layout\n this.reload();\n // events\n this._windowResizeHandler = this.onWindowResize.bind( this );\n this._loadHandler = this.onLoad.bind( this );\n window.addEventListener( 'resize', this._windowResizeHandler );\n this.element.addEventListener( 'load', this._loadHandler, true );\n};\n\nproto.errorCheck = function() {\n var errors = [];\n if ( !this.element ) {\n errors.push( 'Bad element: ' + this.element );\n }\n if ( !this.options.columns ) {\n errors.push( 'columns option required: ' + this.options.columns );\n }\n if ( !this.options.items ) {\n errors.push( 'items option required: ' + this.options.items );\n }\n\n if ( errors.length ) {\n throw new Error( '[Colcade error] ' + errors.join('. ') );\n }\n};\n\n// update properties and do layout\nproto.reload = function() {\n this.updateColumns();\n this.updateItems();\n this.layout();\n};\n\nproto.updateColumns = function() {\n this.columns = querySelect( this.options.columns, this.element );\n};\n\nproto.updateItems = function() {\n this.items = querySelect( this.options.items, this.element );\n};\n\nproto.getActiveColumns = function() {\n return this.columns.filter( function( column ) {\n var style = getComputedStyle( column );\n return style.display != 'none';\n });\n};\n\n// ----- layout ----- //\n\n// public, updates activeColumns\nproto.layout = function() {\n this.activeColumns = this.getActiveColumns();\n this._layout();\n};\n\n// private, does not update activeColumns\nproto._layout = function() {\n // reset column heights\n this.columnHeights = this.activeColumns.map( function() {\n return 0;\n });\n // layout all items\n this.layoutItems( this.items );\n};\n\nproto.layoutItems = function( items ) {\n items.forEach( this.layoutItem, this );\n};\n\nproto.layoutItem = function( item ) {\n // layout item by appending to column\n var minHeight = Math.min.apply( Math, this.columnHeights );\n var index = this.columnHeights.indexOf( minHeight );\n this.activeColumns[ index ].appendChild( item );\n // at least 1px, if item hasn't loaded\n // Not exactly accurate, but it's cool\n this.columnHeights[ index ] += item.offsetHeight || 1;\n};\n\n// ----- adding items ----- //\n\nproto.append = function( elems ) {\n var items = this.getQueryItems( elems );\n // add items to collection\n this.items = this.items.concat( items );\n // lay them out\n this.layoutItems( items );\n};\n\nproto.prepend = function( elems ) {\n var items = this.getQueryItems( elems );\n // add items to collection\n this.items = items.concat( this.items );\n // lay out everything\n this._layout();\n};\n\nproto.getQueryItems = function( elems ) {\n elems = makeArray( elems );\n var fragment = document.createDocumentFragment();\n elems.forEach( function( elem ) {\n fragment.appendChild( elem );\n });\n return querySelect( this.options.items, fragment );\n};\n\n// ----- measure column height ----- //\n\nproto.measureColumnHeight = function( elem ) {\n var boundingRect = this.element.getBoundingClientRect();\n this.activeColumns.forEach( function( column, i ) {\n // if elem, measure only that column\n // if no elem, measure all columns\n if ( !elem || column.contains( elem ) ) {\n var lastChildRect = column.lastElementChild.getBoundingClientRect();\n // not an exact calculation as it includes top border, and excludes item bottom margin\n this.columnHeights[ i ] = lastChildRect.bottom - boundingRect.top;\n }\n }, this );\n};\n\n// ----- events ----- //\n\nproto.onWindowResize = function() {\n clearTimeout( this.resizeTimeout );\n this.resizeTimeout = setTimeout( function() {\n this.onDebouncedResize();\n }.bind( this ), 100 );\n};\n\nproto.onDebouncedResize = function() {\n var activeColumns = this.getActiveColumns();\n // check if columns changed\n var isSameLength = activeColumns.length == this.activeColumns.length;\n var isSameColumns = true;\n this.activeColumns.forEach( function( column, i ) {\n isSameColumns = isSameColumns && column == activeColumns[i];\n });\n if ( isSameLength && isSameColumns ) {\n return;\n }\n // activeColumns changed\n this.activeColumns = activeColumns;\n this._layout();\n};\n\nproto.onLoad = function( event ) {\n this.measureColumnHeight( event.target );\n};\n\n// ----- destroy ----- //\n\nproto.destroy = function() {\n // move items back to container\n this.items.forEach( function( item ) {\n this.element.appendChild( item );\n }, this );\n // remove events\n window.removeEventListener( 'resize', this._windowResizeHandler );\n this.element.removeEventListener( 'load', this._loadHandler, true );\n // remove data\n delete this.element.colcadeGUID;\n delete instances[ this.guid ];\n};\n\n// -------------------------- HTML init -------------------------- //\n\ndocReady( function() {\n var dataElems = querySelect('[data-colcade]');\n dataElems.forEach( htmlInit );\n});\n\nfunction htmlInit( elem ) {\n // convert attribute \"foo: bar, qux: baz\" into object\n var attr = elem.getAttribute('data-colcade');\n var attrParts = attr.split(',');\n var options = {};\n attrParts.forEach( function( part ) {\n var pair = part.split(':');\n var key = pair[0].trim();\n var value = pair[1].trim();\n options[ key ] = value;\n });\n\n new Colcade( elem, options );\n}\n\nColcade.data = function( elem ) {\n elem = getQueryElement( elem );\n var id = elem && elem.colcadeGUID;\n return id && instances[ id ];\n};\n\n// -------------------------- jQuery -------------------------- //\n\nColcade.makeJQueryPlugin = function( $ ) {\n $ = $ || window.jQuery;\n if ( !$ ) {\n return;\n }\n\n $.fn.colcade = function( arg0 /*, arg1 */) {\n // method call $().colcade( 'method', { options } )\n if ( typeof arg0 == 'string' ) {\n // shift arguments by 1\n var args = Array.prototype.slice.call( arguments, 1 );\n return methodCall( this, arg0, args );\n }\n // just $().colcade({ options })\n plainCall( this, arg0 );\n return this;\n };\n\n function methodCall( $elems, methodName, args ) {\n var returnValue;\n $elems.each( function( i, elem ) {\n // get instance\n var colcade = $.data( elem, 'colcade' );\n if ( !colcade ) {\n return;\n }\n // apply method, get return value\n var value = colcade[ methodName ].apply( colcade, args );\n // set return value if value is returned, use only first value\n returnValue = returnValue === undefined ? value : returnValue;\n });\n return returnValue !== undefined ? returnValue : $elems;\n }\n\n function plainCall( $elems, options ) {\n $elems.each( function( i, elem ) {\n var colcade = $.data( elem, 'colcade' );\n if ( colcade ) {\n // set options & init\n colcade.option( options );\n colcade.layout();\n } else {\n // initialize new instance\n colcade = new Colcade( elem, options );\n $.data( elem, 'colcade', colcade );\n }\n });\n }\n};\n\n// try making plugin\nColcade.makeJQueryPlugin();\n\n// -------------------------- utils -------------------------- //\n\nfunction extend( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n}\n\n// turn element or nodeList into an array\nfunction makeArray( obj ) {\n var ary = [];\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n ary = obj;\n } else if ( obj && typeof obj.length == 'number' ) {\n // convert nodeList to array\n for ( var i=0; i < obj.length; i++ ) {\n ary.push( obj[i] );\n }\n } else {\n // array of single index\n ary.push( obj );\n }\n return ary;\n}\n\n// get array of elements\nfunction querySelect( selector, elem ) {\n elem = elem || document;\n var elems = elem.querySelectorAll( selector );\n return makeArray( elems );\n}\n\nfunction getQueryElement( elem ) {\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n return elem;\n}\n\nfunction docReady( onReady ) {\n if ( document.readyState == 'complete' ) {\n onReady();\n return;\n }\n document.addEventListener( 'DOMContentLoaded', onReady );\n}\n\n// -------------------------- end -------------------------- //\n\nreturn Colcade;\n\n}));\n","/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n /*global define: false, module: false */\n 'use strict';\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n\n}( window, function factory() {\n 'use strict';\n\n var matchesMethod = ( function() {\n var ElemProto = window.Element.prototype;\n // check for the standard method name first\n if ( ElemProto.matches ) {\n return 'matches';\n }\n // check un-prefixed\n if ( ElemProto.matchesSelector ) {\n return 'matchesSelector';\n }\n // check vendor prefixes\n var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];\n\n for ( var i=0; i < prefixes.length; i++ ) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n if ( ElemProto[ method ] ) {\n return method;\n }\n }\n })();\n\n return function matchesSelector( elem, selector ) {\n return elem[ matchesMethod ]( selector );\n };\n\n}));\n","'use strict'\n\nconst fs = require('fs')\nconst path = require('path')\n\n/*\n * Parses a string or buffer into an object\n * @param {(string|Buffer)} src - source to be parsed\n * @returns {Object} keys and values from src\n*/\nfunction parse (src) {\n const obj = {}\n\n // convert Buffers before splitting into lines and processing\n src.toString().split('\\n').forEach(function (line) {\n // matching \"KEY' and 'VAL' in 'KEY=VAL'\n const keyValueArr = line.match(/^\\s*([\\w\\.\\-]+)\\s*=\\s*(.*)?\\s*$/)\n // matched?\n if (keyValueArr != null) {\n const key = keyValueArr[1]\n\n // default undefined or missing values to empty string\n let value = keyValueArr[2] || ''\n\n // expand newlines in quoted values\n const len = value ? value.length : 0\n if (len > 0 && value.charAt(0) === '\"' && value.charAt(len - 1) === '\"') {\n value = value.replace(/\\\\n/gm, '\\n')\n }\n\n // remove any surrounding quotes and extra spaces\n value = value.replace(/(^['\"]|['\"]$)/g, '').trim()\n\n obj[key] = value\n }\n })\n\n return obj\n}\n\n/*\n * Main entry point into dotenv. Allows configuration before loading .env\n * @param {Object} options - options for parsing .env file\n * @param {string} [options.path=.env] - path to .env file\n * @param {string} [options.encoding=utf8] - encoding of .env file\n * @returns {Object} parsed object or error\n*/\nfunction config (options) {\n let dotenvPath = path.resolve(process.cwd(), '.env')\n let encoding = 'utf8'\n\n if (options) {\n if (options.path) {\n dotenvPath = options.path\n }\n if (options.encoding) {\n encoding = options.encoding\n }\n }\n\n try {\n // specifying an encoding returns a string instead of a buffer\n const parsed = parse(fs.readFileSync(dotenvPath, { encoding }))\n\n Object.keys(parsed).forEach(function (key) {\n if (!process.env.hasOwnProperty(key)) {\n process.env[key] = parsed[key]\n }\n })\n\n return { parsed }\n } catch (e) {\n return { error: e }\n }\n}\n\nmodule.exports.config = config\nmodule.exports.load = config\nmodule.exports.parse = parse\n","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'desandro-matches-selector/matches-selector'\n ], function( matchesSelector ) {\n return factory( window, matchesSelector );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('desandro-matches-selector')\n );\n } else {\n // browser global\n window.fizzyUIUtils = factory(\n window,\n window.matchesSelector\n );\n }\n\n}( window, function factory( window, matchesSelector ) {\n\n'use strict';\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if ( obj === null || obj === undefined ) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n var index = ary.indexOf( obj );\n if ( index != -1 ) {\n ary.splice( index, 1 );\n }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n while ( elem.parentNode && elem != document.body ) {\n elem = elem.parentNode;\n if ( matchesSelector( elem, selector ) ) {\n return elem;\n }\n }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n if ( typeof elem == 'string' ) {\n return document.querySelector( elem );\n }\n return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n // make array of elems\n elems = utils.makeArray( elems );\n var ffElems = [];\n\n elems.forEach( function( elem ) {\n // check that elem is an actual element\n if ( !( elem instanceof HTMLElement ) ) {\n return;\n }\n // add elem if no selector\n if ( !selector ) {\n ffElems.push( elem );\n return;\n }\n // filter & find items if we have a selector\n // filter\n if ( matchesSelector( elem, selector ) ) {\n ffElems.push( elem );\n }\n // find children\n var childElems = elem.querySelectorAll( selector );\n // concat childElems to filterFound array\n for ( var i=0; i < childElems.length; i++ ) {\n ffElems.push( childElems[i] );\n }\n });\n\n return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n threshold = threshold || 100;\n // original method\n var method = _class.prototype[ methodName ];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[ methodName ] = function() {\n var timeout = this[ timeoutName ];\n clearTimeout( timeout );\n\n var args = arguments;\n var _this = this;\n this[ timeoutName ] = setTimeout( function() {\n method.apply( _this, args );\n delete _this[ timeoutName ];\n }, threshold );\n };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n var readyState = document.readyState;\n if ( readyState == 'complete' || readyState == 'interactive' ) {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout( callback );\n } else {\n document.addEventListener( 'DOMContentLoaded', callback );\n }\n};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n return $1 + '-' + $2;\n }).toLowerCase();\n};\n\nvar console = window.console;\n/**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\nutils.htmlInit = function( WidgetClass, namespace ) {\n utils.docReady( function() {\n var dashedNamespace = utils.toDashed( namespace );\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );\n var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );\n var elems = utils.makeArray( dataAttrElems )\n .concat( utils.makeArray( jsDashElems ) );\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n\n elems.forEach( function( elem ) {\n var attr = elem.getAttribute( dataAttr ) ||\n elem.getAttribute( dataOptionsAttr );\n var options;\n try {\n options = attr && JSON.parse( attr );\n } catch ( error ) {\n // log error, do not initialize\n if ( console ) {\n console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +\n ': ' + error );\n }\n return;\n }\n // initialize\n var instance = new WidgetClass( elem, options );\n // make available via $().data('namespace')\n if ( jQuery ) {\n jQuery.data( elem, namespace, instance );\n }\n });\n\n });\n};\n\n// ----- ----- //\n\nreturn utils;\n\n}));\n","/*!\n * Flickity asNavFor v2.0.1\n * enable asNavFor for Flickity\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true*/\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'flickity/js/index',\n 'fizzy-ui-utils/utils'\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( Flickity, utils ) {\n\n'use strict';\n\n// -------------------------- asNavFor prototype -------------------------- //\n\n// Flickity.defaults.asNavFor = null;\n\nFlickity.createMethods.push('_createAsNavFor');\n\nvar proto = Flickity.prototype;\n\nproto._createAsNavFor = function() {\n this.on( 'activate', this.activateAsNavFor );\n this.on( 'deactivate', this.deactivateAsNavFor );\n this.on( 'destroy', this.destroyAsNavFor );\n\n var asNavForOption = this.options.asNavFor;\n if ( !asNavForOption ) {\n return;\n }\n // HACK do async, give time for other flickity to be initalized\n var _this = this;\n setTimeout( function initNavCompanion() {\n _this.setNavCompanion( asNavForOption );\n });\n};\n\nproto.setNavCompanion = function( elem ) {\n elem = utils.getQueryElement( elem );\n var companion = Flickity.data( elem );\n // stop if no companion or companion is self\n if ( !companion || companion == this ) {\n return;\n }\n\n this.navCompanion = companion;\n // companion select\n var _this = this;\n this.onNavCompanionSelect = function() {\n _this.navCompanionSelect();\n };\n companion.on( 'select', this.onNavCompanionSelect );\n // click\n this.on( 'staticClick', this.onNavStaticClick );\n\n this.navCompanionSelect( true );\n};\n\nproto.navCompanionSelect = function( isInstant ) {\n if ( !this.navCompanion ) {\n return;\n }\n // select slide that matches first cell of slide\n var selectedCell = this.navCompanion.selectedCells[0];\n var firstIndex = this.navCompanion.cells.indexOf( selectedCell );\n var lastIndex = firstIndex + this.navCompanion.selectedCells.length - 1;\n var selectIndex = Math.floor( lerp( firstIndex, lastIndex,\n this.navCompanion.cellAlign ) );\n this.selectCell( selectIndex, false, isInstant );\n // set nav selected class\n this.removeNavSelectedElements();\n // stop if companion has more cells than this one\n if ( selectIndex >= this.cells.length ) {\n return;\n }\n\n var selectedCells = this.cells.slice( firstIndex, lastIndex + 1 );\n this.navSelectedElements = selectedCells.map( function( cell ) {\n return cell.element;\n });\n this.changeNavSelectedClass('add');\n};\n\nfunction lerp( a, b, t ) {\n return ( b - a ) * t + a;\n}\n\nproto.changeNavSelectedClass = function( method ) {\n this.navSelectedElements.forEach( function( navElem ) {\n navElem.classList[ method ]('is-nav-selected');\n });\n};\n\nproto.activateAsNavFor = function() {\n this.navCompanionSelect( true );\n};\n\nproto.removeNavSelectedElements = function() {\n if ( !this.navSelectedElements ) {\n return;\n }\n this.changeNavSelectedClass('remove');\n delete this.navSelectedElements;\n};\n\nproto.onNavStaticClick = function( event, pointer, cellElement, cellIndex ) {\n if ( typeof cellIndex == 'number' ) {\n this.navCompanion.selectCell( cellIndex );\n }\n};\n\nproto.deactivateAsNavFor = function() {\n this.removeNavSelectedElements();\n};\n\nproto.destroyAsNavFor = function() {\n if ( !this.navCompanion ) {\n return;\n }\n this.navCompanion.off( 'select', this.onNavCompanionSelect );\n this.off( 'staticClick', this.onNavStaticClick );\n delete this.navCompanion;\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n}));\n","/**\n * Flickity fade v1.0.0\n * Fade between Flickity slides\n */\n\n/* jshint browser: true, undef: true, unused: true */\n\n( function( window, factory ) {\n // universal module definition\n /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'flickity/js/index',\n 'fizzy-ui-utils/utils',\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( this, function factory( Flickity, utils ) {\n\n// ---- Slide ---- //\n\nvar Slide = Flickity.Slide;\n\nvar slideUpdateTarget = Slide.prototype.updateTarget;\nSlide.prototype.updateTarget = function() {\n slideUpdateTarget.apply( this, arguments );\n if ( !this.parent.options.fade ) {\n return;\n }\n // position cells at selected target\n var slideTargetX = this.target - this.x;\n var firstCellX = this.cells[0].x;\n this.cells.forEach( function( cell ) {\n var targetX = cell.x - firstCellX - slideTargetX;\n cell.renderPosition( targetX );\n });\n};\n\nSlide.prototype.setOpacity = function( alpha ) {\n this.cells.forEach( function( cell ) {\n cell.element.style.opacity = alpha;\n });\n};\n\n// ---- Flickity ---- //\n\nvar proto = Flickity.prototype;\n\nFlickity.createMethods.push('_createFade');\n\nproto._createFade = function() {\n this.fadeIndex = this.selectedIndex;\n this.prevSelectedIndex = this.selectedIndex;\n this.on( 'select', this.onSelectFade );\n this.on( 'dragEnd', this.onDragEndFade );\n this.on( 'settle', this.onSettleFade );\n this.on( 'activate', this.onActivateFade );\n this.on( 'deactivate', this.onDeactivateFade );\n};\n\nvar updateSlides = proto.updateSlides;\nproto.updateSlides = function() {\n updateSlides.apply( this, arguments );\n if ( !this.options.fade ) {\n return;\n }\n // set initial opacity\n this.slides.forEach( function( slide, i ) {\n var alpha = i == this.selectedIndex ? 1 : 0;\n slide.setOpacity( alpha );\n }, this );\n};\n\n/* ---- events ---- */\n\nproto.onSelectFade = function() {\n // in case of resize, keep fadeIndex within current count\n this.fadeIndex = Math.min( this.prevSelectedIndex, this.slides.length - 1 );\n this.prevSelectedIndex = this.selectedIndex;\n};\n\nproto.onSettleFade = function() {\n delete this.didDragEnd;\n if ( !this.options.fade ) {\n return;\n }\n // set full and 0 opacity on selected & faded slides\n this.selectedSlide.setOpacity( 1 );\n var fadedSlide = this.slides[ this.fadeIndex ];\n if ( fadedSlide && this.fadeIndex != this.selectedIndex ) {\n this.slides[ this.fadeIndex ].setOpacity( 0 );\n }\n};\n\nproto.onDragEndFade = function() {\n // set flag\n this.didDragEnd = true;\n};\n\nproto.onActivateFade = function() {\n if ( this.options.fade ) {\n this.element.classList.add('is-fade');\n }\n};\n\nproto.onDeactivateFade = function() {\n if ( !this.options.fade ) {\n return;\n }\n this.element.classList.remove('is-fade');\n // reset opacity\n this.slides.forEach( function( slide ) {\n slide.setOpacity('');\n });\n};\n\n/* ---- position & fading ---- */\n\nvar positionSlider = proto.positionSlider;\nproto.positionSlider = function() {\n if ( !this.options.fade ) {\n positionSlider.apply( this, arguments );\n return;\n }\n\n this.fadeSlides();\n this.dispatchScrollEvent();\n};\n\nvar positionSliderAtSelected = proto.positionSliderAtSelected;\nproto.positionSliderAtSelected = function() {\n if ( this.options.fade ) {\n // position fade slider at origin\n this.setTranslateX( 0 );\n }\n positionSliderAtSelected.apply( this, arguments );\n};\n\nproto.fadeSlides = function() {\n if ( this.slides.length < 2 ) {\n return;\n }\n // get slides to fade-in & fade-out\n var indexes = this.getFadeIndexes();\n var fadeSlideA = this.slides[ indexes.a ];\n var fadeSlideB = this.slides[ indexes.b ];\n var distance = this.wrapDifference( fadeSlideA.target, fadeSlideB.target );\n var progress = this.wrapDifference( fadeSlideA.target, -this.x );\n progress = progress / distance;\n\n fadeSlideA.setOpacity( 1 - progress );\n fadeSlideB.setOpacity( progress );\n\n // hide previous slide\n var fadeHideIndex = indexes.a;\n if ( this.isDragging ) {\n fadeHideIndex = progress > 0.5 ? indexes.a : indexes.b;\n }\n var isNewHideIndex = this.fadeHideIndex != undefined &&\n this.fadeHideIndex != fadeHideIndex &&\n this.fadeHideIndex != indexes.a &&\n this.fadeHideIndex != indexes.b;\n if ( isNewHideIndex ) {\n // new fadeHideSlide set, hide previous\n this.slides[ this.fadeHideIndex ].setOpacity( 0 );\n }\n this.fadeHideIndex = fadeHideIndex;\n};\n\nproto.getFadeIndexes = function() {\n if ( !this.isDragging && !this.didDragEnd ) {\n return {\n a: this.fadeIndex,\n b: this.selectedIndex,\n };\n }\n if ( this.options.wrapAround ) {\n return this.getFadeDragWrapIndexes();\n } else {\n return this.getFadeDragLimitIndexes();\n }\n};\n\nproto.getFadeDragWrapIndexes = function() {\n var distances = this.slides.map( function( slide, i ) {\n return this.getSlideDistance( -this.x, i );\n }, this );\n var absDistances = distances.map( function( distance ) {\n return Math.abs( distance );\n });\n var minDistance = Math.min.apply( Math, absDistances );\n var closestIndex = absDistances.indexOf( minDistance );\n var distance = distances[ closestIndex ];\n var len = this.slides.length;\n\n var delta = distance >= 0 ? 1 : -1;\n return {\n a: closestIndex,\n b: utils.modulo( closestIndex + delta, len ),\n };\n};\n\nproto.getFadeDragLimitIndexes = function() {\n // calculate closest previous slide\n var dragIndex = 0;\n for ( var i=0; i < this.slides.length - 1; i++ ) {\n var slide = this.slides[i];\n if ( -this.x < slide.target ) {\n break;\n }\n dragIndex = i;\n }\n return {\n a: dragIndex,\n b: dragIndex + 1,\n };\n};\n\nproto.wrapDifference = function( a, b ) {\n var diff = b - a;\n\n if ( !this.options.wrapAround ) {\n return diff;\n }\n\n var diffPlus = diff + this.slideableWidth;\n var diffMinus = diff - this.slideableWidth;\n if ( Math.abs( diffPlus ) < Math.abs( diff ) ) {\n diff = diffPlus;\n }\n if ( Math.abs( diffMinus ) < Math.abs( diff ) ) {\n diff = diffMinus;\n }\n return diff;\n};\n\n// ---- wrapAround ---- //\n\nvar _getWrapShiftCells = proto._getWrapShiftCells;\nproto._getWrapShiftCells = function() {\n if ( !this.options.fade ) {\n _getWrapShiftCells.apply( this, arguments );\n }\n};\n\nvar shiftWrapCells = proto.shiftWrapCells;\nproto.shiftWrapCells = function() {\n if ( !this.options.fade ) {\n shiftWrapCells.apply( this, arguments );\n }\n};\n\nreturn Flickity;\n\n}));\n","// add, remove cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n\n'use strict';\n\n// append cells to a document fragment\nfunction getCellsFragment( cells ) {\n var fragment = document.createDocumentFragment();\n cells.forEach( function( cell ) {\n fragment.appendChild( cell.element );\n } );\n return fragment;\n}\n\n// -------------------------- add/remove cell prototype -------------------------- //\n\nvar proto = Flickity.prototype;\n\n/**\n * Insert, prepend, or append cells\n * @param {[Element, Array, NodeList]} elems - Elements to insert\n * @param {Integer} index - Zero-based number to insert\n */\nproto.insert = function( elems, index ) {\n var cells = this._makeCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n var len = this.cells.length;\n // default to append\n index = index === undefined ? len : index;\n // add cells with document fragment\n var fragment = getCellsFragment( cells );\n // append to slider\n var isAppend = index == len;\n if ( isAppend ) {\n this.slider.appendChild( fragment );\n } else {\n var insertCellElement = this.cells[ index ].element;\n this.slider.insertBefore( fragment, insertCellElement );\n }\n // add to this.cells\n if ( index === 0 ) {\n // prepend, add to start\n this.cells = cells.concat( this.cells );\n } else if ( isAppend ) {\n // append, add to end\n this.cells = this.cells.concat( cells );\n } else {\n // insert in this.cells\n var endCells = this.cells.splice( index, len - index );\n this.cells = this.cells.concat( cells ).concat( endCells );\n }\n\n this._sizeCells( cells );\n this.cellChange( index, true );\n};\n\nproto.append = function( elems ) {\n this.insert( elems, this.cells.length );\n};\n\nproto.prepend = function( elems ) {\n this.insert( elems, 0 );\n};\n\n/**\n * Remove cells\n * @param {[Element, Array, NodeList]} elems - ELements to remove\n */\nproto.remove = function( elems ) {\n var cells = this.getCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n\n var minCellIndex = this.cells.length - 1;\n // remove cells from collection & DOM\n cells.forEach( function( cell ) {\n cell.remove();\n var index = this.cells.indexOf( cell );\n minCellIndex = Math.min( index, minCellIndex );\n utils.removeFrom( this.cells, cell );\n }, this );\n\n this.cellChange( minCellIndex, true );\n};\n\n/**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\nproto.cellSizeChange = function( elem ) {\n var cell = this.getCell( elem );\n if ( !cell ) {\n return;\n }\n cell.getSize();\n\n var index = this.cells.indexOf( cell );\n this.cellChange( index );\n};\n\n/**\n * logic any time a cell is changed: added, removed, or size changed\n * @param {Integer} changedCellIndex - index of the changed cell, optional\n * @param {Boolean} isPositioningSlider - Positions slider after selection\n */\nproto.cellChange = function( changedCellIndex, isPositioningSlider ) {\n var prevSelectedElem = this.selectedElement;\n this._positionCells( changedCellIndex );\n this._getWrapShiftCells();\n this.setGallerySize();\n // update selectedIndex\n // try to maintain position & select previous selected element\n var cell = this.getCell( prevSelectedElem );\n if ( cell ) {\n this.selectedIndex = this.getCellSlideIndex( cell );\n }\n this.selectedIndex = Math.min( this.slides.length - 1, this.selectedIndex );\n\n this.emitEvent( 'cellChange', [ changedCellIndex ] );\n // position slider\n this.select( this.selectedIndex );\n // do not position slider after lazy load\n if ( isPositioningSlider ) {\n this.positionSliderAtSelected();\n }\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n","// animate\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'fizzy-ui-utils/utils',\n ], function( utils ) {\n return factory( window, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.animatePrototype = factory(\n window,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, utils ) {\n\n'use strict';\n\n// -------------------------- animate -------------------------- //\n\nvar proto = {};\n\nproto.startAnimation = function() {\n if ( this.isAnimating ) {\n return;\n }\n\n this.isAnimating = true;\n this.restingFrames = 0;\n this.animate();\n};\n\nproto.animate = function() {\n this.applyDragForce();\n this.applySelectedAttraction();\n\n var previousX = this.x;\n\n this.integratePhysics();\n this.positionSlider();\n this.settle( previousX );\n // animate next frame\n if ( this.isAnimating ) {\n var _this = this;\n requestAnimationFrame( function animateFrame() {\n _this.animate();\n } );\n }\n};\n\nproto.positionSlider = function() {\n var x = this.x;\n // wrap position around\n if ( this.options.wrapAround && this.cells.length > 1 ) {\n x = utils.modulo( x, this.slideableWidth );\n x -= this.slideableWidth;\n this.shiftWrapCells( x );\n }\n\n this.setTranslateX( x, this.isAnimating );\n this.dispatchScrollEvent();\n};\n\nproto.setTranslateX = function( x, is3d ) {\n x += this.cursorPosition;\n // reverse if right-to-left and using transform\n x = this.options.rightToLeft ? -x : x;\n var translateX = this.getPositionValue( x );\n // use 3D transforms for hardware acceleration on iOS\n // but use 2D when settled, for better font-rendering\n this.slider.style.transform = is3d ?\n 'translate3d(' + translateX + ',0,0)' : 'translateX(' + translateX + ')';\n};\n\nproto.dispatchScrollEvent = function() {\n var firstSlide = this.slides[0];\n if ( !firstSlide ) {\n return;\n }\n var positionX = -this.x - firstSlide.target;\n var progress = positionX / this.slidesWidth;\n this.dispatchEvent( 'scroll', null, [ progress, positionX ] );\n};\n\nproto.positionSliderAtSelected = function() {\n if ( !this.cells.length ) {\n return;\n }\n this.x = -this.selectedSlide.target;\n this.velocity = 0; // stop wobble\n this.positionSlider();\n};\n\nproto.getPositionValue = function( position ) {\n if ( this.options.percentPosition ) {\n // percent position, round to 2 digits, like 12.34%\n return ( Math.round( ( position / this.size.innerWidth ) * 10000 ) * 0.01 ) + '%';\n } else {\n // pixel positioning\n return Math.round( position ) + 'px';\n }\n};\n\nproto.settle = function( previousX ) {\n // keep track of frames where x hasn't moved\n var isResting = !this.isPointerDown &&\n Math.round( this.x * 100 ) == Math.round( previousX * 100 );\n if ( isResting ) {\n this.restingFrames++;\n }\n // stop animating if resting for 3 or more frames\n if ( this.restingFrames > 2 ) {\n this.isAnimating = false;\n delete this.isFreeScrolling;\n // render position with translateX when settled\n this.positionSlider();\n this.dispatchEvent( 'settle', null, [ this.selectedIndex ] );\n }\n};\n\nproto.shiftWrapCells = function( x ) {\n // shift before cells\n var beforeGap = this.cursorPosition + x;\n this._shiftCells( this.beforeShiftCells, beforeGap, -1 );\n // shift after cells\n var afterGap = this.size.innerWidth - ( x + this.slideableWidth + this.cursorPosition );\n this._shiftCells( this.afterShiftCells, afterGap, 1 );\n};\n\nproto._shiftCells = function( cells, gap, shift ) {\n for ( var i = 0; i < cells.length; i++ ) {\n var cell = cells[i];\n var cellShift = gap > 0 ? shift : 0;\n cell.wrapShift( cellShift );\n gap -= cell.size.outerWidth;\n }\n};\n\nproto._unshiftCells = function( cells ) {\n if ( !cells || !cells.length ) {\n return;\n }\n for ( var i = 0; i < cells.length; i++ ) {\n cells[i].wrapShift( 0 );\n }\n};\n\n// -------------------------- physics -------------------------- //\n\nproto.integratePhysics = function() {\n this.x += this.velocity;\n this.velocity *= this.getFrictionFactor();\n};\n\nproto.applyForce = function( force ) {\n this.velocity += force;\n};\n\nproto.getFrictionFactor = function() {\n return 1 - this.options[ this.isFreeScrolling ? 'freeScrollFriction' : 'friction' ];\n};\n\nproto.getRestingPosition = function() {\n // my thanks to Steven Wittens, who simplified this math greatly\n return this.x + this.velocity / ( 1 - this.getFrictionFactor() );\n};\n\nproto.applyDragForce = function() {\n if ( !this.isDraggable || !this.isPointerDown ) {\n return;\n }\n // change the position to drag position by applying force\n var dragVelocity = this.dragX - this.x;\n var dragForce = dragVelocity - this.velocity;\n this.applyForce( dragForce );\n};\n\nproto.applySelectedAttraction = function() {\n // do not attract if pointer down or no slides\n var dragDown = this.isDraggable && this.isPointerDown;\n if ( dragDown || this.isFreeScrolling || !this.slides.length ) {\n return;\n }\n var distance = this.selectedSlide.target * -1 - this.x;\n var force = distance * this.options.selectedAttraction;\n this.applyForce( force );\n};\n\nreturn proto;\n\n} ) );\n","// Flickity.Cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'get-size/get-size',\n ], function( getSize ) {\n return factory( window, getSize );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('get-size')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Cell = factory(\n window,\n window.getSize\n );\n }\n\n}( window, function factory( window, getSize ) {\n\n'use strict';\n\nfunction Cell( elem, parent ) {\n this.element = elem;\n this.parent = parent;\n\n this.create();\n}\n\nvar proto = Cell.prototype;\n\nproto.create = function() {\n this.element.style.position = 'absolute';\n this.element.setAttribute( 'aria-hidden', 'true' );\n this.x = 0;\n this.shift = 0;\n this.element.style[ this.parent.originSide ] = 0;\n};\n\nproto.destroy = function() {\n // reset style\n this.unselect();\n this.element.style.position = '';\n var side = this.parent.originSide;\n this.element.style[ side ] = '';\n this.element.style.transform = '';\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\nproto.setPosition = function( x ) {\n this.x = x;\n this.updateTarget();\n this.renderPosition( x );\n};\n\n// setDefaultTarget v1 method, backwards compatibility, remove in v3\nproto.updateTarget = proto.setDefaultTarget = function() {\n var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n this.target = this.x + this.size[ marginProperty ] +\n this.size.width * this.parent.cellAlign;\n};\n\nproto.renderPosition = function( x ) {\n // render position of cell with in slider\n var sideOffset = this.parent.originSide === 'left' ? 1 : -1;\n\n var adjustedX = this.parent.options.percentPosition ?\n x * sideOffset * ( this.parent.size.innerWidth / this.size.width ) :\n x * sideOffset;\n\n this.element.style.transform = 'translateX(' +\n this.parent.getPositionValue( adjustedX ) + ')';\n};\n\nproto.select = function() {\n this.element.classList.add('is-selected');\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.unselect = function() {\n this.element.classList.remove('is-selected');\n this.element.setAttribute( 'aria-hidden', 'true' );\n};\n\n/**\n * @param {Integer} shift - 0, 1, or -1\n */\nproto.wrapShift = function( shift ) {\n this.shift = shift;\n this.renderPosition( this.x + this.parent.slideableWidth * shift );\n};\n\nproto.remove = function() {\n this.element.parentNode.removeChild( this.element );\n};\n\nreturn Cell;\n\n} ) );\n","// drag\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unidragger/unidragger',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unidragger, utils ) {\n return factory( window, Flickity, Unidragger, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unidragger'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window,\n window.Flickity,\n window.Unidragger,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unidragger, utils ) {\n\n'use strict';\n\n// ----- defaults ----- //\n\nutils.extend( Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3,\n} );\n\n// ----- create ----- //\n\nFlickity.createMethods.push('_createDrag');\n\n// -------------------------- drag prototype -------------------------- //\n\nvar proto = Flickity.prototype;\nutils.extend( proto, Unidragger.prototype );\nproto._touchActionValue = 'pan-y';\n\n// -------------------------- -------------------------- //\n\nproto._createDrag = function() {\n this.on( 'activate', this.onActivateDrag );\n this.on( 'uiChange', this._uiChangeDrag );\n this.on( 'deactivate', this.onDeactivateDrag );\n this.on( 'cellChange', this.updateDraggable );\n // TODO updateDraggable on resize? if groupCells & slides change\n};\n\nproto.onActivateDrag = function() {\n this.handles = [ this.viewport ];\n this.bindHandles();\n this.updateDraggable();\n};\n\nproto.onDeactivateDrag = function() {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n};\n\nproto.updateDraggable = function() {\n // disable dragging if less than 2 slides. #278\n if ( this.options.draggable == '>1' ) {\n this.isDraggable = this.slides.length > 1;\n } else {\n this.isDraggable = this.options.draggable;\n }\n if ( this.isDraggable ) {\n this.element.classList.add('is-draggable');\n } else {\n this.element.classList.remove('is-draggable');\n }\n};\n\n// backwards compatibility\nproto.bindDrag = function() {\n this.options.draggable = true;\n this.updateDraggable();\n};\n\nproto.unbindDrag = function() {\n this.options.draggable = false;\n this.updateDraggable();\n};\n\nproto._uiChangeDrag = function() {\n delete this.isFreeScrolling;\n};\n\n// -------------------------- pointer events -------------------------- //\n\nproto.pointerDown = function( event, pointer ) {\n if ( !this.isDraggable ) {\n this._pointerDownDefault( event, pointer );\n return;\n }\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n\n this._pointerDownPreventDefault( event );\n this.pointerDownFocus( event );\n // blur\n if ( document.activeElement != this.element ) {\n // do not blur if already focused\n this.pointerDownBlur();\n }\n\n // stop if it was moving\n this.dragX = this.x;\n this.viewport.classList.add('is-pointer-down');\n // track scrolling\n this.pointerDownScroll = getScrollPosition();\n window.addEventListener( 'scroll', this );\n\n this._pointerDownDefault( event, pointer );\n};\n\n// default pointerDown logic, used for staticClick\nproto._pointerDownDefault = function( event, pointer ) {\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n // bind move and end events\n this._bindPostStartEvents( event );\n this.dispatchEvent( 'pointerDown', event, [ pointer ] );\n};\n\nvar focusNodes = {\n INPUT: true,\n TEXTAREA: true,\n SELECT: true,\n};\n\nproto.pointerDownFocus = function( event ) {\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isFocusNode ) {\n this.focus();\n }\n};\n\nproto._pointerDownPreventDefault = function( event ) {\n var isTouchStart = event.type == 'touchstart';\n var isTouchPointer = event.pointerType == 'touch';\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isTouchStart && !isTouchPointer && !isFocusNode ) {\n event.preventDefault();\n }\n};\n\n// ----- move ----- //\n\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > this.options.dragThreshold;\n};\n\n// ----- up ----- //\n\nproto.pointerUp = function( event, pointer ) {\n delete this.isTouchScrolling;\n this.viewport.classList.remove('is-pointer-down');\n this.dispatchEvent( 'pointerUp', event, [ pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto.pointerDone = function() {\n window.removeEventListener( 'scroll', this );\n delete this.pointerDownScroll;\n};\n\n// -------------------------- dragging -------------------------- //\n\nproto.dragStart = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n this.dragStartPosition = this.x;\n this.startAnimation();\n window.removeEventListener( 'scroll', this );\n this.dispatchEvent( 'dragStart', event, [ pointer ] );\n};\n\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.dispatchEvent( 'pointerMove', event, [ pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n if ( !this.isDraggable ) {\n return;\n }\n event.preventDefault();\n\n this.previousDragX = this.dragX;\n // reverse if right-to-left\n var direction = this.options.rightToLeft ? -1 : 1;\n if ( this.options.wrapAround ) {\n // wrap around move. #589\n moveVector.x %= this.slideableWidth;\n }\n var dragX = this.dragStartPosition + moveVector.x * direction;\n\n if ( !this.options.wrapAround && this.slides.length ) {\n // slow drag\n var originBound = Math.max( -this.slides[0].target, this.dragStartPosition );\n dragX = dragX > originBound ? ( dragX + originBound ) * 0.5 : dragX;\n var endBound = Math.min( -this.getLastSlide().target, this.dragStartPosition );\n dragX = dragX < endBound ? ( dragX + endBound ) * 0.5 : dragX;\n }\n\n this.dragX = dragX;\n\n this.dragMoveTime = new Date();\n this.dispatchEvent( 'dragMove', event, [ pointer, moveVector ] );\n};\n\nproto.dragEnd = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n if ( this.options.freeScroll ) {\n this.isFreeScrolling = true;\n }\n // set selectedIndex based on where flick will end up\n var index = this.dragEndRestingSelect();\n\n if ( this.options.freeScroll && !this.options.wrapAround ) {\n // if free-scroll & not wrap around\n // do not free-scroll if going outside of bounding slides\n // so bounding slides can attract slider, and keep it in bounds\n var restingX = this.getRestingPosition();\n this.isFreeScrolling = -restingX > this.slides[0].target &&\n -restingX < this.getLastSlide().target;\n } else if ( !this.options.freeScroll && index == this.selectedIndex ) {\n // boost selection if selected index has not changed\n index += this.dragEndBoostSelect();\n }\n delete this.previousDragX;\n // apply selection\n // TODO refactor this, selecting here feels weird\n // HACK, set flag so dragging stays in correct direction\n this.isDragSelect = this.options.wrapAround;\n this.select( index );\n delete this.isDragSelect;\n this.dispatchEvent( 'dragEnd', event, [ pointer ] );\n};\n\nproto.dragEndRestingSelect = function() {\n var restingX = this.getRestingPosition();\n // how far away from selected slide\n var distance = Math.abs( this.getSlideDistance( -restingX, this.selectedIndex ) );\n // get closet resting going up and going down\n var positiveResting = this._getClosestResting( restingX, distance, 1 );\n var negativeResting = this._getClosestResting( restingX, distance, -1 );\n // use closer resting for wrap-around\n var index = positiveResting.distance < negativeResting.distance ?\n positiveResting.index : negativeResting.index;\n return index;\n};\n\n/**\n * given resting X and distance to selected cell\n * get the distance and index of the closest cell\n * @param {Number} restingX - estimated post-flick resting position\n * @param {Number} distance - distance to selected cell\n * @param {Integer} increment - +1 or -1, going up or down\n * @returns {Object} - { distance: {Number}, index: {Integer} }\n */\nproto._getClosestResting = function( restingX, distance, increment ) {\n var index = this.selectedIndex;\n var minDistance = Infinity;\n var condition = this.options.contain && !this.options.wrapAround ?\n // if contain, keep going if distance is equal to minDistance\n function( dist, minDist ) {\n return dist <= minDist;\n } : function( dist, minDist ) {\n return dist < minDist;\n };\n while ( condition( distance, minDistance ) ) {\n // measure distance to next cell\n index += increment;\n minDistance = distance;\n distance = this.getSlideDistance( -restingX, index );\n if ( distance === null ) {\n break;\n }\n distance = Math.abs( distance );\n }\n return {\n distance: minDistance,\n // selected was previous index\n index: index - increment,\n };\n};\n\n/**\n * measure distance between x and a slide target\n * @param {Number} x - horizontal position\n * @param {Integer} index - slide index\n * @returns {Number} - slide distance\n */\nproto.getSlideDistance = function( x, index ) {\n var len = this.slides.length;\n // wrap around if at least 2 slides\n var isWrapAround = this.options.wrapAround && len > 1;\n var slideIndex = isWrapAround ? utils.modulo( index, len ) : index;\n var slide = this.slides[ slideIndex ];\n if ( !slide ) {\n return null;\n }\n // add distance for wrap-around slides\n var wrap = isWrapAround ? this.slideableWidth * Math.floor( index/len ) : 0;\n return x - ( slide.target + wrap );\n};\n\nproto.dragEndBoostSelect = function() {\n // do not boost if no previousDragX or dragMoveTime\n if ( this.previousDragX === undefined || !this.dragMoveTime ||\n // or if drag was held for 100 ms\n new Date() - this.dragMoveTime > 100 ) {\n return 0;\n }\n\n var distance = this.getSlideDistance( -this.dragX, this.selectedIndex );\n var delta = this.previousDragX - this.dragX;\n if ( distance > 0 && delta > 0 ) {\n // boost to next if moving towards the right, and positive velocity\n return 1;\n } else if ( distance < 0 && delta < 0 ) {\n // boost to previous if moving towards the left, and negative velocity\n return -1;\n }\n return 0;\n};\n\n// ----- staticClick ----- //\n\nproto.staticClick = function( event, pointer ) {\n // get clickedCell, if cell was clicked\n var clickedCell = this.getParentCell( event.target );\n var cellElem = clickedCell && clickedCell.element;\n var cellIndex = clickedCell && this.cells.indexOf( clickedCell );\n this.dispatchEvent( 'staticClick', event, [ pointer, cellElem, cellIndex ] );\n};\n\n// ----- scroll ----- //\n\nproto.onscroll = function() {\n var scroll = getScrollPosition();\n var scrollMoveX = this.pointerDownScroll.x - scroll.x;\n var scrollMoveY = this.pointerDownScroll.y - scroll.y;\n // cancel click/tap if scroll is too much\n if ( Math.abs( scrollMoveX ) > 3 || Math.abs( scrollMoveY ) > 3 ) {\n this._pointerDone();\n }\n};\n\n// ----- utils ----- //\n\nfunction getScrollPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset,\n };\n}\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n","// Flickity main\n/* eslint-disable max-params */\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter',\n 'get-size/get-size',\n 'fizzy-ui-utils/utils',\n './cell',\n './slide',\n './animate',\n ], function( EvEmitter, getSize, utils, Cell, Slide, animatePrototype ) {\n return factory( window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter'),\n require('get-size'),\n require('fizzy-ui-utils'),\n require('./cell'),\n require('./slide'),\n require('./animate')\n );\n } else {\n // browser global\n var _Flickity = window.Flickity;\n\n window.Flickity = factory(\n window,\n window.EvEmitter,\n window.getSize,\n window.fizzyUIUtils,\n _Flickity.Cell,\n _Flickity.Slide,\n _Flickity.animatePrototype\n );\n }\n\n}( window, function factory( window, EvEmitter, getSize,\n utils, Cell, Slide, animatePrototype ) {\n\n/* eslint-enable max-params */\n'use strict';\n\n// vars\nvar jQuery = window.jQuery;\nvar getComputedStyle = window.getComputedStyle;\nvar console = window.console;\n\nfunction moveElements( elems, toElem ) {\n elems = utils.makeArray( elems );\n while ( elems.length ) {\n toElem.appendChild( elems.shift() );\n }\n}\n\n// -------------------------- Flickity -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Flickity intances\nvar instances = {};\n\nfunction Flickity( element, options ) {\n var queryElement = utils.getQueryElement( element );\n if ( !queryElement ) {\n if ( console ) {\n console.error( 'Bad element for Flickity: ' + ( queryElement || element ) );\n }\n return;\n }\n this.element = queryElement;\n // do not initialize twice on same element\n if ( this.element.flickityGUID ) {\n var instance = instances[ this.element.flickityGUID ];\n if ( instance ) instance.option( options );\n return instance;\n }\n\n // add jQuery\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n // options\n this.options = utils.extend( {}, this.constructor.defaults );\n this.option( options );\n\n // kick things off\n this._create();\n}\n\nFlickity.defaults = {\n accessibility: true,\n // adaptiveHeight: false,\n cellAlign: 'center',\n // cellSelector: undefined,\n // contain: false,\n freeScrollFriction: 0.075, // friction when free-scrolling\n friction: 0.28, // friction when selecting\n namespaceJQueryEvents: true,\n // initialIndex: 0,\n percentPosition: true,\n resize: true,\n selectedAttraction: 0.025,\n setGallerySize: true,\n // watchCSS: false,\n // wrapAround: false\n};\n\n// hash of methods triggered on _create()\nFlickity.createMethods = [];\n\nvar proto = Flickity.prototype;\n// inherit EventEmitter\nutils.extend( proto, EvEmitter.prototype );\n\nproto._create = function() {\n // add id for Flickity.data\n var id = this.guid = ++GUID;\n this.element.flickityGUID = id; // expando\n instances[ id ] = this; // associate via id\n // initial properties\n this.selectedIndex = 0;\n // how many frames slider has been in same position\n this.restingFrames = 0;\n // initial physics properties\n this.x = 0;\n this.velocity = 0;\n this.originSide = this.options.rightToLeft ? 'right' : 'left';\n // create viewport & slider\n this.viewport = document.createElement('div');\n this.viewport.className = 'flickity-viewport';\n this._createSlider();\n\n if ( this.options.resize || this.options.watchCSS ) {\n window.addEventListener( 'resize', this );\n }\n\n // add listeners from on option\n for ( var eventName in this.options.on ) {\n var listener = this.options.on[ eventName ];\n this.on( eventName, listener );\n }\n\n Flickity.createMethods.forEach( function( method ) {\n this[ method ]();\n }, this );\n\n if ( this.options.watchCSS ) {\n this.watchCSS();\n } else {\n this.activate();\n }\n\n};\n\n/**\n * set options\n * @param {Object} opts - options to extend\n */\nproto.option = function( opts ) {\n utils.extend( this.options, opts );\n};\n\nproto.activate = function() {\n if ( this.isActive ) {\n return;\n }\n this.isActive = true;\n this.element.classList.add('flickity-enabled');\n if ( this.options.rightToLeft ) {\n this.element.classList.add('flickity-rtl');\n }\n\n this.getSize();\n // move initial cell elements so they can be loaded as cells\n var cellElems = this._filterFindCellElements( this.element.children );\n moveElements( cellElems, this.slider );\n this.viewport.appendChild( this.slider );\n this.element.appendChild( this.viewport );\n // get cells from children\n this.reloadCells();\n\n if ( this.options.accessibility ) {\n // allow element to focusable\n this.element.tabIndex = 0;\n // listen for key presses\n this.element.addEventListener( 'keydown', this );\n }\n\n this.emitEvent('activate');\n this.selectInitialIndex();\n // flag for initial activation, for using initialIndex\n this.isInitActivated = true;\n // ready event. #493\n this.dispatchEvent('ready');\n};\n\n// slider positions the cells\nproto._createSlider = function() {\n // slider element does all the positioning\n var slider = document.createElement('div');\n slider.className = 'flickity-slider';\n slider.style[ this.originSide ] = 0;\n this.slider = slider;\n};\n\nproto._filterFindCellElements = function( elems ) {\n return utils.filterFindElements( elems, this.options.cellSelector );\n};\n\n// goes through all children\nproto.reloadCells = function() {\n // collection of item elements\n this.cells = this._makeCells( this.slider.children );\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n};\n\n/**\n * turn elements into Flickity.Cells\n * @param {[Array, NodeList, HTMLElement]} elems - elements to make into cells\n * @returns {Array} items - collection of new Flickity Cells\n */\nproto._makeCells = function( elems ) {\n var cellElems = this._filterFindCellElements( elems );\n\n // create new Flickity for collection\n var cells = cellElems.map( function( cellElem ) {\n return new Cell( cellElem, this );\n }, this );\n\n return cells;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.getLastSlide = function() {\n return this.slides[ this.slides.length - 1 ];\n};\n\n// positions all cells\nproto.positionCells = function() {\n // size all cells\n this._sizeCells( this.cells );\n // position all cells\n this._positionCells( 0 );\n};\n\n/**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\nproto._positionCells = function( index ) {\n index = index || 0;\n // also measure maxCellHeight\n // start 0 if positioning all cells\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n var cellX = 0;\n // get cellX\n if ( index > 0 ) {\n var startCell = this.cells[ index - 1 ];\n cellX = startCell.x + startCell.size.outerWidth;\n }\n var len = this.cells.length;\n for ( var i = index; i < len; i++ ) {\n var cell = this.cells[i];\n cell.setPosition( cellX );\n cellX += cell.size.outerWidth;\n this.maxCellHeight = Math.max( cell.size.outerHeight, this.maxCellHeight );\n }\n // keep track of cellX for wrap-around\n this.slideableWidth = cellX;\n // slides\n this.updateSlides();\n // contain slides target\n this._containSlides();\n // update slidesWidth\n this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0;\n};\n\n/**\n * cell.getSize() on multiple cells\n * @param {Array} cells - cells to size\n */\nproto._sizeCells = function( cells ) {\n cells.forEach( function( cell ) {\n cell.getSize();\n } );\n};\n\n// -------------------------- -------------------------- //\n\nproto.updateSlides = function() {\n this.slides = [];\n if ( !this.cells.length ) {\n return;\n }\n\n var slide = new Slide( this );\n this.slides.push( slide );\n var isOriginLeft = this.originSide == 'left';\n var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\n\n var canCellFit = this._getCanCellFit();\n\n this.cells.forEach( function( cell, i ) {\n // just add cell if first cell in slide\n if ( !slide.cells.length ) {\n slide.addCell( cell );\n return;\n }\n\n var slideWidth = ( slide.outerWidth - slide.firstMargin ) +\n ( cell.size.outerWidth - cell.size[ nextMargin ] );\n\n if ( canCellFit.call( this, i, slideWidth ) ) {\n slide.addCell( cell );\n } else {\n // doesn't fit, new slide\n slide.updateTarget();\n\n slide = new Slide( this );\n this.slides.push( slide );\n slide.addCell( cell );\n }\n }, this );\n // last slide\n slide.updateTarget();\n // update .selectedSlide\n this.updateSelectedSlide();\n};\n\nproto._getCanCellFit = function() {\n var groupCells = this.options.groupCells;\n if ( !groupCells ) {\n return function() {\n return false;\n };\n } else if ( typeof groupCells == 'number' ) {\n // group by number. 3 -> [0,1,2], [3,4,5], ...\n var number = parseInt( groupCells, 10 );\n return function( i ) {\n return ( i % number ) !== 0;\n };\n }\n // default, group by width of slide\n // parse '75%\n var percentMatch = typeof groupCells == 'string' &&\n groupCells.match( /^(\\d+)%$/ );\n var percent = percentMatch ? parseInt( percentMatch[1], 10 ) / 100 : 1;\n return function( i, slideWidth ) {\n /* eslint-disable-next-line no-invalid-this */\n return slideWidth <= ( this.size.innerWidth + 1 ) * percent;\n };\n};\n\n// alias _init for jQuery plugin .flickity()\nproto._init =\nproto.reposition = function() {\n this.positionCells();\n this.positionSliderAtSelected();\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n this.setCellAlign();\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\n};\n\nvar cellAlignShorthands = {\n // cell align, then based on origin side\n center: {\n left: 0.5,\n right: 0.5,\n },\n left: {\n left: 0,\n right: 1,\n },\n right: {\n right: 0,\n left: 1,\n },\n};\n\nproto.setCellAlign = function() {\n var shorthand = cellAlignShorthands[ this.options.cellAlign ];\n this.cellAlign = shorthand ? shorthand[ this.originSide ] : this.options.cellAlign;\n};\n\nproto.setGallerySize = function() {\n if ( this.options.setGallerySize ) {\n var height = this.options.adaptiveHeight && this.selectedSlide ?\n this.selectedSlide.height : this.maxCellHeight;\n this.viewport.style.height = height + 'px';\n }\n};\n\nproto._getWrapShiftCells = function() {\n // only for wrap-around\n if ( !this.options.wrapAround ) {\n return;\n }\n // unshift previous cells\n this._unshiftCells( this.beforeShiftCells );\n this._unshiftCells( this.afterShiftCells );\n // get before cells\n // initial gap\n var gapX = this.cursorPosition;\n var cellIndex = this.cells.length - 1;\n this.beforeShiftCells = this._getGapCells( gapX, cellIndex, -1 );\n // get after cells\n // ending gap between last cell and end of gallery viewport\n gapX = this.size.innerWidth - this.cursorPosition;\n // start cloning at first cell, working forwards\n this.afterShiftCells = this._getGapCells( gapX, 0, 1 );\n};\n\nproto._getGapCells = function( gapX, cellIndex, increment ) {\n // keep adding cells until the cover the initial gap\n var cells = [];\n while ( gapX > 0 ) {\n var cell = this.cells[ cellIndex ];\n if ( !cell ) {\n break;\n }\n cells.push( cell );\n cellIndex += increment;\n gapX -= cell.size.outerWidth;\n }\n return cells;\n};\n\n// ----- contain ----- //\n\n// contain cell targets so no excess sliding\nproto._containSlides = function() {\n if ( !this.options.contain || this.options.wrapAround || !this.cells.length ) {\n return;\n }\n var isRightToLeft = this.options.rightToLeft;\n var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\n var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\n var contentWidth = this.slideableWidth - this.getLastCell().size[ endMargin ];\n // content is less than gallery size\n var isContentSmaller = contentWidth < this.size.innerWidth;\n // bounds\n var beginBound = this.cursorPosition + this.cells[0].size[ beginMargin ];\n var endBound = contentWidth - this.size.innerWidth * ( 1 - this.cellAlign );\n // contain each cell target\n this.slides.forEach( function( slide ) {\n if ( isContentSmaller ) {\n // all cells fit inside gallery\n slide.target = contentWidth * this.cellAlign;\n } else {\n // contain to bounds\n slide.target = Math.max( slide.target, beginBound );\n slide.target = Math.min( slide.target, endBound );\n }\n }, this );\n};\n\n// ----- ----- //\n\n/**\n * emits events via eventEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n var emitArgs = event ? [ event ].concat( args ) : args;\n this.emitEvent( type, emitArgs );\n\n if ( jQuery && this.$element ) {\n // default trigger with type if no event\n type += this.options.namespaceJQueryEvents ? '.flickity' : '';\n var $event = type;\n if ( event ) {\n // create jQuery event\n var jQEvent = new jQuery.Event( event );\n jQEvent.type = type;\n $event = jQEvent;\n }\n this.$element.trigger( $event, args );\n }\n};\n\n// -------------------------- select -------------------------- //\n\n/**\n * @param {Integer} index - index of the slide\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\n * @param {Boolean} isInstant - will immediately set position at selected cell\n */\nproto.select = function( index, isWrap, isInstant ) {\n if ( !this.isActive ) {\n return;\n }\n index = parseInt( index, 10 );\n this._wrapSelect( index );\n\n if ( this.options.wrapAround || isWrap ) {\n index = utils.modulo( index, this.slides.length );\n }\n // bail if invalid index\n if ( !this.slides[ index ] ) {\n return;\n }\n var prevIndex = this.selectedIndex;\n this.selectedIndex = index;\n this.updateSelectedSlide();\n if ( isInstant ) {\n this.positionSliderAtSelected();\n } else {\n this.startAnimation();\n }\n if ( this.options.adaptiveHeight ) {\n this.setGallerySize();\n }\n // events\n this.dispatchEvent( 'select', null, [ index ] );\n // change event if new index\n if ( index != prevIndex ) {\n this.dispatchEvent( 'change', null, [ index ] );\n }\n // old v1 event name, remove in v3\n this.dispatchEvent('cellSelect');\n};\n\n// wraps position for wrapAround, to move to closest slide. #113\nproto._wrapSelect = function( index ) {\n var len = this.slides.length;\n var isWrapping = this.options.wrapAround && len > 1;\n if ( !isWrapping ) {\n return index;\n }\n var wrapIndex = utils.modulo( index, len );\n // go to shortest\n var delta = Math.abs( wrapIndex - this.selectedIndex );\n var backWrapDelta = Math.abs( ( wrapIndex + len ) - this.selectedIndex );\n var forewardWrapDelta = Math.abs( ( wrapIndex - len ) - this.selectedIndex );\n if ( !this.isDragSelect && backWrapDelta < delta ) {\n index += len;\n } else if ( !this.isDragSelect && forewardWrapDelta < delta ) {\n index -= len;\n }\n // wrap position so slider is within normal area\n if ( index < 0 ) {\n this.x -= this.slideableWidth;\n } else if ( index >= len ) {\n this.x += this.slideableWidth;\n }\n};\n\nproto.previous = function( isWrap, isInstant ) {\n this.select( this.selectedIndex - 1, isWrap, isInstant );\n};\n\nproto.next = function( isWrap, isInstant ) {\n this.select( this.selectedIndex + 1, isWrap, isInstant );\n};\n\nproto.updateSelectedSlide = function() {\n var slide = this.slides[ this.selectedIndex ];\n // selectedIndex could be outside of slides, if triggered before resize()\n if ( !slide ) {\n return;\n }\n // unselect previous selected slide\n this.unselectSelectedSlide();\n // update new selected slide\n this.selectedSlide = slide;\n slide.select();\n this.selectedCells = slide.cells;\n this.selectedElements = slide.getCellElements();\n // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n // Remove in v3?\n this.selectedCell = slide.cells[0];\n this.selectedElement = this.selectedElements[0];\n};\n\nproto.unselectSelectedSlide = function() {\n if ( this.selectedSlide ) {\n this.selectedSlide.unselect();\n }\n};\n\nproto.selectInitialIndex = function() {\n var initialIndex = this.options.initialIndex;\n // already activated, select previous selectedIndex\n if ( this.isInitActivated ) {\n this.select( this.selectedIndex, false, true );\n return;\n }\n // select with selector string\n if ( initialIndex && typeof initialIndex == 'string' ) {\n var cell = this.queryCell( initialIndex );\n if ( cell ) {\n this.selectCell( initialIndex, false, true );\n return;\n }\n }\n\n var index = 0;\n // select with number\n if ( initialIndex && this.slides[ initialIndex ] ) {\n index = initialIndex;\n }\n // select instantly\n this.select( index, false, true );\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, Number]} value - zero-based index or element to select\n * @param {Boolean} isWrap - enables wrapping around for extra index\n * @param {Boolean} isInstant - disables slide animation\n */\nproto.selectCell = function( value, isWrap, isInstant ) {\n // get cell\n var cell = this.queryCell( value );\n if ( !cell ) {\n return;\n }\n\n var index = this.getCellSlideIndex( cell );\n this.select( index, isWrap, isInstant );\n};\n\nproto.getCellSlideIndex = function( cell ) {\n // get index of slides that has cell\n for ( var i = 0; i < this.slides.length; i++ ) {\n var slide = this.slides[i];\n var index = slide.cells.indexOf( cell );\n if ( index != -1 ) {\n return i;\n }\n }\n};\n\n// -------------------------- get cells -------------------------- //\n\n/**\n * get Flickity.Cell, given an Element\n * @param {Element} elem - matching cell element\n * @returns {Flickity.Cell} cell - matching cell\n */\nproto.getCell = function( elem ) {\n // loop through cells to get the one that matches\n for ( var i = 0; i < this.cells.length; i++ ) {\n var cell = this.cells[i];\n if ( cell.element == elem ) {\n return cell;\n }\n }\n};\n\n/**\n * get collection of Flickity.Cells, given Elements\n * @param {[Element, Array, NodeList]} elems - multiple elements\n * @returns {Array} cells - Flickity.Cells\n */\nproto.getCells = function( elems ) {\n elems = utils.makeArray( elems );\n var cells = [];\n elems.forEach( function( elem ) {\n var cell = this.getCell( elem );\n if ( cell ) {\n cells.push( cell );\n }\n }, this );\n return cells;\n};\n\n/**\n * get cell elements\n * @returns {Array} cellElems\n */\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\n/**\n * get parent cell from an element\n * @param {Element} elem - child element\n * @returns {Flickit.Cell} cell - parent cell\n */\nproto.getParentCell = function( elem ) {\n // first check if elem is cell\n var cell = this.getCell( elem );\n if ( cell ) {\n return cell;\n }\n // try to get parent cell elem\n elem = utils.getParent( elem, '.flickity-slider > *' );\n return this.getCell( elem );\n};\n\n/**\n * get cells adjacent to a slide\n * @param {Integer} adjCount - number of adjacent slides\n * @param {Integer} index - index of slide to start\n * @returns {Array} cells - array of Flickity.Cells\n */\nproto.getAdjacentCellElements = function( adjCount, index ) {\n if ( !adjCount ) {\n return this.selectedSlide.getCellElements();\n }\n index = index === undefined ? this.selectedIndex : index;\n\n var len = this.slides.length;\n if ( 1 + ( adjCount * 2 ) >= len ) {\n return this.getCellElements();\n }\n\n var cellElems = [];\n for ( var i = index - adjCount; i <= index + adjCount; i++ ) {\n var slideIndex = this.options.wrapAround ? utils.modulo( i, len ) : i;\n var slide = this.slides[ slideIndex ];\n if ( slide ) {\n cellElems = cellElems.concat( slide.getCellElements() );\n }\n }\n return cellElems;\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, String, Number]} selector - element, selector string, or index\n * @returns {Flickity.Cell} - matching cell\n */\nproto.queryCell = function( selector ) {\n if ( typeof selector == 'number' ) {\n // use number as index\n return this.cells[ selector ];\n }\n if ( typeof selector == 'string' ) {\n // do not select invalid selectors from hash: #123, #/. #791\n if ( selector.match( /^[#.]?[\\d/]/ ) ) {\n return;\n }\n // use string as selector, get element\n selector = this.element.querySelector( selector );\n }\n // get cell from element\n return this.getCell( selector );\n};\n\n// -------------------------- events -------------------------- //\n\nproto.uiChange = function() {\n this.emitEvent('uiChange');\n};\n\n// keep focus on element when child UI elements are clicked\nproto.childUIPointerDown = function( event ) {\n // HACK iOS does not allow touch events to bubble up?!\n if ( event.type != 'touchstart' ) {\n event.preventDefault();\n }\n this.focus();\n};\n\n// ----- resize ----- //\n\nproto.onresize = function() {\n this.watchCSS();\n this.resize();\n};\n\nutils.debounceMethod( Flickity, 'onresize', 150 );\n\nproto.resize = function() {\n // #1177 disable resize behavior when animating or dragging for iOS 15\n if ( !this.isActive || this.isAnimating || this.isDragging ) {\n return;\n }\n this.getSize();\n // wrap values\n if ( this.options.wrapAround ) {\n this.x = utils.modulo( this.x, this.slideableWidth );\n }\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n this.emitEvent('resize');\n // update selected index for group slides, instant\n // TODO: position can be lost between groups of various numbers\n var selectedElement = this.selectedElements && this.selectedElements[0];\n this.selectCell( selectedElement, false, true );\n};\n\n// watches the :after property, activates/deactivates\nproto.watchCSS = function() {\n var watchOption = this.options.watchCSS;\n if ( !watchOption ) {\n return;\n }\n\n var afterContent = getComputedStyle( this.element, ':after' ).content;\n // activate if :after { content: 'flickity' }\n if ( afterContent.indexOf('flickity') != -1 ) {\n this.activate();\n } else {\n this.deactivate();\n }\n};\n\n// ----- keydown ----- //\n\n// go previous/next if left/right keys pressed\nproto.onkeydown = function( event ) {\n // only work if element is in focus\n var isNotFocused = document.activeElement && document.activeElement != this.element;\n if ( !this.options.accessibility || isNotFocused ) {\n return;\n }\n\n var handler = Flickity.keyboardHandlers[ event.keyCode ];\n if ( handler ) {\n handler.call( this );\n }\n};\n\nFlickity.keyboardHandlers = {\n // left arrow\n 37: function() {\n var leftMethod = this.options.rightToLeft ? 'next' : 'previous';\n this.uiChange();\n this[ leftMethod ]();\n },\n // right arrow\n 39: function() {\n var rightMethod = this.options.rightToLeft ? 'previous' : 'next';\n this.uiChange();\n this[ rightMethod ]();\n },\n};\n\n// ----- focus ----- //\n\nproto.focus = function() {\n // TODO remove scrollTo once focus options gets more support\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus ...\n // #Browser_compatibility\n var prevScrollY = window.pageYOffset;\n this.element.focus({ preventScroll: true });\n // hack to fix scroll jump after focus, #76\n if ( window.pageYOffset != prevScrollY ) {\n window.scrollTo( window.pageXOffset, prevScrollY );\n }\n};\n\n// -------------------------- destroy -------------------------- //\n\n// deactivate all Flickity functionality, but keep stuff available\nproto.deactivate = function() {\n if ( !this.isActive ) {\n return;\n }\n this.element.classList.remove('flickity-enabled');\n this.element.classList.remove('flickity-rtl');\n this.unselectSelectedSlide();\n // destroy cells\n this.cells.forEach( function( cell ) {\n cell.destroy();\n } );\n this.element.removeChild( this.viewport );\n // move child elements back into element\n moveElements( this.slider.children, this.element );\n if ( this.options.accessibility ) {\n this.element.removeAttribute('tabIndex');\n this.element.removeEventListener( 'keydown', this );\n }\n // set flags\n this.isActive = false;\n this.emitEvent('deactivate');\n};\n\nproto.destroy = function() {\n this.deactivate();\n window.removeEventListener( 'resize', this );\n this.allOff();\n this.emitEvent('destroy');\n if ( jQuery && this.$element ) {\n jQuery.removeData( this.element, 'flickity' );\n }\n delete this.element.flickityGUID;\n delete instances[ this.guid ];\n};\n\n// -------------------------- prototype -------------------------- //\n\nutils.extend( proto, animatePrototype );\n\n// -------------------------- extras -------------------------- //\n\n/**\n * get Flickity instance from element\n * @param {[Element, String]} elem - element or selector string\n * @returns {Flickity} - Flickity instance\n */\nFlickity.data = function( elem ) {\n elem = utils.getQueryElement( elem );\n var id = elem && elem.flickityGUID;\n return id && instances[ id ];\n};\n\nutils.htmlInit( Flickity, 'flickity' );\n\nif ( jQuery && jQuery.bridget ) {\n jQuery.bridget( 'flickity', Flickity );\n}\n\n// set internal jQuery, for Webpack + jQuery v3, #478\nFlickity.setJQuery = function( jq ) {\n jQuery = jq;\n};\n\nFlickity.Cell = Cell;\nFlickity.Slide = Slide;\n\nreturn Flickity;\n\n} ) );\n","/*!\n * Flickity v2.3.0\n * Touch, responsive, flickable carousels\n *\n * Licensed GPLv3 for open source use\n * or Flickity Commercial License for commercial use\n *\n * https://flickity.metafizzy.co\n * Copyright 2015-2021 Metafizzy\n */\n\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n './drag',\n './prev-next-button',\n './page-dots',\n './player',\n './add-remove-cell',\n './lazyload',\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('./flickity'),\n require('./drag'),\n require('./prev-next-button'),\n require('./page-dots'),\n require('./player'),\n require('./add-remove-cell'),\n require('./lazyload')\n );\n }\n\n} )( window, function factory( Flickity ) {\n return Flickity;\n} );\n","// lazyload\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n'use strict';\n\nFlickity.createMethods.push('_createLazyload');\nvar proto = Flickity.prototype;\n\nproto._createLazyload = function() {\n this.on( 'select', this.lazyLoad );\n};\n\nproto.lazyLoad = function() {\n var lazyLoad = this.options.lazyLoad;\n if ( !lazyLoad ) {\n return;\n }\n // get adjacent cells, use lazyLoad option for adjacent count\n var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n var cellElems = this.getAdjacentCellElements( adjCount );\n // get lazy images in those cells\n var lazyImages = [];\n cellElems.forEach( function( cellElem ) {\n var lazyCellImages = getCellLazyImages( cellElem );\n lazyImages = lazyImages.concat( lazyCellImages );\n } );\n // load lazy images\n lazyImages.forEach( function( img ) {\n new LazyLoader( img, this );\n }, this );\n};\n\nfunction getCellLazyImages( cellElem ) {\n // check if cell element is lazy image\n if ( cellElem.nodeName == 'IMG' ) {\n var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\n var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\n var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\n if ( lazyloadAttr || srcAttr || srcsetAttr ) {\n return [ cellElem ];\n }\n }\n // select lazy images in cell\n var lazySelector = 'img[data-flickity-lazyload], ' +\n 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n var imgs = cellElem.querySelectorAll( lazySelector );\n return utils.makeArray( imgs );\n}\n\n// -------------------------- LazyLoader -------------------------- //\n\n/**\n * class to handle loading images\n * @param {Image} img - Image element\n * @param {Flickity} flickity - Flickity instance\n */\nfunction LazyLoader( img, flickity ) {\n this.img = img;\n this.flickity = flickity;\n this.load();\n}\n\nLazyLoader.prototype.handleEvent = utils.handleEvent;\n\nLazyLoader.prototype.load = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n // get src & srcset\n var src = this.img.getAttribute('data-flickity-lazyload') ||\n this.img.getAttribute('data-flickity-lazyload-src');\n var srcset = this.img.getAttribute('data-flickity-lazyload-srcset');\n // set src & serset\n this.img.src = src;\n if ( srcset ) {\n this.img.setAttribute( 'srcset', srcset );\n }\n // remove attr\n this.img.removeAttribute('data-flickity-lazyload');\n this.img.removeAttribute('data-flickity-lazyload-src');\n this.img.removeAttribute('data-flickity-lazyload-srcset');\n};\n\nLazyLoader.prototype.onload = function( event ) {\n this.complete( event, 'flickity-lazyloaded' );\n};\n\nLazyLoader.prototype.onerror = function( event ) {\n this.complete( event, 'flickity-lazyerror' );\n};\n\nLazyLoader.prototype.complete = function( event, className ) {\n // unbind events\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n\n var cell = this.flickity.getParentCell( this.img );\n var cellElem = cell && cell.element;\n this.flickity.cellSizeChange( cellElem );\n\n this.img.classList.add( className );\n this.flickity.dispatchEvent( 'lazyLoad', event, cellElem );\n};\n\n// ----- ----- //\n\nFlickity.LazyLoader = LazyLoader;\n\nreturn Flickity;\n\n} ) );\n","// page dots\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unipointer, utils ) {\n return factory( window, Flickity, Unipointer, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n\n// -------------------------- PageDots -------------------------- //\n\n'use strict';\n\nfunction PageDots( parent ) {\n this.parent = parent;\n this._create();\n}\n\nPageDots.prototype = Object.create( Unipointer.prototype );\n\nPageDots.prototype._create = function() {\n // create holder element\n this.holder = document.createElement('ol');\n this.holder.className = 'flickity-page-dots';\n // create dots, array of elements\n this.dots = [];\n // events\n this.handleClick = this.onClick.bind( this );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPageDots.prototype.activate = function() {\n this.setDots();\n this.holder.addEventListener( 'click', this.handleClick );\n this.bindStartEvent( this.holder );\n // add to DOM\n this.parent.element.appendChild( this.holder );\n};\n\nPageDots.prototype.deactivate = function() {\n this.holder.removeEventListener( 'click', this.handleClick );\n this.unbindStartEvent( this.holder );\n // remove from DOM\n this.parent.element.removeChild( this.holder );\n};\n\nPageDots.prototype.setDots = function() {\n // get difference between number of slides and number of dots\n var delta = this.parent.slides.length - this.dots.length;\n if ( delta > 0 ) {\n this.addDots( delta );\n } else if ( delta < 0 ) {\n this.removeDots( -delta );\n }\n};\n\nPageDots.prototype.addDots = function( count ) {\n var fragment = document.createDocumentFragment();\n var newDots = [];\n var length = this.dots.length;\n var max = length + count;\n\n for ( var i = length; i < max; i++ ) {\n var dot = document.createElement('li');\n dot.className = 'dot';\n dot.setAttribute( 'aria-label', 'Page dot ' + ( i + 1 ) );\n fragment.appendChild( dot );\n newDots.push( dot );\n }\n\n this.holder.appendChild( fragment );\n this.dots = this.dots.concat( newDots );\n};\n\nPageDots.prototype.removeDots = function( count ) {\n // remove from this.dots collection\n var removeDots = this.dots.splice( this.dots.length - count, count );\n // remove from DOM\n removeDots.forEach( function( dot ) {\n this.holder.removeChild( dot );\n }, this );\n};\n\nPageDots.prototype.updateSelected = function() {\n // remove selected class on previous\n if ( this.selectedDot ) {\n this.selectedDot.className = 'dot';\n this.selectedDot.removeAttribute('aria-current');\n }\n // don't proceed if no dots\n if ( !this.dots.length ) {\n return;\n }\n this.selectedDot = this.dots[ this.parent.selectedIndex ];\n this.selectedDot.className = 'dot is-selected';\n this.selectedDot.setAttribute( 'aria-current', 'step' );\n};\n\nPageDots.prototype.onTap = // old method name, backwards-compatible\nPageDots.prototype.onClick = function( event ) {\n var target = event.target;\n // only care about dot clicks\n if ( target.nodeName != 'LI' ) {\n return;\n }\n\n this.parent.uiChange();\n var index = this.dots.indexOf( target );\n this.parent.select( index );\n};\n\nPageDots.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\nFlickity.PageDots = PageDots;\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pageDots: true,\n} );\n\nFlickity.createMethods.push('_createPageDots');\n\nvar proto = Flickity.prototype;\n\nproto._createPageDots = function() {\n if ( !this.options.pageDots ) {\n return;\n }\n this.pageDots = new PageDots( this );\n // events\n this.on( 'activate', this.activatePageDots );\n this.on( 'select', this.updateSelectedPageDots );\n this.on( 'cellChange', this.updatePageDots );\n this.on( 'resize', this.updatePageDots );\n this.on( 'deactivate', this.deactivatePageDots );\n};\n\nproto.activatePageDots = function() {\n this.pageDots.activate();\n};\n\nproto.updateSelectedPageDots = function() {\n this.pageDots.updateSelected();\n};\n\nproto.updatePageDots = function() {\n this.pageDots.setDots();\n};\n\nproto.deactivatePageDots = function() {\n this.pageDots.deactivate();\n};\n\n// ----- ----- //\n\nFlickity.PageDots = PageDots;\n\nreturn Flickity;\n\n} ) );\n","// player & autoPlay\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter',\n 'fizzy-ui-utils/utils',\n './flickity',\n ], function( EvEmitter, utils, Flickity ) {\n return factory( EvEmitter, utils, Flickity );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('ev-emitter'),\n require('fizzy-ui-utils'),\n require('./flickity')\n );\n } else {\n // browser global\n factory(\n window.EvEmitter,\n window.fizzyUIUtils,\n window.Flickity\n );\n }\n\n}( window, function factory( EvEmitter, utils, Flickity ) {\n\n'use strict';\n\n// -------------------------- Player -------------------------- //\n\nfunction Player( parent ) {\n this.parent = parent;\n this.state = 'stopped';\n // visibility change event handler\n this.onVisibilityChange = this.visibilityChange.bind( this );\n this.onVisibilityPlay = this.visibilityPlay.bind( this );\n}\n\nPlayer.prototype = Object.create( EvEmitter.prototype );\n\n// start play\nPlayer.prototype.play = function() {\n if ( this.state == 'playing' ) {\n return;\n }\n // do not play if page is hidden, start playing when page is visible\n var isPageHidden = document.hidden;\n if ( isPageHidden ) {\n document.addEventListener( 'visibilitychange', this.onVisibilityPlay );\n return;\n }\n\n this.state = 'playing';\n // listen to visibility change\n document.addEventListener( 'visibilitychange', this.onVisibilityChange );\n // start ticking\n this.tick();\n};\n\nPlayer.prototype.tick = function() {\n // do not tick if not playing\n if ( this.state != 'playing' ) {\n return;\n }\n\n var time = this.parent.options.autoPlay;\n // default to 3 seconds\n time = typeof time == 'number' ? time : 3000;\n var _this = this;\n // HACK: reset ticks if stopped and started within interval\n this.clear();\n this.timeout = setTimeout( function() {\n _this.parent.next( true );\n _this.tick();\n }, time );\n};\n\nPlayer.prototype.stop = function() {\n this.state = 'stopped';\n this.clear();\n // remove visibility change event\n document.removeEventListener( 'visibilitychange', this.onVisibilityChange );\n};\n\nPlayer.prototype.clear = function() {\n clearTimeout( this.timeout );\n};\n\nPlayer.prototype.pause = function() {\n if ( this.state == 'playing' ) {\n this.state = 'paused';\n this.clear();\n }\n};\n\nPlayer.prototype.unpause = function() {\n // re-start play if paused\n if ( this.state == 'paused' ) {\n this.play();\n }\n};\n\n// pause if page visibility is hidden, unpause if visible\nPlayer.prototype.visibilityChange = function() {\n var isPageHidden = document.hidden;\n this[ isPageHidden ? 'pause' : 'unpause' ]();\n};\n\nPlayer.prototype.visibilityPlay = function() {\n this.play();\n document.removeEventListener( 'visibilitychange', this.onVisibilityPlay );\n};\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pauseAutoPlayOnHover: true,\n} );\n\nFlickity.createMethods.push('_createPlayer');\nvar proto = Flickity.prototype;\n\nproto._createPlayer = function() {\n this.player = new Player( this );\n\n this.on( 'activate', this.activatePlayer );\n this.on( 'uiChange', this.stopPlayer );\n this.on( 'pointerDown', this.stopPlayer );\n this.on( 'deactivate', this.deactivatePlayer );\n};\n\nproto.activatePlayer = function() {\n if ( !this.options.autoPlay ) {\n return;\n }\n this.player.play();\n this.element.addEventListener( 'mouseenter', this );\n};\n\n// Player API, don't hate the ... thanks I know where the door is\n\nproto.playPlayer = function() {\n this.player.play();\n};\n\nproto.stopPlayer = function() {\n this.player.stop();\n};\n\nproto.pausePlayer = function() {\n this.player.pause();\n};\n\nproto.unpausePlayer = function() {\n this.player.unpause();\n};\n\nproto.deactivatePlayer = function() {\n this.player.stop();\n this.element.removeEventListener( 'mouseenter', this );\n};\n\n// ----- mouseenter/leave ----- //\n\n// pause auto-play on hover\nproto.onmouseenter = function() {\n if ( !this.options.pauseAutoPlayOnHover ) {\n return;\n }\n this.player.pause();\n this.element.addEventListener( 'mouseleave', this );\n};\n\n// resume auto-play on hover off\nproto.onmouseleave = function() {\n this.player.unpause();\n this.element.removeEventListener( 'mouseleave', this );\n};\n\n// ----- ----- //\n\nFlickity.Player = Player;\n\nreturn Flickity;\n\n} ) );\n","// prev/next buttons\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unipointer, utils ) {\n return factory( window, Flickity, Unipointer, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n'use strict';\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\n// -------------------------- PrevNextButton -------------------------- //\n\nfunction PrevNextButton( direction, parent ) {\n this.direction = direction;\n this.parent = parent;\n this._create();\n}\n\nPrevNextButton.prototype = Object.create( Unipointer.prototype );\n\nPrevNextButton.prototype._create = function() {\n // properties\n this.isEnabled = true;\n this.isPrevious = this.direction == -1;\n var leftDirection = this.parent.options.rightToLeft ? 1 : -1;\n this.isLeft = this.direction == leftDirection;\n\n var element = this.element = document.createElement('button');\n element.className = 'flickity-button flickity-prev-next-button';\n element.className += this.isPrevious ? ' previous' : ' next';\n // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n element.setAttribute( 'type', 'button' );\n // init as disabled\n this.disable();\n\n element.setAttribute( 'aria-label', this.isPrevious ? 'Previous' : 'Next' );\n\n // create arrow\n var svg = this.createSVG();\n element.appendChild( svg );\n // events\n this.parent.on( 'select', this.update.bind( this ) );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPrevNextButton.prototype.activate = function() {\n this.bindStartEvent( this.element );\n this.element.addEventListener( 'click', this );\n // add to DOM\n this.parent.element.appendChild( this.element );\n};\n\nPrevNextButton.prototype.deactivate = function() {\n // remove from DOM\n this.parent.element.removeChild( this.element );\n // click events\n this.unbindStartEvent( this.element );\n this.element.removeEventListener( 'click', this );\n};\n\nPrevNextButton.prototype.createSVG = function() {\n var svg = document.createElementNS( svgURI, 'svg' );\n svg.setAttribute( 'class', 'flickity-button-icon' );\n svg.setAttribute( 'viewBox', '0 0 100 100' );\n var path = document.createElementNS( svgURI, 'path' );\n var pathMovements = getArrowMovements( this.parent.options.arrowShape );\n path.setAttribute( 'd', pathMovements );\n path.setAttribute( 'class', 'arrow' );\n // rotate arrow\n if ( !this.isLeft ) {\n path.setAttribute( 'transform', 'translate(100, 100) rotate(180) ' );\n }\n svg.appendChild( path );\n return svg;\n};\n\n// get SVG path movmement\nfunction getArrowMovements( shape ) {\n // use shape as movement if string\n if ( typeof shape == 'string' ) {\n return shape;\n }\n // create movement string\n return 'M ' + shape.x0 + ',50' +\n ' L ' + shape.x1 + ',' + ( shape.y1 + 50 ) +\n ' L ' + shape.x2 + ',' + ( shape.y2 + 50 ) +\n ' L ' + shape.x3 + ',50 ' +\n ' L ' + shape.x2 + ',' + ( 50 - shape.y2 ) +\n ' L ' + shape.x1 + ',' + ( 50 - shape.y1 ) +\n ' Z';\n}\n\nPrevNextButton.prototype.handleEvent = utils.handleEvent;\n\nPrevNextButton.prototype.onclick = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.parent.uiChange();\n var method = this.isPrevious ? 'previous' : 'next';\n this.parent[ method ]();\n};\n\n// ----- ----- //\n\nPrevNextButton.prototype.enable = function() {\n if ( this.isEnabled ) {\n return;\n }\n this.element.disabled = false;\n this.isEnabled = true;\n};\n\nPrevNextButton.prototype.disable = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.element.disabled = true;\n this.isEnabled = false;\n};\n\nPrevNextButton.prototype.update = function() {\n // index of first or last slide, if previous or next\n var slides = this.parent.slides;\n // enable is wrapAround and at least 2 slides\n if ( this.parent.options.wrapAround && slides.length > 1 ) {\n this.enable();\n return;\n }\n var lastIndex = slides.length ? slides.length - 1 : 0;\n var boundIndex = this.isPrevious ? 0 : lastIndex;\n var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\n this[ method ]();\n};\n\nPrevNextButton.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\n// -------------------------- Flickity prototype -------------------------- //\n\nutils.extend( Flickity.defaults, {\n prevNextButtons: true,\n arrowShape: {\n x0: 10,\n x1: 60, y1: 50,\n x2: 70, y2: 40,\n x3: 30,\n },\n} );\n\nFlickity.createMethods.push('_createPrevNextButtons');\nvar proto = Flickity.prototype;\n\nproto._createPrevNextButtons = function() {\n if ( !this.options.prevNextButtons ) {\n return;\n }\n\n this.prevButton = new PrevNextButton( -1, this );\n this.nextButton = new PrevNextButton( 1, this );\n\n this.on( 'activate', this.activatePrevNextButtons );\n};\n\nproto.activatePrevNextButtons = function() {\n this.prevButton.activate();\n this.nextButton.activate();\n this.on( 'deactivate', this.deactivatePrevNextButtons );\n};\n\nproto.deactivatePrevNextButtons = function() {\n this.prevButton.deactivate();\n this.nextButton.deactivate();\n this.off( 'deactivate', this.deactivatePrevNextButtons );\n};\n\n// -------------------------- -------------------------- //\n\nFlickity.PrevNextButton = PrevNextButton;\n\nreturn Flickity;\n\n} ) );\n","// slide\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Slide = factory();\n }\n\n}( window, function factory() {\n'use strict';\n\nfunction Slide( parent ) {\n this.parent = parent;\n this.isOriginLeft = parent.originSide == 'left';\n this.cells = [];\n this.outerWidth = 0;\n this.height = 0;\n}\n\nvar proto = Slide.prototype;\n\nproto.addCell = function( cell ) {\n this.cells.push( cell );\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max( cell.size.outerHeight, this.height );\n // first cell stuff\n if ( this.cells.length == 1 ) {\n this.x = cell.x; // x comes from first cell\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n this.firstMargin = cell.size[ beginMargin ];\n }\n};\n\nproto.updateTarget = function() {\n var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\n var lastCell = this.getLastCell();\n var lastMargin = lastCell ? lastCell.size[ endMargin ] : 0;\n var slideWidth = this.outerWidth - ( this.firstMargin + lastMargin );\n this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.select = function() {\n this.cells.forEach( function( cell ) {\n cell.select();\n } );\n};\n\nproto.unselect = function() {\n this.cells.forEach( function( cell ) {\n cell.unselect();\n } );\n};\n\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\nreturn Slide;\n\n} ) );\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on <html> whenever the\n // window blurs, even if you're tabbing out of the page. ¯\\_(ツ)_/¯\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n }\n\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=e||self).GLightbox=t()}(this,(function(){\"use strict\";function e(e){var t=function(e,t){if(\"object\"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||\"default\");if(\"object\"!=typeof n)return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:t+\"\"}function t(e){return(t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function i(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function n(t,i){for(var n=0;n<i.length;n++){var s=i[n];s.enumerable=s.enumerable||!1,s.configurable=!0,\"value\"in s&&(s.writable=!0),Object.defineProperty(t,e(s.key),s)}}function s(e,t,i){return t&&n(e.prototype,t),i&&n(e,i),Object.defineProperty(e,\"prototype\",{writable:!1}),e}var l=Date.now();function o(){var e={},t=!0,i=0,n=arguments.length;\"[object Boolean]\"===Object.prototype.toString.call(arguments[0])&&(t=arguments[0],i++);for(var s=function(i){for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t&&\"[object Object]\"===Object.prototype.toString.call(i[n])?e[n]=o(!0,e[n],i[n]):e[n]=i[n])};i<n;i++){var l=arguments[i];s(l)}return e}function r(e,t){if((E(e)||e===window||e===document)&&(e=[e]),L(e)||I(e)||(e=[e]),0!=M(e))if(L(e)&&!I(e))for(var i=e.length,n=0;n<i&&!1!==t.call(e[n],e[n],n,e);n++);else if(I(e))for(var s in e)if(P(e,s)&&!1===t.call(e[s],e[s],s,e))break}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=e[l]=e[l]||[],s={all:n,evt:null,found:null};return t&&i&&M(n)>0&&r(n,(function(e,n){if(e.eventName==t&&e.fn.toString()==i.toString())return s.found=!0,s.evt=n,!1})),s}function h(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.onElement,n=t.withCallback,s=t.avoidDuplicate,l=void 0===s||s,o=t.once,h=void 0!==o&&o,d=t.useCapture,c=void 0!==d&&d,u=arguments.length>2?arguments[2]:void 0,g=i||[];function v(e){C(n)&&n.call(u,e,this),h&&v.destroy()}return k(g)&&(g=document.querySelectorAll(g)),v.destroy=function(){r(g,(function(t){var i=a(t,e,v);i.found&&i.all.splice(i.evt,1),t.removeEventListener&&t.removeEventListener(e,v,c)}))},r(g,(function(t){var i=a(t,e,v);(t.addEventListener&&l&&!i.found||!l)&&(t.addEventListener(e,v,c),i.all.push({eventName:e,fn:v}))})),v}function d(e,t){r(t.split(\" \"),(function(t){return e.classList.add(t)}))}function c(e,t){r(t.split(\" \"),(function(t){return e.classList.remove(t)}))}function u(e,t){return e.classList.contains(t)}function g(e,t){for(;e!==document.body;){if(!(e=e.parentElement))return!1;if(\"function\"==typeof e.matches?e.matches(t):e.msMatchesSelector(t))return e}}function v(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e||\"\"===t)return!1;if(\"none\"===t)return C(i)&&i(),!1;var n=b(),s=t.split(\" \");r(s,(function(t){d(e,\"g\"+t)})),h(n,{onElement:e,avoidDuplicate:!1,once:!0,withCallback:function(e,t){r(s,(function(e){c(t,\"g\"+e)})),C(i)&&i()}})}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\";if(\"\"===t)return e.style.webkitTransform=\"\",e.style.MozTransform=\"\",e.style.msTransform=\"\",e.style.OTransform=\"\",e.style.transform=\"\",!1;e.style.webkitTransform=t,e.style.MozTransform=t,e.style.msTransform=t,e.style.OTransform=t,e.style.transform=t}function p(e){e.style.display=\"block\"}function m(e){e.style.display=\"none\"}function y(e){var t=document.createDocumentFragment(),i=document.createElement(\"div\");for(i.innerHTML=e;i.firstChild;)t.appendChild(i.firstChild);return t}function x(){return{width:window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,height:window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight}}function b(){var e,t=document.createElement(\"fakeelement\"),i={animation:\"animationend\",OAnimation:\"oAnimationEnd\",MozAnimation:\"animationend\",WebkitAnimation:\"webkitAnimationEnd\"};for(e in i)if(void 0!==t.style[e])return i[e]}function S(e,t,i,n){if(e())t();else{var s;i||(i=100);var l=setInterval((function(){e()&&(clearInterval(l),s&&clearTimeout(s),t())}),i);n&&(s=setTimeout((function(){clearInterval(l)}),n))}}function w(e,t,i){if(O(e))console.error(\"Inject assets error\");else if(C(t)&&(i=t,t=!1),k(t)&&t in window)C(i)&&i();else{var n;if(-1!==e.indexOf(\".css\")){if((n=document.querySelectorAll('link[href=\"'+e+'\"]'))&&n.length>0)return void(C(i)&&i());var s=document.getElementsByTagName(\"head\")[0],l=s.querySelectorAll('link[rel=\"stylesheet\"]'),o=document.createElement(\"link\");return o.rel=\"stylesheet\",o.type=\"text/css\",o.href=e,o.media=\"all\",l?s.insertBefore(o,l[0]):s.appendChild(o),void(C(i)&&i())}if((n=document.querySelectorAll('script[src=\"'+e+'\"]'))&&n.length>0){if(C(i)){if(k(t))return S((function(){return void 0!==window[t]}),(function(){i()})),!1;i()}}else{var r=document.createElement(\"script\");r.type=\"text/javascript\",r.src=e,r.onload=function(){if(C(i)){if(k(t))return S((function(){return void 0!==window[t]}),(function(){i()})),!1;i()}},document.body.appendChild(r)}}}function T(){return\"navigator\"in window&&window.navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(Android)|(PlayBook)|(BB10)|(BlackBerry)|(Opera Mini)|(IEMobile)|(webOS)|(MeeGo)/i)}function C(e){return\"function\"==typeof e}function k(e){return\"string\"==typeof e}function E(e){return!(!e||!e.nodeType||1!=e.nodeType)}function A(e){return Array.isArray(e)}function L(e){return e&&e.length&&isFinite(e.length)}function I(e){return\"object\"===t(e)&&null!=e&&!C(e)&&!A(e)}function O(e){return null==e}function P(e,t){return null!==e&&hasOwnProperty.call(e,t)}function M(e){if(I(e)){if(e.keys)return e.keys().length;var t=0;for(var i in e)P(e,i)&&t++;return t}return e.length}function z(e){return!isNaN(parseFloat(e))&&isFinite(e)}function X(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,t=document.querySelectorAll(\".gbtn[data-taborder]:not(.disabled)\");if(!t.length)return!1;if(1==t.length)return t[0];\"string\"==typeof e&&(e=parseInt(e));var i=[];r(t,(function(e){i.push(e.getAttribute(\"data-taborder\"))}));var n=Math.max.apply(Math,i.map((function(e){return parseInt(e)}))),s=e<0?1:e+1;s>n&&(s=\"1\");var l=i.filter((function(e){return e>=parseInt(s)})),o=l.sort()[0];return document.querySelector('.gbtn[data-taborder=\"'.concat(o,'\"]'))}function Y(e){if(e.events.hasOwnProperty(\"keyboard\"))return!1;e.events.keyboard=h(\"keydown\",{onElement:window,withCallback:function(t,i){var n=(t=t||window.event).keyCode;if(9==n){var s=document.querySelector(\".gbtn.focused\");if(!s){var l=!(!document.activeElement||!document.activeElement.nodeName)&&document.activeElement.nodeName.toLocaleLowerCase();if(\"input\"==l||\"textarea\"==l||\"button\"==l)return}t.preventDefault();var o=document.querySelectorAll(\".gbtn[data-taborder]\");if(!o||o.length<=0)return;if(!s){var r=X();return void(r&&(r.focus(),d(r,\"focused\")))}var a=X(s.getAttribute(\"data-taborder\"));c(s,\"focused\"),a&&(a.focus(),d(a,\"focused\"))}39==n&&e.nextSlide(),37==n&&e.prevSlide(),27==n&&e.close()}})}var q=s((function e(t,n){var s=this,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(i(this,e),this.img=t,this.slide=n,this.onclose=l,this.img.setZoomEvents)return!1;this.active=!1,this.zoomedIn=!1,this.dragging=!1,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.img.addEventListener(\"mousedown\",(function(e){return s.dragStart(e)}),!1),this.img.addEventListener(\"mouseup\",(function(e){return s.dragEnd(e)}),!1),this.img.addEventListener(\"mousemove\",(function(e){return s.drag(e)}),!1),this.img.addEventListener(\"click\",(function(e){return s.slide.classList.contains(\"dragging-nav\")?(s.zoomOut(),!1):s.zoomedIn?void(s.zoomedIn&&!s.dragging&&s.zoomOut()):s.zoomIn()}),!1),this.img.setZoomEvents=!0}),[{key:\"zoomIn\",value:function(){var e=this.widowWidth();if(!(this.zoomedIn||e<=768)){var t=this.img;if(t.setAttribute(\"data-style\",t.getAttribute(\"style\")),t.style.maxWidth=t.naturalWidth+\"px\",t.style.maxHeight=t.naturalHeight+\"px\",t.naturalWidth>e){var i=e/2-t.naturalWidth/2;this.setTranslate(this.img.parentNode,i,0)}this.slide.classList.add(\"zoomed\"),this.zoomedIn=!0}}},{key:\"zoomOut\",value:function(){this.img.parentNode.setAttribute(\"style\",\"\"),this.img.setAttribute(\"style\",this.img.getAttribute(\"data-style\")),this.slide.classList.remove(\"zoomed\"),this.zoomedIn=!1,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.onclose&&\"function\"==typeof this.onclose&&this.onclose()}},{key:\"dragStart\",value:function(e){e.preventDefault(),this.zoomedIn?(\"touchstart\"===e.type?(this.initialX=e.touches[0].clientX-this.xOffset,this.initialY=e.touches[0].clientY-this.yOffset):(this.initialX=e.clientX-this.xOffset,this.initialY=e.clientY-this.yOffset),e.target===this.img&&(this.active=!0,this.img.classList.add(\"dragging\"))):this.active=!1}},{key:\"dragEnd\",value:function(e){var t=this;e.preventDefault(),this.initialX=this.currentX,this.initialY=this.currentY,this.active=!1,setTimeout((function(){t.dragging=!1,t.img.isDragging=!1,t.img.classList.remove(\"dragging\")}),100)}},{key:\"drag\",value:function(e){this.active&&(e.preventDefault(),\"touchmove\"===e.type?(this.currentX=e.touches[0].clientX-this.initialX,this.currentY=e.touches[0].clientY-this.initialY):(this.currentX=e.clientX-this.initialX,this.currentY=e.clientY-this.initialY),this.xOffset=this.currentX,this.yOffset=this.currentY,this.img.isDragging=!0,this.dragging=!0,this.setTranslate(this.img,this.currentX,this.currentY))}},{key:\"onMove\",value:function(e){if(this.zoomedIn){var t=e.clientX-this.img.naturalWidth/2,i=e.clientY-this.img.naturalHeight/2;this.setTranslate(this.img,t,i)}}},{key:\"setTranslate\",value:function(e,t,i){e.style.transform=\"translate3d(\"+t+\"px, \"+i+\"px, 0)\"}},{key:\"widowWidth\",value:function(){return window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth}}]),N=s((function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,e);var s=n.dragEl,l=n.toleranceX,o=void 0===l?40:l,r=n.toleranceY,a=void 0===r?65:r,h=n.slide,d=void 0===h?null:h,c=n.instance,u=void 0===c?null:c;this.el=s,this.active=!1,this.dragging=!1,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.direction=null,this.lastDirection=null,this.toleranceX=o,this.toleranceY=a,this.toleranceReached=!1,this.dragContainer=this.el,this.slide=d,this.instance=u,this.el.addEventListener(\"mousedown\",(function(e){return t.dragStart(e)}),!1),this.el.addEventListener(\"mouseup\",(function(e){return t.dragEnd(e)}),!1),this.el.addEventListener(\"mousemove\",(function(e){return t.drag(e)}),!1)}),[{key:\"dragStart\",value:function(e){if(this.slide.classList.contains(\"zoomed\"))this.active=!1;else{\"touchstart\"===e.type?(this.initialX=e.touches[0].clientX-this.xOffset,this.initialY=e.touches[0].clientY-this.yOffset):(this.initialX=e.clientX-this.xOffset,this.initialY=e.clientY-this.yOffset);var t=e.target.nodeName.toLowerCase();e.target.classList.contains(\"nodrag\")||g(e.target,\".nodrag\")||-1!==[\"input\",\"select\",\"textarea\",\"button\",\"a\"].indexOf(t)?this.active=!1:(e.preventDefault(),(e.target===this.el||\"img\"!==t&&g(e.target,\".gslide-inline\"))&&(this.active=!0,this.el.classList.add(\"dragging\"),this.dragContainer=g(e.target,\".ginner-container\")))}}},{key:\"dragEnd\",value:function(e){var t=this;e&&e.preventDefault(),this.initialX=0,this.initialY=0,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.active=!1,this.doSlideChange&&(this.instance.preventOutsideClick=!0,\"right\"==this.doSlideChange&&this.instance.prevSlide(),\"left\"==this.doSlideChange&&this.instance.nextSlide()),this.doSlideClose&&this.instance.close(),this.toleranceReached||this.setTranslate(this.dragContainer,0,0,!0),setTimeout((function(){t.instance.preventOutsideClick=!1,t.toleranceReached=!1,t.lastDirection=null,t.dragging=!1,t.el.isDragging=!1,t.el.classList.remove(\"dragging\"),t.slide.classList.remove(\"dragging-nav\"),t.dragContainer.style.transform=\"\",t.dragContainer.style.transition=\"\"}),100)}},{key:\"drag\",value:function(e){if(this.active){e.preventDefault(),this.slide.classList.add(\"dragging-nav\"),\"touchmove\"===e.type?(this.currentX=e.touches[0].clientX-this.initialX,this.currentY=e.touches[0].clientY-this.initialY):(this.currentX=e.clientX-this.initialX,this.currentY=e.clientY-this.initialY),this.xOffset=this.currentX,this.yOffset=this.currentY,this.el.isDragging=!0,this.dragging=!0,this.doSlideChange=!1,this.doSlideClose=!1;var t=Math.abs(this.currentX),i=Math.abs(this.currentY);if(t>0&&t>=Math.abs(this.currentY)&&(!this.lastDirection||\"x\"==this.lastDirection)){this.yOffset=0,this.lastDirection=\"x\",this.setTranslate(this.dragContainer,this.currentX,0);var n=this.shouldChange();if(!this.instance.settings.dragAutoSnap&&n&&(this.doSlideChange=n),this.instance.settings.dragAutoSnap&&n)return this.instance.preventOutsideClick=!0,this.toleranceReached=!0,this.active=!1,this.instance.preventOutsideClick=!0,this.dragEnd(null),\"right\"==n&&this.instance.prevSlide(),void(\"left\"==n&&this.instance.nextSlide())}if(this.toleranceY>0&&i>0&&i>=t&&(!this.lastDirection||\"y\"==this.lastDirection)){this.xOffset=0,this.lastDirection=\"y\",this.setTranslate(this.dragContainer,0,this.currentY);var s=this.shouldClose();return!this.instance.settings.dragAutoSnap&&s&&(this.doSlideClose=!0),void(this.instance.settings.dragAutoSnap&&s&&this.instance.close())}}}},{key:\"shouldChange\",value:function(){var e=!1;if(Math.abs(this.currentX)>=this.toleranceX){var t=this.currentX>0?\"right\":\"left\";(\"left\"==t&&this.slide!==this.slide.parentNode.lastChild||\"right\"==t&&this.slide!==this.slide.parentNode.firstChild)&&(e=t)}return e}},{key:\"shouldClose\",value:function(){var e=!1;return Math.abs(this.currentY)>=this.toleranceY&&(e=!0),e}},{key:\"setTranslate\",value:function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];e.style.transition=n?\"all .2s ease\":\"\",e.style.transform=\"translate3d(\".concat(t,\"px, \").concat(i,\"px, 0)\")}}]);function D(e,t,i,n){var s=e.querySelector(\".gslide-media\"),l=new Image,o=\"gSlideTitle_\"+i,r=\"gSlideDesc_\"+i;l.addEventListener(\"load\",(function(){C(n)&&n()}),!1),l.src=t.href,\"\"!=t.sizes&&\"\"!=t.srcset&&(l.sizes=t.sizes,l.srcset=t.srcset),l.alt=\"\",O(t.alt)||\"\"===t.alt||(l.alt=t.alt),\"\"!==t.title&&l.setAttribute(\"aria-labelledby\",o),\"\"!==t.description&&l.setAttribute(\"aria-describedby\",r),t.hasOwnProperty(\"_hasCustomWidth\")&&t._hasCustomWidth&&(l.style.width=t.width),t.hasOwnProperty(\"_hasCustomHeight\")&&t._hasCustomHeight&&(l.style.height=t.height),s.insertBefore(l,s.firstChild)}function _(e,t,i,n){var s=this,l=e.querySelector(\".ginner-container\"),o=\"gvideo\"+i,r=e.querySelector(\".gslide-media\"),a=this.getAllPlayers();d(l,\"gvideo-container\"),r.insertBefore(y('<div class=\"gvideo-wrapper\"></div>'),r.firstChild);var h=e.querySelector(\".gvideo-wrapper\");w(this.settings.plyr.css,\"Plyr\");var c=t.href,u=null==t?void 0:t.videoProvider,g=!1;r.style.maxWidth=t.width,w(this.settings.plyr.js,\"Plyr\",(function(){if(!u&&c.match(/vimeo\\.com\\/([0-9]*)/)&&(u=\"vimeo\"),!u&&(c.match(/(youtube\\.com|youtube-nocookie\\.com)\\/watch\\?v=([a-zA-Z0-9\\-_]+)/)||c.match(/youtu\\.be\\/([a-zA-Z0-9\\-_]+)/)||c.match(/(youtube\\.com|youtube-nocookie\\.com)\\/embed\\/([a-zA-Z0-9\\-_]+)/)||c.match(/(youtube\\.com|youtube-nocookie\\.com)\\/shorts\\/([a-zA-Z0-9\\-_]+)/))&&(u=\"youtube\"),\"local\"===u||!u){u=\"local\";var l='<video id=\"'+o+'\" ';l+='style=\"background:#000; max-width: '.concat(t.width,';\" '),l+='preload=\"metadata\" ',l+='x-webkit-airplay=\"allow\" ',l+=\"playsinline \",l+=\"controls \",l+='class=\"gvideo-local\">',l+='<source src=\"'.concat(c,'\">'),g=y(l+=\"</video>\")}var r=g||y('<div id=\"'.concat(o,'\" data-plyr-provider=\"').concat(u,'\" data-plyr-embed-id=\"').concat(c,'\"></div>'));d(h,\"\".concat(u,\"-video gvideo\")),h.appendChild(r),h.setAttribute(\"data-id\",o),h.setAttribute(\"data-index\",i);var v=P(s.settings.plyr,\"config\")?s.settings.plyr.config:{},f=new Plyr(\"#\"+o,v);f.on(\"ready\",(function(e){a[o]=e.detail.plyr,C(n)&&n()})),S((function(){return e.querySelector(\"iframe\")&&\"true\"==e.querySelector(\"iframe\").dataset.ready}),(function(){s.resize(e)})),f.on(\"enterfullscreen\",W),f.on(\"exitfullscreen\",W)}))}function W(e){var t=g(e.target,\".gslide-media\");\"enterfullscreen\"===e.type&&d(t,\"fullscreen\"),\"exitfullscreen\"===e.type&&c(t,\"fullscreen\")}function B(e,t,i,n){var s,l=this,o=e.querySelector(\".gslide-media\"),r=!(!P(t,\"href\")||!t.href)&&t.href.split(\"#\").pop().trim(),a=!(!P(t,\"content\")||!t.content)&&t.content;if(a&&(k(a)&&(s=y('<div class=\"ginlined-content\">'.concat(a,\"</div>\"))),E(a))){\"none\"==a.style.display&&(a.style.display=\"block\");var c=document.createElement(\"div\");c.className=\"ginlined-content\",c.appendChild(a),s=c}if(r){var u=document.getElementById(r);if(!u)return!1;var g=u.cloneNode(!0);g.style.height=t.height,g.style.maxWidth=t.width,d(g,\"ginlined-content\"),s=g}if(!s)return console.error(\"Unable to append inline slide content\",t),!1;o.style.height=t.height,o.style.width=t.width,o.appendChild(s),this.events[\"inlineclose\"+r]=h(\"click\",{onElement:o.querySelectorAll(\".gtrigger-close\"),withCallback:function(e){e.preventDefault(),l.close()}}),C(n)&&n()}function H(e,t,i,n){var s=e.querySelector(\".gslide-media\"),l=function(e){var t=e.url,i=e.allow,n=e.callback,s=e.appendTo,l=document.createElement(\"iframe\");return l.className=\"vimeo-video gvideo\",l.src=t,l.style.width=\"100%\",l.style.height=\"100%\",i&&l.setAttribute(\"allow\",i),l.onload=function(){l.onload=null,d(l,\"node-ready\"),C(n)&&n()},s&&s.appendChild(l),l}({url:t.href,callback:n});s.parentNode.style.maxWidth=t.width,s.parentNode.style.height=t.height,s.appendChild(l)}var j=s((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,e),this.defaults={href:\"\",sizes:\"\",srcset:\"\",title:\"\",type:\"\",videoProvider:\"\",description:\"\",alt:\"\",descPosition:\"bottom\",effect:\"\",width:\"\",height:\"\",content:!1,zoomable:!0,draggable:!0},I(t)&&(this.defaults=o(this.defaults,t))}),[{key:\"sourceType\",value:function(e){var t=e;return null!==(e=e.toLowerCase()).match(/\\.(jpeg|jpg|jpe|gif|png|apn|webp|avif|svg)/)?\"image\":e.match(/(youtube\\.com|youtube-nocookie\\.com)\\/watch\\?v=([a-zA-Z0-9\\-_]+)/)||e.match(/youtu\\.be\\/([a-zA-Z0-9\\-_]+)/)||e.match(/(youtube\\.com|youtube-nocookie\\.com)\\/embed\\/([a-zA-Z0-9\\-_]+)/)||e.match(/(youtube\\.com|youtube-nocookie\\.com)\\/shorts\\/([a-zA-Z0-9\\-_]+)/)||e.match(/vimeo\\.com\\/([0-9]*)/)||null!==e.match(/\\.(mp4|ogg|webm|mov)/)?\"video\":null!==e.match(/\\.(mp3|wav|wma|aac|ogg)/)?\"audio\":e.indexOf(\"#\")>-1&&\"\"!==t.split(\"#\").pop().trim()?\"inline\":e.indexOf(\"goajax=true\")>-1?\"ajax\":\"external\"}},{key:\"parseConfig\",value:function(e,t){var i=this,n=o({descPosition:t.descPosition},this.defaults);if(I(e)&&!E(e)){P(e,\"type\")||(P(e,\"content\")&&e.content?e.type=\"inline\":P(e,\"href\")&&(e.type=this.sourceType(e.href)));var s=o(n,e);return this.setSize(s,t),s}var l=\"\",a=e.getAttribute(\"data-glightbox\"),h=e.nodeName.toLowerCase();if(\"a\"===h&&(l=e.href),\"img\"===h&&(l=e.src,n.alt=e.alt),n.href=l,r(n,(function(s,l){P(t,l)&&\"width\"!==l&&(n[l]=t[l]);var o=e.dataset[l];O(o)||(n[l]=i.sanitizeValue(o))})),n.content&&(n.type=\"inline\"),!n.type&&l&&(n.type=this.sourceType(l)),O(a)){if(!n.title&&\"a\"==h){var d=e.title;O(d)||\"\"===d||(n.title=d)}if(!n.title&&\"img\"==h){var c=e.alt;O(c)||\"\"===c||(n.title=c)}}else{var u=[];r(n,(function(e,t){u.push(\";\\\\s?\"+t)})),u=u.join(\"\\\\s?:|\"),\"\"!==a.trim()&&r(n,(function(e,t){var s=a,l=new RegExp(\"s?\"+t+\"s?:s?(.*?)(\"+u+\"s?:|$)\"),o=s.match(l);if(o&&o.length&&o[1]){var r=o[1].trim().replace(/;\\s*$/,\"\");n[t]=i.sanitizeValue(r)}}))}if(n.description&&\".\"===n.description.substring(0,1)){var g;try{g=document.querySelector(n.description).innerHTML}catch(e){if(!(e instanceof DOMException))throw e}g&&(n.description=g)}if(!n.description){var v=e.querySelector(\".glightbox-desc\");v&&(n.description=v.innerHTML)}return this.setSize(n,t,e),this.slideConfig=n,n}},{key:\"setSize\",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=\"video\"==e.type?this.checkSize(t.videosWidth):this.checkSize(t.width),s=this.checkSize(t.height);return e.width=P(e,\"width\")&&\"\"!==e.width?this.checkSize(e.width):n,e.height=P(e,\"height\")&&\"\"!==e.height?this.checkSize(e.height):s,i&&\"image\"==e.type&&(e._hasCustomWidth=!!i.dataset.width,e._hasCustomHeight=!!i.dataset.height),e}},{key:\"checkSize\",value:function(e){return z(e)?\"\".concat(e,\"px\"):e}},{key:\"sanitizeValue\",value:function(e){return\"true\"!==e&&\"false\"!==e?e:\"true\"===e}}]),V=s((function e(t,n,s){i(this,e),this.element=t,this.instance=n,this.index=s}),[{key:\"setContent\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(u(t,\"loaded\"))return!1;var n=this.instance.settings,s=this.slideConfig,l=T();C(n.beforeSlideLoad)&&n.beforeSlideLoad({index:this.index,slide:t,player:!1});var o=s.type,r=s.descPosition,a=t.querySelector(\".gslide-media\"),h=t.querySelector(\".gslide-title\"),c=t.querySelector(\".gslide-desc\"),g=t.querySelector(\".gdesc-inner\"),v=i,f=\"gSlideTitle_\"+this.index,p=\"gSlideDesc_\"+this.index;if(C(n.afterSlideLoad)&&(v=function(){C(i)&&i(),n.afterSlideLoad({index:e.index,slide:t,player:e.instance.getSlidePlayerInstance(e.index)})}),\"\"==s.title&&\"\"==s.description?g&&g.parentNode.parentNode.removeChild(g.parentNode):(h&&\"\"!==s.title?(h.id=f,h.innerHTML=s.title):h.parentNode.removeChild(h),c&&\"\"!==s.description?(c.id=p,l&&n.moreLength>0?(s.smallDescription=this.slideShortDesc(s.description,n.moreLength,n.moreText),c.innerHTML=s.smallDescription,this.descriptionEvents(c,s)):c.innerHTML=s.description):c.parentNode.removeChild(c),d(a.parentNode,\"desc-\".concat(r)),d(g.parentNode,\"description-\".concat(r))),d(a,\"gslide-\".concat(o)),d(t,\"loaded\"),\"video\"!==o){if(\"external\"!==o)return\"inline\"===o?(B.apply(this.instance,[t,s,this.index,v]),void(s.draggable&&new N({dragEl:t.querySelector(\".gslide-inline\"),toleranceX:n.dragToleranceX,toleranceY:n.dragToleranceY,slide:t,instance:this.instance}))):void(\"image\"!==o?C(v)&&v():D(t,s,this.index,(function(){var i=t.querySelector(\"img\");s.draggable&&new N({dragEl:i,toleranceX:n.dragToleranceX,toleranceY:n.dragToleranceY,slide:t,instance:e.instance}),s.zoomable&&i.naturalWidth>i.offsetWidth&&(d(i,\"zoomable\"),new q(i,t,(function(){e.instance.resize()}))),C(v)&&v()})));H.apply(this,[t,s,this.index,v])}else _.apply(this.instance,[t,s,this.index,v])}},{key:\"slideShortDesc\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=document.createElement(\"div\");n.innerHTML=e;var s=n.innerText,l=i;if((e=s.trim()).length<=t)return e;var o=e.substr(0,t-1);return l?(n=null,o+'... <a href=\"#\" class=\"desc-more\">'+i+\"</a>\"):o}},{key:\"descriptionEvents\",value:function(e,t){var i=this,n=e.querySelector(\".desc-more\");if(!n)return!1;h(\"click\",{onElement:n,withCallback:function(e,n){e.preventDefault();var s=document.body,l=g(n,\".gslide-desc\");if(!l)return!1;l.innerHTML=t.description,d(s,\"gdesc-open\");var o=h(\"click\",{onElement:[s,g(l,\".gslide-description\")],withCallback:function(e,n){\"a\"!==e.target.nodeName.toLowerCase()&&(c(s,\"gdesc-open\"),d(s,\"gdesc-closed\"),l.innerHTML=t.smallDescription,i.descriptionEvents(l,t),setTimeout((function(){c(s,\"gdesc-closed\")}),400),o.destroy())}})}})}},{key:\"create\",value:function(){return y(this.instance.settings.slideHTML)}},{key:\"getConfig\",value:function(){E(this.element)||this.element.hasOwnProperty(\"draggable\")||(this.element.draggable=this.instance.settings.draggable);var e=new j(this.instance.settings.slideExtraAttributes);return this.slideConfig=e.parseConfig(this.element,this.instance.settings),this.slideConfig}}]);function F(e){return Math.sqrt(e.x*e.x+e.y*e.y)}function R(e,t){var i=function(e,t){var i=F(e)*F(t);if(0===i)return 0;var n=function(e,t){return e.x*t.x+e.y*t.y}(e,t)/i;return n>1&&(n=1),Math.acos(n)}(e,t);return function(e,t){return e.x*t.y-t.x*e.y}(e,t)>0&&(i*=-1),180*i/Math.PI}var G=s((function e(t){i(this,e),this.handlers=[],this.el=t}),[{key:\"add\",value:function(e){this.handlers.push(e)}},{key:\"del\",value:function(e){e||(this.handlers=[]);for(var t=this.handlers.length;t>=0;t--)this.handlers[t]===e&&this.handlers.splice(t,1)}},{key:\"dispatch\",value:function(){for(var e=0,t=this.handlers.length;e<t;e++){var i=this.handlers[e];\"function\"==typeof i&&i.apply(this.el,arguments)}}}]);function Z(e,t){var i=new G(e);return i.add(t),i}var U=s((function e(t,n){i(this,e),this.element=\"string\"==typeof t?document.querySelector(t):t,this.start=this.start.bind(this),this.move=this.move.bind(this),this.end=this.end.bind(this),this.cancel=this.cancel.bind(this),this.element.addEventListener(\"touchstart\",this.start,!1),this.element.addEventListener(\"touchmove\",this.move,!1),this.element.addEventListener(\"touchend\",this.end,!1),this.element.addEventListener(\"touchcancel\",this.cancel,!1),this.preV={x:null,y:null},this.pinchStartLen=null,this.zoom=1,this.isDoubleTap=!1;var s=function(){};this.rotate=Z(this.element,n.rotate||s),this.touchStart=Z(this.element,n.touchStart||s),this.multipointStart=Z(this.element,n.multipointStart||s),this.multipointEnd=Z(this.element,n.multipointEnd||s),this.pinch=Z(this.element,n.pinch||s),this.swipe=Z(this.element,n.swipe||s),this.tap=Z(this.element,n.tap||s),this.doubleTap=Z(this.element,n.doubleTap||s),this.longTap=Z(this.element,n.longTap||s),this.singleTap=Z(this.element,n.singleTap||s),this.pressMove=Z(this.element,n.pressMove||s),this.twoFingerPressMove=Z(this.element,n.twoFingerPressMove||s),this.touchMove=Z(this.element,n.touchMove||s),this.touchEnd=Z(this.element,n.touchEnd||s),this.touchCancel=Z(this.element,n.touchCancel||s),this.translateContainer=this.element,this._cancelAllHandler=this.cancelAll.bind(this),window.addEventListener(\"scroll\",this._cancelAllHandler),this.delta=null,this.last=null,this.now=null,this.tapTimeout=null,this.singleTapTimeout=null,this.longTapTimeout=null,this.swipeTimeout=null,this.x1=this.x2=this.y1=this.y2=null,this.preTapPosition={x:null,y:null}}),[{key:\"start\",value:function(e){if(e.touches)if(e.target&&e.target.nodeName&&[\"a\",\"button\",\"input\"].indexOf(e.target.nodeName.toLowerCase())>=0)console.log(\"ignore drag for this touched element\",e.target.nodeName.toLowerCase());else{this.now=Date.now(),this.x1=e.touches[0].pageX,this.y1=e.touches[0].pageY,this.delta=this.now-(this.last||this.now),this.touchStart.dispatch(e,this.element),null!==this.preTapPosition.x&&(this.isDoubleTap=this.delta>0&&this.delta<=250&&Math.abs(this.preTapPosition.x-this.x1)<30&&Math.abs(this.preTapPosition.y-this.y1)<30,this.isDoubleTap&&clearTimeout(this.singleTapTimeout)),this.preTapPosition.x=this.x1,this.preTapPosition.y=this.y1,this.last=this.now;var t=this.preV;if(e.touches.length>1){this._cancelLongTap(),this._cancelSingleTap();var i={x:e.touches[1].pageX-this.x1,y:e.touches[1].pageY-this.y1};t.x=i.x,t.y=i.y,this.pinchStartLen=F(t),this.multipointStart.dispatch(e,this.element)}this._preventTap=!1,this.longTapTimeout=setTimeout(function(){this.longTap.dispatch(e,this.element),this._preventTap=!0}.bind(this),750)}}},{key:\"move\",value:function(e){if(e.touches){var t=this.preV,i=e.touches.length,n=e.touches[0].pageX,s=e.touches[0].pageY;if(this.isDoubleTap=!1,i>1){var l=e.touches[1].pageX,o=e.touches[1].pageY,r={x:e.touches[1].pageX-n,y:e.touches[1].pageY-s};null!==t.x&&(this.pinchStartLen>0&&(e.zoom=F(r)/this.pinchStartLen,this.pinch.dispatch(e,this.element)),e.angle=R(r,t),this.rotate.dispatch(e,this.element)),t.x=r.x,t.y=r.y,null!==this.x2&&null!==this.sx2?(e.deltaX=(n-this.x2+l-this.sx2)/2,e.deltaY=(s-this.y2+o-this.sy2)/2):(e.deltaX=0,e.deltaY=0),this.twoFingerPressMove.dispatch(e,this.element),this.sx2=l,this.sy2=o}else{if(null!==this.x2){e.deltaX=n-this.x2,e.deltaY=s-this.y2;var a=Math.abs(this.x1-this.x2),h=Math.abs(this.y1-this.y2);(a>10||h>10)&&(this._preventTap=!0)}else e.deltaX=0,e.deltaY=0;this.pressMove.dispatch(e,this.element)}this.touchMove.dispatch(e,this.element),this._cancelLongTap(),this.x2=n,this.y2=s,i>1&&e.preventDefault()}}},{key:\"end\",value:function(e){if(e.changedTouches){this._cancelLongTap();var t=this;e.touches.length<2&&(this.multipointEnd.dispatch(e,this.element),this.sx2=this.sy2=null),this.x2&&Math.abs(this.x1-this.x2)>30||this.y2&&Math.abs(this.y1-this.y2)>30?(e.direction=this._swipeDirection(this.x1,this.x2,this.y1,this.y2),this.swipeTimeout=setTimeout((function(){t.swipe.dispatch(e,t.element)}),0)):(this.tapTimeout=setTimeout((function(){t._preventTap||t.tap.dispatch(e,t.element),t.isDoubleTap&&(t.doubleTap.dispatch(e,t.element),t.isDoubleTap=!1)}),0),t.isDoubleTap||(t.singleTapTimeout=setTimeout((function(){t.singleTap.dispatch(e,t.element)}),250))),this.touchEnd.dispatch(e,this.element),this.preV.x=0,this.preV.y=0,this.zoom=1,this.pinchStartLen=null,this.x1=this.x2=this.y1=this.y2=null}}},{key:\"cancelAll\",value:function(){this._preventTap=!0,clearTimeout(this.singleTapTimeout),clearTimeout(this.tapTimeout),clearTimeout(this.longTapTimeout),clearTimeout(this.swipeTimeout)}},{key:\"cancel\",value:function(e){this.cancelAll(),this.touchCancel.dispatch(e,this.element)}},{key:\"_cancelLongTap\",value:function(){clearTimeout(this.longTapTimeout)}},{key:\"_cancelSingleTap\",value:function(){clearTimeout(this.singleTapTimeout)}},{key:\"_swipeDirection\",value:function(e,t,i,n){return Math.abs(e-t)>=Math.abs(i-n)?e-t>0?\"Left\":\"Right\":i-n>0?\"Up\":\"Down\"}},{key:\"on\",value:function(e,t){this[e]&&this[e].add(t)}},{key:\"off\",value:function(e,t){this[e]&&this[e].del(t)}},{key:\"destroy\",value:function(){return this.singleTapTimeout&&clearTimeout(this.singleTapTimeout),this.tapTimeout&&clearTimeout(this.tapTimeout),this.longTapTimeout&&clearTimeout(this.longTapTimeout),this.swipeTimeout&&clearTimeout(this.swipeTimeout),this.element.removeEventListener(\"touchstart\",this.start),this.element.removeEventListener(\"touchmove\",this.move),this.element.removeEventListener(\"touchend\",this.end),this.element.removeEventListener(\"touchcancel\",this.cancel),this.rotate.del(),this.touchStart.del(),this.multipointStart.del(),this.multipointEnd.del(),this.pinch.del(),this.swipe.del(),this.tap.del(),this.doubleTap.del(),this.longTap.del(),this.singleTap.del(),this.pressMove.del(),this.twoFingerPressMove.del(),this.touchMove.del(),this.touchEnd.del(),this.touchCancel.del(),this.preV=this.pinchStartLen=this.zoom=this.isDoubleTap=this.delta=this.last=this.now=this.tapTimeout=this.singleTapTimeout=this.longTapTimeout=this.swipeTimeout=this.x1=this.x2=this.y1=this.y2=this.preTapPosition=this.rotate=this.touchStart=this.multipointStart=this.multipointEnd=this.pinch=this.swipe=this.tap=this.doubleTap=this.longTap=this.singleTap=this.pressMove=this.touchMove=this.touchEnd=this.touchCancel=this.twoFingerPressMove=null,window.removeEventListener(\"scroll\",this._cancelAllHandler),null}}]);function $(e){var t=function(){var e,t=document.createElement(\"fakeelement\"),i={transition:\"transitionend\",OTransition:\"oTransitionEnd\",MozTransition:\"transitionend\",WebkitTransition:\"webkitTransitionEnd\"};for(e in i)if(void 0!==t.style[e])return i[e]}(),i=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,n=u(e,\"gslide-media\")?e:e.querySelector(\".gslide-media\"),s=g(n,\".ginner-container\"),l=e.querySelector(\".gslide-description\");i>769&&(n=s),d(n,\"greset\"),f(n,\"translate3d(0, 0, 0)\"),h(t,{onElement:n,once:!0,withCallback:function(e,t){c(n,\"greset\")}}),n.style.opacity=\"\",l&&(l.style.opacity=\"\")}function J(e){if(e.events.hasOwnProperty(\"touch\"))return!1;var t,i,n,s=x(),l=s.width,o=s.height,r=!1,a=null,h=null,v=null,p=!1,m=1,y=1,b=!1,S=!1,w=null,T=null,C=null,k=null,E=0,A=0,L=!1,I=!1,O={},P={},M=0,z=0,X=document.getElementById(\"glightbox-slider\"),Y=document.querySelector(\".goverlay\"),q=new U(X,{touchStart:function(t){if(r=!0,(u(t.targetTouches[0].target,\"ginner-container\")||g(t.targetTouches[0].target,\".gslide-desc\")||\"a\"==t.targetTouches[0].target.nodeName.toLowerCase())&&(r=!1),g(t.targetTouches[0].target,\".gslide-inline\")&&!u(t.targetTouches[0].target.parentNode,\"gslide-inline\")&&(r=!1),r){if(P=t.targetTouches[0],O.pageX=t.targetTouches[0].pageX,O.pageY=t.targetTouches[0].pageY,M=t.targetTouches[0].clientX,z=t.targetTouches[0].clientY,a=e.activeSlide,h=a.querySelector(\".gslide-media\"),n=a.querySelector(\".gslide-inline\"),v=null,u(h,\"gslide-image\")&&(v=h.querySelector(\"img\")),(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)>769&&(h=a.querySelector(\".ginner-container\")),c(Y,\"greset\"),t.pageX>20&&t.pageX<window.innerWidth-20)return;t.preventDefault()}},touchMove:function(s){if(r&&(P=s.targetTouches[0],!b&&!S)){if(n&&n.offsetHeight>o){var a=O.pageX-P.pageX;if(Math.abs(a)<=13)return!1}p=!0;var d,c=s.targetTouches[0].clientX,u=s.targetTouches[0].clientY,g=M-c,m=z-u;if(Math.abs(g)>Math.abs(m)?(L=!1,I=!0):(I=!1,L=!0),t=P.pageX-O.pageX,E=100*t/l,i=P.pageY-O.pageY,A=100*i/o,L&&v&&(d=1-Math.abs(i)/o,Y.style.opacity=d,e.settings.touchFollowAxis&&(E=0)),I&&(d=1-Math.abs(t)/l,h.style.opacity=d,e.settings.touchFollowAxis&&(A=0)),!v)return f(h,\"translate3d(\".concat(E,\"%, 0, 0)\"));f(h,\"translate3d(\".concat(E,\"%, \").concat(A,\"%, 0)\"))}},touchEnd:function(){if(r){if(p=!1,S||b)return C=w,void(k=T);var t=Math.abs(parseInt(A)),i=Math.abs(parseInt(E));if(!(t>29&&v))return t<29&&i<25?(d(Y,\"greset\"),Y.style.opacity=1,$(h)):void 0;e.close()}},multipointEnd:function(){setTimeout((function(){b=!1}),50)},multipointStart:function(){b=!0,m=y||1},pinch:function(e){if(!v||p)return!1;b=!0,v.scaleX=v.scaleY=m*e.zoom;var t=m*e.zoom;if(S=!0,t<=1)return S=!1,t=1,k=null,C=null,w=null,T=null,void v.setAttribute(\"style\",\"\");t>4.5&&(t=4.5),v.style.transform=\"scale3d(\".concat(t,\", \").concat(t,\", 1)\"),y=t},pressMove:function(e){if(S&&!b){var t=P.pageX-O.pageX,i=P.pageY-O.pageY;C&&(t+=C),k&&(i+=k),w=t,T=i;var n=\"translate3d(\".concat(t,\"px, \").concat(i,\"px, 0)\");y&&(n+=\" scale3d(\".concat(y,\", \").concat(y,\", 1)\")),f(v,n)}},swipe:function(t){if(!S)if(b)b=!1;else{if(\"Left\"==t.direction){if(e.index==e.elements.length-1)return $(h);e.nextSlide()}if(\"Right\"==t.direction){if(0==e.index)return $(h);e.prevSlide()}}}});e.events.touch=q}var K=T(),Q=null!==T()||void 0!==document.createTouch||\"ontouchstart\"in window||\"onmsgesturechange\"in window||navigator.msMaxTouchPoints,ee=document.getElementsByTagName(\"html\")[0],te={selector:\".glightbox\",elements:null,skin:\"clean\",theme:\"clean\",closeButton:!0,startAt:null,autoplayVideos:!0,autofocusVideos:!0,descPosition:\"bottom\",width:\"900px\",height:\"506px\",videosWidth:\"960px\",beforeSlideChange:null,afterSlideChange:null,beforeSlideLoad:null,afterSlideLoad:null,slideInserted:null,slideRemoved:null,slideExtraAttributes:null,onOpen:null,onClose:null,loop:!1,zoomable:!0,draggable:!0,dragAutoSnap:!1,dragToleranceX:40,dragToleranceY:65,preload:!0,oneSlidePerOpen:!1,touchNavigation:!0,touchFollowAxis:!0,keyboardNavigation:!0,closeOnOutsideClick:!0,plugins:!1,plyr:{css:\"https://cdn.plyr.io/3.6.12/plyr.css\",js:\"https://cdn.plyr.io/3.6.12/plyr.js\",config:{ratio:\"16:9\",fullscreen:{enabled:!0,iosNative:!0},youtube:{noCookie:!0,rel:0,showinfo:0,iv_load_policy:3},vimeo:{byline:!1,portrait:!1,title:!1,transparent:!1}}},openEffect:\"zoom\",closeEffect:\"zoom\",slideEffect:\"slide\",moreText:\"See more\",moreLength:60,cssEfects:{fade:{in:\"fadeIn\",out:\"fadeOut\"},zoom:{in:\"zoomIn\",out:\"zoomOut\"},slide:{in:\"slideInRight\",out:\"slideOutLeft\"},slideBack:{in:\"slideInLeft\",out:\"slideOutRight\"},none:{in:\"none\",out:\"none\"}},svg:{close:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 512 512\" xml:space=\"preserve\"><g><g><path d=\"M505.943,6.058c-8.077-8.077-21.172-8.077-29.249,0L6.058,476.693c-8.077,8.077-8.077,21.172,0,29.249C10.096,509.982,15.39,512,20.683,512c5.293,0,10.586-2.019,14.625-6.059L505.943,35.306C514.019,27.23,514.019,14.135,505.943,6.058z\"/></g></g><g><g><path d=\"M505.942,476.694L35.306,6.059c-8.076-8.077-21.172-8.077-29.248,0c-8.077,8.076-8.077,21.171,0,29.248l470.636,470.636c4.038,4.039,9.332,6.058,14.625,6.058c5.293,0,10.587-2.019,14.624-6.057C514.018,497.866,514.018,484.771,505.942,476.694z\"/></g></g></svg>',next:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 477.175 477.175\" xml:space=\"preserve\"> <g><path d=\"M360.731,229.075l-225.1-225.1c-5.3-5.3-13.8-5.3-19.1,0s-5.3,13.8,0,19.1l215.5,215.5l-215.5,215.5c-5.3,5.3-5.3,13.8,0,19.1c2.6,2.6,6.1,4,9.5,4c3.4,0,6.9-1.3,9.5-4l225.1-225.1C365.931,242.875,365.931,234.275,360.731,229.075z\"/></g></svg>',prev:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 477.175 477.175\" xml:space=\"preserve\"><g><path d=\"M145.188,238.575l215.5-215.5c5.3-5.3,5.3-13.8,0-19.1s-13.8-5.3-19.1,0l-225.1,225.1c-5.3,5.3-5.3,13.8,0,19.1l225.1,225c2.6,2.6,6.1,4,9.5,4s6.9-1.3,9.5-4c5.3-5.3,5.3-13.8,0-19.1L145.188,238.575z\"/></g></svg>'},slideHTML:'<div class=\"gslide\">\\n <div class=\"gslide-inner-content\">\\n <div class=\"ginner-container\">\\n <div class=\"gslide-media\">\\n </div>\\n <div class=\"gslide-description\">\\n <div class=\"gdesc-inner\">\\n <h4 class=\"gslide-title\"></h4>\\n <div class=\"gslide-desc\"></div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>',lightboxHTML:'<div id=\"glightbox-body\" class=\"glightbox-container\" tabindex=\"-1\" role=\"dialog\" aria-hidden=\"false\">\\n <div class=\"gloader visible\"></div>\\n <div class=\"goverlay\"></div>\\n <div class=\"gcontainer\">\\n <div id=\"glightbox-slider\" class=\"gslider\"></div>\\n <button class=\"gclose gbtn\" aria-label=\"Close\" data-taborder=\"3\">{closeSVG}</button>\\n <button class=\"gprev gbtn\" aria-label=\"Previous\" data-taborder=\"2\">{prevSVG}</button>\\n <button class=\"gnext gbtn\" aria-label=\"Next\" data-taborder=\"1\">{nextSVG}</button>\\n</div>\\n</div>'},ie=s((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,e),this.customOptions=t,this.settings=o(te,t),this.effectsClasses=this.getAnimationClasses(),this.videoPlayers={},this.apiEvents=[],this.fullElementsList=!1}),[{key:\"init\",value:function(){var e=this,t=this.getSelector();t&&(this.baseEvents=h(\"click\",{onElement:t,withCallback:function(t,i){t.preventDefault(),e.open(i)}})),this.elements=this.getElements()}},{key:\"open\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(0===this.elements.length)return!1;this.activeSlide=null,this.prevActiveSlideIndex=null,this.prevActiveSlide=null;var i=z(t)?t:this.settings.startAt;if(E(e)){var n=e.getAttribute(\"data-gallery\");n&&(this.fullElementsList=this.elements,this.elements=this.getGalleryElements(this.elements,n)),O(i)&&(i=this.getElementIndex(e))<0&&(i=0)}z(i)||(i=0),this.build(),v(this.overlay,\"none\"===this.settings.openEffect?\"none\":this.settings.cssEfects.fade.in);var s=document.body,l=window.innerWidth-document.documentElement.clientWidth;if(l>0){var o=document.createElement(\"style\");o.type=\"text/css\",o.className=\"gcss-styles\",o.innerText=\".gscrollbar-fixer {margin-right: \".concat(l,\"px}\"),document.head.appendChild(o),d(s,\"gscrollbar-fixer\")}d(s,\"glightbox-open\"),d(ee,\"glightbox-open\"),K&&(d(document.body,\"glightbox-mobile\"),this.settings.slideEffect=\"slide\"),this.showSlide(i,!0),1===this.elements.length?(d(this.prevButton,\"glightbox-button-hidden\"),d(this.nextButton,\"glightbox-button-hidden\")):(c(this.prevButton,\"glightbox-button-hidden\"),c(this.nextButton,\"glightbox-button-hidden\")),this.lightboxOpen=!0,this.trigger(\"open\"),C(this.settings.onOpen)&&this.settings.onOpen(),Q&&this.settings.touchNavigation&&J(this),this.settings.keyboardNavigation&&Y(this)}},{key:\"openAt\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.open(null,e)}},{key:\"showSlide\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];p(this.loader),this.index=parseInt(t);var n=this.slidesContainer.querySelector(\".current\");n&&c(n,\"current\"),this.slideAnimateOut();var s=this.slidesContainer.querySelectorAll(\".gslide\")[t];if(u(s,\"loaded\"))this.slideAnimateIn(s,i),m(this.loader);else{p(this.loader);var l=this.elements[t],o={index:this.index,slide:s,slideNode:s,slideConfig:l.slideConfig,slideIndex:this.index,trigger:l.node,player:null};this.trigger(\"slide_before_load\",o),l.instance.setContent(s,(function(){m(e.loader),e.resize(),e.slideAnimateIn(s,i),e.trigger(\"slide_after_load\",o)}))}this.slideDescription=s.querySelector(\".gslide-description\"),this.slideDescriptionContained=this.slideDescription&&u(this.slideDescription.parentNode,\"gslide-media\"),this.settings.preload&&(this.preloadSlide(t+1),this.preloadSlide(t-1)),this.updateNavigationClasses(),this.activeSlide=s}},{key:\"preloadSlide\",value:function(e){var t=this;if(e<0||e>this.elements.length-1)return!1;if(O(this.elements[e]))return!1;var i=this.slidesContainer.querySelectorAll(\".gslide\")[e];if(u(i,\"loaded\"))return!1;var n=this.elements[e],s=n.type,l={index:e,slide:i,slideNode:i,slideConfig:n.slideConfig,slideIndex:e,trigger:n.node,player:null};this.trigger(\"slide_before_load\",l),\"video\"===s||\"external\"===s?setTimeout((function(){n.instance.setContent(i,(function(){t.trigger(\"slide_after_load\",l)}))}),200):n.instance.setContent(i,(function(){t.trigger(\"slide_after_load\",l)}))}},{key:\"prevSlide\",value:function(){this.goToSlide(this.index-1)}},{key:\"nextSlide\",value:function(){this.goToSlide(this.index+1)}},{key:\"goToSlide\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.prevActiveSlide=this.activeSlide,this.prevActiveSlideIndex=this.index,!this.loop()&&(e<0||e>this.elements.length-1))return!1;e<0?e=this.elements.length-1:e>=this.elements.length&&(e=0),this.showSlide(e)}},{key:\"insertSlide\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;t<0&&(t=this.elements.length);var i=new V(e,this,t),n=i.getConfig(),s=o({},n),l=i.create(),r=this.elements.length-1;s.index=t,s.node=!1,s.instance=i,s.slideConfig=n,this.elements.splice(t,0,s);var a=null,h=null;if(this.slidesContainer){if(t>r)this.slidesContainer.appendChild(l);else{var d=this.slidesContainer.querySelectorAll(\".gslide\")[t];this.slidesContainer.insertBefore(l,d)}(this.settings.preload&&0==this.index&&0==t||this.index-1==t||this.index+1==t)&&this.preloadSlide(t),0===this.index&&0===t&&(this.index=1),this.updateNavigationClasses(),a=this.slidesContainer.querySelectorAll(\".gslide\")[t],h=this.getSlidePlayerInstance(t),s.slideNode=a}this.trigger(\"slide_inserted\",{index:t,slide:a,slideNode:a,slideConfig:n,slideIndex:t,trigger:null,player:h}),C(this.settings.slideInserted)&&this.settings.slideInserted({index:t,slide:a,player:h})}},{key:\"removeSlide\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1;if(e<0||e>this.elements.length-1)return!1;var t=this.slidesContainer&&this.slidesContainer.querySelectorAll(\".gslide\")[e];t&&(this.getActiveSlideIndex()==e&&(e==this.elements.length-1?this.prevSlide():this.nextSlide()),t.parentNode.removeChild(t)),this.elements.splice(e,1),this.trigger(\"slide_removed\",e),C(this.settings.slideRemoved)&&this.settings.slideRemoved(e)}},{key:\"slideAnimateIn\",value:function(e,t){var i=this,n=e.querySelector(\".gslide-media\"),s=e.querySelector(\".gslide-description\"),l={index:this.prevActiveSlideIndex,slide:this.prevActiveSlide,slideNode:this.prevActiveSlide,slideIndex:this.prevActiveSlide,slideConfig:O(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].slideConfig,trigger:O(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].node,player:this.getSlidePlayerInstance(this.prevActiveSlideIndex)},o={index:this.index,slide:this.activeSlide,slideNode:this.activeSlide,slideConfig:this.elements[this.index].slideConfig,slideIndex:this.index,trigger:this.elements[this.index].node,player:this.getSlidePlayerInstance(this.index)};if(n.offsetWidth>0&&s&&(m(s),s.style.display=\"\"),c(e,this.effectsClasses),t)v(e,this.settings.cssEfects[this.settings.openEffect].in,(function(){i.settings.autoplayVideos&&i.slidePlayerPlay(e),i.trigger(\"slide_changed\",{prev:l,current:o}),C(i.settings.afterSlideChange)&&i.settings.afterSlideChange.apply(i,[l,o])}));else{var r=this.settings.slideEffect,a=\"none\"!==r?this.settings.cssEfects[r].in:r;this.prevActiveSlideIndex>this.index&&\"slide\"==this.settings.slideEffect&&(a=this.settings.cssEfects.slideBack.in),v(e,a,(function(){i.settings.autoplayVideos&&i.slidePlayerPlay(e),i.trigger(\"slide_changed\",{prev:l,current:o}),C(i.settings.afterSlideChange)&&i.settings.afterSlideChange.apply(i,[l,o])}))}setTimeout((function(){i.resize(e)}),100),d(e,\"current\")}},{key:\"slideAnimateOut\",value:function(){if(!this.prevActiveSlide)return!1;var e=this.prevActiveSlide;c(e,this.effectsClasses),d(e,\"prev\");var t=this.settings.slideEffect,i=\"none\"!==t?this.settings.cssEfects[t].out:t;this.slidePlayerPause(e),this.trigger(\"slide_before_change\",{prev:{index:this.prevActiveSlideIndex,slide:this.prevActiveSlide,slideNode:this.prevActiveSlide,slideIndex:this.prevActiveSlideIndex,slideConfig:O(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].slideConfig,trigger:O(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].node,player:this.getSlidePlayerInstance(this.prevActiveSlideIndex)},current:{index:this.index,slide:this.activeSlide,slideNode:this.activeSlide,slideIndex:this.index,slideConfig:this.elements[this.index].slideConfig,trigger:this.elements[this.index].node,player:this.getSlidePlayerInstance(this.index)}}),C(this.settings.beforeSlideChange)&&this.settings.beforeSlideChange.apply(this,[{index:this.prevActiveSlideIndex,slide:this.prevActiveSlide,player:this.getSlidePlayerInstance(this.prevActiveSlideIndex)},{index:this.index,slide:this.activeSlide,player:this.getSlidePlayerInstance(this.index)}]),this.prevActiveSlideIndex>this.index&&\"slide\"==this.settings.slideEffect&&(i=this.settings.cssEfects.slideBack.out),v(e,i,(function(){var t=e.querySelector(\".ginner-container\"),i=e.querySelector(\".gslide-media\"),n=e.querySelector(\".gslide-description\");t.style.transform=\"\",i.style.transform=\"\",c(i,\"greset\"),i.style.opacity=\"\",n&&(n.style.opacity=\"\"),c(e,\"prev\")}))}},{key:\"getAllPlayers\",value:function(){return this.videoPlayers}},{key:\"getSlidePlayerInstance\",value:function(e){var t=\"gvideo\"+e,i=this.getAllPlayers();return!(!P(i,t)||!i[t])&&i[t]}},{key:\"stopSlideVideo\",value:function(e){if(E(e)){var t=e.querySelector(\".gvideo-wrapper\");t&&(e=t.getAttribute(\"data-index\"))}console.log(\"stopSlideVideo is deprecated, use slidePlayerPause\");var i=this.getSlidePlayerInstance(e);i&&i.playing&&i.pause()}},{key:\"slidePlayerPause\",value:function(e){if(E(e)){var t=e.querySelector(\".gvideo-wrapper\");t&&(e=t.getAttribute(\"data-index\"))}var i=this.getSlidePlayerInstance(e);i&&i.playing&&i.pause()}},{key:\"playSlideVideo\",value:function(e){if(E(e)){var t=e.querySelector(\".gvideo-wrapper\");t&&(e=t.getAttribute(\"data-index\"))}console.log(\"playSlideVideo is deprecated, use slidePlayerPlay\");var i=this.getSlidePlayerInstance(e);i&&!i.playing&&i.play()}},{key:\"slidePlayerPlay\",value:function(e){var t;if(!K||null!==(t=this.settings.plyr.config)&&void 0!==t&&t.muted){if(E(e)){var i=e.querySelector(\".gvideo-wrapper\");i&&(e=i.getAttribute(\"data-index\"))}var n=this.getSlidePlayerInstance(e);n&&!n.playing&&(n.play(),this.settings.autofocusVideos&&n.elements.container.focus())}}},{key:\"setElements\",value:function(e){var t=this;this.settings.elements=!1;var i=[];e&&e.length&&r(e,(function(e,n){var s=new V(e,t,n),l=s.getConfig(),r=o({},l);r.slideConfig=l,r.instance=s,r.index=n,i.push(r)})),this.elements=i,this.lightboxOpen&&(this.slidesContainer.innerHTML=\"\",this.elements.length&&(r(this.elements,(function(){var e=y(t.settings.slideHTML);t.slidesContainer.appendChild(e)})),this.showSlide(0,!0)))}},{key:\"getElementIndex\",value:function(e){var t=!1;return r(this.elements,(function(i,n){if(P(i,\"node\")&&i.node==e)return t=n,!0})),t}},{key:\"getElements\",value:function(){var e=this,t=[];this.elements=this.elements?this.elements:[],!O(this.settings.elements)&&A(this.settings.elements)&&this.settings.elements.length&&r(this.settings.elements,(function(i,n){var s=new V(i,e,n),l=s.getConfig(),r=o({},l);r.node=!1,r.index=n,r.instance=s,r.slideConfig=l,t.push(r)}));var i=!1;return this.getSelector()&&(i=document.querySelectorAll(this.getSelector())),i?(r(i,(function(i,n){var s=new V(i,e,n),l=s.getConfig(),r=o({},l);r.node=i,r.index=n,r.instance=s,r.slideConfig=l,r.gallery=i.getAttribute(\"data-gallery\"),t.push(r)})),t):t}},{key:\"getGalleryElements\",value:function(e,t){return e.filter((function(e){return e.gallery==t}))}},{key:\"getSelector\",value:function(){return!this.settings.elements&&(this.settings.selector&&\"data-\"==this.settings.selector.substring(0,5)?\"*[\".concat(this.settings.selector,\"]\"):this.settings.selector)}},{key:\"getActiveSlide\",value:function(){return this.slidesContainer.querySelectorAll(\".gslide\")[this.index]}},{key:\"getActiveSlideIndex\",value:function(){return this.index}},{key:\"getAnimationClasses\",value:function(){var e=[];for(var t in this.settings.cssEfects)if(this.settings.cssEfects.hasOwnProperty(t)){var i=this.settings.cssEfects[t];e.push(\"g\".concat(i.in)),e.push(\"g\".concat(i.out))}return e.join(\" \")}},{key:\"build\",value:function(){var e=this;if(this.built)return!1;var t=document.body.childNodes,i=[];r(t,(function(e){e.parentNode==document.body&&\"#\"!==e.nodeName.charAt(0)&&e.hasAttribute&&!e.hasAttribute(\"aria-hidden\")&&(i.push(e),e.setAttribute(\"aria-hidden\",\"true\"))}));var n=P(this.settings.svg,\"next\")?this.settings.svg.next:\"\",s=P(this.settings.svg,\"prev\")?this.settings.svg.prev:\"\",l=P(this.settings.svg,\"close\")?this.settings.svg.close:\"\",o=this.settings.lightboxHTML;o=y(o=(o=(o=o.replace(/{nextSVG}/g,n)).replace(/{prevSVG}/g,s)).replace(/{closeSVG}/g,l)),document.body.appendChild(o);var a=document.getElementById(\"glightbox-body\");this.modal=a;var c=a.querySelector(\".gclose\");this.prevButton=a.querySelector(\".gprev\"),this.nextButton=a.querySelector(\".gnext\"),this.overlay=a.querySelector(\".goverlay\"),this.loader=a.querySelector(\".gloader\"),this.slidesContainer=document.getElementById(\"glightbox-slider\"),this.bodyHiddenChildElms=i,this.events={},d(this.modal,\"glightbox-\"+this.settings.skin),this.settings.closeButton&&c&&(this.events.close=h(\"click\",{onElement:c,withCallback:function(t,i){t.preventDefault(),e.close()}})),c&&!this.settings.closeButton&&c.parentNode.removeChild(c),this.nextButton&&(this.events.next=h(\"click\",{onElement:this.nextButton,withCallback:function(t,i){t.preventDefault(),e.nextSlide()}})),this.prevButton&&(this.events.prev=h(\"click\",{onElement:this.prevButton,withCallback:function(t,i){t.preventDefault(),e.prevSlide()}})),this.settings.closeOnOutsideClick&&(this.events.outClose=h(\"click\",{onElement:a,withCallback:function(t,i){e.preventOutsideClick||u(document.body,\"glightbox-mobile\")||g(t.target,\".ginner-container\")||g(t.target,\".gbtn\")||u(t.target,\"gnext\")||u(t.target,\"gprev\")||e.close()}})),r(this.elements,(function(t,i){e.slidesContainer.appendChild(t.instance.create()),t.slideNode=e.slidesContainer.querySelectorAll(\".gslide\")[i]})),Q&&d(document.body,\"glightbox-touch\"),this.events.resize=h(\"resize\",{onElement:window,withCallback:function(){e.resize()}}),this.built=!0}},{key:\"resize\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if((e=e||this.activeSlide)&&!u(e,\"zoomed\")){var t=x(),i=e.querySelector(\".gvideo-wrapper\"),n=e.querySelector(\".gslide-image\"),s=this.slideDescription,l=t.width,o=t.height;if(l<=768?d(document.body,\"glightbox-mobile\"):c(document.body,\"glightbox-mobile\"),i||n){var r=!1;if(s&&(u(s,\"description-bottom\")||u(s,\"description-top\"))&&!u(s,\"gabsolute\")&&(r=!0),n)if(l<=768)n.querySelector(\"img\");else if(r){var a,h=s.offsetHeight,g=n.querySelector(\"img\"),v=this.elements[this.index].node,f=null!==(a=v.getAttribute(\"data-height\"))&&void 0!==a?a:\"100vh\";g.setAttribute(\"style\",\"max-height: calc(\".concat(f,\" - \").concat(h,\"px)\")),s.setAttribute(\"style\",\"max-width: \".concat(g.offsetWidth,\"px;\"))}if(i){var p=P(this.settings.plyr.config,\"ratio\")?this.settings.plyr.config.ratio:\"\";if(!p){var m=i.clientWidth,y=i.clientHeight,b=m/y;p=\"\".concat(m/b,\":\").concat(y/b)}var S=p.split(\":\"),w=this.settings.videosWidth,T=this.settings.videosWidth,C=(T=z(w)||-1!==w.indexOf(\"px\")?parseInt(w):-1!==w.indexOf(\"vw\")?l*parseInt(w)/100:-1!==w.indexOf(\"vh\")?o*parseInt(w)/100:-1!==w.indexOf(\"%\")?l*parseInt(w)/100:parseInt(i.clientWidth))/(parseInt(S[0])/parseInt(S[1]));if(C=Math.floor(C),r&&(o-=s.offsetHeight),T>l||C>o||o<C&&l>T){var k=i.offsetWidth,E=i.offsetHeight,A=o/E,L={width:k*A,height:E*A};i.parentNode.setAttribute(\"style\",\"max-width: \".concat(L.width,\"px\")),r&&s.setAttribute(\"style\",\"max-width: \".concat(L.width,\"px;\"))}else i.parentNode.style.maxWidth=\"\".concat(w),r&&s.setAttribute(\"style\",\"max-width: \".concat(w,\";\"))}}}}},{key:\"reload\",value:function(){this.init()}},{key:\"updateNavigationClasses\",value:function(){var e=this.loop();c(this.nextButton,\"disabled\"),c(this.prevButton,\"disabled\"),0==this.index&&this.elements.length-1==0?(d(this.prevButton,\"disabled\"),d(this.nextButton,\"disabled\")):0!==this.index||e?this.index!==this.elements.length-1||e||d(this.nextButton,\"disabled\"):d(this.prevButton,\"disabled\")}},{key:\"loop\",value:function(){var e=P(this.settings,\"loopAtEnd\")?this.settings.loopAtEnd:null;return e=P(this.settings,\"loop\")?this.settings.loop:e,e}},{key:\"close\",value:function(){var e=this;if(!this.lightboxOpen){if(this.events){for(var t in this.events)this.events.hasOwnProperty(t)&&this.events[t].destroy();this.events=null}return!1}if(this.closing)return!1;this.closing=!0,this.slidePlayerPause(this.activeSlide),this.fullElementsList&&(this.elements=this.fullElementsList),this.bodyHiddenChildElms.length&&r(this.bodyHiddenChildElms,(function(e){e.removeAttribute(\"aria-hidden\")})),d(this.modal,\"glightbox-closing\"),v(this.overlay,\"none\"==this.settings.openEffect?\"none\":this.settings.cssEfects.fade.out),v(this.activeSlide,this.settings.cssEfects[this.settings.closeEffect].out,(function(){if(e.activeSlide=null,e.prevActiveSlideIndex=null,e.prevActiveSlide=null,e.built=!1,e.events){for(var t in e.events)e.events.hasOwnProperty(t)&&e.events[t].destroy();e.events=null}var i=document.body;c(ee,\"glightbox-open\"),c(i,\"glightbox-open touching gdesc-open glightbox-touch glightbox-mobile gscrollbar-fixer\"),e.modal.parentNode.removeChild(e.modal),e.trigger(\"close\"),C(e.settings.onClose)&&e.settings.onClose();var n=document.querySelector(\".gcss-styles\");n&&n.parentNode.removeChild(n),e.lightboxOpen=!1,e.closing=null}))}},{key:\"destroy\",value:function(){this.close(),this.clearAllEvents(),this.baseEvents&&this.baseEvents.destroy()}},{key:\"on\",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e||!C(t))throw new TypeError(\"Event name and callback must be defined\");this.apiEvents.push({evt:e,once:i,callback:t})}},{key:\"once\",value:function(e,t){this.on(e,t,!0)}},{key:\"trigger\",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=[];r(this.apiEvents,(function(t,s){var l=t.evt,o=t.once,r=t.callback;l==e&&(r(i),o&&n.push(s))})),n.length&&r(n,(function(e){return t.apiEvents.splice(e,1)}))}},{key:\"clearAllEvents\",value:function(){this.apiEvents.splice(0,this.apiEvents.length)}},{key:\"version\",value:function(){return\"3.3.0\"}}]);return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=new ie(e);return t.init(),t}}));","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n(function() {\n'use strict';\n\n// Exit early if we're not running in a browser.\nif (typeof window !== 'object') {\n return;\n}\n\n// Exit early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n/**\n * Returns the embedding frame element, if any.\n * @param {!Document} doc\n * @return {!Element}\n */\nfunction getFrameElement(doc) {\n try {\n return doc.defaultView && doc.defaultView.frameElement || null;\n } catch (e) {\n // Ignore the error.\n return null;\n }\n}\n\n/**\n * A local reference to the root document.\n */\nvar document = (function(startDoc) {\n var doc = startDoc;\n var frame = getFrameElement(doc);\n while (frame) {\n doc = frame.ownerDocument;\n frame = getFrameElement(doc);\n }\n return doc;\n})(window.document);\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n/**\n * The signal updater for cross-origin intersection. When not null, it means\n * that the polyfill is configured to work in a cross-origin mode.\n * @type {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nvar crossOriginUpdater = null;\n\n/**\n * The current cross-origin intersection. Only used in the cross-origin mode.\n * @type {DOMRect|ClientRect}\n */\nvar crossOriginRect = null;\n\n\n/**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = ensureDOMRect(entry.rootBounds);\n this.boundingClientRect = ensureDOMRect(entry.boundingClientRect);\n this.intersectionRect = ensureDOMRect(entry.intersectionRect || getEmptyRect());\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (\n options.root &&\n options.root.nodeType != 1 &&\n options.root.nodeType != 9\n ) {\n throw new Error('root must be a Document or Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function(margin) {\n return margin.value + margin.unit;\n }).join(' ');\n\n /** @private @const {!Array<!Document>} */\n this._monitoringDocuments = [];\n /** @private @const {!Array<function()>} */\n this._monitoringUnsubscribes = [];\n}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\n/**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n/**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\n\n/**\n * Sets up the polyfill in the cross-origin mode. The result is the\n * updater function that accepts two arguments: `boundingClientRect` and\n * `intersectionRect` - just as these fields would be available to the\n * parent via `IntersectionObserverEntry`. This function should be called\n * each time the iframe receives intersection information from the parent\n * window, e.g. via messaging.\n * @return {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nIntersectionObserver._setupCrossOriginUpdater = function() {\n if (!crossOriginUpdater) {\n /**\n * @param {DOMRect|ClientRect} boundingClientRect\n * @param {DOMRect|ClientRect} intersectionRect\n */\n crossOriginUpdater = function(boundingClientRect, intersectionRect) {\n if (!boundingClientRect || !intersectionRect) {\n crossOriginRect = getEmptyRect();\n } else {\n crossOriginRect = convertFromParentRect(boundingClientRect, intersectionRect);\n }\n registry.forEach(function(observer) {\n observer._checkForIntersections();\n });\n };\n }\n return crossOriginUpdater;\n};\n\n\n/**\n * Resets the cross-origin mode.\n */\nIntersectionObserver._resetCrossOriginUpdater = function() {\n crossOriginUpdater = null;\n crossOriginRect = null;\n};\n\n\n/**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.observe = function(target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function(item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections(target.ownerDocument);\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n return item.element != target;\n });\n this._unmonitorIntersections(target.ownerDocument);\n if (this._observationTargets.length == 0) {\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorAllIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array<Object>} An array of margin objects with the keys\n * value and unit.\n */\nIntersectionObserver.prototype._parseRootMargin = function(opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function(margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n return {value: parseFloat(parts[1]), unit: parts[2]};\n });\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n\n return margins;\n};\n\n\n/**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._monitorIntersections = function(doc) {\n var win = doc.defaultView;\n if (!win) {\n // Already destroyed.\n return;\n }\n if (this._monitoringDocuments.indexOf(doc) != -1) {\n // Already monitoring.\n return;\n }\n\n // Private state for monitoring.\n var callback = this._checkForIntersections;\n var monitoringInterval = null;\n var domObserver = null;\n\n // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n if (this.POLL_INTERVAL) {\n monitoringInterval = win.setInterval(callback, this.POLL_INTERVAL);\n } else {\n addEvent(win, 'resize', callback, true);\n addEvent(doc, 'scroll', callback, true);\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in win) {\n domObserver = new win.MutationObserver(callback);\n domObserver.observe(doc, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n\n this._monitoringDocuments.push(doc);\n this._monitoringUnsubscribes.push(function() {\n // Get the window object again. When a friendly iframe is destroyed, it\n // will be null.\n var win = doc.defaultView;\n\n if (win) {\n if (monitoringInterval) {\n win.clearInterval(monitoringInterval);\n }\n removeEvent(win, 'resize', callback, true);\n }\n\n removeEvent(doc, 'scroll', callback, true);\n if (domObserver) {\n domObserver.disconnect();\n }\n });\n\n // Also monitor the parent.\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n if (frame) {\n this._monitorIntersections(frame.ownerDocument);\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._unmonitorIntersections = function(doc) {\n var index = this._monitoringDocuments.indexOf(doc);\n if (index == -1) {\n return;\n }\n\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n\n // Check if any dependent targets are still remaining.\n var hasDependentTargets =\n this._observationTargets.some(function(item) {\n var itemDoc = item.element.ownerDocument;\n // Target is in this context.\n if (itemDoc == doc) {\n return true;\n }\n // Target is nested in this context.\n while (itemDoc && itemDoc != rootDoc) {\n var frame = getFrameElement(itemDoc);\n itemDoc = frame && frame.ownerDocument;\n if (itemDoc == doc) {\n return true;\n }\n }\n return false;\n });\n if (hasDependentTargets) {\n return;\n }\n\n // Unsubscribe.\n var unsubscribe = this._monitoringUnsubscribes[index];\n this._monitoringDocuments.splice(index, 1);\n this._monitoringUnsubscribes.splice(index, 1);\n unsubscribe();\n\n // Also unmonitor the parent.\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n if (frame) {\n this._unmonitorIntersections(frame.ownerDocument);\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._unmonitorAllIntersections = function() {\n var unsubscribes = this._monitoringUnsubscribes.slice(0);\n this._monitoringDocuments.length = 0;\n this._monitoringUnsubscribes.length = 0;\n for (var i = 0; i < unsubscribes.length; i++) {\n unsubscribes[i]();\n }\n};\n\n\n/**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\nIntersectionObserver.prototype._checkForIntersections = function() {\n if (!this.root && crossOriginUpdater && !crossOriginRect) {\n // Cross origin monitoring, but no initial data available yet.\n return;\n }\n\n var rootIsInDom = this._rootIsInDom();\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function(item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n var rootContainsTarget = this._rootContainsTarget(target);\n var oldEntry = item.entry;\n var intersectionRect = rootIsInDom && rootContainsTarget &&\n this._computeTargetAndRootIntersection(target, targetRect, rootRect);\n\n var rootBounds = null;\n if (!this._rootContainsTarget(target)) {\n rootBounds = getEmptyRect();\n } else if (!crossOriginUpdater || this.root) {\n rootBounds = rootRect;\n }\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootBounds,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n};\n\n\n/**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} targetRect The bounding rect of the target.\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\nIntersectionObserver.prototype._computeTargetAndRootIntersection =\n function(target, targetRect, rootRect) {\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot && parent) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ?\n window.getComputedStyle(parent) : {};\n\n // If the parent isn't displayed, an intersection can't happen.\n if (parentComputedStyle.display == 'none') return null;\n\n if (parent == this.root || parent.nodeType == /* DOCUMENT */ 9) {\n atRoot = true;\n if (parent == this.root || parent == document) {\n if (crossOriginUpdater && !this.root) {\n if (!crossOriginRect ||\n crossOriginRect.width == 0 && crossOriginRect.height == 0) {\n // A 0-size cross-origin intersection means no-intersection.\n parent = null;\n parentRect = null;\n intersectionRect = null;\n } else {\n parentRect = crossOriginRect;\n }\n } else {\n parentRect = rootRect;\n }\n } else {\n // Check if there's a frame that can be navigated to.\n var frame = getParentNode(parent);\n var frameRect = frame && getBoundingClientRect(frame);\n var frameIntersect =\n frame &&\n this._computeTargetAndRootIntersection(frame, frameRect, rootRect);\n if (frameRect && frameIntersect) {\n parent = frame;\n parentRect = convertFromParentRect(frameRect, frameIntersect);\n } else {\n parent = null;\n intersectionRect = null;\n }\n }\n } else {\n // If the element has a non-visible overflow, and it's not the <body>\n // or <html> element, update the intersection rect.\n // Note: <body> and <html> cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n var doc = parent.ownerDocument;\n if (parent != doc.body &&\n parent != doc.documentElement &&\n parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n }\n\n // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n }\n if (!intersectionRect) break;\n parent = parent && getParentNode(parent);\n }\n return intersectionRect;\n};\n\n\n/**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {ClientRect} The expanded root rect.\n * @private\n */\nIntersectionObserver.prototype._getRootRect = function() {\n var rootRect;\n if (this.root && !isDoc(this.root)) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use <html>/<body> instead of window since scroll bars affect size.\n var doc = isDoc(this.root) ? this.root : document;\n var html = doc.documentElement;\n var body = doc.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n return this._expandRectByRootMargin(rootRect);\n};\n\n\n/**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {DOMRect|ClientRect} rect The rect object to expand.\n * @return {ClientRect} The expanded rect.\n * @private\n */\nIntersectionObserver.prototype._expandRectByRootMargin = function(rect) {\n var margins = this._rootMarginValues.map(function(margin, i) {\n return margin.unit == 'px' ? margin.value :\n margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n\n return newRect;\n};\n\n\n/**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\nIntersectionObserver.prototype._hasCrossedThreshold =\n function(oldEntry, newEntry) {\n\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ?\n oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ?\n newEntry.intersectionRatio || 0 : -1;\n\n // Ignore unchanged ratios\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i];\n\n // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n if (threshold == oldRatio || threshold == newRatio ||\n threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n};\n\n\n/**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\nIntersectionObserver.prototype._rootIsInDom = function() {\n return !this.root || containsDeep(document, this.root);\n};\n\n\n/**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\nIntersectionObserver.prototype._rootContainsTarget = function(target) {\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n return (\n containsDeep(rootDoc, target) &&\n (!this.root || rootDoc == target.ownerDocument)\n );\n};\n\n\n/**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\nIntersectionObserver.prototype._registerInstance = function() {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n};\n\n\n/**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\nIntersectionObserver.prototype._unregisterInstance = function() {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n};\n\n\n/**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\nfunction now() {\n return window.performance && performance.now && performance.now();\n}\n\n\n/**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\nfunction throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function() {\n fn();\n timer = null;\n }, timeout);\n }\n };\n}\n\n\n/**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\nfunction addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\nfunction removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.detachEvent == 'function') {\n node.detachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object|?ClientRect} The intersection rect or undefined if no\n * intersection is found.\n */\nfunction computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n\n return (width >= 0 && height >= 0) && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n } || null;\n}\n\n\n/**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {DOMRect|ClientRect} The (possibly shimmed) rect of the element.\n */\nfunction getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {\n // Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect();\n\n // Older IE\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n return rect;\n}\n\n\n/**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {ClientRect} The empty rect.\n */\nfunction getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n}\n\n\n/**\n * Ensure that the result has all of the necessary fields of the DOMRect.\n * Specifically this ensures that `x` and `y` fields are set.\n *\n * @param {?DOMRect|?ClientRect} rect\n * @return {?DOMRect}\n */\nfunction ensureDOMRect(rect) {\n // A `DOMRect` object has `x` and `y` fields.\n if (!rect || 'x' in rect) {\n return rect;\n }\n // A IE's `ClientRect` type does not have `x` and `y`. The same is the case\n // for internally calculated Rect objects. For the purposes of\n // `IntersectionObserver`, it's sufficient to simply mirror `left` and `top`\n // for these fields.\n return {\n top: rect.top,\n y: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n right: rect.right,\n width: rect.width,\n height: rect.height\n };\n}\n\n\n/**\n * Inverts the intersection and bounding rect from the parent (frame) BCR to\n * the local BCR space.\n * @param {DOMRect|ClientRect} parentBoundingRect The parent's bound client rect.\n * @param {DOMRect|ClientRect} parentIntersectionRect The parent's own intersection rect.\n * @return {ClientRect} The local root bounding rect for the parent's children.\n */\nfunction convertFromParentRect(parentBoundingRect, parentIntersectionRect) {\n var top = parentIntersectionRect.top - parentBoundingRect.top;\n var left = parentIntersectionRect.left - parentBoundingRect.left;\n return {\n top: top,\n left: left,\n height: parentIntersectionRect.height,\n width: parentIntersectionRect.width,\n bottom: top + parentIntersectionRect.height,\n right: left + parentIntersectionRect.width\n };\n}\n\n\n/**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\nfunction containsDeep(parent, child) {\n var node = child;\n while (node) {\n if (node == parent) return true;\n\n node = getParentNode(node);\n }\n return false;\n}\n\n\n/**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\nfunction getParentNode(node) {\n var parent = node.parentNode;\n\n if (node.nodeType == /* DOCUMENT */ 9 && node != document) {\n // If this node is a document node, look for the embedding frame.\n return getFrameElement(node);\n }\n\n // If the parent has element that is assigned through shadow root slot\n if (parent && parent.assignedSlot) {\n parent = parent.assignedSlot.parentNode\n }\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n\n return parent;\n}\n\n/**\n * Returns true if `node` is a Document.\n * @param {!Node} node\n * @returns {boolean}\n */\nfunction isDoc(node) {\n return node && node.nodeType === 9;\n}\n\n\n// Exposes the constructors globally.\nwindow.IntersectionObserver = IntersectionObserver;\nwindow.IntersectionObserverEntry = IntersectionObserverEntry;\n\n}());\n","(function(window, factory) {\n\tvar lazySizes = factory(window, window.document, Date);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(typeof window != 'undefined' ?\n window : {}, \n/**\n * import(\"./types/global\")\n * @typedef { import(\"./types/lazysizes-config\").LazySizesConfigPartial } LazySizesConfigPartial\n */\nfunction l(window, document, Date) { // Pass in the window Date function also for SSR because the Date class can be lost\n\t'use strict';\n\t/*jshint eqnull:true */\n\n\tvar lazysizes,\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tlazySizesCfg;\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tfastLoadedClass: 'ls-is-cached',\n\t\t\tiframeLoadMode: 0,\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t\tricTimeout: 0,\n\t\t\tthrottleDelay: 125,\n\t\t};\n\n\t\tlazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesCfg)){\n\t\t\t\tlazySizesCfg[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\t})();\n\n\tif (!document || !document.getElementsByClassName) {\n\t\treturn {\n\t\t\tinit: function () {},\n\t\t\t/**\n\t\t\t * @type { LazySizesConfigPartial }\n\t\t\t */\n\t\t\tcfg: lazySizesCfg,\n\t\t\t/**\n\t\t\t * @type { true }\n\t\t\t */\n\t\t\tnoSupport: true,\n\t\t};\n\t}\n\n\tvar docElem = document.documentElement;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\t/**\n\t * Update to bind to window because 'this' becomes null during SSR\n\t * builds.\n\t */\n\tvar addEventListener = window[_addEventListener].bind(window);\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\t/**\n\t * @param elem { Element }\n\t * @param name { string }\n\t * @param detail { any }\n\t * @param noBubbles { boolean }\n\t * @param noCancelable { boolean }\n\t * @returns { CustomEvent }\n\t */\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('Event');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initEvent(name, !noBubbles, !noCancelable);\n\n\t\tevent.detail = detail;\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesCfg.pf) ) ){\n\t\t\tif(full && full.src && !el[_getAttribute]('srcset')){\n\t\t\t\tel.setAttribute('srcset', full.src);\n\t\t\t}\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\t/**\n\t *\n\t * @param elem { Element }\n\t * @param parent { Element }\n\t * @param [width] {number}\n\t * @returns {number}\n\t */\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesCfg.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth = parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = lazySizesCfg.throttleDelay;\n\t\tvar rICTimeout = lazySizesCfg.ricTimeout;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback && rICTimeout > 49 ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesCfg.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesCfg.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || delay < 9){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isVisible = function (elem) {\n\t\t\tif (isBodyHidden == null) {\n\t\t\t\tisBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n\t\t\t}\n\n\t\t\treturn isBodyHidden || !(getCSS(elem.parentNode, 'visibility') == 'hidden' && getCSS(elem, 'visibility') == 'hidden');\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = isVisible(elem);\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,\n\t\t\t\tbeforeExpandVal, defaultExpand, preloadExpand, hFac;\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesCfg.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll || (lazysizes.prematureUnveil && lazysizes.prematureUnveil(lazyloadElems[i]))){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!defaultExpand) {\n\t\t\t\t\t\tdefaultExpand = (!lazySizesCfg.expand || lazySizesCfg.expand < 1) ?\n\t\t\t\t\t\t\tdocElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :\n\t\t\t\t\t\t\tlazySizesCfg.expand;\n\n\t\t\t\t\t\tlazysizes._defEx = defaultExpand;\n\n\t\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesCfg.expFactor;\n\t\t\t\t\t\thFac = lazySizesCfg.hFac;\n\t\t\t\t\t\tisBodyHidden = null;\n\n\t\t\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\t\t\tlowRuns = 0;\n\t\t\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesCfg.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\tvar elem = e.target;\n\n\t\t\tif (elem._lazyCache) {\n\t\t\t\tdelete elem._lazyCache;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresetPreloading(e);\n\t\t\taddClass(elem, lazySizesCfg.loadedClass);\n\t\t\tremoveClass(elem, lazySizesCfg.loadingClass);\n\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(elem, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\tvar loadMode = elem.getAttribute('data-load-mode') || lazySizesCfg.iframeLoadMode;\n\n\t\t\t// loadMode can be also a string!\n\t\t\tif (loadMode == 0) {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} else if (loadMode == 1) {\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesCfg.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesCfg.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesCfg.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\taddClass(elem, lazySizesCfg.loadingClass);\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesCfg.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\t// Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)\n\t\t\t\tvar isLoaded = elem.complete && elem.naturalWidth > 1;\n\n\t\t\t\tif( !firesLoad || isLoaded){\n\t\t\t\t\tif (isLoaded) {\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.fastLoadedClass);\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t\telem._lazyCache = true;\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif ('_lazyCache' in elem) {\n\t\t\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9);\n\t\t\t\t}\n\t\t\t\tif (elem.loading == 'lazy') {\n\t\t\t\t\tisLoading--;\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\t/**\n\t\t *\n\t\t * @param elem { Element }\n\t\t */\n\t\tvar unveilElement = function (elem){\n\t\t\tif (elem._lazyRace) {return;}\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesCfg.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesCfg.errorClass) && hasClass(elem, lazySizesCfg.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar afterScroll = debounce(function(){\n\t\t\tlazySizesCfg.loadMode = 3;\n\t\t\tthrottledCheckElements();\n\t\t});\n\n\t\tvar altLoadmodeScrollListner = function(){\n\t\t\tif(lazySizesCfg.loadMode == 3){\n\t\t\t\tlazySizesCfg.loadMode = 2;\n\t\t\t}\n\t\t\tafterScroll();\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesCfg.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', altLoadmodeScrollListner, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesCfg.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass);\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('pageshow', function (e) {\n\t\t\t\t\tif (e.persisted) {\n\t\t\t\t\t\tvar loadingElements = document.querySelectorAll('.' + lazySizesCfg.loadingClass);\n\n\t\t\t\t\t\tif (loadingElements.length && loadingElements.forEach) {\n\t\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\t\tloadingElements.forEach( function (img) {\n\t\t\t\t\t\t\t\t\tif (img.complete) {\n\t\t\t\t\t\t\t\t\t\tunveilElement(img);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement,\n\t\t\t_aLSL: altLoadmodeScrollListner,\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\t/**\n\t\t *\n\t\t * @param elem {Element}\n\t\t * @param dataAttr\n\t\t * @param [width] { number }\n\t\t */\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesCfg.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i && document.getElementsByClassName){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tsetTimeout(function(){\n\t\tif(lazySizesCfg.init){\n\t\t\tinit();\n\t\t}\n\t});\n\n\tlazysizes = {\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tcfg: lazySizesCfg,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image();\nvar supportsObjectFit = 'object-fit' in testImg.style;\nvar supportsObjectPosition = 'object-position' in testImg.style;\nvar supportsOFI = 'background-size' in testImg.style;\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n\treturn (\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\");\n}\n\nfunction polyfillCurrentSrc(el) {\n\tif (el.srcset && !supportsCurrentSrc && window.picturefill) {\n\t\tvar pf = window.picturefill._;\n\t\t// parse srcset with picturefill where currentSrc isn't available\n\t\tif (!el[pf.ns] || !el[pf.ns].evaled) {\n\t\t\t// force synchronous srcset parsing\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\tif (!el[pf.ns].curSrc) {\n\t\t\t// force picturefill to parse srcset\n\t\t\tel[pf.ns].supported = false;\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\t// retrieve parsed currentSrc, if any\n\t\tel.currentSrc = el[pf.ns].curSrc || el.src;\n\t}\n}\n\nfunction getStyle(el) {\n\tvar style = getComputedStyle(el).fontFamily;\n\tvar parsed;\n\tvar props = {};\n\twhile ((parsed = propRegex.exec(style)) !== null) {\n\t\tprops[parsed[1]] = parsed[2];\n\t}\n\treturn props;\n}\n\nfunction setPlaceholder(img, width, height) {\n\t// Default: fill width, no height\n\tvar placeholder = createPlaceholder(width || 1, height || 0);\n\n\t// Only set placeholder if it's different\n\tif (nativeGetAttribute.call(img, 'src') !== placeholder) {\n\t\tnativeSetAttribute.call(img, 'src', placeholder);\n\t}\n}\n\nfunction onImageReady(img, callback) {\n\t// naturalWidth is only available when the image headers are loaded,\n\t// this loop will poll it every 100ms.\n\tif (img.naturalWidth) {\n\t\tcallback(img);\n\t} else {\n\t\tsetTimeout(onImageReady, 100, img, callback);\n\t}\n}\n\nfunction fixOne(el) {\n\tvar style = getStyle(el);\n\tvar ofi = el[OFI];\n\tstyle['object-fit'] = style['object-fit'] || 'fill'; // default value\n\n\t// Avoid running where unnecessary, unless OFI had already done its deed\n\tif (!ofi.img) {\n\t\t// fill is the default behavior so no action is necessary\n\t\tif (style['object-fit'] === 'fill') {\n\t\t\treturn;\n\t\t}\n\n\t\t// Where object-fit is supported and object-position isn't (Safari < 10)\n\t\tif (\n\t\t\t!ofi.skipTest && // unless user wants to apply regardless of browser support\n\t\t\tsupportsObjectFit && // if browser already supports object-fit\n\t\t\t!style['object-position'] // unless object-position is used\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// keep a clone in memory while resetting the original to a blank\n\tif (!ofi.img) {\n\t\tofi.img = new Image(el.width, el.height);\n\t\tofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n\t\tofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src;\n\n\t\t// preserve for any future cloneNode calls\n\t\t// https://github.com/bfred-it/object-fit-images/issues/53\n\t\tnativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\t\tif (el.srcset) {\n\t\t\tnativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n\t\t}\n\n\t\tsetPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height);\n\n\t\t// remove srcset because it overrides src\n\t\tif (el.srcset) {\n\t\t\tel.srcset = '';\n\t\t}\n\t\ttry {\n\t\t\tkeepSrcUsable(el);\n\t\t} catch (err) {\n\t\t\tif (window.console) {\n\t\t\t\tconsole.warn('https://bit.ly/ofi-old-browser');\n\t\t\t}\n\t\t}\n\t}\n\n\tpolyfillCurrentSrc(ofi.img);\n\n\tel.style.backgroundImage = \"url(\\\"\" + ((ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"')) + \"\\\")\";\n\tel.style.backgroundPosition = style['object-position'] || 'center';\n\tel.style.backgroundRepeat = 'no-repeat';\n\tel.style.backgroundOrigin = 'content-box';\n\n\tif (/scale-down/.test(style['object-fit'])) {\n\t\tonImageReady(ofi.img, function () {\n\t\t\tif (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n\t\t\t\tel.style.backgroundSize = 'contain';\n\t\t\t} else {\n\t\t\t\tel.style.backgroundSize = 'auto';\n\t\t\t}\n\t\t});\n\t} else {\n\t\tel.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n\t}\n\n\tonImageReady(ofi.img, function (img) {\n\t\tsetPlaceholder(el, img.naturalWidth, img.naturalHeight);\n\t});\n}\n\nfunction keepSrcUsable(el) {\n\tvar descriptors = {\n\t\tget: function get(prop) {\n\t\t\treturn el[OFI].img[prop ? prop : 'src'];\n\t\t},\n\t\tset: function set(value, prop) {\n\t\t\tel[OFI].img[prop ? prop : 'src'] = value;\n\t\t\tnativeSetAttribute.call(el, (\"data-ofi-\" + prop), value); // preserve for any future cloneNode\n\t\t\tfixOne(el);\n\t\t\treturn value;\n\t\t}\n\t};\n\tObject.defineProperty(el, 'src', descriptors);\n\tObject.defineProperty(el, 'currentSrc', {\n\t\tget: function () { return descriptors.get('currentSrc'); }\n\t});\n\tObject.defineProperty(el, 'srcset', {\n\t\tget: function () { return descriptors.get('srcset'); },\n\t\tset: function (ss) { return descriptors.set(ss, 'srcset'); }\n\t});\n}\n\nfunction hijackAttributes() {\n\tfunction getOfiImageMaybe(el, name) {\n\t\treturn el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n\t}\n\tif (!supportsObjectPosition) {\n\t\tHTMLImageElement.prototype.getAttribute = function (name) {\n\t\t\treturn nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n\t\t};\n\n\t\tHTMLImageElement.prototype.setAttribute = function (name, value) {\n\t\t\treturn nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n\t\t};\n\t}\n}\n\nfunction fix(imgs, opts) {\n\tvar startAutoMode = !autoModeEnabled && !imgs;\n\topts = opts || {};\n\timgs = imgs || 'img';\n\n\tif ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) {\n\t\treturn false;\n\t}\n\n\t// use imgs as a selector or just select all images\n\tif (imgs === 'img') {\n\t\timgs = document.getElementsByTagName('img');\n\t} else if (typeof imgs === 'string') {\n\t\timgs = document.querySelectorAll(imgs);\n\t} else if (!('length' in imgs)) {\n\t\timgs = [imgs];\n\t}\n\n\t// apply fix to all\n\tfor (var i = 0; i < imgs.length; i++) {\n\t\timgs[i][OFI] = imgs[i][OFI] || {\n\t\t\tskipTest: opts.skipTest\n\t\t};\n\t\tfixOne(imgs[i]);\n\t}\n\n\tif (startAutoMode) {\n\t\tdocument.body.addEventListener('load', function (e) {\n\t\t\tif (e.target.tagName === 'IMG') {\n\t\t\t\tfix(e.target, {\n\t\t\t\t\tskipTest: opts.skipTest\n\t\t\t\t});\n\t\t\t}\n\t\t}, true);\n\t\tautoModeEnabled = true;\n\t\timgs = 'img'; // reset to a generic selector for watchMQ\n\t}\n\n\t// if requested, watch media queries for object-fit change\n\tif (opts.watchMQ) {\n\t\twindow.addEventListener('resize', fix.bind(null, imgs, {\n\t\t\tskipTest: opts.skipTest\n\t\t}));\n\t}\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\n\nhijackAttributes();\n\nmodule.exports = fix;\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*!\n * Unidragger v2.4.0\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'unipointer/unipointer'\n ], function( Unipointer ) {\n return factory( window, Unipointer );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('unipointer')\n );\n } else {\n // browser global\n window.Unidragger = factory(\n window,\n window.Unipointer\n );\n }\n\n}( window, function factory( window, Unipointer ) {\n\n'use strict';\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n // bind each handle\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n for ( var i=0; i < this.handles.length; i++ ) {\n var handle = this.handles[i];\n this._bindStartEvent( handle, isAdd );\n handle[ bindMethod ]( 'click', this );\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if ( window.PointerEvent ) {\n handle.style.touchAction = touchAction;\n }\n }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n var isCursorNode = cursorNodes[ event.target.nodeName ];\n var isClickType = clickTypes[ event.target.type ];\n var isOkay = !isCursorNode || isClickType;\n if ( !isOkay ) {\n this._pointerReset();\n }\n return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n var focused = document.activeElement;\n // do not blur body for IE10, metafizzy/flickity#117\n var canBlur = focused && focused.blur && focused != document.body;\n if ( canBlur ) {\n focused.blur();\n }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n };\n // start drag if pointer has moved far enough to start drag\n if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n this._dragStart( event, pointer );\n }\n return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto._dragPointerUp = function( event, pointer ) {\n if ( this.isDragging ) {\n this._dragEnd( event, pointer );\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick( event, pointer );\n }\n};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n this.isDragging = true;\n // prevent clicks\n this.isPreventingClicks = true;\n this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._dragMove = function( event, pointer, moveVector ) {\n // do not drag if not dragging yet\n if ( !this.isDragging ) {\n return;\n }\n\n this.dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n event.preventDefault();\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n // set flags\n this.isDragging = false;\n // re-enable clicking async\n setTimeout( function() {\n delete this.isPreventingClicks;\n }.bind( this ) );\n\n this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n if ( this.isPreventingClicks ) {\n event.preventDefault();\n }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._staticClick = function( event, pointer ) {\n // ignore emulated mouse up clicks\n if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) {\n return;\n }\n\n this.staticClick( event, pointer );\n\n // set flag for emulated clicks 300ms after touchend\n if ( event.type != 'mouseup' ) {\n this.isIgnoringMouseUp = true;\n // reset flag after 300ms\n setTimeout( function() {\n delete this.isIgnoringMouseUp;\n }.bind( this ), 400 );\n }\n};\n\nproto.staticClick = function( event, pointer ) {\n this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// ----- ----- //\n\nreturn Unidragger;\n\n}));\n","/*!\n * Unipointer v2.4.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*global define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.Unipointer = factory(\n window,\n window.EvEmitter\n );\n }\n\n}( window, function factory( window, EvEmitter ) {\n\n'use strict';\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n // default to mouse events\n var startEvent = 'mousedown';\n if ( 'ontouchstart' in window ) {\n // HACK prefer Touch Events as you can preventDefault on touchstart to\n // disable scroll in iOS & mobile Chrome metafizzy/flickity#1177\n startEvent = 'touchstart';\n } else if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\n }\n elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n for ( var i=0; i < touches.length; i++ ) {\n var touch = touches[i];\n if ( touch.identifier == this.pointerIdentifier ) {\n return touch;\n }\n }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n if ( button && ( button !== 0 && button !== 1 ) ) {\n return;\n }\n this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._pointerDown = function( event, pointer ) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if ( event.button || this.isPointerDown ) {\n return;\n }\n\n this.isPointerDown = true;\n // save pointer identifier to match up touch events\n this.pointerIdentifier = pointer.pointerId !== undefined ?\n // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n\n this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n mousedown: [ 'mousemove', 'mouseup' ],\n touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n if ( !event ) {\n return;\n }\n // get proper events to match start event\n var events = postStartEvents[ event.type ];\n // bind events to node\n events.forEach( function( eventName ) {\n window.addEventListener( eventName, this );\n }, this );\n // save these arguments\n this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if ( !this._boundPointerEvents ) {\n return;\n }\n this._boundPointerEvents.forEach( function( eventName ) {\n window.removeEventListener( eventName, this );\n }, this );\n\n delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerMove( event, event );\n }\n};\n\nproto.ontouchmove = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerMove( event, touch );\n }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerUp( event, event );\n }\n};\n\nproto.ontouchend = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerUp( event, touch );\n }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n this._pointerDone();\n this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n this._pointerReset();\n this._unbindPostStartEvents();\n this.pointerDone();\n};\n\nproto._pointerReset = function() {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerCancel( event, event );\n }\n};\n\nproto.ontouchcancel = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerCancel( event, touch );\n }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n this._pointerDone();\n this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// ----- ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n};\n\n// ----- ----- //\n\nreturn Unipointer;\n\n}));\n","module.exports={\r\n \"name\": \"frontend-boilerplate\",\r\n \"description\": \"An opinionated blueprint environment to quick start new front-end codebases\",\r\n \"version\": \"1.0.0\",\r\n \"repository\": {\r\n \"type\": \"git\",\r\n \"url\": \"https://github.com/mirabeau-nl/frontend-boilerplate.git\"\r\n },\r\n \"scripts\": {\r\n \"gulp\": \"node node_modules/gulp/bin/gulp.js\",\r\n \"start\": \"gulp dev\",\r\n \"dev\": \"gulp dev\",\r\n \"dist\": \"gulp dist\",\r\n \"test\": \"gulp test\",\r\n \"prettier\": \"prettier --config .prettierrc.json --check --debug-check ./**/*.{js,ts,(s)css,html}\",\r\n \"prettier:fix\": \"prettier --config .prettierrc.json ./**/*.{js,ts,(s)css,html} --write --cache --loglevel silent\",\r\n \"stylelint\": \"stylelint --config .stylelintrc.json ./**/*.{scss,vue} --formatter verbose\",\r\n \"stylelint:fix\": \"stylelint --config .stylelintrc.json ./**/*.{scss,vue} --formatter verbose --fix\",\r\n \"eslint\": \"eslint -c .eslintrc.json ./**/*.{js,ts,vue} --cache --cache-location ./dev-reports/.eslintcache\",\r\n \"eslint:dry\": \"eslint -c .eslintrc.json ./**/*.{js,ts,vue} --cache --cache-location ./dev-reports/.eslintcache --fix-dry-run\",\r\n \"eslint:fix\": \"eslint -c .eslintrc.json ./**/*.{js,ts,vue} --cache --cache-location ./dev-reports/.eslintcache --fix\",\r\n \"eslint:needles\": \"eslint -c .eslintrc.json ./**/*.{js,ts,vue} --report-unused-disable-directives\",\r\n \"preclean\": \"npm run del\",\r\n \"clean\": \"npm install\",\r\n \"postclean\": \"echo All node modules are re-installed! Happy coding !!!\",\r\n \"del\": \"npx rimraf node_modules package-lock.json\"\r\n },\r\n \"contributors\": [\r\n \"Bran van der Meer <bran.vd.meer@gmail.com> (http://bran.name/)\",\r\n \"Rik Schennink <rikschennink@gmail.com> (http://rikschennink.nl/)\",\r\n \"Niek Bosch <just.niek@gmail.com>\",\r\n \"Eric Weerstra <eweerstra@mirabeau.nl> (http://visualformation.com/)\",\r\n \"Arno Wolkers <awolkers@mirabeau.nl> (https://www.mirabeau.nl/)\",\r\n \"Leendert Ullersma <leendert.ullersma@gmail.com>\",\r\n \"Christiaan Stegeman <henkverdenk@hotmail.com>\",\r\n \"Sybren Wartna <sybren@gmail.com> (http://waarissyb.nl/)\",\r\n \"Wouter Kroes <wkroes@mirabeau.nl> (http://www.wouterkroes.nl/)\",\r\n \"Sanjay Twisk <stwisk@mirabeau.nl> (http://twisk-interactive.nl/)\",\r\n \"Peeke Kuepers <pkuepers@mirabeau.nl> (https://peeke.nl/)\",\r\n \"Bram Swier <bswier@mirabeau.nl> (https://www.mirabeau.nl/)\",\r\n \"Marius de Corte <mdecorte@gmail.nl> (https://marius.observer/)\",\r\n \"Cosmin Epureanu <cosmin.epureanu@gmail.com> (http://cosminepureanu.com/)\",\r\n \"Colin Aarts <hello@colinaarts.com> (https://colinaarts.com)\",\r\n \"Razvan Negrea <howl@wolfpilot.co> (http://www.wolfpilot.co/)\",\r\n \"Dave Bitter <dbitter@mirabeau.nl> (https://davebitter.com)\"\r\n ],\r\n \"readmeFilename\": \"README.md\",\r\n \"license\": \"BSD-3-Clause\",\r\n \"devDependencies\": {\r\n \"@babel/core\": \"^7.6.0\",\r\n \"@babel/eslint-parser\": \"^7.25.1\",\r\n \"@babel/plugin-external-helpers\": \"^7.2.0\",\r\n \"@babel/plugin-proposal-class-properties\": \"^7.5.5\",\r\n \"@babel/plugin-proposal-object-rest-spread\": \"^7.5.5\",\r\n \"@babel/plugin-transform-async-to-generator\": \"^7.25.9\",\r\n \"@babel/plugin-transform-runtime\": \"^7.6.0\",\r\n \"@babel/polyfill\": \"^7.6.0\",\r\n \"@babel/preset-env\": \"^7.6.0\",\r\n \"@babel/register\": \"^7.6.0\",\r\n \"autoprefixer\": \"^8.3.0\",\r\n \"babelify\": \"^10.0.0\",\r\n \"browser-sync\": \"^2.26.7\",\r\n \"browserify\": \"^16.5.0\",\r\n \"del\": \"^3.0.0\",\r\n \"dotenv\": \"^5.0.1\",\r\n \"errorify\": \"^0.3.1\",\r\n \"eslint\": \"^8.57.1\",\r\n \"eslint-config-prettier\": \"^8.10.0\",\r\n \"glob\": \"^7.1.4\",\r\n \"gulp\": \"4.0.0\",\r\n \"gulp-changed\": \"^4.0.3\",\r\n \"gulp-clean-css\": \"^4.3.0\",\r\n \"gulp-data\": \"^1.3.1\",\r\n \"gulp-ext-replace\": \"^0.3.0\",\r\n \"gulp-filter\": \"^5.1.0\",\r\n \"gulp-if\": \"^3.0.0\",\r\n \"gulp-imagemin\": \"^7.0.0\",\r\n \"gulp-mocha\": \"^5.0.0\",\r\n \"gulp-nunjucks-render\": \"^2.2.3\",\r\n \"gulp-postcss\": \"^10.0.0\",\r\n \"gulp-rename\": \"^2.0.0\",\r\n \"gulp-sass\": \"^5.1.0\",\r\n \"gulp-sourcemaps\": \"^3.0.0\",\r\n \"gulp-svg-sprite\": \"^2.0.3\",\r\n \"gulp-transform\": \"^3.0.5\",\r\n \"gulp-uglify\": \"^3.0.2\",\r\n \"gulp-util\": \"^3.0.7\",\r\n \"gulp-zip\": \"^4.1.0\",\r\n \"highlight.js\": \"^11.10.0\",\r\n \"ignore\": \"^3.3.7\",\r\n \"js-beautify\": \"^1.15.1\",\r\n \"js-yaml\": \"^4.1.0\",\r\n \"marked\": \"^4.0.1\",\r\n \"moment-timezone\": \"^0.5.26\",\r\n \"nunjucks-includeData\": \"0.0.9\",\r\n \"prettier\": \"^3.2.5\",\r\n \"require-globify\": \"^1.4.1\",\r\n \"sass\": \"1.77.6\",\r\n \"stylelint\": \"^16.9.0\",\r\n \"stylelint-config-prettier-scss\": \"^1.0.0\",\r\n \"stylelint-config-recommended-scss\": \"^14.1.0\",\r\n \"stylelint-config-standard-scss\": \"^13.1.0\",\r\n \"stylelint-selector-bem-pattern\": \"^4.0.1\",\r\n \"vinyl\": \"^2.1.0\",\r\n \"vinyl-buffer\": \"^1.0.1\",\r\n \"vinyl-ftp\": \"^0.6.1\",\r\n \"vinyl-source-stream\": \"^2.0.0\",\r\n \"watchify\": \"^3.11.1\",\r\n \"zen-observable\": \"^0.7.1\"\r\n },\r\n \"dependencies\": {\r\n \"@babel/runtime\": \"^7.6.0\",\r\n \"@dotsunited/load-css-polyfill\": \"^1.2.0\",\r\n \"body-scroll-lock\": \"^2.6.4\",\r\n \"chart.js\": \"^4.2.1\",\r\n \"chartjs-adapter-moment\": \"^1.0.1\",\r\n \"chartjs-plugin-datalabels\": \"^2.2.0\",\r\n \"colcade\": \"^0.2.0\",\r\n \"element-matches-polyfill\": \"^1.0.0\",\r\n \"element-qsa-scope\": \"^1.1.0\",\r\n \"eligrey-classlist-js-polyfill\": \"^1.2.20180112\",\r\n \"flickity\": \"^2.2.1\",\r\n \"flickity-as-nav-for\": \"^2.0.1\",\r\n \"flickity-fade\": \"^1.0.0\",\r\n \"focus-visible\": \"^5.0.2\",\r\n \"glightbox\": \"^3.0.5\",\r\n \"intersection-observer\": \"^0.12.2\",\r\n \"lazysizes\": \"^5.3.2\",\r\n \"mdn-polyfills\": \"^5.18.0\",\r\n \"moment\": \"^2.30.1\",\r\n \"normalize-scss\": \"^8.0.0\",\r\n \"object-fit-images\": \"^3.2.4\",\r\n \"svg4everybody\": \"^2.1.9\",\r\n \"webfontloader\": \"^1.6.28\"\r\n }\r\n}\r\n","import { debounce } from '../../../static/js/utils/debounce';\r\nimport ScriptLoader from '../../../static/js/utils/ScriptLoader';\r\n//Country ADM0_A3_IS list from: https://data.opendatasoft.com/explore/dataset/ne_10m_admin_0_countries%40public-us/table/?flg=fr\r\n\r\nclass Map {\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = { ...Map.options, ...options };\r\n this._loadMarker = this._loadMarker.bind(this);\r\n this._resize = this._resize.bind(this);\r\n this._handleCountryClick = this._handleCountryClick.bind(this);\r\n //this._cacheSelectors()\r\n ScriptLoader.load(this._options.mapbox)\r\n .then(() => {\r\n this._mapboxgl = window.mapboxgl;\r\n\r\n this._cacheSelectors();\r\n this._initialize();\r\n })\r\n .catch(console.error);\r\n }\r\n\r\n static options = {\r\n mapbox: 'https://api.mapbox.com/mapbox-gl-js/v1.6.1/mapbox-gl.js',\r\n markerOffset: -12,\r\n token:\r\n 'pk.eyJ1IjoiZGlnaXRhbGFocmVuZCIsImEiOiJjazFhbzlmZXcwMW5nM2lwZzY0NGJmNmpkIn0.7nLzgRJsxvqGT9s2P1KmEg',\r\n countries1: {\r\n 'id': 'countries1',\r\n 'source': {\r\n type: 'vector',\r\n url: 'mapbox://digitalahrend.9ehtxvyo',\r\n },\r\n 'source-layer': 'ne_10m_admin_0_countries-167gff',\r\n 'type': 'fill',\r\n 'paint': {\r\n 'fill-color': '#4A566B',\r\n },\r\n },\r\n countries2: {\r\n 'id': 'countries2',\r\n 'source': {\r\n type: 'vector',\r\n url: 'mapbox://digitalahrend.9ehtxvyo',\r\n },\r\n 'source-layer': 'ne_10m_admin_0_countries-167gff',\r\n 'type': 'fill',\r\n 'paint': {\r\n 'fill-color': '#4A566B',\r\n },\r\n },\r\n countries3: {\r\n 'id': 'countries3',\r\n 'source': {\r\n type: 'vector',\r\n url: 'mapbox://digitalahrend.9ehtxvyo',\r\n },\r\n 'source-layer': 'ne_10m_admin_0_countries-167gff',\r\n 'type': 'fill',\r\n 'paint': {\r\n 'fill-color': '#848e9f',\r\n },\r\n },\r\n lines: {\r\n 'id': 'lines',\r\n 'source': {\r\n type: 'vector',\r\n url: 'mapbox://digitalahrend.9ehtxvyo',\r\n },\r\n 'source-layer': 'ne_10m_admin_0_countries-167gff',\r\n 'type': 'line',\r\n 'paint': {\r\n 'line-color': '#ffffff',\r\n },\r\n },\r\n water: {\r\n 'id': 'water',\r\n 'source': {\r\n type: 'vector',\r\n url: 'mapbox://mapbox.mapbox-streets-v8',\r\n },\r\n 'source-layer': 'water',\r\n 'type': 'fill',\r\n 'paint': {\r\n 'fill-color': '#FFFFFF',\r\n },\r\n },\r\n zoom: 1,\r\n minzoom: 1,\r\n maxzoom: 1,\r\n debounceTime: 100,\r\n mobileBreakpoint: 720,\r\n };\r\n\r\n _state = {\r\n markerPopup: null,\r\n hoveredCountryId: null,\r\n popOpen: null,\r\n hasPopup: false,\r\n typeone: [],\r\n typetwo: [],\r\n typethree: [],\r\n mobile: false,\r\n };\r\n\r\n _cacheSelectors() {\r\n this._mapboxgl.accessToken = this._options.token;\r\n this._elements = {\r\n markers: [...this._element.querySelectorAll(this._options.markers)],\r\n map: new this._mapboxgl.Map({\r\n container: 'map__window',\r\n style: 'mapbox://styles/digitalahrend/ck1aq3hz409oz1cl8ttkcckq5?optimize=true',\r\n zoom: this._options.zoom,\r\n center: [parseFloat(this._options.lng), parseFloat(this._options.lat)],\r\n maxZoom: parseFloat(this._options.maxzoom),\r\n minZoom: parseFloat(this._options.minzoom),\r\n crossOrigin: 'anonymous',\r\n }),\r\n typeone: [...this._element.querySelectorAll(this._options.typeone)],\r\n typetwo: [...this._element.querySelectorAll(this._options.typetwo)],\r\n typethree: [...this._element.querySelectorAll(this._options.typethree)],\r\n };\r\n }\r\n\r\n _initialize() {\r\n this._resize();\r\n\r\n window.addEventListener(\r\n 'resize',\r\n debounce(() => {\r\n this._resize();\r\n }, this._options.debounceTime)\r\n );\r\n\r\n /* eslint-disable prefer-destructuring */\r\n const _options = this._options;\r\n this._mapboxgl.accessToken = this._options.token;\r\n const map = this._elements.map;\r\n map.scrollZoom.disable();\r\n\r\n /* eslint-enable */\r\n map.addControl(new this._mapboxgl.NavigationControl());\r\n\r\n this._elements.markers.forEach((marker) => {\r\n this._loadMarker(marker);\r\n });\r\n\r\n this._elements.typeone.forEach((filter) => {\r\n const code = filter.getAttribute('data-ref');\r\n this._state.typeone.push(code);\r\n });\r\n\r\n this._elements.typetwo.forEach((filter) => {\r\n const code = filter.getAttribute('data-ref');\r\n this._state.typetwo.push(code);\r\n });\r\n\r\n this._elements.typethree.forEach((filter) => {\r\n const code = filter.getAttribute('data-ref');\r\n this._state.typethree.push(code);\r\n });\r\n\r\n map.on('load', () => {\r\n map.addLayer(_options.countries1);\r\n map.addLayer(_options.countries2);\r\n map.addLayer(_options.countries3);\r\n map.addLayer(_options.water);\r\n map.addLayer(_options.lines);\r\n\r\n map.setFilter('countries1', ['in', 'ADM0_A3_IS'].concat(...this._state.typeone));\r\n map.setFilter('countries2', ['in', 'ADM0_A3_IS'].concat(...this._state.typetwo));\r\n map.setFilter('countries3', ['in', 'ADM0_A3_IS'].concat(this._state.typethree));\r\n });\r\n\r\n map.on('click', 'countries2', (e) => {\r\n const features = map.queryRenderedFeatures(e.point, {\r\n layers: ['countries2'],\r\n });\r\n const type = 2;\r\n this._handleCountryClick(e, features, type);\r\n });\r\n\r\n map.on('click', 'countries3', (e) => {\r\n const features = map.queryRenderedFeatures(e.point, {\r\n layers: ['countries3'],\r\n });\r\n const type = 3;\r\n this._handleCountryClick(e, features, type);\r\n });\r\n }\r\n\r\n _handleCountryClick(e, features, type) {\r\n if (this._state.hasPopup) {\r\n return;\r\n }\r\n if (this._state.popOpen === null) {\r\n /* eslint-disable prefer-destructuring */\r\n const map = this._elements.map;\r\n const feature = features[0];\r\n /* eslint-enable */\r\n const country = feature.properties.ADM0_A3_IS;\r\n const filter = this._element.querySelector(`[data-ref=\"${country}\"][data-type=\"${type}\"]`);\r\n const header = '<div class=\"map__marker_info\">';\r\n let fig = null;\r\n let figure = '';\r\n fig = filter.querySelector('figure');\r\n if (fig !== null) {\r\n figure = fig.innerHTML;\r\n }\r\n let link = '';\r\n const linkMarker = filter.querySelector('.map__country__link');\r\n if (linkMarker !== null) {\r\n link = linkMarker.innerHTML;\r\n }\r\n const text = '<div class=\"map__marker_text\">';\r\n const name = `<h3>${filter.querySelector('.map__country__name').innerHTML}</h3>`;\r\n const title = `<h3>${filter.querySelector('.map__country__title').innerHTML}</h3>`;\r\n const address = `<div class=\"map__marker__address\">${\r\n filter.querySelector('.map__country__address').innerHTML\r\n }</div>`;\r\n const phone = `<div class=\"map__marker__phone\">${\r\n filter.querySelector('.map__country__phone').innerHTML\r\n }</div>`;\r\n const footer = '</div></div>';\r\n const html = header + figure + text + name + title + address + phone + link + footer;\r\n const popup = new this._mapboxgl.Popup()\r\n .setLngLat(map.unproject(e.point))\r\n .setHTML(html)\r\n .addTo(map);\r\n this._state.popOpen = popup;\r\n popup.on('close', () => {\r\n this._state.hasPopup = false;\r\n this._state.markerPopup = null;\r\n this._state.popOpen = null;\r\n });\r\n } else {\r\n this._state.popOpen.remove();\r\n this._state.popOpen = null;\r\n }\r\n }\r\n\r\n _resize() {\r\n this._state.mobile =\r\n window.innerWidth < this._options.mobileBreakpoint ||\r\n document.documentElement.clientWidth < this._options.mobileBreakpoint ||\r\n document.body.clientWidth < this._options.mobileBreakpoint;\r\n\r\n if (this._state.mobile) {\r\n this._elements.map.dragRotate.disable();\r\n this._elements.map.scrollZoom.disable();\r\n this._elements.map.touchZoomRotate.disable();\r\n } else {\r\n this._elements.map.dragRotate.enable();\r\n this._elements.map.scrollZoom.enable();\r\n this._elements.map.touchZoomRotate.enable();\r\n }\r\n }\r\n\r\n _loadMarker(marker) {\r\n /* eslint-disable prefer-destructuring */\r\n const _state = this._state;\r\n const map = this._elements.map;\r\n /* eslint-enable */\r\n const el = document.createElement('div');\r\n let brand = 'ahrend';\r\n if (marker.getAttribute('data-brand')) {\r\n brand = marker.getAttribute('data-brand');\r\n }\r\n el.className = `map-marker ${brand.toLowerCase()}`;\r\n const header = '<div class=\"map__marker_info\">';\r\n let fig = null;\r\n let figure = '';\r\n let link = '';\r\n fig = marker.querySelector('figure');\r\n if (fig !== null) {\r\n figure = fig.innerHTML;\r\n }\r\n const linkMarker = marker.querySelector('.map__marker__link');\r\n if (linkMarker !== null) {\r\n link = linkMarker.innerHTML;\r\n }\r\n\r\n const text = '<div class=\"map__marker_text\">';\r\n const title = `<h3>${marker.querySelector('.map__marker__title').innerHTML}</h3>`;\r\n const address = `<div class=\"map__marker__address\">${\r\n marker.querySelector('.map__marker__address').innerHTML\r\n }</div>`;\r\n const phone = `<div class=\"map__marker__phone\">${\r\n marker.querySelector('.map__marker__phone').innerHTML\r\n }</div>`;\r\n const lng = parseFloat(marker.querySelector('.map__marker__lng').textContent);\r\n const lat = parseFloat(marker.querySelector('.map__marker__lat').textContent);\r\n const footer = '</div></div>';\r\n const content = header + figure + text + title + address + phone + link + footer;\r\n\r\n const popup = new this._mapboxgl.Popup({ offset: 8 }).setHTML(content);\r\n\r\n new this._mapboxgl.Marker(el, {\r\n offset: [0, this._options.markerOffset],\r\n })\r\n .setLngLat([lng, lat])\r\n .setPopup(popup)\r\n .addTo(map);\r\n\r\n popup.on('close', () => {\r\n _state.hasPopup = false;\r\n _state.markerPopup = null;\r\n _state.popOpen = null;\r\n const x = document.getElementsByClassName('active-marker');\r\n let i = 0;\r\n for (i = 0; i < x.length; i++) {\r\n x[i].classList.remove('active-marker');\r\n }\r\n });\r\n\r\n popup.on('open', () => {\r\n const popups = [...document.querySelectorAll('.mapboxgl-popup')];\r\n popups.forEach((pop) => {\r\n const img = pop.querySelectorAll('img');\r\n if (img.length > 0) {\r\n pop.classList.remove('no-figure');\r\n } else {\r\n pop.classList.add('no-figure');\r\n }\r\n });\r\n });\r\n\r\n el.addEventListener('click', (e) => {\r\n _state.hasPopup = true;\r\n if (_state.markerPopup === null) {\r\n _state.markerPopup = popup;\r\n } else {\r\n _state.markerPopup.remove();\r\n _state.markerPopup = popup;\r\n }\r\n map.flyTo({ center: [lng, lat], zoom: 4 });\r\n const x = document.getElementsByClassName('active-marker');\r\n let i = 0;\r\n for (i = 0; i < x.length; i++) {\r\n x[i].classList.remove('active-marker');\r\n }\r\n e.currentTarget.classList.add('active-marker');\r\n });\r\n }\r\n}\r\n\r\nexport default Map;\r\n","import { debounce } from '../../../static/js/utils/debounce';\r\n\r\nclass Parallax {\r\n _state = {\r\n inViewport: false,\r\n imageSize: null,\r\n width: null,\r\n };\r\n\r\n static options = {\r\n speed: 0.1,\r\n };\r\n\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = { options, ...Parallax.options };\r\n this._cacheSelectors();\r\n this._initialize();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._elements = {\r\n image: this._element.querySelector('.parallax__image'),\r\n };\r\n }\r\n\r\n _initialize() {\r\n const debounceTime = 300;\r\n\r\n window.addEventListener(\r\n 'resize',\r\n debounce(() => {\r\n this._resize();\r\n }, debounceTime)\r\n );\r\n\r\n // Make sure to call this to set the initial state\r\n this._resize();\r\n this._moveParallax();\r\n\r\n // Create the intersection observer\r\n const parallaxObserver = new IntersectionObserver((entries, observer) =>\r\n this._viewportHandler(entries, observer)\r\n );\r\n\r\n // Start observing\r\n parallaxObserver.observe(document.getElementById('target'));\r\n }\r\n\r\n /**\r\n * Determine if the parallax should be scrolling based\r\n * off the fact that it is inside of the viewport\r\n * @param {*} entries\r\n */\r\n _viewportHandler(entries) {\r\n for (const entry of entries) {\r\n if (entry.isIntersecting) {\r\n window.addEventListener('scroll', this._moveParallax.bind(this));\r\n } else {\r\n window.removeEventListener('scroll', this._moveParallax.bind(this));\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Moving the parallax\r\n */\r\n _moveParallax() {\r\n const scrolled = window.pageYOffset;\r\n const background = this._elements.image;\r\n\r\n let coords = `center calc(100% - ${-(scrolled * this._options.speed)}px)`;\r\n\r\n const minParallaxWidth = 500;\r\n\r\n if (this._state.width < minParallaxWidth) {\r\n coords = `center center`;\r\n }\r\n\r\n background.style.backgroundPosition = coords;\r\n }\r\n\r\n /**\r\n * Resize\r\n */\r\n _resize() {\r\n // Set correct image based on the screen size\r\n this._state.width =\r\n window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\r\n\r\n const breakpointL = 1200;\r\n const breakpointXL = 1440;\r\n\r\n if (this._state.width > breakpointXL) {\r\n this._setImage('Xxl');\r\n } else if (this._state.width > breakpointL) {\r\n this._setImage('Xl');\r\n } else {\r\n this._setImage('M');\r\n }\r\n }\r\n\r\n /**\r\n * Set the background image based on the screen size\r\n * @param {*} size\r\n */\r\n _setImage(size) {\r\n const image = this._elements.image.dataset[`image${size}`];\r\n this._elements.image.style.backgroundImage = `url('${image}')`;\r\n }\r\n}\r\n\r\nexport default Parallax;\r\n","class ProductCard {\r\n static options = {\r\n image: false,\r\n fetch: {\r\n credentials: 'same-origin',\r\n cache: 'default',\r\n redirect: 'error',\r\n method: 'post',\r\n headers: {\r\n 'X-Requested-With': 'XmlHttpRequest',\r\n },\r\n },\r\n filename: '',\r\n timeout: 150,\r\n };\r\n\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = { ...ProductCard.options, ...options };\r\n this._cacheSelectors();\r\n this._initialize();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._elements = {\r\n link: this._element.querySelector(this._options.link),\r\n moodboard: this._element.querySelector('.button--moodboard'),\r\n };\r\n }\r\n\r\n _initialize() {\r\n const types = ['jpeg', 'jpg', 'tiff', 'gif', 'png'];\r\n const url = this._options.download;\r\n this._options.image = types.some((el) => url.indexOf(el) > -1);\r\n /* eslint-disable-next-line */\r\n this._options.image ? this._initDownload() : null;\r\n\r\n //this._initMoodboard();\r\n }\r\n\r\n _initMoodboard() {\r\n const trigger = this._elements.moodboard;\r\n console.log(trigger);\r\n if (trigger) {\r\n trigger.addEventListener('click', (e) => {\r\n const current = e.currentTarget;\r\n e.preventDefault();\r\n if (current.classList.contains('is-active')) {\r\n current.classList.remove('is-active');\r\n /* eslint no-console: 0 */\r\n console.log('TODO: remove from wishlist');\r\n } else {\r\n current.classList.add('is-active');\r\n console.log('TODO: add to wishlist');\r\n }\r\n });\r\n }\r\n }\r\n\r\n _initDownload() {\r\n this._elements.link.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n this._createDownload();\r\n return false;\r\n });\r\n }\r\n\r\n _createDownload() {\r\n const url = this._options.download;\r\n this._options.filename = url.substring(url.lastIndexOf('/') + 1);\r\n\r\n fetch(url)\r\n .then((response) => response.blob())\r\n .then((blob) => {\r\n this._downloadBlob(blob);\r\n });\r\n }\r\n\r\n _downloadBlob(blob) {\r\n // Create an object URL for the blob object\r\n const url = URL.createObjectURL(blob);\r\n\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = this._options.filename;\r\n this._options.listener = a.addEventListener('click', this._clickHandler(url), false);\r\n a.click();\r\n return a;\r\n }\r\n\r\n _clickHandler(url) {\r\n setTimeout(() => {\r\n URL.revokeObjectURL(url);\r\n removeEventListener('click', this._clickHandler);\r\n }, this._options.timeout);\r\n }\r\n}\r\n\r\nexport default ProductCard;\r\n","import { disableBodyScroll, enableBodyScroll, clearAllBodyScrollLocks } from 'body-scroll-lock';\r\n\r\nclass SearchBar {\r\n _state = {\r\n show: false,\r\n scrollTop: 0,\r\n };\r\n\r\n // static options = {\r\n // pace: 350,\r\n // offset: 0\r\n // }\r\n\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = { ...SearchBar.options, ...options };\r\n this._cacheSelectors();\r\n this._initialize();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._elements = {\r\n html: document.documentElement,\r\n body: document.querySelector('body'),\r\n toggleSearch: [...document.querySelectorAll('.button.search')],\r\n closeSearch: [...document.querySelectorAll('.close-search')],\r\n };\r\n }\r\n\r\n _initialize() {\r\n // Don't init search js when on result page\r\n if (this._element.dataset.resultpage === 'true') {\r\n return;\r\n }\r\n\r\n this._state.show = this._options.show === 'true';\r\n this._elements.toggleSearch.forEach((el) => {\r\n el.addEventListener('click', () => {\r\n this._state.show = !this._state.show;\r\n clearAllBodyScrollLocks();\r\n if (this._state.show) {\r\n this._disableScroll();\r\n } else {\r\n this._enableScroll();\r\n }\r\n\r\n this._element.setAttribute('data-show', this._state.show);\r\n });\r\n });\r\n this._elements.closeSearch.forEach((el) => {\r\n el.addEventListener('click', () => {\r\n this._enableScroll();\r\n this._state.show = false;\r\n this._element.setAttribute('data-show', this._state.show);\r\n });\r\n });\r\n }\r\n\r\n _enableScroll() {\r\n this._elements.body.scrollTop = this._elements.html.scrollTop = this._state.scrollTop;\r\n this._state.scrollTop = 0;\r\n this._element.scrollTop = 0;\r\n enableBodyScroll(this._elements.body);\r\n this._elements.html.setAttribute('data-overflow', true);\r\n }\r\n\r\n _disableScroll() {\r\n this._state.scrollTop = this._elements.body.scrollTop || this._elements.html.scrollTop;\r\n disableBodyScroll(this._elements.body);\r\n this._elements.html.setAttribute('data-overflow', false);\r\n }\r\n}\r\n\r\nexport default SearchBar;\r\n","class SkeletonLoader {\r\n constructor(element) {\r\n this._element = element;\r\n }\r\n}\r\n\r\nexport default SkeletonLoader;\r\n","import { debounce } from '../../../static/js/utils/debounce';\r\n\r\nclass Video {\r\n static options = {\r\n threshold: 0,\r\n debounceTime: 100,\r\n mobileBreakpoint: 720,\r\n autoplay: false,\r\n };\r\n\r\n _state = {\r\n mobile: false,\r\n };\r\n\r\n constructor(element, options = {}) {\r\n this._element = element;\r\n this._options = { ...options, ...Video.options };\r\n this._video = this._element.querySelector('.player');\r\n this._options.autoplay = this._options.showControls === 'false' ? true : false;\r\n this._resize = this._resize.bind(this);\r\n this._addListeners = this._addListeners.bind(this);\r\n this._handleIntersect = this._handleIntersect.bind(this);\r\n this._playVideo = this._playVideo.bind(this);\r\n this._init();\r\n this._resize();\r\n this._addListeners();\r\n }\r\n\r\n _init() {\r\n return this._controlsActivated() ? this._enableControls() : this._disableControls();\r\n }\r\n\r\n _controlsActivated() {\r\n return this._options.controls === 'true';\r\n }\r\n\r\n _enableControls() {\r\n this._video.setAttribute('controls', 'controls');\r\n this._video.removeAttribute('loop');\r\n this._video.removeAttribute('muted');\r\n this._video.removeAttribute('autoplay');\r\n this._video.volume = 1;\r\n this._video.muted = false;\r\n }\r\n\r\n _disableControls() {\r\n this._video.removeAttribute('controls');\r\n this._video.setAttribute('loop', '');\r\n this._video.setAttribute('muted', 'muted');\r\n this._video.setAttribute('autoplay', 'true');\r\n }\r\n\r\n _resize() {\r\n this._state.mobile =\r\n window.innerWidth < this._options.mobileBreakpoint ||\r\n document.documentElement.clientWidth < this._options.mobileBreakpoint ||\r\n document.body.clientWidth < this._options.mobileBreakpoint;\r\n }\r\n\r\n _handleIntersect(entries) {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting) {\r\n this._playVideo();\r\n entry.target.setAttribute('data-inview', 'true');\r\n } else {\r\n entry.target.setAttribute('data-inview', 'false');\r\n entry.target.setAttribute('data-transition', '');\r\n }\r\n });\r\n }\r\n\r\n _playVideo() {\r\n if (!this._state.mobile && this._options.showControls === 'false') {\r\n this._video.play();\r\n if (this._video.currentTime && this._video.currentTime > 0) {\r\n this._video.currentTime = 0;\r\n }\r\n }\r\n }\r\n\r\n _addListeners() {\r\n window.addEventListener(\r\n 'resize',\r\n debounce(() => {\r\n this._resize();\r\n }, this._options.debounceTime)\r\n );\r\n\r\n this._video.addEventListener('click', () => {\r\n if (this._state.mobile) {\r\n this._video.play();\r\n }\r\n });\r\n\r\n const options = this._options.threshold;\r\n\r\n this.intersectionObserver = new IntersectionObserver(this._handleIntersect, {\r\n options,\r\n });\r\n\r\n this.intersectionObserver.observe(this._element);\r\n }\r\n}\r\n\r\nexport default Video;\r\n","/* eslint-disable global-require */\r\n\r\nexport default require('./**/!(*.Spec).js', {\r\n mode: 'hash',\r\n resolve: ['reduce', 'strip-ext'],\r\n});\r\n","class Accordion {\r\n constructor() {\r\n this._cacheSelectors();\r\n this._init();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._triggers = document.querySelectorAll('.js-button-accordion');\r\n }\r\n\r\n _init() {\r\n this._triggers.forEach((trigger) => {\r\n trigger.addEventListener('click', (e) => {\r\n const _this = e.currentTarget;\r\n\r\n const panelGroup = _this.parentElement;\r\n\r\n this.panel = _this.nextElementSibling;\r\n\r\n if (this.panel.classList.contains('is-active')) {\r\n panelGroup.classList.remove('is-active');\r\n this.panel.classList.remove('is-active');\r\n } else {\r\n panelGroup.classList.add('is-active');\r\n this.panel.classList.add('is-active');\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default Accordion;\r\n","class RequestReturnsDetails {\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = options;\r\n this._cacheSelectors();\r\n this._init();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._selectionProducts = this._element.querySelectorAll(\r\n '.js-request-returns--selection-product'\r\n );\r\n this._selectionNextButton = this._element.querySelector(\r\n '.js-request-returns--selection--next-button'\r\n );\r\n\r\n this._selectedProducts = this._element.querySelectorAll(\r\n '.js-request-returns--selected-product'\r\n );\r\n this._selectedNextButton = this._element.querySelector(\r\n '.js-request-returns--selection--next-button'\r\n );\r\n\r\n this._selectionPanel = this._element.querySelector('.js-request-returns--selection-panel');\r\n this._selectedPanel = this._element.querySelector('.js-request-returns--selected-panel');\r\n }\r\n\r\n _init() {\r\n this._selectionNextButton.disabled = this._disableSelectionNextButton();\r\n\r\n this._selectionProducts.forEach((selectionProduct) => {\r\n const _selectionProductButton = selectionProduct.querySelector(\r\n '.js-request-returns--select-product'\r\n );\r\n\r\n if (_selectionProductButton === null) {\r\n return false;\r\n }\r\n\r\n _selectionProductButton.addEventListener('click', (eventSelectionProductButton) => {\r\n const _currentSelectionProductButton = eventSelectionProductButton.currentTarget;\r\n\r\n if (_currentSelectionProductButton.classList.contains('is-selected')) {\r\n _currentSelectionProductButton.classList.remove('is-selected');\r\n selectionProduct.dataset.isSelected = 'false';\r\n } else {\r\n _currentSelectionProductButton.classList.add('is-selected');\r\n\r\n selectionProduct.dataset.isSelected = 'true';\r\n }\r\n\r\n this._selectionNextButton.disabled = this._disableSelectionNextButton();\r\n\r\n if (!this._disableSelectionNextButton()) {\r\n this._selectionNextButton.addEventListener('click', () => {\r\n this._selectionPanel.style.display = 'none';\r\n this._selectedPanel.style.display = 'block';\r\n\r\n this._setSelectedProducts();\r\n });\r\n }\r\n });\r\n\r\n return true;\r\n });\r\n }\r\n\r\n _setSelectedProducts() {\r\n const selectedProducts = this._element.querySelectorAll(\r\n '.js-request-returns--selected-product'\r\n );\r\n\r\n const removedProducts = this._selectionPanel.querySelectorAll('[data-is-selected=false]');\r\n\r\n selectedProducts.forEach((selectedProduct) => {\r\n removedProducts.forEach((removedProduct) => {\r\n if (selectedProduct.dataset.productId === removedProduct.dataset.productId) {\r\n selectedProduct.remove();\r\n }\r\n });\r\n });\r\n\r\n this._setRemoveSelectedProducts();\r\n }\r\n\r\n _disableSelectionNextButton() {\r\n return this._selectionPanel.querySelectorAll('[data-is-selected=true]').length === 0;\r\n }\r\n\r\n _setRemoveSelectedProducts() {\r\n this._selectedProducts.forEach((selectedProduct) => {\r\n const _removedSelectedProductButton = selectedProduct.querySelector(\r\n '.js-request-returns--remove-product'\r\n );\r\n\r\n _removedSelectedProductButton.addEventListener('click', () => {\r\n selectedProduct.remove();\r\n\r\n this._selectedProducts = this._element.querySelectorAll(\r\n '.js-request-returns--selected-product'\r\n );\r\n\r\n if (this._selectedProducts.length === 0) {\r\n location.reload();\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default RequestReturnsDetails;\r\n","import Chart from 'chart.js/auto';\r\nimport 'chartjs-adapter-moment';\r\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\r\nimport { htmlLegendPlugin } from './LegendConfig';\r\nimport { isDeveloperMode } from '../../../../../mock/developer.utils';\r\n\r\nconst iconList = [\r\n {\r\n id: 'Storage',\r\n icon: 'Royal-Ahrend-icon-of-organising-on-white-background',\r\n },\r\n {\r\n id: 'Qabin',\r\n icon: 'Royal-Ahrend-icon-of-space-in-space-on-white-background',\r\n },\r\n {\r\n id: 'Other',\r\n icon: 'Royal-Ahrend-icon-of-space-in-space-on-white-background',\r\n },\r\n { id: 'Office Desks', icon: 'Royal-Ahrend-icon-of-desk-on-white-background' },\r\n {\r\n id: 'Office Chairs',\r\n icon: 'Royal-Ahrend-icon-of-desk-chair-on-white-background',\r\n },\r\n {\r\n id: '3rd Party',\r\n icon: 'Royal-Ahrend-icon-of-space-in-space-on-white-background',\r\n },\r\n];\r\n\r\nconst monthList = [\r\n 'JAN.',\r\n 'FEB.',\r\n 'MAR.',\r\n 'APR.',\r\n 'MAY.',\r\n 'JUN.',\r\n 'JUL.',\r\n 'AUG.',\r\n 'SEP.',\r\n 'OCT.',\r\n 'NOV.',\r\n 'DEC.',\r\n];\r\n\r\nconst chartDataModel = {\r\n label: '',\r\n year: null,\r\n orderQuantityForNewKg: 0, // <= update this\r\n orderQuantityForRevivedKg: 0, // <= update this\r\n newKg: 0, // <= update this\r\n tooltipDataNew: [],\r\n revivedKg: 0, // <= update this\r\n tooltipDataRevived: [],\r\n};\r\n\r\nclass ChartNewRevived {\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = options;\r\n\r\n this._chartTitleCategory = options.titleCategory || 'Categorie';\r\n this._chartTitlePeriod = options.titlePeriod || 'Periode';\r\n this._apiEndpoint = options.apiEndpoint;\r\n this._language = options.language;\r\n this._showByCategory = options.showByCategory === 'true' || false;\r\n\r\n this._selectedYearSet = [];\r\n\r\n this._cacheSelectors();\r\n this._init();\r\n void this._createEmissionChart();\r\n }\r\n\r\n _cacheSelectors() {\r\n const element = this._element;\r\n let error = false;\r\n\r\n // Note: wrappers\r\n this._yearButtonWrapper = element.querySelector('[data-arl-id=\"year-button-wrapper\"]');\r\n this._messageWrapper = element.querySelector('[data-arl-id=\"message-wrapper\"]');\r\n if (!this._yearButtonWrapper || !this._messageWrapper) {\r\n console.warn(`wrappers within the DOM invalid`);\r\n error = true;\r\n }\r\n\r\n // Note: Category\r\n this._chartCategory = element.querySelector('[data-arl-id=\"chart-canvas-category\"]');\r\n this._legendCategory = element.querySelector('[data-arl-id=\"chart-legend-category\"]');\r\n this._btnCategory = element.querySelector('[data-arl-id=\"chart-button-category\"]');\r\n if (!this._chartCategory || !this._legendCategory || !this._btnCategory) {\r\n console.warn(`category-chart DOM invalid`);\r\n error = true;\r\n }\r\n // Note: Period\r\n this._chartPeriod = element.querySelector('[data-arl-id=\"chart-canvas-period\"]');\r\n this._legendPeriod = element.querySelector('[data-arl-id=\"chart-legend-period\"]');\r\n this._btnPeriod = element.querySelector('[data-arl-id=\"chart-button-period\"]');\r\n if (!this._chartPeriod || !this._legendPeriod || !this._btnPeriod) {\r\n console.warn(`period-chart DOM invalid`);\r\n error = true;\r\n }\r\n\r\n this._chartYearValue = element.querySelector('[data-arl-id=\"chart-year-value\"]');\r\n this._chartTotalValue = element.querySelector('[data-arl-id=\"chart-total-value\"]');\r\n this._chartTitleValue = element.querySelector('[data-arl-id=\"chart-title-value\"]');\r\n if (!this._chartYearValue || !this._chartTotalValue || !this._chartTitleValue) {\r\n console.warn(`chart value DOM invalid`);\r\n error = true;\r\n }\r\n\r\n if (error) {\r\n this._showMessage(true, `Er is iets fout gegaan!`);\r\n throw new Error(`chart error DOM invalid`);\r\n }\r\n }\r\n\r\n _init() {\r\n this._btnCategory.addEventListener('click', (e) => {\r\n this._showByCategory = true;\r\n\r\n this._btnCategory.classList.add('active');\r\n this._btnPeriod.classList.remove('active');\r\n\r\n this._chartCategory.style.display = 'block';\r\n this._legendCategory.style.display = 'block';\r\n this._chartPeriod.style.display = 'none';\r\n this._legendPeriod.style.display = 'none';\r\n\r\n this._rebuildSelectedChart();\r\n });\r\n\r\n this._btnPeriod.addEventListener('click', (e) => {\r\n this._showByCategory = false;\r\n\r\n this._btnPeriod.classList.add('active');\r\n this._btnCategory.classList.remove('active');\r\n\r\n this._chartPeriod.style.display = 'block';\r\n this._legendPeriod.style.display = 'block';\r\n this._chartCategory.style.display = 'none';\r\n this._legendCategory.style.display = 'none';\r\n\r\n this._rebuildSelectedChart();\r\n });\r\n }\r\n\r\n _rebuildSelectedChart() {\r\n if (this._showByCategory) {\r\n this._chartTitleValue.innerHTML = this._chartTitleCategory;\r\n if (this._chart1) {\r\n this._chart1.destroy();\r\n }\r\n this._createDataResultCategory(this._emissionsByType);\r\n this._initChartCategory(this._chartCategory, this._dataResultCategory);\r\n this._chartCategory.style.display = 'block';\r\n } else {\r\n this._chartTitleValue.innerHTML = this._chartTitlePeriod;\r\n if (this._chart2) {\r\n this._chart2.destroy();\r\n }\r\n this._createDataResultPeriod(this._emissionsByDate);\r\n this._initChartPeriod(this._chartPeriod, this._dataResultPeriod);\r\n this._chartPeriod.style.display = 'block';\r\n }\r\n }\r\n\r\n _mergeDataTooltip(tooltipData) {\r\n const tmpTooltipList = [];\r\n if (!tooltipData.length) {\r\n return tmpTooltipList;\r\n }\r\n\r\n tooltipData.forEach((tooltip) => {\r\n let tmpTooltip = tmpTooltipList.find((t) => t.label === tooltip.label);\r\n if (!tmpTooltip) {\r\n tmpTooltip = tooltip;\r\n tmpTooltipList.push(tmpTooltip);\r\n } else {\r\n tmpTooltip.kg += tooltip.kg;\r\n tmpTooltip.count += tooltip.count;\r\n }\r\n });\r\n\r\n return tmpTooltipList;\r\n }\r\n\r\n _mergeData(data) {\r\n const dataCopy = [...data];\r\n\r\n let filteredData = [];\r\n\r\n if (this._selectedYearSet.length === 1) {\r\n const selectedYear = this._selectedYearSet[0];\r\n filteredData = dataCopy.filter((x) => {\r\n return x.year === selectedYear;\r\n });\r\n } else if (this._selectedYearSet.length > 1) {\r\n this._selectedYearSet.forEach((year) => {\r\n const completeYearList = dataCopy.filter((x) => {\r\n return x.year === year;\r\n });\r\n const tooltipDataNewList = [];\r\n const tooltipDataRevivedList = [];\r\n const newModel = { ...chartDataModel };\r\n\r\n completeYearList.forEach((completeYear) => {\r\n newModel.label = year.toString(); // Note: must be a string!\r\n newModel.year = year;\r\n newModel.orderQuantityForNewKg += completeYear.orderQuantityForNewKg;\r\n newModel.orderQuantityForRevivedKg += completeYear.orderQuantityForRevivedKg;\r\n newModel.newKg += completeYear.newKg;\r\n newModel.revivedKg += completeYear.revivedKg;\r\n\r\n completeYear.tooltipDataNew.forEach((tooltipDataNew) => {\r\n tooltipDataNewList.push(tooltipDataNew);\r\n });\r\n\r\n completeYear.tooltipDataRevived.forEach((tooltipDataNew) => {\r\n tooltipDataRevivedList.push(tooltipDataNew);\r\n });\r\n });\r\n\r\n newModel.tooltipDataNew = this._mergeDataTooltip(tooltipDataNewList);\r\n newModel.tooltipDataRevived = this._mergeDataTooltip(tooltipDataRevivedList);\r\n\r\n filteredData.push(newModel);\r\n });\r\n // Note: sort data from oldest to newest\r\n filteredData = filteredData.sort((a, b) => a.year - b.year);\r\n } else {\r\n filteredData = [];\r\n }\r\n\r\n return filteredData;\r\n }\r\n\r\n _createDataResultCategory(emissionsByType) {\r\n const emissionsData = this._mergeData([...emissionsByType.emissionsData]);\r\n\r\n this._updateSavedEmissions();\r\n\r\n this._dataResultCategory = {\r\n datasets: [\r\n {\r\n label: 'New',\r\n data: emissionsData.map((x) => {\r\n return {\r\n y: x.newKg,\r\n x: x.label,\r\n orderQuantityForNewKg: x.orderQuantityForNewKg,\r\n tooltipText: x.tooltipDataNew,\r\n };\r\n }),\r\n backgroundColor: ['rgb(224, 228, 234)'],\r\n hoverBackgroundColor: ['rgb(224, 228, 234)'],\r\n },\r\n {\r\n label: 'Revived',\r\n data: emissionsData.map((x) => {\r\n return {\r\n y: x.revivedKg,\r\n x: x.label,\r\n orderQuantityForRevivedKg: x.orderQuantityForRevivedKg,\r\n tooltipText: x.tooltipDataRevived,\r\n };\r\n }),\r\n backgroundColor: ['rgb(255, 255, 255)'],\r\n hoverBackgroundColor: ['rgb(255, 255, 255)'],\r\n },\r\n ],\r\n };\r\n }\r\n\r\n _fillMissingMonths(data) {\r\n const year = data[0].year ? data[0].year : new Date().getFullYear();\r\n\r\n return monthList.map((label, index) => {\r\n const x = data.find((x) => x.month === index + 1);\r\n\r\n if (x) {\r\n return x;\r\n }\r\n return {\r\n label,\r\n year,\r\n orderQuantityForNewKg: 0,\r\n orderQuantityForRevivedKg: 0,\r\n newKg: 0,\r\n revivedKg: 0,\r\n tooltipDataNew: [],\r\n tooltipDataRevived: [],\r\n };\r\n });\r\n }\r\n\r\n _createDataResultPeriod(emissionsByDate) {\r\n let emissionsData = this._mergeData([...emissionsByDate.emissionsData]);\r\n\r\n if (emissionsData[0]) {\r\n if (isNaN(emissionsData[0].label) && !emissionsData[0].label.trim() !== '') {\r\n emissionsData = this._fillMissingMonths(emissionsData);\r\n }\r\n }\r\n this._updateSavedEmissions();\r\n\r\n this._dataResultPeriod = {\r\n datasets: [\r\n {\r\n label: 'New',\r\n data: emissionsData.map((x) => {\r\n return { y: x.newKg, x: x.label, tooltipText: x.tooltipDataNew };\r\n }),\r\n backgroundColor: ['rgb(224, 228, 234)'],\r\n hoverBackgroundColor: ['rgb(224, 228, 234)'],\r\n },\r\n {\r\n label: 'Revived',\r\n data: emissionsData.map((x) => {\r\n return { y: x.revivedKg, x: x.label, tooltipText: x.tooltipDataRevived };\r\n }),\r\n backgroundColor: ['rgb(255, 255, 255)'],\r\n hoverBackgroundColor: ['rgb(255, 255, 255)'],\r\n },\r\n ],\r\n };\r\n }\r\n\r\n _updateSavedEmissions() {\r\n const postFix = ` kg`;\r\n\r\n let newTotal = 0;\r\n this._selectedYearSet.forEach((year) => {\r\n const value = this._kgSavedPerYear[year];\r\n newTotal += value;\r\n });\r\n\r\n this._chartTotalValue.innerHTML = newTotal + postFix;\r\n }\r\n\r\n /**\r\n * returns mocked data when in isDeveloperMode\r\n * @returns {Promise<any|{}>}\r\n * @private\r\n */\r\n async _fetchData() {\r\n const emptyResponse = {};\r\n const dataUrl = isDeveloperMode\r\n ? `/mock/data/co2-chart.json`\r\n : `${this._apiEndpoint}?language=${this._language}`;\r\n\r\n try {\r\n const response = await fetch(dataUrl);\r\n if (response.ok) {\r\n return await response.json();\r\n }\r\n throw new Error(`${response.status}: ${response.statusText} for ${response.url}`);\r\n } catch (e) {\r\n return emptyResponse;\r\n }\r\n }\r\n\r\n async _createEmissionChart() {\r\n const data = await this._fetchData();\r\n\r\n const { emissionsByType, emissionsByDate, kgSavedPerYear } = data;\r\n\r\n this._emissionsByType = emissionsByType;\r\n this._emissionsByDate = emissionsByDate;\r\n\r\n // Note: check for data\r\n if (!emissionsByType || !emissionsByDate) {\r\n // Note: Hide the 'Weergave' buttons\r\n this._btnCategory.style.visibility = 'hidden';\r\n this._btnPeriod.style.visibility = 'hidden';\r\n this._showMessage(true, `Er is iets fout gegaan!`);\r\n throw new Error(`No emissions found for 'emissionsByType' or 'emissionsByDate'`);\r\n }\r\n\r\n this._kgSavedPerYear = kgSavedPerYear;\r\n this._yearList = this._showByCategory ? emissionsByType.years : emissionsByDate.years;\r\n\r\n // Note: sort data from oldest to newest\r\n this._yearList = this._yearList.sort((a, b) => a - b);\r\n const activeYear = this._yearList[this._yearList.length - 1]\r\n ? this._yearList[this._yearList.length - 1]\r\n : new Date().getFullYear();\r\n // Note: initialize the _selectedYearSet\r\n this._selectedYearSet.push(activeYear);\r\n this._initYearButtons(activeYear);\r\n\r\n // Note: activate chart\r\n if (this._showByCategory) this._btnCategory.click();\r\n else this._btnPeriod.click();\r\n }\r\n\r\n _showMessage(showMessage, messageText = '') {\r\n if (showMessage) {\r\n this._messageWrapper.classList.add('active');\r\n this._messageWrapper.innerHTML = messageText;\r\n } else {\r\n this._messageWrapper.classList.remove('active');\r\n }\r\n }\r\n\r\n _initYearButtons(activeYear) {\r\n const filterButtonClass = 'button button--diapositive diapositive--light';\r\n\r\n this._yearList.forEach((year) => {\r\n const yearButton = document.createElement('button');\r\n yearButton.innerText = year;\r\n yearButton.className = filterButtonClass;\r\n if (year === activeYear) {\r\n yearButton.classList.add('active');\r\n }\r\n this._yearButtonWrapper.appendChild(yearButton);\r\n\r\n yearButton.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n\r\n const yearIndex = this._selectedYearSet.indexOf(year);\r\n if (yearIndex !== -1) {\r\n this._selectedYearSet.splice(yearIndex, 1);\r\n } else {\r\n this._selectedYearSet.push(year);\r\n }\r\n this._selectedYearSet.sort((a, b) => {\r\n return b - a;\r\n });\r\n\r\n if (!this._selectedYearSet.length) {\r\n this._showMessage(true, `Er is geen 'Jaar' selectie meer actief!`);\r\n } else {\r\n this._showMessage(false);\r\n }\r\n\r\n yearButton.classList.toggle('active');\r\n\r\n this._rebuildSelectedChart();\r\n });\r\n });\r\n }\r\n\r\n _createIcon(icon) {\r\n return `<svg class=\"icon\"><use xlink:href=\"/static/img/sprite.svg#${icon}\"/></svg>`;\r\n }\r\n\r\n _initTooltip(context, type) {\r\n const TOOLTIP_ID = 'chartjs-tooltip';\r\n const tooltipModel = context.tooltip;\r\n\r\n // Tooltip Element\r\n let tooltipEl = document.getElementById(TOOLTIP_ID);\r\n\r\n // Create element on first render\r\n if (!tooltipEl) {\r\n tooltipEl = document.createElement('div');\r\n tooltipEl.id = TOOLTIP_ID;\r\n tooltipEl.innerHTML = `<div id=\"tooltipBodyArea\" class=\"arl-tooltip__body\"></div>`;\r\n document.body.appendChild(tooltipEl);\r\n }\r\n\r\n // Hide if no tooltip\r\n if (tooltipModel.opacity === 0) {\r\n tooltipEl.style.opacity = 0;\r\n return;\r\n }\r\n\r\n // Set caret Position\r\n tooltipEl.classList.add('arl-tooltip', 'arl-tooltip--co2');\r\n tooltipEl.classList.remove('above', 'below', 'no-transform');\r\n if (tooltipModel.yAlign) {\r\n tooltipEl.classList.add(tooltipModel.yAlign);\r\n } else {\r\n tooltipEl.classList.add('no-transform');\r\n }\r\n\r\n // Set Text\r\n if (tooltipModel.body) {\r\n const tooltipBodyArea = tooltipEl.querySelector('#tooltipBodyArea');\r\n\r\n let tooltipIcon = iconList.find((x) => x.id === tooltipModel.title[0]);\r\n const innerTooltip = [];\r\n\r\n if (type === 'category') {\r\n if (tooltipIcon) {\r\n innerTooltip.push(\r\n `<div class=\"arl-tooltip__icon\">${this._createIcon(tooltipIcon.icon)}</div>`\r\n );\r\n }\r\n }\r\n\r\n const tooltipValueList = tooltipModel.dataPoints[0].raw.tooltipText;\r\n\r\n tooltipValueList.forEach((value) => {\r\n innerTooltip.push(`<div class=\"arl-tooltip__data-row\">`);\r\n if (type === 'period') {\r\n tooltipIcon = iconList.find((x) => x.id === value.label);\r\n if (tooltipIcon) {\r\n innerTooltip.push(\r\n `<span class=\"arl-tooltip__icon--sm\">${this._createIcon(tooltipIcon.icon)}</span>`\r\n );\r\n }\r\n }\r\n innerTooltip.push(`${value.count} ${value.label}<br>${value.kg} kg CO2`);\r\n innerTooltip.push(`</div>`);\r\n });\r\n\r\n if (tooltipBodyArea) {\r\n tooltipBodyArea.innerHTML = innerTooltip.join('');\r\n }\r\n }\r\n\r\n const position = context.chart.canvas.getBoundingClientRect();\r\n\r\n // Display, position, and set styles for font\r\n tooltipEl.style.opacity = 1;\r\n tooltipEl.style.position = 'absolute';\r\n tooltipEl.style.left = `${position.left + window.scrollX + tooltipModel.caretX}px`;\r\n tooltipEl.style.top = `${position.top + window.scrollY + tooltipModel.caretY}px`;\r\n tooltipEl.style.pointerEvents = 'none';\r\n }\r\n\r\n _initDataLabel(dataItem) {\r\n return dataItem.y > 0 ? `${dataItem.y} kg` : '';\r\n }\r\n\r\n _initChartCategory(chart, data) {\r\n this._chart1 = new Chart(chart, {\r\n type: 'bar',\r\n plugins: [ChartDataLabels, htmlLegendPlugin],\r\n data,\r\n options: {\r\n plugins: {\r\n title: {\r\n display: false,\r\n },\r\n htmlLegend: {\r\n // ID of the container to put the legend in\r\n containerID: 'legendCategory',\r\n },\r\n legend: {\r\n display: false,\r\n },\r\n datalabels: {\r\n anchor: 'center',\r\n align: 'center',\r\n color: '#4A566B',\r\n font: {\r\n size: 14,\r\n weight: 400,\r\n },\r\n formatter: (dataItem) => {\r\n return this._initDataLabel(dataItem);\r\n },\r\n },\r\n tooltip: {\r\n enabled: false,\r\n external: (context) => {\r\n return this._initTooltip(context, 'category');\r\n },\r\n },\r\n },\r\n responsive: true,\r\n scales: {\r\n x: {\r\n stacked: true,\r\n grid: {\r\n display: false,\r\n },\r\n ticks: {\r\n color: '#667894',\r\n font: {\r\n size: 14,\r\n },\r\n },\r\n },\r\n y: {\r\n stacked: true,\r\n display: false,\r\n },\r\n },\r\n },\r\n });\r\n }\r\n\r\n _initChartPeriod(chart, data) {\r\n this._chart2 = new Chart(chart, {\r\n type: 'bar',\r\n plugins: [ChartDataLabels, htmlLegendPlugin],\r\n data,\r\n options: {\r\n plugins: {\r\n title: {\r\n display: false,\r\n },\r\n htmlLegend: {\r\n // ID of the container to put the legend in\r\n containerID: 'legendPeriod',\r\n },\r\n legend: {\r\n display: false,\r\n },\r\n datalabels: {\r\n anchor: 'center',\r\n align: 'center',\r\n color: '#4A566B',\r\n font: {\r\n size: 14,\r\n weight: 400,\r\n },\r\n formatter: (dataItem) => {\r\n return this._initDataLabel(dataItem);\r\n },\r\n },\r\n tooltip: {\r\n enabled: false,\r\n external: (context) => {\r\n return this._initTooltip(context, 'period');\r\n },\r\n },\r\n },\r\n responsive: true,\r\n scales: {\r\n x: {\r\n stacked: true,\r\n grid: {\r\n display: false,\r\n },\r\n ticks: {\r\n color: '#667894',\r\n font: {\r\n size: 14,\r\n },\r\n },\r\n },\r\n y: {\r\n stacked: true,\r\n display: false,\r\n },\r\n },\r\n },\r\n });\r\n }\r\n}\r\n\r\nexport default ChartNewRevived;\r\n","/**\r\n * Represents a book.\r\n * @constructor\r\n * @param {String} containerId - The id of the Legend Container.\r\n */\r\nconst getOrCreateLegendList = (containerId) => {\r\n const legendContainer = document.getElementById(containerId);\r\n let listContainer = legendContainer.querySelector('ul');\r\n\r\n if (!listContainer) {\r\n listContainer = document.createElement('ul');\r\n listContainer.style.display = 'flex';\r\n listContainer.style.flexDirection = 'row';\r\n listContainer.style.margin = 0;\r\n listContainer.style.padding = 0;\r\n\r\n legendContainer.appendChild(listContainer);\r\n }\r\n\r\n return listContainer;\r\n};\r\n\r\n/**\r\n * Represents a Custom HTML Legend.\r\n * @param {Chart} chart - The Chart from Chart JS.\r\n */\r\nexport const htmlLegendPlugin = {\r\n id: 'htmlLegend',\r\n afterUpdate(chart, args, options) {\r\n const ul = getOrCreateLegendList(options.containerID);\r\n\r\n // Remove old legend items\r\n while (ul.firstChild) {\r\n ul.firstChild.remove();\r\n }\r\n\r\n // Reuse the built-in legendItems generator\r\n const items = chart.options.plugins.legend.labels.generateLabels(chart);\r\n\r\n items.forEach((item) => {\r\n const li = document.createElement('li');\r\n li.style.alignItems = 'center';\r\n li.style.cursor = 'pointer';\r\n li.style.display = 'flex';\r\n li.style.flexDirection = 'row';\r\n li.style.marginLeft = '10px';\r\n\r\n li.onclick = () => {\r\n const { type } = chart.config;\r\n if (type === 'pie' || type === 'doughnut') {\r\n // Pie and doughnut charts only have a single dataset and visibility is per item\r\n chart.toggleDataVisibility(item.index);\r\n } else {\r\n chart.setDatasetVisibility(item.datasetIndex, !chart.isDatasetVisible(item.datasetIndex));\r\n }\r\n chart.update();\r\n };\r\n\r\n // Color box\r\n const boxSpan = document.createElement('span');\r\n boxSpan.style.background = item.fillStyle;\r\n boxSpan.style.borderColor =\r\n item.strokeStyle !== 'rgba(0,0,0,0.1)' ? item.strokeStyle : item.fillStyle;\r\n boxSpan.style.borderWidth = '1px';\r\n boxSpan.style.display = 'inline-block';\r\n boxSpan.style.flexShrink = 0;\r\n boxSpan.style.marginRight = '10px';\r\n boxSpan.style.borderRadius = '5px';\r\n boxSpan.style.minWidth = '52px';\r\n boxSpan.style.display = 'flex';\r\n boxSpan.style.justifyContent = 'center';\r\n boxSpan.style.borderStyle = 'solid';\r\n\r\n // Text\r\n const textContainer = document.createElement('p');\r\n textContainer.style.textDecoration = item.hidden ? 'line-through' : '';\r\n textContainer.style.margin = '0';\r\n textContainer.style.padding = '3px';\r\n textContainer.style.color = '#4a566b';\r\n\r\n const text = document.createTextNode(item.text);\r\n textContainer.appendChild(text);\r\n\r\n li.appendChild(boxSpan);\r\n boxSpan.appendChild(textContainer);\r\n ul.appendChild(li);\r\n });\r\n },\r\n};\r\n","import Chart from 'chart.js/auto';\r\nimport 'chartjs-adapter-moment';\r\n\r\nclass WidgetOrdersOverTime {\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = options;\r\n this._cacheSelectors();\r\n this._init();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._ordersOverTimeChart = document.getElementById('widgetOrdersOverTime');\r\n }\r\n\r\n _init() {\r\n const colorData1 = '#4a566b';\r\n const colorData2 = '#667894';\r\n\r\n /**\r\n * Note: fix eslint error no-undef\r\n * @type {*[]}\r\n */\r\n const orders = [];\r\n const orderReturns = [];\r\n\r\n this._chart = new Chart(this._ordersOverTimeChart, {\r\n type: 'line',\r\n options: {\r\n tension: 0.1,\r\n parsing: {\r\n xAxisKey: 'Date',\r\n yAxisKey: 'Count',\r\n },\r\n plugins: {\r\n legend: {\r\n labels: {\r\n color: colorData1,\r\n },\r\n },\r\n },\r\n scales: {\r\n x: {\r\n type: 'time',\r\n time: {\r\n unit: 'month',\r\n tooltipFormat: 'DD-MM-YYYY',\r\n displayFormats: {\r\n month: 'MMM yyyy',\r\n },\r\n },\r\n grid: {\r\n display: false,\r\n },\r\n ticks: {\r\n color: colorData1,\r\n },\r\n },\r\n y: {\r\n beginAtZero: true,\r\n display: false,\r\n ticks: {\r\n display: false,\r\n },\r\n grid: {\r\n display: false,\r\n },\r\n },\r\n },\r\n },\r\n data: {\r\n datasets: [\r\n {\r\n label: 'Orders',\r\n data: orders,\r\n borderColor: colorData1,\r\n pointRadius: 1,\r\n pointBackgroundColor: colorData1,\r\n },\r\n {\r\n label: 'Retour',\r\n data: orderReturns,\r\n borderColor: colorData2,\r\n pointRadius: 1,\r\n pointBackgroundColor: colorData2,\r\n },\r\n ],\r\n },\r\n });\r\n }\r\n}\r\n\r\nexport default WidgetOrdersOverTime;\r\n","import { setCookie, getCookie } from 'utils/cookies';\r\n\r\nclass AsideNavigation {\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = options;\r\n this._cacheSelectors();\r\n this._initTriggers();\r\n this._initCollapsible();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._collapsibleTrigger = this._element.querySelector('.jsCollapsibleTrigger');\r\n this._collapsedTrigger = this._element.querySelector('.jsCollapsedTrigger');\r\n\r\n this._collapsibleAside = this._element.querySelector('.b2b-lite-my-account-aside');\r\n this._collapsibleBody = this._element.querySelector('.b2b-lite-my-account-body');\r\n }\r\n\r\n _initTriggers() {\r\n this._collapsibleTrigger.addEventListener('click', () => {\r\n this._collapsibleAside.classList.toggle('collapsed');\r\n this._collapsibleBody.classList.toggle('full-width');\r\n\r\n setCookie('MainAsideOpen', 'true');\r\n });\r\n\r\n this._collapsedTrigger.addEventListener('click', () => {\r\n this._collapsibleAside.classList.toggle('collapsed');\r\n this._collapsibleBody.classList.toggle('full-width');\r\n\r\n setCookie('MainAsideOpen', 'false');\r\n });\r\n }\r\n\r\n _initCollapsible() {\r\n let defaultOpen = true;\r\n\r\n if (getCookie('MainAsideOpen') === 'false') {\r\n defaultOpen = false;\r\n }\r\n\r\n if (defaultOpen) {\r\n this._collapsibleAside.classList.remove('collapsed');\r\n this._collapsibleBody.classList.remove('full-width');\r\n setCookie('MainAsideOpen', 'true');\r\n } else {\r\n this._collapsibleAside.classList.add('collapsed');\r\n this._collapsibleBody.classList.add('full-width');\r\n setCookie('MainAsideOpen', 'false');\r\n }\r\n }\r\n}\r\n\r\nexport default AsideNavigation;\r\n","import { raf } from 'utils/eventHelpers';\r\nimport { setPrefixedStyle } from 'utils/DOMHelpers';\r\n\r\nclass CarouselProducts {\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = Object.assign(CarouselProducts.options, options);\r\n\r\n this._refs = {\r\n window: element.querySelector(this._options.window),\r\n products: [].slice.call(element.querySelectorAll(this._options.products)),\r\n previous: [].slice.call(element.querySelectorAll(this._options.previous)),\r\n next: [].slice.call(element.querySelectorAll(this._options.next)),\r\n slides: [],\r\n body: document.querySelector('body'),\r\n };\r\n\r\n this._refs.slides = [].slice.call(this._refs.window.children);\r\n this._refs.window.scrollLeft = 0;\r\n this._element.setAttribute('data-initialized', 'true');\r\n\r\n this._state = {\r\n index: 0,\r\n dragging: false,\r\n currentPos: 0,\r\n maxPos: 1,\r\n direction: 'right',\r\n touchStart: {\r\n x: 0,\r\n y: 0,\r\n },\r\n };\r\n\r\n this.goto(0);\r\n }\r\n\r\n static options = {\r\n bullet: null,\r\n window: null,\r\n products: null,\r\n left: null,\r\n right: null,\r\n threshold: 30,\r\n bound: 0.66,\r\n breakpoint: 720,\r\n minmax: {\r\n min: 1,\r\n max: 3,\r\n },\r\n timeout: 300,\r\n };\r\n\r\n _addEventListeners(count) {\r\n if (!count) {\r\n return;\r\n }\r\n this._onTouchMove = raf(this._onTouchMove.bind(this));\r\n\r\n this._refs.window.addEventListener('mousedown', (e) => this._onTouchStart(e), {\r\n passive: true,\r\n });\r\n this._refs.window.addEventListener('touchstart', (e) => this._onTouchStart(e), {\r\n passive: true,\r\n });\r\n this._refs.previous.forEach((previous) => {\r\n previous.addEventListener('click', () => this.goto(this._state.index - 1));\r\n previous.addEventListener('touchend', () => this.goto(this._state.index - 1));\r\n });\r\n\r\n this._refs.next.forEach((next) => {\r\n next.addEventListener('click', () => this.goto(this._state.index + 1));\r\n next.addEventListener('touchend', () => this.goto(this._state.index + 1));\r\n });\r\n\r\n this._refs.window.addEventListener('mousemove', (e) => this._onTouchMove(e), {\r\n passive: true,\r\n });\r\n this._refs.window.addEventListener('touchmove', (e) => this._onTouchMove(e), {\r\n passive: true,\r\n });\r\n this._refs.window.addEventListener('touchend', (e) => this._onTouchEnd(e), {\r\n passive: true,\r\n });\r\n document.addEventListener('mouseup', (e) => this._onTouchEnd(e), {\r\n passive: true,\r\n });\r\n\r\n this._refs.slides.forEach((slide) =>\r\n slide.addEventListener('dragstart', (e) => e.preventDefault())\r\n );\r\n }\r\n\r\n get slideWidth() {\r\n return this._refs.slides[0].offsetWidth;\r\n }\r\n\r\n // eslint-disable-next-line accessor-pairs\r\n set activeProduct(index) {\r\n this._refs.products.forEach((product, i) => {\r\n product.setAttribute('data-active', index === i);\r\n if (index === i) {\r\n this._initProductCarousel(product);\r\n }\r\n });\r\n }\r\n\r\n _initProductCarousel(product) {\r\n let maxItems = this._options.minmax.min;\r\n if (this._refs.body.offsetWidth > this._options.breakpoint) {\r\n maxItems = this._options.minmax.max;\r\n }\r\n const count = product.parentNode.childElementCount > maxItems;\r\n product.parentNode.parentNode.setAttribute('data-navigation', count);\r\n this._refs.window.setAttribute('data-carousel-active', count);\r\n this._addEventListeners(count);\r\n window.addEventListener('resize', () => {\r\n setTimeout(() => {\r\n this._initProductCarousel(product);\r\n }, this._options.timeout);\r\n });\r\n }\r\n\r\n _onTouchStart(e) {\r\n if (this._state.dragging) return;\r\n this._state.dragging = true;\r\n\r\n const pointer = e.changedTouches ? e.changedTouches[0] : e;\r\n this._state.touchStart = {\r\n x: pointer.pageX,\r\n y: pointer.pageY,\r\n };\r\n }\r\n // eslint-disable-next-line complexity\r\n _onTouchMove(e) {\r\n if (!this._state.dragging) return;\r\n\r\n const pointer = e.changedTouches ? e.changedTouches[0] : e;\r\n const d = {\r\n x: pointer.pageX - this._state.touchStart.x,\r\n y: pointer.pageY - this._state.touchStart.y,\r\n };\r\n\r\n if (Math.abs(d.x) > Math.abs(d.y)) {\r\n const offset = -this._state.index * this.slideWidth + d.x;\r\n const isWithinBounds =\r\n offset >= this.slideWidth * -(this._refs.slides.length - 1) && offset <= 0;\r\n const dir = offset / Math.abs(offset);\r\n const target = isWithinBounds\r\n ? offset\r\n : offset - d.x * this._options.bound + dir * Math.sqrt(Math.abs(d.x) * this._options.bound);\r\n\r\n this._refs.slides.forEach((slide) => {\r\n setPrefixedStyle(slide, 'transform', `translateX(${target}px)`);\r\n setPrefixedStyle(slide, 'transition-duration', '.1s');\r\n });\r\n } else {\r\n this.slideTo(this.index);\r\n }\r\n }\r\n // eslint-disable-next-line complexity\r\n _onTouchEnd(e) {\r\n if (!this._state.dragging) return;\r\n this._state.dragging = false;\r\n\r\n const pointer = e.changedTouches ? e.changedTouches[0] : e;\r\n const d = {\r\n x: pointer.pageX - this._state.touchStart.x,\r\n y: pointer.pageY - this._state.touchStart.y,\r\n };\r\n\r\n if (Math.abs(d.x) > Math.abs(d.y) && Math.abs(d.x) > this._options.threshold) {\r\n // eslint-disable-next-line no-unused-expressions\r\n d.x > 0 ? this.previous() : this.next();\r\n } else {\r\n this.slideTo(this._state.index);\r\n }\r\n }\r\n\r\n goto(index) {\r\n const max = this._refs.slides.length - 1;\r\n const i = Math.min(Math.max(index, 0), max);\r\n\r\n this._refs.slides[this._state.index].removeAttribute('data-active');\r\n this._refs.slides[i].setAttribute('data-active', 'true');\r\n\r\n this.slideTo(i);\r\n this.activeProduct = i;\r\n this._state.index = i;\r\n this._refs.previous[0].setAttribute('data-active', this._state.index > 1);\r\n this._refs.next[0].setAttribute('data-active', this._state.index < this._state.maxPos);\r\n }\r\n\r\n previous() {\r\n this.goto(this._state.index - 1);\r\n }\r\n\r\n next() {\r\n this.goto(this._state.index + 1);\r\n }\r\n\r\n slideTo(index) {\r\n const target = -index * this.slideWidth;\r\n // eslint-disable-next-line no-unused-expressions\r\n target <= this._state.currentPos\r\n ? (this._state.direction = 'left')\r\n : (this._state.direction = 'right');\r\n this._state.currentPos = target;\r\n this._refs.slides.forEach((slide) => {\r\n setPrefixedStyle(slide, 'transform', `translateX(${target}px)`);\r\n setPrefixedStyle(slide, 'transition', '');\r\n });\r\n }\r\n}\r\n\r\nexport default CarouselProducts;\r\n","import scrollTo from 'utils/scrollTo';\r\nclass Carousel {\r\n /* eslint-disable complexity */\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = { ...Carousel.options, ...options };\r\n\r\n let bullets = [];\r\n let products = [];\r\n /* eslint-enable */\r\n if (this._options.bullet) {\r\n bullets = [...element.querySelectorAll(this._options.bullet)];\r\n }\r\n if (this._options.products) {\r\n products = [...element.querySelectorAll(this._options.products)];\r\n }\r\n this._refs = {\r\n window: element.querySelector(this._options.window),\r\n bullets,\r\n products,\r\n slides: [],\r\n prev: this._element.querySelector(this._options.prev),\r\n next: this._element.querySelector(this._options.next),\r\n body: document.querySelector('body'),\r\n };\r\n this._state = {\r\n index: 0,\r\n dragging: false,\r\n currentPos: 0,\r\n direction: 'right',\r\n touchStart: {\r\n x: 0,\r\n y: 0,\r\n },\r\n };\r\n\r\n this._refs.slides = [...this._refs.window.children];\r\n this._refs.window.scrollLeft = 0;\r\n this._element.setAttribute('data-initialized', 'true');\r\n\r\n if (this._options.bullet) {\r\n this._refs.bullets.forEach((bullet) => {\r\n bullet.addEventListener('click', (e) => this._onBulletClick(e));\r\n });\r\n }\r\n\r\n this.intersectionObserver = new IntersectionObserver(\r\n (entries) => {\r\n entries.forEach((entry) => {\r\n if (entry.intersectionRatio > 0) {\r\n this._refs.slides[this._state.index].setAttribute('data-active', 'false');\r\n this._state.index = parseInt(entry.target.getAttribute('data-index'), 10);\r\n this._state.currentPos = this._state.index;\r\n entry.target.setAttribute('data-active', 'true');\r\n } else {\r\n entry.target.setAttribute('data-active', 'false');\r\n }\r\n this.handleArrows();\r\n });\r\n },\r\n {\r\n root: this._refs.window,\r\n threshold: this._options.threshold,\r\n }\r\n );\r\n\r\n this._refs.slides.forEach((elem) => this.intersectionObserver.observe(elem));\r\n\r\n window.addEventListener('resize', () => {\r\n setTimeout(() => {\r\n this.goto(this._state.index);\r\n }, this._options.timeout);\r\n });\r\n\r\n if (this._options.prev) {\r\n this._refs.prev.addEventListener('click', () => this.previous());\r\n }\r\n if (this._options.next) {\r\n this._refs.next.addEventListener('click', () => this.next());\r\n }\r\n }\r\n\r\n static options = {\r\n bullet: null,\r\n window: null,\r\n products: null,\r\n threshold: 0.8,\r\n bound: 0.66,\r\n breakpoint: 720,\r\n minmax: {\r\n min: 1,\r\n max: 2,\r\n },\r\n timeout: 300,\r\n pace: 1000,\r\n };\r\n\r\n get slideWidth() {\r\n return this._refs.slides[0].offsetWidth;\r\n }\r\n\r\n // eslint-disable-next-line accessor-pairs\r\n set activeBullet(index) {\r\n if (this._options.bullet) {\r\n this._refs.bullets.forEach((bullet, i) => {\r\n bullet.setAttribute('data-selected', index === i);\r\n });\r\n }\r\n }\r\n\r\n // eslint-disable-next-line accessor-pairs\r\n set activeProduct(index) {\r\n if (this._options.products) {\r\n this._refs.products.forEach((product, i) => {\r\n product.setAttribute('data-active', index === i);\r\n });\r\n }\r\n }\r\n\r\n _onBulletClick(e) {\r\n e.preventDefault();\r\n const index = this._refs.bullets.indexOf(e.target);\r\n if (index !== -1) this.goto(index);\r\n }\r\n\r\n goto(index) {\r\n const max = this._refs.slides.length - 1;\r\n const i = Math.min(Math.max(index, 0), max);\r\n\r\n this.slideTo(i);\r\n this.activeBullet = i;\r\n this.activeProduct = i;\r\n this._state.index = i;\r\n }\r\n\r\n previous() {\r\n this.goto(this._state.index - 1);\r\n }\r\n\r\n next() {\r\n this.goto(this._state.index + 1);\r\n }\r\n\r\n handleArrows() {\r\n if (this._state.index < 1) {\r\n this._refs.prev.setAttribute('data-enabled', false);\r\n } else {\r\n this._refs.prev.setAttribute('data-enabled', true);\r\n }\r\n if (this._state.index >= this._refs.slides.length - 1) {\r\n this._refs.next.setAttribute('data-enabled', false);\r\n } else {\r\n this._refs.next.setAttribute('data-enabled', true);\r\n }\r\n }\r\n\r\n slideTo(index) {\r\n const target = -index * this.slideWidth;\r\n // eslint-disable-next-line no-unused-expressions\r\n target <= this._state.currentPos\r\n ? (this._state.direction = 'left')\r\n : (this._state.direction = 'right');\r\n this._state.currentPos = target;\r\n if (this._options.bullet) {\r\n this._refs.bullets.forEach((bullet) => {\r\n bullet.setAttribute('data-direction', this._state.direction);\r\n });\r\n }\r\n\r\n //disable scrollsnap while animating\r\n this._refs.window.setAttribute('data-snap', false);\r\n const t = setTimeout(() => {\r\n this._refs.window.setAttribute('data-snap', true);\r\n clearTimeout(t);\r\n }, this._options.pace);\r\n this.handleArrows();\r\n //scroll the container into position\r\n scrollTo(this._refs.slides[index], target, this._options.pace, this._refs.window, 'x');\r\n }\r\n}\r\n\r\nexport default Carousel;\r\n","class Cartsummary {\r\n constructor(element, options) {\r\n this._options = { ...Cartsummary.options, ...options };\r\n this._element = element;\r\n this._cacheSelectors();\r\n this._initToggle();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._toggles = this._element.querySelectorAll('.js-coupon');\r\n }\r\n\r\n _initToggle() {\r\n this._toggles.forEach((toggle) => {\r\n toggle.addEventListener('click', () => {\r\n // Get taget from attribute\r\n const targetId = toggle.dataset.target;\r\n // Get closest parent\r\n const parent = toggle.parentElement.closest('.discountcode');\r\n // Find the toggle target\r\n const target = parent.querySelector(`#${targetId}`);\r\n\r\n if (!target.classList.contains('is-active')) {\r\n toggle.classList.add('is-open');\r\n target.classList.add('is-active');\r\n target.style.height = 'auto';\r\n\r\n const height = `${target.clientHeight}px`;\r\n\r\n target.style.height = '0px';\r\n\r\n setTimeout(() => {\r\n target.style.height = height;\r\n }, 0);\r\n } else {\r\n toggle.classList.remove('is-open');\r\n target.style.height = '0px';\r\n\r\n target.addEventListener(\r\n 'transitionend',\r\n () => {\r\n target.classList.remove('is-active');\r\n },\r\n {\r\n once: true,\r\n }\r\n );\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default Cartsummary;\r\n","class Cartsummary {\r\n constructor(element, options) {\r\n this._options = { ...Cartsummary.options, ...options };\r\n this._element = element;\r\n this._cacheSelectors();\r\n this._initToggle();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._toggles = this._element.querySelectorAll('.js-coupon');\r\n }\r\n\r\n _initToggle() {\r\n this._toggles.forEach((toggle) => {\r\n toggle.addEventListener('click', () => {\r\n // Get taget from attribute\r\n const targetId = toggle.dataset.target;\r\n // Get closest parent\r\n const parent = toggle.parentElement.closest('.discountcode');\r\n // Find the toggle target\r\n const target = parent.querySelector(`#${targetId}`);\r\n\r\n if (!target.classList.contains('is-active')) {\r\n toggle.classList.add('is-open');\r\n target.classList.add('is-active');\r\n target.style.height = 'auto';\r\n\r\n const height = `${target.clientHeight}px`;\r\n\r\n target.style.height = '0px';\r\n\r\n setTimeout(() => {\r\n target.style.height = height;\r\n }, 0);\r\n } else {\r\n toggle.classList.remove('is-open');\r\n target.style.height = '0px';\r\n\r\n target.addEventListener(\r\n 'transitionend',\r\n () => {\r\n target.classList.remove('is-active');\r\n },\r\n {\r\n once: true,\r\n }\r\n );\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default Cartsummary;\r\n","class Configurator {\r\n constructor(element, options) {\r\n this._options = { ...Configurator.options, ...options };\r\n this._element = element;\r\n this._initFields = this._initFields.bind(this);\r\n this._init();\r\n }\r\n\r\n _init() {\r\n this._cacheSelectors();\r\n this._initFields();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._fields = [...this._element.querySelectorAll('select')];\r\n this._selects = [...this._element.querySelectorAll('select')];\r\n }\r\n\r\n static _setSelect = (select) => {\r\n if (select.selectedIndex) {\r\n select.setAttribute('data-selected', true);\r\n } else {\r\n select.setAttribute('data-selected', false);\r\n }\r\n };\r\n\r\n _initFields() {\r\n this._selects.forEach((select) => {\r\n this._setSelect(select);\r\n select.addEventListener(\r\n 'change',\r\n () => {\r\n this._setSelect(select);\r\n },\r\n true\r\n );\r\n });\r\n }\r\n}\r\n\r\nexport default Configurator;\r\n","import { setCookie, getCookie, eraseCookie } from 'utils/cookies';\r\n\r\nclass CookieBar {\r\n constructor(element, options = {}) {\r\n this._element = element;\r\n this._elements = {\r\n html: document.documentElement,\r\n body: document.body,\r\n };\r\n this._regionToggle = document.querySelector('#user_menu .region-toggle');\r\n this._region = document.querySelector('#region_selector');\r\n this._notification = document.querySelector('#user_menu .user-menu__notification');\r\n this._checkboxes = [...element.querySelectorAll(\"[type='checkbox']\")];\r\n this._submit = element.querySelector('button.button--primary');\r\n this._cancel = element.querySelector('button.button--diapositive');\r\n this._options = { ...CookieBar.options, ...options };\r\n\r\n if (this._region === null) {\r\n return;\r\n }\r\n this._init();\r\n this._setEventListeners();\r\n }\r\n\r\n _state = {\r\n active: false,\r\n scrollTop: 0,\r\n };\r\n\r\n static options = {\r\n cookieName: 'cookie_necessary',\r\n cookies: {\r\n mandatory: ['cookie_necessary', 'cookie_statistics'],\r\n optional: ['cookie_marketing'],\r\n },\r\n timeout: 2500,\r\n };\r\n\r\n _init() {\r\n this._element.setAttribute('aria-hidden', 'true');\r\n // Just a safety measure, the whole cookie bar should not be rendered if cookies are already accepted\r\n if (getCookie(this._options.cookieName) !== null) {\r\n this._state.active = false;\r\n this._region.setAttribute('data-newsession', false);\r\n\r\n // console.warn(\r\n // '@backend: please omit the cookie bar when cookies are already accepted.'\r\n // )\r\n } else {\r\n this._region.setAttribute('data-newsession', true);\r\n this._state.active = true;\r\n }\r\n\r\n this._element.setAttribute('aria-hidden', !this._state.active);\r\n this._handleModal();\r\n }\r\n\r\n _setEventListeners() {\r\n const TTL = 90;\r\n\r\n this._submit.addEventListener('click', () => {\r\n this._options.cookies.mandatory.forEach((cookie) => {\r\n setCookie(cookie, true, TTL);\r\n });\r\n this._options.cookies.optional.forEach((cookie) => {\r\n setCookie(cookie, true, TTL);\r\n });\r\n this._state.active = false;\r\n this._setVisibility();\r\n });\r\n\r\n this._cancel.addEventListener('click', () => {\r\n this._options.cookies.mandatory.forEach((cookie) => {\r\n setCookie(cookie, true);\r\n });\r\n this._options.cookies.optional.forEach((cookie) => {\r\n eraseCookie(cookie);\r\n });\r\n this._state.active = false;\r\n this._setVisibility();\r\n });\r\n }\r\n\r\n _setVisibility() {\r\n this._element.setAttribute('aria-hidden', !this._state.active);\r\n this._handleModal();\r\n this._showNotification();\r\n }\r\n\r\n _showNotification() {\r\n if (this._state.active) {\r\n return;\r\n }\r\n this._notification.setAttribute('data-active', true);\r\n const t = setTimeout(() => {\r\n this._notification.setAttribute('data-active', false);\r\n clearTimeout(t);\r\n }, this._options.timeout);\r\n }\r\n\r\n _handleModal() {\r\n this._elements.html.setAttribute('data-overflow', !this._state.active);\r\n this._elements.body.setAttribute('data-modal', this._state.active);\r\n /* eslint-disable-next-line */\r\n this._state.active ? this._disableScroll() : this._enableScroll();\r\n }\r\n\r\n _enableScroll() {\r\n this._elements.body.scrollTop = this._elements.html.scrollTop = this._state.scrollTop;\r\n this._state.scrollTop = 0;\r\n this._element.scrollTop = 0;\r\n }\r\n\r\n _disableScroll() {\r\n this._state.scrollTop = this._elements.body.scrollTop || this._elements.html.scrollTop;\r\n }\r\n}\r\n\r\nexport default CookieBar;\r\n","class Expander {\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = options;\r\n this._cacheSelectors();\r\n this._initTrigger();\r\n this._initExpander();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._trigger = this._element.querySelector('.js-button--expander');\r\n }\r\n\r\n _initTrigger() {\r\n this._trigger.addEventListener('click', () => {\r\n const target = this._element.querySelector('.expander__panel');\r\n\r\n if (target.classList.contains('is-active')) {\r\n target.closest('.expander').classList.remove('is-active');\r\n target.classList.remove('is-active');\r\n } else {\r\n target.closest('.expander').classList.add('is-active');\r\n target.classList.add('is-active');\r\n }\r\n });\r\n }\r\n\r\n _initExpander() {\r\n const target = this._element.querySelector('.expander__panel');\r\n\r\n const defaultOpen = this._options.defaultOpen !== null && this._options.defaultOpen === 'true';\r\n\r\n if (defaultOpen) {\r\n target.closest('.expander').classList.add('is-active');\r\n target.classList.add('is-active');\r\n }\r\n }\r\n}\r\n\r\nexport default Expander;\r\n","import Flickity from 'flickity';\r\n/* eslint-disable no-unused-vars */\r\nimport asNavFor from 'flickity-as-nav-for';\r\n\r\nclass FilterCarousel {\r\n constructor() {\r\n this._cacheSelectors();\r\n this._getOptions();\r\n this._init();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._carousel = document.querySelector('.carousel');\r\n }\r\n\r\n _init() {\r\n this.flkty = new Flickity(this._carousel, this._options);\r\n }\r\n\r\n _getOptions() {\r\n if (matchMedia('screen and (min-width: 768px)').matches) {\r\n this._options = {\r\n cellSelector: '.carousel-cell',\r\n cellAlign: 'center',\r\n groupCells: true,\r\n contain: true,\r\n pageDots: false,\r\n prevNextButtons: true,\r\n percentPosition: false,\r\n imagesLoaded: true,\r\n };\r\n } else {\r\n this._options = {\r\n cellSelector: '.carousel-cell',\r\n cellAlign: 'left',\r\n groupCells: false,\r\n contain: true,\r\n pageDots: false,\r\n prevNextButtons: true,\r\n percentPosition: false,\r\n imagesLoaded: true,\r\n };\r\n }\r\n }\r\n}\r\n\r\nexport default FilterCarousel;\r\n","import { disableBodyScroll, enableBodyScroll, clearAllBodyScrollLocks } from 'body-scroll-lock';\r\nclass Filters {\r\n constructor(element) {\r\n this._element = element;\r\n this._init();\r\n }\r\n\r\n _state = {\r\n isOpen: false,\r\n scrollTop: 0,\r\n };\r\n\r\n _init() {\r\n this._cacheSelectors();\r\n this._addEventListeners();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._content = this._element.parentNode.querySelector('.filters');\r\n this._close = this._content.querySelector('.filter-toggle');\r\n this._body = document.querySelector('body');\r\n this._html = document.documentElement;\r\n }\r\n\r\n _addEventListeners() {\r\n this._element.addEventListener('click', () => {\r\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\r\n this._state.scrollTop = scrollTop;\r\n clearAllBodyScrollLocks();\r\n this._state.isOpen = !this._state.isOpen;\r\n this._content.setAttribute('data-open', this._state.isOpen);\r\n if (this._state.isOpen) {\r\n this._disableScroll();\r\n } else {\r\n this._enableScroll();\r\n }\r\n });\r\n this._close.addEventListener('click', () => {\r\n clearAllBodyScrollLocks();\r\n this._state.isOpen = false;\r\n this._content.setAttribute('data-open', this._state.isOpen);\r\n this._enableScroll();\r\n });\r\n }\r\n\r\n _enableScroll() {\r\n //this._body.scrollTop = this._html.scrollTop = this._state.scrollTop\r\n this._state.scrollTop = 0;\r\n enableBodyScroll(this._body);\r\n this._html.setAttribute('data-overflow', true);\r\n }\r\n\r\n _disableScroll() {\r\n //this._body.scrollTop = this._html.scrollTop = 0\r\n disableBodyScroll(this._body);\r\n this._html.setAttribute('data-overflow', false);\r\n }\r\n}\r\n\r\nexport default Filters;\r\n","class CheckoutForm {\r\n constructor(element, options) {\r\n this._options = { ...CheckoutForm.options, ...options };\r\n this._element = element;\r\n this._initFields = this._initFields.bind(this);\r\n this._setTextarea = this._setTextarea.bind(this);\r\n this._textareaEvents = ['change', 'keyup', 'paste'];\r\n this._init();\r\n }\r\n\r\n _init() {\r\n this._cacheSelectors();\r\n this._initFields();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._fields = [...this._element.querySelectorAll('input.FormTextbox__Input, select')];\r\n this._textarea = [...this._element.querySelectorAll('textarea')];\r\n this._selects = [...this._element.querySelectorAll('select')];\r\n // this._numbers = [...this._element.querySelectorAll('[type=\"number\"]')]\r\n // this._checkboxes = [\r\n // ...this._element.querySelectorAll('input[type=\"checkbox\"]')\r\n // ]\r\n // this._radios = [...this._element.querySelectorAll('input[type=\"radio\"]')]\r\n }\r\n\r\n static _setTextarea = (textarea) => {\r\n const compStyles = window.getComputedStyle(textarea);\r\n const lineheight = parseInt(compStyles.getPropertyValue('line-height'), 10);\r\n const paddingtop = parseInt(compStyles.getPropertyValue('padding-top'), 10);\r\n const paddingbottom = parseInt(compStyles.getPropertyValue('padding-bottom'), 10);\r\n const lines = textarea.value.split('\\n').length;\r\n const height = lines * lineheight + paddingtop + paddingbottom;\r\n textarea.style.height = `${height}px`;\r\n };\r\n\r\n static _setSelect = (select) => {\r\n if (select.selectedIndex) {\r\n select.setAttribute('data-selected', true);\r\n } else {\r\n select.setAttribute('data-selected', false);\r\n }\r\n };\r\n\r\n _initFields() {\r\n this._textarea.forEach((textarea) => {\r\n this._setTextarea(textarea);\r\n this._textareaEvents.forEach((event) => {\r\n textarea.addEventListener(\r\n event,\r\n () => {\r\n this._setTextarea(textarea);\r\n },\r\n true\r\n );\r\n });\r\n });\r\n\r\n this._selects.forEach((select) => {\r\n this._setSelect(select);\r\n select.addEventListener(\r\n 'change',\r\n () => {\r\n this._setSelect(select);\r\n },\r\n true\r\n );\r\n });\r\n }\r\n}\r\n\r\nexport default CheckoutForm;\r\n","class Form {\r\n constructor(element, options) {\r\n this._options = { ...Form.options, ...options };\r\n this._element = element;\r\n this._initFields = this._initFields.bind(this);\r\n this._setTextarea = this._setTextarea.bind(this);\r\n this._textareaEvents = ['change', 'keyup', 'paste'];\r\n this._init();\r\n }\r\n\r\n _init() {\r\n this._cacheSelectors();\r\n this._initFields();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._fields = [...this._element.querySelectorAll('input.FormTextbox__Input, select')];\r\n this._textarea = [...this._element.querySelectorAll('textarea')];\r\n this._selects = [...this._element.querySelectorAll('select')];\r\n // this._numbers = [...this._element.querySelectorAll('[type=\"number\"]')]\r\n // this._checkboxes = [\r\n // ...this._element.querySelectorAll('input[type=\"checkbox\"]')\r\n // ]\r\n // this._radios = [...this._element.querySelectorAll('input[type=\"radio\"]')]\r\n }\r\n\r\n _setTextarea(textarea) {\r\n if (this._options.disableTextareaSizing === 'true') {\r\n return false;\r\n }\r\n\r\n const compStyles = window.getComputedStyle(textarea);\r\n const lineheight = parseInt(compStyles.getPropertyValue('line-height'), 10);\r\n const paddingtop = parseInt(compStyles.getPropertyValue('padding-top'), 10);\r\n const paddingbottom = parseInt(compStyles.getPropertyValue('padding-bottom'), 10);\r\n const lines = textarea.value.split('\\n').length;\r\n const height = lines * lineheight + paddingtop + paddingbottom;\r\n textarea.style.height = `${height}px`;\r\n\r\n return true;\r\n }\r\n\r\n _setSelect = (select) => {\r\n if (select.selectedIndex) {\r\n select.setAttribute('data-selected', true);\r\n } else {\r\n select.setAttribute('data-selected', false);\r\n }\r\n };\r\n\r\n _initFields() {\r\n this._textarea.forEach((textarea) => {\r\n this._setTextarea(textarea);\r\n this._textareaEvents.forEach((event) => {\r\n textarea.addEventListener(\r\n event,\r\n () => {\r\n this._setTextarea(textarea);\r\n },\r\n true\r\n );\r\n });\r\n });\r\n\r\n this._selects.forEach((select) => {\r\n this._setSelect(select);\r\n select.addEventListener(\r\n 'change',\r\n () => {\r\n this._setSelect(select);\r\n },\r\n true\r\n );\r\n });\r\n\r\n this._fields.forEach((input) => {\r\n const error = input.parentNode.querySelector('.Form__Element__ValidationError');\r\n /* eslint-disable no-unused-expressions */\r\n error.textContent.length > 0\r\n ? input.parentNode.setAttribute('data-error', true)\r\n : input.parentNode.setAttribute('data-error', false);\r\n /* eslint-enable */\r\n });\r\n }\r\n}\r\n\r\nexport default Form;\r\n","import scrollTo from 'utils/scrollTo';\r\n\r\nclass GispenFilter {\r\n constructor(options) {\r\n this._options = { ...GispenFilter.options, ...options };\r\n this._init();\r\n }\r\n\r\n static options = {\r\n pace: 350,\r\n };\r\n\r\n _cacheSelectors() {\r\n this._menu = document.querySelector('.gispen-filter');\r\n this._anchorLinks = [].slice.call(document.querySelectorAll('.anchor-link'));\r\n this._anchors = [].slice.call(document.querySelectorAll('[data-anchor]'));\r\n }\r\n\r\n _addEventListeners() {\r\n this._anchorLinks.forEach((anchorLink) =>\r\n anchorLink.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n const offset = this._menu.scrollHeight;\r\n const hash = anchorLink.href.split('#');\r\n /* eslint-disable-next-line */\r\n document.querySelector(`[id=\"${hash[1]}\"]`) &&\r\n scrollTo(document.querySelector(`[id=\"${hash[1]}\"]`), offset, this._options.pace);\r\n })\r\n );\r\n }\r\n\r\n _init() {\r\n this._cacheSelectors();\r\n this._addEventListeners();\r\n\r\n const anchorObserver = new IntersectionObserver(\r\n (entries) => {\r\n entries.forEach((anchor) => {\r\n const { isIntersecting } = anchor;\r\n if (isIntersecting) {\r\n this._menu\r\n .querySelector(`[href=\"#${anchor.target.id}\"]`)\r\n .setAttribute('data-active', 'true');\r\n } else {\r\n this._menu\r\n .querySelector(`[href=\"#${anchor.target.id}\"]`)\r\n .setAttribute('data-active', 'false');\r\n }\r\n });\r\n },\r\n {\r\n threshold: 0,\r\n }\r\n );\r\n\r\n this._anchors.forEach((anchor) => anchorObserver.observe(anchor));\r\n }\r\n}\r\n\r\nexport default GispenFilter;\r\n","import { disableBodyScroll, enableBodyScroll, clearAllBodyScrollLocks } from 'body-scroll-lock';\r\n\r\nclass GispenMenu {\r\n /**\r\n * Base state\r\n */\r\n _state = {\r\n open: false,\r\n scrollTop: 0,\r\n };\r\n\r\n static options = {\r\n timeout: 450,\r\n };\r\n\r\n constructor(options = {}) {\r\n this._options = { ...options };\r\n this._elements = Array.prototype.slice.call(document.querySelectorAll('.side-toggle'), 0);\r\n this._target = document.querySelector('#side_menu');\r\n this._main = document.querySelector('#main');\r\n this._body = document.querySelector('#body');\r\n this._html = document.documentElement;\r\n if (this._body.getAttribute('data-edit') === 'true') {\r\n return;\r\n }\r\n this._navigation = this._target.querySelector('.navigation-list');\r\n this._backButton = this._target.querySelector('.side-menu__back__button');\r\n this._closeButtons = [...document.querySelectorAll('.close-sidemenu')];\r\n this._contactButtons = [...document.querySelectorAll('.contact-button')];\r\n\r\n this._closeButtons.forEach((element) => {\r\n element.onclick = () => {\r\n this.closeSideMenu(element);\r\n };\r\n });\r\n\r\n this._contactButtons.forEach((element) => {\r\n if (element.getAttribute('href').indexOf('#') > -1) {\r\n element.classList.add('anchor-link');\r\n } else {\r\n element.classList.remove('anchor-link');\r\n }\r\n });\r\n\r\n this._elements.forEach((element) => {\r\n element.onclick = () => {\r\n this._state.open = !this._state.open;\r\n if (!this._state.open) {\r\n // closing menu\r\n this.closeSideMenu(element);\r\n } else {\r\n // opening menu\r\n this.togglemenu(this, element);\r\n }\r\n };\r\n });\r\n }\r\n _enableScroll() {\r\n this._body.scrollTop = this._html.scrollTop = this._state.scrollTop;\r\n this._state.scrollTop = 0;\r\n enableBodyScroll(this._body);\r\n this._html.setAttribute('data-overflow', true);\r\n }\r\n\r\n _disableScroll() {\r\n this._state.scrollTop = this._body.scrollTop || this._html.scrollTop;\r\n disableBodyScroll(this._body);\r\n this._html.setAttribute('data-overflow', false);\r\n }\r\n\r\n closeSideMenu(element) {\r\n this._state.open = false;\r\n this.togglemenu(this, element);\r\n }\r\n\r\n togglemenu(t, el) {\r\n el.setAttribute('aria-expanded', t._state.open);\r\n t._target.setAttribute('data-open', t._state.open);\r\n t._main.setAttribute('data-side-open', t._state.open);\r\n clearAllBodyScrollLocks();\r\n if (t._state.open) {\r\n this._disableScroll();\r\n } else {\r\n this._enableScroll();\r\n }\r\n }\r\n}\r\n\r\nexport default GispenMenu;\r\n","class ProfileMenu {\r\n /**\r\n * Base state\r\n */\r\n _state = {\r\n open: false,\r\n scrollTop: 0,\r\n };\r\n\r\n constructor() {\r\n this._profileToggle = document.querySelector('.user-toggle');\r\n this._profileMenu = document.getElementById('js-profile-popover');\r\n\r\n this.initEventListeners();\r\n }\r\n\r\n initEventListeners() {\r\n this._profileToggle.addEventListener('click', this.checkState.bind(this));\r\n }\r\n\r\n checkState() {\r\n /* eslint-disable no-unused-expressions */\r\n this._state.open ? this.closeProfileMenu() : this.openProfileMenu();\r\n }\r\n\r\n openProfileMenu() {\r\n this._profileMenu.classList.add('is-visible');\r\n this.setState();\r\n }\r\n\r\n closeProfileMenu() {\r\n this._profileMenu.classList.remove('is-visible');\r\n this.setState();\r\n }\r\n\r\n setState() {\r\n this._state.open = !this._state.open;\r\n }\r\n}\r\n\r\nexport default ProfileMenu;\r\n","import Flickity from 'flickity';\r\n/* eslint-disable no-unused-vars */\r\nimport fade from 'flickity-fade';\r\nimport asNavFor from 'flickity-as-nav-for';\r\n\r\nclass HeaderCarousel {\r\n constructor() {\r\n this._cacheSelectors();\r\n this._init();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._carousel = document.querySelector('.main-carousel');\r\n this._carouselNav = document.querySelector('.carousel-nav');\r\n }\r\n\r\n _init() {\r\n this.flkty = new Flickity(this._carousel, {\r\n // options\r\n cellAlign: 'left',\r\n contain: true,\r\n pageDots: true,\r\n prevNextButtons: false,\r\n fade: true,\r\n });\r\n\r\n this.flktyNav = new Flickity(this._carouselNav, {\r\n asNavFor: this._carousel,\r\n contain: true,\r\n prevNextButtons: false,\r\n pageDots: false,\r\n draggable: false,\r\n });\r\n }\r\n}\r\n\r\nexport default HeaderCarousel;\r\n","import { raf } from 'utils/eventHelpers';\r\nimport { setPrefixedStyle } from 'utils/DOMHelpers';\r\n\r\nclass Carousel {\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = Object.assign(Carousel.options, options);\r\n\r\n this._refs = {\r\n window: element.querySelector(this._options.window),\r\n bullets: [].slice.call(element.querySelectorAll(this._options.bullet)),\r\n products: [].slice.call(element.querySelectorAll(this._options.products)),\r\n slides: [],\r\n body: document.querySelector('body'),\r\n };\r\n\r\n this._refs.slides = [].slice.call(this._refs.window.children);\r\n this._refs.window.scrollLeft = 0;\r\n this._element.setAttribute('data-initialized', 'true');\r\n\r\n this._onTouchMove = raf(this._onTouchMove.bind(this));\r\n\r\n this._refs.window.addEventListener('mousedown', (e) => this._onTouchStart(e), {\r\n passive: true,\r\n });\r\n this._refs.window.addEventListener('touchstart', (e) => this._onTouchStart(e), {\r\n passive: true,\r\n });\r\n this._refs.window.addEventListener('mousemove', (e) => this._onTouchMove(e), {\r\n passive: true,\r\n });\r\n this._refs.window.addEventListener('touchmove', (e) => this._onTouchMove(e), {\r\n passive: true,\r\n });\r\n this._refs.window.addEventListener('touchend', (e) => this._onTouchEnd(e), {\r\n passive: true,\r\n });\r\n document.addEventListener('mouseup', (e) => this._onTouchEnd(e), {\r\n passive: true,\r\n });\r\n\r\n this._refs.bullets.forEach((bullet) => {\r\n bullet.addEventListener('click', (e) => this._onBulletClick(e));\r\n bullet.addEventListener('touchend', (e) => this._onBulletClick(e));\r\n });\r\n\r\n this._refs.slides.forEach((slide) =>\r\n slide.addEventListener('dragstart', (e) => e.preventDefault())\r\n );\r\n\r\n window.addEventListener('resize', () => {\r\n setTimeout(() => {\r\n this.goto(this._state.index);\r\n }, this._options.timeout);\r\n });\r\n\r\n this._state = {\r\n index: 0,\r\n dragging: false,\r\n currentPos: 0,\r\n direction: 'right',\r\n touchStart: {\r\n x: 0,\r\n y: 0,\r\n },\r\n };\r\n\r\n this.goto(0);\r\n }\r\n\r\n static options = {\r\n bullet: null,\r\n window: null,\r\n products: null,\r\n threshold: 30,\r\n bound: 0.66,\r\n breakpoint: 720,\r\n minmax: {\r\n min: 1,\r\n max: 2,\r\n },\r\n timeout: 300,\r\n };\r\n\r\n get slideWidth() {\r\n return this._refs.slides[0].offsetWidth;\r\n }\r\n\r\n // eslint-disable-next-line accessor-pairs\r\n set activeBullet(index) {\r\n this._refs.bullets.forEach((bullet, i) => {\r\n bullet.setAttribute('data-selected', index === i);\r\n });\r\n }\r\n\r\n // eslint-disable-next-line accessor-pairs\r\n set activeProduct(index) {\r\n this._refs.products.forEach((product, i) => {\r\n product.setAttribute('data-active', index === i);\r\n });\r\n }\r\n\r\n _onBulletClick(e) {\r\n e.preventDefault();\r\n const index = this._refs.bullets.indexOf(e.target);\r\n if (index !== -1) this.goto(index);\r\n }\r\n\r\n _onTouchStart(e) {\r\n if (this._state.dragging) return;\r\n this._state.dragging = true;\r\n\r\n const pointer = e.changedTouches ? e.changedTouches[0] : e;\r\n this._state.touchStart = {\r\n x: pointer.pageX,\r\n y: pointer.pageY,\r\n };\r\n }\r\n // eslint-disable-next-line complexity\r\n _onTouchMove(e) {\r\n if (!this._state.dragging) return;\r\n\r\n const pointer = e.changedTouches ? e.changedTouches[0] : e;\r\n const d = {\r\n x: pointer.pageX - this._state.touchStart.x,\r\n y: pointer.pageY - this._state.touchStart.y,\r\n };\r\n\r\n if (Math.abs(d.x) > Math.abs(d.y)) {\r\n const offset = -this._state.index * this.slideWidth + d.x;\r\n const isWithinBounds =\r\n offset >= this.slideWidth * -(this._refs.slides.length - 1) && offset <= 0;\r\n const dir = offset / Math.abs(offset);\r\n const target = isWithinBounds\r\n ? offset\r\n : offset - d.x * this._options.bound + dir * Math.sqrt(Math.abs(d.x) * this._options.bound);\r\n\r\n this._refs.slides.forEach((slide) => {\r\n setPrefixedStyle(slide, 'transform', `translateX(${target}px)`);\r\n setPrefixedStyle(slide, 'transition-duration', '.1s');\r\n });\r\n } else {\r\n this.slideTo(this.index);\r\n }\r\n }\r\n // eslint-disable-next-line complexity\r\n _onTouchEnd(e) {\r\n if (!this._state.dragging) return;\r\n this._state.dragging = false;\r\n\r\n const pointer = e.changedTouches ? e.changedTouches[0] : e;\r\n const d = {\r\n x: pointer.pageX - this._state.touchStart.x,\r\n y: pointer.pageY - this._state.touchStart.y,\r\n };\r\n\r\n if (Math.abs(d.x) > Math.abs(d.y) && Math.abs(d.x) > this._options.threshold) {\r\n // eslint-disable-next-line no-unused-expressions\r\n d.x > 0 ? this.previous() : this.next();\r\n } else {\r\n this.slideTo(this._state.index);\r\n }\r\n }\r\n\r\n goto(index) {\r\n const max = this._refs.slides.length - 1;\r\n const i = Math.min(Math.max(index, 0), max);\r\n\r\n this._refs.slides[this._state.index].removeAttribute('data-active');\r\n this._refs.slides[i].setAttribute('data-active', 'true');\r\n\r\n this.slideTo(i);\r\n this.activeBullet = i;\r\n this.activeProduct = i;\r\n this._state.index = i;\r\n }\r\n\r\n previous() {\r\n this.goto(this._state.index - 1);\r\n }\r\n\r\n next() {\r\n this.goto(this._state.index + 1);\r\n }\r\n\r\n slideTo(index) {\r\n const target = -index * this.slideWidth;\r\n // eslint-disable-next-line no-unused-expressions\r\n target <= this._state.currentPos\r\n ? (this._state.direction = 'left')\r\n : (this._state.direction = 'right');\r\n this._state.currentPos = target;\r\n this._refs.bullets.forEach((bullet) => {\r\n bullet.setAttribute('data-direction', this._state.direction);\r\n });\r\n this._refs.slides.forEach((slide) => {\r\n setPrefixedStyle(slide, 'transform', `translateX(${target}px)`);\r\n setPrefixedStyle(slide, 'transition', '');\r\n });\r\n }\r\n}\r\n\r\nexport default Carousel;\r\n","import Colcade from 'colcade';\r\n\r\nclass InspirationGrid {\r\n constructor(element) {\r\n this._element = element;\r\n\r\n this._cacheSelectors();\r\n this._init();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._grid = this._element;\r\n }\r\n\r\n _init() {\r\n this.colc = new Colcade(this._grid, {\r\n columns: '.grid-col',\r\n items: '.grid-item',\r\n });\r\n }\r\n}\r\n\r\nexport default InspirationGrid;\r\n","import Colcade from 'colcade';\r\nimport GLightbox from 'glightbox';\r\n\r\nclass PhotoGallery {\r\n constructor() {\r\n this._cacheSelectors();\r\n this._initColcade();\r\n this._initLightbox();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._grids = document.querySelectorAll('.photogallery-grid');\r\n this._lightboxItems = document.querySelectorAll('.gallery a');\r\n }\r\n\r\n _initColcade() {\r\n this._grids.forEach((grid) => {\r\n this.colc = new Colcade(grid, {\r\n columns: '.grid-col',\r\n items: '.grid-item',\r\n });\r\n });\r\n }\r\n\r\n _initLightbox() {\r\n this.lightbox = GLightbox();\r\n }\r\n}\r\n\r\nexport default PhotoGallery;\r\n","const _getFontSize = (textLength) => {\r\n const baseFontSize = 6;\r\n const lengthModifier = 0.06;\r\n let fontSize = 1.5;\r\n if (textLength > baseFontSize) {\r\n fontSize = fontSize - textLength * lengthModifier;\r\n }\r\n return `${fontSize}em`;\r\n};\r\n\r\nclass ProgressCircle {\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = options;\r\n this._init();\r\n }\r\n\r\n _init() {\r\n const progressText = this._element.querySelector('.progress-text');\r\n\r\n const progressVal = progressText.dataset.progress;\r\n const totalPercentageVal = progressText.dataset.progressTotal;\r\n\r\n const scaleDigit = 3.76;\r\n const totalScale = 100;\r\n\r\n const strokeVal = (scaleDigit * totalScale) / totalPercentageVal;\r\n\r\n const circleProgress = this._element.querySelector('.progress-circle-prog');\r\n circleProgress.style.strokeDasharray = `${progressVal * strokeVal} 999`;\r\n\r\n const boxes = document.querySelectorAll('.progress-text');\r\n boxes.forEach((box) => {\r\n box.style.fontSize = _getFontSize(box.textContent.length);\r\n });\r\n }\r\n}\r\n\r\nexport default ProgressCircle;\r\n","import scrollTo from 'utils/scrollTo';\r\n\r\nclass HandleModal {\r\n _state = {\r\n modalOpen: false,\r\n scroll: 0,\r\n };\r\n\r\n static options = {\r\n pace: 350,\r\n offset: 0,\r\n cookieName: 'preference_market',\r\n };\r\n\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = { ...HandleModal.options, ...options };\r\n this._cacheSelectors();\r\n this._initialize();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._elements = {\r\n html: document.documentElement,\r\n body: document.body,\r\n toggleButtons: [...document.querySelectorAll(this._options.toggle)],\r\n closeButtons: [...this._element.parentNode.querySelectorAll(this._options.close)],\r\n anchor: this._element.querySelector(this._options.regionanchor),\r\n header: this._element.querySelector(this._options.header),\r\n menu: this._element.parentNode.querySelector(this._options.menu),\r\n };\r\n }\r\n\r\n _initialize() {\r\n this._elements.closeButtons.forEach((el) => {\r\n el.addEventListener('click', () => {\r\n this._state.modalOpen = false;\r\n this._handleModal();\r\n });\r\n });\r\n this._elements.toggleButtons.forEach((el) => {\r\n el.addEventListener('click', () => {\r\n this._state.modalOpen = !this._state.modalOpen;\r\n this._handleModal();\r\n });\r\n });\r\n if (this._elements.anchor !== null) {\r\n this._elements.anchor.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n const hash = this._elements.anchor.href.split('#');\r\n scrollTo(\r\n this._element.querySelector(`[id=\"${hash[1]}\"]`),\r\n this._options.offset,\r\n this._options.pace,\r\n this._element\r\n );\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Handle modal state\r\n * @param {*} event\r\n */\r\n _handleModal() {\r\n this._elements.html.setAttribute('data-overflow', !this._state.modalOpen);\r\n this._elements.body.setAttribute('data-modal', this._state.modalOpen);\r\n this._element.setAttribute('data-open', this._state.modalOpen);\r\n /* eslint-disable-next-line */\r\n this._state.modalOpen ? this._disableScroll() : this._enableScroll();\r\n }\r\n\r\n _enableScroll() {\r\n this._elements.body.scrollTop = this._elements.html.scrollTop = this._state.scrollTop;\r\n this._state.scrollTop = 0;\r\n this._element.scrollTop = 0;\r\n }\r\n\r\n _disableScroll() {\r\n this._state.scrollTop = this._elements.body.scrollTop || this._elements.html.scrollTop;\r\n }\r\n}\r\n\r\nexport default HandleModal;\r\n","class SideMenu {\r\n _state = {\r\n subOpen: false,\r\n };\r\n\r\n static options = {\r\n delay: 100,\r\n transition: 100,\r\n };\r\n\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = { ...SideMenu.options, ...options };\r\n this._cacheSelectors();\r\n\r\n this._menuLevels = {\r\n first_level_menu: 1,\r\n second_level_menu: 2,\r\n third_level_menu: 3,\r\n };\r\n\r\n this._initialize();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._elements = {\r\n images: Array.from(this._element.querySelectorAll('.figure')),\r\n links: Array.from(this._element.querySelectorAll('#side-menu__navigation li')),\r\n navigationList: Array.from(this._element.querySelectorAll(`.side-menu .navigation-list`)),\r\n first_level_menu: this._element.querySelector(\".navigation-list[data-level='1']\"),\r\n second_level_menu: this._element.querySelector(\".navigation-list[data-level='2']\"),\r\n third_level_menu: this._element.querySelector(\".navigation-list[data-level='3']\"),\r\n backButton: this._element.querySelector('.side-menu__back__button'),\r\n backButtonTitle: this._element.querySelector('#side-menu__active-title'),\r\n // ,\r\n // closeButtons: [...this._element.querySelectorAll('.close-sidemenu')]\r\n };\r\n }\r\n\r\n _initialize() {\r\n this._closeAllMenus();\r\n this._showMenu(this._elements.first_level_menu);\r\n\r\n // Close all menus when clicking on close\r\n // this._elements.closeButtons.forEach(el => {\r\n // el.addEventListener('click', () => this._closeAllMenus())\r\n // })\r\n\r\n // Make each link clickable and search for submenu\r\n this._elements.links.forEach((el) => {\r\n el.addEventListener('click', (event) => this._clickedNavigationItem(event));\r\n });\r\n\r\n this._elements.backButton.addEventListener('click', () => this._clickedBackButton());\r\n\r\n this._switchImages();\r\n }\r\n\r\n /**\r\n * Close all of the menus\r\n */\r\n _closeAllMenus() {\r\n this._elements.navigationList.forEach((el) => {\r\n el.setAttribute('data-active', false);\r\n });\r\n }\r\n\r\n /**\r\n * when clicked on any <li> item in the menu\r\n * @param {*} event\r\n */\r\n // eslint-disable-next-line complexity\r\n _clickedNavigationItem(event) {\r\n event.stopPropagation();\r\n\r\n const clickedElement = event.currentTarget.closest('li');\r\n const nextMenu = clickedElement.querySelector('ul');\r\n const clickedElementLevel = parseInt(clickedElement.dataset.level, 10);\r\n\r\n // Switch images (only on the first level)\r\n if (clickedElementLevel === 1) {\r\n const innerLink = clickedElement.querySelector('.menu-link');\r\n if (innerLink) {\r\n this._elements.backButtonTitle.setAttribute('data-previous-title', innerLink.textContent);\r\n }\r\n\r\n this._switchImages(clickedElement);\r\n }\r\n\r\n // When menu is already active close the menu\r\n if (\r\n clickedElementLevel === this._menuLevels.first_level_menu &&\r\n nextMenu &&\r\n nextMenu.dataset.active === 'true'\r\n ) {\r\n this._closeAllMenus(nextMenu);\r\n this._showMenu(this._elements.first_level_menu);\r\n this._element.setAttribute('data-sub-open', false);\r\n return;\r\n } else if (\r\n clickedElementLevel === this._menuLevels.second_level_menu &&\r\n nextMenu &&\r\n nextMenu.dataset.active === 'true'\r\n ) {\r\n this._closeAllMenus(nextMenu);\r\n this._element.setAttribute('data-sub-open', true);\r\n this._element.setAttribute('data-show-level', '2');\r\n this._element.querySelector(\"ul[data-level='2']\").setAttribute('data-active', true);\r\n return;\r\n }\r\n\r\n // Don't open an item that is already active\r\n if (nextMenu && nextMenu.dataset.active === 'true') {\r\n return;\r\n }\r\n\r\n // If menu has a submenu, open it\r\n if (nextMenu) {\r\n this._elements.backButtonTitle.textContent = clickedElement.dataset.title;\r\n\r\n this._closeAllMenus(nextMenu);\r\n this._showMenu(nextMenu);\r\n }\r\n }\r\n\r\n /**\r\n * Show menu based on either level or element\r\n * @param {*} element\r\n */\r\n _showMenu(element) {\r\n const menuLevel = parseInt(element.dataset.level, 10);\r\n\r\n if (menuLevel > 1) {\r\n this._state.subOpen = true;\r\n this._element.setAttribute('data-sub-open', true);\r\n this._elements.backButton.setAttribute('data-visible', true);\r\n } else {\r\n this._state.subOpen = false;\r\n this._element.setAttribute('data-sub-open', false);\r\n this._elements.backButton.setAttribute('data-visible', false);\r\n }\r\n\r\n if (menuLevel === this._menuLevels.third_level_menu) {\r\n element.closest(\"ul[data-level='2']\").setAttribute('data-active', true);\r\n }\r\n\r\n this._element.setAttribute('data-show-level', menuLevel);\r\n\r\n const waitForMenu = 200;\r\n setTimeout(() => {\r\n element.setAttribute('data-active', true);\r\n }, waitForMenu);\r\n }\r\n\r\n /**\r\n * When the user clicks on the back button in the mobile menu\r\n */\r\n _clickedBackButton() {\r\n const currentShowLevel = parseInt(this._element.dataset.showLevel, 10) - 1;\r\n this._element.setAttribute('data-show-level', currentShowLevel);\r\n\r\n this._closeAllMenus();\r\n\r\n if (currentShowLevel === this._menuLevels.second_level_menu) {\r\n this._showMenu(this._elements.second_level_menu);\r\n this._elements.backButtonTitle.textContent =\r\n this._elements.backButtonTitle.dataset.previousTitle;\r\n }\r\n\r\n if (currentShowLevel === this._menuLevels.third_level_menu) {\r\n this._showMenu(this._elements.third_level_menu);\r\n }\r\n\r\n if (currentShowLevel < this._menuLevels.second_level_menu) {\r\n this._showMenu(this._elements.first_level_menu);\r\n }\r\n }\r\n\r\n /**\r\n * Switch images on the side\r\n * @param {*} clickedElement\r\n */\r\n _switchImages(clickedElement) {\r\n let imageIndex = 0;\r\n\r\n if (clickedElement) {\r\n const el = clickedElement.querySelector('.menu-link');\r\n if (el) {\r\n imageIndex = el.getAttribute('data-image');\r\n }\r\n }\r\n\r\n this._elements.images.forEach((targ, i) => {\r\n if (i !== imageIndex) {\r\n targ.setAttribute('data-active', false);\r\n }\r\n });\r\n\r\n const image = this._elements.images[imageIndex];\r\n if (image) {\r\n image.setAttribute('data-active', true);\r\n }\r\n }\r\n}\r\n\r\nexport default SideMenu;\r\n","import scrollTo from 'utils/scrollTo';\r\n\r\nclass SubNavigation {\r\n constructor(options) {\r\n this._options = { ...SubNavigation.options, ...options };\r\n this._init();\r\n }\r\n\r\n static options = {\r\n pace: 350,\r\n };\r\n\r\n _cacheSelectors() {\r\n this._menu = document.querySelector('.sub-navigation');\r\n this._anchorLinks = [].slice.call(document.querySelectorAll('.anchor-link'));\r\n this._anchors = [].slice.call(document.querySelectorAll('[data-anchor]'));\r\n }\r\n\r\n _addEventListeners() {\r\n this._anchorLinks.forEach((anchorLink) =>\r\n anchorLink.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n const offset = this._menu.scrollHeight;\r\n const hash = anchorLink.href.split('#');\r\n /* eslint-disable-next-line */\r\n document.querySelector(`[id=\"${hash[1]}\"]`) &&\r\n scrollTo(document.querySelector(`[id=\"${hash[1]}\"]`), offset, this._options.pace);\r\n })\r\n );\r\n }\r\n\r\n _init() {\r\n this._cacheSelectors();\r\n this._addEventListeners();\r\n\r\n const anchorObserver = new IntersectionObserver(\r\n (entries) => {\r\n entries.forEach((anchor) => {\r\n const { isIntersecting } = anchor;\r\n if (isIntersecting) {\r\n this._menu\r\n .querySelector(`[href=\"#${anchor.target.id}\"]`)\r\n .setAttribute('data-active', 'true');\r\n } else {\r\n this._menu\r\n .querySelector(`[href=\"#${anchor.target.id}\"]`)\r\n .setAttribute('data-active', 'false');\r\n }\r\n });\r\n },\r\n {\r\n threshold: 0,\r\n }\r\n );\r\n\r\n this._anchors.forEach((anchor) => anchorObserver.observe(anchor));\r\n }\r\n}\r\n\r\nexport default SubNavigation;\r\n","class About {\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = { ...options };\r\n this._cacheSelectors();\r\n this._init();\r\n }\r\n\r\n _cacheSelectors() {\r\n this._triggers = document.querySelectorAll('.js-more');\r\n }\r\n\r\n _init() {\r\n this._triggers.forEach((trigger) => {\r\n trigger.addEventListener('click', (e) => {\r\n const _this = e.currentTarget;\r\n\r\n const panelGroup = _this.parentElement; //.about__more\r\n const panel = _this.nextElementSibling;\r\n\r\n if (panel.style.maxHeight) {\r\n panel.style.maxHeight = null;\r\n panelGroup.classList.remove('is-active');\r\n } else {\r\n panel.style.maxHeight = `${panel.scrollHeight}px`;\r\n panelGroup.classList.add('is-active');\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default About;\r\n","class Summary {\r\n static options = {\r\n timeout: 350,\r\n left: 37,\r\n right: 39,\r\n down: 40,\r\n };\r\n\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = { ...options };\r\n this._cacheSelectors();\r\n this._initialize();\r\n }\r\n\r\n _cacheSelectors() {\r\n this.tabbed = this._element;\r\n this.back = this.tabbed.parentNode.querySelector('.filters__back__button');\r\n if (this.back) {\r\n this.activeTitle = this.back.querySelector('span');\r\n }\r\n this.filters =\r\n this.tabbed.parentNode.parentNode.parentNode.parentNode.querySelector('.filters');\r\n this.tablist = this.tabbed.querySelector('ul.summary__nav');\r\n this.tabs = this.tablist.querySelectorAll('a');\r\n this.panels = this.tabbed.querySelectorAll(`[id^=\"${this._options.hash}\"]`);\r\n }\r\n\r\n _switchTab(oldTab, newTab) {\r\n newTab.focus();\r\n const index = Array.prototype.indexOf.call(this.tabs, newTab);\r\n const oldIndex = Array.prototype.indexOf.call(this.tabs, oldTab);\r\n this.panels[oldIndex].setAttribute('data-transition', this._options.animatein);\r\n this.panels[oldIndex].setAttribute('data-transition', '');\r\n if (this.filters !== null) {\r\n this.filters.setAttribute('data-collapsed', 'false');\r\n }\r\n const t = setTimeout(() => {\r\n newTab.removeAttribute('tabindex');\r\n newTab.setAttribute('aria-selected', 'true');\r\n this.panels[index].setAttribute('data-transition', this._options.animateout);\r\n if (this.back !== null) {\r\n this.activeTitle.textContent = '';\r\n this.activeTitle.textContent = newTab.querySelector('span').textContent;\r\n }\r\n oldTab.removeAttribute('aria-selected');\r\n oldTab.setAttribute('tabindex', '-1');\r\n this.panels[oldIndex].hidden = true;\r\n\r\n this.panels[index].hidden = false;\r\n clearTimeout(t);\r\n }, this._options.timeout);\r\n }\r\n\r\n _toggleTab(newTab, show) {\r\n if (!show) {\r\n newTab.blur();\r\n const index = Array.prototype.indexOf.call(this.tabs, newTab);\r\n this.filters.setAttribute('data-collapsed', 'true');\r\n //panels[oldIndex].setAttribute('data-transition', this._options.animatein)\r\n this.panels[index].setAttribute('data-transition', '');\r\n\r\n const t = setTimeout(() => {\r\n newTab.removeAttribute('aria-selected');\r\n newTab.setAttribute('tabindex', '-1');\r\n this.panels[index].hidden = true;\r\n clearTimeout(t);\r\n }, this._options.timeout);\r\n } else {\r\n newTab.focus();\r\n const index = Array.prototype.indexOf.call(this.tabs, newTab);\r\n this.filters.setAttribute('data-collapsed', 'false');\r\n newTab.removeAttribute('tabindex');\r\n newTab.setAttribute('aria-selected', 'true');\r\n if (typeof this.back !== 'undefined') {\r\n this.activeTitle.textContent = '';\r\n this.activeTitle.textContent = newTab.querySelector('span').textContent;\r\n }\r\n this.panels[index].setAttribute('data-transition', this._options.animateout);\r\n this.panels[index].hidden = false;\r\n }\r\n }\r\n\r\n _initialize() {\r\n this.tablist.setAttribute('role', 'tablist');\r\n\r\n Array.prototype.forEach.call(this.tabs, (tab, i) => {\r\n tab.setAttribute('role', 'tab');\r\n tab.setAttribute('id', `tab${i + 1}`);\r\n tab.setAttribute('tabindex', '-1');\r\n tab.parentNode.setAttribute('role', 'presentation');\r\n // eslint-disable-next-line complexity\r\n tab.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n const currentTab = this.tablist.querySelector('[aria-selected]');\r\n if (e.currentTarget !== currentTab && currentTab !== null) {\r\n this._switchTab(currentTab, e.currentTarget);\r\n } else if (currentTab !== null && this._options.mintabs === '0') {\r\n this._toggleTab(e.currentTarget, false);\r\n } else if (this._options.mintabs === '0') {\r\n this._toggleTab(e.currentTarget, true);\r\n }\r\n });\r\n\r\n // eslint-disable-next-line complexity\r\n tab.addEventListener('keydown', (e) => {\r\n const index = Array.prototype.indexOf.call(this.tabs, e.currentTarget);\r\n\r\n const dir =\r\n e.which === this._options.left\r\n ? index - 1\r\n : e.which === this._options.right\r\n ? index + 1\r\n : e.which === this._options.down\r\n ? 'down'\r\n : null;\r\n if (dir !== null) {\r\n e.preventDefault();\r\n // eslint-disable-next-line no-unused-expressions\r\n dir === 'down'\r\n ? this.panels[i].focus()\r\n : this.tabs[dir]\r\n ? this._switchTab(e.currentTarget, this.tabs[dir])\r\n : // eslint-disable-next-line no-void\r\n void 0;\r\n }\r\n });\r\n });\r\n if (this.back) {\r\n this.back.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n const currentTab = this.tablist.querySelector('[aria-selected]');\r\n currentTab.click();\r\n });\r\n }\r\n\r\n Array.prototype.forEach.call(this.panels, (panel, i) => {\r\n panel.setAttribute('role', 'tabpanel');\r\n panel.setAttribute('tabindex', '-1');\r\n //const id = panel.getAttribute('id');\r\n panel.setAttribute('aria-labelledby', this.tabs[i].id);\r\n panel.hidden = true;\r\n });\r\n\r\n const startTab = this.tablist.querySelector('[aria-selected]');\r\n if (startTab === null) {\r\n return;\r\n }\r\n startTab.focus();\r\n startTab.removeAttribute('tabindex');\r\n const start = Array.prototype.indexOf.call(this.tabs, startTab);\r\n this.panels[start].hidden = false;\r\n }\r\n}\r\n\r\nexport default Summary;\r\n","class Tabs {\r\n static options = {\r\n timeout: 350,\r\n left: 37,\r\n right: 39,\r\n down: 40,\r\n };\r\n\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = { ...options };\r\n this._cacheSelectors();\r\n this._initialize();\r\n }\r\n\r\n _cacheSelectors() {\r\n this.tabbed = this._element;\r\n this.back = this.tabbed.parentNode.querySelector('.filters__back__button');\r\n if (this.back) {\r\n this.activeTitle = this.back.querySelector('span');\r\n }\r\n this.filters =\r\n this.tabbed.parentNode.parentNode.parentNode.parentNode.querySelector('.filters');\r\n this.tablist = this.tabbed.querySelector('ul.tabs__nav');\r\n this.tabs = this.tablist.querySelectorAll('a');\r\n this.panels = this.tabbed.querySelectorAll(`[id^=\"${this._options.hash}\"]`);\r\n }\r\n\r\n _switchTab(oldTab, newTab) {\r\n newTab.focus();\r\n const index = Array.prototype.indexOf.call(this.tabs, newTab);\r\n const oldIndex = Array.prototype.indexOf.call(this.tabs, oldTab);\r\n this.panels[oldIndex].setAttribute('data-transition', this._options.animatein);\r\n this.panels[oldIndex].setAttribute('data-transition', '');\r\n if (this.filters !== null) {\r\n this.filters.setAttribute('data-collapsed', 'false');\r\n }\r\n const t = setTimeout(() => {\r\n newTab.removeAttribute('tabindex');\r\n newTab.setAttribute('aria-selected', 'true');\r\n this.panels[index].setAttribute('data-transition', this._options.animateout);\r\n if (this.back !== null) {\r\n this.activeTitle.textContent = '';\r\n this.activeTitle.textContent = newTab.querySelector('span').textContent;\r\n }\r\n oldTab.removeAttribute('aria-selected');\r\n oldTab.setAttribute('tabindex', '-1');\r\n this.panels[oldIndex].hidden = true;\r\n\r\n this.panels[index].hidden = false;\r\n clearTimeout(t);\r\n }, this._options.timeout);\r\n }\r\n\r\n _toggleTab(newTab, show) {\r\n if (!show) {\r\n newTab.blur();\r\n const index = Array.prototype.indexOf.call(this.tabs, newTab);\r\n this.filters.setAttribute('data-collapsed', 'true');\r\n //panels[oldIndex].setAttribute('data-transition', this._options.animatein)\r\n this.panels[index].setAttribute('data-transition', '');\r\n\r\n const t = setTimeout(() => {\r\n newTab.removeAttribute('aria-selected');\r\n newTab.setAttribute('tabindex', '-1');\r\n this.panels[index].hidden = true;\r\n clearTimeout(t);\r\n }, this._options.timeout);\r\n } else {\r\n newTab.focus();\r\n const index = Array.prototype.indexOf.call(this.tabs, newTab);\r\n this.filters.setAttribute('data-collapsed', 'false');\r\n newTab.removeAttribute('tabindex');\r\n newTab.setAttribute('aria-selected', 'true');\r\n if (typeof this.back !== 'undefined') {\r\n this.activeTitle.textContent = '';\r\n this.activeTitle.textContent = newTab.querySelector('span').textContent;\r\n }\r\n this.panels[index].setAttribute('data-transition', this._options.animateout);\r\n this.panels[index].hidden = false;\r\n }\r\n }\r\n\r\n _initialize() {\r\n this.tablist.setAttribute('role', 'tablist');\r\n\r\n Array.prototype.forEach.call(this.tabs, (tab, i) => {\r\n tab.setAttribute('role', 'tab');\r\n tab.setAttribute('id', `tab${i + 1}`);\r\n tab.setAttribute('tabindex', '-1');\r\n tab.parentNode.setAttribute('role', 'presentation');\r\n // eslint-disable-next-line complexity\r\n tab.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n const currentTab = this.tablist.querySelector('[aria-selected]');\r\n if (e.currentTarget !== currentTab && currentTab !== null) {\r\n this._switchTab(currentTab, e.currentTarget);\r\n } else if (currentTab !== null && this._options.mintabs === '0') {\r\n this._toggleTab(e.currentTarget, false);\r\n } else if (this._options.mintabs === '0') {\r\n this._toggleTab(e.currentTarget, true);\r\n }\r\n });\r\n\r\n // eslint-disable-next-line complexity\r\n tab.addEventListener('keydown', (e) => {\r\n const index = Array.prototype.indexOf.call(this.tabs, e.currentTarget);\r\n\r\n const dir =\r\n e.which === this._options.left\r\n ? index - 1\r\n : e.which === this._options.right\r\n ? index + 1\r\n : e.which === this._options.down\r\n ? 'down'\r\n : null;\r\n if (dir !== null) {\r\n e.preventDefault();\r\n // eslint-disable-next-line no-unused-expressions\r\n dir === 'down'\r\n ? this.panels[i].focus()\r\n : this.tabs[dir]\r\n ? this._switchTab(e.currentTarget, this.tabs[dir])\r\n : // eslint-disable-next-line no-void\r\n void 0;\r\n }\r\n });\r\n });\r\n if (this.back) {\r\n this.back.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n const currentTab = this.tablist.querySelector('[aria-selected]');\r\n currentTab.click();\r\n });\r\n }\r\n\r\n Array.prototype.forEach.call(this.panels, (panel, i) => {\r\n panel.setAttribute('role', 'tabpanel');\r\n panel.setAttribute('tabindex', '-1');\r\n //const id = panel.getAttribute('id');\r\n panel.setAttribute('aria-labelledby', this.tabs[i].id);\r\n panel.hidden = true;\r\n });\r\n\r\n const startTab = this.tablist.querySelector('[aria-selected]');\r\n if (startTab === null) {\r\n return;\r\n }\r\n startTab.focus();\r\n startTab.removeAttribute('tabindex');\r\n const start = Array.prototype.indexOf.call(this.tabs, startTab);\r\n this.panels[start].hidden = false;\r\n }\r\n}\r\n\r\nexport default Tabs;\r\n","import { disableBodyScroll, enableBodyScroll, clearAllBodyScrollLocks } from 'body-scroll-lock';\r\n\r\nclass UserMenu {\r\n /**\r\n * Base state\r\n */\r\n _state = {\r\n open: false,\r\n scrollTop: 0,\r\n };\r\n\r\n static options = {\r\n timeout: 450,\r\n };\r\n\r\n constructor(options = {}) {\r\n this._options = { ...options };\r\n this._elements = Array.prototype.slice.call(document.querySelectorAll('.side-toggle'), 0);\r\n this._target = document.querySelector('#side_menu');\r\n this._main = document.querySelector('#main');\r\n this._body = document.querySelector('#body');\r\n this._html = document.documentElement;\r\n if (this._body.getAttribute('data-edit') === 'true') {\r\n return;\r\n }\r\n this._navigation = this._target.querySelector('.navigation-list');\r\n this._backButton = this._target.querySelector('.side-menu__back__button');\r\n this._closeButtons = [...document.querySelectorAll('.close-sidemenu')];\r\n this._contactButtons = [...document.querySelectorAll('.contact-button')];\r\n\r\n this._closeButtons.forEach((element) => {\r\n element.onclick = () => {\r\n this.closeSideMenu(element);\r\n };\r\n });\r\n\r\n this._contactButtons.forEach((element) => {\r\n if (element.getAttribute('href').indexOf('#') > -1) {\r\n element.classList.add('anchor-link');\r\n } else {\r\n element.classList.remove('anchor-link');\r\n }\r\n });\r\n\r\n this._elements.forEach((element) => {\r\n element.onclick = () => {\r\n this._state.open = !this._state.open;\r\n if (!this._state.open) {\r\n // closing menu\r\n this.closeSideMenu(element);\r\n } else {\r\n // opening menu\r\n this.togglemenu(this, element);\r\n }\r\n };\r\n });\r\n }\r\n _enableScroll() {\r\n this._body.scrollTop = this._html.scrollTop = this._state.scrollTop;\r\n this._state.scrollTop = 0;\r\n enableBodyScroll(this._body);\r\n this._html.setAttribute('data-overflow', true);\r\n }\r\n\r\n _disableScroll() {\r\n this._state.scrollTop = this._body.scrollTop || this._html.scrollTop;\r\n disableBodyScroll(this._body);\r\n this._html.setAttribute('data-overflow', false);\r\n }\r\n\r\n closeSideMenu(element) {\r\n this._state.open = false;\r\n this.togglemenu(this, element);\r\n }\r\n\r\n togglemenu(t, el) {\r\n el.setAttribute('aria-expanded', t._state.open);\r\n t._target.setAttribute('data-open', t._state.open);\r\n t._main.setAttribute('data-side-open', t._state.open);\r\n clearAllBodyScrollLocks();\r\n if (t._state.open) {\r\n this._disableScroll();\r\n } else {\r\n this._enableScroll();\r\n }\r\n }\r\n}\r\n\r\nexport default UserMenu;\r\n","import config from '../../config';\r\n\r\n/**\r\n * Checks if the 'window.location.host' is 'localhost:3003'\r\n * @type {boolean}\r\n */\r\nexport const isDeveloperMode = window.location.host === `localhost:${config.browsersync.port}`;\r\n","/* eslint-disable */\r\n// TODO: check es lint errors\r\n\r\nimport FormItem from 'form/FormItem';\r\nimport scrollTo from 'utils/scrollTo';\r\nimport Observer from 'utils/Observer';\r\nimport ScriptLoader from 'utils/ScriptLoader';\r\n\r\nclass Form {\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = options || {};\r\n\r\n if (!this._element) {\r\n return;\r\n }\r\n\r\n // Class params\r\n this._formItems = [];\r\n\r\n //this._initialize();\r\n\r\n this._options.recaptchaUrl\r\n ? ScriptLoader.load(this._options.recaptchaUrl).then(() => this._initialize())\r\n : this._initialize();\r\n }\r\n\r\n /**\r\n * Initialize form component\r\n * @memberof Form\r\n * @static\r\n * @private\r\n */\r\n _initialize() {\r\n // Disable native form validation\r\n this._element.setAttribute('novalidate', 'novalidate');\r\n\r\n this._initializeFormItems();\r\n\r\n // find submit buttons\r\n this._buttons = Array.from(\r\n this._element.querySelectorAll('[type=\"submit\"], button:not([type])')\r\n );\r\n\r\n // toggle submit\r\n this._options.disableSubmitUntilValid && this._toggleSubmit();\r\n\r\n // bind events\r\n this._bindEvents();\r\n }\r\n\r\n /**\r\n * Bind events for the module\r\n * @memberof Form\r\n * @static\r\n * @private\r\n */\r\n _bindEvents() {\r\n this._element.addEventListener('submit', (e) => this._onSubmit(e));\r\n this._element.addEventListener('invalid', (e) => this._onInvalid(e));\r\n\r\n // if there is a submit prevent default html5 validation messages and set custom ones\r\n this._buttons.forEach((button) => {\r\n button.addEventListener('click', (e) => this._onButtonClick(e));\r\n });\r\n\r\n // attach change listeners when we keep the submit disabled until valid\r\n this._options.disableSubmitUntilValid &&\r\n this._formItems.forEach((formItem) => {\r\n Observer.subscribe(formItem, 'change', () => this._toggleSubmit());\r\n });\r\n }\r\n\r\n /**\r\n * Initialize FormItem modules for the inputs\r\n * @memberof Form\r\n * @static\r\n * @private\r\n */\r\n _initializeFormItems() {\r\n let elements = this._element.querySelectorAll('input,select,textarea');\r\n\r\n for (let i = 0, length = elements.length; i < length; i++) {\r\n let element = elements[i],\r\n type = element.getAttribute('type');\r\n\r\n if (type !== 'hidden') {\r\n let formItem = new FormItem(element);\r\n\r\n this._formItems.push(formItem);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Gets the instance of FormItem related to the element\r\n * @memberof Form\r\n * @static\r\n * @public\r\n */\r\n getFormItemByElement(element) {\r\n for (let formItem of this._formItems) {\r\n if (formItem.getItem() === element) {\r\n return formItem;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Disable or enable submit button\r\n * @memberof Form\r\n * @static\r\n * @private\r\n */\r\n _toggleSubmit() {\r\n let valid = this.isValid();\r\n\r\n // disable submits\r\n this._buttons.forEach((button) => {\r\n valid ? button.removeAttribute('disabled') : button.setAttribute('disabled', 'disabled');\r\n });\r\n }\r\n\r\n _onButtonClick(e) {\r\n const captcha = window.grecaptcha;\r\n\r\n if (this.isValid()) {\r\n if (captcha && this._options.recaptchaUrl) {\r\n e.preventDefault();\r\n captcha.getResponse() !== '' ? this.submit() : captcha.reset();\r\n }\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n this._formItems.forEach((formItem) => formItem.validate());\r\n scrollTo(this._element.querySelector('[aria-invalid=true]'), 100); // scroll to the first invalid element\r\n }\r\n\r\n /**\r\n * Fires when the form is submitted.\r\n * @memberof Form\r\n * @static\r\n * @private\r\n */\r\n _onSubmit(e) {\r\n let preventDefault =\r\n this._options.preventDefault !== true ? false : this._options.preventDefault;\r\n if (preventDefault) {\r\n e.preventDefault();\r\n }\r\n Observer.publish(this, 'submitForm', this);\r\n }\r\n\r\n /**\r\n * Fires when the form is invalid.\r\n * @memberof Form\r\n * @static\r\n * @private\r\n */\r\n _onInvalid() {\r\n Observer.publish(this, 'invalidForm', this);\r\n }\r\n\r\n /**\r\n * Checks each form item for its validity\r\n * @memberof Form\r\n * @returns {Boolean} Valid state of this form\r\n * @static\r\n * @public\r\n */\r\n isValid(items = this._formItems) {\r\n /*return items.reduce((valid, formItem) => {\r\n return (formItem.isValid() || formItem.isIgnored()) && valid;\r\n }, true);*/\r\n\r\n return items\r\n .filter((formItem) => !formItem.isHidden())\r\n .every((formItem) => formItem.isValid() || formItem.isIgnored());\r\n }\r\n\r\n submit() {\r\n this._element.submit();\r\n }\r\n\r\n getForm() {\r\n return this;\r\n }\r\n}\r\n\r\nexport default Form;\r\n/* eslint-enable */\r\n","/* eslint-disable */\r\n// Todo: add async validation\r\n// Todo: handle radio buttons (validation) as a group instead of separate form-items\r\n// TODO: check es lint errors\r\nimport Observer from 'utils/Observer';\r\nimport { closest, insertAfter } from 'utils/DOMHelpers';\r\n\r\n//import FormField from 'form/FormField';\r\n\r\nconst DATA_FILTER_ATTR = 'data-filter-pattern',\r\n DATA_VALID_ATTR = 'aria-invalid',\r\n DATA_VALID_VAL = 'false',\r\n DATA_INVALID_VAL = 'true',\r\n DATA_MATCHES_ATTR = 'data-matches',\r\n DATA_ERROR_ATTR = 'data-error',\r\n DATA_ERROR_CLASS = 'form-item-error',\r\n DATA_REQUIRED_ATTR = 'data-required',\r\n DATA_FOCUS = 'data-focus';\r\n\r\nclass FormItem {\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = options;\r\n\r\n // Form items also create a form field, to enable the use of data/ApiValue anywhere\r\n //new FormField(this._element, options);\r\n\r\n this._initialize();\r\n }\r\n\r\n /**\r\n * Initialize form-item component\r\n * @static\r\n * @private\r\n */\r\n\r\n _initialize() {\r\n this._label = null;\r\n\r\n // Has an existing error label\r\n if (\r\n this._element.nextElementSibling &&\r\n this._element.nextElementSibling.classList.contains(DATA_ERROR_CLASS)\r\n ) {\r\n this._label = this._element.nextElementSibling;\r\n }\r\n\r\n // Regexes\r\n this._validateRegex = new RegExp(this._element.getAttribute('pattern'));\r\n if (this._element.hasAttribute(DATA_FILTER_ATTR)) {\r\n this._filterRegex = new RegExp(this._element.getAttribute(DATA_FILTER_ATTR), 'g');\r\n }\r\n\r\n // Element to match value against\r\n this._matchingElement = this._element.hasAttribute(DATA_MATCHES_ATTR)\r\n ? document.getElementById(this._element.getAttribute(DATA_MATCHES_ATTR))\r\n : null;\r\n\r\n // Messages\r\n this._errorMessage = this._element.getAttribute(DATA_ERROR_ATTR);\r\n this._requiredMessage = this._element.getAttribute(DATA_REQUIRED_ATTR) || 'Verplicht veld';\r\n\r\n // Bind events\r\n this._bindEvents();\r\n }\r\n\r\n /**\r\n * Bind events for the module\r\n * @static\r\n * @private\r\n */\r\n\r\n _bindEvents() {\r\n this._element.addEventListener('change', (e) => {\r\n if (e.target.value !== '') {\r\n this._onChange();\r\n }\r\n });\r\n\r\n this._element.addEventListener('focus', (e) => {\r\n this._onFocus();\r\n });\r\n\r\n this._element.addEventListener('focusout', (e) => {\r\n this._onFocusOut();\r\n });\r\n\r\n this._element.addEventListener('keyup', (e) => {\r\n this._onKeyUp();\r\n });\r\n\r\n this._element.addEventListener('paste', (e) => {\r\n this._onPaste();\r\n });\r\n\r\n document.addEventListener('DOMContentLoaded', (e) => {\r\n this._element._onLoad();\r\n });\r\n\r\n this._element.addEventListener('input', (e) => this._onInput());\r\n\r\n // Also bind to the element we match against\r\n this._matchingElement &&\r\n this._matchingElement.addEventListener('input', this._onMatchingElementInput.bind(this));\r\n }\r\n\r\n /**\r\n * Validate this form-item\r\n * @static\r\n * @private\r\n */\r\n\r\n _onLoad() {\r\n this.setTextarea();\r\n this.validate();\r\n Observer.publish(document, 'DOMContentLoaded');\r\n }\r\n\r\n _onChange() {\r\n this.setTextarea();\r\n this.validate();\r\n Observer.publish(this, 'change');\r\n }\r\n\r\n _onFocus() {\r\n this.setFocus();\r\n Observer.publish(this, 'focus');\r\n }\r\n\r\n _onFocusOut() {\r\n this.setEmpty();\r\n Observer.publish(this, 'focusout');\r\n }\r\n\r\n _onKeyUp() {\r\n this.setTextarea();\r\n Observer.publish(this, 'keyup');\r\n }\r\n\r\n _onPaste() {\r\n this.setTextarea();\r\n Observer.publish(this, 'paste');\r\n }\r\n\r\n /**\r\n * Validate this form-item (only to valid, not invalid)\r\n * @static\r\n * @private\r\n */\r\n\r\n _onInput() {\r\n this.isValid() && this.setValid();\r\n Observer.publish(this, 'change');\r\n }\r\n\r\n /**\r\n * Validate this form-item when the matching element input changes\r\n * @static\r\n * @public\r\n */\r\n\r\n _onMatchingElementInput() {\r\n this._element.value && this.validate();\r\n }\r\n\r\n /**\r\n * Public function to set the validation status of this form-item\r\n * @static\r\n * @public\r\n */\r\n\r\n validate() {\r\n if (this.isIgnored()) {\r\n return;\r\n }\r\n this.isValid() ? this.setValid() : this.setInvalid();\r\n }\r\n\r\n /**\r\n * Checks this form item for its validity\r\n * @returns {Boolean} Valid state of this form item\r\n * @static\r\n * @public\r\n */\r\n\r\n isValid() {\r\n if (this._filterRegex) {\r\n // When a filter regex is given, filter first then check the validate regex\r\n let filteredValue = this._element.value.replace(this._filterRegex, '');\r\n return this._validateRegex.test(filteredValue);\r\n }\r\n\r\n if (this._matchingElement) {\r\n return this._element.value === this._matchingElement.value && this._element.value !== '';\r\n }\r\n\r\n // Return the html5 form item valid state\r\n return this._element.checkValidity();\r\n }\r\n\r\n /**\r\n * Whether this input should be ignored when validating the form, because it's not required AND empty\r\n * @returns {Boolean} Required\r\n * @static\r\n * @public\r\n */\r\n\r\n isIgnored() {\r\n return this._element.value === '' && !this._element.hasAttribute('required');\r\n }\r\n\r\n /**\r\n * Whether this input should be ignored when the parent container is hidden\r\n * @returns {Boolean} Required\r\n * @static\r\n * @public\r\n */\r\n\r\n isHidden() {\r\n return !!closest(this._element, '[aria-hidden=\"true\"]');\r\n }\r\n\r\n /**\r\n * Set state of this form-item\r\n * @static\r\n * @public\r\n */\r\n\r\n setValid() {\r\n if (!this._label && this._element.type === 'radio') {\r\n this._label = this._getRadioErrorLabel();\r\n }\r\n\r\n if (this._label) {\r\n this._label.parentNode.removeChild(this._label);\r\n this._label = null;\r\n }\r\n\r\n if (this._element.value) {\r\n // We entered a valid value\r\n this._element.setAttribute(DATA_VALID_ATTR, DATA_VALID_VAL);\r\n } else {\r\n // We entered nothing, but the field wasn't required\r\n this._element.removeAttribute(DATA_VALID_ATTR);\r\n }\r\n }\r\n\r\n /**\r\n * Set invalid state of this form-item\r\n * @static\r\n * @public\r\n */\r\n\r\n setInvalid() {\r\n let error;\r\n\r\n // Set element state to invalid\r\n this._element.setAttribute(DATA_VALID_ATTR, DATA_INVALID_VAL);\r\n // Empty && invalid -> Fields is not filled, required?\r\n // Just invalid -> Format doesn't match requested format\r\n if (this._element.type !== 'radio' && this._element.value) {\r\n error = this._errorMessage;\r\n } else if (this._element.hasAttribute('required')) {\r\n error = this._requiredMessage;\r\n }\r\n\r\n // If our error message is empty, don't attach an error element\r\n // The timeout enables other form events to be handled before displaying the error messages\r\n error && setTimeout(() => this._setErrorMessage(error), 1);\r\n }\r\n\r\n /**\r\n * Set form-item focus state on focus\r\n * @static\r\n * @public\r\n */\r\n\r\n setFocus() {\r\n this._element.parentNode.setAttribute(DATA_FOCUS, DATA_INVALID_VAL);\r\n }\r\n\r\n /**\r\n * Keep focus state for non empty form-item\r\n * @static\r\n * @public\r\n */\r\n setEmpty() {\r\n if (this._element.value) {\r\n this._element.parentNode.setAttribute(DATA_FOCUS, DATA_INVALID_VAL);\r\n } else {\r\n this._element.parentNode.setAttribute(DATA_FOCUS, DATA_VALID_VAL);\r\n }\r\n }\r\n\r\n setTextarea() {\r\n if (this._element.type === 'textarea') {\r\n let compStyles = window.getComputedStyle(this._element);\r\n const lineheight = parseInt(compStyles.getPropertyValue('line-height'), 10);\r\n const fontsize = parseInt(compStyles.getPropertyValue('font-size'), 10);\r\n const paddingtop = parseInt(compStyles.getPropertyValue('padding-top'), 10);\r\n const paddingbottom = parseInt(compStyles.getPropertyValue('padding-bottom'), 10);\r\n const lines = this._element.value.split('\\n').length;\r\n this._element.style.height =\r\n lines * lineheight + lineheight + paddingtop + paddingbottom + 'px';\r\n }\r\n }\r\n\r\n /**\r\n * Retrieve the error label for a radio type input (grouped)\r\n * @returns {Element}\r\n * @private\r\n */\r\n _getRadioErrorLabel() {\r\n let parent = closest(this._element, '.form-items-radio');\r\n\r\n if (parent) {\r\n return parent.querySelector('.' + DATA_ERROR_CLASS);\r\n }\r\n }\r\n\r\n /**\r\n * Update or create the error message\r\n * @param {String} error - The error message to display\r\n * @private\r\n *\r\n */\r\n _setErrorMessage(error) {\r\n if (!this._label && this._element.type === 'radio') {\r\n this._label = this._getRadioErrorLabel();\r\n }\r\n\r\n // Update the existing error element, if there is one\r\n if (this._label) {\r\n this._label.textContent = error;\r\n return; // The bouncer\r\n }\r\n\r\n // Create a new error element\r\n this._label = document.createElement('label');\r\n this._label.setAttribute('for', this._element.getAttribute('id'));\r\n this._label.className = DATA_ERROR_CLASS;\r\n this._label.textContent = error;\r\n\r\n // Append it\r\n if (this._element.type === 'checkbox') {\r\n this._element.parentNode.appendChild(this._label);\r\n } else if (this._element.type === 'radio') {\r\n closest(this._element, '.form-items-radio').appendChild(this._label);\r\n } else {\r\n insertAfter(this._label, this._element);\r\n }\r\n }\r\n\r\n /**\r\n * Get the element for this form-item.\r\n * @return {Element}\r\n * @public\r\n *\r\n */\r\n\r\n getItem() {\r\n return this._element;\r\n }\r\n}\r\n\r\nexport default FormItem;\r\n/* eslint-enable */\r\n","/* eslint-disable */\r\n// TODO: check es lint errors\r\nclass JumpList {\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = { ...JumpList.options, ...options };\r\n\r\n // Bind\r\n this._handleChange = this._handleChange.bind(this);\r\n\r\n // Events\r\n this._element.addEventListener('change', this._handleChange);\r\n }\r\n\r\n _handleChange(event) {\r\n try {\r\n this._element.form.submit();\r\n } catch (ex) {}\r\n }\r\n}\r\n\r\nexport default JumpList;\r\n/* eslint-enable */\r\n","// Reference our components so they get included\r\nimport { initializeComponents } from 'utils/initializeComponents';\r\n\r\nconst ready = () => {\r\n if (document.readyState === 'interactive' || document.readyState === 'complete') {\r\n return Promise.resolve();\r\n }\r\n\r\n return new Promise((resolve) => document.addEventListener('DOMContentLoaded', resolve));\r\n};\r\n\r\nready().then(() => initializeComponents(document));\r\n\r\nwindow.reinit = function () {\r\n initializeComponents(document);\r\n};\r\n","/* eslint-disable */\r\n// TODO: check es lint errors\r\nconst animate = function (\r\n options = { from: 0, to: 1, duration: 1000, cb: () => {}, ease: (t) => t }\r\n) {\r\n const { from, to, duration, cb, ease } = options;\r\n const delta = to - from;\r\n\r\n let time;\r\n\r\n return new Promise((resolve) => {\r\n const tick = (d) => {\r\n if (!time) {\r\n time = d;\r\n }\r\n\r\n const f = (d - time) / duration;\r\n\r\n if (f >= 1) {\r\n cb(to);\r\n resolve();\r\n return;\r\n }\r\n\r\n cb(from + ease(f) * delta);\r\n\r\n window.requestAnimationFrame(tick);\r\n };\r\n\r\n window.requestAnimationFrame ? window.requestAnimationFrame(tick) : cb(to);\r\n });\r\n};\r\n\r\nexport default animate;\r\n/* eslint-enable */\r\n","/* eslint-disable */\r\n\r\nimport Observer from 'utils/Observer';\r\n\r\n/**\r\n * Class Controller.\r\n * @class\r\n */\r\nclass Controller {\r\n /**\r\n * Make a new Controller.\r\n * @constructs\r\n */\r\n constructor() {\r\n this._toggles = [];\r\n this._groupHandlers = [];\r\n }\r\n\r\n /**\r\n * Add the Toggle to the array and subscribe with the Observer for optional group handling\r\n * @public\r\n * @param toggle\r\n */\r\n register(toggle) {\r\n this._toggles.push(toggle);\r\n\r\n if (toggle.group) {\r\n let handleGroupFn = (toggle) => this._handleGroup(toggle);\r\n\r\n // Subscribe and store the groupHandler in a way we can retrieve it with a toggle reference\r\n Observer.subscribe(toggle, toggle.activeEvent, handleGroupFn);\r\n this._groupHandlers[this._toggles.indexOf(toggle)] = handleGroupFn;\r\n }\r\n }\r\n\r\n /**\r\n * Unregister the toggle from the array. Useful for unloading the toggle module.\r\n * @param toggle\r\n */\r\n unregister(toggle) {\r\n // retrieve index of the given toggle\r\n let index = this._toggles.indexOf(toggle);\r\n\r\n this._toggles.splice(index, 1);\r\n\r\n if (toggle.group) {\r\n // Retrieve the respective groupHandler function\r\n let handleGroupFn = this._groupHandlers[index];\r\n\r\n // Unsubscribe and remove the groupHandler\r\n Observer.unsubscribe(toggle, toggle.activeEvent, handleGroupFn);\r\n this._groupHandlers.splice(index, 1);\r\n }\r\n }\r\n\r\n /**\r\n * Helper method for exposing Toggles.\r\n * @public\r\n * @param {String} targets\r\n */\r\n getToggles(targets) {\r\n if (!targets) {\r\n return [];\r\n }\r\n\r\n return targets.split(',').map((element) => {\r\n return this._getToggle(element);\r\n });\r\n }\r\n\r\n /**\r\n * Helper method for getting a toggle by id.\r\n * @private\r\n * @param {String} element\r\n */\r\n _getToggle(element) {\r\n return this._toggles.find((toggle) => toggle.id === element);\r\n }\r\n\r\n /**\r\n * If a toggle is a group member deactivate the active toggle within the same group first.\r\n * @private\r\n * @param toggle\r\n */\r\n _handleGroup(toggle) {\r\n this._toggles.forEach((item) => {\r\n if (item !== toggle && item.group === toggle.group && item.active) {\r\n item.deactivate();\r\n }\r\n });\r\n }\r\n}\r\n\r\n// export as a Singleton\r\nexport default new Controller();\r\n","/* eslint-disable */\r\nimport Controller from 'toggle/Controller';\r\nimport Observer from 'utils/Observer';\r\n\r\n/**\r\n * Default values for attribute and states.\r\n * @constant\r\n */\r\nconst ATTRIBUTE = 'data-toggle-active',\r\n ACTIVE_STATE = 'true',\r\n INACTIVE_STATE = 'false',\r\n ACTIVE_EVENT = 'active',\r\n INACTIVE_EVENT = 'inactive';\r\n\r\n/**\r\n * Class Toggle.\r\n * @class\r\n */\r\nclass Toggle {\r\n /**\r\n * Make a new Toggle.\r\n * @constructs\r\n * @param element\r\n * @param options\r\n */\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = options || {};\r\n this._options.attribute = this._options.attribute || ATTRIBUTE;\r\n this._options.activeState = this._options.activeState || ACTIVE_STATE;\r\n this._options.inActiveState = this._options.inActiveState || INACTIVE_STATE;\r\n this._id = this._element.id;\r\n this.active = false;\r\n\r\n this._initialize();\r\n }\r\n\r\n /**\r\n * Initialize\r\n * @private\r\n */\r\n _initialize() {\r\n let attr = this._element.getAttribute(this._options.attribute);\r\n\r\n if (!attr) {\r\n this.attribute = this._options.inActiveState;\r\n } else if (attr === this._options.activeState) {\r\n this.active = true;\r\n }\r\n\r\n Controller.register(this);\r\n }\r\n\r\n switch() {\r\n !this.active ? this.activate() : this.deactivate();\r\n }\r\n\r\n /**\r\n * Activating the toggle by changing the attribute active value.\r\n * @public\r\n */\r\n activate() {\r\n this.attribute = this._options.activeState;\r\n this.active = true;\r\n Observer.publish(this, ACTIVE_EVENT, this);\r\n }\r\n\r\n /**\r\n * Deactivating the toggle by changing the attribute inactive value.\r\n * @public\r\n */\r\n deactivate() {\r\n this.attribute = this._options.inActiveState;\r\n this.active = false;\r\n Observer.publish(this, INACTIVE_EVENT, this);\r\n }\r\n\r\n /**\r\n * Set te active attribute on the DOM element.\r\n * @public\r\n * @param {String} name\r\n */\r\n set attribute(name) {\r\n this._element.setAttribute(this._options.attribute, name);\r\n }\r\n\r\n /**\r\n * Expose the id.\r\n * @public\r\n */\r\n get id() {\r\n return this._id;\r\n }\r\n\r\n /**\r\n * Expose the group name.\r\n * @public\r\n */\r\n get group() {\r\n return this._options.group;\r\n }\r\n\r\n /**\r\n * Expose the toggle active event.\r\n * @public\r\n */\r\n get activeEvent() {\r\n return ACTIVE_EVENT;\r\n }\r\n\r\n /**\r\n * Expose the toggle inactive event.\r\n * @public\r\n */\r\n get inActiveEvent() {\r\n return INACTIVE_EVENT;\r\n }\r\n\r\n /**\r\n * Unload and reset everything if conditions no longer apply.\r\n * @method unload\r\n * @public\r\n */\r\n unload() {\r\n Controller.unregister(this);\r\n this._element.removeAttribute(this._options.attribute);\r\n }\r\n}\r\n\r\nexport default Toggle;\r\n","/* eslint-disable */\r\nimport Controller from 'toggle/Controller';\r\nimport Toggle from 'toggle/Toggle';\r\n\r\n/**\r\n * Default values event and method\r\n * @constant\r\n */\r\nconst EVENT = 'click',\r\n METHOD = 'switch';\r\n\r\nclass Trigger {\r\n /**\r\n * Make a new Trigger.\r\n * @constructs\r\n * @param element\r\n * @param options\r\n */\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = options;\r\n this._toggle = null;\r\n this._targets = null;\r\n this._triggerFn = null;\r\n\r\n this._intitialize();\r\n }\r\n\r\n /**\r\n * Initialize\r\n * @private\r\n */\r\n _intitialize() {\r\n // get optional event and method from options or use default\r\n let event = this._options.event || EVENT;\r\n\r\n if (this._options.toggle) {\r\n this._toggle = new Toggle(this._element, this._options);\r\n }\r\n\r\n // if there is a element bind events\r\n if (this._element) {\r\n this._triggerFn = (e) => this._trigger(e);\r\n this._element.addEventListener(event, this._triggerFn);\r\n }\r\n }\r\n\r\n /**\r\n * Handles trigger event\r\n * @param e\r\n * @private\r\n */\r\n _trigger(e) {\r\n let method = this._options.method || METHOD,\r\n preventDefault = this._options.preventDefault !== false ? true : this._options.preventDefault;\r\n\r\n if (e.type === 'click' && preventDefault) {\r\n e.preventDefault();\r\n }\r\n\r\n if (!this._targets) {\r\n this._setTargets();\r\n }\r\n this._targets.forEach((element, index) => {\r\n // check if there are multiple methods otherwise use one\r\n let arr = method.split(','),\r\n i = arr.length > 1 ? index : 0;\r\n\r\n element[method.split(',')[i]]();\r\n });\r\n }\r\n\r\n /**\r\n * Get the toggle targets\r\n * @private\r\n */\r\n _setTargets() {\r\n // get targets through controller\r\n this._targets = Controller.getToggles(this._options.targets);\r\n if (this._toggle) {\r\n this._targets.push(this._toggle);\r\n }\r\n }\r\n\r\n /**\r\n * Expose targets\r\n * @public\r\n */\r\n getTargets() {\r\n return this._targets;\r\n }\r\n\r\n /**\r\n * Unload and reset everything if conditions no longer apply.\r\n * @method unload\r\n * @public\r\n */\r\n unload() {\r\n if (this._options.toggle) {\r\n this._toggle.unload();\r\n }\r\n\r\n if (this._element) {\r\n // get optional event and method from options or use default\r\n let event = this._options.event || EVENT;\r\n\r\n this._element.removeEventListener(event, this._triggerFn);\r\n }\r\n }\r\n}\r\n\r\nexport default Trigger;\r\n","/* eslint-disable */\r\nimport { reflow, setPrefixedStyle } from 'utils/DOMHelpers';\r\nimport Observer from 'utils/Observer';\r\nimport Toggle from 'toggle/Toggle';\r\n\r\nconst TRANSITION_PROP = 'height';\r\nconst TRANSITION_END_EVENT = 'transitionend';\r\nconst COLLAPSIBLE_MOTION_CLASS = 'collapsible-transition';\r\n\r\n/**\r\n * Class Collapsible.\r\n * @class\r\n */\r\nclass Collapsible {\r\n /**\r\n * Make a new Collapsible.\r\n * @constructs\r\n * @param element\r\n * @param options\r\n */\r\n constructor(element, options) {\r\n this._element = element;\r\n this._options = options || {};\r\n\r\n // check for inner element\r\n this._collapsingElement = this._createCollapsingElement();\r\n\r\n this._toggle = new Toggle(element, this._options);\r\n\r\n this._initialize();\r\n }\r\n\r\n /**\r\n * Initialize\r\n * @private\r\n */\r\n _initialize() {\r\n this._expand = this._expand.bind(this);\r\n this._collapse = this._collapse.bind(this);\r\n this._onTransitionEnd = this._onTransitionEnd.bind(this);\r\n\r\n // bind listeners\r\n Observer.subscribe(this._toggle, this._toggle.activeEvent, this._expand);\r\n Observer.subscribe(this._toggle, this._toggle.inActiveEvent, this._collapse);\r\n this._collapsingElement.addEventListener(TRANSITION_END_EVENT, this._onTransitionEnd);\r\n\r\n this._setHeight(0);\r\n\r\n if (this._toggle.active) {\r\n this._expand();\r\n }\r\n }\r\n\r\n /**\r\n * Setup the containing element, which sets the Collapsible height\r\n * @returns {Element} - Returns the newly created wrapper element\r\n * @private\r\n */\r\n _createCollapsingElement() {\r\n const collapsingElement = document.createElement('div');\r\n\r\n collapsingElement.classList.add(COLLAPSIBLE_MOTION_CLASS);\r\n\r\n this._element.parentNode.insertBefore(collapsingElement, this._element);\r\n collapsingElement.appendChild(this._element);\r\n\r\n return collapsingElement;\r\n }\r\n\r\n /**\r\n * Check if Toggle is active and either expand or collapse.\r\n * @returns {number} - Returns the height the collapsible would have\r\n * @private\r\n */\r\n _getHeight() {\r\n return this._element.offsetHeight;\r\n }\r\n\r\n /**\r\n * Set height, while skipping transitions\r\n * @param {String} value - the height style value to set the Collapsible to\r\n * @private\r\n */\r\n _setHeight(value) {\r\n // Disable transitions\r\n setPrefixedStyle(this._collapsingElement, 'transition', 'none');\r\n\r\n // Set height\r\n this._collapsingElement.style.height = value;\r\n reflow(this._collapsingElement);\r\n\r\n // Enable transitions\r\n setPrefixedStyle(this._collapsingElement, 'transition', '');\r\n }\r\n\r\n /**\r\n * Set the height to the amount of pixels, or directly set it to auto when transitionend event is unsupported\r\n * @private\r\n */\r\n _expand() {\r\n if (this._element.id === 'address-toggle') {\r\n document.querySelector('.address__trigger__arrow').setAttribute('data-expand', true);\r\n }\r\n\r\n this._collapsingElement.style.height = this._getHeight() + 'px';\r\n }\r\n\r\n /**\r\n * Get the height and transition this height to 0\r\n * @private\r\n */\r\n _collapse() {\r\n if (this._element.id === 'address-toggle') {\r\n document.querySelector('.address__trigger__arrow').setAttribute('data-expand', false);\r\n }\r\n\r\n this._setHeight(this._getHeight() + 'px');\r\n this._collapsingElement.style.height = 0;\r\n }\r\n\r\n /**\r\n * Set height to auto when the transition has ended, to make sure the Collapsible stays as responsvie as possible\r\n * @param {Event} e - Event object\r\n * @private\r\n */\r\n _onTransitionEnd(e) {\r\n if (e.propertyName === TRANSITION_PROP && this._toggle.active) {\r\n this._setHeight('auto');\r\n }\r\n }\r\n\r\n /**\r\n * Unload and reset everything if conditions no longer apply.\r\n */\r\n unload() {\r\n this._element.removeAttribute('style');\r\n\r\n Observer.unsubscribe(this._toggle, this._toggle.activeEvent, this._expand);\r\n Observer.unsubscribe(this._toggle, this._toggle.inActiveEvent, this._collapse);\r\n\r\n this._toggle.unload();\r\n this._collapsingElement.parentNode.insertBefore(this._element, this._collapsingElement);\r\n this._collapsingElement.parentNode.removeChild(this._collapsingElement);\r\n\r\n this._element.removeEventListener(TRANSITION_END_EVENT, this._onTransitionEnd);\r\n }\r\n}\r\n\r\nexport default Collapsible;\r\n","class StickyNavigation {\r\n constructor(options) {\r\n this._options = { ...StickyNavigation.options, ...options };\r\n this._init();\r\n }\r\n\r\n static options = {\r\n pace: 350,\r\n };\r\n\r\n _state = {\r\n direction: 'down',\r\n status: 'enter',\r\n previousY: 0,\r\n previousRatio: 0,\r\n };\r\n\r\n _cacheSelectors() {\r\n this._trigger = document.querySelector('#header');\r\n //this._trigger = document.querySelector('.js-stickytrigger')\r\n this._wrapper = document.querySelector('.wrapper');\r\n }\r\n\r\n _addEventListeners() {\r\n const observer = new IntersectionObserver(this._handleIntersect, {\r\n threshold: 0,\r\n });\r\n\r\n observer.observe(this._trigger);\r\n\r\n window.addEventListener('scroll', () => {\r\n // detects new state and compares it with the new one\r\n if (document.body.getBoundingClientRect().top > this._state.previousY) {\r\n this._state.direction = 'up';\r\n } else {\r\n this._state.direction = 'down';\r\n }\r\n this._wrapper.setAttribute('data-direction', this._state.direction);\r\n this._state.previousY = document.body.getBoundingClientRect().top;\r\n });\r\n }\r\n\r\n _init() {\r\n this._cacheSelectors();\r\n if (this._trigger) {\r\n this._addEventListeners();\r\n }\r\n }\r\n\r\n _handleIntersect = (entries) => {\r\n entries.forEach((entry) => {\r\n const { isIntersecting } = entry;\r\n if (isIntersecting) {\r\n this._state.status = 'enter';\r\n } else {\r\n this._state.status = 'leave';\r\n }\r\n this._wrapper.setAttribute('data-status', this._state.status);\r\n });\r\n };\r\n}\r\n\r\nexport default StickyNavigation;\r\n","import { initializeComponents, unloadComponents } from 'utils/initializeComponents';\r\nimport bust from 'utils/bust';\r\n\r\nexport const reflow = (element) => element.offsetHeight;\r\n\r\nexport const setPrefixedStyle = (element, property, value) => {\r\n const prefixes = ['', '-webkit-', '-moz-', '-ms-'];\r\n prefixes.forEach((prefix) => (element.style[prefix + property] = value));\r\n};\r\n\r\nexport const setVendor = (element, property, value) => {\r\n const prefixes = ['-webkit-', '-moz-', '-ms-'];\r\n element.style[property] = value;\r\n\r\n prefixes.forEach((prefix) => (element.style[prefix + property] = value));\r\n};\r\n\r\nexport const insertAfter = (newNode, referenceNode) => {\r\n referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);\r\n};\r\n// eslint-disable-next-line complexity\r\nexport const closest = (elem, selector) => {\r\n const matchesSelector =\r\n elem.matches || elem.webkitMatchesSelector || elem.mozMatchesSelector || elem.msMatchesSelector;\r\n\r\n while (elem) {\r\n if (matchesSelector.bind(elem)(selector)) {\r\n return elem;\r\n }\r\n // eslint-disable-next-line no-param-reassign\r\n elem = elem.parentElement;\r\n }\r\n return false;\r\n};\r\n\r\nexport const parseFromString = (string) => {\r\n const parser = new DOMParser();\r\n return parser.parseFromString(string, 'text/html');\r\n};\r\n\r\nexport const getHTML = (url, container) => {\r\n return fetch(bust(url), { credentials: 'same-origin' })\r\n .then((response) => response.text())\r\n .then((text) => parseFromString(text).querySelector(container).innerHTML);\r\n};\r\n\r\nexport const setHTML = (container, html) => {\r\n unloadComponents(container);\r\n\r\n container.innerHTML = html;\r\n\r\n // HTML may have data-initialzed attributes, while the elements are unloaded above\r\n // We remove the attributes before intializing again, so they are not skipped\r\n Array.from(container.querySelectorAll('[data-initialized]')).forEach((element) =>\r\n element.removeAttribute('data-initialized')\r\n );\r\n\r\n initializeComponents(container);\r\n};\r\n\r\nexport const path = (url) => url.replace(window.origin, '');\r\n","/**\r\n * By Peeke Kuepers (https://gist.github.com/peeke/42a3f30c2a3856c65c224cc8a47b95f9)\r\n * Used for inter-object communication.\r\n * (Semi-)drop in replacement for Rik Schennink's Observer (https://github.com/rikschennink/conditioner/blob/master/src/utils/Observer.js)\r\n *\r\n * Implementation differences:\r\n * - ES6\r\n * - The use of WeakMaps\r\n * - inform() and conceal() don't return a boolean indicating success.\r\n * - Subscription fn's are called with seperate arguments, instead of one data parameter. This is backwards compatible.\r\n *\r\n * @name Observer\r\n */\r\n\r\n/* eslint-disable */\r\n// TODO: check es lint errors\r\nclass Observer {\r\n constructor() {\r\n // We use WeakMaps, so subscriptions get automatically removed when the subject is lost\r\n // Think DOM elements\r\n this._subscriptions = new WeakMap();\r\n this._informants = new WeakMap();\r\n }\r\n\r\n _push(map, key, value) {\r\n // Merge new and old values\r\n let values = [value];\r\n if (map.has(key)) {\r\n values = [...values, ...map.get(key)];\r\n }\r\n\r\n // Update set\r\n map.set(key, values);\r\n }\r\n\r\n _filter(map, key, filterFn) {\r\n // Not in -> bailout, there's no need to filter\r\n if (!map.has(key)) return;\r\n\r\n // Filter the current values in the set and update the set\r\n let values = map.get(key).filter(filterFn);\r\n map.set(key, values);\r\n }\r\n\r\n /**\r\n * Subscribe to an event\r\n * @method subscribe\r\n * @memberof Observer\r\n * @param {Object} subject - Object to subscribe to.\r\n * @param {String} event - Event type to listen for.\r\n * @param {Function} fn - Function to call when event published.\r\n */\r\n subscribe(subject, event, fn) {\r\n this._push(this._subscriptions, subject, { event, fn });\r\n }\r\n\r\n /**\r\n * Unsubscribe from further notifications\r\n * @method unsubscribe\r\n * @memberof Observer\r\n * @param {Object} subject - Object to unsubscribe from.\r\n * @param {String} event - Event type to match.\r\n * @param {Function} fn - Function to match.\r\n */\r\n unsubscribe(subject, event, fn) {\r\n let filterFn = (subscription) => subscription.event !== event || subscription.fn !== fn;\r\n this._filter(this._subscriptions, subject, filterFn);\r\n }\r\n\r\n /**\r\n * Publish an event\r\n * @method publish\r\n * @memberof Observer\r\n * @param {Object} subject - Object to fire the event on.\r\n * @param {String} event - Event type to fire.\r\n * @param {...*} args - Parameters to apply to the fn of the subscription object\r\n */\r\n publish(subject, event, ...args) {\r\n if (this._subscriptions.has(subject)) {\r\n this._subscriptions\r\n .get(subject)\r\n .filter((subscription) => subscription.event === event)\r\n .map((subscription) => subscription.fn)\r\n .forEach((fn) => fn(...args));\r\n }\r\n\r\n if (this._informants.has(subject)) {\r\n this._informants.get(subject).forEach((_subject) => this.publish(_subject, event, ...args));\r\n }\r\n }\r\n\r\n /**\r\n * Publishes an async event. This means other waiting (synchronous) code is executed first before the event is published.\r\n * @method publishAsync\r\n * @memberof Observer\r\n * @param {Object} subject - Object to fire the event on.\r\n * @param {String} event - Event type to fire.\r\n * @param {...*} args - Parameters to apply to the fn of the subscription object\r\n */\r\n publishAsync(subject, event, ...args) {\r\n setTimeout(() => this.publish(subject, event, ...args), 0);\r\n }\r\n\r\n /**\r\n * Setup propagation target for events so they can bubble up the object tree.\r\n * @method inform\r\n * @memberof Observer\r\n * @param {Object} informant - Object to set as origin. Events from this object will also be published on receiver.\r\n * @param {Object} receiver - Object to set as target.\r\n */\r\n inform(informant, receiver) {\r\n this._push(this._informants, informant, receiver);\r\n }\r\n\r\n /**\r\n * Remove propagation target\r\n * @memberof Observer\r\n * @param {Object} informant - Object previously set as origin.\r\n * @param {Object} receiver - Object previously set as target.\r\n */\r\n conceal(informant, receiver) {\r\n let filterFn = (_receiver) => receiver !== _receiver;\r\n this._filter(this._informants, informant, filterFn);\r\n }\r\n}\r\n\r\nexport default new Observer();\r\n/* eslint-enable */\r\n","class ScriptLoader {\r\n constructor() {\r\n this._scripts = new Map();\r\n }\r\n\r\n load(src) {\r\n if (this._scripts.has(src)) {\r\n return this._scripts.get(src);\r\n }\r\n\r\n const script = new Promise((resolve, reject) => {\r\n const tag = document.createElement('script');\r\n\r\n tag.src = src;\r\n tag.onload = resolve;\r\n tag.onerror = reject;\r\n\r\n document.body.appendChild(tag);\r\n });\r\n\r\n this._scripts.set(src, script);\r\n\r\n return script;\r\n }\r\n}\r\n\r\nexport default new ScriptLoader();\r\n","const bust = (url) => {\r\n const join = url.indexOf('?') === -1 ? '?' : '&';\r\n return `${url}${join}v=${Date.now()}`;\r\n};\r\n\r\nexport default bust;\r\n","const options = {\r\n hours: 24,\r\n minutes: 60,\r\n seconds: 60,\r\n millisec: 1000,\r\n};\r\nconst MILLISECONDS_IN_DAY = options.hours * options.minutes * options.seconds * options.millisec;\r\n\r\nexport function setCookie(name, value, days) {\r\n let expires = '';\r\n if (days) {\r\n const date = new Date();\r\n date.setTime(date.getTime() + days * MILLISECONDS_IN_DAY);\r\n expires = `; expires=${date.toUTCString()}`;\r\n }\r\n document.cookie = `${name}=${(value || '') + expires}; path=/`;\r\n}\r\n\r\nexport function getCookie(name) {\r\n const nameEQ = `${name}=`;\r\n const ca = document.cookie.split(';');\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i];\r\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\r\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\r\n }\r\n return null;\r\n}\r\n\r\nexport function eraseCookie(name) {\r\n document.cookie = `${name}=; Max-Age=-99999999;`;\r\n}\r\n","/* eslint-disable no-invalid-this */\r\nexport const debounce = (fn, time) => {\r\n let timeout = null;\r\n\r\n return function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n const functionCall = () => fn.apply(this, arguments);\r\n\r\n clearTimeout(timeout);\r\n timeout = setTimeout(functionCall, time);\r\n };\r\n};\r\n","export const throttle = (fn, ms) => {\r\n let throttling = false;\r\n\r\n return function _throttle() {\r\n if (!throttling) {\r\n throttling = true;\r\n // eslint-disable-next-line prefer-rest-params\r\n fn(...arguments);\r\n setTimeout(() => (throttling = false), ms);\r\n }\r\n };\r\n};\r\n\r\nexport const debounceHead = (fn, ms) => {\r\n // eslint-disable-next-line init-declarations\r\n let timeout;\r\n\r\n return function _debounce() {\r\n if (!timeout) {\r\n // eslint-disable-next-line prefer-rest-params\r\n fn(...arguments);\r\n }\r\n\r\n clearTimeout(timeout);\r\n timeout = setTimeout(() => (timeout = false), ms);\r\n };\r\n};\r\n\r\nexport const debounceTail = (fn, ms) => {\r\n // eslint-disable-next-line init-declarations\r\n let timeout;\r\n\r\n return function _debounce() {\r\n clearTimeout(timeout);\r\n // eslint-disable-next-line prefer-rest-params\r\n timeout = setTimeout(() => fn(...arguments), ms);\r\n };\r\n};\r\n\r\nexport const raf = (fn) => {\r\n // eslint-disable-next-line no-shadow,init-declarations\r\n let raf;\r\n\r\n return function _raf() {\r\n cancelAnimationFrame(raf);\r\n // eslint-disable-next-line prefer-rest-params\r\n raf = requestAnimationFrame(() => fn(...arguments));\r\n };\r\n};\r\n\r\nexport const listenOnce = (target, event, fn) => {\r\n const _fn = function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n fn(...arguments);\r\n target.removeEventListener(event, _fn);\r\n };\r\n return target.addEventListener(event, _fn);\r\n};\r\n\r\nexport const dispatchEvent = (source, event, options = { bubbles: true, cancelable: true }) => {\r\n try {\r\n source.dispatchEvent(new Event(event, options));\r\n } catch (_) {\r\n const e = document.createEvent('Event');\r\n e.initEvent(event, options.bubbles, options.cancelable);\r\n source.dispatchEvent(e);\r\n }\r\n};\r\n","/* eslint-disable global-require, no-new */\r\n\r\n// Reference our components so they get included\r\nimport components from '../../../components';\r\n\r\nrequire('intersection-observer');\r\n\r\n// All other imports\r\n//import { webfontLoader } from 'utils/webfontLoader'\r\n// import Observe from 'utils/Observe';\r\nimport 'form/Form';\r\nimport 'form/JumpList';\r\nimport 'toggle/Toggle';\r\nimport 'toggle/Trigger';\r\nimport 'ui/Collapsible';\r\nimport 'focus-visible';\r\nimport StickyNavigation from 'ui/StickyNavigation';\r\nimport polyfill from '@dotsunited/load-css-polyfill';\r\nimport objectFitImages from 'object-fit-images';\r\nimport lazySizes from 'lazysizes';\r\n\r\nnew StickyNavigation();\r\n//webfontLoader()\r\n// new Observe();\r\npolyfill();\r\nobjectFitImages();\r\n\r\n// lazySizes config\r\nlazySizes.cfg.lazyClass = 'js-lazy';\r\nlazySizes.cfg.loadingClass = 'js-lazy-loading';\r\nlazySizes.cfg.loadedClass = 'js-lazy-loaded';\r\n\r\n// Attach components to elements\r\nexport const initializeComponents = (context) => {\r\n const elements = Array.from(context.querySelectorAll('[data-module]:not([data-initialized])'));\r\n\r\n elements.forEach((element) => {\r\n // Convert dataset to object in a crossbrowser fashion\r\n const options = JSON.parse(JSON.stringify(element.dataset));\r\n\r\n // Using the dataset as option means you pass your options as data-setting=\"value\" instead of\r\n // data-options='{\"setting\":\"value\"}'\r\n\r\n element.dataset.module.split(',').forEach((path) => {\r\n const module = path in components ? components[path] : require(path);\r\n const Component = module.default ? module.default : module;\r\n new Component(element, options);\r\n });\r\n\r\n element.setAttribute('data-initialized', 'true');\r\n });\r\n};\r\n","/* eslint-disable */\r\n// TODO: check es lint errors\r\nimport animate from 'motion/animate';\r\n\r\nconst easeInOutQuart = (t) =>\r\n t < 0.5 ? +8.0 * Math.pow(t, 4.0) : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\r\n\r\nconst scrollTo = (target, offset = 0, duration = 1000, container = window, type = 'y') => {\r\n const scrollY = container.scrollY || window.pageYOffset;\r\n const scrollX = container.scrollLeft;\r\n\r\n let scrollTarget = target.getBoundingClientRect().top + scrollY - offset;\r\n let scroll = scrollY;\r\n if (type === 'x') {\r\n scroll = scrollX;\r\n scrollTarget = -offset;\r\n }\r\n animate({\r\n from: scroll,\r\n to: scrollTarget, //Math.min(maxScrollPosition, scrollTarget),\r\n duration,\r\n cb: (scr) => {\r\n if (type === 'x') {\r\n container.scrollTo(scr, 0);\r\n } else {\r\n container.scrollTo(0, scr);\r\n }\r\n },\r\n ease: easeInOutQuart,\r\n });\r\n};\r\n\r\nexport default scrollTo;\r\n/* eslint-enable */\r\n"]}