{"version":3,"sources":["webpack:///./src/components/Listings/Highlight.js","webpack:///./src/components/Form/Input.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/chart.js/dist/chunks/helpers.segment.js","webpack:///./src/components/Type/Heading2.js","webpack:///./src/components/FacebookTrack/FacebookTrack.js","webpack:///./src/components/Listings/3dbullet.png","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/gatsby-plugin-google-analytics/index.js","webpack:///./src/components/Form/ActionControl.js","webpack:///./src/components/Layout/Grid1/Grid1.js","webpack:///./src/components/Layout/PageHeader/PageHeader.js","webpack:///./node_modules/@babel/runtime/helpers/esm/get.js","webpack:///./node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack:///./src/components/Layout/Spacer/Spacer.js","webpack:///./src/components/Form/InputError.js","webpack:///./src/components/Layout/Section/Section.js","webpack:///./src/components/SideDrawer/DrawerToogleButton.js","webpack:///./src/components/Navigation/MainNavigation.js","webpack:///./src/components/SideDrawer/SideDrawer.js","webpack:///./src/components/Backdrop/Backdrop.js","webpack:///./src/components/Header/Header.js","webpack:///./src/components/ValuationPageForm/ValuationPageForm.js","webpack:///./src/components/Chart/barGraph.js","webpack:///./src/components/Layout/Button/RemoveButton.js","webpack:///./src/components/Valuation/MakeModelBadgeTable.js","webpack:///./src/components/Valuation/CircleStats.js","webpack:///./src/components/Valuation/Disclaimer.js","webpack:///./src/templates/valuation.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./src/components/Form/FormControl.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./src/components/Layout/Button/Button.js","webpack:///./src/components/Type/Heading4.js","webpack:///./src/components/Layout/Section/SectionPageMarginGradient.js","webpack:///./src/components/Type/PageTitle.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./src/components/Valuation/MakeModelBadgeTable.module.css","webpack:///./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./src/components/Type/Heading3.js","webpack:///./src/components/Footer/Footer.js","webpack:///./src/components/Layout/Layout.js","webpack:///./src/components/Layout/Grid2/Grid2Auto.js"],"names":["Highlight","title","value","Container","src","bullet","alt","style","position","top","left","Value","Title","styled","div","Input","input","attrs","props","type","_classCallCheck","instance","Constructor","TypeError","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","from","test","_unsupportedIterableToArray","length","i","F","s","done","e","_e","f","err","normalCompletion","didErr","step","next","_e2","return","arr","len","arr2","requestAnimFrame","window","callback","requestAnimationFrame","throttled","fn","thisArg","updateFn","updateArgs","args","ticking","_len","arguments","rest","_key","apply","debounce","delay","timeout","clearTimeout","setTimeout","_toLeftRightCenter","align","_alignStartEnd","start","end","_textX","right","noop","id","uid","isNullOrUndef","substr","isObject","isNumberFinite","Number","isFinite","finiteOrDefault","defaultValue","valueOrDefault","toPercentage","dimension","endsWith","parseFloat","toDimension","each","loopable","reverse","keys","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","index","clone$1","source","map","target","create","klen","k","isValidKey","key","indexOf","_merger","options","tval","sval","merge","sources","merger","mergeIf","_mergerIf","hasOwnProperty","indexOfDotOrLength","idx","resolveObjectKey","obj","pos","_capitalize","str","charAt","toUpperCase","defined","isFunction","setsEqual","a","b","size","_step","_iterator","item","has","PI","Math","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","niceNum","range","niceRange","pow","floor","fraction","_factorize","result","sqrt","push","sort","pop","isNumber","isNaN","almostEquals","x","y","epsilon","abs","almostWhole","rounded","round","_setMinAndMaxByKey","array","property","min","max","toRadians","degrees","toDegrees","radians","_decimalPlaces","p","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","atan2","distance","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_int16Range","atEdge","t","elasticIn","sin","elasticOut","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","m","d","easeInOutBounce","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","c","hex","h1","h2","eq","_hexString","v","r","g","isShort","lim","l","h","p2b","n2b","b2n","n2p","RGB_RE","HUE_RE","hsl2rgbn","undefined","hsv2rgbn","hwb2rgbn","w","rgb","rgb2hsl","calln","hsl2rgb","hue","hueParse","exec","p1","p2","hwb2rgb","hsv2rgb","names$1","map$1","Z","Y","X","W","V","U","T","S","R","Q","P","O","N","M","L","K","G","H","I","J","names","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","nameParse","j","ok","nk","unpacked","tkeys","replace","parseInt","unpack","transparent","toLowerCase","modHSL","ratio","tmp","clone","proto","assign","fromObject","functionParse","rgbParse","Color","this","ret","_rgb","_valid","concat","_hslString","color","weight","w2","c1","c2","w1","val","deg","_rotate","get","set","index_esm","isPatternOrGradient","CanvasGradient","CanvasPattern","getHoverColor","saturate","darken","hexString","overrides","descriptors","getScope$1","node","split","_set","root","scope","values","defaults","Defaults","_descriptors","animation","backgroundColor","borderColor","datasets","devicePixelRatio","context","chart","platform","getDevicePixelRatio","elements","events","font","family","lineHeight","hover","hoverBackgroundColor","ctx","hoverBorderColor","hoverColor","indexAxis","interaction","mode","intersect","maintainAspectRatio","onHover","onClick","parsing","plugins","responsive","scale","scales","showLine","describe","targetScope","targetName","_Object$definePropert","scopeObject","targetScopeObject","privateName","defineProperties","writable","enumerable","local","_scriptable","startsWith","_indexable","_fallback","_measureText","data","gc","longest","string","textWidth","measureText","width","_longestText","arrayOfThings","cache","garbageCollect","save","jlen","thing","nestedThing","restore","gcLen","splice","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","getContext","resetTransform","clearRect","height","drawPoint","xOffset","yOffset","cornerRadius","pointStyle","rotation","radius","rad","translate","rotate","drawImage","beginPath","arc","closePath","moveTo","lineTo","SQRT1_2","rect","fill","borderWidth","stroke","_isPointInArea","point","area","margin","bottom","clipArea","clip","unclipArea","_steppedLineTo","previous","flip","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","renderText","text","line","opts","lines","strokeWidth","strokeColor","translation","fillStyle","textAlign","textBaseline","strokeStyle","lineWidth","strokeText","maxWidth","fillText","strikethrough","underline","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","RegExp","FONT_STYLE","toLineHeight","matches","match","_readValueToProps","_step2","objProps","read","prop","_iterator2","toTRBL","toTRBLCorners","toPadding","toFont","fallback","console","warn","toFontString","resolve","inputs","info","cacheable","_addGrace","minmax","grace","_lookup","table","cmp","mid","hi","lo","_lookupByKey","_rlookupByKey","_filterBetween","arrayEvents","listenArrayEvents","listener","_chartjs","listeners","defineProperty","configurable","forEach","method","base","_len2","_key2","res","object","unlistenArrayEvents","stub","_arrayUnique","items","Set","add","_createResolver","scopes","_cache","prefixes","rootScopes","getTarget","_resolve","toStringTag","Proxy","deleteProperty","_keys","_cached","_resolveWithPrefixes","getOwnPropertyDescriptor","Reflect","_scopes","getPrototypeOf","getKeysFromAllScopes","includes","ownKeys","_storage","_attachContext","proxy","subProxy","descriptorDefaults","_cacheable","_proxy","_context","_subProxy","_stack","setContext","override","receiver","isScriptable","Error","join","delete","createSubResolver","_resolveScriptable","isIndexable","filter","_step3","_iterator3","resolver","_resolveArray","needsSubResolver","_resolveWithContext","allKeys","scriptable","indexable","_proxy$_scriptable","_proxy$_indexable","_proxy$_allKeys","_allKeys","readKey","prefix","resolveFallback","getScope","parent","addScopes","parentScopes","parentFallback","_step4","_iterator4","_rootScopes","allScopes","addScopesFromKey","_getTarget","_step5","_iterator5","_step6","_iterator6","_step7","_iterator7","_step8","_iterator8","resolveKeysFromAllScopes","EPSILON","getPoint","points","skip","splineCurveMonotone","pointBefore","pointCurrent","pointsLen","deltaK","mK","pointAfter","slopeDeltaX","alphaK","betaK","tauK","squaredMagnitude","monotoneAdjust","deltaX","_pointCurrent","monotoneCompute","capControlPoint","pt","_updateBezierControlPoints","loop","controlPoints","firstPoint","middlePoint","afterPoint","current","d01","d12","s01","s12","fa","fb","spanGaps","cubicInterpolationMode","prev","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_getParentNode","domNode","parentNode","host","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","element","positions","getPositionedStyle","styles","suffix","getRelativePosition","evt","borderBox","boxSizing","paddings","borders","_getCanvasPosition","native","touches","offsetX","offsetY","box","shadowRoot","useOffsetPos","getBoundingClientRect","clientX","clientY","getCanvasPosition","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","maxHeight","containerSize","container","containerStyle","containerBorder","containerPadding","clientWidth","clientHeight","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","setTransform","supportsEventListenerOptions","passiveSupported","addEventListener","removeEventListener","readUsedSize","el","getPropertyValue","getStyle","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","Map","formatNumber","num","locale","cacheKey","JSON","stringify","formatter","Intl","NumberFormat","getNumberFormat","format","getRtlAdapter","rtl","rectX","_x","setWidth","xPlus","leftForLtr","itemWidth","getRightToLeftAdapter","_x2","_itemWidth","overrideTextDirection","direction","original","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","propertyFn","between","compare","normalize","normalizeSegment","_ref","count","_boundSegment","segment","bounds","prevValue","startBound","endBound","_propertyFn2","_getSegment","_propertyFn","getSegment","inside","subStart","shouldStart","shouldStop","_boundSegments","segments","sub","_computeSegments","segmentOptions","_loop","_findStartAndEnd","findStartAndEnd","splitByStyles","last","cur","stop","solidSegments","_fullLoop","_step9","_iterator9","prevStyle","p0","styleChanged","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","doSplitByStyles","Heading2","children","Heading","fbTrack","fbq","module","exports","_assertThisInitialized","self","ReferenceError","_setPrototypeOf","setPrototypeOf","__proto__","_inherits","subClass","superClass","_toConsumableArray","iter","_interopRequireDefault","require","__esModule","OutboundLink","trackCustomEvent","category","action","label","_ref$nonInteraction","nonInteraction","transport","hitCallback","_ref$callbackTimeout","callbackTimeout","ga","trackingEventOptions","eventCategory","eventAction","eventLabel","eventValue","opt_timeout","called","raceCallback","createFunctionWithTimeout","_extends2","_objectWithoutPropertiesLoose2","_react","_propTypes","default","createElement","redirect","button","altKey","ctrlKey","metaKey","shiftKey","defaultPrevented","href","document","location","propTypes","number","func","ActionControl","marginTop","marginBottom","Grid1","Grid","PageHeader","bgColor","textColor","breadcrumb","SectionPageMarginGradient","PageTitle","Paragraph1","Spacer","desc","Space","InputError","Section","Wrapper","Content","section","drawerToggleButton","className","click","mainNavigation","activeStyles","borderBottom","hideBG","drawClickHandler","to","activeStyle","partiallyActive","sideDrawer","drawerClasses","show","backdrop","aria-label","Header","state","sideDrawerOpen","drawerToggleClickHandler","setState","prevState","backdropClickHandler","render","backDrop","Component","ValuationPageForm","handleOptionChange","changeEvent","selectedOption","validate","buySellValidation","submitHandler","event","preventDefault","nameEl","car","carEl","email","emailEl","mobile","mobileEl","errors","nameValidation","carValidation","emailValidation","content_category","content_name","page","currency","formBody","formSubmissionSuccessful","fetch","credentials","body","headers","then","status","formError","json","resData","catch","log","validation","fieldValue","errMessage","trim","required","parts","twoparts","threeparts","React","createRef","nameError","carError","emailError","mobileError","mobileValidation","bind","confirmationMessage","pageHTML","onSubmit","make","FormControl","LabelContainer","LabelNote","htmlFor","onBlur","ref","pattern","for","Button","FormError","Chart","register","registerables","legend","display","BarGraph","chartRef","buildChart","myChartRef","labels","ticks","maximumFractionDigits","minimumFractionDigits","tooltip","callbacks","dataset","parsed","componentDidMount","RemoveButton","MakeModelBadgeTable","amount","decimalCount","decimal","thousands","negativeSign","toFixed","sameMakeModelBadge","cars","edges","model","badge","year","sameMakeModelBadgeCars","edge","slug","carName","moreDetails","v_tr","v_td","priceMedian","odometerAvg","series","v_table","v_thead","v_th","v_tbody","CircleStats","CircleContainer","Box","Stat","StatTitle","StatTag","daysToSell","Disclaimer","Disclaim","IntroBlock","ValuationPage","sampleCount","confidenceLevel","pageContext","displayArray","filtered","slugger","part","pageData","valuation","priceGuideHigh","priceGuideLow","badges","allValuation","navigate","hangeBadgeClick","badgeTxt","seriesTxt","tagline","bodyType","graphTitle","Layout","description","image","badgeImg","childImageSharp","fixed","SectionPageMargin","Grid2Auto","GridItem","order","LogoBlock","logoImg","fontSize","Highlights","transmission","engine","Heading4","graphData","graphLabels","FormContainer","Heading3","_getPrototypeOf","_typeof","_possibleConstructorReturn","assertThisInitialized","h3","_defineProperty","_defineProperties","descriptor","_createClass","protoProps","staticProps","handleClick","url","rel","CopyContainer","ACNContainer","StyledLink","Link","IconContainer","footer","Grid2","paddingTop","paddingBottom","whiteSpace","Date","getFullYear","IconButton","Footer"],"mappings":"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","file":"component---src-templates-valuation-js-efbdd0b590c5cbf607d6.js","sourcesContent":["import React from 'react';\nimport bullet from './3dbullet.png';\n\nimport styled from 'styled-components';\n\n\n\nconst Highlight = ({ title, value }) => (\n \n \"bullet\"\n
\n {value}\n {title}\n
\n
\n)\n\nexport default Highlight;\n\nconst Container = styled.div`\n position: relative;\n padding-left: 35px;\n margin-bottom: 10px;\n margin-right: 20px;\n\n`;\n\nconst Value = styled.div`\n font-weight: 600;\n font-size: .8rem;\n color: #000000;\n`;\nconst Title = styled.div`\n color: #111111;\n font-size: .8rem;\n`;","import styled from 'styled-components'\n\nconst Input = styled.input.attrs(props => ({\n type: props.type || 'text'\n}))`\n outline: none;\n width: 285px;\n font-size: 1.1rem;\n background-color: white;\n color: black;\n padding: 5px 5px 5px 12px;\n border: #CCCCCC solid 1px;\n margin-bottom: 0.5rem;\n`\nexport default Input;\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import _toConsumableArray from \"/codebuild/output/src4059339766/src/summon-web-04/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"/codebuild/output/src4059339766/src/summon-web-04/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"/codebuild/output/src4059339766/src/summon-web-04/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/codebuild/output/src4059339766/src/summon-web-04/node_modules/@babel/runtime/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/*!\n * Chart.js v3.2.1\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\n */\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n\nvar requestAnimFrame = function () {\n if (typeof window === 'undefined') {\n return function (callback) {\n return callback();\n };\n }\n\n return window.requestAnimationFrame;\n}();\n\nfunction throttled(fn, thisArg, updateFn) {\n var updateArgs = updateFn || function (args) {\n return Array.prototype.slice.call(args);\n };\n\n var ticking = false;\n var args = [];\n return function () {\n for (var _len = arguments.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = arguments[_key];\n }\n\n args = updateArgs(rest);\n\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, function () {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\n\nfunction debounce(fn, delay) {\n var timeout;\n return function () {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay);\n } else {\n fn();\n }\n\n return delay;\n };\n}\n\nvar _toLeftRightCenter = function _toLeftRightCenter(align) {\n return align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n};\n\nvar _alignStartEnd = function _alignStartEnd(align, start, end) {\n return align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n};\n\nvar _textX = function _textX(align, left, right) {\n return align === 'right' ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\nfunction noop() {}\n\nvar uid = function () {\n var id = 0;\n return function () {\n return id++;\n };\n}();\n\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\n\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n\n var type = Object.prototype.toString.call(value);\n\n if (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n return true;\n }\n\n return false;\n}\n\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n\nvar isNumberFinite = function isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n};\n\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\n\nvar toPercentage = function toPercentage(value, dimension) {\n return typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : value / dimension;\n};\n\nvar toDimension = function toDimension(value, dimension) {\n return typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n};\n\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\n\nfunction each(loopable, fn, thisArg, reverse) {\n var i, len, keys;\n\n if (isArray(loopable)) {\n len = loopable.length;\n\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\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n\nfunction _elementsEqual(a0, a1) {\n var i, ilen, v0, v1;\n\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n\n if (isObject(source)) {\n var target = Object.create(null);\n var keys = Object.keys(source);\n var klen = keys.length;\n var k = 0;\n\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n\n return target;\n }\n\n return source;\n}\n\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n\n var tval = target[key];\n var sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\n\nfunction merge(target, source, options) {\n var sources = isArray(source) ? source : [source];\n var ilen = sources.length;\n\n if (!isObject(target)) {\n return target;\n }\n\n options = options || {};\n var merger = options.merger || _merger;\n\n for (var i = 0; i < ilen; ++i) {\n source = sources[i];\n\n if (!isObject(source)) {\n continue;\n }\n\n var keys = Object.keys(source);\n\n for (var k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n\n return target;\n}\n\nfunction mergeIf(target, source) {\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n\n var tval = target[key];\n var sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\n\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n\nvar emptyString = '';\nvar dot = '.';\n\nfunction indexOfDotOrLength(key, start) {\n var idx = key.indexOf(dot, start);\n return idx === -1 ? key.length : idx;\n}\n\nfunction resolveObjectKey(obj, key) {\n if (key === emptyString) {\n return obj;\n }\n\n var pos = 0;\n var idx = indexOfDotOrLength(key, pos);\n\n while (obj && idx > pos) {\n obj = obj[key.substr(pos, idx - pos)];\n pos = idx + 1;\n idx = indexOfDotOrLength(key, pos);\n }\n\n return obj;\n}\n\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nvar defined = function defined(value) {\n return typeof value !== 'undefined';\n};\n\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n\nvar setsEqual = function setsEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n\n var _iterator = _createForOfIteratorHelper(a),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n\n if (!b.has(item)) {\n return false;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return true;\n};\n\nvar PI = Math.PI;\nvar TAU = 2 * PI;\nvar PITAU = TAU + PI;\nvar INFINITY = Number.POSITIVE_INFINITY;\nvar RAD_PER_DEG = PI / 180;\nvar HALF_PI = PI / 2;\nvar QUARTER_PI = PI / 4;\nvar TWO_THIRDS_PI = PI * 2 / 3;\nvar log10 = Math.log10;\nvar sign = Math.sign;\n\nfunction niceNum(range) {\n var niceRange = Math.pow(10, Math.floor(log10(range)));\n var fraction = range / niceRange;\n var niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n\nfunction _factorize(value) {\n var result = [];\n var sqrt = Math.sqrt(value);\n var i;\n\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n\n result.sort(function (a, b) {\n return a - b;\n }).pop();\n return result;\n}\n\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\n\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n\nfunction almostWhole(x, epsilon) {\n var rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n\nfunction _setMinAndMaxByKey(array, target, property) {\n var i, ilen, value;\n\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\n\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\n\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n\n var e = 1;\n var p = 0;\n\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n\n return p;\n}\n\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n var distanceFromXCenter = anglePoint.x - centrePoint.x;\n var distanceFromYCenter = anglePoint.y - centrePoint.y;\n var radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n var angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n if (angle < -0.5 * PI) {\n angle += TAU;\n }\n\n return {\n angle: angle,\n distance: radialDistanceFromCenter\n };\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\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n\nfunction _angleBetween(angle, start, end) {\n var a = _normalizeAngle(angle);\n\n var s = _normalizeAngle(start);\n\n var e = _normalizeAngle(end);\n\n var angleToStart = _normalizeAngle(s - a);\n\n var angleToEnd = _normalizeAngle(e - a);\n\n var startToAngle = _normalizeAngle(a - s);\n\n var endToAngle = _normalizeAngle(a - e);\n\n return a === s || a === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n\nvar atEdge = function atEdge(t) {\n return t === 0 || t === 1;\n};\n\nvar elasticIn = function elasticIn(t, s, p) {\n return -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\n};\n\nvar elasticOut = function elasticOut(t, s, p) {\n return Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n};\n\nvar effects = {\n linear: function linear(t) {\n return t;\n },\n easeInQuad: function easeInQuad(t) {\n return t * t;\n },\n easeOutQuad: function easeOutQuad(t) {\n return -t * (t - 2);\n },\n easeInOutQuad: function easeInOutQuad(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1);\n },\n easeInCubic: function easeInCubic(t) {\n return t * t * t;\n },\n easeOutCubic: function easeOutCubic(t) {\n return (t -= 1) * t * t + 1;\n },\n easeInOutCubic: function easeInOutCubic(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2);\n },\n easeInQuart: function easeInQuart(t) {\n return t * t * t * t;\n },\n easeOutQuart: function easeOutQuart(t) {\n return -((t -= 1) * t * t * t - 1);\n },\n easeInOutQuart: function easeInOutQuart(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2);\n },\n easeInQuint: function easeInQuint(t) {\n return t * t * t * t * t;\n },\n easeOutQuint: function easeOutQuint(t) {\n return (t -= 1) * t * t * t * t + 1;\n },\n easeInOutQuint: function easeInOutQuint(t) {\n return (t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2);\n },\n easeInSine: function easeInSine(t) {\n return -Math.cos(t * HALF_PI) + 1;\n },\n easeOutSine: function easeOutSine(t) {\n return Math.sin(t * HALF_PI);\n },\n easeInOutSine: function easeInOutSine(t) {\n return -0.5 * (Math.cos(PI * t) - 1);\n },\n easeInExpo: function easeInExpo(t) {\n return t === 0 ? 0 : Math.pow(2, 10 * (t - 1));\n },\n easeOutExpo: function easeOutExpo(t) {\n return t === 1 ? 1 : -Math.pow(2, -10 * t) + 1;\n },\n easeInOutExpo: function easeInOutExpo(t) {\n return 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 },\n easeInCirc: function easeInCirc(t) {\n return t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1);\n },\n easeOutCirc: function easeOutCirc(t) {\n return Math.sqrt(1 - (t -= 1) * t);\n },\n easeInOutCirc: function easeInOutCirc(t) {\n return (t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n },\n easeInElastic: function easeInElastic(t) {\n return atEdge(t) ? t : elasticIn(t, 0.075, 0.3);\n },\n easeOutElastic: function easeOutElastic(t) {\n return atEdge(t) ? t : elasticOut(t, 0.075, 0.3);\n },\n easeInOutElastic: function easeInOutElastic(t) {\n var s = 0.1125;\n var 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: function easeInBack(t) {\n var s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack: function easeOutBack(t) {\n var s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack: function easeInOutBack(t) {\n var s = 1.70158;\n\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: function easeInBounce(t) {\n return 1 - effects.easeOutBounce(1 - t);\n },\n easeOutBounce: function easeOutBounce(t) {\n var m = 7.5625;\n var d = 2.75;\n\n if (t < 1 / d) {\n return m * t * t;\n }\n\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: function easeInOutBounce(t) {\n return t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n }\n};\n/*!\n * @kurkle/color v0.1.9\n * https://github.com/kurkle/color#readme\n * (c) 2020 Jukka Kurkela\n * Released under the MIT License\n */\n\nvar map = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n a: 10,\n b: 11,\n c: 12,\n d: 13,\n e: 14,\n f: 15\n};\nvar hex = '0123456789ABCDEF';\n\nvar h1 = function h1(b) {\n return hex[b & 0xF];\n};\n\nvar h2 = function h2(b) {\n return hex[(b & 0xF0) >> 4] + hex[b & 0xF];\n};\n\nvar eq = function eq(b) {\n return (b & 0xF0) >> 4 === (b & 0xF);\n};\n\nfunction isShort(v) {\n return eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\n}\n\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map[str[1]] * 17,\n g: 255 & map[str[2]] * 17,\n b: 255 & map[str[3]] * 17,\n a: len === 5 ? map[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map[str[1]] << 4 | map[str[2]],\n g: map[str[3]] << 4 | map[str[4]],\n b: map[str[5]] << 4 | map[str[6]],\n a: len === 9 ? map[str[7]] << 4 | map[str[8]] : 255\n };\n }\n }\n\n return ret;\n}\n\nfunction _hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v ? '#' + f(v.r) + f(v.g) + f(v.b) + (v.a < 255 ? f(v.a) : '') : v;\n}\n\nfunction round(v) {\n return v + 0.5 | 0;\n}\n\nvar lim = function lim(v, l, h) {\n return Math.max(Math.min(v, h), l);\n};\n\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\n\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\n\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\n\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nvar RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\n\nfunction rgbParse(str) {\n var m = RGB_RE.exec(str);\n var a = 255;\n var r, g, b;\n\n if (!m) {\n return;\n }\n\n if (m[7] !== r) {\n var v = +m[7];\n a = 255 & (m[8] ? p2b(v) : v * 255);\n }\n\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : r);\n g = 255 & (m[4] ? p2b(g) : g);\n b = 255 & (m[6] ? p2b(b) : b);\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\n\nfunction _rgbString(v) {\n return v && (v.a < 255 ? \"rgba(\".concat(v.r, \", \").concat(v.g, \", \").concat(v.b, \", \").concat(b2n(v.a), \")\") : \"rgb(\".concat(v.r, \", \").concat(v.g, \", \").concat(v.b, \")\"));\n}\n\nvar HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\n\nfunction hsl2rgbn(h, s, l) {\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n return [f(0), f(8), f(4)];\n}\n\nfunction hsv2rgbn(h, s, v) {\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 60) % 6;\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n };\n\n return [f(5), f(3), f(1)];\n}\n\nfunction hwb2rgbn(h, w, b) {\n var rgb = hsl2rgbn(h, 1, 0.5);\n var i;\n\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n\n return rgb;\n}\n\nfunction rgb2hsl(v) {\n var range = 255;\n var r = v.r / range;\n var g = v.g / range;\n var b = v.b / range;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var l = (max + min) / 2;\n var h, s, d;\n\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;\n h = h * 60 + 0.5;\n }\n\n return [h | 0, s || 0, l];\n}\n\nfunction calln(f, a, b, c) {\n return (Array.isArray(a) ? f(a[0], a[1], a[2]) : f(a, b, c)).map(n2b);\n}\n\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\n\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\n\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\n\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\n\nfunction hueParse(str) {\n var m = HUE_RE.exec(str);\n var a = 255;\n var v;\n\n if (!m) {\n return;\n }\n\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n\n var h = hue(+m[2]);\n var p1 = +m[3] / 100;\n var p2 = +m[4] / 100;\n\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\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\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}\n\nfunction _hslString(v) {\n if (!v) {\n return;\n }\n\n var a = rgb2hsl(v);\n var h = a[0];\n var s = n2p(a[1]);\n var l = n2p(a[2]);\n return v.a < 255 ? \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(b2n(v.a), \")\") : \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\");\n}\n\nvar map$1 = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nvar names = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\n\nfunction unpack() {\n var unpacked = {};\n var keys = Object.keys(names);\n var tkeys = Object.keys(map$1);\n var i, j, k, ok, nk;\n\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map$1[k]);\n }\n\n k = parseInt(names[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n\n return unpacked;\n}\n\nvar names$1;\n\nfunction nameParse(str) {\n if (!names$1) {\n names$1 = unpack();\n names$1.transparent = [0, 0, 0, 0];\n }\n\n var a = names$1[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\nfunction modHSL(v, i, ratio) {\n if (v) {\n var 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}\n\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\n\nfunction fromObject(input) {\n var v = {\n r: 0,\n g: 0,\n b: 0,\n a: 255\n };\n\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {\n r: input[0],\n g: input[1],\n b: input[2],\n a: 255\n };\n\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {\n r: 0,\n g: 0,\n b: 0,\n a: 1\n });\n v.a = n2b(v.a);\n }\n\n return v;\n}\n\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n\n return hueParse(str);\n}\n\nvar Color = /*#__PURE__*/function () {\n function Color(input) {\n _classCallCheck(this, Color);\n\n if (input instanceof Color) {\n return input;\n }\n\n var type = typeof input;\n var v;\n\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n\n this._rgb = v;\n this._valid = !!v;\n }\n\n _createClass(Color, [{\n key: \"rgbString\",\n value: function rgbString() {\n return this._valid ? _rgbString(this._rgb) : this._rgb;\n }\n }, {\n key: \"hexString\",\n value: function hexString() {\n return this._valid ? _hexString(this._rgb) : this._rgb;\n }\n }, {\n key: \"hslString\",\n value: function hslString() {\n return this._valid ? _hslString(this._rgb) : this._rgb;\n }\n }, {\n key: \"mix\",\n value: function mix(color, weight) {\n var me = this;\n\n if (color) {\n var c1 = me.rgb;\n var c2 = color.rgb;\n var w2;\n var p = weight === w2 ? 0.5 : weight;\n var w = 2 * p - 1;\n var a = c1.a - c2.a;\n var 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 me.rgb = c1;\n }\n\n return me;\n }\n }, {\n key: \"clone\",\n value: function clone() {\n return new Color(this.rgb);\n }\n }, {\n key: \"alpha\",\n value: function alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n }, {\n key: \"clearer\",\n value: function clearer(ratio) {\n var rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n }, {\n key: \"greyscale\",\n value: function greyscale() {\n var rgb = this._rgb;\n var 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 }, {\n key: \"opaquer\",\n value: function opaquer(ratio) {\n var rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n }, {\n key: \"negate\",\n value: function negate() {\n var 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 }, {\n key: \"lighten\",\n value: function lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n }, {\n key: \"darken\",\n value: function darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n }, {\n key: \"saturate\",\n value: function saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n }, {\n key: \"desaturate\",\n value: function desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n }, {\n key: \"rotate\",\n value: function rotate(deg) {\n _rotate(this._rgb, deg);\n\n return this;\n }\n }, {\n key: \"valid\",\n get: function get() {\n return this._valid;\n }\n }, {\n key: \"rgb\",\n get: function get() {\n var v = clone(this._rgb);\n\n if (v) {\n v.a = b2n(v.a);\n }\n\n return v;\n },\n set: function set(obj) {\n this._rgb = fromObject(obj);\n }\n }]);\n\n return Color;\n}();\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nvar isPatternOrGradient = function isPatternOrGradient(value) {\n return value instanceof CanvasGradient || value instanceof CanvasPattern;\n};\n\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\n\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nvar overrides = Object.create(null);\nvar descriptors = Object.create(null);\n\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n\n var keys = key.split('.');\n\n for (var i = 0, n = keys.length; i < n; ++i) {\n var k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n\n return node;\n}\n\nfunction _set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n\n return merge(getScope$1(root, ''), scope);\n}\n\nvar Defaults = /*#__PURE__*/function () {\n function Defaults(_descriptors) {\n _classCallCheck(this, Defaults);\n\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\n this.devicePixelRatio = function (context) {\n return context.chart.platform.getDevicePixelRatio();\n };\n\n this.elements = {};\n this.events = ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'];\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\n this.hoverBackgroundColor = function (ctx, options) {\n return getHoverColor(options.backgroundColor);\n };\n\n this.hoverBorderColor = function (ctx, options) {\n return getHoverColor(options.borderColor);\n };\n\n this.hoverColor = function (ctx, options) {\n return getHoverColor(options.color);\n };\n\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true\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.describe(_descriptors);\n }\n\n _createClass(Defaults, [{\n key: \"set\",\n value: function set(scope, values) {\n return _set(this, scope, values);\n }\n }, {\n key: \"get\",\n value: function get(scope) {\n return getScope$1(this, scope);\n }\n }, {\n key: \"describe\",\n value: function describe(scope, values) {\n return _set(descriptors, scope, values);\n }\n }, {\n key: \"override\",\n value: function override(scope, values) {\n return _set(overrides, scope, values);\n }\n }, {\n key: \"route\",\n value: function route(scope, name, targetScope, targetName) {\n var _Object$definePropert;\n\n var scopeObject = getScope$1(this, scope);\n var targetScopeObject = getScope$1(this, targetScope);\n var privateName = '_' + name;\n Object.defineProperties(scopeObject, (_Object$definePropert = {}, _defineProperty(_Object$definePropert, privateName, {\n value: scopeObject[name],\n writable: true\n }), _defineProperty(_Object$definePropert, name, {\n enumerable: true,\n get: function get() {\n var local = this[privateName];\n var target = targetScopeObject[targetName];\n\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n\n return valueOrDefault(local, target);\n },\n set: function set(value) {\n this[privateName] = value;\n }\n }), _Object$definePropert));\n }\n }]);\n\n return Defaults;\n}();\n\nvar defaults = new Defaults({\n _scriptable: function _scriptable(name) {\n return !name.startsWith('on');\n },\n _indexable: function _indexable(name) {\n return name !== 'events';\n },\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n\nfunction _measureText(ctx, data, gc, longest, string) {\n var textWidth = data[string];\n\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n\n if (textWidth > longest) {\n longest = textWidth;\n }\n\n return longest;\n}\n\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n var data = cache.data = cache.data || {};\n var gc = cache.garbageCollect = cache.garbageCollect || [];\n\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n\n ctx.save();\n ctx.font = font;\n var longest = 0;\n var ilen = arrayOfThings.length;\n var i, j, jlen, thing, nestedThing;\n\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n\n ctx.restore();\n var gcLen = gc.length / 2;\n\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n\n gc.splice(0, gcLen);\n }\n\n return longest;\n}\n\nfunction _alignPixel(chart, pixel, width) {\n var devicePixelRatio = chart.currentDevicePixelRatio;\n var halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\n\nfunction drawPoint(ctx, options, x, y) {\n var type, xOffset, yOffset, size, cornerRadius;\n var style = options.pointStyle;\n var rotation = options.rotation;\n var radius = options.radius;\n var rad = (rotation || 0) * RAD_PER_DEG;\n\n if (style && typeof style === 'object') {\n type = style.toString();\n\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\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n\n ctx.beginPath();\n\n switch (style) {\n default:\n ctx.arc(x, y, radius, 0, TAU);\n ctx.closePath();\n break;\n\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n ctx.rect(x - size, y - size, 2 * size, 2 * size);\n break;\n }\n\n rad += QUARTER_PI;\n\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n\n case 'crossRot':\n rad += QUARTER_PI;\n\n case 'cross':\n xOffset = 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 ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n\n case 'star':\n xOffset = 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 ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = 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 ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n\n case 'line':\n xOffset = 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\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n\n ctx.fill();\n\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\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}\n\nfunction unclipArea(ctx) {\n ctx.restore();\n}\n\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n\n if (mode === 'middle') {\n var 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\n ctx.lineTo(target.x, target.y);\n}\n\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\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}\n\nfunction renderText(ctx, text, x, y, font) {\n var opts = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n var lines = isArray(text) ? text : [text];\n var stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n var i, line;\n ctx.save();\n\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n\n ctx.font = font.string;\n\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n\n ctx.fillText(line, x, y, opts.maxWidth);\n\n if (opts.strikethrough || opts.underline) {\n var metrics = ctx.measureText(line);\n var left = x - metrics.actualBoundingBoxLeft;\n var right = x + metrics.actualBoundingBoxRight;\n var top = y - metrics.actualBoundingBoxAscent;\n var bottom = y + metrics.actualBoundingBoxDescent;\n var 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\n y += font.lineHeight;\n }\n\n ctx.restore();\n}\n\nfunction addRoundedRectPath(ctx, rect) {\n var x = rect.x,\n y = rect.y,\n w = rect.w,\n h = rect.h,\n radius = rect.radius;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nvar LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nvar FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\n\nfunction toLineHeight(value, size) {\n var matches = ('' + value).match(LINE_HEIGHT);\n\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n\n value = +matches[2];\n\n switch (matches[3]) {\n case 'px':\n return value;\n\n case '%':\n value /= 100;\n break;\n }\n\n return size * value;\n}\n\nvar numberOrZero = function numberOrZero(v) {\n return +v || 0;\n};\n\nfunction _readValueToProps(value, props) {\n var ret = {};\n var objProps = isObject(props);\n var keys = objProps ? Object.keys(props) : props;\n var read = isObject(value) ? objProps ? function (prop) {\n return valueOrDefault(value[prop], value[props[prop]]);\n } : function (prop) {\n return value[prop];\n } : function () {\n return value;\n };\n\n var _iterator2 = _createForOfIteratorHelper(keys),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var prop = _step2.value;\n ret[prop] = numberOrZero(read(prop));\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return ret;\n}\n\nfunction toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\n\nfunction toPadding(value) {\n var obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n var size = valueOrDefault(options.size, fallback.size);\n\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n\n var style = valueOrDefault(options.style, fallback.style);\n\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n\n var font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size: size,\n style: style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n\nfunction resolve(inputs, context, index, info) {\n var cacheable = true;\n var i, ilen, value;\n\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n\n if (value === undefined) {\n continue;\n }\n\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n\n return value;\n }\n }\n}\n\nfunction _addGrace(minmax, grace) {\n var min = minmax.min,\n max = minmax.max;\n return {\n min: min - Math.abs(toDimension(grace, min)),\n max: max + toDimension(grace, max)\n };\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || function (index) {\n return table[index] < value;\n };\n\n var hi = table.length - 1;\n var lo = 0;\n var mid;\n\n while (hi - lo > 1) {\n mid = lo + hi >> 1;\n\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n\n return {\n lo: lo,\n hi: hi\n };\n}\n\nvar _lookupByKey = function _lookupByKey(table, key, value) {\n return _lookup(table, value, function (index) {\n return table[index][key] < value;\n });\n};\n\nvar _rlookupByKey = function _rlookupByKey(table, key, value) {\n return _lookup(table, value, function (index) {\n return table[index][key] >= value;\n });\n};\n\nfunction _filterBetween(values, min, max) {\n var start = 0;\n var end = values.length;\n\n while (start < end && values[start] < min) {\n start++;\n }\n\n while (end > start && values[end - 1] > max) {\n end--;\n }\n\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\n\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n\n return;\n }\n\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach(function (key) {\n var method = '_onData' + _capitalize(key);\n\n var base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value: function value() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var res = base.apply(this, args);\n\n array._chartjs.listeners.forEach(function (object) {\n if (typeof object[method] === 'function') {\n object[method].apply(object, args);\n }\n });\n\n return res;\n }\n });\n });\n}\n\nfunction unlistenArrayEvents(array, listener) {\n var stub = array._chartjs;\n\n if (!stub) {\n return;\n }\n\n var listeners = stub.listeners;\n var index = listeners.indexOf(listener);\n\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length > 0) {\n return;\n }\n\n arrayEvents.forEach(function (key) {\n delete array[key];\n });\n delete array._chartjs;\n}\n\nfunction _arrayUnique(items) {\n var set = new Set();\n var i, ilen;\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n\n if (set.size === ilen) {\n return items;\n }\n\n var result = [];\n set.forEach(function (item) {\n result.push(item);\n });\n return result;\n}\n\nfunction _createResolver(scopes) {\n var _cache;\n\n var prefixes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [''];\n var rootScopes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : scopes;\n var fallback = arguments.length > 3 ? arguments[3] : undefined;\n var getTarget = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function () {\n return scopes[0];\n };\n\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n\n var cache = (_cache = {}, _defineProperty(_cache, Symbol.toStringTag, 'Object'), _defineProperty(_cache, \"_cacheable\", true), _defineProperty(_cache, \"_scopes\", scopes), _defineProperty(_cache, \"_rootScopes\", rootScopes), _defineProperty(_cache, \"_fallback\", fallback), _defineProperty(_cache, \"_getTarget\", getTarget), _defineProperty(_cache, \"override\", function override(scope) {\n return _createResolver([scope].concat(_toConsumableArray(scopes)), prefixes, rootScopes, fallback);\n }), _cache);\n return new Proxy(cache, {\n deleteProperty: function deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get: function get(target, prop) {\n return _cached(target, prop, function () {\n return _resolveWithPrefixes(prop, prefixes, scopes, target);\n });\n },\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf: function getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has: function has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys: function ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set: function set(target, prop, value) {\n var storage = target._storage || (target._storage = getTarget());\n storage[prop] = value;\n delete target[prop];\n delete target._keys;\n return true;\n }\n });\n}\n\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n var cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: function setContext(ctx) {\n return _attachContext(proxy, ctx, subProxy, descriptorDefaults);\n },\n override: function override(scope) {\n return _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults);\n }\n };\n return new Proxy(cache, {\n deleteProperty: function deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get: function get(target, prop, receiver) {\n return _cached(target, prop, function () {\n return _resolveWithContext(target, prop, receiver);\n });\n },\n getOwnPropertyDescriptor: function 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 getPrototypeOf: function getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has: function has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys: function ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set: function set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\n\nfunction _descriptors(proxy) {\n var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n scriptable: true,\n indexable: true\n };\n\n var _proxy$_scriptable = proxy._scriptable,\n _scriptable = _proxy$_scriptable === void 0 ? defaults.scriptable : _proxy$_scriptable,\n _proxy$_indexable = proxy._indexable,\n _indexable = _proxy$_indexable === void 0 ? defaults.indexable : _proxy$_indexable,\n _proxy$_allKeys = proxy._allKeys,\n _allKeys = _proxy$_allKeys === void 0 ? defaults.allKeys : _proxy$_allKeys;\n\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : function () {\n return _scriptable;\n },\n isIndexable: isFunction(_indexable) ? _indexable : function () {\n return _indexable;\n }\n };\n}\n\nvar readKey = function readKey(prefix, name) {\n return prefix ? prefix + _capitalize(name) : name;\n};\n\nvar needsSubResolver = function needsSubResolver(prop, value) {\n return isObject(value) && prop !== 'adapters';\n};\n\nfunction _cached(target, prop, resolve) {\n var value = target[prop];\n\n if (defined(value)) {\n return value;\n }\n\n value = resolve();\n\n if (defined(value)) {\n target[prop] = value;\n }\n\n return value;\n}\n\nfunction _resolveWithContext(target, prop, receiver) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n descriptors = target._descriptors;\n var value = _proxy[prop];\n\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n\n return value;\n}\n\nfunction _resolveScriptable(prop, value, target, receiver) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n _stack = target._stack;\n\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + _toConsumableArray(_stack).join('->') + '->' + prop);\n }\n\n _stack.add(prop);\n\n value = value(_context, _subProxy || receiver);\n\n _stack.delete(prop);\n\n if (isObject(value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n\n return value;\n}\n\nfunction _resolveArray(prop, value, target, isIndexable) {\n var _proxy = target._proxy,\n _context = target._context,\n _subProxy = target._subProxy,\n descriptors = target._descriptors;\n\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n var arr = value;\n\n var scopes = _proxy._scopes.filter(function (s) {\n return s !== arr;\n });\n\n value = [];\n\n var _iterator3 = _createForOfIteratorHelper(arr),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var item = _step3.value;\n var resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n\n return value;\n}\n\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\n\nvar getScope = function getScope(key, parent) {\n return key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\n};\n\nfunction addScopes(set, parentScopes, key, parentFallback) {\n var _iterator4 = _createForOfIteratorHelper(parentScopes),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var parent = _step4.value;\n var scope = getScope(key, parent);\n\n if (scope) {\n set.add(scope);\n var fallback = resolveFallback(scope._fallback, key, scope);\n\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n return false;\n}\n\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n var rootScopes = resolver._rootScopes;\n var fallback = resolveFallback(resolver._fallback, prop, value);\n var allScopes = [].concat(_toConsumableArray(parentScopes), _toConsumableArray(rootScopes));\n var set = new Set();\n set.add(value);\n var key = addScopesFromKey(set, allScopes, prop, fallback || prop);\n\n if (key === null) {\n return false;\n }\n\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key);\n\n if (key === null) {\n return false;\n }\n }\n\n return _createResolver(_toConsumableArray(set), [''], rootScopes, fallback, function () {\n var parent = resolver._getTarget();\n\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n\n return parent[prop];\n });\n}\n\nfunction addScopesFromKey(set, allScopes, key, fallback) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback);\n }\n\n return key;\n}\n\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n var value;\n\n var _iterator5 = _createForOfIteratorHelper(prefixes),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var prefix = _step5.value;\n value = _resolve(readKey(prefix, prop), scopes);\n\n if (defined(value)) {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n}\n\nfunction _resolve(key, scopes) {\n var _iterator6 = _createForOfIteratorHelper(scopes),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var scope = _step6.value;\n\n if (!scope) {\n continue;\n }\n\n var value = scope[key];\n\n if (defined(value)) {\n return value;\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n}\n\nfunction getKeysFromAllScopes(target) {\n var keys = target._keys;\n\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n\n return keys;\n}\n\nfunction resolveKeysFromAllScopes(scopes) {\n var set = new Set();\n\n var _iterator7 = _createForOfIteratorHelper(scopes),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var scope = _step7.value;\n\n var _iterator8 = _createForOfIteratorHelper(Object.keys(scope).filter(function (k) {\n return !k.startsWith('_');\n })),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var key = _step8.value;\n set.add(key);\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n return _toConsumableArray(set);\n}\n\nvar EPSILON = Number.EPSILON || 1e-14;\n\nvar getPoint = function getPoint(points, i) {\n return i < points.length && !points[i].skip && points[i];\n};\n\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n var previous = firstPoint.skip ? middlePoint : firstPoint;\n var current = middlePoint;\n var next = afterPoint.skip ? middlePoint : afterPoint;\n var d01 = distanceBetweenPoints(current, previous);\n var d12 = distanceBetweenPoints(next, current);\n var s01 = d01 / (d01 + d12);\n var s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n var fa = t * s01;\n var 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\nfunction monotoneAdjust(points, deltaK, mK) {\n var pointsLen = points.length;\n var alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (var i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\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\n if (squaredMagnitude <= 9) {\n continue;\n }\n\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\n\nfunction monotoneCompute(points, mK) {\n var pointsLen = points.length;\n var deltaX, pointBefore, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (var i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent) {\n continue;\n }\n\n var _pointCurrent = pointCurrent,\n x = _pointCurrent.x,\n y = _pointCurrent.y;\n\n if (pointBefore) {\n deltaX = (x - pointBefore.x) / 3;\n pointCurrent.cp1x = x - deltaX;\n pointCurrent.cp1y = y - deltaX * mK[i];\n }\n\n if (pointAfter) {\n deltaX = (pointAfter.x - x) / 3;\n pointCurrent.cp2x = x + deltaX;\n pointCurrent.cp2y = y + deltaX * mK[i];\n }\n }\n}\n\nfunction splineCurveMonotone(points) {\n var pointsLen = points.length;\n var deltaK = Array(pointsLen).fill(0);\n var mK = Array(pointsLen);\n var i, pointBefore, pointCurrent;\n var pointAfter = getPoint(points, 0);\n\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n\n if (!pointCurrent) {\n continue;\n }\n\n if (pointAfter) {\n var slopeDeltaX = pointAfter.x - pointCurrent.x;\n deltaK[i] = slopeDeltaX !== 0 ? (pointAfter.y - pointCurrent.y) / slopeDeltaX : 0;\n }\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\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK);\n}\n\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\n\nfunction capBezierPoints(points, area) {\n var i, ilen, point, inArea, inAreaPrev;\n\n var inAreaNext = _isPointInArea(points[0], area);\n\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\n if (!inArea) {\n continue;\n }\n\n point = points[i];\n\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\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\nfunction _updateBezierControlPoints(points, options, area, loop) {\n var i, ilen, point, controlPoints;\n\n if (options.spanGaps) {\n points = points.filter(function (pt) {\n return !pt.skip;\n });\n }\n\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points);\n } else {\n var prev = loop ? points[points.length - 1] : points[0];\n\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\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _getParentNode(domNode) {\n var parent = domNode.parentNode;\n\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n\n return parent;\n}\n\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n var valueInPixels;\n\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n\n return valueInPixels;\n}\n\nvar getComputedStyle = function getComputedStyle(element) {\n return window.getComputedStyle(element, null);\n};\n\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\n\nvar positions = ['top', 'right', 'bottom', 'left'];\n\nfunction getPositionedStyle(styles, style, suffix) {\n var result = {};\n suffix = suffix ? '-' + suffix : '';\n\n for (var i = 0; i < 4; i++) {\n var pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\n\nvar useOffsetPos = function useOffsetPos(x, y, target) {\n return (x > 0 || y > 0) && (!target || !target.shadowRoot);\n};\n\nfunction getCanvasPosition(evt, canvas) {\n var e = evt.native || evt;\n var touches = e.touches;\n var source = touches && touches.length ? touches[0] : e;\n var offsetX = source.offsetX,\n offsetY = source.offsetY;\n var box = false;\n var x, y;\n\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n var rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n\n return {\n x: x,\n y: y,\n box: box\n };\n}\n\nfunction getRelativePosition(evt, chart) {\n var canvas = chart.canvas,\n currentDevicePixelRatio = chart.currentDevicePixelRatio;\n var style = getComputedStyle(canvas);\n var borderBox = style.boxSizing === 'border-box';\n var paddings = getPositionedStyle(style, 'padding');\n var borders = getPositionedStyle(style, 'border', 'width');\n\n var _getCanvasPosition = getCanvasPosition(evt, canvas),\n x = _getCanvasPosition.x,\n y = _getCanvasPosition.y,\n box = _getCanvasPosition.box;\n\n var xOffset = paddings.left + (box && borders.left);\n var yOffset = paddings.top + (box && borders.top);\n var width = chart.width,\n height = chart.height;\n\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\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}\n\nfunction getContainerSize(canvas, width, height) {\n var maxWidth, maxHeight;\n\n if (width === undefined || height === undefined) {\n var container = _getParentNode(canvas);\n\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n var rect = container.getBoundingClientRect();\n var containerStyle = getComputedStyle(container);\n var containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n var 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\n return {\n width: width,\n height: height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\n\nvar round1 = function round1(v) {\n return Math.round(v * 10) / 10;\n};\n\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n var style = getComputedStyle(canvas);\n var margins = getPositionedStyle(style, 'margin');\n var maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n var maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n var containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n var width = containerSize.width,\n height = containerSize.height;\n\n if (style.boxSizing === 'content-box') {\n var borders = getPositionedStyle(style, 'border', 'width');\n var paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n\n if (width && !height) {\n height = round1(width / 2);\n }\n\n return {\n width: width,\n height: height\n };\n}\n\nfunction retinaScale(chart, forceRatio, forceStyle) {\n var pixelRatio = chart.currentDevicePixelRatio = forceRatio || 1;\n var canvas = chart.canvas,\n width = chart.width,\n height = chart.height;\n canvas.height = height * pixelRatio;\n canvas.width = width * pixelRatio;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = height + 'px';\n canvas.style.width = width + 'px';\n }\n}\n\nvar supportsEventListenerOptions = function () {\n var passiveSupported = false;\n\n try {\n var options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {}\n\n return passiveSupported;\n}();\n\nfunction readUsedSize(element, property) {\n var value = getStyle(element, property);\n var matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _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\nfunction _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\nfunction _bezierInterpolation(p1, p2, t, mode) {\n var cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n var cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n\n var a = _pointInLine(p1, cp1, t);\n\n var b = _pointInLine(cp1, cp2, t);\n\n var c = _pointInLine(cp2, p2, t);\n\n var d = _pointInLine(a, b, t);\n\n var e = _pointInLine(b, c, t);\n\n return _pointInLine(d, e, t);\n}\n\nvar intlCache = new Map();\n\nfunction getNumberFormat(locale, options) {\n options = options || {};\n var cacheKey = locale + JSON.stringify(options);\n var formatter = intlCache.get(cacheKey);\n\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n\n return formatter;\n}\n\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nvar getRightToLeftAdapter = function getRightToLeftAdapter(rectX, width) {\n return {\n x: function x(_x) {\n return rectX + rectX + width - _x;\n },\n setWidth: function setWidth(w) {\n width = w;\n },\n textAlign: function textAlign(align) {\n if (align === 'center') {\n return align;\n }\n\n return align === 'right' ? 'left' : 'right';\n },\n xPlus: function xPlus(x, value) {\n return x - value;\n },\n leftForLtr: function leftForLtr(x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\n\nvar getLeftToRightAdapter = function getLeftToRightAdapter() {\n return {\n x: function x(_x2) {\n return _x2;\n },\n setWidth: function setWidth(w) {},\n textAlign: function textAlign(align) {\n return align;\n },\n xPlus: function xPlus(x, value) {\n return x + value;\n },\n leftForLtr: function leftForLtr(x, _itemWidth) {\n return x;\n }\n };\n};\n\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\n\nfunction overrideTextDirection(ctx, direction) {\n var style, original;\n\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [style.getPropertyValue('direction'), style.getPropertyPriority('direction')];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\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\n return {\n between: function between(n, s, e) {\n return n >= Math.min(s, e) && n <= Math.max(e, s);\n },\n compare: function compare(a, b) {\n return a - b;\n },\n normalize: function normalize(x) {\n return x;\n }\n };\n}\n\nfunction normalizeSegment(_ref) {\n var start = _ref.start,\n end = _ref.end,\n count = _ref.count,\n loop = _ref.loop,\n style = _ref.style;\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style: style\n };\n}\n\nfunction getSegment(segment, points, bounds) {\n var property = bounds.property,\n startBound = bounds.start,\n endBound = bounds.end;\n\n var _propertyFn = propertyFn(property),\n between = _propertyFn.between,\n normalize = _propertyFn.normalize;\n\n var count = points.length;\n var start = segment.start,\n end = segment.end,\n loop = segment.loop;\n var i, ilen;\n\n if (loop) {\n start += count;\n end += count;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n\n start--;\n end--;\n }\n\n start %= count;\n end %= count;\n }\n\n if (end < start) {\n end += count;\n }\n\n return {\n start: start,\n end: end,\n loop: loop,\n style: segment.style\n };\n}\n\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n\n var property = bounds.property,\n startBound = bounds.start,\n endBound = bounds.end;\n var count = points.length;\n\n var _propertyFn2 = propertyFn(property),\n compare = _propertyFn2.compare,\n between = _propertyFn2.between,\n normalize = _propertyFn2.normalize;\n\n var _getSegment = getSegment(segment, points, bounds),\n start = _getSegment.start,\n end = _getSegment.end,\n loop = _getSegment.loop,\n style = _getSegment.style;\n\n var result = [];\n var inside = false;\n var subStart = null;\n var value, point, prevValue;\n\n var startIsBefore = function startIsBefore() {\n return between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n };\n\n var endIsBefore = function endIsBefore() {\n return compare(endBound, value) === 0 || between(endBound, prevValue, value);\n };\n\n var shouldStart = function shouldStart() {\n return inside || startIsBefore();\n };\n\n var shouldStop = function shouldStop() {\n return !inside || endIsBefore();\n };\n\n for (var i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n\n if (point.skip) {\n continue;\n }\n\n value = normalize(point[property]);\n inside = between(value, startBound, endBound);\n\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop: loop,\n count: count,\n style: style\n }));\n subStart = null;\n }\n\n prev = i;\n prevValue = value;\n }\n\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end: end,\n loop: loop,\n count: count,\n style: style\n }));\n }\n\n return result;\n}\n\nfunction _boundSegments(line, bounds) {\n var result = [];\n var segments = line.segments;\n\n for (var i = 0; i < segments.length; i++) {\n var sub = _boundSegment(segments[i], line.points, bounds);\n\n if (sub.length) {\n result.push.apply(result, _toConsumableArray(sub));\n }\n }\n\n return result;\n}\n\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n var start = 0;\n var end = count - 1;\n\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n\n while (start < count && points[start].skip) {\n start++;\n }\n\n start %= count;\n\n if (loop) {\n end += start;\n }\n\n while (end > start && points[end % count].skip) {\n end--;\n }\n\n end %= count;\n return {\n start: start,\n end: end\n };\n}\n\nfunction solidSegments(points, start, max, loop) {\n var count = points.length;\n var result = [];\n var last = start;\n var prev = points[start];\n var end;\n\n for (end = start + 1; end <= max; ++end) {\n var cur = points[end % count];\n\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: loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n\n if (prev.skip) {\n start = end;\n }\n }\n\n prev = cur;\n }\n\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop: loop\n });\n }\n\n return result;\n}\n\nfunction _computeSegments(line, segmentOptions) {\n var points = line.points;\n var spanGaps = line.options.spanGaps;\n var count = points.length;\n\n if (!count) {\n return [];\n }\n\n var loop = !!line._loop;\n\n var _findStartAndEnd = findStartAndEnd(points, count, loop, spanGaps),\n start = _findStartAndEnd.start,\n end = _findStartAndEnd.end;\n\n if (spanGaps === true) {\n return splitByStyles([{\n start: start,\n end: end,\n loop: loop\n }], points, segmentOptions);\n }\n\n var max = end < start ? end + count : end;\n var completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n\nfunction splitByStyles(segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n\n return doSplitByStyles(segments, points, segmentOptions);\n}\n\nfunction doSplitByStyles(segments, points, segmentOptions) {\n var count = points.length;\n var result = [];\n var start = segments[0].start;\n var i = start;\n\n var _iterator9 = _createForOfIteratorHelper(segments),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var segment = _step9.value;\n var prevStyle = void 0,\n style = void 0;\n var prev = points[start % count];\n\n for (i = start + 1; i <= segment.end; i++) {\n var pt = points[i % count];\n style = readStyle(segmentOptions.setContext({\n type: 'segment',\n p0: prev,\n p1: pt\n }));\n\n if (styleChanged(style, prevStyle)) {\n result.push({\n start: start,\n end: i - 1,\n loop: segment.loop,\n style: prevStyle\n });\n prevStyle = style;\n start = i - 1;\n }\n\n prev = pt;\n prevStyle = style;\n }\n\n if (start < i - 1) {\n result.push({\n start: start,\n end: i - 1,\n loop: segment.loop,\n style: style\n });\n start = i - 1;\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n return result;\n}\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}\n\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { merge as $, _isPointInArea as A, _rlookupByKey as B, toPadding as C, each as D, getMaximumSize as E, _getParentNode as F, readUsedSize as G, HALF_PI as H, throttled as I, supportsEventListenerOptions as J, log10 as K, _factorize as L, finiteOrDefault as M, callback as N, _addGrace as O, PI as P, toDegrees as Q, _measureText as R, _int16Range as S, TAU as T, _alignPixel as U, renderText as V, toFont as W, _toLeftRightCenter as X, _alignStartEnd as Y, overrides as Z, _arrayUnique as _, resolve as a, _capitalize as a0, descriptors as a1, isFunction as a2, _attachContext as a3, _createResolver as a4, _descriptors as a5, mergeIf as a6, uid as a7, debounce as a8, retinaScale as a9, niceNum as aA, almostWhole as aB, almostEquals as aC, _decimalPlaces as aD, _longestText as aE, _filterBetween as aF, _lookup as aG, getHoverColor as aH, clone$1 as aI, _merger as aJ, _mergerIf as aK, _deprecated as aL, toFontString as aM, splineCurve as aN, splineCurveMonotone as aO, getStyle as aP, fontString as aQ, toLineHeight as aR, PITAU as aS, INFINITY as aT, RAD_PER_DEG as aU, QUARTER_PI as aV, TWO_THIRDS_PI as aW, _angleDiff as aX, clearCanvas as aa, setsEqual as ab, _elementsEqual as ac, getAngleFromPoint as ad, _readValueToProps as ae, _updateBezierControlPoints as af, _computeSegments as ag, _boundSegments as ah, _steppedInterpolation as ai, _bezierInterpolation as aj, _pointInLine as ak, _steppedLineTo as al, _bezierCurveTo as am, drawPoint as an, addRoundedRectPath as ao, toTRBL as ap, toTRBLCorners as aq, _boundSegment as ar, _normalizeAngle as as, getRtlAdapter as at, overrideTextDirection as au, _textX as av, restoreTextDirection as aw, noop as ax, distanceBetweenPoints as ay, _setMinAndMaxByKey as az, isArray as b, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, defined as h, isObject as i, isNullOrUndef as j, clipArea as k, listenArrayEvents as l, unclipArea as m, toPercentage as n, toDimension as o, formatNumber as p, _angleBetween as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, isNumber as w, _limitValue as x, _lookupByKey as y, getRelativePosition as z };","import React from \"react\"\nimport styled from 'styled-components'\n\nconst Heading2 = ({ color, children }) => {\n if(!color) {\n color = \"black\"; \n }\n return (\n {children}\n )\n} \n\nexport default Heading2;\n\nconst Heading = styled.h2`\n color: ${props => props.color};\n font-size: 2.5rem;\n line-height: 3rem;\n font-weight: 600;\n letter-spacing: -0.1rem;\n margin-bottom: 0px;\n`\n","export default function fbTrack(a, b, c) {\n if (process.env.NODE_ENV === `production` && typeof fbq === `function`) {\n fbq(a, b, c); // eslint-disable-line no-undef\n }\n}\n\n//CompleteRegistration\n// import fbTrack from './fb-track'\n// contactClick = () => fbTrack('track', 'Contact')\n\n\n/*\n\n fbTrack('track', \n 'Lead', \n {content_category: \"Price Guide\", \n content_name: this.props.page, \n currency: 'AUD', \n value: 50.00}\n );\n\n*/","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAdCAYAAABWk2cPAAAC60lEQVRIia1XO6sTURCe3bwfS0IEi5Ri7AQRbmdhIVb3B9hZ6v/wH1haWVjbWQjWt7FVUDEREiHJjXlyY9678k3uHCb7jJqB4Wx2z5xvZs68Ynme51EMyWes+lmTZVn8C6t+jqJI0DAAfRDeu65Lu92On/HNtm2z+pU4UDIMVFslB8QRgNfrNSuRSqVYRjgMOAAqgFFaxtFyuaTVakXpdJpZFPCflT4VICifz7P8YrFgqzOZDINrdwdAiaLv4VgqFApsLawWJ/qBzYVpK/+XKpUK3zHAN5uNCTYTJ6cGFGuKxaIB3W63DCxYxr34kRSpH78O6eLTJWXTNj06q1Oj7kTudRyHxuOxCSiwRDdHr+QcXkTRmw8/6NW7b2TtTSHo9+LpPXpw92akTKvV4mCC1QiybDa7j2jt6yiaXK3p9fvvBpDIo93Oo5dvv8TKAUBcC6MEKznziejnr9+02brEqKzg/u57kwVdLbexsgAUUDBJyiRZW79RIMs+wONgqTlZKucDWRcJGLA0DrTm5OjJw1vwquzm/c/P78RaiVwNO/sgeuPo2XmDbtfLdPF5wNH7+KxO9xu1SAmkCkBLpVLgm+W6rgfTceES3qegXq9H3W6XQcvlsolgRDO7V0ofqsgpCF4DqOSn7jggWzddbD4FcKfTMZ4L6zbGUtEGpQsC/0rD4ZD6/b7pMH5g0rUXwPJhNpsx+N/SYDCgZrPJIABFBQJLlxFLOXrxQgNj03Q65bVarSbWZFxJu92m0WjEYLlcjoMGq+6p5iplcpDERTLDvdITcSCE0SdxEA7APqTEfD7noj6ZTPhQsVBANbC+V5OnJrKuhfWMBGAASJvSJQ1yogxYXAowrH5A8k8OepLDZu1u/JaGLE1Zy+h9whJAiYMZqfFSWDqF5jBQYR2t/vkoElTfsRRqPePKO1KFRY+d/mJwlKUaWCvgZwqZ7pMG7cCd+unAJdcVy6+Qf0+YZYFzk/7LhFGYyNFDHRH9AX7dH6kyg1SFAAAAAElFTkSuQmCC\"","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.OutboundLink = OutboundLink;\nexports.trackCustomEvent = trackCustomEvent;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar createFunctionWithTimeout = function createFunctionWithTimeout(callback, opt_timeout) {\n if (opt_timeout === void 0) {\n opt_timeout = 1000;\n }\n\n var called = false;\n\n var raceCallback = function raceCallback() {\n if (!called) {\n called = true;\n callback();\n }\n };\n\n setTimeout(raceCallback, opt_timeout);\n return raceCallback;\n};\n\nfunction OutboundLink(props) {\n var eventCategory = props.eventCategory,\n eventAction = props.eventAction,\n eventLabel = props.eventLabel,\n eventValue = props.eventValue,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\"]);\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({}, rest, {\n onClick: function onClick(e) {\n if (typeof props.onClick === \"function\") {\n props.onClick(e);\n }\n\n var redirect = true;\n\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey || e.defaultPrevented) {\n redirect = false;\n }\n\n if (props.target && props.target.toLowerCase() !== \"_self\") {\n redirect = false;\n }\n\n if (window.ga) {\n window.ga(\"send\", \"event\", {\n eventCategory: eventCategory || \"Outbound Link\",\n eventAction: eventAction || \"click\",\n eventLabel: eventLabel || props.href,\n eventValue: eventValue,\n transport: redirect ? \"beacon\" : \"\",\n hitCallback: function hitCallback() {\n if (redirect) {\n document.location = props.href;\n }\n }\n });\n } else {\n if (redirect) {\n document.location = props.href;\n }\n }\n\n return false;\n }\n }));\n}\n\nOutboundLink.propTypes = {\n href: _propTypes.default.string,\n target: _propTypes.default.string,\n eventCategory: _propTypes.default.string,\n eventAction: _propTypes.default.string,\n eventLabel: _propTypes.default.string,\n eventValue: _propTypes.default.number,\n onClick: _propTypes.default.func\n};\n/**\n * This allows the user to create custom events within their Gatsby projects.\n *\n * @param {import('gatsby-plugin-google-analytics').CustomEventArgs} args\n * @see https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#events\n */\n\nfunction trackCustomEvent(_ref) {\n var category = _ref.category,\n action = _ref.action,\n label = _ref.label,\n value = _ref.value,\n _ref$nonInteraction = _ref.nonInteraction,\n nonInteraction = _ref$nonInteraction === void 0 ? false : _ref$nonInteraction,\n transport = _ref.transport,\n hitCallback = _ref.hitCallback,\n _ref$callbackTimeout = _ref.callbackTimeout,\n callbackTimeout = _ref$callbackTimeout === void 0 ? 1000 : _ref$callbackTimeout;\n\n if (typeof window !== \"undefined\" && window.ga) {\n var trackingEventOptions = {\n eventCategory: category,\n eventAction: action,\n eventLabel: label,\n eventValue: value,\n nonInteraction: nonInteraction,\n transport: transport\n };\n\n if (hitCallback && typeof hitCallback === \"function\") {\n trackingEventOptions.hitCallback = createFunctionWithTimeout(hitCallback, callbackTimeout);\n }\n\n window.ga(\"send\", \"event\", trackingEventOptions);\n }\n}","import styled from 'styled-components';\n\nconst ActionControl = styled.div.attrs(props => ({\n marginTop: props.marginTop || '20px',\n marginBottom: props.marginBottom || '40px',\n align: props.align || 'left'\n}))`\n margin-top: ${props => props.marginTop};\n margin-bottom: ${props => props.marginBottom};\n text-align: ${props => props.align};\n width: 100%;\n\n`\nexport default ActionControl;\n\n\n","import React from \"react\"\nimport styled from 'styled-components'\n\nconst Grid1 = ({children }) => {\n return (\n <>\n \n {children}\n \n \n )\n} \n\nexport default Grid1\n\nconst Grid = styled.div`\n display: block;\n max-width: 800px;\n`;\n","import React from \"react\"\nimport SectionPageMarginGradient from '../Section/SectionPageMarginGradient'\nimport Grid1 from '../Grid1/Grid1'\nimport PageTitle from '../../Type/PageTitle'\nimport Paragraph1 from '../../Type/Paragraph1'\nimport Spacer from '../Spacer/Spacer'\n\nconst PageHeader = ({ bgColor, title, text, textColor, marginBottom, breadcrumb }) => {\n if(!bgColor) bgColor = \"#3479ae\";\n if(!textColor) textColor = \"white\";\n \n return (\n <>\n \n \n {title}\n \n {text}\n \n {breadcrumb}\n \n \n \n \n )\n} \n\nexport default PageHeader\n\n\n\n","import superPropBase from \"./superPropBase\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import React from \"react\"\nimport styled from 'styled-components'\n\nconst Spacer = ({ height }) => {\n return (\n \n )\n} \nexport default Spacer\n\nconst Space = styled.div`\n display: block;\n width: 100%;\n height: ${props => props.height};\n`;\n","import styled from 'styled-components'\n\nconst InputError = styled.div`\n margin-top: -5px;\n margin-bottom: 10px;\n color: red;\n font-size: 0.8em;\n`;\nexport default InputError\n","import React from \"react\"\nimport styled from 'styled-components'\n\nconst Section = ({ bgColor, children, marginTop, marginBottom }) => {\n if(!marginTop) marginTop = \"0px\";\n if(!marginBottom) marginBottom = \"100px\";\n\n return (\n <>\n \n {children}\n \n \n )\n} \n\nexport default Section\n\nconst Wrapper = styled.section`\n display: grid;\n margin-top: ${props => props.marginTop};\n margin-bottom: ${props => props.marginBottom};\n grid-template-columns: minmax(400px, 1300px);\n background-color: ${props => props.bgColor};\n justify-content: center;\n`;\n\nconst Content = styled.div`\n margin-left: 10px;\n margin-right: 10px;\n\n @media (max-width: 800px) {\n margin-left: 30px;\n margin-right: 30px;\n }\n`;\n","import React from 'react'\n\nimport './DrawerToggleButton.css'\n\nconst drawerToggleButton = props => (\n \n)\n\nexport default drawerToggleButton","import React from 'react';\nimport { Link } from \"gatsby\"\nimport Section from \"../Layout/Section/Section\"\nimport '../SideDrawer/DrawerToogleButton';\nimport Logo from \"./assets/summon-logo-white.svg\";\n\nimport './MainNavigation.css';\nimport DrawerToggleButton from '../SideDrawer/DrawerToogleButton';\n\nconst mainNavigation = props => {\n \n const activeStyles ={\n borderBottom: '2px solid white'\n }\n\n\n return (\n \n
\n
\n \n
\n
\n \n
\n
\n \n \n
\n \n
\n\n );\n}\n\nexport default mainNavigation;","import React from 'react'\nimport { Link } from \"gatsby\"\n\n\nimport './SideDrawer.css';\n\nconst sideDrawer = props => {\n\n \n let drawerClasses = 'side-drawer';\n if (props.show) {\n drawerClasses = 'side-drawer open'; \n }\n\n return (\n \n \n\n );\n \n};\n\nexport default sideDrawer","import React from 'react';\n\nimport './Backdrop.css';\n\nconst backdrop = props => (\n \n {this.state.FormError}\n \n\n \n )\n\n return (\n
\n {this.state.formSubmissionSuccessful && confirmationMessage}\n {!this.state.formSubmissionSuccessful && pageHTML}\n
\n );\n }\n\n}\n\nexport default ValuationPageForm;\n\nconst LabelContainer = styled.div`\n margin-bottom: 10px;\n`;\n\nconst LabelNote = styled.label`\n font-weight: 600;\n font-size: 1rem;\n`;\n\n\n","import React, { Component } from 'react'\nimport { Chart, registerables } from 'chart.js';\nChart.register(...registerables);\n\n//--Chart Style Options--//\nChart.defaults.plugins.legend.display = false;\n//--Chart Style Options--//\n\n\nexport default class BarGraph extends Component {\n\n chartRef = React.createRef();\n\n componentDidMount() {\n this.buildChart();\n }\n\n buildChart = () => {\n const myChartRef = this.chartRef.current.getContext(\"2d\");\n const { data, labels } = this.props;\n\n new Chart(myChartRef, {\n type: \"bar\",\n data: {\n //Bring in data\n labels: labels,\n datasets: [\n {\n label: \" Avg. Price\",\n data: data,\n borderColor: '#3479ae',\n backgroundColor: '#3479ae',\n }\n ]\n },\n options: {\n //Customize chart options\n responsive: true,\n maintainAspectRatio: true,\n scales: {\n y: {\n ticks: {\n // For a category axis, the val is the index so the lookup via getLabelForValue is needed\n callback: function (val, index) {\n // Hide the label of every 2nd dataset\n var options = {\n style: 'currency', currency: 'USD', maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n };\n return new Intl.NumberFormat('en-US', options).format(val);\n },\n }\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n label: function(context) {\n var label = context.dataset.label || '';\n \n if (label) {\n label += ': ';\n }\n if (context.parsed.y !== null) {\n label += new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', maximumFractionDigits: 0, }).format(context.parsed.y);\n }\n return label;\n },\n }\n }\n }\n }\n });\n }\n\n render() {\n return (\n
\n \n
\n )\n }\n}","import styled from 'styled-components';\n\nconst RemoveButton = styled.button.attrs(props => ({\n type: props.type || 'button',\n bgColor: props.bgColor || '#3479ae'\n}))`\nbackground-color: ${props => props.bgColor};\noutline: none;\nborder:${props => props.bgColor} 1px solid;\ncolor: white;\npadding: 5px 10px;\nmargin-right: 10px;\nmargin-bottom: 5px;\ntext-align: center;\ntext-decoration: none;\ndisplay: inline-block;\nfont-size: .8rem;\nfont-weight: bold;\nborder-radius: 14px;\ncursor: pointer;\n\ncursor: pointer;\n &:hover {\n opacity: 0.9;\n }\n`\nexport default RemoveButton;","import React from \"react\"\n//import styled from 'styled-components'\nimport { Link } from 'gatsby'\nimport styles from './MakeModelBadgeTable.module.css';\n\n\n\nconst MakeModelBadgeTable = (props) => {\n\n\n const formatNumber = (amount, decimalCount = 0, decimal = \".\", thousands = \",\") => {\n try {\n if (!amount) return 0;\n decimalCount = Math.abs(decimalCount);\n decimalCount = isNaN(decimalCount) ? 2 : decimalCount;\n\n const negativeSign = amount < 0 ? \"-\" : \"\";\n\n let i = parseInt(amount = Math.abs(Number(amount) || 0).toFixed(decimalCount)).toString();\n let j = (i.length > 3) ? i.length % 3 : 0;\n\n return negativeSign + (j ? i.substr(0, j) + thousands : '') + i.substr(j).replace(/(\\d{3})(?=\\d)/g, \"$1\" + thousands) + (decimalCount ? decimal + Math.abs(amount - i).toFixed(decimalCount).slice(2) : \"\");\n } catch (e) {\n console.log(e);\n }\n }\n\n\n // create a list of cars with same make and model \n let sameMakeModelBadge = props.cars.edges.filter(item => {\n\n if (item.node.model === props.model && item.node.badge === props.badge) {\n return true;\n } else {\n return false;\n }\n });\n\n // order newest to oldest\n sameMakeModelBadge.sort((a, b) => {\n return b.node.year - a.node.year;\n });\n\n // make a table from sameMakeModelBadge\n const sameMakeModelBadgeCars = sameMakeModelBadge.map((edge, i) => {\n let slug = edge.node.carName.replace(/\\s+/g, '-').toLowerCase();\n let moreDetails = \"\";\n\n if (props.id === edge.node.id) {\n moreDetails = \"Selected\";\n } else {\n moreDetails = View;\n }\n return (\n \n {edge.node.year}\n ${formatNumber(edge.node.priceMedian)}\n {formatNumber(edge.node.odometerAvg)} km\n {edge.node.series}\n {moreDetails}\n \n );\n\n });\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n {sameMakeModelBadgeCars}\n \n
\n Year\n \n Median price\n \n Avg. mileage\n \n Series\n \n Details\n
\n )\n}\n\nexport default MakeModelBadgeTable\n\n/*\n\nconst TR = styled.tr`\n &: nth-child(odd) {\n background-color: #f8f8f9;\n }\n`;\n\nconst TH = styled.th`\n text-align: center;\n padding: 10px;\n`;\n\nconst TD = styled.td`\n text-align: center;\n padding: 10px;\n`;\n\n*/\n\n","import React from \"react\"\nimport styled from 'styled-components'\n\nconst CircleStats = (props) => {\n return (\n \n \n \n {props.odometerAvg + \" km\"}\n Avg. mileage\n \n \n \n \n ${props.priceMedian}\n Median. price\n \n \n \n \n {props.daysToSell}\n Avg. days to
sell
\n
\n
\n \n \n {props.count}\n Cars in sample\n \n \n
\n )\n};\n\nexport default CircleStats\n\nconst CircleContainer = styled.div`\n display: grid;\n grid-template-columns: 25% 25% 25% 25%;\n margin-top: 30px;\n\n @media (min-width: 320px) and (max-width: 1050px) {\n grid-template-columns: 50% 50%;\n grid-template-rows: auto;\n }\n\n @media (max-width: 319px) {\n grid-template-columns: 100%;\n grid-template-rows: auto;\n }\n\n`;\n\n\nconst Box = styled.div`\n position: relative;\n margin: 0px;\n padding: 0px;\n height: 200px;\n width: 200px;\n margin-bottom: 30px;\n justify-self: center;\n\n @media (min-width: 320px) and (max-width: 1050px) {\n\n height: 150px;\n width: 150px;\n \n}\n\n\n`\n\n\nconst Stat = styled.div`\n position: absolute;\n left: 0px;\n top: 0px;\n width: 150px;\n height: 150px;\n text-align: center;\n background-color: #f8f8f9;\n clip-path: circle(75px at center); \n`\n\nconst StatTitle = styled.div`\n margin-top: 45px;\n font-size: 1.5rem;\n color: #3479ae;\n font-weight: 400;\n letter-spacing: -0.1rem;\n`\n\nconst StatTag = styled.div`\n font-size: 1.1rem;\n font-weight: 400;\n letter-spacing: -0.1rem;\n`\n\n\n","import React from \"react\"\nimport styled from 'styled-components'\n\nconst Disclaimer = (props) => {\n return (\n \n * All price guides are based on Excluding Government Charge (EGC) sale prices. \n
 
\n Disclaimer: Whilst all reasonable care is taken to produce our price guides, much of the data is from third-party sources, \n and Summon do not warrant the data is reliable, accurate or suitable for your purpose. \n To the maximum extent permitted by law, Summon is not liable for any loss or damages \n relating to your use of this information.\n
\n )\n};\n\n\nexport default Disclaimer\n\nconst Disclaim = styled.p`\n font-size: .9rem;\n color: #666666;\n margin-top: 60px;\n`;\n\n","import React from \"react\"\nimport { graphql, Link, navigate } from 'gatsby'\nimport Img from \"gatsby-image\"\nimport Layout from \"../components/Layout/Layout\"\nimport PageHeader from '../components/Layout/PageHeader/PageHeader'\nimport SectionPageMargin from '../components/Layout/Section/SectionPageMargin'\nimport Highlight from '../components/Listings/Highlight'\nimport Paragraph1 from '../components/Type/Paragraph1'\nimport Grid2Auto from '../components/Layout/Grid2/Grid2Auto'\nimport GridItem from '../components/Layout/GridItem/GridItem'\nimport SEO from \"../components/Seo/Seo\"\nimport styled from 'styled-components'\nimport ValuationPageForm from '../components/ValuationPageForm/ValuationPageForm'\nimport Heading2 from '../components/Type/Heading2'\nimport Heading3 from '../components/Type/Heading3'\nimport Heading4 from '../components/Type/Heading4'\nimport BarGraph from '../components/Chart/barGraph'\nimport BadgeButton from '../components/Layout/Button/RemoveButton'\n\nimport MakeModelBadgeTable from '../components/Valuation/MakeModelBadgeTable'\nimport CircleStats from '../components/Valuation/CircleStats'\nimport Disclaimer from '../components/Valuation/Disclaimer'\n\n\nconst ValuationPage = ({ location, data, pageContext }) => {\n\n const formatNumber = (amount, decimalCount = 0, decimal = \".\", thousands = \",\") => {\n try {\n if (!amount) return 0;\n decimalCount = Math.abs(decimalCount);\n decimalCount = isNaN(decimalCount) ? 2 : decimalCount;\n\n const negativeSign = amount < 0 ? \"-\" : \"\";\n\n let i = parseInt(amount = Math.abs(Number(amount) || 0).toFixed(decimalCount)).toString();\n let j = (i.length > 3) ? i.length % 3 : 0;\n\n return negativeSign + (j ? i.substr(0, j) + thousands : '') + i.substr(j).replace(/(\\d{3})(?=\\d)/g, \"$1\" + thousands) + (decimalCount ? decimal + Math.abs(amount - i).toFixed(decimalCount).slice(2) : \"\");\n } catch (e) {\n console.log(e);\n }\n }\n\n const displayArray = (array) => {\n\n let filtered = [];\n for (var i = 0; i < array.length; i++) {\n if (array[i] != null) {\n filtered.push(array[i]);\n }\n }\n\n let s = filtered.toString();\n s = s.replace(\",\", \" & \");\n return s;\n }\n\n const slugger = (part) => {\n return part.replace(/\\s+/g, '-').toLowerCase();\n }\n\n const confidence = (sampleCount) => {\n let confidenceLevel = \"\";\n if (sampleCount < 10) {\n confidenceLevel = \"low confidence\";\n } else if (sampleCount < 20) {\n confidenceLevel = \"low-medium confidence\";\n } else if (sampleCount < 30) {\n confidenceLevel = \"medium confidence\";\n } else if (sampleCount < 40) {\n confidenceLevel = \"medium-high confidence\";\n } else if (sampleCount >= 40) {\n confidenceLevel = \"high confidence\";\n }\n return confidenceLevel;\n }\n\n const hangeBadgeClick = (badge) => {\n let slug = \"/price/\" + slugger(pageData.make) + \"/\" + slugger(pageData.model) + \"/\" + slugger(badge) + \"/\";\n navigate(slug);\n\n }\n\n const pageData = data.valuation;\n const priceGuideHigh = pageData.priceGuideHigh;\n const priceGuideLow = pageData.priceGuideLow;\n const distinctBadge = [...new Set(data.allValuation.edges.map(x => x.node.badge))];\n\n\n // create a list of badge button, additional navigation\n const badges = distinctBadge.map((badge, i) => {\n return (\n hangeBadgeClick(badge)} >{badge}\n );\n });\n\n\n let badgeTxt = (pageData.badge !== \"(No Badge)\") ? pageData.badge : \"\";\n let seriesTxt = (pageData.series !== \"(No Series)\") ? pageData.series : \"\";\n\n let tagline = pageData.make + \" \" +\n pageData.model + \" \" +\n badgeTxt + \" \" +\n seriesTxt + \" \" +\n displayArray(pageData.bodyType) + \" \" +\n \"private sale price guide in Australia\";\n\n let graphTitle = pageData.year + \" \" +\n pageData.model + \" \" +\n badgeTxt + \" \" +\n pageData.series;\n\n\n let breadcrumb =
\n Valuations:  \n Make   /  \n {pageData.make}   /  \n {pageData.model}   /  \n {pageData.badge}\n
\n\n\n return (\n \n\n \n\n \n\n \n \n \n\n \n\n \n \n \n\n
\n ${formatNumber(priceGuideLow)} - ${formatNumber(priceGuideHigh)}*\n\n \n \n Summon price guide for {pageData.model + \" \"} \n\n {badgeTxt + \" \" +\n seriesTxt + \" \" +\n displayArray(pageData.bodyType) + \" with \" +\n formatNumber(pageData.odometerAvg) + \" km in Australia\"}\n \n\n \n\n \n
\n
\n\n \n This is a price estimate and valuation based on based on private and dealer sales and advertisements \n from the past 12 months. The estimate is based on the average mileage\n of {pageData.year} {pageData.make} {pageData.mode} {badgeTxt} {seriesTxt} vehicles in our database.\n \n\n \n This price range is based on a sample of {pageData.count} matching Australian cars that have sold / been listed for sale\n in the last 12 months. We have {confidence(pageData.count)} in this price guide.\n \n\n\n \n \n \n \n \n \n\n \n\n \n Explore {graphTitle} based on mileage\n \n \n\n Explore {pageData.model} {badgeTxt} based on year and series\n \n\n {pageData.model} badges\n {badges}\n\n \n\n
\n \n\n
\n \n
\n\n \n Request Valuation\n \n \n\n
\n
\n
\n\n
\n )\n}\n\nexport default ValuationPage\n\nconst IntroBlock = styled.div`\n display: flex;\n\n @media (max-width: 600px) {\n display: block; \n } \n\n`;\n\nconst LogoBlock = styled.div`\n border: 1px solid #CCCCCC;\n border-radius: 5px;\n margin-top: 40px;\n width: 160px;\n height: 115px;\n text-align: center;\n margin-right: 20px;\n\n @media (max-width: 600px) {\n width: 100%;\n }\n\n\n`;\n\nconst Highlights = styled.div`\n display: flex;\n margin-top: 30px;\n\n @media (max-width: 800px) {\n display: grid;\n grid-template-columns: 1fr 1fr;\n justify-content: left;\n grid-template-rows: auto auto;\n }\n\n`;\n\nconst FormContainer = styled.div`\n background-color: #f8f8f9;\n padding: 16px;\n width: 300px;\n`;\n\n\n\nexport const PageQuery = graphql`\n query ($id: String!, $make: String!, $model: String!, $logo: String!, $badge: String) {\n\n valuation(id: {eq: $id}) {\n series\n badge\n bodyType\n carName\n count\n daysToSell\n engine\n fuel\n graphData\n graphLabels\n id\n make\n model\n my\n odometerAvg\n odometerMedian\n priceGuideHigh\n priceGuideLow\n priceMedian\n priceSD\n stepSize\n transmission\n year\n }\n\n allValuation(filter: {make: {eq: $make}, model: {eq: $model}}) {\n edges {\n node {\n id\n carName\n priceMedian\n odometerAvg\n badge\n make\n model\n series\n year\n }\n }\n }\n\n logoImg: file(relativePath: { eq: $logo }) {\n childImageSharp {\n fixed(width: 150) {\n ...GatsbyImageSharpFixed\n }\n }\n }\n\n badgeImg: file(relativePath: { eq: $badge }) {\n childImageSharp {\n fixed(width: 204) {\n ...GatsbyImageSharpFixed\n }\n }\n }\n\n }`\n\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import styled from 'styled-components';\n\nconst FormControl = styled.div.attrs(props => ({\n marginTop: props.marginTop || '0px',\n marginBottom: props.marginBottom || '20px',\n align: props.align || 'left'\n}))`\n margin-top: ${props => props.marginTop};\n margin-bottom: ${props => props.marginBottom};\n text-align: ${props => props.align};\n\n`\nexport default FormControl;\n\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import styled from 'styled-components';\n\nconst Button = styled.button.attrs(props => ({\n type: props.type || 'button',\n bgColor: props.bgColor || '#3479ae'\n}))`\nbackground-color: ${props => props.bgColor};\nborder: none;\ncolor: white;\npadding: 10px;\ntext-align: center;\ntext-decoration: none;\ndisplay: inline-block;\nfont-size: 0.9rem;\nfont-weight: normal;\nmargin: 2px 2px 2px 2px;\npadding-left: 20px;\npadding-right: 20px;\nborder-radius: 5px;\ncursor: pointer;\n &:hover {\n opacity: 0.9;\n }\n`\nexport default Button;","import styled from 'styled-components'\n\nconst Heading4 = styled.h3.attrs(props => ({\n color: props.color || 'black'\n }))`\n color: ${props => props.color};\n font-size: 1.6rem;\n line-height: 3rem;\n font-weight: 600;\n letter-spacing: -0.1rem;\n margin-bottom: 20px;\n `\n export default Heading4;\n","import React from \"react\"\nimport styled from 'styled-components'\n\nconst SectionPageMarginGradient = ({ bgColor, children, marginTop, marginBottom }) => {\n if(!marginTop) marginTop = \"0px\";\n if(!marginBottom) marginBottom = \"100px\";\n\n return (\n <>\n \n {children}\n \n \n )\n} \n\nexport default SectionPageMarginGradient\n\nconst Wrapper = styled.section`\n display: grid;\n margin-top: ${props => props.marginTop};\n margin-bottom: ${props => props.marginBottom};\n grid-template-columns: minmax(400px, 1300px);\n background: rgb(57,136,196);\n background: linear-gradient(180deg, rgba(57,136,196,1) 0%, rgba(49,117,169,1) 100%);\n justify-content: center;\n`;\n\nconst Content = styled.div`\n margin-left: 100px;\n margin-right: 100px;\n\n @media (max-width: 800px) {\n justify-content: center;\n margin-left: 30px;\n margin-right: 30px;\n }\n`;\n","import React from \"react\"\nimport styled from 'styled-components'\n\nconst PageTitle = ({ color, children }) => {\n if(!color) {\n color = \"black\"; \n }\n return (\n {children}\n )\n} \n\nexport default PageTitle;\n\nconst Title = styled.h1`\n margin-top: 30px;\n font-weight: 600;\n color: ${props => props.color};\n font-size: 3rem;\n line-height: 3rem;\n letter-spacing: -0.1rem;\n`\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"v_th\":\"MakeModelBadgeTable-module--v_th--3hrpY\",\"v_td\":\"MakeModelBadgeTable-module--v_td--2Frhb\",\"v_thead\":\"MakeModelBadgeTable-module--v_thead--2OsYm\",\"v_tbody\":\"MakeModelBadgeTable-module--v_tbody--1yCUI\",\"v_tr\":\"MakeModelBadgeTable-module--v_tr--hqJEq\",\"v_table\":\"MakeModelBadgeTable-module--v_table--28XmY\"};","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import styled from 'styled-components'\n\nconst Heading3 = styled.h3.attrs(props => ({\n color: props.color || 'black'\n }))`\n color: ${props => props.color};\n font-size: 2rem;\n line-height: 3rem;\n font-weight: 600;\n letter-spacing: -0.1rem;\n margin-bottom: 20px;\n `\n export default Heading3;\n","import React from 'react';\nimport { Link } from \"gatsby\"\nimport SectionPageMargin from '../Layout/Section/SectionPageMargin'\nimport Grid2 from '../Layout/Grid2/Grid2'\nimport GridItem from '../Layout/GridItem/GridItem'\nimport styled from 'styled-components'\nimport FacebookIcon from '../../images/assets/facebook.svg'\nimport TwitterIcon from '../../images/assets/twitter.svg'\nimport InstagramIcon from '../../images/assets/instagram.svg'\nimport IconButton from '../Layout/Button/IconButton'\n\n\nconst footer = props => (\n\n \n \n \n \n Terms and conditions\n Privacy policy\n Contact\n Covid Measures\t\n \n {'Copyright © Summon IO Pty Ltd'}\n {' '}\n {new Date().getFullYear()}\n {'.'}
\n ACN: 640 473 463\n
\n
\n \n \n handleClick(\"https://www.facebook.com/summoncars\")}>\n \n \n handleClick(\"https://www.twitter.com/summon_cars\")}>\n \n \n handleClick(\"https://www.instagram.com/summoncars\")}>\n \n \n \n \n
\n \n
\n \n);\n\nconst handleClick = (url) => {\n const a = document.createElement(\"a\");\n a.href = url;\n a.target = \"_blank\";\n a.rel = \"noopener\";\n a.click();\n}\n\n\nconst CopyContainer = styled.div`\n padding-top: 10px;\n padding-bottom: 20px;\n color: white;\n`;\n\nconst ACNContainer = styled.div`\n padding-top: 5px;\n color: white;\n`;\n\n\nconst StyledLink = styled(Link)`\n\n font-weight: bold;\n text-decoration: none;\n color: white;\n margin-right: 30px;\n line-height: 2rem;\n\n &:hover {\n color: #c7edfb;\n }\n\n\n @media (max-width: 800px) {\n display: block;\n margin-bottom: 10px; \n }\n\n`\n\nconst IconContainer = styled.div`\n\n padding-bottom: 20px;\n`;\n\n\n\nexport default footer;","/**\n * Layout component that queries for data\n * with Gatsby's useStaticQuery component\n *\n * See: https://www.gatsbyjs.org/docs/use-static-query/\n */\n\nimport React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport Footer from \"../Footer/Footer\"\nimport Header from \"../Header/Header\"\nimport \"./Layout.css\"\n\nconst Layout = ({ children }) => {\n \n return (\n <>\n
\n \n
{children}
\n\n