{"version":3,"sources":["webpack:///../../../src/components/VToolbar/index.ts","webpack:///./node_modules/xlsx/dist/xlsx.mini.min.js","webpack:///./src/views/reporteria/generalGraficaUsuarios.vue?5546","webpack:///./node_modules/json-as-xlsx/src/index.js","webpack:///../../../src/components/VTabs/VTab.ts","webpack:///../../../src/components/VWindow/VWindowItem.ts","webpack:///../../../src/components/VTabs/VTabItem.ts","webpack:///../../../src/components/VTabs/VTabsBar.ts","webpack:///../../../src/components/VWindow/VWindow.ts","webpack:///../../../src/components/VTabs/VTabsItems.ts","webpack:///../../../src/components/VTabs/VTabsSlider.ts","webpack:///../../../src/components/VTabs/VTabs.ts","webpack:///./src/views/reporteria/reporteria.vue","webpack:///./src/views/reporteria/general.vue","webpack:///./src/views/reporteria/generalParametros.vue","webpack:///src/views/reporteria/generalParametros.vue","webpack:///./src/views/reporteria/generalParametros.vue?0b63","webpack:///./src/views/reporteria/generalParametros.vue?ce58","webpack:///./src/views/reporteria/generalGraficaUsuarios.vue","webpack:///./node_modules/chart.js/dist/chunks/helpers.segment.js","webpack:///./node_modules/chart.js/dist/chart.esm.js","webpack:///src/views/reporteria/generalGraficaUsuarios.vue","webpack:///./src/views/reporteria/generalGraficaUsuarios.vue?5fc2","webpack:///./src/views/reporteria/generalGraficaUsuarios.vue?3821","webpack:///./src/views/reporteria/generalGraficaSectores.vue","webpack:///src/views/reporteria/generalGraficaSectores.vue","webpack:///./src/views/reporteria/generalGraficaSectores.vue?f868","webpack:///./src/views/reporteria/generalGraficaSectores.vue?66a3","webpack:///./src/views/reporteria/generalGraficaRegiones.vue","webpack:///src/views/reporteria/generalGraficaRegiones.vue","webpack:///./src/views/reporteria/generalGraficaRegiones.vue?fedd","webpack:///./src/views/reporteria/generalGraficaRegiones.vue?ebcb","webpack:///./src/views/reporteria/generalGraficaDivisiones.vue","webpack:///src/views/reporteria/generalGraficaDivisiones.vue","webpack:///./src/views/reporteria/generalGraficaDivisiones.vue?1ee9","webpack:///./src/views/reporteria/generalGraficaDivisiones.vue?8393","webpack:///./src/views/reporteria/generalGraficaTiposDeVisita.vue","webpack:///src/views/reporteria/generalGraficaTiposDeVisita.vue","webpack:///./src/views/reporteria/generalGraficaTiposDeVisita.vue?15ba","webpack:///./src/views/reporteria/generalGraficaTiposDeVisita.vue?9d61","webpack:///./src/components/mapa_consolidado.vue","webpack:///src/components/mapa_consolidado.vue","webpack:///./src/components/mapa_consolidado.vue?ddd8","webpack:///./src/components/mapa_consolidado.vue?cc2d","webpack:///src/views/reporteria/general.vue","webpack:///./src/views/reporteria/general.vue?2a96","webpack:///./src/views/reporteria/general.vue?fcd5","webpack:///src/views/reporteria/reporteria.vue","webpack:///./src/views/reporteria/reporteria.vue?3faf","webpack:///./src/views/reporteria/reporteria.vue?1c44","webpack:///./src/views/reporteria/generalGraficaTiposDeVisita.vue?fa0d","webpack:///./src/views/reporteria/generalGraficaRegiones.vue?463d","webpack:///./src/views/reporteria/generalGraficaDivisiones.vue?87d6","webpack:///./src/views/reporteria/generalGraficaSectores.vue?daa6"],"names":["VToolbarTitle","createSimpleFunctional","VToolbarItems","VToolbar","XLSX","make_xlsx_lib","e","version","r","t","a","n","push","i","0","1","2","77","128","129","130","134","136","161","162","163","177","178","186","204","222","238","255","69","s","indexOf","l","o","c","f","length","charCodeAt","u","String","fromCharCode","join","h","d","slice","p","m","v","g","b","encode","isNaN","charAt","decode","replace","w","Buffer","process","versions","node","k","y","from","x","bind","alloc","allocUnsafe","S","Array","_","C","split","map","A","ArrayBuffer","Uint8Array","E","isArray","F","Error","T","O","concat","apply","D","M","N","R","Math","round","pow","floor","H","q","abs","date1904","Date","setDate","getDate","getFullYear","getMonth","getDay","parse_date_code","getTime","getTimezoneOffset","toString","_general_int","toFixed","toPrecision","toExponential","log","LOG10E","substr","toUpperCase","z","_general_num","_general","match","parseInt","min","max","P","I","lastIndexOf","_split","toLowerCase","is_date","_eval","L","parseFloat","B","dateNF","table","W","undefined","load","_table","get_table","load_table","init_table","format","5","6","7","8","23","24","25","26","27","28","29","30","31","32","33","34","35","36","41","42","43","44","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","70","71","72","73","74","75","76","78","79","80","81","RegExp","forEach","U","Int32Array","bstr","buf","str","j","getHours","getMinutes","getSeconds","_W","_R","setMilliseconds","setFullYear","setMonth","setHours","setMinutes","setSeconds","Kr","mtime","atime","ctime","mt","Ae","chk","name","fat_addrs","ssz","shift","FileIndex","FullPaths","raw","header","sectors","ceil","type","start","size","$r","qr","nodes","data","vr","br","color","clsid","state","ct","storage","content","Wr","readFileSync","root","CLSID","find","pop","sort","fileType","Fe","DIFSECT","FATSECT","ENDOFCHAIN","V","MAXREGSECT","FREESECT","HEADER_SIGNATURE","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","HEADER_CLSID","EntryTypes","$","writeFileSync","X","filename","G","InflateRaw","_processChunk","_finishFlushFlag","bytesRead","console","error","message","Y","_e","K","deflateRawSync","he","J","Z","Q","ee","re","te","ae","ne","ie","se","le","oe","ce","fe","copy","set","ue","de","Uint16Array","pe","me","ve","ge","be","we","ke","ye","xe","Se","Ce","Ee","Oe","unsafe","compression","Te","utils","cfb_gc","De","splice","Me","Ne","read","parse","write","writeFile","cfb_new","cfb_add","cfb_del","cfb_mov","ReadShift","jr","CheckField","Yr","prep_blob","bconcat","use_zlib","_deflateRaw","_inflateRaw","consts","module","exports","Je","IE_SaveFile","Blob","navigator","msSaveBlob","saveAs","URL","document","createElement","createObjectURL","chrome","downloads","download","revokeObjectURL","setTimeout","url","href","body","appendChild","click","removeChild","File","Folder","open","encoding","close","Object","keys","prototype","hasOwnProperty","call","setTime","JSON","stringify","Number","isFinite","NaN","test","getYear","asNodeBuffer","asBinary","_data","getContent","files","file","Re","trim","Pe","Ie","Le","Be","ze","We","$e","je","He","Ye","Ke","qe","Ze","Qe","er","rr","tr","ar","nr","ir","baseType","WTF","sr","lr","or","cr","fr","toISOString","ur","hr","dc","dcterms","dcmitype","mx","sjs","vt","xsi","xsd","dr","ss","dt","mv","html","pr","Infinity","mr","LN2","Or","Dr","gr","Br","wr","kr","yr","xr","Lr","Sr","_r","Cr","Ar","Er","Fr","Tr","Rr","Pr","Mr","Nr","isBuffer","readUInt32LE","readDoubleLE","cptable","zr","Ur","this","lens","Hr","Xr","Vr","Gr","Zr","XLSBRecordEnum","Qr","next","end","_bufs","it","ot","st","ht","ft","pt","gt","bt","wt","XF","numFmtId","kt","Vt","yt","sheet","SheetNames","Sheets","xt","dense","origin","nullError","sheetStubs","cellDates","St","_t","Ct","At","Et","Ft","Tt","Ot","Dt","Mt","Nt","Rt","Lt","3","4","9","10","11","12","13","14","15","16","17","19","22","2147483648","2147483651","1919054434","Bt","18","jt","Ht","Xt","Gt","Yt","Kt","workbooks","xlsx","xlsm","xlsb","xlam","xltx","strs","comments","sheets","charts","dialogs","macros","styles","Jt","qt","rels","links","coreprops","extprops","custprops","themes","calcchains","vba","drawings","TODO","xmlns","Zt","Extension","ContentType","PartName","CT","calcchain","sst","style","defaults","Qt","ea","ra","bookType","ta","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","VBA","aa","na","Type","Target","Id","TargetMode","RELS","ia","sa","la","oa","ca","CORE_PROPS","fa","ua","ha","da","pa","Props","CreatedDate","ModifiedDate","ma","EXT_PROPS","ga","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","ba","HeadingPairs","TitlesOfParts","wa","ka","Application","CUST_PROPS","ya","xa","warn","Sa","_a","fmtid","pid","Ca","100","101","102","103","104","105","106","107","120","121","122","123","124","125","126","150","151","152","200","201","202","203","20","21","37","38","87","88","89","108","135","codepage","offset","len","dec","sheetRows","Pl","to_workbook","to_sheet","from_sheet","Aa","AA","BA","CA","DA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Ba","Da","Ha","Ja","Ai","Bi","Ci","Hi","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","Kc","DN","Dn","Hy","qn","ei","hidden","wch","nn","hpt","hpx","cn","Qn","width","wpx","Qa","en","on","Ea","Fa","Ta","FS","ti","cellText","cellNF","PRN","pl","Oa","val","shadow","cp","outline","sz","strike","uval","rgb","family","valign","Ma","filter","Na","Ra","Pa","Ia","La","cellHTML","za","Wa","$a","Count","count","Unique","uniqueCount","SST","Ua","ja","bookSST","main","Xa","Va","Ga","Ya","Ka","qa","Za","rn","tn","an","MDW","customWidth","sn","ln","un","Borders","diagonalUp","diagonalDown","hn","Fills","patternType","bgColor","indexed","theme","tint","fgColor","dn","Fonts","bold","italic","underline","condense","extend","vertAlign","scheme","auto","index","themeElements","clrScheme","pn","NumberFmt","formatCode","mn","vn","gn","bn","CellXf","vertical","horizontal","textRotation","indent","wrapText","alignment","wn","kn","yn","xn","SSF","cellXfs","STY","THEME","Sn","_n","lastClr","Cn","An","En","Fn","Tn","On","Mn","Nn","themeXLSX","Rn","Pn","In","IMG","DRAW","Ln","Bn","joinstyle","gradientshapeok","id","coordsize","path","color2","angle","obscured","fillcolor","strokecolor","zn","ref","author","Wn","authorId","guid","CMNT","$n","Un","jn","Vn","Gn","Yn","Kn","Jn","DS","MS","Zn","ri","ai","ni","ii","WS","si","Map","li","has","get","oi","level","outlineLevel","ci","left","right","top","bottom","footer","fi","revssf","ssf","fontId","fillId","borderId","xfId","applyNumberFormat","ui","cellStyles","raw_rgb","hi","di","pi","mi","vi","gi","bi","wi","ki","yi","xi","Si","_i","Ei","Wi","Pi","ji","Li","Mi","Ni","codeName","CodeName","Fi","vbaraw","Workbook","summaryBelow","summaryRight","above","Ti","Oi","Di","password","crypto_CreatePasswordVerifier_Method1","location","Rel","tooltip","Tooltip","Ri","Ii","Names","Name","Sheet","Ref","zi","Views","zoomScale","zoom","rightToLeft","RTL","$i","workbookViewId","Ui","Strings","revStrings","cellFormula","xlfn","customHeight","Xi","Vi","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","ignoreEC","numberStoredAsText","sqref","Gi","Yi","CHART","CHARTEX","CS","Ji","Qi","rs","ts","as","ns","is","ls","WBProps","CalcPr","WBView","cs","fs","us","hs","ds","ps","AppVersion","Hidden","comment","Comment","localSheetId","ms","vs","sheetId","gs","parse_wb_bin","bs","parse_ws_bin","ws","ks","ys","xs","parse_sty_bin","Ss","_s","parse_sst_bin","Cs","parse_comments_bin","As","parse_cc_bin","parse_cc_xml","Es","Fs","write_wb_bin","Ts","write_ws_bin","Ds","write_sty_bin","Ms","write_sst_bin","Ns","write_comments_bin","Rs","colspan","rowspan","jl","book_new","book_append_sheet","editable","_row","BEGIN","END","_preamble","Ps","getElementsByTagName","Bs","display","children","hasAttribute","getAttribute","innerHTML","Is","Ls","zs","getPropertyValue","ownerDocument","defaultView","getComputedStyle","Ws","day","month","year","hours","minutes","seconds","era","quarter","xlml_normalize","value","xlmlregex","lastIndex","exec","formula","ods_to_csf_formula","ods_to_csf_3D","bookSheets","$s","parse_manifest","js","Hs","ods","csf_to_ods_formula","csf_to_ods_3D","write_meta_ods","Xs","write_rdf","write_manifest","Vs","Gs","Ys","Ks","Bl","Js","qs","Zs","Qs","RTF","el","zl","rl","tl","al","WK_","sheet_to_wk1","nl","il","sl","ll","ol","strRelID","cl","fl","ul","bookProps","Custprops","bookDeps","Directory","Deps","Styles","Themes","bookFiles","bookVBA","bin","hl","parse_DataSpaceVersionInfo","parse_DataSpaceMap","comps","parse_DataSpaceDefinition","parse_Primary","parse_EncryptionInfo","decrypt_agile","decrypt_std76","dl","wbrels","foo","General","rId1","ml","parse_xlscfb","vl","gl","parse_xlml","bl","wl","kl","yl","xl","Sl","_l","Cl","nodebuffer","string","generate","encrypt_agile","Al","write_xlscfb","El","Fl","Tl","Ol","write_xlml","book_to_wk3","biff","write_biff_buf","Dl","xls","htm","slk","socialcalc","Sh33tJS","Ml","Nl","Function","Rl","defval","defineProperty","enumerable","__rowNum__","rawNumbers","row","isempty","range","blankrows","Il","Ll","forceQuotes","RS","skipHidden","strip","Wl","$l","skipHeader","sheet_get_cell","Ul","encode_col","encode_row","encode_cell","encode_range","decode_col","decode_row","split_cell","decode_cell","decode_range","format_cell","get_formulae","make_csv","make_json","make_formulae","sheet_add_aoa","sheet_add_json","sheet_add_dom","aoa_to_sheet","json_to_sheet","table_to_sheet","table_to_book","sheet_to_csv","sheet_to_txt","sheet_to_json","sheet_to_html","sheet_to_formulae","sheet_to_row_object_array","book_set_sheet_visibility","cell_set_number_format","cell_set_hyperlink","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","parse_zip","readFile","writeFileAsync","CFB","window","__esModule","getWorksheetColumnWidths","getJsonSheetRow","getContentProperty","xlsx_mini_min_1","property","accessContentProperties","properties","columns","jsonSheetRow","column","label","applyColumnFormat","worksheet","columnIds","columnFormats","columnFormat","getWorksheetColumnIds","columnRange","address","getObjectLength","object","extraLength","columnLetters","columnCells","cell","maxWidthCell","reduce","maxWidth","cellId","cellContentLength","cellFormatLength","largestWidth","getWorksheet","jsonSheet","settings","jsonSheetRows","contentItem","worksheetColumnIds","worksheetColumnFormats","jsonSheetColumn","writeWorkbook","workbook","_b","fileName","writeOptions","jsonSheets","workbookCallback","actualSheet","actualIndex","worksheetName","baseMixins","mixins","Routable","GroupableFactory","Themeable","props","ripple","Boolean","default","proxyClass","computed","classes","options","disabled","groupClasses","to","$router","resolve","$route","append","methods","preventDefault","detail","$el","blur","$emit","toggle","isActive","tabsBar","mandatory","render","tag","generateRouteLink","attrs","role","tabindex","keydown","keyCode","keyCodes","enter","$slots","Bootable","directives","Touch","reverseTransition","transition","required","inTransition","computedTransition","windowGroup","internalReverse","genDefaultSlot","genWindowItem","$createElement","staticClass","class","$listeners","onAfterTransition","transitionCount","transitionHeight","onBeforeTransition","convertToUnit","clientHeight","onTransitionCancelled","onEnter","$nextTick","beforeEnter","afterEnter","enterCancelled","beforeLeave","afterLeave","leaveCancelled","showLazyContent","VWindowItem","item","domProps","BaseSlideGroup","SSRBootable","provide","isMobile","showArrows","themeClasses","watch","items","internalValue","callSlider","isBooted","genContent","onRouteChange","oldVal","newPath","oldPath","hasNew","hasOld","BaseItemGroup","activeClass","continuous","nextIcon","prevIcon","reverse","showArrowsOnHover","touch","touchless","changedByDelimiters","internalHeight","isReverse","axis","direction","hasActiveItems","hasNext","internalIndex","hasPrev","findIndex","getValue","$vuetify","rtl","updateReverse","mounted","requestAnimationFrame","genContainer","genControlIcons","height","genIcon","icon","stopPropagation","lang","$scopedSlots","_c","VBtn","VIcon","large","icons","prev","getNextIndex","nextIndex","getPrevIndex","prevIndex","itemsLength","VWindow","isDark","rootIsDark","Colorable","setBackgroundColor","Proxyable","Resize","alignWithTitle","backgroundColor","centerActive","centered","fixedTabs","grow","hideSlider","iconsAndText","mobileBreakpoint","optional","sliderColor","sliderSize","resizeTimeout","slider","transitionTime","isReversed","sliderStyles","computedColor","appIsDark","ResizeObserver","obs","onResize","observe","$on","disconnect","$refs","selectedItems","activeTab","scrollHeight","offsetLeft","offsetWidth","offsetTop","scrollWidth","genBar","dark","light","change","setTextColor","VTabsBar","genSlider","genItems","VTabsItems","VTabsSlider","_isDestroyed","clearTimeout","parseNodes","tab","slot","vnode","componentOptions","Ctor","modifiers","quiet","scopedSlots","fn","callback","expression","_vm","key","staticRenderFns","fnEmitMotivoDeVisitaId","fnEmitSelectedDate","fnEmitSearchSupervisora","fnEmitsearchAgenteDeComercio","fnEmitSearchConsejera","fnEmitSearchRegion","fnEmitSearchProspecto","fnEmitSearchNombramiento","grid","model","reporte_seleccionado","fn_consolidado_excel","_v","selectedDias","rawName","dialogVarSelectedMes","selectedMes","modalMes","mesDialog","save","dialogVarSelectedDia","modalFechas","dialogVarMaxDia","diaDialog","loadingDivisiones","searchSyncDivisiones","searchDivision","itemsRegiones","searchSyncRegiones","searchRegion","itemsSectores","searchSyncSectores","searchSector","searchAgenteDeComercio","itemsSupervisoras","loadingSupervisoras","searchSyncSupervisoras","searchSupervisora","flag_mostrar_parametro_if_motivo_de_visita_presente","itemsConsejeras","loadingConsejeras","searchSyncConsejeras","searchConsejera","localStoreMotivos","search_motivo_de_visita_id","texto_para_comentario_titulo","texto_para_comentario_label","searchComentario","searchProspecto","searchNombramiento","require","text","reporte_seleccionado_items","text_array","modal","show","loadingAgenteDeComercio","loadingSectores","itemsDivisiones","loadingRegiones","moment","currentSupervisora","fn_dialogVarSelectedMes","fn_dialogVarSelectedDia","excel_parametros","findVisitas","findUsuarios","findConsejeras","findRRCPR","getColor","getParamasAutoCompleteSupervisoras","params","$ne","region","$like","codigo","nombre_completo","alias","getParamasAutoCompleteConsejeras","$in","getParamasAutocompleteSectores","getParamasAutocompleteDivisiones","division","getParamasAutocompleteRegiones","fnGetAutocompleteSupervisoras","query","then","result","supervisora","fnGetAutocompleteConsejeras","consejera","fnGetAutocompleteSectores","fnGetAutocompleteDivisiones","fnGetAutocompleteRegiones","fn_arrayToCommaStringUsuarios","arrayObjects","fn_arrayToCommaStringUsuarios_paraExcel","fn_arrayToCommaString","fn_arrayToCommaString_paraExcel","flag_formulario_con_parametros","dialogVarMinDia","startOf","endOf","parametros_state","requestAnimFrame","throttled","thisArg","updateFn","updateArgs","args","ticking","rest","debounce","delay","timeout","_toLeftRightCenter","align","_alignStartEnd","_textX","check","noop","uid","isNullOrUndef","isObject","isNumberFinite","finiteOrDefault","defaultValue","valueOrDefault","toPercentage","dimension","endsWith","toDimension","each","loopable","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","clone$1","source","target","create","klen","isValidKey","_merger","tval","sval","merge","sources","merger","mergeIf","_mergerIf","emptyString","dot","indexOfDotOrLength","idx","resolveObjectKey","obj","pos","_capitalize","defined","isFunction","setsEqual","_isClickEvent","PI","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","niceNum","roundedRange","almostEquals","niceRange","fraction","niceFraction","_factorize","sqrt","isNumber","epsilon","almostWhole","rounded","_setMinAndMaxByKey","array","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","atan2","distance","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_int16Range","_isBetween","atEdge","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","easeInBounce","easeOutBounce","easeInOutBounce","lim","p2b","n2b","b2n","n2p","map$1","hex","h1","h2","eq","isShort","hexParse","ret","hexString","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","hueValue","rgb2hsl","calln","hsl2rgb","hwb2rgb","hsv2rgb","hue","hueParse","p1","p2","rotate","deg","hslString","names$1","OiceXe","antiquewEte","aqua","aquamarRe","azuY","beige","bisque","black","blanKedOmond","Xe","XeviTet","bPwn","burlywood","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","crimson","cyan","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","khaki","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","lime","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","navy","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","peru","pRk","plum","powMrXe","purpN","YbeccapurpN","Yd","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","silver","skyXe","UXe","UWay","UgYy","snow","sprRggYF","stAlXe","tan","teO","tEstN","tomato","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","unpack","unpacked","tkeys","ok","nk","nameParse","transparent","RGB_RE","rgbParse","rgbString","interpolate","rgb1","rgb2","modHSL","ratio","tmp","clone","proto","assign","fromObject","input","functionParse","Color","_rgb","_valid","weight","c1","c2","w2","w1","index_esm","isPatternOrGradient","getHoverColor","saturate","darken","overrides","getScope$1","scope","values","Defaults","_descriptors","animation","borderColor","datasets","devicePixelRatio","context","chart","platform","getDevicePixelRatio","elements","events","font","lineHeight","hover","hoverBackgroundColor","ctx","hoverBorderColor","hoverColor","indexAxis","interaction","mode","intersect","includeInvisible","maintainAspectRatio","onHover","onClick","parsing","plugins","responsive","scale","scales","showLine","drawActiveElementsOnTop","describe","targetScope","targetName","scopeObject","targetScopeObject","privateName","defineProperties","writable","local","_scriptable","startsWith","_indexable","_fallback","toFontString","_measureText","gc","longest","textWidth","measureText","_longestText","arrayOfThings","cache","garbageCollect","jlen","thing","nestedThing","restore","gcLen","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","getContext","resetTransform","clearRect","drawPoint","drawPointLegend","xOffset","yOffset","cornerRadius","pointStyle","rotation","radius","rad","translate","drawImage","beginPath","ellipse","arc","closePath","moveTo","lineTo","SQRT1_2","rect","fill","borderWidth","stroke","_isPointInArea","point","area","margin","clipArea","clip","unclipArea","_steppedLineTo","previous","flip","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","renderText","opts","lines","strokeWidth","strokeColor","line","setRenderOpts","strokeStyle","lineWidth","strokeText","fillText","decorateText","translation","fillStyle","textAlign","textBaseline","strikethrough","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","FONT_STYLE","toLineHeight","matches","numberOrZero","_readValueToProps","objProps","prop","toTRBL","toTRBLCorners","toPadding","toFont","fallback","inputs","info","cacheable","_addGrace","minmax","grace","beginAtZero","keepZero","add","createContext","parentContext","_lookup","cmp","mid","lo","_lookupByKey","_rlookupByKey","_filterBetween","arrayEvents","listenArrayEvents","listener","_chartjs","listeners","configurable","method","base","res","unlistenArrayEvents","stub","_arrayUnique","Set","_createResolver","scopes","prefixes","rootScopes","getTarget","_resolve","Symbol","toStringTag","_cacheable","_scopes","_rootScopes","_getTarget","override","Proxy","_keys","_cached","_resolveWithPrefixes","Reflect","getOwnPropertyDescriptor","getPrototypeOf","getKeysFromAllScopes","includes","_storage","_attachContext","proxy","subProxy","descriptorDefaults","_proxy","_context","_subProxy","_stack","setContext","receiver","_resolveWithContext","allKeys","ownKeys","scriptable","indexable","_allKeys","isScriptable","isIndexable","readKey","prefix","needsSubResolver","constructor","descriptors","_resolveScriptable","_resolveArray","delete","createSubResolver","arr","resolver","resolveFallback","getScope","parent","addScopes","parentScopes","parentFallback","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","_parseObjectDataRadialScale","meta","iScale","_parsing","parsed","EPSILON","getPoint","points","skip","getValueAxis","splineCurve","firstPoint","middlePoint","afterPoint","current","d01","d12","s01","s12","fb","monotoneAdjust","deltaK","mK","pointsLen","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointAfter","monotoneCompute","valueAxis","delta","pointBefore","iPixel","vPixel","splineCurveMonotone","slopeDelta","capControlPoint","capBezierPoints","inArea","inAreaPrev","inAreaNext","_updateBezierControlPoints","loop","controlPoints","spanGaps","cubicInterpolationMode","tension","_isDomSupported","_getParentNode","domNode","parentNode","host","parseMaxStyle","styleValue","parentProperty","valueInPixels","element","getStyle","positions","getPositionedStyle","suffix","useOffsetPos","shadowRoot","getCanvasPosition","touches","offsetX","offsetY","box","getBoundingClientRect","clientX","clientY","getRelativePosition","evt","borderBox","boxSizing","paddings","borders","getContainerSize","maxHeight","container","containerStyle","containerBorder","containerPadding","clientWidth","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","containerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","addEventListener","removeEventListener","readUsedSize","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","getNumberFormat","locale","cacheKey","formatter","Intl","NumberFormat","formatNumber","num","getRightToLeftAdapter","rectX","itemWidth","getLeftToRightAdapter","_itemWidth","getRtlAdapter","overrideTextDirection","original","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","propertyFn","between","compare","normalize","normalizeSegment","getSegment","segment","bounds","startBound","endBound","_boundSegment","prevValue","inside","subStart","startIsBefore","endIsBefore","shouldStart","shouldStop","_boundSegments","segments","sub","findStartAndEnd","solidSegments","last","cur","stop","_computeSegments","segmentOptions","_loop","splitByStyles","completeLoop","_fullLoop","doSplitByStyles","chartContext","_chart","baseStyle","readStyle","_datasetIndex","prevStyle","addStyle","dir","p0","p0DataIndex","p1DataIndex","styleChanged","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","_request","_charts","_running","_lastDate","anims","date","callbacks","numSteps","duration","initial","currentStep","_update","_refresh","now","remaining","running","draw","_active","_total","tick","_notify","complete","progress","event","cb","_getAnims","acc","_duration","cancel","animator","interpolators","factor","c0","valid","mix","cfg","currentValue","_fn","_easing","easing","_start","_target","_prop","_from","_to","_promises","elapsed","remain","promises","Promise","rej","resolved","numbers","colors","active","resize","animations","visible","hide","config","_properties","configure","animatedProps","getOwnPropertyNames","option","newOptions","resolveTargetOptions","_createAnimations","$shared","awaitAll","$animations","_animateOptions","update","anim","wait","all","scaleClip","allowedOverflow","defaultClip","xScale","yScale","toClip","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","applyStack","stack","dsIndex","singleMode","otherValue","convertObjectDataToArray","adata","isStacked","stacked","getStackKey","indexScale","valueScale","getUserBounds","minDefined","maxDefined","NEGATIVE_INFINITY","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","vScale","positive","getMatchingVisibleMetas","updateStacks","controller","_cachedMeta","_stacks","iAxis","vAxis","itemStacks","_top","_bottom","getFirstScaleId","createDatasetContext","dataset","createDataContext","dataIndex","clearStacks","_parsed","isDirectUpdateMode","cloneIfNotShared","cached","shared","createStack","canStack","_stacked","_ctx","_cachedDataOpts","getMeta","_type","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","supportsDecimation","$context","_syncList","initialize","linkScales","addElements","getDataset","chooseId","xid","xAxisID","yid","yAxisID","rid","rAxisID","iid","iAxisID","vid","vAxisID","getScaleForId","rScale","getDatasetMeta","scaleID","isExtensible","_dataCheck","datasetElementType","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","sorted","_sorted","parseArrayData","parseObjectData","parsePrimitiveData","isNotInOrderComparedToPrev","labels","getLabels","singleScale","xAxisKey","yAxisKey","parsedValue","otherScale","_getOtherScale","otherMin","otherMax","_skip","updateRangeFromParsed","getParsed","getLabelForValue","_clip","getMaxOverflow","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","_resolveElementOptions","dataElementType","elementType","sharing","datasetElementScopeKeys","names","resolveNamedOptions","freeze","datasetAnimationScopeKeys","sharedOptions","_animationsDisabled","firstOpts","previouslySharedOptions","getSharedOptions","includeOptions","updateSharedOptions","_resolveAnimations","_setStyle","arg1","arg2","numMeta","numData","_insertElements","_removeElements","move","updateElements","removed","_dataChanges","arguments","_sync","newCount","getAllScaleValues","_cache","$bar","visibleMetas","getAllParsedValues","computeMinSampleSize","curr","_length","updateMinAndPrev","getPixelForValue","ticks","getPixelForTick","computeFitCategoryTraits","ruler","stackCount","thickness","barThickness","categoryPercentage","barPercentage","chunk","pixels","computeFlexCategoryTraits","percent","parseFloatBar","entry","startValue","endValue","barStart","barEnd","_custom","parseValue","parseArrayOrPrimitive","isFloatBar","custom","barSign","actualBase","isHorizontal","borderProps","setBorderSkipped","edge","borderSkipped","enableBorderRadius","parseEdge","swap","startEnd","orig","v2","setInflateAmount","inflateAmount","iAxisKey","vAxisKey","super","bars","reset","getBasePixel","_getRuler","_getSharedOptions","vpixels","head","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","center","updateElement","grouped","skipNull","_getStacks","_startPixel","_endPixel","_getStackCount","baseValue","minBarLength","floating","getDataVisibility","startPixel","getPixelForDecimal","endPixel","halfGrid","getLineWidthForValue","maxBarThickness","stackIndex","_getStackIndex","rects","_index_","_value_","getRatioAndOffset","circumference","cutout","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","innerRadius","outerRadius","getter","isDatasetVisible","_getRotation","_getCircumference","arcs","spacing","getMaxBorderWidth","getMaxOffset","maxSize","chartWeight","_getRingWeight","_getRotationExtents","maxRadius","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animateRotate","calculateCircumference","animationOpts","centerX","centerY","animateScale","_circumference","metaData","borderAlign","hoverBorderWidth","hoverOffset","ringWeightOffset","legend","legendItem","toggleDataVisibility","tooltipItem","dataLabel","formattedValue","_dataset","animationsDisabled","getStartAndCountOfVisiblePoints","scaleRangesChanged","_decimated","animated","maxGapLength","directUpdate","prevParsed","nullData","border","lastPoint","updateControlPoints","pointCount","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","_updateRadius","minSize","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","angleLines","circular","pointLabels","PieController","pointPosition","getPointPositionForValue","ScatterController","controllers","__proto__","BarController","BubbleController","DoughnutController","LineController","PolarAreaController","RadarController","DateAdapter","timestamp","amount","unit","weekday","members","adapters","_date","binarySearch","metaset","lookupMethod","_reversePixels","getRange","evaluateInteractionItems","position","handler","getSortedVisibleDatasetMetas","getDistanceMetricForAxis","useX","useY","deltaX","deltaY","getIntersectItems","useFinalPosition","isPointInArea","evaluationFunc","inRange","getNearestRadialItems","getProps","getNearestCartesianItems","distanceMetric","minDistance","getCenterPoint","pointInArea","getNearestItems","getAxisItems","rangeMethod","intersectsItem","Interaction","modes","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","wrapBoxes","boxes","layoutBoxes","stackWeight","buildStacks","layouts","wrap","placed","setLayoutDims","vBoxMaxWidth","hBoxMaxHeight","layout","fullSize","availableWidth","availableHeight","buildLayoutBoxes","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","getPadding","newWidth","outerWidth","newHeight","outerHeight","widthChanged","heightChanged","same","other","handleMaxPadding","updatePos","getMargins","marginForPositions","fitBoxes","refitBoxes","refit","setBoxDims","placeBoxes","userPadding","padding","autoPadding","_layers","layoutItem","minPadding","verticalBoxes","horizontalBoxes","beforeLayout","visibleVerticalBoxCount","BasePlatform","BasicPlatform","EXPANDO_KEY","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","isNullOrEmpty","initCanvas","renderHeight","renderWidth","displayWidth","displayHeight","eventListenerOptions","passive","addListener","removeListener","fromNativeEvent","native","nodeListContains","nodeList","contains","createAttachObserver","observer","MutationObserver","entries","trigger","addedNodes","removedNodes","childList","subtree","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","listenDevicePixelRatioChanges","unlistenDevicePixelRatioChanges","createResizeObserver","contentRect","releaseObserver","createProxyAndListen","removeAttribute","setAttribute","proxies","$proxies","handlers","attach","detach","isConnected","_detectPlatform","OffscreenCanvas","final","defaultRoutes","formatters","tickValue","notation","maxTick","calculateDelta","logDelta","numDecimal","minimumFractionDigits","maximumFractionDigits","numeric","Ticks","autoSkip","tickOpts","ticksLimit","maxTicksLimit","determineMaxTicks","majorIndices","major","enabled","getMajorIndices","numMajorIndices","first","newTicks","skipMajors","calculateSpacing","avgMajorSpacing","tickLength","_tickSize","maxScale","maxChart","_maxLength","evenMajorSpacing","getEvenSpacing","factors","majorStart","majorEnd","diff","drawBorder","drawOnChartArea","drawTicks","tickWidth","tickColor","title","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkipPadding","labelOffset","minor","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","route","reverseAlign","offsetFromEdge","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","caches","getTickMarkLength","getTitleHeight","createScaleContext","createTickContext","titleAlign","titleArgs","titleX","titleY","positionAxisID","_margins","paddingTop","paddingBottom","paddingLeft","paddingRight","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","suggestedMin","suggestedMax","metas","getMinMax","xLabels","yLabels","beforeUpdate","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","samplingEnabled","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","afterAutoSkip","beforeFit","fit","afterFit","afterUpdate","reversePixels","_alignToPixels","alignToPixels","notifyPlugins","_callHooks","beforeTickToLabelConversion","afterTickToLabelConversion","numTicks","maxLabelDiagonal","_isVisible","labelSizes","_getLabelSizes","maxLabelWidth","widest","maxLabelHeight","highest","asin","titleOpts","gridOpts","titleHeight","tickPadding","angleRadians","labelHeight","labelWidth","_calculatePadding","_handleMargins","isRotated","labelsBelowTicks","offsetRight","generateTickLabels","_computeLabelSizes","widths","heights","tickFont","fontString","nestedLabel","widestLabelSize","highestLabelSize","_resolveTickFontOptions","valueAt","decimal","getBaseValue","optionTicks","rot","ticksLength","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","limit","step","optsAtIndex","lineColor","tickBorderDash","tickBorderDashOffset","tickAndPadding","hTickAndPadding","lineCount","textOffset","_getXAxisLabelAlignment","_getYAxisLabelAlignment","halfCount","backdrop","tickTextAlign","labelPadding","fillRect","_computeGridLineItems","drawLine","setLineDash","lineDashOffset","lastLineWidth","_computeLabelArea","_computeLabelItems","drawBackground","drawGrid","drawTitle","drawLabels","tz","gz","axisID","fontSize","isPrototypeOf","parentScope","isIChartComponent","register","registerDefaults","itemDefaults","routeDefaults","routes","propertyParts","sourceName","sourceScope","parts","_typedRegistries","_each","_get","typedRegistry","arg","reg","_getRegistryForType","isForType","_exec","itemReg","registry","component","camelMethod","_init","hook","_createDescriptors","descriptor","plugin","cancelable","_oldCache","_notifyStateChanges","allPlugins","createDescriptors","previousDescriptors","some","localIds","getPlugin","getOpts","pluginOpts","pluginScopeKeys","getIndexAxis","datasetDefaults","datasetOptions","getAxisFromDefaultScaleID","getDefaultScaleIDFromAxis","axisFromPosition","determineAxis","scaleOptions","mergeScaleConfig","chartDefaults","configScales","chartIndexAxis","firstIDs","scaleConf","defaultId","defaultScaleOptions","defaultID","initOptions","initData","initConfig","keyCache","keysCached","cachedKeys","addIfFound","_config","_scopeCache","_resolverCache","clearCache","clear","datasetType","additionalOptionScopes","mainScope","resetCache","keyLists","_cachedScopes","subPrefixes","getResolver","needContext","subResolver","resolverCache","hasFunction","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","animationOptions","onComplete","onAnimationProgress","onProgress","getCanvas","getElementById","instances","getChart","moveNumericKeys","intKey","determineLastEvent","lastEvent","inChartArea","isClick","userConfig","initialCanvas","existingChart","chartOptionScopes","updateConfig","acquireContext","_options","_aspectRatio","_metasets","_lastEvent","_listeners","_responsiveListeners","_sortedMetasets","_plugins","_hiddenIndices","attached","_doResize","resizeDelay","listen","_initialize","bindEvents","_resizeBeforeDraw","_resize","newSize","newRatio","scalesOptions","axisOptions","scaleOpts","updated","isRadial","dposition","dtype","scaleType","scaleClass","getScale","init","hasUpdated","addBox","_destroyDatasetMeta","newControllers","_removeUnreferencedMetasets","order","updateIndex","ControllerClass","getController","getElement","_updateMetasets","_resetElements","animsDisabled","_updateScales","_checkEventBindings","_updateHiddenIndices","invalidate","buildOrUpdateControllers","buildOrUpdateElements","_minPadding","_updateLayout","_updateDatasets","_eventHandler","_updateHoverStyles","removeBox","ensureScalesHaveIDs","buildOrUpdateScales","existingEvents","newEvents","unbindEvents","changes","_getUniformDataChanges","datasetCount","makeSet","changeSet","noArea","_idx","_updateDataset","layers","_drawDatasets","_drawDataset","useClip","setDatasetVisibility","_updateVisibility","_destroy","remove","_stop","releaseContext","toDataURL","bindUserEvents","bindResponsiveEvents","_add","_remove","detached","isAttached","activeElements","lastActive","notify","replay","hoverOptions","deactivated","activated","updateHoverStyle","eventFilter","_handleEvent","_getActiveElements","getElementsAtEventForMode","invalidatePlugins","clipArc","pixelMargin","angleMargin","toRadiusCorners","parseBorderRadius$1","angleDelta","borderRadius","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","outerStart","outerEnd","innerStart","innerEnd","rThetaToXY","theta","pathArc","innerR","spacingOffset","alpha","noSpacingInnerRadius","noSpacingOuterRadius","avNogSpacingRadius","adjustedAngle","beta","angleOffset","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","pCenter","p4","p8","drawArc","fullCircles","drawFullCircleBorders","inner","lineJoin","unregister","chartX","chartY","rAdjust","betweenAngles","withinRadius","halfAngle","halfRadius","radiusOffset","setStyle","lineCap","getLineMethod","stepped","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","lineMethod","fastPathSegment","prevX","lastY","avgX","countX","pointIndex","drawX","truncX","_getSegmentMethod","useFastPath","_getInterpolationMethod","strokePathWithCache","_path","Path2D","strokePathDirect","segmentMethod","usePath2D","_points","_segments","_pointsUpdated","_interpolate","interpolated","inRange$1","hitRadius","mouseX","mouseY","hoverRadius","getBarBounds","bar","half","skipOrLimit","parseBorderWidth","maxW","maxH","parseBorderRadius","maxR","enableBorder","boundingRects","outer","skipX","skipY","skipBoth","hasRadius","addNormalRectPath","inflateRect","refRect","addRectPath","ArcElement","LineElement","PointElement","BarElement","lttbDecimation","samples","decimated","bucketWidth","sampledIndex","endIndex","maxAreaPoint","maxArea","nextA","avgY","avgRangeStart","avgRangeEnd","avgRangeLength","rangeOffs","rangeTo","pointAx","pointAy","minMaxDecimation","minIndex","maxIndex","startIndex","xMin","xMax","dx","intermediateIndex1","intermediateIndex2","cleanDecimatedDataset","cleanDecimatedData","getStartAndCountOfVisiblePointsSimplified","plugin_decimation","algorithm","beforeElementsUpdate","xAxis","threshold","tpoints","_findSegmentEnd","_getBounds","targetSegments","tgt","subBounds","fillSources","fillSource","_getEdge","_pointsFromSegments","boundary","linePoints","_createBoundaryLine","_shouldApplyFill","_resolveTarget","propagate","visited","_decodeFill","parseFillOption","decodeTargetIndex","firstCh","_getTargetPixel","_getTargetValue","fillOption","_buildStackLine","sourcePoints","linesBelow","getLinesBelow","addPointsBelow","below","unshift","sourcePoint","postponed","findPoint","pointValue","firstValue","lastValue","getLineByIndex","computeBoundary","computeCircularBoundary","computeLinearBoundary","_drawfill","lineOpts","doFill","clipVertical","clipY","lineLoop","src","notShape","clipBounds","interpolatedLineTo","targetLoop","interpolatedPoint","_args","$filler","drawTime","getBoxSize","labelOpts","boxHeight","boxWidth","usePointStyle","pointStyleWidth","itemHeight","itemsEqual","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","generateLabels","labelFont","_computeTitleHeight","_fitRows","_fitCols","hitboxes","totalHeight","heightLimit","totalWidth","currentColWidth","currentColHeight","col","rtlHelper","hitbox","leftForLtr","_draw","defaultColor","fontColor","halfFontSize","cursor","drawLegendBox","lineDash","drawOptions","SQRT2","xPlus","yBoxTop","xBoxLeft","textDirection","setWidth","realX","titleFont","titlePadding","topPaddingPlusHalfFontSize","hitBox","lh","isListened","hoveredItem","_getLegendItemAt","sameItem","onLeave","plugin_legend","_element","adjustHitBoxes","handleEvent","_padding","textSize","fontOpts","_drawArgs","createTitle","titleBlock","plugin_title","WeakMap","plugin_subtitle","positioners","hasValue","tooltipPosition","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","getLabelAndValue","getTooltipSize","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","before","after","beforeBody","afterBody","titleSpacing","titleMarginBottom","bodyLineHeight","displayColors","bodySpacing","footerMarginTop","footerSpacing","widthPadding","maxLineWidth","determineYAlign","doesNotFitWithAlign","xAlign","caret","caretSize","caretPadding","determineXAlign","yAlign","chartWidth","determineAlignment","alignX","alignY","paddingAndSize","getBackgroundPoint","getAlignedX","getBeforeAfterBodyLines","createTooltipContext","tooltipItems","overrideCallbacks","opacity","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","beforeTitle","afterTitle","bodyItems","scoped","beforeLabel","afterLabel","beforeFooter","afterFooter","itemSort","labelColor","labelPointStyle","labelTextColor","_createItems","getTitle","getBeforeBody","getBody","getAfterBody","getFooter","positionAndSize","backgroundPoint","external","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","titleColor","colorX","rtlColorX","yOffSet","colorY","multiKeyBackground","outerX","innerX","strokeRect","bodyAlign","xLinePadding","fillLineOfText","bodyAlignForCalculation","textColor","bodyColor","_drawColorBox","footerAlign","footerColor","tooltipSize","drawCaret","quadraticCurveTo","animX","animY","_updateAnimationTarget","hasTooltipContent","globalAlpha","drawBody","drawFooter","positionChanged","_positionChanged","_ignoreReplayEvents","plugin_tooltip","_willRender","labelCount","Decimation","Filler","Legend","SubTitle","Title","addIfString","addedLabels","findOrAddLabel","_startValue","_valueRange","_addedLabels","added","getDecimalForPixel","generateTicks$1","generationOptions","dataRange","MIN_SPACING","precision","maxTicks","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","minSpacing","niceMin","niceMax","numSpaces","decimalPlaces","relativeLabelSize","_endValue","setMin","setMax","minSign","maxSign","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","stepSize","computeTickLimit","getTickLimit","numericGeneratorOptions","_maxDigits","handleTickRangeOptions","isMajor","tickVal","generateTicks","endExp","endSignificand","exp","significand","lastTick","_zero","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","limits","valueCount","_pointLabels","pointLabelOpts","additionalAngle","centerPointLabels","getPointLabelContext","getPointPosition","drawingArea","plFont","hLimits","vLimits","updateLimits","setCenterPoint","_pointLabelItems","buildPointLabelItems","extra","outerDistance","pointLabelPosition","yForAngle","getTextAlignForAngle","leftForTextAlign","drawPointLabels","backdropLeft","backdropTop","backdropWidth","backdropHeight","pathRadiusLine","drawRadiusLine","gridLineOpts","createPointLabelContext","logarithmic","leftMovement","rightMovement","topMovement","bottomMovement","angleMultiplier","scalingFactor","scaledDistance","pointLabel","distanceFromCenter","animate","INTERVALS","millisecond","common","steps","second","minute","hour","week","UNITS","sorter","adapter","_adapter","parser","isoWeekday","_parseOpts","determineUnitForAutoTicks","minUnit","capacity","interval","determineUnitForFormatting","determineMajorUnit","addTick","time","timestamps","setMajorTicks","majorUnit","ticksFromTimestamps","_unit","_majorUnit","_offsets","_normalized","displayFormats","formats","normalized","_applyBounds","_getLabelBounds","getLabelTimestamps","timeOpts","_generate","_getLabelCapacity","initOffsets","offsetAfterAutoskip","getDecimalForValue","hasWeekday","getDataTimestamps","tooltipFormat","datetime","minorFormat","majorFormat","_tickFormatFunction","offsets","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","_getLabelSize","prevSource","nextSource","prevTarget","nextTarget","span","TimeSeriesScale","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","CategoryScale","LinearScale","LogarithmicScale","RadialLinearScale","TimeScale","registerables","Chart","myCHart","myChartBase64","motivosDeVisitaData","prop_data","fnExportChartJsToPng","fnGetBackground","store_visita","background","fnGetBorder","fnUpdateDataSet_labels","fnUpdateDataSet_data","newValue","motivo","prop_tipos_de_visitas_totales","$event","fnPrevVisita","staticStyle","centerCoordenates","centerZoom","prop_markers_and_pedido","lat","visita","toggleInfo","deliveryPath","strokeWeight","deliveryPathColor","figura_camino_polyline","fillOpacity","poplyLineFlag","infoContent","components","cluster","gmapCenter","lng","flagCurrentIndex","infoPosition","infoOpened","infoOptions","pixelOffset","prop_markers","findWithAttr_next","findWithAttr_prev","fnGetDate","fnGetColor","textColorClass","fnGetIcon","marker","fnDrawPolyPath","fnNextVisita","google","flagNextVisita","flagPrevVisita","makers","VisitasMapa","GeneralParametros","GeneralGraficaUsuarios","GeneralGraficaSectores","GeneralGraficaRegiones","GeneralGraficaDivisiones","GeneralGraficaTiposDeVisita","prop_refresh_flag","tipos_de_visita_raw","consolidado_por_tipo_de_visita","divisiones_raw","resp_consolidado_por_division","background_b_tone","usuarios_raw","response_consolidadoUsuarios","background_tone","regiones_raw","sectores_raw","response_consolidadoSectores","consolidado_excel_detalle","divisiones","cantidades","regiones","sectores","usuarios","consolidado_grafica_tipos_de_visita","searchSelectedDate","findNombramientos","findProspectos","findSupervInicioDeLabores","findSupervReunionConsejeras","findActividades","fnEmitSearchSector","fnEmitSearchDivision","fnEmitSearchComentario","fnEmitReporteSeleccionado","params_visitas","$gte","$lte","params_prospectos","params_nombramientos","params_reuniones","fecha_llegada","fecha_inicio","params_labores","inic_lab_fecha","params_actividades","usuario","tipo_agente_comercio","sector","consejera_codigo","consejera_nombre","nombramiento","precalificacion","dpi","fecha","comentario","catch","lato","lngo","getParams","nombre","telefono","direccion","no_precalificacion","createdAt","groupBy","groupBy_tipos_de_visita","groupBy_regiones","collection","groupBy_sectores","groupBy_divisiones","groupBy_usuario_alias","fechaUltimaActualizacion","ReporteGeneral","fnRefreshReportes"],"mappings":"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AqI,kBAAArI,kCACA,CAAAqI,qBAAArI,yCACA,CAAAqI,iBAAArI,kCACA,CAAAqI,mBAAArI,wBAEAsI,4BACA,CAAAD,eAAArI,uBACA,CAAAqI,0BAAArI,0BACA,CAAAqI,kBAAArI,kCACA,CAAAqI,qBAAArI,yCACA,CAAAqI,iBAAArI,kCACA,CAAAqI,mBAAArI,wBAEAuI,6CAEAC,SAEAC,QAGAP,mBAEAC,sBAEAL,gCAGAG,oBAEAb,qBACAC,uBACAC,0BAGAoB,2BACAvB,0BAEAM,mBACAC,qBACAC,wBAEAX,iBACA2B,mBACA1B,sBAEA2B,mBACAlC,qBACAC,wBAEAE,iBACAgC,mBACA/B,sBAEAS,qBACAK,mBACAV,gBACAN,kBACAG,gBAEAd,0BACAK,0BACAH,YACAI,eACAR,cACA+C,4CACAA,8BAKAvL,OACAwI,kBACA,MACA,kCAGA+B,8BACA,sCAEAP,qBACA,uCAEAJ,0BACA,4CAEAS,mBACA,qCAEAV,gBACA,kCAEAN,kBACA,oCAEAG,gBACA,kCAEAO,0BACA,aACA,SACA,+BACAyB,0CAGA,OACA,4BAEA,wCAIApB,wBACA,YACA,8BACA,0BAEA,uCACA,CACA,2CAEA,OACA,0BAEA,sCAKAV,sBACA,WACA,wBAEA,mCAGAN,wBACA,WACA,0BAEA,qCAGAG,sBACA,WACA,wBAEA,mCAGAmB,oBACA,sCAEAC,mBACA,qCAEAC,sBACA,wCAIAvC,wBACA,wCAEA,oBACA7I,wBAGA,OACA,qCACA,yBAGA,oBACAA,2BAGA,OACA,yBAGA,oBACAA,8BAGA,OACA,8BAIAtD,SACAuP,2BACA,IACA,mBACAF,6CACAA,4CAEA,2BACAA,6CACAA,8CAIAG,2BACA,mBACAH,+BACAA,iCAOAtB,uDACA,4CACAzK,eAGA,aAMA8I,uBACA,gBAMA,KAGAqD,QACArT,eACA/+B,gEAIA,iCACAoyC,QACArT,oBACA/+B,kDACA,uBACA,qBAKA,8BACAoyC,QACArT,uBACA/+B,0CACA,oBACA,WACA,cAKA,4BACAoyC,QACArT,oBACA/+B,0CACA,kBACA,SACA,YAKA,4BACAoyC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,GACA,GACA,ICp7UFmoC,GAAMA,YAAYA,IAEH,QACflpH,8BACA4pC,UACA,qEACA,iDAOAhH,kCACA5hC,OACA,OACAmoH,aACAC,iBACAC,qBACA3oH,WACAM,MACAyxE,mCACA3lB,UACA,CACA/sB,iBACA/+B,QACAyqC,sDACAohB,iDAIA1pB,SACAmrB,SACA2vB,QACAxL,QAEAnlB,MACAtsC,OACA,2EAUAymB,OACA6hF,aACA,IACA,yCACA,yBAmBA3lF,SACA4lF,uBACA,gDAEA,kCACA52H,0BACAA,uBACAA,WAEA62H,mBACA,wCACAC,eACA,GAAAC,YAEAC,eACA,wCACAF,eACA,GAAAxqC,QAEA2qC,0BACA,MACA,wCACA,4BACA,uDAEA,wBAGAC,wBACA,gBAKA,2BAKAC,iBACA,MACA,iDACAjzF,qCAEA,OACA,+CACAnS,GACAqlG,qBAIA,0BC5I+W,MCQ3W,I,UAAY,gBACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,sBCnB6C,MAAU,KAAmBlkF,IAAW,MAAC,G,OAA0B,QAAD,W,YAAY,mB,MAAgB,CAAmB,MAAO,GAA5F,cAAkG,MAAC,WAAC,SAA7G,GAAmJ,CAAWrB,MAAM,yB,CAAS,SAAQ,CAAjB,OAAuByK,GAAA,GAA2DzK,MAAM,4DAA/P,MAAhB,CAA5D,0BAEI2K,I,MCgBJ+5E,GAAMA,YAAYA,IAEH,QACflpH,8BACA4pC,UACA,qEACA,iDAOAhH,oBACA5hC,OACA,OACAmoH,aACAC,iBACAC,qBACA3oH,WACAM,MACAyxE,iCACA3lB,UACA,CACA/sB,8BACA/+B,MACA,oDACA,iDAEAyqC,2CACAohB,4BAQAplB,OACA6hF,aACA,IACA,yCACA,yBAIA3lF,SACA4lF,uBACA,gDAEA,kCACA52H,0BACAA,uBACAA,WAEA62H,mBACA,wCACAC,eACA,GAAAC,YAEAC,eACA,wCACAF,eACA,GAAAxqC,QAEA2qC,0BACA,MACA,wCACA,4BACA,uDAEA,wBAGAC,wBACA,gBAKA,2BAKAC,iBACA,MACA,iDACAjzF,qCAEA,OACA,+CACAnS,GACAqlG,qBAIA,0BCnH+W,MCQ3W,I,UAAY,gBACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,sBCnB6C,MAAU,KAAmBlkF,IAAW,MAAC,G,OAA0B,QAAD,W,YAAY,mB,MAAgB,CAAmB,MAAO,GAA5F,cAAkG,MAAC,WAAC,SAA7G,GAAmJ,CAAWrB,MAAM,yB,CAAS,SAAQ,CAAjB,OAAuByK,GAAA,GAA2DzK,MAAM,4DAA/P,MAAhB,CAA5D,kCAEI2K,I,MCgBJ+5E,GAAMA,YAAYA,IAEH,QACflpH,8BACA4pC,UACA,iBACAy0D,eAAA,4BACAvtC,WAAA,MACA,iDAOAluB,oBACA5hC,OACA,OACAmoH,aACAC,iBACAC,qBACA3oH,WACAM,MACAyxE,iCACA3lB,UACA,CACA/sB,iBACA/+B,QACAyqC,2CACAohB,4BAQAplB,OACA6hF,aACA,IACA,yCACA,yBAIA3lF,SACA4lF,uBACA,gDAEA,kCACA52H,0BACAA,uBACAA,WAEA62H,mBACA,wCACAC,eACA,GAAAC,YAEAC,eACA,wCACAF,eACA,GAAAxqC,QAEA2qC,0BACA,MACA,wCACA,4BACA,uDAEA,wBAGAC,wBACA,gBAKA,2BAKAC,iBACA,MACA,iDACAjzF,qCAEA,OACA,+CACAnS,GACAqlG,qBAIA,0BClH+W,MCQ3W,I,UAAY,gBACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,sBCnB6C,MAAU,KAAmBlkF,IAAW,MAAC,G,OAA0B,QAAD,W,YAAY,mB,MAAgB,CAAmB,MAAO,GAA5F,cAAkG,MAAC,WAAC,SAA7G,GAAmJ,CAAWrB,MAAM,yB,CAAS,SAAQ,CAAjB,OAAuByK,GAAA,GAA2DzK,MAAM,4DAA/P,MAAhB,CAA5D,oCAEI2K,I,MCgBJ+5E,GAAMA,YAAYA,IAEH,QACflpH,8BACA4pC,UACA,iBACAy0D,eAAA,8BACAvtC,WAAA,MACA,iDAOAluB,oBACA5hC,OACA,OACAmoH,aACAC,iBACAC,qBACA3oH,WACAM,MACAyxE,mCACA3lB,UACA,CACA/sB,mBACA/+B,gBACAyqC,2CACAohB,4BAQAplB,OACA6hF,aACA,IACA,yCACA,yBAIA3lF,SACA4lF,uBACA,gDAEA,kCACA52H,0BACAA,uBACAA,WAEA62H,mBACA,wCACAC,eACA,GAAAC,YAEAC,eACA,wCACAF,eACA,GAAAxqC,QAEA2qC,0BACA,MACA,wCACA,4BACA,uDAEA,wBAGAC,wBACA,gBAKA,2BAKAC,iBACA,MACA,iDACAjzF,qCAEA,OACA,+CACAnS,GACAqlG,qBAIA,0BClHiX,MCQ7W,I,UAAY,gBACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,sBCnB6C,MAAU,KAAmBlkF,IAAW,MAAC,G,OAA0B,QAAD,W,YAAY,mB,MAAgB,CAAmB,MAAO,GAA5F,cAAkG,MAAC,WAAC,SAA7G,GAAmJ,CAAWrB,MAAM,yB,CAAS,SAAQ,CAAjB,OAAuByK,GAAA,GAA2DzK,MAAM,4DAA/P,MAAhB,CAA5D,yCAEI2K,I,MCgBJ+5E,GAAMA,YAAYA,IAEH,QACflpH,mCACA4pC,UACA,iBACAy0D,eAAA,mCACAvtC,WAAA,MACA,iDAOAluB,wCACA5hC,OACA,OACAmoH,aACAC,iBACAC,qBACA3oH,WACAM,MACAyxE,iCACA3lB,UACA,CACA/sB,sBACA/+B,WACAyqC,sDACAohB,+CAEA,CACA9sB,uBACA/+B,WACAyqC,uDACAohB,gDAEA,CACA9sB,kBACA/+B,UACAyqC,kDACAohB,2CAEA,CACA9sB,qBACA/+B,WACAyqC,qDACAohB,8CAEA,CACA9sB,cACA/+B,WACAyqC,8CACAohB,uCAEA,CACA9sB,gBACA/+B,WACAyqC,gDACAohB,yCAEA,CACA9sB,gBACA/+B,WACAyqC,gDACAohB,yCAEA,CACA9sB,kBACA/+B,WACAyqC,kDACAohB,2CAEA,CACA9sB,eACA/+B,WACAyqC,+CACAohB,wCAQA,CACA9sB,iBACA/+B,WACAyqC,iDACAohB,0CAEA,CACA9sB,+BACA/+B,WACAyqC,+DACAohB,6DAQAplB,OACAuiF,iCACA,yCACA,wBAkBArmF,SACA4lF,uBACA,gDAEA,kCACA52H,0BACAA,uBACAA,WAEA62H,mBACA,wCACAC,eACA,GAAAC,YAEAC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CAMA,IAGA3iF,aCld0V,MCOtV,GAAY,gBACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QC6Ef0I,EAAQA,QACO,QACftyC,sBACAirH,YACAuB,eACAC,qBACAC,0BACAC,0BACAC,0BACAC,4BACAC,gCAEAlqF,4BACA6E,OACAslF,oBACA,aAEAC,uBACA,SACA,IACA,QACAtoG,+BACAA,IACA,CACA,wCACA,gCACA,SACAqb,kBACA/+B,uBACAyqC,kBACAohB,eAEAogE,UAEA,4CAEAC,kBACA,UACA,KACA,KACA,IACA,QACAxoG,+BACAA,IACA,CACA,SACAqb,kBACA/+B,uBACAyqC,4CACAohB,uBAEAsgE,UAEAC,MAEA,mBAEAC,gBACA,UACA,KACA,KACA,IACA,QACA3oG,+BACAA,IACA,CACA,SACAqb,8BACA/+B,uBACAyqC,6CACAohB,uBAEAygE,UACAC,OACA,MACAH,OAGA,iBAEAI,gBACA,UACA,KACA,KACA,IACA,QACA9oG,+BACAA,IACA,CACA,SACAqb,qBACA/+B,uBACAyqC,6CACAohB,uBAEAygE,UACAC,OACA,MACAH,OAGA,iBAEAK,gBACA,UACA,KACA,KACA,IACA,QACA/oG,+BACAA,IACA,CACA,SACAqb,yBACA/+B,uBACAyqC,6CACAohB,uBAEA6gE,UACAH,OACA,MACAH,OAGA,kBAGApsH,OACA,OACA8uC,sBACA,CAAAyC,eAAArI,uBACA,CAAAqI,0BAAArI,0BACA,CAAAqI,kBAAArI,kCACA,CAAAqI,qBAAArI,yCACA,CAAAqI,iBAAArI,kCACA,CAAAqI,mBAAArI,wBAEA0F,QAEA+9E,6BAEAC,cACAV,gBAAAz6C,UAAAo7C,cAAA7sH,SACA8sH,YACAN,cAAA/6C,UAAAo7C,cAAA7sH,SACA+sH,YACAN,cAAAh7C,UAAAo7C,cAAA7sH,SACAgtH,YACAX,cAAA56C,UAAAo7C,cAAA7sH,SACAgsH,qBAAAv6C,UAAAo7C,cAAA7sH,SACAitH,uCAEAt6E,QACA3B,gCACAP,uBACAJ,4BACAS,qBACAV,kBACAN,oBACAG,kBACAkB,sBACAC,qBACAC,wBACA67E,oBACAl7E,4CACAA,6BAGAtL,WAGA/D,YACA,0BACA0P,wBAEA,gCACA86E,8BAEA,6BACAC,2BAEA,wCACAC,sCAEA,0CACAC,wCAEA,8BACAC,yBAEAn/E,0BACA7rC,6BACA,yCACA,aAEA8rC,sBACA9rC,4BACA,iCACA,aAEA+rC,2BACA/rC,8BACA,gCACA,aAEAgsC,gCACAhsC,yCACA,qCACA,aAEAisC,yBACAjsC,gCACA,8BACA,aAEAirH,sBACAjrH,8BACA,2BACA,aAEAkrH,wBACAlrH,gCACA,6BACA,aAEAksC,sBACAlsC,8BACA,2BACA,aAEAmrH,0BACAnrH,+BACA,+BACA,aAEAmsC,yBACAnsC,8BACA,8BACA,aAEAosC,4BACApsC,iCACA,iCACA,aAEAorH,6BACA,4BACA,aAGA,aACA,kCAEA,mCAEA,0BAAAl8C,UAAAo7C,cAAA7sH,SACA,mBAAAyxE,UAAAo7C,cAAA7sH,SACA,mBAAAyxE,UAAAo7C,cAAA7sH,SACA,mBAAAyxE,UAAAo7C,cAAA7sH,SACA,qBAAAyxE,UAAAo7C,cAAA7sH,SAGA,uBACA,mBACA,mBACA,mBACA,mBACA,mBAGA,+CAEA,wCAEA,+CACA,sCAyDA,GAvDA4tH,YACAC,OACAC,QAEAC,YACAF,OACAC,QAEAE,YACAH,OACAC,QAEAG,UACA,CAAAC,eAAAL,OAAAC,SACA,CAAAK,cAAAN,OAAAC,UAGAM,UACA,CAAAD,cAAAN,OAAAC,SACA,CAAAO,gBAAAR,OAAAC,UAEAQ,YACAT,OACAC,QAOA,iEAEAF,oBACA96E,4CAEAi7E,oBACAj7E,4CAEAs7E,oBACAt7E,4CAGAw7E,kBACAx7E,4CAGAm7E,kBACAn7E,6CASA,8CACA,iDACA,CACA,iDACAnhD,SAEAi8H,2BAKA,6CACA,mBAEA,YACA,kBAAAn6E,UACAC,KAAAC,IAEApxC,gCACAoxC,mBAEA,SACAntB,QACA+iG,UACAa,UACAmE,4BACAC,4BACAl7E,oBACAT,gBACA47E,gBACA1F,0BACA2F,oCACAC,oCACAC,kBACAC,qBACAC,SACAC,cACAC,yBAGA,yCAMA,iFAEA,+DACA,yDACA,yDACA,6CACAr7E,OACA,WAKAs7E,MAAA19H,IACAgR,iBAKA,0CACAk9B,GACA,yBAGA,WACA,wBAAAgU,UACAC,KAAAC,IAEApxC,0CACAoxC,mBACA8qB,kCAEA,SACAj4C,QACA+iG,UACAa,UACAmE,4BACAC,4BACAl7E,oBACAT,gBACA47E,gBACA1F,0BACA2F,sBACAC,sBACAC,sBACAC,qCACAC,UACAC,cACAC,iBAGA,yCAKA,iFAEA,+DACA,yDACA,yDACA,6CACAr7E,OACA,WAGAs7E,MAAA19H,IACAgR,iBAGA,6BAIA,0CACAk9B,GACA,sBAGA,WACA,qBAAAgU,UACAC,KAAAC,IAEApxC,uCACAoxC,mBACA8qB,+BAEA,SACAj4C,QACA+iG,UACAa,UACAmE,4BACAC,4BACAl7E,oBACAT,gBACA47E,gBACA1F,0BACA2F,sBACAC,sBACAC,sBACAC,qBACAC,SACAC,cACAC,4BAGA,yCAKA,iFACA,4CACAr7E,OACA,YAEA,yDACA,yDACA,6CACAA,OACA,WAGAs7E,MAAA19H,IACAgR,iBAGA,0BAIA,6CACA,8BAEA,YACA,gCAAAkxC,UACAC,KAAAC,IAEApxC,kDACAoxC,mBACA8qB,uCAGA,WACA,OAEA,cACAywD,QACAC,SACA,iCACAD,iBACAC,kBAGA,SACA3oG,QACA+iG,MACAa,MACAmE,4BACAC,4BACAl7E,oBACAT,gBACA47E,gBACA1F,0BACA2F,sBACAC,sBACAC,kBACAC,qBACAC,SACAC,qBACAC,4BAGA,yCAKA,iFACA,4CACAr7E,OACA,YAEA,yDACA,yDACA,6CACAA,OACA,WAGAs7E,MAAA19H,IACAgR,iBAKA,0CACAk9B,GACA,qBAGA,YACA,kCAAAgU,UACAC,KAAAC,IAEApxC,oDACAoxC,mBACA8qB,+BAEA,SACAj4C,QACA+iG,iBACAa,iBACAmE,4BACAC,4BACAl7E,oBACAT,gBACA47E,gBACA1F,0BACA2F,sBACAC,sBACAC,kBACAC,qBACAC,SACAC,sBACAC,0BAGA,yCAKA,iFACA,4CACAr7E,OACA,YAEA,yDACA,yDACA,6CACAA,OACA,WAGAs7E,MAAA19H,IACAgR,iBAKA,0CACAk9B,GACA,uBAGA,YACA,sBAAAgU,UACAC,KAAAC,IAEApxC,wCACAoxC,mBACA8qB,iCAEA,SACAj4C,QACA+iG,UACAa,UACAmE,4BACAC,4BACAl7E,oBACAT,gBACA47E,gBACA1F,4CACA2F,sBACAC,sBACAC,kBACAC,qBACAC,SACAC,cACAC,0BAGA,yCAKA,iFACA,4CACAr7E,OACA,YAEA,yDACA,yDACA,6CACAA,OACA,WAGAs7E,MAAA19H,IACAgR,iBAKA,oCAGA6sH,YAIA,WAQA,0EACA,iDACAz8E,iBAAAQ,YACA,uDACAR,iBACAQ,kDAUA,GALA,kFACAR,WAAAQ,yCAIA,mEACA,mDACAR,uBAAAQ,OAKA,oEACA,kDACA,qBAEAR,eAAAQ,OAIA,gEACA,gDACAR,aAAAQ,OAKA,gEACA5wC,kDACA,gDACAowC,aAAAQ,OA2DA,OArDA,+DACAR,UACA,CACA08E,QAAAv8E,4CAEA,CACAw8E,UAAAx8E,4CAEA,CACAy8E,WAAAz8E,8CAMA,gCACA,qCAEAH,UACA,CACA08E,QAAAv8E,+CAEA,CACAy8E,WAAAz8E,+CAEA,CACAw8E,UAAAx8E,+CAEA,CACA08E,oBACA18E,+CAGA,CACAg8E,KAAAh8E,iDAMAH,iBAEAA,YAAA88E,aAWA,GAGAC,aAMA,IALA,IACAlwG,EACAkE,EAFA,IAGA+nC,KACA9X,KACA,eACAn0B,UACAkE,eACA,sBAGA+nC,UACA9X,gBAGA,SACAA,cACAk5E,gCAEA,OAAAp7C,SAAAo7C,aAAAl5E,UACA,UAEAg8E,6BAIA,IAHA,IACAnwG,EACAkE,EAFA,IAGA,eACAlE,UAEAkE,6CACA,KACA,6CAGA,wCACA,4CAGA,SACA,0CACAmpG,gCAEA,OACAp7C,uCACAo7C,aACA7sH,oCAGA,UAEA4vH,sBAIA,IAHA,IACApwG,EACAkE,EAFA,IAGA,oBAEAmsG,YACAA,aACAA,4BAEArwG,UAEAkE,sCACA,2CAGA,iCACA,sCAIA,SACA,mCACAmpG,gCAEA,OACAp7C,gCACAo7C,aACA7sH,6BAGA,UAEA8vH,sBAIA,IAHA,IACAtwG,EACAkE,EAFA,IAGA,oBAEAmsG,YACAA,cAEArwG,UAEAkE,sCACA,2CAGA,iCACA,sCAIA,SACA,mCACAmpG,gCAEA,OACAp7C,gCACAo7C,aACA7sH,6BAGA,UAEA+vH,wBAIA,IAHA,IACAvwG,EACAkE,EAFA,IAGA,oBAEAmsG,YACAA,cAEArwG,UAEAkE,sDACA,6CAGA,iDACA,wCAIA,SACA,qCACAmpG,gCAEA,OACAp7C,kCACAo7C,aACA7sH,+BAGA,UAEAgwH,2BAIA,IAHA,IACAxwG,EACAkE,EAFA,IAGA,eACAlE,yBACAkE,sCACA,2CAGA,iCACA,qCAGA,SACA,mCACAmpG,gCAEA,OACAp7C,gCACAo7C,aACA7sH,6BAGA,UAGAwoH,mBACA,uCACAC,eAGA,cACA,uBACA,CACA,4CACAA,eACA,GAAAC,WAEA,WAGAC,eACA,uCACAF,eAGA,cACA,mBACA,CACA,4CACAA,eACA,GAAAxqC,OAEA,YAKAh8C,YACA2G,UACA,cCjlCgW,MCO5V,GAAY,gBACd,GACA,EACA,GACA,EACA,KACA,KACA,MAIa,M,QCoCA,IACf5oC,OACA,OACA+rH,oBACAz+E,SAEA5G,kBACA6K,QACA0+E,0DAGAhG,YACAiG,mBAKAvtF,SACAwtF,oBACA,yBACA,gEC1EmW,MCO/V,GAAY,gBACd,GACA,EACAhiF,GACA,EACA,KACA,KACA,MAIa,gB,2CClBf,W,kCCAA,W,kCCAA,W,kCCAA","file":"js/reporteria.fa022590.js","sourcesContent":["// Components\nimport VToolbar from './VToolbar'\n\n// Utilities\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VToolbarTitle = createSimpleFunctional('v-toolbar__title')\nconst VToolbarItems = createSimpleFunctional('v-toolbar__items')\n\nexport {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n },\n}\n","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\nvar DO_NOT_EXPORT_CODEPAGE=true;var DO_NOT_EXPORT_JSZIP=true;var XLSX={};function make_xlsx_lib(e){e.version=\"0.17.5\";var r=1200,t=1252;var a=[874,932,936,949,950];for(var n=0;n<=8;++n)a.push(1250+n);var i={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969};var s=function(e){if(a.indexOf(e)==-1)return;t=i[0]=e};function l(){s(1252)}var o=function(e){r=e;s(e)};function c(){o(1200);l()}function f(e){var r=[];for(var t=0,a=e.length;t>1;++t)r[t]=String.fromCharCode(e.charCodeAt(2*t)+(e.charCodeAt(2*t+1)<<8));return r.join(\"\")}function h(e){var r=[];for(var t=0;t>1;++t)r[t]=String.fromCharCode(e.charCodeAt(2*t+1)+(e.charCodeAt(2*t)<<8));return r.join(\"\")}var d=function(e){var r=e.charCodeAt(0),t=e.charCodeAt(1);if(r==255&&t==254)return u(e.slice(2));if(r==254&&t==255)return h(e.slice(2));if(r==65279)return e.slice(1);return e};var p=function Hl(e){return String.fromCharCode(e)};var m=function Xl(e){return String.fromCharCode(e)};var v=null;var g=true;var b=function Vl(){var e=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";return{encode:function(r){var t=\"\";var a=0,n=0,i=0,s=0,l=0,o=0,c=0;for(var f=0;f>2;n=r.charCodeAt(f++);l=(a&3)<<4|n>>4;i=r.charCodeAt(f++);o=(n&15)<<2|i>>6;c=i&63;if(isNaN(n)){o=c=64}else if(isNaN(i)){c=64}t+=e.charAt(s)+e.charAt(l)+e.charAt(o)+e.charAt(c)}return t},decode:function r(t){var a=\"\";var n=0,i=0,s=0,l=0,o=0,c=0,f=0;t=t.replace(/[^\\w\\+\\/\\=]/g,\"\");for(var u=0;u>4;a+=String.fromCharCode(n);c=e.indexOf(t.charAt(u++));i=(o&15)<<4|c>>2;if(c!==64){a+=String.fromCharCode(i)}f=e.indexOf(t.charAt(u++));s=(c&3)<<6|f;if(f!==64){a+=String.fromCharCode(s)}}return a}}}();var w=typeof Buffer!==\"undefined\"&&typeof process!==\"undefined\"&&typeof process.versions!==\"undefined\"&&!!process.versions.node;var k=function(){};if(typeof Buffer!==\"undefined\"){var y=!Buffer.from;if(!y)try{Buffer.from(\"foo\",\"utf8\")}catch(x){y=true}k=y?function(e,r){return r?new Buffer(e,r):new Buffer(e)}:Buffer.from.bind(Buffer);if(!Buffer.alloc)Buffer.alloc=function(e){return new Buffer(e)};if(!Buffer.allocUnsafe)Buffer.allocUnsafe=function(e){return new Buffer(e)}}function S(e){return w?Buffer.alloc(e):new Array(e)}function _(e){return w?Buffer.allocUnsafe(e):new Array(e)}var C=function Gl(e){if(w)return k(e,\"binary\");return e.split(\"\").map(function(e){return e.charCodeAt(0)&255})};function A(e){if(typeof ArrayBuffer===\"undefined\")return C(e);var r=new ArrayBuffer(e.length),t=new Uint8Array(r);for(var a=0;a!=e.length;++a)t[a]=e.charCodeAt(a)&255;return r}function E(e){if(Array.isArray(e))return e.map(function(e){return String.fromCharCode(e)}).join(\"\");var r=[];for(var t=0;t=0)r+=e.charAt(t--);return r}function t(e,r){var t=\"\";while(t.length=r?a:t(\"0\",r-a.length)+a}function n(e,r){var a=\"\"+e;return a.length>=r?a:t(\" \",r-a.length)+a}function i(e,r){var a=\"\"+e;return a.length>=r?a:a+t(\" \",r-a.length)}function s(e,r){var a=\"\"+Math.round(e);return a.length>=r?a:t(\"0\",r-a.length)+a}function l(e,r){var a=\"\"+e;return a.length>=r?a:t(\"0\",r-a.length)+a}var o=Math.pow(2,32);function c(e,r){if(e>o||e<-o)return s(e,r);var t=Math.round(e);return l(t,r)}function f(e,r){r=r||0;return e.length>=7+r&&(e.charCodeAt(r)|32)===103&&(e.charCodeAt(r+1)|32)===101&&(e.charCodeAt(r+2)|32)===110&&(e.charCodeAt(r+3)|32)===101&&(e.charCodeAt(r+4)|32)===114&&(e.charCodeAt(r+5)|32)===97&&(e.charCodeAt(r+6)|32)===108}var u=[[\"Sun\",\"Sunday\"],[\"Mon\",\"Monday\"],[\"Tue\",\"Tuesday\"],[\"Wed\",\"Wednesday\"],[\"Thu\",\"Thursday\"],[\"Fri\",\"Friday\"],[\"Sat\",\"Saturday\"]];var h=[[\"J\",\"Jan\",\"January\"],[\"F\",\"Feb\",\"February\"],[\"M\",\"Mar\",\"March\"],[\"A\",\"Apr\",\"April\"],[\"M\",\"May\",\"May\"],[\"J\",\"Jun\",\"June\"],[\"J\",\"Jul\",\"July\"],[\"A\",\"Aug\",\"August\"],[\"S\",\"Sep\",\"September\"],[\"O\",\"Oct\",\"October\"],[\"N\",\"Nov\",\"November\"],[\"D\",\"Dec\",\"December\"]];function d(e){e[0]=\"General\";e[1]=\"0\";e[2]=\"0.00\";e[3]=\"#,##0\";e[4]=\"#,##0.00\";e[9]=\"0%\";e[10]=\"0.00%\";e[11]=\"0.00E+00\";e[12]=\"# ?/?\";e[13]=\"# ??/??\";e[14]=\"m/d/yy\";e[15]=\"d-mmm-yy\";e[16]=\"d-mmm\";e[17]=\"mmm-yy\";e[18]=\"h:mm AM/PM\";e[19]=\"h:mm:ss AM/PM\";e[20]=\"h:mm\";e[21]=\"h:mm:ss\";e[22]=\"m/d/yy h:mm\";e[37]=\"#,##0 ;(#,##0)\";e[38]=\"#,##0 ;[Red](#,##0)\";e[39]=\"#,##0.00;(#,##0.00)\";e[40]=\"#,##0.00;[Red](#,##0.00)\";e[45]=\"mm:ss\";e[46]=\"[h]:mm:ss\";e[47]=\"mmss.0\";e[48]=\"##0.0E+0\";e[49]=\"@\";e[56]='\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"'}var p={};d(p);var m=[];var v=0;for(v=5;v<=8;++v)m[v]=32+v;for(v=23;v<=26;++v)m[v]=0;for(v=27;v<=31;++v)m[v]=14;for(v=50;v<=58;++v)m[v]=14;for(v=59;v<=62;++v)m[v]=v-58;for(v=67;v<=68;++v)m[v]=v-58;for(v=72;v<=75;++v)m[v]=v-58;for(v=67;v<=68;++v)m[v]=v-57;for(v=76;v<=78;++v)m[v]=v-56;for(v=79;v<=81;++v)m[v]=v-34;var g=[];g[5]=g[63]='\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)';g[6]=g[64]='\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)';g[7]=g[65]='\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)';g[8]=g[66]='\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)';g[41]='_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)';g[42]='_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)';g[43]='_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)';g[44]='_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)';function b(e,r,t){var a=e<0?-1:1;var n=e*a;var i=0,s=1,l=0;var o=1,c=0,f=0;var u=Math.floor(n);while(cr){if(c>r){f=o;l=i}else{f=c;l=s}}if(!t)return[0,a*l,f];var h=Math.floor(a*l/f);return[h,a*l-h*f,f]}function w(e,r,t){if(e>2958465||e<0)return null;var a=e|0,n=Math.floor(86400*(e-a)),i=0;var s=[];var l={D:a,T:n,u:86400*(e-a)-n,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(l.u)<1e-6)l.u=0;if(r&&r.date1904)a+=1462;if(l.u>.9999){l.u=0;if(++n==86400){l.T=n=0;++a;++l.D}}if(a===60){s=t?[1317,10,29]:[1900,2,29];i=3}else if(a===0){s=t?[1317,8,29]:[1900,1,0];i=6}else{if(a>60)--a;var o=new Date(1900,0,1);o.setDate(o.getDate()+a-1);s=[o.getFullYear(),o.getMonth()+1,o.getDate()];i=o.getDay();if(a<60)i=(i+6)%7;if(t)i=E(o,s)}l.y=s[0];l.m=s[1];l.d=s[2];l.S=n%60;n=Math.floor(n/60);l.M=n%60;n=Math.floor(n/60);l.H=n;l.q=i;return l}e.parse_date_code=w;var k=new Date(1899,11,31,0,0,0);var y=k.getTime();var x=new Date(1900,2,1,0,0,0);function S(e,r){var t=e.getTime();if(r)t-=1461*24*60*60*1e3;else if(e>=x)t+=24*60*60*1e3;return(t-(y+(e.getTimezoneOffset()-k.getTimezoneOffset())*6e4))/(24*60*60*1e3)}function _(e){return e.toString(10)}e._general_int=_;var C=function $(){var e=/(?:\\.0*|(\\.\\d*[1-9])0+)$/;function r(r){return r.indexOf(\".\")==-1?r:r.replace(e,\"$1\")}var t=/(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/;var a=/(E[+-])(\\d)$/;function n(e){if(e.indexOf(\"E\")==-1)return e;return e.replace(t,\"$1E\").replace(a,\"$10$2\")}function i(e){var t=e<0?12:11;var a=r(e.toFixed(12));if(a.length<=t)return a;a=e.toPrecision(10);if(a.length<=t)return a;return e.toExponential(5)}function s(e){var t=r(e.toFixed(11));return t.length>(e<0?12:11)||t===\"0\"||t===\"-0\"?e.toPrecision(6):t}function l(e){var t=Math.floor(Math.log(Math.abs(e))*Math.LOG10E),a;if(t>=-4&&t<=-1)a=e.toPrecision(10+t);else if(Math.abs(t)<=9)a=i(e);else if(t===10)a=e.toFixed(10).substr(0,12);else a=s(e);return r(n(a.toUpperCase()))}return l}();e._general_num=C;function A(e,r){switch(typeof e){case\"string\":return e;case\"boolean\":return e?\"TRUE\":\"FALSE\";case\"number\":return(e|0)===e?e.toString(10):C(e);case\"undefined\":return\"\";case\"object\":if(e==null)return\"\";if(e instanceof Date)return z(14,S(e,r&&r.date1904),r);}throw new Error(\"unsupported value in General format: \"+e)}e._general=A;function E(e,r){r[0]-=581;var t=e.getDay();if(e<60)t=(t+6)%7;return t}function F(e,r,t,n){var i=\"\",s=0,l=0,o=t.y,c,f=0;switch(e){case 98:o=t.y+543;case 121:switch(r.length){case 1:;case 2:c=o%100;f=2;break;default:c=o%1e4;f=4;break;}break;case 109:switch(r.length){case 1:;case 2:c=t.m;f=r.length;break;case 3:return h[t.m-1][1];case 5:return h[t.m-1][0];default:return h[t.m-1][2];}break;case 100:switch(r.length){case 1:;case 2:c=t.d;f=r.length;break;case 3:return u[t.q][0];default:return u[t.q][1];}break;case 104:switch(r.length){case 1:;case 2:c=1+(t.H+11)%12;f=r.length;break;default:throw\"bad hour format: \"+r;}break;case 72:switch(r.length){case 1:;case 2:c=t.H;f=r.length;break;default:throw\"bad hour format: \"+r;}break;case 77:switch(r.length){case 1:;case 2:c=t.M;f=r.length;break;default:throw\"bad minute format: \"+r;}break;case 115:if(r!=\"s\"&&r!=\"ss\"&&r!=\".0\"&&r!=\".00\"&&r!=\".000\")throw\"bad second format: \"+r;if(t.u===0&&(r==\"s\"||r==\"ss\"))return a(t.S,r.length);if(n>=2)l=n===3?1e3:100;else l=n===1?10:1;s=Math.round(l*(t.S+t.u));if(s>=60*l)s=0;if(r===\"s\")return s===0?\"0\":\"\"+s/l;i=a(s,2+n);if(r===\"ss\")return i.substr(0,2);return\".\"+i.substr(2,r.length-1);case 90:switch(r){case\"[h]\":;case\"[hh]\":c=t.D*24+t.H;break;case\"[m]\":;case\"[mm]\":c=(t.D*24+t.H)*60+t.M;break;case\"[s]\":;case\"[ss]\":c=((t.D*24+t.H)*60+t.M)*60+Math.round(t.S+t.u);break;default:throw\"bad abstime format: \"+r;}f=r.length===3?1:2;break;case 101:c=o;f=1;break;}var d=f>0?a(c,f):\"\";return d}function T(e){var r=3;if(e.length<=r)return e;var t=e.length%r,a=e.substr(0,t);for(;t!=e.length;t+=r)a+=(a.length>0?\",\":\"\")+e.substr(t,r);return a}var O=function U(){var e=/%/g;function s(r,a,n){var i=a.replace(e,\"\"),s=a.length-i.length;return O(r,i,n*Math.pow(10,2*s))+t(\"%\",s)}function l(e,r,t){var a=r.length-1;while(r.charCodeAt(a-1)===44)--a;return O(e,r.substr(0,a),t/Math.pow(10,3*(r.length-a)))}function o(e,r){var t;var a=e.indexOf(\"E\")-e.indexOf(\".\")-1;if(e.match(/^#+0.0E\\+0$/)){if(r==0)return\"0.0E+0\";else if(r<0)return\"-\"+o(e,-r);var n=e.indexOf(\".\");if(n===-1)n=e.indexOf(\"E\");var i=Math.floor(Math.log(r)*Math.LOG10E)%n;if(i<0)i+=n;t=(r/Math.pow(10,i)).toPrecision(a+1+(n+i)%n);if(t.indexOf(\"e\")===-1){var s=Math.floor(Math.log(r)*Math.LOG10E);if(t.indexOf(\".\")===-1)t=t.charAt(0)+\".\"+t.substr(1)+\"E+\"+(s-t.length+i);else t+=\"E+\"+(s-i);while(t.substr(0,2)===\"0.\"){t=t.charAt(0)+t.substr(2,n)+\".\"+t.substr(2+n);t=t.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\")}t=t.replace(/\\+-/,\"-\")}t=t.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function(e,r,t,a){return r+t+a.substr(0,(n+i)%n)+\".\"+a.substr(i)+\"E\"})}else t=r.toExponential(a);if(e.match(/E\\+00$/)&&t.match(/e[+-]\\d$/))t=t.substr(0,t.length-1)+\"0\"+t.charAt(t.length-1);if(e.match(/E\\-/)&&t.match(/e\\+/))t=t.replace(/e\\+/,\"e\");return t.replace(\"e\",\"E\")}var f=/# (\\?+)( ?)\\/( ?)(\\d+)/;function u(e,r,i){var s=parseInt(e[4],10),l=Math.round(r*s),o=Math.floor(l/s);var c=l-o*s,f=s;return i+(o===0?\"\":\"\"+o)+\" \"+(c===0?t(\" \",e[1].length+1+e[4].length):n(c,e[1].length)+e[2]+\"/\"+e[3]+a(f,e[4].length))}function h(e,r,a){return a+(r===0?\"\":\"\"+r)+t(\" \",e[1].length+2+e[4].length)}var d=/^#*0*\\.([0#]+)/;var p=/\\).*[0#]/;var m=/\\(###\\) ###\\\\?-####/;function v(e){var r=\"\",t;for(var a=0;a!=e.length;++a)switch(t=e.charCodeAt(a)){case 35:break;case 63:r+=\" \";break;case 48:r+=\"0\";break;default:r+=String.fromCharCode(t);}return r}function g(e,r){var t=Math.pow(10,r);return\"\"+Math.round(e*t)/t}function w(e,r){var t=e-Math.floor(e),a=Math.pow(10,r);if(r<(\"\"+Math.round(t*a)).length)return 0;return Math.round(t*a)}function k(e,r){if(r<(\"\"+Math.round((e-Math.floor(e))*Math.pow(10,r))).length){return 1}return 0}function y(e){if(e<2147483647&&e>-2147483648)return\"\"+(e>=0?e|0:e-1|0);return\"\"+Math.floor(e)}function x(e,h,S){if(e.charCodeAt(0)===40&&!h.match(p)){var _=h.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");if(S>=0)return x(\"n\",_,S);return\"(\"+x(\"n\",_,-S)+\")\"}if(h.charCodeAt(h.length-1)===44)return l(e,h,S);if(h.indexOf(\"%\")!==-1)return s(e,h,S);if(h.indexOf(\"E\")!==-1)return o(h,S);if(h.charCodeAt(0)===36)return\"$\"+x(e,h.substr(h.charAt(1)==\" \"?2:1),S);var C;var A,E,F,D=Math.abs(S),M=S<0?\"-\":\"\";if(h.match(/^00+$/))return M+c(D,h.length);if(h.match(/^[#?]+$/)){C=c(S,0);if(C===\"0\")C=\"\";return C.length>h.length?C:v(h.substr(0,h.length-C.length))+C}if(A=h.match(f))return u(A,D,M);if(h.match(/^#+0+$/))return M+c(D,h.length-h.indexOf(\"0\"));if(A=h.match(d)){C=g(S,A[1].length).replace(/^([^\\.]+)$/,\"$1.\"+v(A[1])).replace(/\\.$/,\".\"+v(A[1])).replace(/\\.(\\d*)$/,function(e,r){return\".\"+r+t(\"0\",v(A[1]).length-r.length)});return h.indexOf(\"0.\")!==-1?C:C.replace(/^0\\./,\".\")}h=h.replace(/^#+([0.])/,\"$1\");if(A=h.match(/^(0*)\\.(#*)$/)){return M+g(D,A[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,A[1].length?\"0.\":\".\")}if(A=h.match(/^#{1,3},##0(\\.?)$/))return M+T(c(D,0));if(A=h.match(/^#,##0\\.([#0]*0)$/)){return S<0?\"-\"+x(e,h,-S):T(\"\"+(Math.floor(S)+k(S,A[1].length)))+\".\"+a(w(S,A[1].length),A[1].length)}if(A=h.match(/^#,#*,#0/))return x(e,h.replace(/^#,#*,/,\"\"),S);if(A=h.match(/^([0#]+)(\\\\?-([0#]+))+$/)){C=r(x(e,h.replace(/[\\\\-]/g,\"\"),S));E=0;return r(r(h.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(e){return E=0)return A(\"n\",o,l);return\"(\"+A(\"n\",o,-l)+\")\"}if(s.charCodeAt(s.length-1)===44)return S(e,s,l);if(s.indexOf(\"%\")!==-1)return _(e,s,l);if(s.indexOf(\"E\")!==-1)return C(s,l);if(s.charCodeAt(0)===36)return\"$\"+A(e,s.substr(s.charAt(1)==\" \"?2:1),l);var c;var u,g,w,k=Math.abs(l),y=l<0?\"-\":\"\";if(s.match(/^00+$/))return y+a(k,s.length);if(s.match(/^[#?]+$/)){c=\"\"+l;if(l===0)c=\"\";return c.length>s.length?c:v(s.substr(0,s.length-c.length))+c}if(u=s.match(f))return h(u,k,y);if(s.match(/^#+0+$/))return y+a(k,s.length-s.indexOf(\"0\"));if(u=s.match(d)){c=(\"\"+l).replace(/^([^\\.]+)$/,\"$1.\"+v(u[1])).replace(/\\.$/,\".\"+v(u[1]));c=c.replace(/\\.(\\d*)$/,function(e,r){return\".\"+r+t(\"0\",v(u[1]).length-r.length)});return s.indexOf(\"0.\")!==-1?c:c.replace(/^0\\./,\".\")}s=s.replace(/^#+([0.])/,\"$1\");if(u=s.match(/^(0*)\\.(#*)$/)){return y+(\"\"+k).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,u[1].length?\"0.\":\".\")}if(u=s.match(/^#{1,3},##0(\\.?)$/))return y+T(\"\"+k);if(u=s.match(/^#,##0\\.([#0]*0)$/)){return l<0?\"-\"+A(e,s,-l):T(\"\"+l)+\".\"+t(\"0\",u[1].length)}if(u=s.match(/^#,#*,#0/))return A(e,s.replace(/^#,#*,/,\"\"),l);if(u=s.match(/^([0#]+)(\\\\?-([0#]+))+$/)){c=r(A(e,s.replace(/[\\\\-]/g,\"\"),l));g=0;return r(r(s.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(e){return g-1||t==\"\\\\\"&&e.charAt(r+1)==\"-\"&&\"0#\".indexOf(e.charAt(r+2))>-1)){}break;case\"?\":while(e.charAt(++r)===t){}break;case\"*\":++r;if(e.charAt(r)==\" \"||e.charAt(r)==\"*\")++r;break;case\"(\":;case\")\":++r;break;case\"1\":;case\"2\":;case\"3\":;case\"4\":;case\"5\":;case\"6\":;case\"7\":;case\"8\":;case\"9\":while(r-1){}break;case\" \":++r;break;default:++r;break;}}return false}e.is_date=N;function R(e,r,t,a){var n=[],i=\"\",s=0,l=\"\",o=\"t\",c,u,h;var d=\"H\";while(s=12?\"P\":\"A\";v.t=\"T\";d=\"h\";s+=3}else if(e.substr(s,5).toUpperCase()===\"AM/PM\"){if(c!=null)v.v=c.H>=12?\"PM\":\"AM\";v.t=\"T\";s+=5;d=\"h\"}else if(e.substr(s,5).toUpperCase()===\"上午/下午\"){if(c!=null)v.v=c.H>=12?\"下午\":\"上午\";v.t=\"T\";s+=5;d=\"h\"}else{v.t=\"t\";++s}if(c==null&&v.t===\"T\")return\"\";n[n.length]=v;o=l;break;case\"[\":i=l;while(e.charAt(s++)!==\"]\"&&s-1){i=(i.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";if(!N(e))n[n.length]={t:\"t\",v:i}}break;case\".\":if(c!=null){i=l;while(++s-1)i+=l;n[n.length]={t:\"n\",v:i};break;case\"?\":i=l;while(e.charAt(++s)===l)i+=l;n[n.length]={t:l,v:i};o=l;break;case\"*\":++s;if(e.charAt(s)==\" \"||e.charAt(s)==\"*\")++s;break;case\"(\":;case\")\":n[n.length]={t:a===1?\"t\":l,v:l};++s;break;case\"1\":;case\"2\":;case\"3\":;case\"4\":;case\"5\":;case\"6\":;case\"7\":;case\"8\":;case\"9\":i=l;while(s-1)i+=e.charAt(s);n[n.length]={t:\"D\",v:i};break;case\" \":n[n.length]={t:l,v:l};++s;break;case\"$\":n[n.length]={t:\"t\",v:\"$\"};++s;break;default:if(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(l)===-1)throw new Error(\"unrecognized character \"+l+\" in \"+e);n[n.length]={t:\"t\",v:l};++s;break;}}var g=0,b=0,k;for(s=n.length-1,o=\"t\";s>=0;--s){switch(n[s].t){case\"h\":;case\"H\":n[s].t=d;o=\"h\";if(g<1)g=1;break;case\"s\":if(k=n[s].v.match(/\\.0+$/))b=Math.max(b,k[0].length-1);if(g<3)g=3;case\"d\":;case\"y\":;case\"M\":;case\"e\":o=n[s].t;break;case\"m\":if(o===\"s\"){n[s].t=\"M\";if(g<2)g=2}break;case\"X\":break;case\"Z\":if(g<1&&n[s].v.match(/[Hh]/))g=1;if(g<2&&n[s].v.match(/[Mm]/))g=2;if(g<3&&n[s].v.match(/[Ss]/))g=3;}}switch(g){case 0:break;case 1:if(c.u>=.5){c.u=0;++c.S}if(c.S>=60){c.S=0;++c.M}if(c.M>=60){c.M=0;++c.H}break;case 2:if(c.u>=.5){c.u=0;++c.S}if(c.S>=60){c.S=0;++c.M}break;}var y=\"\",x;for(s=0;s0){if(y.charCodeAt(0)==40){_=r<0&&y.charCodeAt(0)===45?-r:r;C=O(\"n\",y,_)}else{_=r<0&&a>1?-r:r;C=O(\"n\",y,_);if(_<0&&n[0]&&n[0].t==\"t\"){C=C.substr(1);n[0].v=\"-\"+n[0].v}}x=C.length-1;var E=n.length;for(s=0;s-1){E=s;break}var T=n.length;if(E===n.length&&C.indexOf(\"E\")===-1){for(s=n.length-1;s>=0;--s){if(n[s]==null||\"n?\".indexOf(n[s].t)===-1)continue;if(x>=n[s].v.length-1){x-=n[s].v.length;n[s].v=C.substr(x+1,n[s].v.length)}else if(x<0)n[s].v=\"\";else{n[s].v=C.substr(0,x+1);x=-1}n[s].t=\"t\";T=s}if(x>=0&&T=0;--s){if(n[s]==null||\"n?\".indexOf(n[s].t)===-1)continue;u=n[s].v.indexOf(\".\")>-1&&s===E?n[s].v.indexOf(\".\")-1:n[s].v.length-1;S=n[s].v.substr(u+1);for(;u>=0;--u){if(x>=0&&(n[s].v.charAt(u)===\"0\"||n[s].v.charAt(u)===\"#\"))S=C.charAt(x--)+S}n[s].v=S;n[s].t=\"t\";T=s}if(x>=0&&T-1&&s===E?n[s].v.indexOf(\".\")+1:0;S=n[s].v.substr(0,u);for(;u-1){_=a>1&&r<0&&s>0&&n[s-1].v===\"-\"?-r:r;n[s].v=O(n[s].t,n[s].v,_);n[s].t=\"t\"}var D=\"\";for(s=0;s!==n.length;++s)if(n[s]!=null)D+=n[s].v;return D}e._eval=R;var P=/\\[[=<>]/;var I=/\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;function L(e,r){if(r==null)return false;var t=parseFloat(r[2]);switch(r[1]){case\"=\":if(e==t)return true;break;case\">\":if(e>t)return true;break;case\"<\":if(e\":if(e!=t)return true;break;case\">=\":if(e>=t)return true;break;case\"<=\":if(e<=t)return true;break;}return false}function B(e,r){var t=D(e);var a=t.length,n=t[a-1].indexOf(\"@\");if(a<4&&n>-1)--a;if(t.length>4)throw new Error(\"cannot find right format for |\"+t.join(\"|\")+\"|\");if(typeof r!==\"number\")return[4,t.length===4||n>-1?t[t.length-1]:\"@\"];switch(t.length){case 1:t=n>-1?[\"General\",\"General\",\"General\",t[0]]:[t[0],t[0],t[0],\"@\"];break;case 2:t=n>-1?[t[0],t[0],t[0],t[1]]:[t[0],t[1],t[0],\"@\"];break;case 3:t=n>-1?[t[0],t[1],t[0],t[2]]:[t[0],t[1],t[2],\"@\"];break;case 4:break;}var i=r>0?t[0]:r<0?t[1]:t[2];if(t[0].indexOf(\"[\")===-1&&t[1].indexOf(\"[\")===-1)return[a,i];if(t[0].match(P)!=null||t[1].match(P)!=null){var s=t[0].match(I);var l=t[1].match(I);return L(r,s)?[a,t[0]]:L(r,l)?[a,t[1]]:[a,t[s!=null&&l!=null?2:1]]}return[a,i]}function z(e,r,t){if(t==null)t={};var a=\"\";switch(typeof e){case\"string\":if(e==\"m/d/yy\"&&t.dateNF)a=t.dateNF;else a=e;break;case\"number\":if(e==14&&t.dateNF)a=t.dateNF;else a=(t.table!=null?t.table:p)[e];if(a==null)a=t.table&&t.table[m[e]]||p[m[e]];if(a==null)a=g[e]||\"General\";break;}if(f(a,0))return A(r,t);if(r instanceof Date)r=S(r,t.date1904);var n=B(a,r);if(f(n[1]))return A(r,t);if(r===true)r=\"TRUE\";else if(r===false)r=\"FALSE\";else if(r===\"\"||r==null)return\"\";return R(n[1],r,t,n[0])}function W(e,r){if(typeof r!=\"number\"){r=+r||-1;for(var t=0;t<392;++t){if(p[t]==undefined){if(r<0)r=t;continue}if(p[t]==e){r=t;break}}if(r<0)r=391}p[r]=e;return r}e.load=W;e._table=p;e.get_table=function j(){return p};e.load_table=function H(e){for(var r=0;r!=392;++r)if(e[r]!==undefined)W(e[r],r)};e.init_table=d;e.format=z};R(N);var P={\"General Number\":\"General\",\"General Date\":N._table[22],\"Long Date\":\"dddd, mmmm dd, yyyy\",\"Medium Date\":N._table[15],\"Short Date\":N._table[14],\"Long Time\":N._table[19],\"Medium Time\":N._table[18],\"Short Time\":N._table[20],Currency:'\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',Fixed:N._table[2],Standard:N._table[4],Percent:N._table[10],Scientific:N._table[11],\"Yes/No\":'\"Yes\";\"Yes\";\"No\";@',\"True/False\":'\"True\";\"True\";\"False\";@',\"On/Off\":'\"Yes\";\"Yes\";\"No\";@'};var I={5:'\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',6:'\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',7:'\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',8:'\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',23:\"General\",24:\"General\",25:\"General\",26:\"General\",27:\"m/d/yy\",28:\"m/d/yy\",29:\"m/d/yy\",30:\"m/d/yy\",31:\"m/d/yy\",32:\"h:mm:ss\",33:\"h:mm:ss\",34:\"h:mm:ss\",35:\"h:mm:ss\",36:\"m/d/yy\",41:'_(* #,##0_);_(* (#,##0);_(* \"-\"_);_(@_)',42:'_(\"$\"* #,##0_);_(\"$\"* (#,##0);_(\"$\"* \"-\"_);_(@_)',43:'_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)',44:'_(\"$\"* #,##0.00_);_(\"$\"* (#,##0.00);_(\"$\"* \"-\"??_);_(@_)',50:\"m/d/yy\",51:\"m/d/yy\",52:\"m/d/yy\",53:\"m/d/yy\",54:\"m/d/yy\",55:\"m/d/yy\",56:\"m/d/yy\",57:\"m/d/yy\",58:\"m/d/yy\",59:\"0\",60:\"0.00\",61:\"#,##0\",62:\"#,##0.00\",63:'\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',64:'\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',65:'\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',66:'\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',67:\"0%\",68:\"0.00%\",69:\"# ?/?\",70:\"# ??/??\",71:\"m/d/yy\",72:\"m/d/yy\",73:\"d-mmm-yy\",74:\"d-mmm\",75:\"mmm-yy\",76:\"h:mm\",77:\"h:mm:ss\",78:\"m/d/yy h:mm\",79:\"mm:ss\",80:\"[h]:mm:ss\",81:\"mmss.0\"};var L=/[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;function B(e){var r=typeof e==\"number\"?N._table[e]:e;r=r.replace(L,\"(\\\\d+)\");return new RegExp(\"^\"+r+\"$\")}function z(e,r,t){var a=-1,n=-1,i=-1,s=-1,l=-1,o=-1;(r.match(L)||[]).forEach(function(e,r){var c=parseInt(t[r+1],10);switch(e.toLowerCase().charAt(0)){case\"y\":a=c;break;case\"d\":i=c;break;case\"h\":s=c;break;case\"s\":o=c;break;case\"m\":if(s>=0)l=c;else n=c;break;}});if(o>=0&&l==-1&&n>=0){l=n;n=-1}var c=(\"\"+(a>=0?a:(new Date).getFullYear())).slice(-4)+\"-\"+(\"00\"+(n>=1?n:1)).slice(-2)+\"-\"+(\"00\"+(i>=1?i:1)).slice(-2);if(c.length==7)c=\"0\"+c;if(c.length==8)c=\"20\"+c;var f=(\"00\"+(s>=0?s:0)).slice(-2)+\":\"+(\"00\"+(l>=0?l:0)).slice(-2)+\":\"+(\"00\"+(o>=0?o:0)).slice(-2);if(s==-1&&l==-1&&o==-1)return c;if(a==-1&&n==-1&&i==-1)return f;return c+\"T\"+f}var W=true;var U;(function(e){e(U={})})(function(e){e.version=\"1.2.0\";function r(){var e=0,r=new Array(256);for(var t=0;t!=256;++t){e=t;e=e&1?-306674912^e>>>1:e>>>1;e=e&1?-306674912^e>>>1:e>>>1;e=e&1?-306674912^e>>>1:e>>>1;e=e&1?-306674912^e>>>1:e>>>1;e=e&1?-306674912^e>>>1:e>>>1;e=e&1?-306674912^e>>>1:e>>>1;e=e&1?-306674912^e>>>1:e>>>1;e=e&1?-306674912^e>>>1:e>>>1;r[t]=e}return typeof Int32Array!==\"undefined\"?new Int32Array(r):r}var t=r();function a(e,r){var a=r^-1,n=e.length-1;for(var i=0;i>>8^t[(a^e.charCodeAt(i++))&255];a=a>>>8^t[(a^e.charCodeAt(i++))&255]}if(i===n)a=a>>>8^t[(a^e.charCodeAt(i))&255];return a^-1}function n(e,r){if(e.length>1e4)return i(e,r);var a=r^-1,n=e.length-3;for(var s=0;s>>8^t[(a^e[s++])&255];a=a>>>8^t[(a^e[s++])&255];a=a>>>8^t[(a^e[s++])&255];a=a>>>8^t[(a^e[s++])&255]}while(s>>8^t[(a^e[s++])&255];return a^-1}function i(e,r){var a=r^-1,n=e.length-7;for(var i=0;i>>8^t[(a^e[i++])&255];a=a>>>8^t[(a^e[i++])&255];a=a>>>8^t[(a^e[i++])&255];a=a>>>8^t[(a^e[i++])&255];a=a>>>8^t[(a^e[i++])&255];a=a>>>8^t[(a^e[i++])&255];a=a>>>8^t[(a^e[i++])&255];a=a>>>8^t[(a^e[i++])&255]}while(i>>8^t[(a^e[i++])&255];return a^-1}function s(e,r){var a=r^-1;for(var n=0,i=e.length,s,l;n>>8^t[(a^s)&255]}else if(s<2048){a=a>>>8^t[(a^(192|s>>6&31))&255];a=a>>>8^t[(a^(128|s&63))&255]}else if(s>=55296&&s<57344){s=(s&1023)+64;l=e.charCodeAt(n++)&1023;a=a>>>8^t[(a^(240|s>>8&7))&255];a=a>>>8^t[(a^(128|s>>2&63))&255];a=a>>>8^t[(a^(128|l>>6&15|(s&3)<<4))&255];a=a>>>8^t[(a^(128|l&63))&255]}else{a=a>>>8^t[(a^(224|s>>12&15))&255];a=a>>>8^t[(a^(128|s>>6&63))&255];a=a>>>8^t[(a^(128|s&63))&255]}}return a^-1}e.table=t;e.bstr=a;e.buf=n;e.str=s});var j=function Kl(){var e={};e.version=\"1.1.4\";function r(e,r){var t=e.split(\"/\"),a=r.split(\"/\");for(var n=0,i=0,s=Math.min(t.length,a.length);n>>1;e._W(2,t);var a=r.getFullYear()-1980;a=a<<4|r.getMonth()+1;a=a<<5|r.getDate();e._W(2,a)}function i(e){var r=e._R(2)&65535;var t=e._R(2)&65535;var a=new Date;var n=t&31;t>>>=5;var i=t&15;t>>>=4;a.setMilliseconds(0);a.setFullYear(t+1980);a.setMonth(i-1);a.setDate(n);var s=r&31;r>>>=5;var l=r&63;r>>>=6;a.setHours(r);a.setMinutes(l);a.setSeconds(s<<1);return a}function s(e){Kr(e,0);var r={};var t=0;while(e.l<=e.length-4){var a=e._R(2);var n=e._R(2),i=e.l+n;var s={};switch(a){case 21589:{t=e._R(1);if(t&1)s.mtime=e._R(4);if(n>5){if(t&2)s.atime=e._R(4);if(t&4)s.ctime=e._R(4)}if(s.mtime)s.mt=new Date(s.mtime*1e3)}break;}e.l=i;r[a]=s}return r}var l;function o(){return l||(l=require(\"fs\"))}function c(e,r){if(e[0]==80&&e[1]==75)return Ae(e,r);if(e.length<512)throw new Error(\"CFB file size \"+e.length+\" < 512\");var t=3;var a=512;var n=0;var i=0;var s=0;var l=0;var o=0;var c=[];var p=e.slice(0,512);Kr(p,0);var v=f(p);t=v[0];switch(t){case 3:a=512;break;case 4:a=4096;break;case 0:if(v[1]==0)return Ae(e,r);default:throw new Error(\"Major Version: Expected 3 or 4 saw \"+t);}if(a!==512){p=e.slice(0,a);Kr(p,28)}var b=e.slice(0,a);u(p,t);var w=p._R(4,\"i\");if(t===3&&w!==0)throw new Error(\"# Directory Sectors: Expected 0 saw \"+w);p.l+=4;s=p._R(4,\"i\");p.l+=4;p.chk(\"00100000\",\"Mini Stream Cutoff Size: \");l=p._R(4,\"i\");n=p._R(4,\"i\");o=p._R(4,\"i\");i=p._R(4,\"i\");for(var y=-1,x=0;x<109;++x){y=p._R(4,\"i\");if(y<0)break;c[x]=y}var S=h(e,a);m(o,i,S,a,c);var _=g(S,s,c,a);_[s].name=\"!Directory\";if(n>0&&l!==I)_[l].name=\"!MiniFAT\";_[c[0]].name=\"!FAT\";_.fat_addrs=c;_.ssz=a;var C={},A=[],E=[],F=[];k(s,_,S,A,n,C,E,l);d(E,F,A);A.shift();var T={FileIndex:E,FullPaths:F};if(r&&r.raw)T.raw={header:b,sectors:S};return T}function f(e){if(e[e.l]==80&&e[e.l+1]==75)return[0,0];e.chk(L,\"Header Signature: \");e.l+=16;var r=e._R(2,\"u\");return[e._R(2,\"u\"),r]}function u(e,r){var t=9;e.l+=2;switch(t=e._R(2)){case 9:if(r!=3)throw new Error(\"Sector Shift: Expected 9 saw \"+t);break;case 12:if(r!=4)throw new Error(\"Sector Shift: Expected 12 saw \"+t);break;default:throw new Error(\"Sector Shift: Expected 9 or 12 saw \"+t);}e.chk(\"0600\",\"Mini Sector Shift: \");e.chk(\"000000000000\",\"Reserved: \")}function h(e,r){var t=Math.ceil(e.length/r)-1;var a=[];for(var n=1;n0&&s>=0){i.push(r.slice(s*P,s*P+P));n-=P;s=$r(t,s*4)}if(i.length===0)return qr(0);return O(i).slice(0,e.size)}function m(e,r,t,a,n){var i=I;if(e===I){if(r!==0)throw new Error(\"DIFAT chain shorter than expected\")}else if(e!==-1){var s=t[e],l=(a>>>2)-1;if(!s)return;for(var o=0;o=1)m($r(s,a-4),r-1,t,a,n)}}function v(e,r,t,a,n){var i=[],s=[];if(!n)n=[];var l=a-1,o=0,c=0;for(o=r;o>=0;){n[o]=true;i[i.length]=o;s.push(e[o]);var f=t[Math.floor(o*4/a)];c=o*4&l;if(a<4+c)throw new Error(\"FAT boundary crossed: \"+o+\" 4 \"+a);if(!e[f])break;o=$r(e[f],c)}return{nodes:i,data:vr([s])}}function g(e,r,t,a){var n=e.length,i=[];var s=[],l=[],o=[];var c=a-1,f=0,u=0,h=0,d=0;for(f=0;f=n)h-=n;if(s[h])continue;o=[];var p=[];for(u=h;u>=0;){p[u]=true;s[u]=true;l[l.length]=u;o.push(e[u]);var m=t[Math.floor(u*4/a)];d=u*4&c;if(a<4+d)throw new Error(\"FAT boundary crossed: \"+u+\" 4 \"+a);if(!e[m])break;u=$r(e[m],d);if(p[u])break}i[h]={nodes:l,data:vr([o])}}return i}function k(e,r,t,a,n,i,s,l){var o=0,c=a.length?2:0;var f=r[e].data;var u=0,h=0,d;for(;u0&&o!==I)r[o].name=\"!StreamData\"}else if(g.size>=4096){g.storage=\"fat\";if(r[g.start]===undefined)r[g.start]=v(t,g.start,r.fat_addrs,r.ssz);r[g.start].name=g.name;g.content=r[g.start].data.slice(0,g.size)}else{g.storage=\"minifat\";if(g.size<0)g.size=0;else if(o!==I&&g.start!==I&&r[o]){g.content=p(g,r[o].data,(r[l]||{}).data)}}if(g.content)Kr(g.content,0);i[d]=g;s.push(g)}}function y(e,r){return new Date((Wr(e,r+4)/1e7*Math.pow(2,32)+Wr(e,r)/1e7-11644473600)*1e3)}function x(e,r){o();return c(l.readFileSync(e),r)}function A(e,r){switch(r&&r.type||\"base64\"){case\"file\":return x(e,r);case\"base64\":return c(C(b.decode(e)),r);case\"binary\":return c(C(e),r);}return c(e,r)}function E(e,r){var t=r||{},a=t.root||\"Root Entry\";if(!e.FullPaths)e.FullPaths=[];if(!e.FileIndex)e.FileIndex=[];if(e.FullPaths.length!==e.FileIndex.length)throw new Error(\"inconsistent CFB structure\");if(e.FullPaths.length===0){e.FullPaths[0]=a+\"/\";e.FileIndex[0]={name:a,type:5}}if(t.CLSID)e.FileIndex[0].clsid=t.CLSID;F(e)}function F(e){var r=\"\u0001Sh33tJ5\";if(j.find(e,\"/\"+r))return;var t=qr(4);t[0]=55;t[1]=t[3]=50;t[2]=54;e.FileIndex.push({name:r,type:2,content:t,size:4,L:69,R:69,C:69});e.FullPaths.push(e.FullPaths[0]+r);T(e)}function T(e,n){E(e);var i=false,s=false;for(var l=e.FullPaths.length-1;l>=0;--l){var o=e.FileIndex[l];switch(o.type){case 0:if(s)i=true;else{e.FileIndex.pop();e.FullPaths.pop()}break;case 1:;case 2:;case 5:s=true;if(isNaN(o.R*o.L*o.C))i=true;if(o.R>-1&&o.L>-1&&o.R==o.L)i=true;break;default:i=true;break;}}if(!i&&!n)return;var c=new Date(1987,1,19),f=0;var u=[];for(l=0;l1?1:-1;d.size=0;d.type=5}else if(p.slice(-1)==\"/\"){for(f=l+1;f=u.length?-1:f;for(f=l+1;f=u.length?-1:f;d.type=1}else{if(t(e.FullPaths[l+1]||\"\")==t(p))d.R=l+1;d.type=2}}}function N(e,r){var t=r||{};T(e);if(t.fileType==\"zip\")return Fe(e,t);var a=function(e){var r=0,t=0;for(var a=0;a0){if(i<4096)r+=i+63>>6;else t+=i+511>>9}}var s=e.FullPaths.length+3>>2;var l=r+7>>3;var o=r+127>>7;var c=l+t+s+o;var f=c+127>>7;var u=f<=109?0:Math.ceil((f-109)/127);while(c+f+u+127>>7>f)u=++f<=109?0:Math.ceil((f-109)/127);var h=[1,u,f,o,s,t,r,0];e.FileIndex[0].size=r<<6;h[7]=(e.FileIndex[0].start=h[0]+h[1]+h[2]+h[3]+h[4]+h[5])+(h[6]+7>>3);return h}(e);var n=qr(a[7]<<9);var i=0,s=0;{for(i=0;i<8;++i)n._W(1,B[i]);for(i=0;i<8;++i)n._W(2,0);n._W(2,62);n._W(2,3);n._W(2,65534);n._W(2,9);n._W(2,6);for(i=0;i<3;++i)n._W(2,0);n._W(4,0);n._W(4,a[2]);n._W(4,a[0]+a[1]+a[2]+a[3]-1);n._W(4,0);n._W(4,1<<12);n._W(4,a[3]?a[0]+a[1]+a[2]-1:I);n._W(4,a[3]);n._W(-4,a[1]?a[0]-1:I);n._W(4,a[1]);for(i=0;i<109;++i)n._W(-4,i>9)}l(a[6]+7>>3);while(n.l&511)n._W(-4,W.ENDOFCHAIN);s=i=0;for(o=0;o=4096)continue;f.start=s;l(c+63>>6)}while(n.l&511)n._W(-4,W.ENDOFCHAIN);for(i=0;i=4096){n.l=f.start+1<<9;for(o=0;o0&&f.size<4096){for(o=0;o>16|r>>8|r)&255}var ee=typeof Uint8Array!==\"undefined\";var re=ee?new Uint8Array(1<<8):[];for(var te=0;te<1<<8;++te)re[te]=Q(te);function ae(e,r){var t=re[e&255];if(r<=8)return t>>>8-r;t=t<<8|re[e>>8&255];if(r<=16)return t>>>16-r;t=t<<8|re[e>>16&255];return t>>>24-r}function ne(e,r){var t=r&7,a=r>>>3;return(e[a]|(t<=6?0:e[a+1]<<8))>>>t&3}function ie(e,r){var t=r&7,a=r>>>3;return(e[a]|(t<=5?0:e[a+1]<<8))>>>t&7}function se(e,r){var t=r&7,a=r>>>3;return(e[a]|(t<=4?0:e[a+1]<<8))>>>t&15}function le(e,r){var t=r&7,a=r>>>3;return(e[a]|(t<=3?0:e[a+1]<<8))>>>t&31}function oe(e,r){var t=r&7,a=r>>>3;return(e[a]|(t<=1?0:e[a+1]<<8))>>>t&127}function ce(e,r,t){var a=r&7,n=r>>>3,i=(1<>>a;if(t<8-a)return s&i;s|=e[n+1]<<8-a;if(t<16-a)return s&i;s|=e[n+2]<<16-a;if(t<24-a)return s&i;s|=e[n+3]<<24-a;return s&i}function fe(e,r){var t=e.length,a=2*t>r?2*t:r+5,n=0;if(t>=r)return e;if(w){var i=_(a);if(e.copy)e.copy(i);else for(;n0)t[t.l++]=r[a++]}return t.l}}();return function(r){var t=qr(50+Math.floor(r.length*1.1));var a=e(r,t);return t.slice(0,a)}}();function de(e,r,t){var a=1,n=0,i=0,s=0,l=0,o=e.length;var c=ee?new Uint16Array(32):ue(32);for(i=0;i<32;++i)c[i]=0;for(i=o;i>a-u;for(s=(1<=0;--s)r[l|s<>8-p;for(var m=(1<<7-p)-1;m>=0;--m)we[d|m<>>=3){case 16:i=3+ne(e,r);r+=2;d=v[v.length-1];while(i-- >0)v.push(d);break;case 17:i=3+ie(e,r);r+=3;while(i-- >0)v.push(0);break;case 18:i=11+oe(e,r);r+=7;while(i-- >0)v.push(0);break;default:v.push(d);if(o>>0;var l=0,o=0;while((a&1)==0){a=ie(e,t);t+=3;if(a>>>1==0){if(t&7)t+=8-(t&7);var c=e[t>>>3]|e[(t>>>3)+1]<<8;t+=32;if(!r&&s>>3,(t>>>3)+c);i+=c;t+=8*c}else while(c-- >0){n[i++]=e[t>>>3];t+=8}continue}else if(a>>>1==1){l=9;o=5}else{t=xe(e,t);l=ke;o=ye}if(!r&&s>>1==1?pe[f]:ge[f];t+=u&15;u>>>=4;if((u>>>8&255)===0)n[i++]=u;else if(u==256)break;else{u-=257;var h=u<8?0:u-4>>2;if(h>5)h=0;var d=i+q[u];if(h>0){d+=ce(e,t,h);t+=h}f=ce(e,t,o);u=a>>>1==1?me[f]:be[f];t+=u&15;u>>>=4;var p=u<4?0:u-2>>1;var m=Z[u];if(p>0){m+=ce(e,t,p);t+=p}if(!r&&s>>3]}function _e(e,r){var t=e.slice(e.l||0);var a=Se(t,r);e.l+=a[1];return a[0]}function Ce(e,r){if(e){if(typeof console!==\"undefined\")console.error(r)}else throw new Error(r)}function Ae(e,r){var t=e;Kr(t,0);var a=[],n=[];var i={FileIndex:a,FullPaths:n};E(i,{root:r.root});var l=t.length-4;while((t[l]!=80||t[l+1]!=75||t[l+2]!=5||t[l+3]!=6)&&l>=0)--l;t.l=l+4;t.l+=4;var o=t._R(2);t.l+=6;var c=t._R(4);t.l=c;for(l=0;l>0!=k>>0)Ce(w,\"Bad CRC32 checksum: \"+f+\" != \"+k);Oe(a,m,b,{unsafe:true,mt:c})}function Fe(e,r){var t=r||{};var a=[],i=[];var s=qr(1);var l=t.compression?8:0,o=0;var c=false;if(c)o|=8;var f=0,u=0;var h=0,d=0;var p=e.FullPaths[0],m=p,v=e.FileIndex[0];var g=[];var b=0;for(f=1;f3)a=true;switch(n[i].slice(n[i].length-1)){case\"Y\":throw new Error(\"Unsupported ISO Duration Field: \"+n[i].slice(n[i].length-1));case\"D\":t*=24;case\"H\":t*=60;case\"M\":if(!a)throw new Error(\"Unsupported ISO Duration Field: M\");else t*=60;case\"S\":break;}r+=t*parseInt(n[i],10)}return r}var se=new Date(\"2017-02-19T19:06:09.000Z\");if(isNaN(se.getFullYear()))se=new Date(\"2/19/17\");var le=se.getFullYear()==2017;function oe(e,r){var t=new Date(e);if(le){if(r>0)t.setTime(t.getTime()+t.getTimezoneOffset()*60*1e3);else if(r<0)t.setTime(t.getTime()-t.getTimezoneOffset()*60*1e3);return t}if(e instanceof Date)return e;if(se.getFullYear()==1917&&!isNaN(t.getFullYear())){var a=t.getFullYear();if(e.indexOf(\"\"+a)>-1)return t;t.setFullYear(t.getFullYear()+100);return t}var n=e.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];var i=new Date(+n[0],+n[1]-1,+n[2],+n[3]||0,+n[4]||0,+n[5]||0);if(e.indexOf(\"Z\")>-1)i=new Date(i.getTime()-i.getTimezoneOffset()*60*1e3);return i}function ce(e){var r=\"\";for(var t=0;t!=e.length;++t)r+=String.fromCharCode(e[t]);return r}function fe(e){if(typeof JSON!=\"undefined\"&&!Array.isArray(e))return JSON.parse(JSON.stringify(e));if(typeof e!=\"object\"||e==null)return e;if(e instanceof Date)return new Date(e.getTime());var r={};for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))r[t]=fe(e[t]);return r}function ue(e,r){var t=\"\";while(t.length8099)return t;if((n>0||i>1)&&a!=101)return r;if(e.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/))return r;if(e.match(/[^-0-9:,\\/\\\\]/))return t;return r}var pe=\"abacaba\".split(/(:?b)/i).length==5;function me(e,r,t){if(pe||typeof r==\"string\")return e.split(r);var a=e.split(r),n=[a[0]];for(var i=1;i\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;var De=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s*[\\/\\?]?>/gm;if(!Te.match(De))De=/<[^>]*>/g;var Me=/<\\w*:/,Ne=/<(\\/?)\\w+:/;function Re(e,r,t){var a={};var n=0,i=0;for(;n!==e.length;++n)if((i=e.charCodeAt(n))===32||i===10||i===13)break;if(!r)a[0]=e.slice(0,n);if(n===e.length)return a;var s=e.match(Oe),l=0,o=\"\",c=0,f=\"\",u=\"\",h=1;if(s)for(c=0;c!=s.length;++c){u=s[c];for(i=0;i!=u.length;++i)if(u.charCodeAt(i)===61)break;f=u.slice(0,i).trim();while(u.charCodeAt(i+1)==32)++i;h=(n=u.charCodeAt(i+1))==34||n==39?1:0;o=u.slice(i+1+h,u.length-h);for(l=0;l!=f.length;++l)if(f.charCodeAt(l)===58)break;if(l===f.length){if(f.indexOf(\"_\")>0)f=f.slice(0,f.indexOf(\"_\"));a[f]=o;if(!t)a[f.toLowerCase()]=o}else{var d=(l===5&&f.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+f.slice(l+1);if(a[d]&&f.slice(l-3,l)==\"ext\")continue;a[d]=o;if(!t)a[d.toLowerCase()]=o}}return a}function Pe(e){return e.replace(Ne,\"<$1\")}var Ie={\""\":'\"',\"'\":\"'\",\">\":\">\",\"<\":\"<\",\"&\":\"&\"};var Le=J(Ie);var Be=function(){var e=/&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/gi,r=/_x([\\da-fA-F]{4})_/gi;return function t(a){var n=a+\"\",i=n.indexOf(\"-1?16:10))||e}).replace(r,function(e,r){return String.fromCharCode(parseInt(r,16))});var s=n.indexOf(\"]]>\");return t(n.slice(0,i))+n.slice(i+9,s)+t(n.slice(s+3))}}();var ze=/[&<>'\"]/g,We=/[\\u0000-\\u0008\\u000b-\\u001f]/g;function $e(e){var r=e+\"\";return r.replace(ze,function(e){return Le[e]}).replace(We,function(e){return\"_x\"+(\"000\"+e.charCodeAt(0).toString(16)).slice(-4)+\"_\"})}function Ue(e){return $e(e).replace(/ /g,\"_x0020_\")}var je=/[\\u0000-\\u001f]/g;function He(e){var r=e+\"\";return r.replace(ze,function(e){return Le[e]}).replace(/\\n/g,\"
\").replace(je,function(e){return\"&#x\"+(\"000\"+e.charCodeAt(0).toString(16)).slice(-4)+\";\"})}function Xe(e){var r=e+\"\";return r.replace(ze,function(e){return Le[e]}).replace(je,function(e){return\"&#x\"+e.charCodeAt(0).toString(16).toUpperCase()+\";\"})}var Ve=function(){var e=/&#(\\d+);/g;function r(e,r){return String.fromCharCode(parseInt(r,10))}return function t(a){return a.replace(e,r)}}();var Ge=function(){return function e(r){return r.replace(/(\\r\\n|[\\r\\n])/g,\" \")}}();function Ye(e){switch(e){case 1:;case true:;case\"1\":;case\"true\":;case\"TRUE\":return true;default:return false;}}var Ke=function Jl(e){var r=\"\",t=0,a=0,n=0,i=0,s=0,l=0;while(t191&&a<224){s=(a&31)<<6;s|=n&63;r+=String.fromCharCode(s);continue}i=e.charCodeAt(t++);if(a<240){r+=String.fromCharCode((a&15)<<12|(n&63)<<6|i&63);continue}s=e.charCodeAt(t++);l=((a&7)<<18|(n&63)<<12|(i&63)<<6|s&63)-65536;r+=String.fromCharCode(55296+(l>>>10&1023));r+=String.fromCharCode(56320+(l&1023))}return r};var Je=function(e){var r=[],t=0,a=0,n=0;while(t>6)));r.push(String.fromCharCode(128+(a&63)));break;case a>=55296&&a<57344:a-=55296;n=e.charCodeAt(t++)-56320+(a<<10);r.push(String.fromCharCode(240+(n>>18&7)));r.push(String.fromCharCode(144+(n>>12&63)));r.push(String.fromCharCode(128+(n>>6&63)));r.push(String.fromCharCode(128+(n&63)));break;default:r.push(String.fromCharCode(224+(a>>12)));r.push(String.fromCharCode(128+(a>>6&63)));\nr.push(String.fromCharCode(128+(a&63)));}}return r.join(\"\")};if(w){var qe=function ql(e){var r=Buffer.alloc(2*e.length),t,a,n=1,i=0,s=0,l;for(a=0;a>>10&1023);t=56320+(t&1023)}if(s!==0){r[i++]=s&255;r[i++]=s>>>8;s=0}r[i++]=t%256;r[i++]=t>>>8}return r.slice(0,i).toString(\"ucs2\")};var Ze=\"foo bar baz☃🍣\";if(Ke(Ze)==qe(Ze))Ke=qe;var Qe=function Zl(e){return k(e,\"binary\").toString(\"utf8\")};if(Ke(Ze)==Qe(Ze))Ke=Qe;Je=function(e){return k(e,\"utf8\").toString(\"binary\")}}var er=function(){var e={};return function r(t,a){var n=t+\"|\"+(a||\"\");if(e[n])return e[n];return e[n]=new RegExp(\"<(?:\\\\w+:)?\"+t+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)\",a||\"\")}}();var rr=function(){var e=[[\"nbsp\",\" \"],[\"middot\",\"·\"],[\"quot\",'\"'],[\"apos\",\"'\"],[\"gt\",\">\"],[\"lt\",\"<\"],[\"amp\",\"&\"]].map(function(e){return[new RegExp(\"&\"+e[0]+\";\",\"ig\"),e[1]]});return function r(t){var a=t.replace(/^[\\t\\n\\r ]+/,\"\").replace(/[\\t\\n\\r ]+$/,\"\").replace(/>\\s+/g,\">\").replace(/\\s+/g,\"\\n\").replace(/<[^>]*>/g,\"\");for(var n=0;n([\\\\s\\\\S]*?)\",\"g\")}}();var ar=/<\\/?(?:vt:)?variant>/g,nr=/<(?:vt:)([^>]*)>([\\s\\S]*)\"+r+\"\"}function or(e){return Y(e).map(function(r){return\" \"+r+'=\"'+e[r]+'\"'}).join(\"\")}function cr(e,r,t){return\"<\"+e+(t!=null?or(t):\"\")+(r!=null?(r.match(sr)?' xml:space=\"preserve\"':\"\")+\">\"+r+\"\"}function fr(e,r){try{return e.toISOString().replace(/\\.\\d*/,\"\")}catch(t){if(r)throw t}return\"\"}function ur(e,r){switch(typeof e){case\"string\":var t=cr(\"vt:lpwstr\",$e(e));if(r)t=t.replace(/"/g,\"_x0022_\");return t;case\"number\":return cr((e|0)==e?\"vt:i4\":\"vt:r8\",$e(String(e)));case\"boolean\":return cr(\"vt:bool\",e?\"true\":\"false\");}if(e instanceof Date)return cr(\"vt:filetime\",fr(e));throw new Error(\"Unable to serialize \"+e)}var hr={dc:\"http://purl.org/dc/elements/1.1/\",dcterms:\"http://purl.org/dc/terms/\",dcmitype:\"http://purl.org/dc/dcmitype/\",mx:\"http://schemas.microsoft.com/office/mac/excel/2008/main\",r:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\",sjs:\"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties\",vt:\"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes\",xsi:\"http://www.w3.org/2001/XMLSchema-instance\",xsd:\"http://www.w3.org/2001/XMLSchema\"};hr.main=[\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\",\"http://purl.oclc.org/ooxml/spreadsheetml/main\",\"http://schemas.microsoft.com/office/excel/2006/main\",\"http://schemas.microsoft.com/office/excel/2006/2\"];var dr={o:\"urn:schemas-microsoft-com:office:office\",x:\"urn:schemas-microsoft-com:office:excel\",ss:\"urn:schemas-microsoft-com:office:spreadsheet\",dt:\"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882\",mv:\"http://macVmlSchemaUri\",v:\"urn:schemas-microsoft-com:vml\",html:\"http://www.w3.org/TR/REC-html40\"};function pr(e,r){var t=1-2*(e[r+7]>>>7);var a=((e[r+7]&127)<<4)+(e[r+6]>>>4&15);var n=e[r+6]&15;for(var i=5;i>=0;--i)n=n*256+e[r+i];if(a==2047)return n==0?t*Infinity:NaN;if(a==0)a=-1022;else{a-=1023;n+=Math.pow(2,52)}return t*Math.pow(2,a-52)*n}function mr(e,r,t){var a=(r<0||1/r==-Infinity?1:0)<<7,n=0,i=0;var s=a?-r:r;if(!isFinite(s)){n=2047;i=isNaN(r)?26985:0}else if(s==0)n=i=0;else{n=Math.floor(Math.log(s)/Math.LN2);i=s*Math.pow(2,52-n);if(n<=-1023&&(!isFinite(i)||i>4|a}var vr=function(e){var r=[],t=10240;for(var a=0;a0?xr(e,r+4,r+4+t-1):\"\"};var Cr=_r;var Ar=function(e,r){var t=Wr(e,r);return t>0?xr(e,r+4,r+4+t-1):\"\"};var Er=Ar;var Fr=function(e,r){var t=2*Wr(e,r);return t>0?xr(e,r+4,r+4+t-1):\"\"};var Tr=Fr;var Or,Dr;Or=Dr=function Ql(e,r){var t=Wr(e,r);return t>0?br(e,r+4,r+4+t):\"\"};var Mr=function(e,r){var t=Wr(e,r);return t>0?xr(e,r+4,r+4+t):\"\"};var Nr=Mr;var Rr,Pr;Rr=Pr=function(e,r){return pr(e,r)};var Ir=function eo(e){return Array.isArray(e)};if(w){br=function(e,r,t){if(!Buffer.isBuffer(e))return wr(e,r,t);return e.toString(\"utf16le\",r,t).replace(D,\"\")};kr=function(e,r,t){return Buffer.isBuffer(e)?e.toString(\"hex\",r,r+t):yr(e,r,t)};_r=function ro(e,r){if(!Buffer.isBuffer(e))return Cr(e,r);var t=e.readUInt32LE(r);return t>0?e.toString(\"utf8\",r+4,r+4+t-1):\"\"};Ar=function to(e,r){if(!Buffer.isBuffer(e))return Er(e,r);var t=e.readUInt32LE(r);return t>0?e.toString(\"utf8\",r+4,r+4+t-1):\"\"};Fr=function ao(e,r){if(!Buffer.isBuffer(e))return Tr(e,r);var t=2*e.readUInt32LE(r);return e.toString(\"utf16le\",r+4,r+4+t-1)};Or=function no(e,r){if(!Buffer.isBuffer(e))return Dr(e,r);var t=e.readUInt32LE(r);return e.toString(\"utf16le\",r+4,r+4+t)};Mr=function io(e,r){if(!Buffer.isBuffer(e))return Nr(e,r);var t=e.readUInt32LE(r);return e.toString(\"utf8\",r+4,r+4+t)};xr=function so(e,r,t){return Buffer.isBuffer(e)?e.toString(\"utf8\",r,t):Sr(e,r,t)};vr=function(e){return e[0].length>0&&Buffer.isBuffer(e[0][0])?Buffer.concat(e[0]):gr(e)};O=function(e){return Buffer.isBuffer(e[0])?Buffer.concat(e):[].concat.apply([],e)};Rr=function lo(e,r){if(Buffer.isBuffer(e))return e.readDoubleLE(r);return Pr(e,r)};Ir=function oo(e){return Buffer.isBuffer(e)||Array.isArray(e)}}if(typeof cptable!==\"undefined\"){br=function(e,r,t){return cptable.utils.decode(1200,e.slice(r,t)).replace(D,\"\")};xr=function(e,r,t){return cptable.utils.decode(65001,e.slice(r,t))};_r=function(e,r){var a=Wr(e,r);return a>0?cptable.utils.decode(t,e.slice(r+4,r+4+a-1)):\"\"};Ar=function(e,t){var a=Wr(e,t);return a>0?cptable.utils.decode(r,e.slice(t+4,t+4+a-1)):\"\"};Fr=function(e,r){var t=2*Wr(e,r);return t>0?cptable.utils.decode(1200,e.slice(r+4,r+4+t-1)):\"\"};Or=function(e,r){var t=Wr(e,r);return t>0?cptable.utils.decode(1200,e.slice(r+4,r+4+t)):\"\"};Mr=function(e,r){var t=Wr(e,r);return t>0?cptable.utils.decode(65001,e.slice(r+4,r+4+t)):\"\"}}var Lr=function(e,r){return e[r]};var Br=function(e,r){return e[r+1]*(1<<8)+e[r]};var zr=function(e,r){var t=e[r+1]*(1<<8)+e[r];return t<32768?t:(65535-t+1)*-1};var Wr=function(e,r){return e[r+3]*(1<<24)+(e[r+2]<<16)+(e[r+1]<<8)+e[r]};var $r=function(e,r){return e[r+3]<<24|e[r+2]<<16|e[r+1]<<8|e[r]};var Ur=function(e,r){return e[r]<<24|e[r+1]<<16|e[r+2]<<8|e[r+3]};function jr(e,t){var a=\"\",n,i,s=[],l,o,c,f;switch(t){case\"dbcs\":f=this.l;if(w&&Buffer.isBuffer(this))a=this.slice(this.l,this.l+2*e).toString(\"utf16le\");else for(c=0;c0?$r:Ur)(this,this.l);this.l+=4;return n}else{i=Wr(this,this.l);this.l+=4}return i;case 8:;case-8:if(t===\"f\"){if(e==8)i=Rr(this,this.l);else i=Rr([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]],0);this.l+=8;return i}else e=8;case 16:a=kr(this,this.l,e);break;};}this.l+=e;return a}var Hr=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255;e[t+2]=r>>>16&255;e[t+3]=r>>>24&255};var Xr=function(e,r,t){e[t]=r&255;e[t+1]=r>>8&255;e[t+2]=r>>16&255;e[t+3]=r>>24&255};var Vr=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255};function Gr(e,r,a){var n=0,i=0;if(a===\"dbcs\"){for(i=0;i!=r.length;++i)Vr(this,r.charCodeAt(i),this.l+2*i);n=2*r.length}else if(a===\"sbcs\"){if(typeof cptable!==\"undefined\"&&t==874){for(i=0;i!=r.length;++i){var s=cptable.utils.encode(t,r.charAt(i));this[this.l+i]=s[0]}}else{r=r.replace(/[^\\x00-\\x7F]/g,\"_\");for(i=0;i!=r.length;++i)this[this.l+i]=r.charCodeAt(i)&255}n=r.length}else if(a===\"hex\"){for(;i>8}while(this.l>>=8;this[this.l+1]=r&255;break;case 3:n=3;this[this.l]=r&255;r>>>=8;this[this.l+1]=r&255;r>>>=8;this[this.l+2]=r&255;break;case 4:n=4;Hr(this,r,this.l);break;case 8:n=8;if(a===\"f\"){mr(this,r,this.l);break};case 16:break;case-4:n=4;Xr(this,r,this.l);break;}this.l+=n;return this}function Yr(e,r){var t=kr(this,this.l,e.length>>1);if(t!==e)throw new Error(r+\"Expected \"+e+\" saw \"+t);this.l+=e.length>>1}function Kr(e,r){e.l=r;e._R=jr;e.chk=Yr;e._W=Gr}function Jr(e,r){e.l+=r}function qr(e){var r=S(e);Kr(r,0);return r}function Zr(e,r,t){if(!e)return;var a,n,i;Kr(e,e.l||0);var s=e.length,l=0,o=0;while(e.la.l){a=a.slice(0,a.l);a.l=a.length}if(a.length>0)e.push(a);a=null};var i=function f(e){if(a&&e=128?1:0)+1;if(a>=128)++i;if(a>=16384)++i;if(a>=2097152)++i;var s=e.next(i);if(n<=127)s._W(1,n);else{s._W(1,(n&127)+128);s._W(1,n>>7)}for(var l=0;l!=4;++l){if(a>=128){s._W(1,(a&127)+128);a>>=7}else{s._W(1,a);break}}if(a>0&&Ir(t))e.push(t)}function rt(e,r,t){var a=fe(e);if(r.s){if(a.cRel)a.c+=r.s.c;if(a.rRel)a.r+=r.s.r}else{if(a.cRel)a.c+=r.c;if(a.rRel)a.r+=r.r}if(!t||t.biff<12){while(a.c>=256)a.c-=256;while(a.r>=65536)a.r-=65536}return a}function tt(e,r,t){var a=fe(e);a.s=rt(a.s,r.s,t);a.e=rt(a.e,r.s,t);return a}function at(e,r){if(e.cRel&&e.c<0){e=fe(e);while(e.c<0)e.c+=r>8?16384:256}if(e.rRel&&e.r<0){e=fe(e);while(e.r<0)e.r+=r>8?1048576:r>5?65536:16384}var t=mt(e);if(!e.cRel&&e.cRel!=null)t=ut(t);if(!e.rRel&&e.rRel!=null)t=lt(t);return t}function nt(e,r){if(e.s.r==0&&!e.s.rRel){if(e.e.r==(r.biff>=12?1048575:r.biff>=8?65536:16384)&&!e.e.rRel){return(e.s.cRel?\"\":\"$\")+ft(e.s.c)+\":\"+(e.e.cRel?\"\":\"$\")+ft(e.e.c)}}if(e.s.c==0&&!e.s.cRel){if(e.e.c==(r.biff>=12?16383:255)&&!e.e.cRel){return(e.s.rRel?\"\":\"$\")+st(e.s.r)+\":\"+(e.e.rRel?\"\":\"$\")+st(e.e.r)}}return at(e.s,r.biff)+\":\"+at(e.e,r.biff)}function it(e){return parseInt(ot(e),10)-1}function st(e){return\"\"+(e+1)}function lt(e){return e.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\")}function ot(e){return e.replace(/\\$(\\d+)$/,\"$1\")}function ct(e){var r=ht(e),t=0,a=0;for(;a!==r.length;++a)t=26*t+r.charCodeAt(a)-64;return t-1}function ft(e){if(e<0)throw new Error(\"invalid column \"+e);var r=\"\";for(++e;e;e=Math.floor((e-1)/26))r=String.fromCharCode((e-1)%26+65)+r;return r}function ut(e){return e.replace(/^([A-Z])/,\"$$$1\")}function ht(e){return e.replace(/^\\$([A-Z])/,\"$1\")}function dt(e){return e.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\")}function pt(e){var r=0,t=0;for(var a=0;a=48&&n<=57)r=10*r+(n-48);else if(n>=65&&n<=90)t=26*t+(n-64)}return{c:t-1,r:r-1}}function mt(e){var r=e.c+1;var t=\"\";for(;r;r=(r-1)/26|0)t=String.fromCharCode((r-1)%26+65)+t;return t+(e.r+1)}function vt(e){var r=e.indexOf(\":\");if(r==-1)return{s:pt(e),e:pt(e)};return{s:pt(e.slice(0,r)),e:pt(e.slice(r+1))}}function gt(e,r){if(typeof r===\"undefined\"||typeof r===\"number\"){return gt(e.s,e.e)}if(typeof e!==\"string\")e=mt(e);if(typeof r!==\"string\")r=mt(r);return e==r?e:e+\":\"+r}function bt(e){var r={s:{c:0,r:0},e:{c:0,r:0}};var t=0,a=0,n=0;var i=e.length;for(t=0;a26)break;t=26*t+n}r.s.c=--t;for(t=0;a9)break;t=10*t+n}r.s.r=--t;if(a===i||n!=10){r.e.c=r.s.c;r.e.r=r.s.r;return r}++a;for(t=0;a!=i;++a){if((n=e.charCodeAt(a)-64)<1||n>26)break;t=26*t+n}r.e.c=--t;for(t=0;a!=i;++a){if((n=e.charCodeAt(a)-48)<0||n>9)break;t=10*t+n}r.e.r=--t;return r}function wt(e,r){var t=e.t==\"d\"&&r instanceof Date;if(e.z!=null)try{return e.w=N.format(e.z,t?ee(r):r)}catch(a){}try{return e.w=N.format((e.XF||{}).numFmtId||(t?14:0),t?ee(r):r)}catch(a){return\"\"+r}}function kt(e,r,t){if(e==null||e.t==null||e.t==\"z\")return\"\";if(e.w!==undefined)return e.w;if(e.t==\"d\"&&!e.z&&t&&t.dateNF)e.z=t.dateNF;if(e.t==\"e\")return Vt[e.v]||e.v;if(r==undefined)return wt(e,e.v);return wt(e,r)}function yt(e,r){var t=r&&r.sheet?r.sheet:\"Sheet1\";var a={};a[t]=e;return{SheetNames:[t],Sheets:a}}function xt(e,r,t){var a=t||{};var n=e?Array.isArray(e):a.dense;if(v!=null&&n==null)n=v;var i=e||(n?[]:{});var s=0,l=0;if(i&&a.origin!=null){if(typeof a.origin==\"number\")s=a.origin;else{var o=typeof a.origin==\"string\"?pt(a.origin):a.origin;s=o.r;l=o.c}if(!i[\"!ref\"])i[\"!ref\"]=\"A1:A1\"}var c={s:{c:1e7,r:1e7},e:{c:0,r:0}};if(i[\"!ref\"]){var f=bt(i[\"!ref\"]);c.s.c=f.s.c;c.s.r=f.s.r;c.e.c=Math.max(c.e.c,f.e.c);c.e.r=Math.max(c.e.r,f.e.r);if(s==-1)c.e.r=s=f.e.r+1}for(var u=0;u!=r.length;++u){if(!r[u])continue;if(!Array.isArray(r[u]))throw new Error(\"aoa_to_sheet expects an array of arrays\");for(var h=0;h!=r[u].length;++h){if(typeof r[u][h]===\"undefined\")continue;var d={v:r[u][h]};var p=s+u,m=l+h;if(c.s.r>p)c.s.r=p;if(c.s.c>m)c.s.c=m;if(c.e.r>16&255,e>>8&255,e&255]})}var Ht=jt([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);var Xt=fe(Ht);var Vt={0:\"#NULL!\",7:\"#DIV/0!\",15:\"#VALUE!\",23:\"#REF!\",29:\"#NAME?\",36:\"#NUM!\",42:\"#N/A\",43:\"#GETTING_DATA\",255:\"#WTF?\"};var Gt=q(Vt);var Yt={\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\":\"workbooks\",\"application/vnd.ms-excel.binIndexWs\":\"TODO\",\"application/vnd.ms-excel.intlmacrosheet\":\"TODO\",\"application/vnd.ms-excel.binIndexMs\":\"TODO\",\"application/vnd.openxmlformats-package.core-properties+xml\":\"coreprops\",\"application/vnd.openxmlformats-officedocument.custom-properties+xml\":\"custprops\",\"application/vnd.openxmlformats-officedocument.extended-properties+xml\":\"extprops\",\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\":\"TODO\",\"application/vnd.ms-excel.pivotTable\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\":\"TODO\",\"application/vnd.ms-office.chartcolorstyle+xml\":\"TODO\",\"application/vnd.ms-office.chartstyle+xml\":\"TODO\",\"application/vnd.ms-office.chartex+xml\":\"TODO\",\"application/vnd.ms-excel.calcChain\":\"calcchains\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\":\"calcchains\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\":\"TODO\",\"application/vnd.ms-office.activeX\":\"TODO\",\"application/vnd.ms-office.activeX+xml\":\"TODO\",\"application/vnd.ms-excel.attachedToolbars\":\"TODO\",\"application/vnd.ms-excel.connections\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\":\"TODO\",\"application/vnd.ms-excel.externalLink\":\"links\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\":\"links\",\"application/vnd.ms-excel.sheetMetadata\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\":\"TODO\",\"application/vnd.ms-excel.pivotCacheDefinition\":\"TODO\",\"application/vnd.ms-excel.pivotCacheRecords\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\":\"TODO\",\"application/vnd.ms-excel.queryTable\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\":\"TODO\",\"application/vnd.ms-excel.userNames\":\"TODO\",\"application/vnd.ms-excel.revisionHeaders\":\"TODO\",\"application/vnd.ms-excel.revisionLog\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\":\"TODO\",\"application/vnd.ms-excel.tableSingleCells\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\":\"TODO\",\"application/vnd.ms-excel.slicer\":\"TODO\",\"application/vnd.ms-excel.slicerCache\":\"TODO\",\"application/vnd.ms-excel.slicer+xml\":\"TODO\",\"application/vnd.ms-excel.slicerCache+xml\":\"TODO\",\"application/vnd.ms-excel.wsSortMap\":\"TODO\",\"application/vnd.ms-excel.table\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.theme+xml\":\"themes\",\"application/vnd.openxmlformats-officedocument.themeOverride+xml\":\"TODO\",\"application/vnd.ms-excel.Timeline+xml\":\"TODO\",\"application/vnd.ms-excel.TimelineCache+xml\":\"TODO\",\"application/vnd.ms-office.vbaProject\":\"vba\",\"application/vnd.ms-office.vbaProjectSignature\":\"vba\",\"application/vnd.ms-office.volatileDependencies\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\":\"TODO\",\"application/vnd.ms-excel.controlproperties+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.model+data\":\"TODO\",\"application/vnd.ms-excel.Survey+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.drawing+xml\":\"drawings\",\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.vmlDrawing\":\"TODO\",\"application/vnd.openxmlformats-package.relationships+xml\":\"rels\",\"application/vnd.openxmlformats-officedocument.oleObject\":\"TODO\",\"image/png\":\"TODO\",sheet:\"js\"};var Kt=function(){var e={workbooks:{xlsx:\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",xlsm:\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",xlsb:\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",xlam:\"application/vnd.ms-excel.addin.macroEnabled.main+xml\",xltx:\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"},strs:{xlsx:\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",xlsb:\"application/vnd.ms-excel.sharedStrings\"},comments:{xlsx:\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",xlsb:\"application/vnd.ms-excel.comments\"},sheets:{xlsx:\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",xlsb:\"application/vnd.ms-excel.worksheet\"},charts:{xlsx:\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",xlsb:\"application/vnd.ms-excel.chartsheet\"},dialogs:{xlsx:\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",xlsb:\"application/vnd.ms-excel.dialogsheet\"},macros:{xlsx:\"application/vnd.ms-excel.macrosheet+xml\",xlsb:\"application/vnd.ms-excel.macrosheet\"},styles:{xlsx:\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",xlsb:\"application/vnd.ms-excel.styles\"}};Y(e).forEach(function(r){[\"xlsm\",\"xlam\"].forEach(function(t){if(!e[r][t])e[r][t]=e[r].xlsx})});Y(e).forEach(function(r){Y(e[r]).forEach(function(t){Yt[e[r][t]]=r})});return e}();var Jt=Z(Yt);hr.CT=\"http://schemas.openxmlformats.org/package/2006/content-types\";function qt(){return{workbooks:[],sheets:[],charts:[],dialogs:[],macros:[],rels:[],strs:[],comments:[],links:[],coreprops:[],extprops:[],custprops:[],themes:[],styles:[],calcchains:[],vba:[],drawings:[],TODO:[],xmlns:\"\"}}function Zt(e){var r=qt();if(!e||!e.match)return r;var t={};(e.match(De)||[]).forEach(function(e){var a=Re(e);switch(a[0].replace(Me,\"<\")){case\"0?r.calcchains[0]:\"\";r.sst=r.strs.length>0?r.strs[0]:\"\";r.style=r.styles.length>0?r.styles[0]:\"\";r.defaults=t;delete r.calcchains;return r}var Qt=cr(\"Types\",null,{xmlns:hr.CT,\"xmlns:xsd\":hr.xsd,\"xmlns:xsi\":hr.xsi});var ea=[[\"xml\",\"application/xml\"],[\"bin\",\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\"],[\"vml\",\"application/vnd.openxmlformats-officedocument.vmlDrawing\"],[\"data\",\"application/vnd.openxmlformats-officedocument.model+data\"],[\"bmp\",\"image/bmp\"],[\"png\",\"image/png\"],[\"gif\",\"image/gif\"],[\"emf\",\"image/x-emf\"],[\"wmf\",\"image/x-wmf\"],[\"jpg\",\"image/jpeg\"],[\"jpeg\",\"image/jpeg\"],[\"tif\",\"image/tiff\"],[\"tiff\",\"image/tiff\"],[\"pdf\",\"application/pdf\"],[\"rels\",Jt.rels[0]]].map(function(e){return cr(\"Default\",null,{Extension:e[0],ContentType:e[1]})});function ra(e,r){var t=[],a;t[t.length]=Te;t[t.length]=Qt;t=t.concat(ea);var n=function(n){if(e[n]&&e[n].length>0){a=e[n][0];t[t.length]=cr(\"Override\",null,{PartName:(a[0]==\"/\"?\"\":\"/\")+a,ContentType:Kt[n][r.bookType||\"xlsx\"]})}};var i=function(a){(e[a]||[]).forEach(function(e){t[t.length]=cr(\"Override\",null,{PartName:(e[0]==\"/\"?\"\":\"/\")+e,ContentType:Kt[a][r.bookType||\"xlsx\"]})})};var s=function(r){(e[r]||[]).forEach(function(e){t[t.length]=cr(\"Override\",null,{PartName:(e[0]==\"/\"?\"\":\"/\")+e,ContentType:Jt[r][0]})})};n(\"workbooks\");i(\"sheets\");i(\"charts\");s(\"themes\");[\"strs\",\"styles\"].forEach(n);[\"coreprops\",\"extprops\",\"custprops\"].forEach(s);s(\"vba\");s(\"comments\");s(\"drawings\");if(t.length>2){t[t.length]=\"\";t[1]=t[1].replace(\"/>\",\">\")}return t.join(\"\")}var ta={WB:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",SHEET:\"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",HLINK:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",VML:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",XPATH:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",XMISS:\"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",XLINK:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",CXML:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",CXMLP:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",VBA:\"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"};function aa(e){var r=e.lastIndexOf(\"/\");return e.slice(0,r+1)+\"_rels/\"+e.slice(r+1)+\".rels\"}function na(e,r){var t={\"!id\":{}};if(!e)return t;if(r.charAt(0)!==\"/\"){r=\"/\"+r}var a={};(e.match(De)||[]).forEach(function(e){var n=Re(e);if(n[0]===\"2){r[r.length]=\"\";r[1]=r[1].replace(\"/>\",\">\")}return r.join(\"\")}var la=[ta.HLINK,ta.XPATH,ta.XMISS];function oa(e,r,t,a,n,i){if(!n)n={};if(!e[\"!id\"])e[\"!id\"]={};if(r<0)for(r=1;e[\"!id\"][\"rId\"+r];++r){}n.Id=\"rId\"+r;n.Type=a;n.Target=t;if(i)n.TargetMode=i;else if(la.indexOf(n.Type)>-1)n.TargetMode=\"External\";if(e[\"!id\"][n.Id])throw new Error(\"Cannot rewrite rId \"+r);e[\"!id\"][n.Id]=n;e[(\"/\"+n.Target).replace(\"//\",\"/\")]=n;return r}var ca=[[\"cp:category\",\"Category\"],[\"cp:contentStatus\",\"ContentStatus\"],[\"cp:keywords\",\"Keywords\"],[\"cp:lastModifiedBy\",\"LastAuthor\"],[\"cp:lastPrinted\",\"LastPrinted\"],[\"cp:revision\",\"RevNumber\"],[\"cp:version\",\"Version\"],[\"dc:creator\",\"Author\"],[\"dc:description\",\"Comments\"],[\"dc:identifier\",\"Identifier\"],[\"dc:language\",\"Language\"],[\"dc:subject\",\"Subject\"],[\"dc:title\",\"Title\"],[\"dcterms:created\",\"CreatedDate\",\"date\"],[\"dcterms:modified\",\"ModifiedDate\",\"date\"]];hr.CORE_PROPS=\"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\";ta.CORE_PROPS=\"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\";var fa=function(){var e=new Array(ca.length);for(var r=0;r]*>([\\\\s\\\\S]*?)\")}return e}();function ua(e){var r={};e=Ke(e);for(var t=0;t0)r[a[1]]=Be(n[1]);if(a[2]===\"date\"&&r[a[1]])r[a[1]]=oe(r[a[1]])}return r}var ha=cr(\"cp:coreProperties\",null,{\"xmlns:cp\":hr.CORE_PROPS,\"xmlns:dc\":hr.dc,\"xmlns:dcterms\":hr.dcterms,\"xmlns:dcmitype\":hr.dcmitype,\"xmlns:xsi\":hr.xsi});function da(e,r,t,a,n){if(n[e]!=null||r==null||r===\"\")return;n[e]=r;r=$e(r);a[a.length]=t?cr(e,r,t):lr(e,r)}function pa(e,r){var t=r||{};var a=[Te,ha],n={};if(!e&&!t.Props)return a.join(\"\");if(e){if(e.CreatedDate!=null)da(\"dcterms:created\",typeof e.CreatedDate===\"string\"?e.CreatedDate:fr(e.CreatedDate,t.WTF),{\"xsi:type\":\"dcterms:W3CDTF\"},a,n);if(e.ModifiedDate!=null)da(\"dcterms:modified\",typeof e.ModifiedDate===\"string\"?e.ModifiedDate:fr(e.ModifiedDate,t.WTF),{\"xsi:type\":\"dcterms:W3CDTF\"},a,n)}for(var i=0;i!=ca.length;++i){var s=ca[i];var l=t.Props&&t.Props[s[1]]!=null?t.Props[s[1]]:e?e[s[1]]:null;if(l===true)l=\"1\";else if(l===false)l=\"0\";else if(typeof l==\"number\")l=String(l);if(l!=null)da(s[0],l,null,a,n)}if(a.length>2){a[a.length]=\"\";a[1]=a[1].replace(\"/>\",\">\")}return a.join(\"\")}var ma=[[\"Application\",\"Application\",\"string\"],[\"AppVersion\",\"AppVersion\",\"string\"],[\"Company\",\"Company\",\"string\"],[\"DocSecurity\",\"DocSecurity\",\"string\"],[\"Manager\",\"Manager\",\"string\"],[\"HyperlinksChanged\",\"HyperlinksChanged\",\"bool\"],[\"SharedDoc\",\"SharedDoc\",\"bool\"],[\"LinksUpToDate\",\"LinksUpToDate\",\"bool\"],[\"ScaleCrop\",\"ScaleCrop\",\"bool\"],[\"HeadingPairs\",\"HeadingPairs\",\"raw\"],[\"TitlesOfParts\",\"TitlesOfParts\",\"raw\"]];\nhr.EXT_PROPS=\"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\";ta.EXT_PROPS=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\";var va=[\"Worksheets\",\"SheetNames\",\"NamedRanges\",\"DefinedNames\",\"Chartsheets\",\"ChartNames\"];function ga(e,r,t,a){var n=[];if(typeof e==\"string\")n=ir(e,a);else for(var i=0;i0)for(var c=0;c!==n.length;c+=2){o=+n[c+1].v;switch(n[c].v){case\"Worksheets\":;case\"工作表\":;case\"Листы\":;case\"أوراق العمل\":;case\"ワークシート\":;case\"גליונות עבודה\":;case\"Arbeitsblätter\":;case\"Çalışma Sayfaları\":;case\"Feuilles de calcul\":;case\"Fogli di lavoro\":;case\"Folhas de cálculo\":;case\"Planilhas\":;case\"Regneark\":;case\"Hojas de cálculo\":;case\"Werkbladen\":t.Worksheets=o;t.SheetNames=s.slice(l,l+o);break;case\"Named Ranges\":;case\"Rangos con nombre\":;case\"名前付き一覧\":;case\"Benannte Bereiche\":;case\"Navngivne områder\":t.NamedRanges=o;t.DefinedNames=s.slice(l,l+o);break;case\"Charts\":;case\"Diagramme\":t.Chartsheets=o;t.ChartNames=s.slice(l,l+o);break;}l+=o}}function ba(e,r,t){var a={};if(!r)r={};e=Ke(e);ma.forEach(function(t){var n=(e.match(er(t[0]))||[])[1];switch(t[2]){case\"string\":if(n)r[t[1]]=Be(n);break;case\"bool\":r[t[1]]=n===\"true\";break;case\"raw\":var i=e.match(new RegExp(\"<\"+t[0]+\"[^>]*>([\\\\s\\\\S]*?)\"));if(i&&i.length>0)a[t[1]]=i[1];break;}});if(a.HeadingPairs&&a.TitlesOfParts)ga(a.HeadingPairs,a.TitlesOfParts,r,t);return r}var wa=cr(\"Properties\",null,{xmlns:hr.EXT_PROPS,\"xmlns:vt\":hr.vt});function ka(e){var r=[],t=cr;if(!e)e={};e.Application=\"SheetJS\";r[r.length]=Te;r[r.length]=wa;ma.forEach(function(a){if(e[a[1]]===undefined)return;var n;switch(a[2]){case\"string\":n=$e(String(e[a[1]]));break;case\"bool\":n=e[a[1]]?\"true\":\"false\";break;}if(n!==undefined)r[r.length]=t(a[0],n)});r[r.length]=t(\"HeadingPairs\",t(\"vt:vector\",t(\"vt:variant\",\"Worksheets\")+t(\"vt:variant\",t(\"vt:i4\",String(e.Worksheets))),{size:2,baseType:\"variant\"}));r[r.length]=t(\"TitlesOfParts\",t(\"vt:vector\",e.SheetNames.map(function(e){return\"\"+$e(e)+\"\"}).join(\"\"),{size:e.Worksheets,baseType:\"lpstr\"}));if(r.length>2){r[r.length]=\"\";r[1]=r[1].replace(\"/>\",\">\")}return r.join(\"\")}hr.CUST_PROPS=\"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\";ta.CUST_PROPS=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties\";var ya=/<[^>]+>[^<]*/g;function xa(e,r){var t={},a=\"\";var n=e.match(ya);if(n)for(var i=0;i!=n.length;++i){var s=n[i],l=Re(s);switch(l[0]){case\"\":a=null;break;default:if(s.indexOf(\"\");var c=o[0].slice(4),f=o[1];switch(c){case\"lpstr\":;case\"bstr\":;case\"lpwstr\":t[a]=Be(f);break;case\"bool\":t[a]=Ye(f);break;case\"i1\":;case\"i2\":;case\"i4\":;case\"i8\":;case\"int\":;case\"uint\":t[a]=parseInt(f,10);break;case\"r4\":;case\"r8\":;case\"decimal\":t[a]=parseFloat(f);break;case\"filetime\":;case\"date\":t[a]=oe(f);break;case\"cy\":;case\"error\":t[a]=Be(f);break;default:if(c.slice(-1)==\"/\")break;if(r.WTF&&typeof console!==\"undefined\")console.warn(\"Unexpected\",s,c,o);}}else if(s.slice(0,2)===\"2){r[r.length]=\"\";r[1]=r[1].replace(\"/>\",\">\")}return r.join(\"\")}var Ca=function(){var e={1:437,2:850,3:1252,4:1e4,100:852,101:866,102:865,103:861,104:895,105:620,106:737,107:857,120:950,121:949,122:936,123:932,124:874,125:1255,126:1256,150:10007,151:10029,152:10006,200:1250,201:1251,202:1254,203:1253,0:20127,8:865,9:437,10:850,11:437,13:437,14:850,15:437,16:850,17:437,18:850,19:932,20:850,21:437,22:850,23:865,24:437,25:437,26:850,27:437,28:863,29:850,31:852,34:852,35:852,36:860,37:850,38:866,55:850,64:852,77:936,78:949,79:950,80:874,87:1252,88:1252,89:1252,108:863,134:737,135:852,136:857,204:1257,255:16969};var r=J({1:437,2:850,3:1252,4:1e4,100:852,101:866,102:865,103:861,104:895,105:620,106:737,107:857,120:950,121:949,122:936,123:932,124:874,125:1255,126:1256,150:10007,151:10029,152:10006,200:1250,201:1251,202:1254,203:1253,0:20127});var a=[2,3,48,49,131,139,140,245];function n(r,t){var a=[];var n=S(1);switch(t.type){case\"base64\":n=C(b.decode(r));break;case\"binary\":n=C(r);break;case\"buffer\":;case\"array\":n=r;break;}Kr(n,0);var i=n._R(1);var s=!!(i&136);var l=false,o=false;switch(i){case 2:break;case 3:break;case 48:l=true;s=true;break;case 49:l=true;s=true;break;case 131:break;case 139:break;case 140:o=true;break;case 245:break;default:throw new Error(\"DBF Unsupported Version: \"+i.toString(16));}var c=0,f=521;if(i==2)c=n._R(2);n.l+=3;if(i!=2)c=n._R(4);if(c>1048576)c=1e6;if(i!=2)f=n._R(2);var u=n._R(2);var h=t.codepage||1252;if(i!=2){n.l+=16;n._R(1);if(n[n.l]!==0)h=e[n[n.l]];n.l+=1;n.l+=2}if(o)n.l+=36;var d=[],p={};var m=Math.min(n.length,i==2?521:f-10-(l?264:0));var v=o?32:11;while(n.l0){if(n[n.l]===42){n.l+=u;continue}++n.l;a[++g]=[];w=0;for(w=0;w!=d.length;++w){var k=n.slice(n.l,n.l+d[w].len);n.l+=d[w].len;Kr(k,0);var y=cptable.utils.decode(h,k);switch(d[w].type){case\"C\":if(y.trim().length)a[g][w]=y.replace(/\\s+$/,\"\");break;case\"D\":if(y.length===8)a[g][w]=new Date(+y.slice(0,4),+y.slice(4,6)-1,+y.slice(6,8));else a[g][w]=y;break;case\"F\":a[g][w]=parseFloat(y.trim());break;case\"+\":;case\"I\":a[g][w]=o?k._R(-4,\"i\")^2147483648:k._R(4,\"i\");break;case\"L\":switch(y.trim().toUpperCase()){case\"Y\":;case\"T\":a[g][w]=true;break;case\"N\":;case\"F\":a[g][w]=false;break;case\"\":;case\"?\":break;default:throw new Error(\"DBF Unrecognized L:|\"+y+\"|\");}break;case\"M\":if(!s)throw new Error(\"DBF Unexpected MEMO for type \"+i.toString(16));a[g][w]=\"##MEMO##\"+(o?parseInt(y.trim(),10):k._R(4));break;case\"N\":y=y.replace(/\\u0000/g,\"\").trim();if(y&&y!=\".\")a[g][w]=+y||0;break;case\"@\":a[g][w]=new Date(k._R(-8,\"f\")-621356832e5);break;case\"T\":a[g][w]=new Date((k._R(4)-2440588)*864e5+k._R(4));break;case\"Y\":a[g][w]=k._R(4,\"i\")/1e4;break;case\"O\":a[g][w]=-k._R(-8,\"f\");break;case\"B\":if(l&&d[w].len==8){a[g][w]=k._R(8,\"f\");break};case\"G\":;case\"P\":k.l+=d[w].len;break;case\"0\":if(d[w].name===\"_NullFlags\")break;default:throw new Error(\"DBF Unsupported data type \"+d[w].type);}}}if(i!=2)if(n.l=0)o(+n.codepage);if(n.type==\"string\")throw new Error(\"Cannot write DBF to JS string\");var i=Qr();var s=Pl(e,{header:1,raw:true,cellDates:true});var c=s[0],f=s.slice(1);var u=0,h=0,d=0,p=1;for(u=0;u\":190,\"?\":191,\"{\":223};var r=new RegExp(\"\u001bN(\"+Y(e).join(\"|\").replace(/\\|\\|\\|/,\"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\")+\"|\\\\|)\",\"gm\");var t=function(r,t){var a=e[t];return typeof a==\"number\"?m(a):a};var a=function(e,r,t){var a=r.charCodeAt(0)-32<<4|t.charCodeAt(0)-48;return a==59?e:m(a)};e[\"|\"]=254;function n(e,r){switch(r.type){case\"base64\":return i(b.decode(e),r);case\"binary\":return i(e,r);case\"buffer\":return i(w&&Buffer.isBuffer(e)?e.toString(\"binary\"):E(e),r);case\"array\":return i(ce(e),r);}throw new Error(\"Unrecognized type \"+r.type)}function i(e,n){var i=e.split(/[\\n\\r]+/),s=-1,l=-1,c=0,f=0,u=[];var h=[];var d=null;var p={},m=[],v=[],g=[];var b=0,w;if(+n.codepage>=0)o(+n.codepage);for(;c!==i.length;++c){b=0;var k=i[c].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g,a).replace(r,t);var y=k.replace(/;;/g,\"\\0\").split(\";\").map(function(e){return e.replace(/\\u0000/g,\";\")});var x=y[0],S;if(k.length>0)switch(x){case\"ID\":break;case\"E\":break;case\"B\":break;case\"O\":break;case\"W\":break;case\"P\":if(y[1].charAt(0)==\"P\")h.push(k.slice(3).replace(/;;/g,\";\"));break;case\"C\":var _=false,C=false,A=false,E=false,F=-1,T=-1;for(f=1;f-1&&u[F][T];if(!D||!D[1])throw new Error(\"SYLK shared formula cannot find base\");u[s][l][1]=ei(D[1],{r:s-F,c:l-T})}break;case\"F\":var M=0;for(f=1;f0){m[s].hpt=b;m[s].hpx=cn(b)}else if(b===0)m[s].hidden=true;break;default:if(n&&n.WTF)throw new Error(\"SYLK bad record \"+k);}if(M<1)d=null;break;default:if(n&&n.WTF)throw new Error(\"SYLK bad record \"+k);}}if(m.length>0)p[\"!rows\"]=m;if(v.length>0)p[\"!cols\"]=v;if(n&&n.sheetRows)u=u.slice(0,n.sheetRows);return[u,p]}function s(e,r){var t=n(e,r);var a=t[0],i=t[1];var s=St(a,r);Y(i).forEach(function(e){s[e]=i[e]});return s}function l(e,r){return yt(s(e,r),r)}function c(e,r,t,a){var n=\"C;Y\"+(t+1)+\";X\"+(a+1)+\";K\";switch(e.t){case\"n\":n+=e.v||0;if(e.f&&!e.F)n+=\";E\"+Qn(e.f,{r:t,c:a});break;case\"b\":n+=e.v?\"TRUE\":\"FALSE\";break;case\"e\":n+=e.w||e.v;break;case\"d\":n+='\"'+(e.w||e.v)+'\"';break;case\"s\":n+='\"'+e.v.replace(/\"/g,\"\")+'\"';break;}return n}function f(e,r){r.forEach(function(r,t){var a=\"F;W\"+(t+1)+\" \"+(t+1)+\" \";if(r.hidden)a+=\"0\";else{if(typeof r.width==\"number\"&&!r.wpx)r.wpx=Qa(r.width);if(typeof r.wpx==\"number\"&&!r.wch)r.wch=en(r.wpx);if(typeof r.wch==\"number\")a+=Math.round(r.wch)}if(a.charAt(a.length-1)!=\" \")e.push(a)})}function u(e,r){r.forEach(function(r,t){var a=\"F;\";if(r.hidden)a+=\"M0;\";else if(r.hpt)a+=\"M\"+20*r.hpt+\";\";else if(r.hpx)a+=\"M\"+20*on(r.hpx)+\";\";if(a.length>2)e.push(a+\"R\"+(t+1))})}function h(e,r){var t=[\"ID;PWXL;N;E\"],a=[];var n=bt(e[\"!ref\"]),i;var s=Array.isArray(e);var l=\"\\r\\n\";t.push(\"P;PGeneral\");t.push(\"F;P0;DG0G8;M255\");if(e[\"!cols\"])f(t,e[\"!cols\"]);if(e[\"!rows\"])u(t,e[\"!rows\"]);t.push(\"B;Y\"+(n.e.r-n.s.r+1)+\";X\"+(n.e.c-n.s.c+1)+\";D\"+[n.s.c,n.s.r,n.e.c,n.e.r].join(\" \"));for(var o=n.s.r;o<=n.e.r;++o){for(var h=n.s.c;h<=n.e.c;++h){var d=mt({r:o,c:h});i=s?(e[o]||[])[h]:e[d];if(!i||i.v==null&&(!i.f||i.F))continue;a.push(c(i,e,o,h,r))}}return t.join(l)+l+a.join(l)+l+\"E\"+l}return{to_workbook:l,to_sheet:s,from_sheet:h}}();var Ea=function(){function e(e,t){switch(t.type){case\"base64\":return r(b.decode(e),t);case\"binary\":return r(e,t);case\"buffer\":return r(w&&Buffer.isBuffer(e)?e.toString(\"binary\"):E(e),t);case\"array\":return r(ce(e),t);}throw new Error(\"Unrecognized type \"+t.type)}function r(e,r){var t=e.split(\"\\n\"),a=-1,n=-1,i=0,s=[];for(;i!==t.length;++i){if(t[i].trim()===\"BOT\"){s[++a]=[];n=0;continue}if(a<0)continue;var l=t[i].trim().split(\",\");var o=l[0],c=l[1];++i;var f=t[i]||\"\";while((f.match(/[\"]/g)||[]).length&1&&i=0&&i[s].length===0)--s;var l=10,o=0;var c=0;for(;c<=s;++c){o=i[c].indexOf(\" \");if(o==-1)o=i[c].length;else o++;l=Math.max(l,o)}for(c=0;c<=s;++c){n[c]=[];var f=0;e(i[c].slice(0,l).trim(),n,c,f,a);for(f=1;f<=(i[c].length-l)/10+1;++f)e(i[c].slice(l+(f-1)*10,l+f*10).trim(),n,c,f,a)}if(a.sheetRows)n=n.slice(0,a.sheetRows);return n}var t={44:\",\",9:\"\\t\",59:\";\",124:\"|\"};var a={44:3,9:2,59:1,124:0};function n(e){var r={},n=false,i=0,s=0;for(;i0)b();i[\"!ref\"]=gt(s);return i}function s(e,t){if(!(t&&t.PRN))return i(e,t);if(t.FS)return i(e,t);if(e.slice(0,4)==\"sep=\")return i(e,t);if(e.indexOf(\"\\t\")>=0||e.indexOf(\",\")>=0||e.indexOf(\";\")>=0)return i(e,t);return St(r(e,t),t)}function l(e,r){var t=\"\",a=r.type==\"string\"?[0,0,0,0]:pl(e,r);switch(r.type){case\"base64\":t=b.decode(e);break;case\"binary\":t=e;break;case\"buffer\":if(r.codepage==65001)t=e.toString(\"utf8\");else if(r.codepage&&typeof cptable!==\"undefined\")t=cptable.utils.decode(r.codepage,e);else t=w&&Buffer.isBuffer(e)?e.toString(\"binary\"):E(e);break;case\"array\":t=ce(e);break;case\"string\":t=e;break;default:throw new Error(\"Unrecognized type \"+r.type);}if(a[0]==239&&a[1]==187&&a[2]==191)t=Ke(t.slice(3));else if(r.type!=\"string\"&&r.codepage==65001)t=Ke(t);else if(r.type==\"binary\"&&typeof cptable!==\"undefined\"&&r.codepage)t=cptable.utils.decode(r.codepage,cptable.utils.encode(28591,t));if(t.slice(0,19)==\"socialcalc:version:\")return Fa.to_sheet(r.type==\"string\"?t:Ke(t),r);return s(t,r)}function o(e,r){return yt(l(e,r),r)}function c(e){var r=[];var t=bt(e[\"!ref\"]),a;var n=Array.isArray(e);for(var i=t.s.r;i<=t.e.r;++i){var s=[];for(var l=t.s.c;l<=t.e.c;++l){var o=mt({r:i,c:l});a=n?(e[i]||[])[l]:e[o];if(!a||a.v==null){s.push(\" \");continue}var c=(a.w||(kt(a),a.w)||\"\").slice(0,10);while(c.length<10)c+=\" \";s.push(c+(l===0?\" \":\"\"))}r.push(s.join(\"\"))}return r.join(\"\\n\")}return{to_workbook:o,to_sheet:l,from_sheet:c}}();function Oa(e,r){var t=r||{},a=!!t.WTF;t.WTF=true;try{var n=Aa.to_workbook(e,t);t.WTF=a;return n}catch(i){t.WTF=a;if(!i.message.match(/SYLK bad record ID/)&&a)throw i;return Ta.to_workbook(e,r)}}function Da(e){var r={},t=e.match(De),a=0;var n=false;if(t)for(;a!=t.length;++a){var s=Re(t[a]);switch(s[0].replace(/\\w*:/g,\"\")){case\"\":;case\"\":r.shadow=1;break;case\"\":break;case\"\":;case\"\":r.outline=1;break;case\"\":break;case\"\":;case\"\":r.strike=1;break;case\"\":break;case\"\":;case\"\":r.u=1;break;case\"\":break;case\"\":;case\"\":r.b=1;break;case\"\":break;case\"\":;case\"\":r.i=1;break;case\"\":break;case\"\":;case\"\":break;case\"\":n=false;break;default:if(s[0].charCodeAt(1)!==47&&!n)throw new Error(\"Unrecognized rich format \"+s[0]);}}return r}var Ma=function(){var e=er(\"t\"),r=er(\"rPr\");function t(t){var a=t.match(e);if(!a)return{t:\"s\",v:\"\"};var n={t:\"s\",v:Be(a[1])};var i=t.match(r);if(i)n.s=Da(i[1]);return n}var a=/<(?:\\w+:)?r>/g,n=/<\\/(?:\\w+:)?r>/;return function i(e){return e.replace(a,\"\").split(n).map(t).filter(function(e){return e.v})}}();var Na=function co(){var e=/(\\r\\n|\\n)/g;function r(e,r,t){var a=[];if(e.u)a.push(\"text-decoration: underline;\");if(e.uval)a.push(\"text-underline-style:\"+e.uval+\";\");if(e.sz)a.push(\"font-size:\"+e.sz+\"pt;\");if(e.outline)a.push(\"text-effect: outline;\");if(e.shadow)a.push(\"text-shadow: auto;\");r.push('');if(e.b){r.push(\"\");t.push(\"\")}if(e.i){r.push(\"\");t.push(\"\")}if(e.strike){r.push(\"\");t.push(\"\")}var n=e.valign||\"\";if(n==\"superscript\"||n==\"super\")n=\"sup\";else if(n==\"subscript\")n=\"sub\";if(n!=\"\"){r.push(\"<\"+n+\">\");t.push(\"\")}t.push(\"\");return e}function t(t){var a=[[],t.v,[]];if(!t.v)return\"\";if(t.s)r(t.s,a[0],a[2]);return a[0].join(\"\")+a[1].replace(e,\"
\")+a[2].join(\"\")}return function a(e){return e.map(t).join(\"\")}}();var Ra=/<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g,Pa=/<(?:\\w+:)?r>/;var Ia=/<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;function La(e,r){var t=r?r.cellHTML:true;var a={};if(!e)return{t:\"\"};if(e.match(/^\\s*<(?:\\w+:)?t[^>]*>/)){a.t=Be(Ke(e.slice(e.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));a.r=Ke(e);if(t)a.h=He(a.t)}else if(e.match(Pa)){a.r=Ke(e);a.t=Be(Ke((e.replace(Ia,\"\").match(Ra)||[]).join(\"\").replace(De,\"\")));if(t)a.h=Na(Ma(a.r))}return a}var Ba=/<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;var za=/<(?:\\w+:)?(?:si|sstItem)>/g;var Wa=/<\\/(?:\\w+:)?(?:si|sstItem)>/;function $a(e,r){var t=[],a=\"\";if(!e)return t;var n=e.match(Ba);if(n){a=n[2].replace(za,\"\").split(Wa);for(var i=0;i!=a.length;++i){var s=La(a[i].trim(),r);if(s!=null)t[t.length]=s}n=Re(n[1]);t.Count=n.count;t.Unique=n.uniqueCount}return t}ta.SST=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\";var Ua=/^\\s|\\s$|[\\t\\n\\r]/;function ja(e,r){if(!r.bookSST)return\"\";var t=[Te];t[t.length]=cr(\"sst\",null,{xmlns:hr.main[0],count:e.Count,uniqueCount:e.Unique});for(var a=0;a!=e.length;++a){if(e[a]==null)continue;var n=e[a];var i=\"\";if(n.r)i+=n.r;else{i+=\"\"+$e(n.t)+\"\"}i+=\"\";t[t.length]=i}if(t.length>2){t[t.length]=\"\";t[1]=t[1].replace(\"/>\",\">\")}return t.join(\"\")}function Ha(e){var r=e.slice(e[0]===\"#\"?1:0).slice(0,6);return[parseInt(r.slice(0,2),16),parseInt(r.slice(2,4),16),parseInt(r.slice(4,6),16)]}function Xa(e){for(var r=0,t=1;r!=3;++r)t=t*256+(e[r]>255?255:e[r]<0?0:e[r]);return t.toString(16).toUpperCase().slice(1)}function Va(e){var r=e[0]/255,t=e[1]/255,a=e[2]/255;var n=Math.max(r,t,a),i=Math.min(r,t,a),s=n-i;if(s===0)return[0,0,r];var l=0,o=0,c=n+i;o=s/(c>1?2-c:c);switch(n){case r:l=((t-a)/s+6)%6;break;case t:l=(a-r)/s+2;break;case a:l=(r-t)/s+4;break;}return[l/6,o,c/2]}function Ga(e){var r=e[0],t=e[1],a=e[2];var n=t*2*(a<.5?a:1-a),i=a-n/2;var s=[i,i,i],l=6*r;var o;if(t!==0)switch(l|0){case 0:;case 6:o=n*l;s[0]+=n;s[1]+=o;break;case 1:o=n*(2-l);s[0]+=o;s[1]+=n;break;case 2:o=n*(l-2);s[1]+=n;s[2]+=o;break;case 3:o=n*(4-l);s[1]+=o;s[2]+=n;break;case 4:o=n*(l-4);s[2]+=n;s[0]+=o;break;case 5:o=n*(6-l);s[2]+=o;s[0]+=n;break;}for(var c=0;c!=3;++c)s[c]=Math.round(s[c]*255);return s}function Ya(e,r){if(r===0)return e;var t=Va(Ha(e));if(r<0)t[2]=t[2]*(1+r);else t[2]=1-(1-t[2])*(1-r);return Xa(Ga(t))}var Ka=6,Ja=15,qa=1,Za=Ka;function Qa(e){return Math.floor((e+Math.round(128/Za)/256)*Za)}function en(e){return Math.floor((e-5)/Za*100+.5)/100}function rn(e){return Math.round((e*Za+5)/Za*256)/256}function tn(e){return rn(en(Qa(e)))}function an(e){var r=Math.abs(e-tn(e)),t=Za;if(r>.005)for(Za=qa;Za\":;case\"\":break;case\"\":;case\"\":n={};if(t.diagonalUp)n.diagonalUp=Ye(t.diagonalUp);if(t.diagonalDown)n.diagonalDown=Ye(t.diagonalDown);r.Borders.push(n);break;case\"\":break;case\"\":break;case\"\":break;case\"\":break;case\"\":break;case\"\":break;case\"\":break;case\"\":break;case\"\":break;case\"\":break;case\"\":break;case\"\":break;case\"\":break;case\"\":;case\"\":break;case\"\":break;case\"\":;case\"\":break;case\"\":break;case\"\":;case\"\":break;case\"\":break;case\"\":;case\"\":break;case\"\":break;case\"\":;case\"\":break;case\"\":break;case\"\":break;case\"\":;case\"\":break;case\"\":;case\"\":break;case\"\":i=false;break;default:if(a&&a.WTF){if(!i)throw new Error(\"unrecognized \"+t[0]+\" in borders\")};}})}function hn(e,r,t,a){r.Fills=[];var n={};var i=false;(e[0].match(De)||[]).forEach(function(e){var t=Re(e);switch(Pe(t[0])){case\"\":;case\"\":break;case\"\":;case\"\":n={};r.Fills.push(n);break;case\"\":break;case\"\":break;case\"\":r.Fills.push(n);n={};break;case\"\":if(t.patternType)n.patternType=t.patternType;break;case\"\":;case\"\":break;case\"\":;case\"\":\nbreak;case\"\":;case\"\":break;case\"\":break;case\"\":break;case\"\":break;case\"\":break;case\"\":;case\"\":break;case\"\":i=false;break;default:if(a&&a.WTF){if(!i)throw new Error(\"unrecognized \"+t[0]+\" in fills\")};}})}function dn(e,r,t,a){r.Fonts=[];var n={};var s=false;(e[0].match(De)||[]).forEach(function(e){var l=Re(e);switch(Pe(l[0])){case\"\":;case\"\":break;case\"\":break;case\"\":;case\"\":r.Fonts.push(n);n={};break;case\"\":;case\"\":break;case\"\":n.bold=1;break;case\"\":n.italic=1;break;case\"\":n.underline=1;break;case\"\":n.strike=1;break;case\"\":n.outline=1;break;case\"\":n.shadow=1;break;case\"\":n.condense=1;break;case\"\":n.extend=1;break;case\"\":;case\"\":break;case\"\":;case\"\":break;case\"\":;case\"\":break;case\"\":;case\"\":break;case\"\":;case\"\":break;case\"\":s=false;break;case\"\":;case\"\":break;case\"\":s=false;break;default:if(a&&a.WTF){if(!s)throw new Error(\"unrecognized \"+l[0]+\" in fonts\")};}})}function pn(e,r,t){r.NumberFmt=[];var a=Y(N._table);for(var n=0;n\":;case\"\":;case\"\":break;case\"0){if(o>392){for(o=392;o>60;--o)if(r.NumberFmt[o]==null)break;r.NumberFmt[o]=l}N.load(l,o)}}break;case\"\":break;default:if(t.WTF)throw new Error(\"unrecognized \"+s[0]+\" in numFmts\");}}}function mn(e){var r=[\"\"];[[5,8],[23,26],[41,44],[50,392]].forEach(function(t){for(var a=t[0];a<=t[1];++a)if(e[a]!=null)r[r.length]=cr(\"numFmt\",null,{numFmtId:a,formatCode:$e(e[a])})});if(r.length===1)return\"\";r[r.length]=\"\";r[0]=cr(\"numFmts\",null,{count:r.length-2}).replace(\"/>\",\">\");return r.join(\"\")}var vn=[\"numFmtId\",\"fillId\",\"fontId\",\"borderId\",\"xfId\"];var gn=[\"applyAlignment\",\"applyBorder\",\"applyFill\",\"applyFont\",\"applyNumberFormat\",\"applyProtection\",\"pivotButton\",\"quotePrefix\"];function bn(e,r,t){r.CellXf=[];var a;var n=false;(e[0].match(De)||[]).forEach(function(e){var i=Re(e),s=0;switch(Pe(i[0])){case\"\":;case\"\":;case\"\":break;case\"\":a=i;delete a[0];for(s=0;s392){for(s=392;s>60;--s)if(r.NumberFmt[a.numFmtId]==r.NumberFmt[s]){a.numFmtId=s;break}}r.CellXf.push(a);break;case\"\":break;case\"\":var l={};if(i.vertical)l.vertical=i.vertical;if(i.horizontal)l.horizontal=i.horizontal;if(i.textRotation!=null)l.textRotation=i.textRotation;if(i.indent)l.indent=i.indent;if(i.wrapText)l.wrapText=Ye(i.wrapText);a.alignment=l;break;case\"\":break;case\"\":;case\"\":break;case\"\":n=false;break;case\"\":;case\"\":break;case\"\":n=false;break;default:if(t&&t.WTF){if(!n)throw new Error(\"unrecognized \"+i[0]+\" in cellXfs\")};}})}function wn(e){var r=[];r[r.length]=cr(\"cellXfs\",null);e.forEach(function(e){r[r.length]=cr(\"xf\",null,e)});r[r.length]=\"\";if(r.length===2)return\"\";r[0]=cr(\"cellXfs\",null,{count:r.length-2}).replace(\"/>\",\">\");return r.join(\"\")}var kn=function fo(){var e=/<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;var r=/<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;var t=/<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;var a=/<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;var n=/<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;return function i(s,l,o){var c={};if(!s)return c;s=s.replace(//gm,\"\").replace(//gm,\"\");var f;if(f=s.match(e))pn(f,c,o);if(f=s.match(a))dn(f,c,l,o);if(f=s.match(t))hn(f,c,l,o);if(f=s.match(n))un(f,c,l,o);if(f=s.match(r))bn(f,c,o);return c}}();var yn=cr(\"styleSheet\",null,{xmlns:hr.main[0],\"xmlns:vt\":hr.vt});ta.STY=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\";function xn(e,r){var t=[Te,yn],a;if(e.SSF&&(a=mn(e.SSF))!=null)t[t.length]=a;t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';if(a=wn(r.cellXfs))t[t.length]=a;t[t.length]='';t[t.length]='';t[t.length]='';if(t.length>2){t[t.length]=\"\";t[1]=t[1].replace(\"/>\",\">\")}return t.join(\"\")}ta.THEME=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\";var Sn=[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"];function _n(e,r,t){r.themeElements.clrScheme=[];var a={};(e[0].match(De)||[]).forEach(function(e){var n=Re(e);switch(n[0]){case\"\":break;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":;case\"\":if(n[0].charAt(1)===\"/\"){r.themeElements.clrScheme[Sn.indexOf(n[0])]=a;a={}}else{a.name=n[0].slice(3,n[0].length-1)}break;default:if(t&&t.WTF)throw new Error(\"Unrecognized \"+n[0]+\" in clrScheme\");}})}function Cn(){}function An(){}var En=/]*)>[\\s\\S]*<\\/a:clrScheme>/;var Fn=/]*)>[\\s\\S]*<\\/a:fontScheme>/;var Tn=/]*)>[\\s\\S]*<\\/a:fmtScheme>/;function On(e,r,t){r.themeElements={};var a;[[\"clrScheme\",En,_n],[\"fontScheme\",Fn,Cn],[\"fmtScheme\",Tn,An]].forEach(function(n){if(!(a=e.match(n[1])))throw new Error(n[0]+\" not found in themeElements\");n[2](a,r,t)})}var Dn=/]*)>[\\s\\S]*<\\/a:themeElements>/;function Mn(e,r){if(!e||e.length===0)return Mn(Nn());var t;var a={};if(!(t=e.match(Dn)))throw new Error(\"themeElements not found in theme\");On(t[0],a,r);a.raw=e;return a}function Nn(e,r){if(r&&r.themeXLSX)return r.themeXLSX;if(e&&typeof e.raw==\"string\")return e.raw;var t=[Te];t[t.length]='';t[t.length]=\"\";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]=\"\";t[t.length]='';t[t.length]=\"\";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]=\"\";t[t.length]=\"\";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]=\"\";t[t.length]=\"\";t[t.length]='';t[t.length]=\"\";t[t.length]='';t[t.length]='';t[t.length]=\"\";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]=\"\";t[t.length]='';t[t.length]=\"\";t[t.length]='';t[t.length]=\"\";t[t.length]='';t[t.length]='';t[t.length]=\"\";t[t.length]='';t[t.length]=\"\";t[t.length]=\"\";t[t.length]=\"\";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]=\"\";t[t.length]=\"\";t[t.length]=\"\";t[t.length]=\"\";t[t.length]='';t[t.length]=\"\";t[t.length]=\"\";t[t.length]=\"\";t[t.length]=\"\";t[t.length]='';t[t.length]=\"\";t[t.length]=\"\";t[t.length]=\"\";t[t.length]=\"\";t[t.length]='';t[t.length]=\"\";t[t.length]='';t[t.length]='';t[t.length]=\"\";t[t.length]=\"\";t[t.length]=\"\";t[t.length]='';t[t.length]='';t[t.length]=\"\";t[t.length]='';t[t.length]='';t[t.length]='';t[t.length]=\"\";t[t.length]='';t[t.length]=\"\";t[t.length]='';t[t.length]=\"\";t[t.length]='';t[t.length]='';t[t.length]=\"\";t[t.length]='';t[t.length]=\"\";t[t.length]=\"\";t[t.length]=\"\";t[t.length]=\"\";t[t.length]=\"\";t[t.length]=\"\";t[t.length]='';t[t.length]=\"\";t[t.length]=\"\";t[t.length]='';t[t.length]=\"\";t[t.length]=\"\";t[t.length]=\"\";t[t.length]=\"\";return t.join(\"\")}function Rn(){}function Pn(e,r,t,a){if(!e)return e;var n=a||{};var i=false,s=false;Zr(e,function l(e,r,t){if(s)return;switch(t){case 359:;case 363:;case 364:;case 366:;case 367:;case 368:;case 369:;case 370:;case 371:;case 472:;case 577:;case 578:;case 579:;case 580:;case 581:;case 582:;case 583:;case 584:;case 585:;case 586:;case 587:break;case 35:i=true;break;case 36:i=false;break;default:if((r||\"\").indexOf(\"Begin\")>0){}else if((r||\"\").indexOf(\"End\")>0){}else if(!i||n.WTF)throw new Error(\"Unexpected record \"+t.toString(16)+\" \"+r);}},n)}ta.IMG=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\";ta.DRAW=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\";function In(e,r){if(!e)return\"??\";var t=(e.match(/]*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];return r[\"!id\"][t].Target}var Ln=1024;function Bn(e,r){var t=[21600,21600];var a=[\"m0,0l0\",t[1],t[0],t[1],t[0],\"0xe\"].join(\",\");var n=[cr(\"xml\",null,{\"xmlns:v\":dr.v,\"xmlns:o\":dr.o,\"xmlns:x\":dr.x,\"xmlns:mv\":dr.mv}).replace(/\\/>/,\">\"),cr(\"o:shapelayout\",cr(\"o:idmap\",null,{\"v:ext\":\"edit\",data:e}),{\"v:ext\":\"edit\"}),cr(\"v:shapetype\",[cr(\"v:stroke\",null,{joinstyle:\"miter\"}),cr(\"v:path\",null,{gradientshapeok:\"t\",\"o:connecttype\":\"rect\"})].join(\"\"),{id:\"_x0000_t202\",\"o:spt\":202,coordsize:t.join(\",\"),path:a})];while(Ln\",i,cr(\"v:shadow\",null,s),cr(\"v:path\",null,{\"o:connecttype\":\"none\"}),'
','',\"\",\"\",lr(\"x:Anchor\",[r.c+1,0,r.r+1,0,r.c+3,20,r.r+5,20].join(\",\")),lr(\"x:AutoFill\",\"False\"),lr(\"x:Row\",String(r.r)),lr(\"x:Column\",String(r.c)),e[1].hidden?\"\":\"\",\"\",\"\"])});n.push(\"\");return n.join(\"\")}ta.CMNT=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\";function zn(e,r){var t=Array.isArray(e);var a;r.forEach(function(r){var n=pt(r.ref);if(t){if(!e[n.r])e[n.r]=[];a=e[n.r][n.c]}else a=e[r.ref];if(!a){a={t:\"z\"};if(t)e[n.r][n.c]=a;else e[r.ref]=a;var i=bt(e[\"!ref\"]||\"BDWGO1000001:A1\");if(i.s.r>n.r)i.s.r=n.r;if(i.e.rn.c)i.s.c=n.c;if(i.e.c/))return[];var t=[];var a=[];var n=e.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);if(n&&n[1])n[1].split(/<\\/\\w*:?author>/).forEach(function(e){if(e===\"\"||e.trim()===\"\")return;var r=e.match(/<(?:\\w+:)?author[^>]*>(.*)/);if(r)t.push(r[1])});var i=e.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);if(i&&i[1])i[1].split(/<\\/\\w*:?comment>/).forEach(function(e){if(e===\"\"||e.trim()===\"\")return;var n=e.match(/<(?:\\w+:)?comment[^>]*>/);if(!n)return;var i=Re(n[0]);var s={author:i.authorId&&t[i.authorId]||\"sheetjsghost\",ref:i.ref,guid:i.guid};var l=pt(i.ref);if(r.sheetRows&&r.sheetRows<=l.r)return;var o=e.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);var c=!!o&&!!o[1]&&La(o[1])||{r:\"\",t:\"\",h:\"\"};s.r=c.r;if(c.r==\"\")c.t=c.h=\"\";s.t=(c.t||\"\").replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");if(r.cellHTML)s.h=c.h;a.push(s)});return a}var $n=cr(\"comments\",null,{xmlns:hr.main[0]});function Un(e){var r=[Te,$n];var t=[];r.push(\"\");e.forEach(function(e){e[1].forEach(function(e){var a=$e(e.a);if(t.indexOf(a)>-1)return;t.push(a);r.push(\"\"+a+\"\")})});r.push(\"\");r.push(\"\");e.forEach(function(e){e[1].forEach(function(a){r.push('');r.push(lr(\"t\",a.t==null?\"\":$e(a.t)));r.push(\"\")})});r.push(\"\");if(r.length>2){r[r.length]=\"\";r[1]=r[1].replace(\"/>\",\">\")}return r.join(\"\")}var jn=\"application/vnd.ms-office.vbaProject\";function Hn(e){var r=j.utils.cfb_new({root:\"R\"});e.FullPaths.forEach(function(t,a){if(t.slice(-1)===\"/\"||!t.match(/_VBA_PROJECT_CUR/))return;var n=t.replace(/^[^\\/]*/,\"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/,\"\");j.utils.cfb_add(r,n,e.FileIndex[a].content)});return j.write(r)}function Xn(e,r){r.FullPaths.forEach(function(t,a){if(a==0)return;var n=t.replace(/[^\\/]*[\\/]/,\"/_VBA_PROJECT_CUR/\");if(n.slice(-1)!==\"/\")j.utils.cfb_add(e,n,r.FileIndex[a].content)})}var Vn=[\"xlsb\",\"xlsm\",\"xlam\",\"biff8\",\"xla\"];ta.DS=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\";ta.MS=\"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\";function Gn(){return{\"!type\":\"dialog\"}}function Yn(){return{\"!type\":\"dialog\"}}function Kn(){return{\"!type\":\"macro\"}}function Jn(){return{\"!type\":\"macro\"}}var qn=function(){var e=/(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;var r={r:0,c:0};function t(e,t,a,n){var i=false,s=false;if(a.length==0)s=true;else if(a.charAt(0)==\"[\"){s=true;a=a.slice(1,-1)}if(n.length==0)i=true;else if(n.charAt(0)==\"[\"){i=true;n=n.slice(1,-1)}var l=a.length>0?parseInt(a,10)|0:0,o=n.length>0?parseInt(n,10)|0:0;if(i)o+=r.c;else--o;if(s)l+=r.r;else--l;return t+(i?\"\":\"$\")+ft(o)+(s?\"\":\"$\")+st(l)}return function a(n,i){r=i;return n.replace(e,t)}}();var Zn=/(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;var Qn=function(){return function e(r,t){return r.replace(Zn,function(e,r,a,n,i,s){var l=ct(n)-(a?0:t.c);var o=it(s)-(i?0:t.r);var c=o==0?\"\":!i?\"[\"+o+\"]\":o+1;var f=l==0?\"\":!a?\"[\"+l+\"]\":l+1;return r+\"R\"+c+\"C\"+f})}}();function ei(e,r){return e.replace(Zn,function(e,t,a,n,i,s){return t+(a==\"$\"?a+n:ft(ct(n)+r.c))+(i==\"$\"?i+s:st(it(s)+r.r))})}function ri(e,r,t){var a=vt(r),n=a.s,i=pt(t);var s={r:i.r-n.r,c:i.c-n.c};return ei(e,s)}function ti(e){if(e.length==1)return false;return true}function ai(e){return e.replace(/_xlfn\\./g,\"\")}var ni={};var ii={};ta.WS=[\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"];var si=typeof Map!==\"undefined\";function li(e,r,t){var a=0,n=e.length;if(t){if(si?t.has(r):Object.prototype.hasOwnProperty.call(t,r)){var i=si?t.get(r):t[r];for(;a-1){t.width=rn(a);t.customWidth=1}else if(r.width!=null)t.width=r.width;if(r.hidden)t.hidden=true;if(r.level!=null){t.outlineLevel=t.level=r.level}return t}function ci(e,r){if(!e)return;var t=[.7,.7,.75,.75,.3,.3];if(r==\"xlml\")t=[1,1,1,1,.5,.5];if(e.left==null)e.left=t[0];if(e.right==null)e.right=t[1];if(e.top==null)e.top=t[2];if(e.bottom==null)e.bottom=t[3];if(e.header==null)e.header=t[4];if(e.footer==null)e.footer=t[5]}function fi(e,r,t){var a=t.revssf[r.z!=null?r.z:\"General\"];var n=60,i=e.length;if(a==null&&t.ssf){for(;n<392;++n)if(t.ssf[n]==null){N.load(r.z,n);t.ssf[n]=r.z;t.revssf[r.z]=a=n;break}}for(n=0;n!=i;++n)if(e[n].numFmtId===a)return n;e[i]={numFmtId:a,fontId:0,fillId:0,borderId:0,xfId:0,applyNumberFormat:1};return i}function ui(e,r,t,a,n,i){try{if(a.cellNF)e.z=N._table[r]}catch(s){if(a.WTF)throw s}if(e.t===\"z\"&&!a.cellStyles)return;if(e.t===\"d\"&&typeof e.v===\"string\")e.v=oe(e.v);if((!a||a.cellText!==false)&&e.t!==\"z\")try{if(N._table[r]==null)N.load(I[r]||\"General\",r);if(e.t===\"e\")e.w=e.w||Vt[e.v];else if(r===0){if(e.t===\"n\"){if((e.v|0)===e.v)e.w=N._general_int(e.v);else e.w=N._general_num(e.v)}else if(e.t===\"d\"){var l=ee(e.v);if((l|0)===l)e.w=N._general_int(l);else e.w=N._general_num(l)}else if(e.v===undefined)return\"\";else e.w=N._general(e.v,ii)}else if(e.t===\"d\")e.w=N.format(r,ee(e.v),ii);else e.w=N.format(r,e.v,ii)}catch(s){if(a.WTF)throw s}if(!a.cellStyles)return;if(t!=null)try{e.s=i.Fills[t];if(e.s.fgColor&&e.s.fgColor.theme&&!e.s.fgColor.rgb){e.s.fgColor.rgb=Ya(n.themeElements.clrScheme[e.s.fgColor.theme].rgb,e.s.fgColor.tint||0);if(a.WTF)e.s.fgColor.raw_rgb=n.themeElements.clrScheme[e.s.fgColor.theme].rgb}if(e.s.bgColor&&e.s.bgColor.theme){e.s.bgColor.rgb=Ya(n.themeElements.clrScheme[e.s.bgColor.theme].rgb,e.s.bgColor.tint||0);if(a.WTF)e.s.bgColor.raw_rgb=n.themeElements.clrScheme[e.s.bgColor.theme].rgb}}catch(s){if(a.WTF&&i.Fills)throw s}}function hi(e,r,t){if(e&&e[\"!ref\"]){var a=bt(e[\"!ref\"]);if(a.e.c=0&&t.s.c>=0)e[\"!ref\"]=gt(t)}var pi=/<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;var mi=/<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;var vi=/<(?:\\w:)?hyperlink [^>]*>/gm;var gi=/\"(\\w*:\\w*)\"/;var bi=/<(?:\\w:)?col\\b[^>]*[\\/]?>/g;var wi=/<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;var ki=/<(?:\\w:)?pageMargins[^>]*\\/>/g;var yi=/<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;var xi=/<(?:\\w:)?sheetPr[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetPr)>/;var Si=/<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;function _i(e,r,t,a,n,i,s){if(!e)return e;if(!a)a={\"!id\":{}};if(v!=null&&r.dense==null)r.dense=v;var l=r.dense?[]:{};var o={s:{r:2e6,c:2e6},e:{r:0,c:0}};var c=\"\",f=\"\";var u=e.match(mi);if(u){c=e.slice(0,u.index);f=e.slice(u.index+u[0].length)}else c=f=e;var h=c.match(yi);if(h)Ai(h[0],l,n,t);else if(h=c.match(xi))Ei(h[0],h[1]||\"\",l,n,t,s,i);var d=(c.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;if(d>0){var p=c.slice(d,d+50).match(gi);if(p)di(l,p[1])}var m=c.match(Si);if(m&&m[1])Wi(m[1],n);var g=[];if(r.cellStyles){var b=c.match(bi);if(b)Pi(g,b)}if(u)ji(u[1],l,r,o,i,s);var w=f.match(wi);if(w)l[\"!autofilter\"]=Li(w[0]);var k=[];var y=f.match(pi);if(y)for(d=0;d!=y.length;++d)k[d]=bt(y[d].slice(y[d].indexOf('\"')+1));var x=f.match(vi);if(x)Mi(l,x,a);var S=f.match(ki);if(S)l[\"!margins\"]=Ni(Re(S[0]));if(!l[\"!ref\"]&&o.e.c>=o.s.c&&o.e.r>=o.s.r)l[\"!ref\"]=gt(o);if(r.sheetRows>0&&l[\"!ref\"]){var _=bt(l[\"!ref\"]);if(r.sheetRows<=+_.e.r){_.e.r=r.sheetRows-1;if(_.e.r>o.e.r)_.e.r=o.e.r;if(_.e.r<_.s.r)_.s.r=_.e.r;if(_.e.c>o.e.c)_.e.c=o.e.c;if(_.e.c<_.s.c)_.s.c=_.e.c;l[\"!fullref\"]=l[\"!ref\"];l[\"!ref\"]=gt(_)}}if(g.length>0)l[\"!cols\"]=g;if(k.length>0)l[\"!merges\"]=k;return l}function Ci(e){if(e.length===0)return\"\";var r='';for(var t=0;t!=e.length;++t)r+='';return r+\"\"}function Ai(e,r,t,a){var n=Re(e);if(!t.Sheets[a])t.Sheets[a]={};if(n.codeName)t.Sheets[a].CodeName=Be(Ke(n.codeName))}function Ei(e,r,t,a,n,i,s){Ai(e.slice(0,e.indexOf(\">\")),t,a,n)}function Fi(e,r,t,a,n){var i=false;var s={},l=null;if(a.bookType!==\"xlsx\"&&r.vbaraw){var o=r.SheetNames[t];try{if(r.Workbook)o=r.Workbook.Sheets[t].CodeName||o}catch(c){}i=true;s.codeName=Je($e(o))}if(e&&e[\"!outline\"]){var f={summaryBelow:1,summaryRight:1};if(e[\"!outline\"].above)f.summaryBelow=0;if(e[\"!outline\"].left)f.summaryRight=0;l=(l||\"\")+cr(\"outlinePr\",null,f)}if(!i&&!l)return;n[n.length]=cr(\"sheetPr\",l,s)}var Ti=[\"objects\",\"scenarios\",\"selectLockedCells\",\"selectUnlockedCells\"];var Oi=[\"formatColumns\",\"formatRows\",\"formatCells\",\"insertColumns\",\"insertRows\",\"insertHyperlinks\",\"deleteColumns\",\"deleteRows\",\"sort\",\"autoFilter\",\"pivotTables\"];function Di(e){var r={sheet:1};Ti.forEach(function(t){if(e[t]!=null&&e[t])r[t]=\"1\"});Oi.forEach(function(t){if(e[t]!=null&&!e[t])r[t]=\"0\"});if(e.password)r.password=crypto_CreatePasswordVerifier_Method1(e.password).toString(16).toUpperCase();return cr(\"sheetProtection\",null,r)}function Mi(e,r,t){var a=Array.isArray(e);for(var n=0;n!=r.length;++n){var i=Re(Ke(r[n]),true);if(!i.ref)return;var s=((t||{})[\"!id\"]||[])[i.id];if(s){i.Target=s.Target;if(i.location)i.Target+=\"#\"+Be(i.location)}else{i.Target=\"#\"+Be(i.location);s={Target:i.Target,TargetMode:\"Internal\"}}i.Rel=s;if(i.tooltip){i.Tooltip=i.tooltip;delete i.tooltip}var l=bt(i.ref);for(var o=l.s.r;o<=l.e.r;++o)for(var c=l.s.c;c<=l.e.c;++c){var f=mt({c:c,r:o});if(a){if(!e[o])e[o]=[];if(!e[o][c])e[o][c]={t:\"z\",v:undefined};e[o][c].l=i}else{if(!e[f])e[f]={t:\"z\",v:undefined};e[f].l=i}}}}function Ni(e){var r={};[\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"].forEach(function(t){if(e[t])r[t]=parseFloat(e[t])});return r}function Ri(e){ci(e);return cr(\"pageMargins\",null,e)}function Pi(e,r){var t=false;for(var a=0;a!=r.length;++a){var n=Re(r[a],true);if(n.hidden)n.hidden=Ye(n.hidden);\nvar i=parseInt(n.min,10)-1,s=parseInt(n.max,10)-1;if(n.outlineLevel)n.level=+n.outlineLevel||0;delete n.min;delete n.max;n.width=+n.width;if(!t&&n.width){t=true;an(n.width)}nn(n);while(i<=s)e[i++]=fe(n)}}function Ii(e,r){var t=[\"\"],a;for(var n=0;n!=r.length;++n){if(!(a=r[n]))continue;t[t.length]=cr(\"col\",null,oi(n,a))}t[t.length]=\"\";return t.join(\"\")}function Li(e){var r={ref:(e.match(/ref=\"([^\"]*)\"/)||[])[1]};return r}function Bi(e,r,t,a){var n=typeof e.ref==\"string\"?e.ref:gt(e.ref);if(!t.Workbook)t.Workbook={Sheets:[]};if(!t.Workbook.Names)t.Workbook.Names=[];var i=t.Workbook.Names;var s=vt(n);if(s.s.r==s.e.r){s.e.r=vt(r[\"!ref\"]).e.r;n=gt(s)}for(var l=0;la-z][^>]*)?\\/?>/;function Wi(e,r){if(!r.Views)r.Views=[{}];(e.match(zi)||[]).forEach(function(e,t){var a=Re(e);if(!r.Views[t])r.Views[t]={};if(+a.zoomScale)r.Views[t].zoom=+a.zoomScale;if(Ye(a.rightToLeft))r.Views[t].RTL=true})}function $i(e,r,t,a){var n={workbookViewId:\"0\"};if((((a||{}).Workbook||{}).Views||[])[0])n.rightToLeft=a.Workbook.Views[0].RTL?\"1\":\"0\";return cr(\"sheetViews\",cr(\"sheetView\",null,n),{})}function Ui(e,r,t,a){if(e.v===undefined&&typeof e.f!==\"string\"||e.t===\"z\")return\"\";var n=\"\";var i=e.t,s=e.v;if(e.t!==\"z\")switch(e.t){case\"b\":n=e.v?\"1\":\"0\";break;case\"n\":n=\"\"+e.v;break;case\"e\":n=Vt[e.v];break;case\"d\":if(a&&a.cellDates)n=oe(e.v,-1).toISOString();else{e=fe(e);e.t=\"n\";n=\"\"+(e.v=ee(oe(e.v)))}if(typeof e.z===\"undefined\")e.z=N._table[14];break;default:n=e.v;break;}var l=lr(\"v\",$e(n)),o={r:r};var c=fi(a.cellXfs,e,a);if(c!==0)o.s=c;switch(e.t){case\"n\":break;case\"d\":o.t=\"d\";break;case\"b\":o.t=\"b\";break;case\"e\":o.t=\"e\";break;case\"z\":break;default:if(e.v==null){delete e.t;break}if(e.v.length>32767)throw new Error(\"Text length must not exceed 32767 characters\");if(a&&a.bookSST){l=lr(\"v\",\"\"+li(a.Strings,e.v,a.revStrings));o.t=\"s\";break}o.t=\"str\";break;}if(e.t!=i){e.t=i;e.v=s}if(typeof e.f==\"string\"&&e.f){var f=e.F&&e.F.slice(0,r.length)==r?{t:\"array\",ref:e.F}:null;l=cr(\"f\",$e(e.f),f)+(e.v!=null?l:\"\")}if(e.l)t[\"!links\"].push([r,e.l]);if(e.c)t[\"!comments\"].push([r,e.c]);return cr(\"c\",l,o)}var ji=function(){var e=/<(?:\\w+:)?c[ \\/>]/,r=/<\\/(?:\\w+:)?row>/;var t=/r=[\"']([^\"']*)[\"']/,a=/<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;var n=/ref=[\"']([^\"']*)[\"']/;var i=er(\"v\"),s=er(\"f\");return function l(o,c,f,u,h,d){var p=0,m=\"\",v=[],g=[],b=0,w=0,k=0,y=\"\",x;var S,_=0,C=0;var A,E;var F=0,T=0;var O=Array.isArray(d.CellXf),D;var M=[];var R=[];var P=Array.isArray(c);var I=[],L={},B=false;var z=!!f.sheetStubs;for(var W=o.split(r),$=0,U=W.length;$!=U;++$){m=W[$].trim();var j=m.length;if(j===0)continue;var H=0;e:for(p=0;p\":if(m[p-1]!=\"/\"){++p;break e}if(f&&f.cellStyles){S=Re(m.slice(H,p),true);_=S.r!=null?parseInt(S.r,10):_+1;C=-1;if(f.sheetRows&&f.sheetRows<_)continue;L={};B=false;if(S.ht){B=true;L.hpt=parseFloat(S.ht);L.hpx=cn(L.hpt)}if(S.hidden==\"1\"){B=true;L.hidden=true}if(S.outlineLevel!=null){B=true;L.level=+S.outlineLevel}if(B)I[_-1]=L}break;case\"<\":H=p;break;}if(H>=p)break;S=Re(m.slice(H,p),true);_=S.r!=null?parseInt(S.r,10):_+1;C=-1;if(f.sheetRows&&f.sheetRows<_)continue;if(u.s.r>_-1)u.s.r=_-1;if(u.e.r<_-1)u.e.r=_-1;if(f&&f.cellStyles){L={};B=false;if(S.ht){B=true;L.hpt=parseFloat(S.ht);L.hpx=cn(L.hpt)}if(S.hidden==\"1\"){B=true;L.hidden=true}if(S.outlineLevel!=null){B=true;L.level=+S.outlineLevel}if(B)I[_-1]=L}v=m.slice(p).split(e);for(var X=0;X!=v.length;++X)if(v[X].trim().charAt(0)!=\"<\")break;v=v.slice(X);for(p=0;p!=v.length;++p){m=v[p].trim();if(m.length===0)continue;g=m.match(t);b=p;w=0;k=0;m=\"\":\"\")+m;if(g!=null&&g.length===2){b=0;y=g[1];for(w=0;w!=y.length;++w){if((k=y.charCodeAt(w)-64)<1||k>26)break;b=26*b+k}--b;C=b}else++C;for(w=0;w!=m.length;++w)if(m.charCodeAt(w)===62)break;++w;S=Re(m.slice(0,w),true);if(!S.r)S.r=mt({r:_-1,c:C});y=m.slice(w);x={t:\"\"};if((g=y.match(i))!=null&&g[1]!==\"\")x.v=Be(g[1]);if(f.cellFormula){if((g=y.match(s))!=null&&g[1]!==\"\"){x.f=Be(Ke(g[1])).replace(/\\r\\n/g,\"\\n\");if(!f.xlfn)x.f=ai(x.f);if(g[0].indexOf('t=\"array\"')>-1){x.F=(y.match(n)||[])[1];if(x.F.indexOf(\":\")>-1)M.push([bt(x.F),x.F])}else if(g[0].indexOf('t=\"shared\"')>-1){E=Re(g[0]);var V=Be(Ke(g[1]));if(!f.xlfn)V=ai(V);R[parseInt(E.si,10)]=[E,V,S.r]}}else if(g=y.match(/]*\\/>/)){E=Re(g[0]);if(R[E.si])x.f=ri(R[E.si][1],R[E.si][2],S.r)}var G=pt(S.r);for(w=0;w=M[w][0].s.r&&G.r<=M[w][0].e.r)if(G.c>=M[w][0].s.c&&G.c<=M[w][0].e.c)x.F=M[w][1]}if(S.t==null&&x.v===undefined){if(x.f||x.F){x.v=0;x.t=\"n\"}else if(!z)continue;else x.t=\"z\"}else x.t=S.t||\"n\";if(u.s.c>C)u.s.c=C;if(u.e.c0)c[\"!rows\"]=I}}();function Hi(e,r,t,a){var n=[],i=[],s=bt(e[\"!ref\"]),l=\"\",o,c=\"\",f=[],u=0,h=0,d=e[\"!rows\"];var p=Array.isArray(e);var m={r:c},v,g=-1;for(h=s.s.c;h<=s.e.c;++h)f[h]=ft(h);for(u=s.s.r;u<=s.e.r;++u){i=[];c=st(u);for(h=s.s.c;h<=s.e.c;++h){o=f[h]+c;var b=p?(e[u]||[])[h]:e[o];if(b===undefined)continue;if((l=Ui(b,o,e,r,t,a))!=null)i.push(l)}if(i.length>0||d&&d[u]){m={r:c};if(d&&d[u]){v=d[u];if(v.hidden)m.hidden=1;g=-1;if(v.hpx)g=on(v.hpx);else if(v.hpt)g=v.hpt;if(g>-1){m.ht=g;m.customHeight=1}if(v.level){m.outlineLevel=v.level}}n[n.length]=cr(\"row\",i.join(\"\"),m)}}if(d)for(;u-1){m.ht=g;m.customHeight=1}if(v.level){m.outlineLevel=v.level}n[n.length]=cr(\"row\",\"\",m)}}return n.join(\"\")}var Xi=cr(\"worksheet\",null,{xmlns:hr.main[0],\"xmlns:r\":hr.r});function Vi(e,r,t,a){var n=[Te,Xi];var i=t.SheetNames[e],s=0,l=\"\";var o=t.Sheets[i];if(o==null)o={};var c=o[\"!ref\"]||\"A1\";var f=bt(c);if(f.e.c>16383||f.e.r>1048575){if(r.WTF)throw new Error(\"Range \"+c+\" exceeds format limit A1:XFD1048576\");f.e.c=Math.min(f.e.c,16383);f.e.r=Math.min(f.e.c,1048575);c=gt(f)}if(!a)a={};o[\"!comments\"]=[];var u=[];Fi(o,t,e,r,n);n[n.length]=cr(\"dimension\",null,{ref:c});n[n.length]=$i(o,r,e,t);if(r.sheetFormat)n[n.length]=cr(\"sheetFormatPr\",null,{defaultRowHeight:r.sheetFormat.defaultRowHeight||\"16\",baseColWidth:r.sheetFormat.baseColWidth||\"10\",outlineLevelRow:r.sheetFormat.outlineLevelRow||\"7\"});if(o[\"!cols\"]!=null&&o[\"!cols\"].length>0)n[n.length]=Ii(o,o[\"!cols\"]);n[s=n.length]=\"\";o[\"!links\"]=[];if(o[\"!ref\"]!=null){l=Hi(o,r,e,t,a);if(l.length>0)n[n.length]=l}if(n.length>s+1){n[n.length]=\"\";n[s]=n[s].replace(\"/>\",\">\")}if(o[\"!protect\"])n[n.length]=Di(o[\"!protect\"]);if(o[\"!autofilter\"]!=null)n[n.length]=Bi(o[\"!autofilter\"],o,t,e);if(o[\"!merges\"]!=null&&o[\"!merges\"].length>0)n[n.length]=Ci(o[\"!merges\"]);var h=-1,d,p=-1;if(o[\"!links\"].length>0){n[n.length]=\"\";o[\"!links\"].forEach(function(e){if(!e[1].Target)return;d={ref:e[0]};if(e[1].Target.charAt(0)!=\"#\"){p=oa(a,-1,$e(e[1].Target).replace(/#.*$/,\"\"),ta.HLINK);d[\"r:id\"]=\"rId\"+p}if((h=e[1].Target.indexOf(\"#\"))>-1)d.location=$e(e[1].Target.slice(h+1));if(e[1].Tooltip)d.tooltip=$e(e[1].Tooltip);n[n.length]=cr(\"hyperlink\",null,d)});n[n.length]=\"\"}delete o[\"!links\"];if(o[\"!margins\"]!=null)n[n.length]=Ri(o[\"!margins\"]);if(!r||r.ignoreEC||r.ignoreEC==void 0)n[n.length]=lr(\"ignoredErrors\",cr(\"ignoredError\",null,{numberStoredAsText:1,sqref:c}));if(u.length>0){p=oa(a,-1,\"../drawings/drawing\"+(e+1)+\".xml\",ta.DRAW);n[n.length]=cr(\"drawing\",null,{\"r:id\":\"rId\"+p});o[\"!drawing\"]=u}if(o[\"!comments\"].length>0){p=oa(a,-1,\"../drawings/vmlDrawing\"+(e+1)+\".vml\",ta.VML);n[n.length]=cr(\"legacyDrawing\",null,{\"r:id\":\"rId\"+p});o[\"!legacy\"]=p}if(n.length>1){n[n.length]=\"\";n[1]=n[1].replace(\"/>\",\">\")}return n.join(\"\")}ta.CHART=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\";ta.CHARTEX=\"http://schemas.microsoft.com/office/2014/relationships/chartEx\";function Gi(e){var r=[];var t=e.match(/^/);var a;(e.match(/(.*?)<\\/c:pt>/gm)||[]).forEach(function(e){var a=e.match(/(.*)<\\/c:v><\\/c:pt>/);if(!a)return;r[+a[1]]=t?+a[2]:a[2]});var n=Be((e.match(/([\\s\\S]*?)<\\/c:formatCode>/)||[\"\",\"General\"])[1]);(e.match(/(.*?)<\\/c:f>/gm)||[]).forEach(function(e){a=e.replace(/<.*?>/g,\"\")});return[r,n,a]}function Yi(e,r,t,a,n,i){var s=i||{\"!type\":\"chart\"};if(!e)return i;var l=0,o=0,c=\"A\";var f={s:{r:2e6,c:2e6},e:{r:0,c:0}};(e.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(e){var r=Gi(e);f.s.r=f.s.c=0;f.e.c=l;c=ft(l);r[0].forEach(function(e,t){s[c+st(t)]={t:\"n\",v:e,z:r[1]};o=t});if(f.e.r0)s[\"!ref\"]=gt(f);return s}ta.CS=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\";var Ki=cr(\"chartsheet\",null,{xmlns:hr.main[0],\"xmlns:r\":hr.r});function Ji(e,r,t,a,n){if(!e)return e;if(!a)a={\"!id\":{}};var i={\"!type\":\"chart\",\"!drawel\":null,\"!rel\":\"\"};var s;var l=e.match(yi);if(l)Ai(l[0],i,n,t);if(s=e.match(/drawing r:id=\"(.*?)\"/))i[\"!rel\"]=s[1];if(a[\"!id\"][i[\"!rel\"]])i[\"!drawel\"]=a[\"!id\"][i[\"!rel\"]];return i}function qi(e,r,t,a){var n=[Te,Ki];n[n.length]=cr(\"drawing\",null,{\"r:id\":\"rId1\"});oa(a,-1,\"../drawings/drawing\"+(e+1)+\".xml\",ta.DRAW);if(n.length>2){n[n.length]=\"\";n[1]=n[1].replace(\"/>\",\">\")}return n.join(\"\")}function Zi(e,r){e.l+=10;var t=parse_XLWideString(e,r-10);return{name:t}}function Qi(e,r,t,a,n){if(!e)return e;if(!a)a={\"!id\":{}};var i={\"!type\":\"chart\",\"!drawel\":null,\"!rel\":\"\"};var s=[];var l=false;Zr(e,function o(e,a,c){switch(c){case 550:i[\"!rel\"]=e;break;case 651:if(!n.Sheets[t])n.Sheets[t]={};if(e.name)n.Sheets[t].CodeName=e.name;break;case 562:;case 652:;case 669:;case 679:;case 551:;case 552:;case 476:;case 3072:break;case 35:l=true;break;case 36:l=false;break;case 37:s.push(a);break;case 38:s.pop();break;default:if((a||\"\").indexOf(\"Begin\")>0)s.push(a);else if((a||\"\").indexOf(\"End\")>0)s.pop();else if(!l||r.WTF)throw new Error(\"Unexpected record \"+c+\" \"+a);}},r);if(a[\"!id\"][i[\"!rel\"]])i[\"!drawel\"]=a[\"!id\"][i[\"!rel\"]];return i}function es(){var e=Qr();et(e,\"BrtBeginSheet\");et(e,\"BrtEndSheet\");return e.end()}var rs=[[\"allowRefreshQuery\",false,\"bool\"],[\"autoCompressPictures\",true,\"bool\"],[\"backupFile\",false,\"bool\"],[\"checkCompatibility\",false,\"bool\"],[\"CodeName\",\"\"],[\"date1904\",false,\"bool\"],[\"defaultThemeVersion\",0,\"int\"],[\"filterPrivacy\",false,\"bool\"],[\"hidePivotFieldList\",false,\"bool\"],[\"promptedSolutions\",false,\"bool\"],[\"publishItems\",false,\"bool\"],[\"refreshAllConnections\",false,\"bool\"],[\"saveExternalLinkValues\",true,\"bool\"],[\"showBorderUnselectedTables\",true,\"bool\"],[\"showInkAnnotation\",true,\"bool\"],[\"showObjects\",\"all\"],[\"showPivotChartFilter\",false,\"bool\"],[\"updateLinks\",\"userSet\"]];var ts=[[\"activeTab\",0,\"int\"],[\"autoFilterDateGrouping\",true,\"bool\"],[\"firstSheet\",0,\"int\"],[\"minimized\",false,\"bool\"],[\"showHorizontalScroll\",true,\"bool\"],[\"showSheetTabs\",true,\"bool\"],[\"showVerticalScroll\",true,\"bool\"],[\"tabRatio\",600,\"int\"],[\"visibility\",\"visible\"]];var as=[];var ns=[[\"calcCompleted\",\"true\"],[\"calcMode\",\"auto\"],[\"calcOnSave\",\"true\"],[\"concurrentCalc\",\"true\"],[\"fullCalcOnLoad\",\"false\"],[\"fullPrecision\",\"true\"],[\"iterate\",\"false\"],[\"iterateCount\",\"100\"],[\"iterateDelta\",\"0.001\"],[\"refMode\",\"A1\"]];function is(e,r){for(var t=0;t!=e.length;++t){var a=e[t];for(var n=0;n!=r.length;++n){var i=r[n];if(a[i[0]]==null)a[i[0]]=i[1];else switch(i[2]){case\"bool\":if(typeof a[i[0]]==\"string\")a[i[0]]=Ye(a[i[0]]);break;case\"int\":if(typeof a[i[0]]==\"string\")a[i[0]]=parseInt(a[i[0]],10);break;}}}}function ss(e,r){for(var t=0;t!=r.length;++t){var a=r[t];if(e[a[0]]==null)e[a[0]]=a[1];else switch(a[2]){case\"bool\":if(typeof e[a[0]]==\"string\")e[a[0]]=Ye(e[a[0]]);break;case\"int\":if(typeof e[a[0]]==\"string\")e[a[0]]=parseInt(e[a[0]],10);break;}}}function ls(e){ss(e.WBProps,rs);ss(e.CalcPr,ns);is(e.WBView,ts);is(e.Sheets,as);ii.date1904=Ye(e.WBProps.date1904)}function os(e){if(!e.Workbook)return\"false\";if(!e.Workbook.WBProps)return\"false\";return Ye(e.Workbook.WBProps.date1904)?\"true\":\"false\"}var cs=\"][*?/\\\\\".split(\"\");function fs(e,r){if(e.length>31){if(r)return false;throw new Error(\"Sheet names cannot exceed 31 chars\")}var t=true;cs.forEach(function(a){if(e.indexOf(a)==-1)return;if(!r)throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");t=false});return t}function us(e,r,t){e.forEach(function(a,n){fs(a);for(var i=0;i22)throw new Error(\"Bad Code Name: Worksheet\"+s)}})}function hs(e){if(!e||!e.SheetNames||!e.Sheets)throw new Error(\"Invalid Workbook\");if(!e.SheetNames.length)throw new Error(\"Workbook is empty\");var r=e.Workbook&&e.Workbook.Sheets||[];us(e.SheetNames,r,!!e.vbaraw);for(var t=0;t\":break;case\"\":;case\"\":break;case\"\":break;case\"\":rs.forEach(function(e){if(f[e[0]]==null)return;switch(e[2]){case\"bool\":t.WBProps[e[0]]=Ye(f[e[0]]);break;case\"int\":t.WBProps[e[0]]=parseInt(f[e[0]],10);break;default:t.WBProps[e[0]]=f[e[0]];}});if(f.codeName)t.WBProps.CodeName=Ke(f.codeName);break;case\"\":break;case\"\":break;case\"\":;case\"\":break;case\"\":delete f[0];t.WBView.push(f);break;case\"\":break;case\"\":;case\"\":break;case\"\":break;case\"\":break;case\"\":;case\"\":break;case\"\":break;case\"\":;case\"\":a=false;break;case\"\":{i.Ref=Be(Ke(e.slice(s,c)));t.Names.push(i)}break;case\"\":break;case\"\":delete f[0];t.CalcPr=f;break;case\"\":break;case\"\":;case\"\":;case\"\":break;case\"\":;case\"\":;case\"\":break;case\"\":;case\"\":break;case\"\":break;case\"\":break;case\"\":;case\"\":break;case\"\":;case\"\":;case\"\":break;case\"\":a=false;break;case\"\":a=true;break;case\"\":a=false;break;case\"0;var a={codeName:\"ThisWorkbook\"};if(e.Workbook&&e.Workbook.WBProps){rs.forEach(function(r){if(e.Workbook.WBProps[r[0]]==null)return;if(e.Workbook.WBProps[r[0]]==r[1])return;a[r[0]]=e.Workbook.WBProps[r[0]]});if(e.Workbook.WBProps.CodeName){a.codeName=e.Workbook.WBProps.CodeName;delete a.CodeName}}r[r.length]=cr(\"workbookPr\",null,a);var n=e.Workbook&&e.Workbook.Sheets||[];var i=0;if(n&&n[0]&&!!n[0].Hidden){r[r.length]=\"\";for(i=0;i!=e.SheetNames.length;++i){if(!n[i])break;if(!n[i].Hidden)break}if(i==e.SheetNames.length)i=0;r[r.length]='';r[r.length]=\"\"}r[r.length]=\"\";for(i=0;i!=e.SheetNames.length;++i){var s={name:$e(e.SheetNames[i].slice(0,31))};s.sheetId=\"\"+(i+1);s[\"r:id\"]=\"rId\"+(i+1);if(n[i])switch(n[i].Hidden){case 1:s.state=\"hidden\";break;case 2:s.state=\"veryHidden\";break;}r[r.length]=cr(\"sheet\",null,s)}r[r.length]=\"\";if(t){r[r.length]=\"\";if(e.Workbook&&e.Workbook.Names)e.Workbook.Names.forEach(function(e){var t={name:e.Name};if(e.Comment)t.comment=e.Comment;if(e.Sheet!=null)t.localSheetId=\"\"+e.Sheet;if(e.Hidden)t.hidden=\"1\";if(!e.Ref)return;r[r.length]=cr(\"definedName\",$e(e.Ref),t)});r[r.length]=\"\"}if(r.length>2){r[r.length]=\"\";r[1]=r[1].replace(\"/>\",\">\")}return r.join(\"\")}function gs(e,r,t){if(r.slice(-4)===\".bin\")return parse_wb_bin(e,t);return ps(e,t)}function bs(e,r,t,a,n,i,s,l){if(r.slice(-4)===\".bin\")return parse_ws_bin(e,a,t,n,i,s,l);return _i(e,a,t,n,i,s,l)}function ws(e,r,t,a,n,i,s,l){if(r.slice(-4)===\".bin\")return Qi(e,a,t,n,i,s,l);return Ji(e,a,t,n,i,s,l)}function ks(e,r,t,a,n,i,s,l){if(r.slice(-4)===\".bin\")return Kn(e,a,t,n,i,s,l);return Jn(e,a,t,n,i,s,l)}function ys(e,r,t,a,n,i,s,l){if(r.slice(-4)===\".bin\")return Gn(e,a,t,n,i,s,l);return Yn(e,a,t,n,i,s,l)}function xs(e,r,t,a){if(r.slice(-4)===\".bin\")return parse_sty_bin(e,t,a);return kn(e,t,a)}function Ss(e,r,t){return Mn(e,t)}function _s(e,r,t){if(r.slice(-4)===\".bin\")return parse_sst_bin(e,t);return $a(e,t)}function Cs(e,r,t){if(r.slice(-4)===\".bin\")return parse_comments_bin(e,t);return Wn(e,t)}function As(e,r,t){if(r.slice(-4)===\".bin\")return parse_cc_bin(e,r,t);return parse_cc_xml(e,r,t)}function Es(e,r,t,a){if(t.slice(-4)===\".bin\")return Pn(e,r,t,a);return Rn(e,r,t,a)}function Fs(e,r,t){return(r.slice(-4)===\".bin\"?write_wb_bin:vs)(e,t)}function Ts(e,r,t,a,n){return(r.slice(-4)===\".bin\"?write_ws_bin:Vi)(e,t,a,n)}function Os(e,r,t,a,n){return(r.slice(-4)===\".bin\"?es:qi)(e,t,a,n)}function Ds(e,r,t){return(r.slice(-4)===\".bin\"?write_sty_bin:xn)(e,t)}function Ms(e,r,t){return(r.slice(-4)===\".bin\"?write_sst_bin:ja)(e,t)}function Ns(e,r,t){return(r.slice(-4)===\".bin\"?write_comments_bin:Un)(e,t)}var Rs=function(){function e(e,r){var t=r||{};if(v!=null&&t.dense==null)t.dense=v;var a=t.dense?[]:{};e=e.replace(//g,\"\");var n=e.match(/\");var i=e.match(/<\\/table/i);var s=n.index,l=i&&i.index||e.length;var o=me(e.slice(s,l),/(:?]*>)/i,\"\");var c=-1,f=0,u=0,h=0;var d={s:{r:1e7,c:1e7},e:{r:0,c:0}};var p=[];for(s=0;s/i);for(l=0;l\"))>-1)k=k.slice(y+1);for(var x=0;x\")));h=_.colspan?+_.colspan:1;if((u=+_.rowspan)>1||h>1)p.push({s:{r:c,c:f},e:{r:c+(u||1)-1,c:f+h-1}});var C=_.t||_[\"data-t\"]||\"\";if(!k.length){f+=h;continue}k=rr(k);if(d.s.r>c)d.s.r=c;if(d.e.rf)d.s.c=f;if(d.e.c[\\s\\S]*?<\\/table>/gi);if(!a||a.length==0)throw new Error(\"Invalid HTML: could not find
\");if(a.length==1)return yt(e(a[0],t),t);var n=jl.book_new();a.forEach(function(r,a){jl.book_append_sheet(n,e(r,t),\"Sheet\"+(a+1))});return n}function t(e,r,t,a){var n=e[\"!merges\"]||[];var i=[];for(var s=r.s.c;s<=r.e.c;++s){var l=0,o=0;for(var c=0;ct||n[c].s.c>s)continue;if(n[c].e.r1)d.rowspan=l;if(o>1)d.colspan=o;if(a.editable)h=''+h+\"\";else if(u){d[\"data-t\"]=u&&u.t||\"z\";if(u.v!=null)d[\"data-v\"]=u.v;if(u.z!=null)d[\"data-z\"]=u.z;if(u.l&&(u.l.Target||\"#\").charAt(0)!=\"#\")h=''+h+\"\"}d.id=(a.id||\"sjs\")+\"-\"+f;i.push(cr(\"td\",h,d))}var p=\"\";return p+i.join(\"\")+\"\"}function a(e,r,t){var a=[];return a.join(\"\")+\"\"}var n='SheetJS Table Export';var i=\"\";function s(e,r){var s=r||{};var l=s.header!=null?s.header:n;var o=s.footer!=null?s.footer:i;var c=[l];var f=vt(e[\"!ref\"]);s.dense=Array.isArray(e);c.push(a(e,f,s));for(var u=f.s.r;u<=f.e.r;++u)c.push(t(e,f,u,s));c.push(\"
\"+o);return c.join(\"\")}return{to_workbook:r,to_sheet:e,_row:t,BEGIN:n,END:i,_preamble:a,from_sheet:s}}();function Ps(e,r,t){var a=t||{};if(v!=null)a.dense=v;var n=0,i=0;if(a.origin!=null){if(typeof a.origin==\"number\")n=a.origin;else{var s=typeof a.origin==\"string\"?pt(a.origin):a.origin;n=s.r;i=s.c}}var l=r.getElementsByTagName(\"tr\");var o=Math.min(a.sheetRows||1e7,l.length);var c={s:{r:0,c:0},e:{r:n,c:i}};if(e[\"!ref\"]){var f=vt(e[\"!ref\"]);c.s.r=Math.min(c.s.r,f.s.r);c.s.c=Math.min(c.s.c,f.s.c);c.e.r=Math.max(c.e.r,f.e.r);c.e.c=Math.max(c.e.c,f.e.c);if(n==-1)c.e.r=n=f.e.r+1}var u=[],h=0;var d=e[\"!rows\"]||(e[\"!rows\"]=[]);var p=0,m=0,g=0,b=0,w=0,k=0;if(!e[\"!cols\"])e[\"!cols\"]=[];for(;p1||k>1)u.push({s:{r:m+n,c:b+i},e:{r:m+n+(w||1)-1,c:b+i+(k||1)-1}});var E={t:\"s\",v:_};var F=S.getAttribute(\"data-t\")||S.getAttribute(\"t\")||\"\";if(_!=null){if(_.length==0)E.t=F||\"z\";else if(a.raw||_.trim().length==0||F==\"s\"){}else if(_===\"TRUE\")E={t:\"b\",v:true};else if(_===\"FALSE\")E={t:\"b\",v:false};else if(!isNaN(he(_)))E={t:\"n\",v:he(_)};else if(!isNaN(de(_).getDate())){E={t:\"d\",v:oe(_)};if(!a.cellDates)E={t:\"n\",v:ee(E.v)};E.z=a.dateNF||N._table[14]}}if(E.z===undefined&&C!=null)E.z=C;var T=\"\",O=S.getElementsByTagName(\"A\");if(O&&O.length)for(var D=0;D=o)e[\"!fullref\"]=gt((c.e.r=l.length-p+m-1+n,c));return e}function Is(e,r){var t=r||{};var a=t.dense?[]:{};return Ps(a,e,r)}function Ls(e,r){return yt(Is(e,r),r)}function Bs(e){var r=\"\";var t=zs(e);if(t)r=t(e).getPropertyValue(\"display\");if(!r)r=e.style.display;return r===\"none\"}function zs(e){if(e.ownerDocument.defaultView&&typeof e.ownerDocument.defaultView.getComputedStyle===\"function\")return e.ownerDocument.defaultView.getComputedStyle;if(typeof getComputedStyle===\"function\")return getComputedStyle;return null}var Ws=function(){var e=function(e){var r=e.replace(/[\\t\\r\\n]/g,\" \").trim().replace(/ +/g,\" \").replace(//g,\" \").replace(//g,function(e,r){return Array(parseInt(r,10)+1).join(\" \")}).replace(/]*\\/>/g,\"\\t\").replace(//g,\"\\n\");var t=Be(r.replace(/<[^>]*>/g,\"\"));return[t]};var r={day:[\"d\",\"dd\"],month:[\"m\",\"mm\"],year:[\"y\",\"yy\"],hours:[\"h\",\"hh\"],minutes:[\"m\",\"mm\"],seconds:[\"s\",\"ss\"],\"am-pm\":[\"A/P\",\"AM/PM\"],\"day-of-week\":[\"ddd\",\"dddd\"],era:[\"e\",\"ee\"],quarter:[\"\\\\Qm\",'m\\\\\"th quarter\"']};return function t(a,n){var i=n||{};if(v!=null&&i.dense==null)i.dense=v;var s=xlml_normalize(a);var l=[],o;var c;var f={name:\"\"},u=\"\",h=0;var d;var p;var m={},g=[];var b=i.dense?[]:{};var w,k;var y={value:\"\"};var x=\"\",S=0,_;var C=[];var A=-1,E=-1,F={s:{r:1e6,c:1e7},e:{r:0,c:0}};var T=0;var O={};var D=[],M={},N=0,R=0;var P=[],I=1,L=1;var B=[];var z={Names:[]};var W={};var $=[\"\",\"\"];var U=[],j={};var H=\"\",X=0;var V=false,G=false;var Y=0;xlmlregex.lastIndex=0;s=s.replace(//gm,\"\").replace(//gm,\"\");while(w=xlmlregex.exec(s))switch(w[3]=w[3].replace(/_.*$/,\"\")){case\"table\":;case\"工作表\":if(w[1]===\"/\"){if(F.e.c>=F.s.c&&F.e.r>=F.s.r)b[\"!ref\"]=gt(F);else b[\"!ref\"]=\"A1:A1\";if(i.sheetRows>0&&i.sheetRows<=F.e.r){b[\"!fullref\"]=b[\"!ref\"];F.e.r=i.sheetRows-1;b[\"!ref\"]=gt(F)}if(D.length)b[\"!merges\"]=D;if(P.length)b[\"!rows\"]=P;d.name=d[\"名称\"]||d.name;if(typeof JSON!==\"undefined\")JSON.stringify(d);g.push(d.name);m[d.name]=b;G=false}else if(w[0].charAt(w[0].length-2)!==\"/\"){d=Re(w[0],false);A=E=-1;F.s.r=F.s.c=1e7;F.e.r=F.e.c=0;b=i.dense?[]:{};D=[];P=[];G=true}break;case\"table-row-group\":if(w[1]===\"/\")--T;else++T;break;case\"table-row\":;case\"行\":if(w[1]===\"/\"){A+=I;I=1;break}p=Re(w[0],false);if(p[\"行号\"])A=p[\"行号\"]-1;else if(A==-1)A=0;I=+p[\"number-rows-repeated\"]||1;if(I<10)for(Y=0;Y0)P[A+Y]={level:T};E=-1;break;case\"covered-table-cell\":if(w[1]!==\"/\")++E;if(i.sheetStubs){if(i.dense){if(!b[A])b[A]=[];b[A][E]={t:\"z\"}}else b[mt({r:A,c:E})]={t:\"z\"}}x=\"\";C=[];break;case\"table-cell\":;case\"数据\":if(w[0].charAt(w[0].length-2)===\"/\"){++E;y=Re(w[0],false);L=parseInt(y[\"number-columns-repeated\"]||\"1\",10);k={t:\"z\",v:null};if(y.formula&&i.cellFormula!=false)k.f=ods_to_csf_formula(Be(y.formula));if((y[\"数据类型\"]||y[\"value-type\"])==\"string\"){k.t=\"s\";k.v=Be(y[\"string-value\"]||\"\");if(i.dense){if(!b[A])b[A]=[];b[A][E]=k}else{b[mt({r:A,c:E})]=k}}E+=L-1}else if(w[1]!==\"/\"){++E;x=\"\";S=0;C=[];L=1;var K=I?A+I-1:A;if(E>F.e.c)F.e.c=E;if(EF.e.r)F.e.r=K;y=Re(w[0],false);U=[];j={};k={t:y[\"数据类型\"]||y[\"value-type\"],v:null};if(i.cellFormula){if(y.formula)y.formula=Be(y.formula);if(y[\"number-matrix-columns-spanned\"]&&y[\"number-matrix-rows-spanned\"]){N=parseInt(y[\"number-matrix-rows-spanned\"],10)||0;R=parseInt(y[\"number-matrix-columns-spanned\"],10)||0;M={s:{r:A,c:E},e:{r:A+N-1,c:E+R-1}};k.F=gt(M);B.push([M,k.F])}if(y.formula)k.f=ods_to_csf_formula(y.formula);else for(Y=0;Y=B[Y][0].s.r&&A<=B[Y][0].e.r)if(E>=B[Y][0].s.c&&E<=B[Y][0].e.c)k.F=B[Y][1]}if(y[\"number-columns-spanned\"]||y[\"number-rows-spanned\"]){N=parseInt(y[\"number-rows-spanned\"],10)||0;R=parseInt(y[\"number-columns-spanned\"],10)||0;M={s:{r:A,c:E},e:{r:A+N-1,c:E+R-1}};D.push(M)}if(y[\"number-columns-repeated\"])L=parseInt(y[\"number-columns-repeated\"],10);switch(k.t){case\"boolean\":k.t=\"b\";k.v=Ye(y[\"boolean-value\"]);break;case\"float\":k.t=\"n\";k.v=parseFloat(y.value);break;case\"percentage\":k.t=\"n\";k.v=parseFloat(y.value);break;case\"currency\":k.t=\"n\";k.v=parseFloat(y.value);break;case\"date\":k.t=\"d\";k.v=oe(y[\"date-value\"]);if(!i.cellDates){k.t=\"n\";k.v=ee(k.v)}k.z=\"m/d/yy\";break;case\"time\":k.t=\"n\";k.v=ie(y[\"time-value\"])/86400;if(i.cellDates){k.t=\"d\";k.v=ne(k.v)}k.z=\"HH:MM:SS\";break;case\"number\":k.t=\"n\";k.v=parseFloat(y[\"数据数值\"]);break;default:if(k.t===\"string\"||k.t===\"text\"||!k.t){k.t=\"s\";if(y[\"string-value\"]!=null){x=Be(y[\"string-value\"]);C=[]}}else throw new Error(\"Unsupported value type \"+k.t);}}else{V=false;if(k.t===\"s\"){k.v=x||\"\";if(C.length)k.R=C;V=S==0}if(W.Target)k.l=W;if(U.length>0){k.c=U;U=[]}if(x&&i.cellText!==false)k.w=x;if(V){k.t=\"z\";delete k.v}if(!V||i.sheetStubs){if(!(i.sheetRows&&i.sheetRows<=A)){for(var J=0;J0)b[A+J][E+L]=fe(k)}else{b[mt({r:A+J,c:E})]=k;while(--L>0)b[mt({r:A+J,c:E+L})]=fe(k)}if(F.e.c<=E)F.e.c=E}}}L=parseInt(y[\"number-columns-repeated\"]||\"1\",10);E+=L-1;L=0;k={};x=\"\";C=[]}W={};break;case\"document\":;case\"document-content\":;case\"电子表格文档\":;case\"spreadsheet\":;case\"主体\":;case\"scripts\":;case\"styles\":;case\"font-face-decls\":;case\"master-styles\":if(w[1]===\"/\"){if((o=l.pop())[0]!==w[3])throw\"Bad state: \"+o}else if(w[0].charAt(w[0].length-2)!==\"/\")l.push([w[3],true]);break;case\"annotation\":if(w[1]===\"/\"){if((o=l.pop())[0]!==w[3])throw\"Bad state: \"+o;j.t=x;if(C.length)j.R=C;j.a=H;U.push(j)}else if(w[0].charAt(w[0].length-2)!==\"/\"){l.push([w[3],false])}H=\"\";X=0;x=\"\";S=0;C=[];break;case\"creator\":if(w[1]===\"/\"){H=s.slice(X,w.index)}else X=w.index+w[0].length;break;case\"meta\":;case\"元数据\":;case\"settings\":;case\"config-item-set\":;case\"config-item-map-indexed\":;case\"config-item-map-entry\":;case\"config-item-map-named\":;case\"shapes\":;case\"frame\":;case\"text-box\":;case\"image\":;case\"data-pilot-tables\":;case\"list-style\":;case\"form\":;case\"dde-links\":;case\"event-listeners\":;case\"chart\":if(w[1]===\"/\"){if((o=l.pop())[0]!==w[3])throw\"Bad state: \"+o}else if(w[0].charAt(w[0].length-2)!==\"/\")l.push([w[3],false]);x=\"\";S=0;C=[];break;case\"scientific-number\":break;case\"currency-symbol\":break;case\"currency-style\":break;case\"number-style\":;case\"percentage-style\":;case\"date-style\":;case\"time-style\":if(w[1]===\"/\"){O[f.name]=u;if((o=l.pop())[0]!==w[3])throw\"Bad state: \"+o}else if(w[0].charAt(w[0].length-2)!==\"/\"){u=\"\";f=Re(w[0],false);l.push([w[3],true])}break;case\"script\":break;case\"libraries\":break;case\"automatic-styles\":break;case\"default-style\":;case\"page-layout\":break;case\"style\":break;case\"map\":break;case\"font-face\":break;case\"paragraph-properties\":break;case\"table-properties\":break;case\"table-column-properties\":break;case\"table-row-properties\":break;case\"table-cell-properties\":break;case\"number\":switch(l[l.length-1][0]){case\"time-style\":;case\"date-style\":c=Re(w[0],false);u+=r[w[3]][c.style===\"long\"?1:0];break;}break;case\"fraction\":break;case\"day\":;case\"month\":;case\"year\":;case\"era\":;case\"day-of-week\":;case\"week-of-year\":;case\"quarter\":;case\"hours\":;case\"minutes\":;case\"seconds\":;case\"am-pm\":\nswitch(l[l.length-1][0]){case\"time-style\":;case\"date-style\":c=Re(w[0],false);u+=r[w[3]][c.style===\"long\"?1:0];break;}break;case\"boolean-style\":break;case\"boolean\":break;case\"text-style\":break;case\"text\":if(w[0].slice(-2)===\"/>\")break;else if(w[1]===\"/\")switch(l[l.length-1][0]){case\"number-style\":;case\"date-style\":;case\"time-style\":u+=s.slice(h,w.index);break;}else h=w.index+w[0].length;break;case\"named-range\":c=Re(w[0],false);$=ods_to_csf_3D(c[\"cell-range-address\"]);var q={Name:c.name,Ref:$[0]+\"!\"+$[1]};if(G)q.Sheet=g.length;z.Names.push(q);break;case\"text-content\":break;case\"text-properties\":break;case\"embedded-text\":break;case\"body\":;case\"电子表格\":break;case\"forms\":break;case\"table-column\":break;case\"table-header-rows\":break;case\"table-rows\":break;case\"table-column-group\":break;case\"table-header-columns\":break;case\"table-columns\":break;case\"null-date\":break;case\"graphic-properties\":break;case\"calculation-settings\":break;case\"named-expressions\":break;case\"label-range\":break;case\"label-ranges\":break;case\"named-expression\":break;case\"sort\":break;case\"sort-by\":break;case\"sort-groups\":break;case\"tab\":break;case\"line-break\":break;case\"span\":break;case\"p\":;case\"文本串\":if([\"master-styles\"].indexOf(l[l.length-1][0])>-1)break;if(w[1]===\"/\"&&(!y||!y[\"string-value\"])){var Z=e(s.slice(S,w.index),_);x=(x.length>0?x+\"\\n\":\"\")+Z[0]}else{_=Re(w[0],false);S=w.index+w[0].length}break;case\"s\":break;case\"database-range\":if(w[1]===\"/\")break;try{$=ods_to_csf_3D(Re(w[0])[\"target-range-address\"]);m[$[0]][\"!autofilter\"]={ref:$[1]}}catch(Q){}break;case\"date\":break;case\"object\":break;case\"title\":;case\"标题\":break;case\"desc\":break;case\"binary-data\":break;case\"table-source\":break;case\"scenario\":break;case\"iteration\":break;case\"content-validations\":break;case\"content-validation\":break;case\"help-message\":break;case\"error-message\":break;case\"database-ranges\":break;case\"filter\":break;case\"filter-and\":break;case\"filter-or\":break;case\"filter-condition\":break;case\"list-level-style-bullet\":break;case\"list-level-style-number\":break;case\"list-level-properties\":break;case\"sender-firstname\":;case\"sender-lastname\":;case\"sender-initials\":;case\"sender-title\":;case\"sender-position\":;case\"sender-email\":;case\"sender-phone-private\":;case\"sender-fax\":;case\"sender-company\":;case\"sender-phone-work\":;case\"sender-street\":;case\"sender-city\":;case\"sender-postal-code\":;case\"sender-country\":;case\"sender-state-or-province\":;case\"author-name\":;case\"author-initials\":;case\"chapter\":;case\"file-name\":;case\"template-name\":;case\"sheet-name\":break;case\"event-listener\":break;case\"initial-creator\":;case\"creation-date\":;case\"print-date\":;case\"generator\":;case\"document-statistic\":;case\"user-defined\":;case\"editing-duration\":;case\"editing-cycles\":break;case\"config-item\":break;case\"page-number\":break;case\"page-count\":break;case\"time\":break;case\"cell-range-source\":break;case\"detective\":break;case\"operation\":break;case\"highlighted-range\":break;case\"data-pilot-table\":;case\"source-cell-range\":;case\"source-service\":;case\"data-pilot-field\":;case\"data-pilot-level\":;case\"data-pilot-subtotals\":;case\"data-pilot-subtotal\":;case\"data-pilot-members\":;case\"data-pilot-member\":;case\"data-pilot-display-info\":;case\"data-pilot-sort-info\":;case\"data-pilot-layout-info\":;case\"data-pilot-field-reference\":;case\"data-pilot-groups\":;case\"data-pilot-group\":;case\"data-pilot-group-member\":break;case\"rect\":break;case\"dde-connection-decls\":;case\"dde-connection-decl\":;case\"dde-link\":;case\"dde-source\":break;case\"properties\":break;case\"property\":break;case\"a\":if(w[1]!==\"/\"){W=Re(w[0],false);if(!W.href)break;W.Target=Be(W.href);delete W.href;if(W.Target.charAt(0)==\"#\"&&W.Target.indexOf(\".\")>-1){$=ods_to_csf_3D(W.Target.slice(1));W.Target=\"#\"+$[0]+\"!\"+$[1]}else if(W.Target.match(/^\\.\\.[\\\\\\/]/))W.Target=W.Target.slice(3)}break;case\"table-protection\":break;case\"data-pilot-grand-total\":break;case\"office-document-common-attrs\":break;default:switch(w[2]){case\"dc:\":;case\"calcext:\":;case\"loext:\":;case\"ooo:\":;case\"chartooo:\":;case\"draw:\":;case\"style:\":;case\"chart:\":;case\"form:\":;case\"uof:\":;case\"表:\":;case\"字:\":break;default:if(i.WTF)throw new Error(w);};}var re={Sheets:m,SheetNames:g,Workbook:z};if(i.bookSheets)delete re.Sheets;return re}}();function $s(e,r){r=r||{};if(we(e,\"META-INF/manifest.xml\"))parse_manifest(ye(e,\"META-INF/manifest.xml\"),r);var t=xe(e,\"content.xml\");if(!t)throw new Error(\"Missing content.xml in ODS / UOF file\");var a=Ws(Ke(t),r);if(we(e,\"meta.xml\"))a.Props=ua(ye(e,\"meta.xml\"));return a}function Us(e,r){return Ws(e,r)}var js=function(){var e=[\"\",'',\"\",'',\"\",'',\"\",\"\"].join(\"\");var r=\"\"+e+\"\";return function t(){return Te+r}}();var Hs=function(){var e=function(e){return $e(e).replace(/ +/g,function(e){return''}).replace(/\\t/g,\"\").replace(/\\n/g,\"\").replace(/^ /,\"\").replace(/ $/,\"\")};var r=\" \\n\";var t=\" \\n\";var a=function(a,n,i){var s=[];s.push(' \\n');var l=0,o=0,c=vt(a[\"!ref\"]||\"A1\");var f=a[\"!merges\"]||[],u=0;var h=Array.isArray(a);if(a[\"!cols\"]){for(o=0;o<=c.e.c;++o)s.push(\" \\n\")}var d=\"\",p=a[\"!rows\"]||[];for(l=0;l\\n\")}for(;l<=c.e.r;++l){d=p[l]?' table:style-name=\"ro'+p[l].ods+'\"':\"\";s.push(\" \\n\");for(o=0;oo)continue;if(f[u].s.r>l)continue;if(f[u].e.c\\n\")}s.push(\" \\n\");return s.join(\"\")};var n=function(e,r){e.push(\" \\n\");e.push(' \\n');e.push(' \\n');e.push(\" /\\n\");e.push(' \\n');e.push(\" /\\n\");e.push(\" \\n\");e.push(\" \\n\");var t=0;r.SheetNames.map(function(e){return r.Sheets[e]}).forEach(function(r){if(!r)return;if(r[\"!cols\"]){for(var a=0;a\\n');e.push(' \\n');e.push(\" \\n\");++t}}});var a=0;r.SheetNames.map(function(e){return r.Sheets[e]}).forEach(function(r){if(!r)return;if(r[\"!rows\"]){for(var t=0;t\\n');e.push(' \\n');e.push(\" \\n\");++a}}});e.push(' \\n');e.push(' \\n');e.push(\" \\n\");e.push(' \\n');e.push(\" \\n\")};return function i(e,r){var t=[Te];var i=or({\"xmlns:office\":\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\"xmlns:table\":\"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\"xmlns:style\":\"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\"xmlns:text\":\"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\"xmlns:draw\":\"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\"xmlns:fo\":\"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"xmlns:dc\":\"http://purl.org/dc/elements/1.1/\",\"xmlns:meta\":\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\"xmlns:number\":\"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\"xmlns:presentation\":\"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\"xmlns:svg\":\"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\"xmlns:chart\":\"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\"xmlns:dr3d\":\"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\"xmlns:math\":\"http://www.w3.org/1998/Math/MathML\",\"xmlns:form\":\"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\"xmlns:script\":\"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\"xmlns:ooo\":\"http://openoffice.org/2004/office\",\"xmlns:ooow\":\"http://openoffice.org/2004/writer\",\"xmlns:oooc\":\"http://openoffice.org/2004/calc\",\"xmlns:dom\":\"http://www.w3.org/2001/xml-events\",\"xmlns:xforms\":\"http://www.w3.org/2002/xforms\",\"xmlns:xsd\":\"http://www.w3.org/2001/XMLSchema\",\"xmlns:xsi\":\"http://www.w3.org/2001/XMLSchema-instance\",\"xmlns:sheet\":\"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\"xmlns:rpt\":\"http://openoffice.org/2005/report\",\"xmlns:of\":\"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\"xmlns:xhtml\":\"http://www.w3.org/1999/xhtml\",\"xmlns:grddl\":\"http://www.w3.org/2003/g/data-view#\",\"xmlns:tableooo\":\"http://openoffice.org/2009/table\",\"xmlns:drawooo\":\"http://openoffice.org/2010/draw\",\"xmlns:calcext\":\"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\"xmlns:loext\":\"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\"xmlns:field\":\"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\"xmlns:formx\":\"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\"xmlns:css3t\":\"http://www.w3.org/TR/css3-text/\",\"office:version\":\"1.2\"});var s=or({\"xmlns:config\":\"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\"office:mimetype\":\"application/vnd.oasis.opendocument.spreadsheet\"});if(r.bookType==\"fods\"){t.push(\"\\n\");t.push(write_meta_ods().replace(/office:document-meta/g,\"office:meta\"))}else t.push(\"\\n\");n(t,e);t.push(\" \\n\");t.push(\" \\n\");for(var l=0;l!=e.SheetNames.length;++l)t.push(a(e.Sheets[e.SheetNames[l]],e,l,r));t.push(\" \\n\");t.push(\" \\n\");if(r.bookType==\"fods\")t.push(\"\");else t.push(\"\");return t.join(\"\")}}();function Xs(e,r){if(r.bookType==\"fods\")return Hs(e,r);var t=Ae();var a=\"\";var n=[];var i=[];a=\"mimetype\";_e(t,a,\"application/vnd.oasis.opendocument.spreadsheet\");a=\"content.xml\";_e(t,a,Hs(e,r));n.push([a,\"text/xml\"]);i.push([a,\"ContentFile\"]);a=\"styles.xml\";_e(t,a,js(e,r));n.push([a,\"text/xml\"]);i.push([a,\"StylesFile\"]);a=\"meta.xml\";_e(t,a,Te+write_meta_ods());n.push([a,\"text/xml\"]);i.push([a,\"MetadataFile\"]);a=\"manifest.rdf\";_e(t,a,write_rdf(i));n.push([a,\"application/rdf+xml\"]);a=\"META-INF/manifest.xml\";_e(t,a,write_manifest(n));return t}function Vs(e,r){if(!r)return 0;var t=e.SheetNames.indexOf(r);if(t==-1)throw new Error(\"Sheet not found: \"+r);return t}function Gs(e){return function r(t,a){var n=Vs(t,a.sheet);return e.from_sheet(t.Sheets[t.SheetNames[n]],a,t)}}var Ys=Gs(Rs);var Ks=Gs({from_sheet:Bl});var Js=Gs(typeof Aa!==\"undefined\"?Aa:{});var qs=Gs(typeof Ea!==\"undefined\"?Ea:{});var Zs=Gs(typeof Ta!==\"undefined\"?Ta:{});var Qs=Gs(typeof RTF!==\"undefined\"?RTF:{});var el=Gs({from_sheet:zl});var rl=Gs(typeof Ca!==\"undefined\"?Ca:{});var tl=Gs(typeof Fa!==\"undefined\"?Fa:{});var al=Gs(typeof WK_!==\"undefined\"?{from_sheet:WK_.sheet_to_wk1}:{});function nl(e){return function r(t){for(var a=0;a!=e.length;++a){var n=e[a];if(t[n[0]]===undefined)t[n[0]]=n[1];if(n[2]===\"n\")t[n[0]]=Number(t[n[0]])}}}var il=function(e){nl([[\"cellNF\",false],[\"cellHTML\",true],[\"cellFormula\",true],[\"cellStyles\",false],[\"cellText\",true],[\"cellDates\",false],[\"sheetStubs\",false],[\"sheetRows\",0,\"n\"],[\"bookDeps\",false],[\"bookSheets\",false],[\"bookProps\",false],[\"bookFiles\",false],[\"bookVBA\",false],[\"password\",\"\"],[\"WTF\",false]])(e)};var sl=nl([[\"cellDates\",false],[\"bookSST\",false],[\"bookType\",\"xlsx\"],[\"compression\",false],[\"WTF\",false]]);function ll(e){if(ta.WS.indexOf(e)>-1)return\"sheet\";if(ta.CS&&e==ta.CS)return\"chart\";if(ta.DS&&e==ta.DS)return\"dialog\";if(ta.MS&&e==ta.MS)return\"macro\";return e&&e.length?e:\"sheet\"}function ol(e,r){if(!e)return 0;try{e=r.map(function a(r){if(!r.id)r.id=r.strRelID;return[r.name,e[\"!id\"][r.id].Target,ll(e[\"!id\"][r.id].Type)]})}catch(t){return null}return!e||e.length===0?null:e}function cl(e,r,t,a,n,i,s,l,o,c,f,u){try{i[a]=na(xe(e,t,true),r);var h=ye(e,r);var d;switch(l){case\"sheet\":d=bs(h,r,n,o,i[a],c,f,u);break;case\"chart\":d=ws(h,r,n,o,i[a],c,f,u);if(!d||!d[\"!drawel\"])break;var p=Fe(d[\"!drawel\"].Target,r);var m=aa(p);var v=In(xe(e,p,true),na(xe(e,m,true),p));var g=Fe(v,p);var b=aa(g);d=Yi(xe(e,g,true),g,o,na(xe(e,b,true),g),c,d);break;case\"macro\":d=ks(h,r,n,o,i[a],c,f,u);break;case\"dialog\":d=ys(h,r,n,o,i[a],c,f,u);break;default:throw new Error(\"Unrecognized sheet type \"+l);}s[a]=d;var w=[];if(i&&i[a])Y(i[a]).forEach(function(t){if(i[a][t].Type==ta.CMNT){var n=Fe(i[a][t].Target,r);w=Cs(ye(e,n,true),n,o);if(!w||!w.length)return;zn(d,w)}})}catch(k){if(o.WTF)throw k}}function fl(e){return e.charAt(0)==\"/\"?e.slice(1):e}function ul(e,r){R(N);r=r||{};il(r);if(we(e,\"META-INF/manifest.xml\"))return $s(e,r);if(we(e,\"objectdata.xml\"))return $s(e,r);if(we(e,\"Index/Document.iwa\"))throw new Error(\"Unsupported NUMBERS file\");if(!we(e,\"[Content_Types].xml\")){if(we(e,\"index.xml.gz\"))throw new Error(\"Unsupported NUMBERS 08 file\");if(we(e,\"index.xml\"))throw new Error(\"Unsupported NUMBERS 09 file\");throw new Error(\"Unsupported ZIP file\")}var t=Se(e);var a=Zt(xe(e,\"[Content_Types].xml\"));var n=false;var i,s;if(a.workbooks.length===0){s=\"xl/workbook.xml\";if(ye(e,s,true))a.workbooks.push(s)}if(a.workbooks.length===0){s=\"xl/workbook.bin\";if(!ye(e,s,true))throw new Error(\"Could not find workbook\");a.workbooks.push(s);n=true}if(a.workbooks[0].slice(-3)==\"bin\")n=true;var l={};var o={};if(!r.bookSheets&&!r.bookProps){ni=[];if(a.sst)try{ni=_s(ye(e,fl(a.sst)),a.sst,r)}catch(c){if(r.WTF)throw c}if(r.cellStyles&&a.themes.length)l=Ss(xe(e,a.themes[0].replace(/^\\//,\"\"),true)||\"\",a.themes[0],r);if(a.style)o=xs(ye(e,fl(a.style)),a.style,l,r)}a.links.map(function(t){try{var a=na(xe(e,aa(fl(t))),t);return Es(ye(e,fl(t)),a,t,r)}catch(n){}});var f=gs(ye(e,fl(a.workbooks[0])),a.workbooks[0],r);var u={},h=\"\";if(a.coreprops.length){h=ye(e,fl(a.coreprops[0]),true);if(h)u=ua(h);if(a.extprops.length!==0){h=ye(e,fl(a.extprops[0]),true);if(h)ba(h,u,r)}}var d={};if(!r.bookSheets||r.bookProps){if(a.custprops.length!==0){h=xe(e,fl(a.custprops[0]),true);if(h)d=xa(h,r)}}var p={};if(r.bookSheets||r.bookProps){if(f.Sheets)i=f.Sheets.map(function O(e){return e.name});else if(u.Worksheets&&u.SheetNames.length>0)i=u.SheetNames;if(r.bookProps){p.Props=u;p.Custprops=d}if(r.bookSheets&&typeof i!==\"undefined\")p.SheetNames=i;if(r.bookSheets?p.SheetNames:r.bookProps)return p}i={};var m={};if(r.bookDeps&&a.calcchain)m=As(ye(e,fl(a.calcchain)),a.calcchain,r);var v=0;var g={};var b,w;{var k=f.Sheets;u.Worksheets=k.length;u.SheetNames=[];for(var y=0;y!=k.length;++y){u.SheetNames[y]=k[y].name}}var x=n?\"bin\":\"xml\";var S=a.workbooks[0].lastIndexOf(\"/\");var _=(a.workbooks[0].slice(0,S+1)+\"_rels/\"+a.workbooks[0].slice(S+1)+\".rels\").replace(/^\\//,\"\");if(!we(e,_))_=\"xl/_rels/workbook.\"+x+\".rels\";var C=na(xe(e,_,true),_);if(C)C=ol(C,f.Sheets);var A=ye(e,\"xl/worksheets/sheet.xml\",true)?1:0;e:for(v=0;v!=u.Worksheets;++v){var E=\"sheet\";if(C&&C[v]){b=\"xl/\"+C[v][1].replace(/[\\/]?xl\\//,\"\");if(!we(e,b))b=C[v][1];if(!we(e,b))b=_.replace(/_rels\\/.*$/,\"\")+C[v][1];E=C[v][2]}else{b=\"xl/worksheets/sheet\"+(v+1-A)+\".\"+x;b=b.replace(/sheet0\\./,\"sheet.\")}w=b.replace(/^(.*)(\\/)([^\\/]*)$/,\"$1/_rels/$3.rels\");if(r&&r.sheets!=null)switch(typeof r.sheets){case\"number\":if(v!=r.sheets)continue e;break;case\"string\":if(u.SheetNames[v].toLowerCase()!=r.sheets.toLowerCase())continue e;break;default:if(Array.isArray&&Array.isArray(r.sheets)){var F=false;for(var T=0;T!=r.sheets.length;++T){if(typeof r.sheets[T]==\"number\"&&r.sheets[T]==v)F=1;if(typeof r.sheets[T]==\"string\"&&r.sheets[T].toLowerCase()==u.SheetNames[v].toLowerCase())F=1}if(!F)continue e};}cl(e,b,w,u.SheetNames[v],v,g,i,E,r,f,l,o)}p={Directory:a,Workbook:f,Props:u,Custprops:d,Deps:m,Sheets:i,SheetNames:u.SheetNames,Strings:ni,Styles:o,Themes:l,SSF:N.get_table()};if(r&&r.bookFiles){if(e.files){p.keys=t;p.files=e.files}else{p.keys=[];p.files={};e.FullPaths.forEach(function(r,t){r=r.replace(/^Root Entry[\\/]/,\"\");p.keys.push(r);p.files[r]=e.FileIndex[t]})}}if(r&&r.bookVBA){if(a.vba.length>0)p.vbaraw=ye(e,fl(a.vba[0]),true);else if(a.defaults&&a.defaults.bin===jn)p.vbaraw=ye(e,\"xl/vbaProject.bin\",true)}return p}function hl(e,r){var t=r||{};var a=\"Workbook\",n=j.find(e,a);try{a=\"/!DataSpaces/Version\";n=j.find(e,a);if(!n||!n.content)throw new Error(\"ECMA-376 Encrypted file missing \"+a);parse_DataSpaceVersionInfo(n.content);a=\"/!DataSpaces/DataSpaceMap\";n=j.find(e,a);if(!n||!n.content)throw new Error(\"ECMA-376 Encrypted file missing \"+a);var i=parse_DataSpaceMap(n.content);if(i.length!==1||i[0].comps.length!==1||i[0].comps[0].t!==0||i[0].name!==\"StrongEncryptionDataSpace\"||i[0].comps[0].v!==\"EncryptedPackage\")throw new Error(\"ECMA-376 Encrypted file bad \"+a);a=\"/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace\";n=j.find(e,a);if(!n||!n.content)throw new Error(\"ECMA-376 Encrypted file missing \"+a);var s=parse_DataSpaceDefinition(n.content);if(s.length!=1||s[0]!=\"StrongEncryptionTransform\")throw new Error(\"ECMA-376 Encrypted file bad \"+a);a=\"/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary\";n=j.find(e,a);if(!n||!n.content)throw new Error(\"ECMA-376 Encrypted file missing \"+a);parse_Primary(n.content)}catch(l){}a=\"/EncryptionInfo\";n=j.find(e,a);if(!n||!n.content)throw new Error(\"ECMA-376 Encrypted file missing \"+a);var o=parse_EncryptionInfo(n.content);a=\"/EncryptedPackage\";n=j.find(e,a);if(!n||!n.content)throw new Error(\"ECMA-376 Encrypted file missing \"+a);if(o[0]==4&&typeof decrypt_agile!==\"undefined\")return decrypt_agile(o[1],n.content,t.password||\"\",t);if(o[0]==2&&typeof decrypt_std76!==\"undefined\")return decrypt_std76(o[1],n.content,t.password||\"\",t);throw new Error(\"File is password-protected\")}function dl(e,r){Ln=1024;if(r.bookType==\"ods\")return Xs(e,r);if(e&&!e.SSF){e.SSF=N.get_table()}if(e&&e.SSF){R(N);N.load_table(e.SSF);r.revssf=q(e.SSF);r.revssf[e.SSF[65535]]=0;r.ssf=e.SSF}r.rels={};r.wbrels={};r.Strings=[];r.Strings.Count=0;r.Strings.Unique=0;if(si)r.revStrings=new Map;else{r.revStrings={};r.revStrings.foo=[];delete r.revStrings.foo}var t=r.bookType==\"xlsb\"?\"bin\":\"xml\";var a=Vn.indexOf(r.bookType)>-1;var n=qt();sl(r=r||{});var i=Ae();var s=\"\",l=0;r.cellXfs=[];fi(r.cellXfs,{},{revssf:{General:0}});if(!e.Props)e.Props={};s=\"docProps/core.xml\";_e(i,s,pa(e.Props,r));n.coreprops.push(s);oa(r.rels,2,s,ta.CORE_PROPS);s=\"docProps/app.xml\";if(e.Props&&e.Props.SheetNames){}else if(!e.Workbook||!e.Workbook.Sheets)e.Props.SheetNames=e.SheetNames;else{var o=[];for(var c=0;c0){s=\"docProps/custom.xml\";_e(i,s,_a(e.Custprops,r));n.custprops.push(s);oa(r.rels,4,s,ta.CUST_PROPS)}for(l=1;l<=e.SheetNames.length;++l){var f={\"!id\":{}};var u=e.Sheets[e.SheetNames[l-1]];var h=(u||{})[\"!type\"]||\"sheet\";switch(h){case\"chart\":;default:s=\"xl/worksheets/sheet\"+l+\".\"+t;_e(i,s,Ts(l-1,s,r,e,f));n.sheets.push(s);oa(r.wbrels,-1,\"worksheets/sheet\"+l+\".\"+t,ta.WS[0]);}if(u){var d=u[\"!comments\"];var p=false;if(d&&d.length>0){var m=\"xl/comments\"+l+\".\"+t;_e(i,m,Ns(d,m,r));n.comments.push(m);oa(f,-1,\"../comments\"+l+\".\"+t,ta.CMNT);p=true}if(u[\"!legacy\"]){if(p)_e(i,\"xl/drawings/vmlDrawing\"+l+\".vml\",Bn(l,u[\"!comments\"]))}delete u[\"!comments\"];delete u[\"!legacy\"]}if(f[\"!id\"].rId1)_e(i,aa(s),sa(f))}if(r.Strings!=null&&r.Strings.length>0){s=\"xl/sharedStrings.\"+t;_e(i,s,Ms(r.Strings,s,r));n.strs.push(s);oa(r.wbrels,-1,\"sharedStrings.\"+t,ta.SST)}s=\"xl/workbook.\"+t;_e(i,s,Fs(e,s,r));n.workbooks.push(s);oa(r.rels,1,s,ta.WB);s=\"xl/theme/theme1.xml\";_e(i,s,Nn(e.Themes,r));n.themes.push(s);oa(r.wbrels,-1,\"theme/theme1.xml\",ta.THEME);s=\"xl/styles.\"+t;_e(i,s,Ds(e,s,r));n.styles.push(s);oa(r.wbrels,-1,\"styles.\"+t,ta.STY);if(e.vbaraw&&a){s=\"xl/vbaProject.bin\";_e(i,s,e.vbaraw);n.vba.push(s);oa(r.wbrels,-1,\"vbaProject.bin\",ta.VBA)}_e(i,\"[Content_Types].xml\",ra(n,r));_e(i,\"_rels/.rels\",sa(r.rels));_e(i,\"xl/_rels/workbook.\"+t+\".rels\",sa(r.wbrels));delete r.revssf;delete r.ssf;return i}function pl(e,r){var t=\"\";switch((r||{}).type||\"base64\"){case\"buffer\":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];case\"base64\":t=b.decode(e.slice(0,12));break;case\"binary\":t=e;break;case\"array\":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];default:throw new Error(\"Unrecognized type \"+(r&&r.type||\"undefined\"));}return[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3),t.charCodeAt(4),t.charCodeAt(5),t.charCodeAt(6),t.charCodeAt(7)]}function ml(e,r){if(j.find(e,\"EncryptedPackage\"))return hl(e,r);return parse_xlscfb(e,r)}function vl(e,r){var t,a=e;var n=r||{};if(!n.type)n.type=w&&Buffer.isBuffer(e)?\"buffer\":\"base64\";t=Ee(a,n);return ul(t,n)}function gl(e,r){var t=0;e:while(t=2&&n[3]===0)return WK_.to_workbook(a,t);if(n[2]===0&&(n[3]===8||n[3]===9))return WK_.to_workbook(a,t)}break;case 3:;case 131:;case 139:;case 140:return Ca.to_workbook(a,t);case 123:if(n[1]===92&&n[2]===114&&n[3]===116)return RTF.to_workbook(a,t);break;case 10:;case 13:;case 32:return bl(a,t);case 137:if(n[1]===80&&n[2]===78&&n[3]===71)throw new Error(\"PNG Image File is not a spreadsheet\");break;}if(Ca.versions.indexOf(n[0])>-1&&n[2]<=12&&n[3]<=31)return Ca.to_workbook(a,t);return yl(e,a,t,i)}function Sl(e,r){var t=r||{};t.type=\"file\";return xl(e,t)}function _l(e,r){switch(r.type){case\"base64\":;case\"binary\":break;case\"buffer\":;case\"array\":r.type=\"\";break;case\"file\":return V(r.file,j.write(e,{type:w?\"buffer\":\"\"}));case\"string\":throw new Error(\"'string' output type invalid for '\"+r.bookType+\"' files\");default:throw new Error(\"Unrecognized type \"+r.type);}return j.write(e,r)}function Cl(e,r){var t=fe(r||{});var a=dl(e,t);var n={};if(t.compression)n.compression=\"DEFLATE\";if(t.password)n.type=w?\"nodebuffer\":\"string\";else switch(t.type){case\"base64\":n.type=\"base64\";break;case\"binary\":n.type=\"string\";break;case\"string\":throw new Error(\"'string' output type invalid for '\"+t.bookType+\"' files\");case\"buffer\":;case\"file\":n.type=w?\"nodebuffer\":\"string\";break;default:throw new Error(\"Unrecognized type \"+t.type);}var i=a.FullPaths?j.write(a,{fileType:\"zip\",type:{nodebuffer:\"buffer\",string:\"binary\"}[n.type]||n.type}):a.generate(n);if(t.password&&typeof encrypt_agile!==\"undefined\")return _l(encrypt_agile(i,t.password),t);if(t.type===\"file\")return V(t.file,i);return t.type==\"string\"?Ke(i):i}function Al(e,r){var t=r||{};var a=write_xlscfb(e,t);return _l(a,t)}function El(e,r,t){if(!t)t=\"\";var a=t+e;switch(r.type){case\"base64\":return b.encode(Je(a));case\"binary\":return Je(a);case\"string\":return e;case\"file\":return V(r.file,a,\"utf8\");case\"buffer\":{if(w)return k(a,\"utf8\");else return El(a,{type:\"binary\"}).split(\"\").map(function(e){return e.charCodeAt(0)})};}throw new Error(\"Unrecognized type \"+r.type)}function Fl(e,r){switch(r.type){case\"base64\":return b.encode(e);case\"binary\":return e;case\"string\":return e;case\"file\":return V(r.file,e,\"binary\");case\"buffer\":{if(w)return k(e,\"binary\");else return e.split(\"\").map(function(e){return e.charCodeAt(0)})};}throw new Error(\"Unrecognized type \"+r.type)}function Tl(e,r){switch(r.type){case\"string\":;case\"base64\":;case\"binary\":var t=\"\";for(var a=0;a0)n=0;var u=st(o.s.r);var h=[];var d=[];var p=0,m=0;var v=Array.isArray(e);var g=o.s.r,b=0,w=0;if(v&&!e[g])e[g]=[];for(b=o.s.c;b<=o.e.c;++b){h[b]=ft(b);t=v?e[g][b]:e[h[b]+u];switch(a){case 1:i[b]=b-o.s.c;break;case 2:i[b]=h[b];break;case 3:i[b]=c.header[b-o.s.c];break;default:if(t==null)t={w:\"__EMPTY\",t:\"s\"};l=s=kt(t,null,c);m=0;for(w=0;w=0)f='\"'+f.replace(Il,'\"\"')+'\"'}else f=\"\";c.push(f)}if(l.blankrows===false&&o)return null;return c.join(s)}function Bl(e,r){var t=[];var a=r==null?{}:r;if(e==null||e[\"!ref\"]==null)return\"\";var n=bt(e[\"!ref\"]);var i=a.FS!==undefined?a.FS:\",\",s=i.charCodeAt(0);var l=a.RS!==undefined?a.RS:\"\\n\",o=l.charCodeAt(0);var c=new RegExp((i==\"|\"?\"\\\\|\":i)+\"+$\");var f=\"\",u=[];a.dense=Array.isArray(e);var h=a.skipHidden&&e[\"!cols\"]||[];var d=a.skipHidden&&e[\"!rows\"]||[];for(var p=n.s.c;p<=n.e.c;++p)if(!(h[p]||{}).hidden)u[p]=ft(p);for(var m=n.s.r;m<=n.e.r;++m){if((d[m]||{}).hidden)continue;f=Ll(e,n,m,u,s,o,i,a);if(f==null){continue}if(a.strip)f=f.replace(c,\"\");t.push(f+l)}delete a.dense;return t.join(\"\")}function zl(e,r){if(!r)r={};r.FS=\"\\t\";r.RS=\"\\n\";var t=Bl(e,r);if(typeof cptable==\"undefined\"||r.type==\"string\")return t;var a=cptable.utils.encode(1200,t,\"str\");return String.fromCharCode(255)+String.fromCharCode(254)+a}function Wl(e){var r=\"\",t,a=\"\";if(e==null||e[\"!ref\"]==null)return[];var n=bt(e[\"!ref\"]),i=\"\",s=[],l;var o=[];var c=Array.isArray(e);for(l=n.s.c;l<=n.e.c;++l)s[l]=ft(l);for(var f=n.s.r;f<=n.e.r;++f){i=st(f);for(l=n.s.c;l<=n.e.c;++l){r=s[l]+i;t=c?(e[f]||[])[l]:e[r];a=\"\";if(t===undefined)continue;else if(t.F!=null){r=t.F;if(!t.f)continue;a=t.f;if(r.indexOf(\":\")==-1)r=r+\":\"+r}if(t.f!=null)a=t.f;else if(t.t==\"z\")continue;else if(t.t==\"n\"&&t.v!=null)a=\"\"+t.v;else if(t.t==\"b\")a=t.v?\"TRUE\":\"FALSE\";else if(t.w!==undefined)a=\"'\"+t.w;else if(t.v===undefined)continue;else if(t.t==\"s\")a=\"'\"+t.v;else a=\"\"+t.v;o[o.length]=r+\"=\"+a}}return o}function $l(e,r,t){var a=t||{};var n=+!a.skipHeader;var i=e||{};var s=0,l=0;if(i&&a.origin!=null){if(typeof a.origin==\"number\")s=a.origin;else{var o=typeof a.origin==\"string\"?pt(a.origin):a.origin;s=o.r;l=o.c}}var c;var f={s:{c:0,r:0},e:{c:l,r:s+r.length-1+n}};if(i[\"!ref\"]){var u=bt(i[\"!ref\"]);f.e.c=Math.max(f.e.c,u.e.c);f.e.r=Math.max(f.e.r,u.e.r);if(s==-1){s=u.e.r+1;f.e.r=s+r.length-1+n}}else{if(s==-1){s=0;f.e.r=r.length-1+n}}var h=a.header||[],d=0;r.forEach(function(e,r){Y(e).forEach(function(t){if((d=h.indexOf(t))==-1)h[d=h.length]=t;var o=e[t];var f=\"z\";var u=\"\";var p=mt({c:l+d,r:s+r+n});c=jl.sheet_get_cell(i,p);if(o&&typeof o===\"object\"&&!(o instanceof Date)){i[p]=o}else{if(typeof o==\"number\")f=\"n\";else if(typeof o==\"boolean\")f=\"b\";else if(typeof o==\"string\")f=\"s\";else if(o instanceof Date){f=\"d\";if(!a.cellDates){f=\"n\";o=ee(o)}u=a.dateNF||N._table[14]}else if(o===null&&a.nullError){f=\"e\";o=0}if(!c)i[p]=c={t:f,v:o};else{c.t=f;c.v=o;delete c.w;delete c.R;if(u)c.z=u}if(u)c.z=u}})});f.e.c=Math.max(f.e.c,l+h.length-1);var p=st(s);if(n)for(d=0;d=0&&e.SheetNames.length>r)return r;throw new Error(\"Cannot find sheet # \"+r)}else if(typeof r==\"string\"){var t=e.SheetNames.indexOf(r);if(t>-1)return t;throw new Error(\"Cannot find sheet name |\"+r+\"|\")}else throw new Error(\"Cannot find sheet |\"+r+\"|\")}e.book_new=function(){return{SheetNames:[],Sheets:{}}};e.book_append_sheet=function(e,r,t){if(!t)for(var a=1;a<=65535;++a,t=undefined)if(e.SheetNames.indexOf(t=\"Sheet\"+a)==-1)break;if(!t||e.SheetNames.length>=65535)throw new Error(\"Too many worksheets\");fs(t);if(e.SheetNames.indexOf(t)>=0)throw new Error(\"Worksheet with name |\"+t+\"| already exists!\");e.SheetNames.push(t);e.Sheets[t]=r};e.book_set_sheet_visibility=function(e,r,a){t(e,\"Workbook\",{});t(e.Workbook,\"Sheets\",[]);var i=n(e,r);t(e.Workbook.Sheets,i,{});switch(a){case 0:;case 1:;case 2:break;default:throw new Error(\"Bad sheet visibility setting \"+a);}e.Workbook.Sheets[i].Hidden=a};r([[\"SHEET_VISIBLE\",0],[\"SHEET_HIDDEN\",1],[\"SHEET_VERY_HIDDEN\",2]]);e.cell_set_number_format=function(e,r){e.z=r;return e};e.cell_set_hyperlink=function(e,r,t){if(!r){delete e.l}else{e.l={Target:r};if(t)e.l.Tooltip=t}return e};e.cell_set_internal_link=function(r,t,a){return e.cell_set_hyperlink(r,\"#\"+t,a)};e.cell_add_comment=function(e,r,t){if(!e.c)e.c=[];e.c.push({t:r,a:t||\"SheetJS\"})};e.sheet_set_array_formula=function(e,r,t){var n=typeof r!=\"string\"?r:bt(r);var i=typeof r==\"string\"?r:gt(r);for(var s=n.s.r;s<=n.e.r;++s)for(var l=n.s.c;l<=n.e.c;++l){var o=a(e,s,l);o.t=\"n\";o.F=i;delete o.v;if(s==n.s.r&&l==n.s.c)o.f=t}return e};return e})(jl);if(typeof parse_xlscfb!==\"undefined\")e.parse_xlscfb=parse_xlscfb;e.parse_zip=ul;e.read=xl;e.readFile=Sl;e.readFileSync=Sl;e.write=Ol;e.writeFile=Ml;e.writeFileSync=Ml;e.writeFileAsync=Nl;e.utils=jl;e.SSF=N;if(typeof j!==\"undefined\")e.CFB=j}if(typeof exports!==\"undefined\")make_xlsx_lib(exports);else if(typeof module!==\"undefined\"&&module.exports)make_xlsx_lib(module.exports);else if(typeof define===\"function\"&&define.amd)define(\"xlsx\",function(){if(!XLSX.version)make_xlsx_lib(XLSX);return XLSX});else make_xlsx_lib(XLSX);if(typeof window!==\"undefined\"&&!window.XLSX)try{window.XLSX=XLSX}catch(e){}var XLS=XLSX,ODS=XLSX;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalGraficaUsuarios.vue?vue&type=style&index=0&id=0f55b240&prod&scoped=true&lang=css&\"","\"use strict\";exports.__esModule=true;exports.utils=exports.getWorksheetColumnWidths=exports.getJsonSheetRow=exports.getContentProperty=void 0;var xlsx_mini_min_1=require(\"xlsx/dist/xlsx.mini.min\");exports.utils=xlsx_mini_min_1.utils;var getContentProperty=function(content,property){var accessContentProperties=function(content,properties){var value=content[properties[0]];if(properties.length===1){return value!==null&&value!==void 0?value:\"\"}if(value===undefined||typeof value===\"string\"||typeof value===\"boolean\"||typeof value===\"number\"||value instanceof Date){return\"\"}return accessContentProperties(value,properties.slice(1))};var properties=property.split(\".\");return accessContentProperties(content,properties)};exports.getContentProperty=getContentProperty;var getJsonSheetRow=function(content,columns){var jsonSheetRow={};columns.forEach(function(column){if(typeof column.value===\"function\"){jsonSheetRow[column.label]=column.value(content)}else{jsonSheetRow[column.label]=getContentProperty(content,column.value)}});return jsonSheetRow};exports.getJsonSheetRow=getJsonSheetRow;var applyColumnFormat=function(worksheet,columnIds,columnFormats){var _a;for(var i=0;i0){jsonSheetRows=jsonSheet.content.map(function(contentItem){return getJsonSheetRow(contentItem,jsonSheet.columns)})}else{jsonSheetRows=jsonSheet.columns.map(function(column){var _a;return _a={},_a[column.label]=\"\",_a})}var worksheet=xlsx_mini_min_1.utils.json_to_sheet(jsonSheetRows);var worksheetColumnIds=getWorksheetColumnIds(worksheet);var worksheetColumnFormats=jsonSheet.columns.map(function(jsonSheetColumn){var _a;return(_a=jsonSheetColumn.format)!==null&&_a!==void 0?_a:null});applyColumnFormat(worksheet,worksheetColumnIds,worksheetColumnFormats);worksheet[\"!cols\"]=getWorksheetColumnWidths(worksheet,settings.extraLength);return worksheet};var writeWorkbook=function(workbook,settings){var _a,_b;if(settings===void 0){settings={}}var filename=\"\".concat((_a=settings.fileName)!==null&&_a!==void 0?_a:\"Spreadsheet\",\".xlsx\");var writeOptions=(_b=settings.writeOptions)!==null&&_b!==void 0?_b:{};return writeOptions.type===\"buffer\"?(0,xlsx_mini_min_1.write)(workbook,writeOptions):(0,xlsx_mini_min_1.writeFile)(workbook,filename,writeOptions)};var xlsx=function(jsonSheets,settings,workbookCallback){if(settings===void 0){settings={}}if(workbookCallback===void 0){workbookCallback=function(){}}if(jsonSheets.length===0)return;var workbook=xlsx_mini_min_1.utils.book_new();jsonSheets.forEach(function(actualSheet,actualIndex){var _a;var worksheet=getWorksheet(actualSheet,settings);var worksheetName=(_a=actualSheet.sheet)!==null&&_a!==void 0?_a:\"Sheet \".concat(actualIndex+1);xlsx_mini_min_1.utils.book_append_sheet(workbook,worksheet,worksheetName)});workbookCallback(workbook);return writeWorkbook(workbook,settings)};exports[\"default\"]=xlsx;module.exports=xlsx;module.exports.getContentProperty=getContentProperty;module.exports.getJsonSheetRow=getJsonSheetRow;module.exports.getWorksheetColumnWidths=getWorksheetColumnWidths;module.exports.utils=xlsx_mini_min_1.utils;","// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Routable from '../../mixins/routable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { keyCodes } from './../../util/helpers'\nimport mixins from '../../util/mixins'\nimport { ExtractVue } from './../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\n// Components\nimport VTabsBar from '../VTabs/VTabsBar'\n\nconst baseMixins = mixins(\n Routable,\n // Must be after routable\n // to overwrite activeClass\n GroupableFactory('tabsBar'),\n Themeable\n)\n\ntype VTabBarInstance = InstanceType\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n tabsBar: VTabBarInstance\n}\n\nexport default baseMixins.extend().extend(\n /* @vue/component */\n).extend({\n name: 'v-tab',\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n },\n\n data: () => ({\n proxyClass: 'v-tab--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-tab': true,\n ...Routable.options.computed.classes.call(this),\n 'v-tab--disabled': this.disabled,\n ...this.groupClasses,\n }\n },\n value (): any {\n let to = this.to || this.href\n\n if (to == null) return to\n\n if (this.$router &&\n this.to === Object(this.to)\n ) {\n const resolve = this.$router.resolve(\n this.to,\n this.$route,\n this.append\n )\n\n to = resolve.href\n }\n\n return to.replace('#', '')\n },\n },\n\n methods: {\n click (e: KeyboardEvent | MouseEvent): void {\n // Prevent keyboard actions\n // from children elements\n // within disabled tabs\n if (this.disabled) {\n e.preventDefault()\n return\n }\n\n // If user provides an\n // actual link, do not\n // prevent default\n if (this.href &&\n this.href.indexOf('#') > -1\n ) e.preventDefault()\n\n if (e.detail) this.$el.blur()\n\n this.$emit('click', e)\n\n this.to || this.toggle()\n },\n toggle () {\n // VItemGroup treats a change event as a click\n if (!this.isActive || (!this.tabsBar.mandatory && !this.to)) {\n this.$emit('change')\n }\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n 'aria-selected': String(this.isActive),\n role: 'tab',\n tabindex: this.disabled ? -1 : 0,\n }\n data.on = {\n ...data.on,\n keydown: (e: KeyboardEvent) => {\n if (e.keyCode === keyCodes.enter) this.click(e)\n\n this.$emit('keydown', e)\n },\n }\n\n return h(tag, data, this.$slots.default)\n },\n})\n","// Components\nimport VWindow from './VWindow'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n GroupableFactory('windowGroup', 'v-window-item', 'v-window')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n windowGroup: InstanceType\n}\n\nexport default baseMixins.extend().extend(\n /* @vue/component */\n).extend({\n name: 'v-window-item',\n\n directives: {\n Touch,\n },\n\n props: {\n disabled: Boolean,\n reverseTransition: {\n type: [Boolean, String],\n default: undefined,\n },\n transition: {\n type: [Boolean, String],\n default: undefined,\n },\n value: {\n required: false,\n },\n },\n\n data () {\n return {\n isActive: false,\n inTransition: false,\n }\n },\n\n computed: {\n classes (): object {\n return this.groupClasses\n },\n computedTransition (): string | boolean {\n if (!this.windowGroup.internalReverse) {\n return typeof this.transition !== 'undefined'\n ? this.transition || ''\n : this.windowGroup.computedTransition\n }\n\n return typeof this.reverseTransition !== 'undefined'\n ? this.reverseTransition || ''\n : this.windowGroup.computedTransition\n },\n },\n\n methods: {\n genDefaultSlot () {\n return this.$slots.default\n },\n genWindowItem () {\n return this.$createElement('div', {\n staticClass: 'v-window-item',\n class: this.classes,\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n on: this.$listeners,\n }, this.genDefaultSlot())\n },\n onAfterTransition () {\n if (!this.inTransition) {\n return\n }\n\n // Finalize transition state.\n this.inTransition = false\n if (this.windowGroup.transitionCount > 0) {\n this.windowGroup.transitionCount--\n\n // Remove container height if we are out of transition.\n if (this.windowGroup.transitionCount === 0) {\n this.windowGroup.transitionHeight = undefined\n }\n }\n },\n onBeforeTransition () {\n if (this.inTransition) {\n return\n }\n\n // Initialize transition state here.\n this.inTransition = true\n if (this.windowGroup.transitionCount === 0) {\n // Set initial height for height transition.\n this.windowGroup.transitionHeight = convertToUnit(this.windowGroup.$el.clientHeight)\n }\n this.windowGroup.transitionCount++\n },\n onTransitionCancelled () {\n this.onAfterTransition() // This should have the same path as normal transition end.\n },\n onEnter (el: HTMLElement) {\n if (!this.inTransition) {\n return\n }\n\n this.$nextTick(() => {\n // Do not set height if no transition or cancelled.\n if (!this.computedTransition || !this.inTransition) {\n return\n }\n\n // Set transition target height.\n this.windowGroup.transitionHeight = convertToUnit(el.clientHeight)\n })\n },\n },\n\n render (h): VNode {\n return h('transition', {\n props: {\n name: this.computedTransition,\n },\n on: {\n // Handlers for enter windows.\n beforeEnter: this.onBeforeTransition,\n afterEnter: this.onAfterTransition,\n enterCancelled: this.onTransitionCancelled,\n\n // Handlers for leave windows.\n beforeLeave: this.onBeforeTransition,\n afterLeave: this.onAfterTransition,\n leaveCancelled: this.onTransitionCancelled,\n\n // Enter handler for height transition.\n enter: this.onEnter,\n },\n }, this.showLazyContent(() => [this.genWindowItem()]))\n },\n})\n","// Extensions\nimport VWindowItem from '../VWindow/VWindowItem'\n\n/* @vue/component */\nexport default VWindowItem.extend({\n name: 'v-tab-item',\n\n props: {\n id: String,\n },\n\n methods: {\n genWindowItem () {\n const item = VWindowItem.options.methods.genWindowItem.call(this)\n\n item.data!.domProps = item.data!.domProps || {}\n item.data!.domProps.id = this.id || this.value\n\n return item\n },\n },\n})\n","// Extensions\nimport { BaseSlideGroup } from '../VSlideGroup/VSlideGroup'\n\n// Components\nimport VTab from './VTab'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { Route } from 'vue-router'\nimport { VNode } from 'vue'\n\ntype VTabInstance = InstanceType\n\nexport default mixins(\n BaseSlideGroup,\n SSRBootable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-tabs-bar',\n\n provide () {\n return {\n tabsBar: this,\n }\n },\n\n computed: {\n classes () {\n return {\n ...BaseSlideGroup.options.computed.classes.call(this),\n 'v-tabs-bar': true,\n 'v-tabs-bar--is-mobile': this.isMobile,\n // TODO: Remove this and move to v-slide-group\n 'v-tabs-bar--show-arrows': this.showArrows,\n ...this.themeClasses,\n }\n },\n },\n\n watch: {\n items: 'callSlider',\n internalValue: 'callSlider',\n $route: 'onRouteChange',\n },\n\n methods: {\n callSlider () {\n if (!this.isBooted) return\n\n this.$emit('call:slider')\n },\n genContent () {\n const render = BaseSlideGroup.options.methods.genContent.call(this)\n\n render.data = render.data || {}\n render.data.staticClass += ' v-tabs-bar__content'\n\n return render\n },\n onRouteChange (val: Route, oldVal: Route) {\n /* istanbul ignore next */\n if (this.mandatory) return\n\n const items = this.items as unknown as VTabInstance[]\n const newPath = val.path\n const oldPath = oldVal.path\n\n let hasNew = false\n let hasOld = false\n\n for (const item of items) {\n if (item.to === oldPath) hasOld = true\n else if (item.to === newPath) hasNew = true\n\n if (hasNew && hasOld) break\n }\n\n // If we have an old item and not a new one\n // it's assumed that the user navigated to\n // a path that is not present in the items\n if (!hasNew && hasOld) this.internalValue = undefined\n },\n },\n\n render (h): VNode {\n const render = BaseSlideGroup.options.render.call(this, h)\n\n render.data!.attrs = {\n role: 'tablist',\n }\n\n return render\n },\n})\n","// Styles\nimport './VWindow.sass'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue/types/vnode'\nimport { PropType } from 'vue'\nimport { TouchHandlers } from 'vuetify/types'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-window',\n\n directives: { Touch },\n\n provide (): object {\n return {\n windowGroup: this,\n }\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-window-item--active',\n },\n continuous: Boolean,\n mandatory: {\n type: Boolean,\n default: true,\n },\n nextIcon: {\n type: [Boolean, String],\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String],\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: Boolean,\n showArrowsOnHover: Boolean,\n touch: Object as PropType,\n touchless: Boolean,\n value: {\n required: false,\n },\n vertical: Boolean,\n },\n\n data () {\n return {\n changedByDelimiters: false,\n internalHeight: undefined as undefined | string, // This can be fixed by child class.\n transitionHeight: undefined as undefined | string, // Intermediate height during transition.\n transitionCount: 0, // Number of windows in transition state.\n isBooted: false,\n isReverse: false,\n }\n },\n\n computed: {\n isActive (): boolean {\n return this.transitionCount > 0\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-window--show-arrows-on-hover': this.showArrowsOnHover,\n }\n },\n computedTransition (): string {\n if (!this.isBooted) return ''\n\n const axis = this.vertical ? 'y' : 'x'\n const reverse = this.internalReverse ? !this.isReverse : this.isReverse\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n },\n hasActiveItems (): boolean {\n return Boolean(\n this.items.find(item => !item.disabled)\n )\n },\n hasNext (): boolean {\n return this.continuous || this.internalIndex < this.items.length - 1\n },\n hasPrev (): boolean {\n return this.continuous || this.internalIndex > 0\n },\n internalIndex (): number {\n return this.items.findIndex((item, i) => {\n return this.internalValue === this.getValue(item, i)\n })\n },\n internalReverse (): boolean {\n return this.$vuetify.rtl ? !this.reverse : this.reverse\n },\n },\n\n watch: {\n internalIndex (val, oldVal) {\n this.isReverse = this.updateReverse(val, oldVal)\n },\n },\n\n mounted () {\n window.requestAnimationFrame(() => (this.isBooted = true))\n },\n\n methods: {\n genDefaultSlot () {\n return this.$slots.default\n },\n genContainer (): VNode {\n const children = [this.genDefaultSlot()]\n\n if (this.showArrows) {\n children.push(this.genControlIcons())\n }\n\n return this.$createElement('div', {\n staticClass: 'v-window__container',\n class: {\n 'v-window__container--is-active': this.isActive,\n },\n style: {\n height: this.internalHeight || this.transitionHeight,\n },\n }, children)\n },\n genIcon (\n direction: 'prev' | 'next',\n icon: string,\n click: () => void\n ) {\n const on = {\n click: (e: Event) => {\n e.stopPropagation()\n this.changedByDelimiters = true\n click()\n },\n }\n const attrs = {\n 'aria-label': this.$vuetify.lang.t(`$vuetify.carousel.${direction}`),\n }\n const children = this.$scopedSlots[direction]?.({\n on,\n attrs,\n }) ?? [this.$createElement(VBtn, {\n props: { icon: true },\n attrs,\n on,\n }, [\n this.$createElement(VIcon, {\n props: { large: true },\n }, icon),\n ])]\n\n return this.$createElement('div', {\n staticClass: `v-window__${direction}`,\n }, children)\n },\n genControlIcons () {\n const icons = []\n\n const prevIcon = this.$vuetify.rtl\n ? this.nextIcon\n : this.prevIcon\n\n /* istanbul ignore else */\n if (\n this.hasPrev &&\n prevIcon &&\n typeof prevIcon === 'string'\n ) {\n const icon = this.genIcon('prev', prevIcon, this.prev)\n icon && icons.push(icon)\n }\n\n const nextIcon = this.$vuetify.rtl\n ? this.prevIcon\n : this.nextIcon\n\n /* istanbul ignore else */\n if (\n this.hasNext &&\n nextIcon &&\n typeof nextIcon === 'string'\n ) {\n const icon = this.genIcon('next', nextIcon, this.next)\n icon && icons.push(icon)\n }\n\n return icons\n },\n getNextIndex (index: number): number {\n const nextIndex = (index + 1) % this.items.length\n const item = this.items[nextIndex]\n\n if (item.disabled) return this.getNextIndex(nextIndex)\n\n return nextIndex\n },\n getPrevIndex (index: number): number {\n const prevIndex = (index + this.items.length - 1) % this.items.length\n const item = this.items[prevIndex]\n\n if (item.disabled) return this.getPrevIndex(prevIndex)\n\n return prevIndex\n },\n next () {\n /* istanbul ignore if */\n if (!this.hasActiveItems || !this.hasNext) return\n\n const nextIndex = this.getNextIndex(this.internalIndex)\n const item = this.items[nextIndex]\n\n this.internalValue = this.getValue(item, nextIndex)\n },\n prev () {\n /* istanbul ignore if */\n if (!this.hasActiveItems || !this.hasPrev) return\n\n const lastIndex = this.getPrevIndex(this.internalIndex)\n const item = this.items[lastIndex]\n\n this.internalValue = this.getValue(item, lastIndex)\n },\n updateReverse (val: number, oldVal: number) {\n const itemsLength = this.items.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) return val < oldVal\n\n if (val === lastIndex && oldVal === 0) {\n return true\n } else if (val === 0 && oldVal === lastIndex) {\n return false\n } else {\n return val < oldVal\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-window',\n class: this.classes,\n directives: [] as VNodeDirective[],\n }\n\n if (!this.touchless) {\n const value = this.touch || {\n left: () => {\n this.$vuetify.rtl ? this.prev() : this.next()\n },\n right: () => {\n this.$vuetify.rtl ? this.next() : this.prev()\n },\n end: (e: TouchEvent) => {\n e.stopPropagation()\n },\n start: (e: TouchEvent) => {\n e.stopPropagation()\n },\n }\n\n data.directives.push({\n name: 'touch',\n value,\n })\n }\n\n return h('div', data, [this.genContainer()])\n },\n})\n","// Extensions\nimport VWindow from '../VWindow/VWindow'\n\n// Types & Components\nimport { BaseItemGroup, GroupableInstance } from './../VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default VWindow.extend({\n name: 'v-tabs-items',\n\n props: {\n mandatory: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VWindow.options.computed.classes.call(this),\n 'v-tabs-items': true,\n }\n },\n isDark (): boolean {\n return this.rootIsDark\n },\n },\n\n methods: {\n getValue (item: GroupableInstance, i: number) {\n return item.id || BaseItemGroup.options.methods.getValue.call(this, item, i)\n },\n },\n})\n","// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(Colorable).extend({\n name: 'v-tabs-slider',\n\n render (h): VNode {\n return h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-tabs-slider',\n }))\n },\n})\n","// Styles\nimport './VTabs.sass'\n\n// Components\nimport VTabsBar from './VTabsBar'\nimport VTabsItems from './VTabsItems'\nimport VTabsSlider from './VTabsSlider'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\nconst baseMixins = mixins(\n Colorable,\n Proxyable,\n Themeable\n)\n\ninterface options extends ExtractVue {\n $refs: {\n items: InstanceType\n }\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-tabs',\n\n directives: {\n Resize,\n },\n\n props: {\n activeClass: {\n type: String,\n default: '',\n },\n alignWithTitle: Boolean,\n backgroundColor: String,\n centerActive: Boolean,\n centered: Boolean,\n fixedTabs: Boolean,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined,\n },\n hideSlider: Boolean,\n iconsAndText: Boolean,\n mobileBreakpoint: [String, Number],\n nextIcon: {\n type: String,\n default: '$next',\n },\n optional: Boolean,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n right: Boolean,\n showArrows: [Boolean, String],\n sliderColor: String,\n sliderSize: {\n type: [Number, String],\n default: 2,\n },\n vertical: Boolean,\n },\n\n data () {\n return {\n resizeTimeout: 0,\n slider: {\n height: null as null | number,\n left: null as null | number,\n right: null as null | number,\n top: null as null | number,\n width: null as null | number,\n },\n transitionTime: 300,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-tabs--align-with-title': this.alignWithTitle,\n 'v-tabs--centered': this.centered,\n 'v-tabs--fixed-tabs': this.fixedTabs,\n 'v-tabs--grow': this.grow,\n 'v-tabs--icons-and-text': this.iconsAndText,\n 'v-tabs--right': this.right,\n 'v-tabs--vertical': this.vertical,\n ...this.themeClasses,\n }\n },\n isReversed (): boolean {\n return this.$vuetify.rtl && this.vertical\n },\n sliderStyles (): object {\n return {\n height: convertToUnit(this.slider.height),\n left: this.isReversed ? undefined : convertToUnit(this.slider.left),\n right: this.isReversed ? convertToUnit(this.slider.right) : undefined,\n top: this.vertical ? convertToUnit(this.slider.top) : undefined,\n transition: this.slider.left != null ? null : 'none',\n width: convertToUnit(this.slider.width),\n }\n },\n computedColor (): string {\n if (this.color) return this.color\n else if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n },\n\n watch: {\n alignWithTitle: 'callSlider',\n centered: 'callSlider',\n centerActive: 'callSlider',\n fixedTabs: 'callSlider',\n grow: 'callSlider',\n iconsAndText: 'callSlider',\n right: 'callSlider',\n showArrows: 'callSlider',\n vertical: 'callSlider',\n '$vuetify.application.left': 'onResize',\n '$vuetify.application.right': 'onResize',\n '$vuetify.rtl': 'onResize',\n },\n\n mounted () {\n if (typeof ResizeObserver !== 'undefined') {\n const obs = new ResizeObserver(() => {\n this.onResize()\n })\n obs.observe(this.$el)\n this.$on('hook:destroyed', () => {\n obs.disconnect()\n })\n }\n\n this.$nextTick(() => {\n window.setTimeout(this.callSlider, 30)\n })\n },\n\n methods: {\n callSlider () {\n if (\n this.hideSlider ||\n !this.$refs.items ||\n !this.$refs.items.selectedItems.length\n ) {\n this.slider.width = 0\n return false\n }\n\n this.$nextTick(() => {\n // Give screen time to paint\n const activeTab = this.$refs.items.selectedItems[0]\n /* istanbul ignore if */\n if (!activeTab || !activeTab.$el) {\n this.slider.width = 0\n this.slider.left = 0\n return\n }\n const el = activeTab.$el as HTMLElement\n\n this.slider = {\n height: !this.vertical ? Number(this.sliderSize) : el.scrollHeight,\n left: this.vertical ? 0 : el.offsetLeft,\n right: this.vertical ? 0 : el.offsetLeft + el.offsetWidth,\n top: el.offsetTop,\n width: this.vertical ? Number(this.sliderSize) : el.scrollWidth,\n }\n })\n\n return true\n },\n genBar (items: VNode[], slider: VNode | null) {\n const data = {\n style: {\n height: convertToUnit(this.height),\n },\n props: {\n activeClass: this.activeClass,\n centerActive: this.centerActive,\n dark: this.dark,\n light: this.light,\n mandatory: !this.optional,\n mobileBreakpoint: this.mobileBreakpoint,\n nextIcon: this.nextIcon,\n prevIcon: this.prevIcon,\n showArrows: this.showArrows,\n value: this.internalValue,\n },\n on: {\n 'call:slider': this.callSlider,\n change: (val: any) => {\n this.internalValue = val\n },\n },\n ref: 'items',\n }\n\n this.setTextColor(this.computedColor, data)\n this.setBackgroundColor(this.backgroundColor, data)\n\n return this.$createElement(VTabsBar, data, [\n this.genSlider(slider),\n items,\n ])\n },\n genItems (items: VNode | null, item: VNode[]) {\n // If user provides items\n // opt to use theirs\n if (items) return items\n\n // If no tabs are provided\n // render nothing\n if (!item.length) return null\n\n return this.$createElement(VTabsItems, {\n props: {\n value: this.internalValue,\n },\n on: {\n change: (val: any) => {\n this.internalValue = val\n },\n },\n }, item)\n },\n genSlider (slider: VNode | null) {\n if (this.hideSlider) return null\n\n if (!slider) {\n slider = this.$createElement(VTabsSlider, {\n props: { color: this.sliderColor },\n })\n }\n\n return this.$createElement('div', {\n staticClass: 'v-tabs-slider-wrapper',\n style: this.sliderStyles,\n }, [slider])\n },\n onResize () {\n if (this._isDestroyed) return\n\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.callSlider, 0)\n },\n parseNodes () {\n let items = null\n let slider = null\n const item = []\n const tab = []\n const slot = this.$slots.default || []\n const length = slot.length\n\n for (let i = 0; i < length; i++) {\n const vnode = slot[i]\n\n if (vnode.componentOptions) {\n switch (vnode.componentOptions.Ctor.options.name) {\n case 'v-tabs-slider': slider = vnode\n break\n case 'v-tabs-items': items = vnode\n break\n case 'v-tab-item': item.push(vnode)\n break\n // case 'v-tab' - intentionally omitted\n default: tab.push(vnode)\n }\n } else {\n tab.push(vnode)\n }\n }\n\n /**\n * tab: array of `v-tab`\n * slider: single `v-tabs-slider`\n * items: single `v-tabs-items`\n * item: array of `v-tab-item`\n */\n return { tab, slider, items, item }\n },\n },\n\n render (h): VNode {\n const { tab, slider, items, item } = this.parseNodes()\n\n return h('div', {\n staticClass: 'v-tabs',\n class: this.classes,\n directives: [{\n name: 'resize',\n modifiers: { quiet: true },\n value: this.onResize,\n }],\n }, [\n this.genBar(tab, slider),\n this.genItems(items, item),\n ])\n },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"px-3 mx-auto\",attrs:{\"align\":\"center\"}},[_c('v-col',[_c('v-card',[_c('v-toolbar',{attrs:{\"color\":\"cyan\",\"dark\":\"\",\"flat\":\"\"},scopedSlots:_vm._u([{key:\"extension\",fn:function(){return [_c('v-tabs',{attrs:{\"align-with-title\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider',{attrs:{\"color\":\"yellow\"}}),_vm._l((_vm.items),function(item){return _c('v-tab',{key:item},[_vm._v(\" Consolidado \")])})],2)]},proxy:true}])},[_c('v-toolbar-title',[_vm._v(\" #check-ins\")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\",\"title\":'ultima actualizacon ' + _vm.fechaUltimaActualizacion},on:{\"click\":_vm.fnRefreshReportes}},[_c('v-icon',[_vm._v(\"mdi-refresh\")])],1)],1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item){return _c('v-tab-item',{key:item},[_c('v-card',{attrs:{\"flat\":\"\"}},[(item == 'General')?_c('ReporteGeneral',{attrs:{\"prop_refresh_flag\":_vm.prop_refresh_flag}}):_vm._e()],1)],1)}),1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('GeneralParametros',{attrs:{\"consolidado_excel_detalle\":_vm.consolidado_excel_detalle,\"consolidado_excel_resumen_usuarios\":_vm.usuarios,\"consolidado_excel_resumen_divisiones\":_vm.divisiones,\"consolidado_excel_resumen_regiones\":_vm.regiones,\"consolidado_excel_resumen_sectores\":_vm.sectores,\"consolidado_excel_resumen_motivos\":_vm.consolidado_grafica_tipos_de_visita},on:{\"EmitMotivoDeVisitaId\":_vm.fnEmitMotivoDeVisitaId,\"EmitSelectedDate\":_vm.fnEmitSelectedDate,\"EmitSearchSupervisora\":_vm.fnEmitSearchSupervisora,\"EmitsearchAgenteDeComercio\":_vm.fnEmitsearchAgenteDeComercio,\"EmitSearchConsejera\":_vm.fnEmitSearchConsejera,\"EmitSearchSector\":_vm.fnEmitSearchSector,\"EmitSearchDivision\":_vm.fnEmitSearchDivision,\"EmitSearchRegion\":_vm.fnEmitSearchRegion,\"EmitSearchComentario\":_vm.fnEmitSearchComentario,\"EmitSearchProspecto\":_vm.fnEmitSearchProspecto,\"EmitSearchNombramiento\":_vm.fnEmitSearchNombramiento,\"EmitAplicarFiltros\":function($event){return _vm.main()},\"EmitReporteSeleccionado\":_vm.fnEmitReporteSeleccionado}}),_c('v-fab-transition',[_c('v-btn',{staticClass:\"mb-3 elevation-10\",attrs:{\"color\":\"pink\",\"dark\":\"\",\"fixed\":\"\",\"bottom\":\"\",\"right\":\"\",\"fab\":\"\"},on:{\"click\":function($event){_vm.grid = !_vm.grid}}},[(_vm.grid == true)?_c('v-icon',[_vm._v(\"mdi-view-grid\")]):_vm._e(),(_vm.grid == false)?_c('v-icon',[_vm._v(\"mdi-view-list\")]):_vm._e()],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":_vm.grid == true ? '6' : '12'}},[_c('GeneralGraficaUsuarios',{attrs:{\"prop_data\":_vm.usuarios}})],1),_c('v-col',{attrs:{\"cols\":_vm.grid == true ? '6' : '12'}},[_c('GeneralGraficaRegiones',{attrs:{\"prop_data\":_vm.regiones}})],1),_c('v-col',{attrs:{\"cols\":_vm.grid == true ? '6' : '12'}},[_c('GeneralGraficaSectores',{attrs:{\"prop_data\":_vm.sectores}})],1),_c('v-col',{attrs:{\"cols\":_vm.grid == true ? '6' : '12'}},[_c('GeneralGraficaDivisiones',{attrs:{\"prop_data\":_vm.divisiones}})],1),_c('v-col',{attrs:{\"cols\":_vm.grid == true ? '12' : '12'}},[_c('GeneralGraficaTiposDeVisita',{attrs:{\"prop_tipos_de_visitas_totales\":_vm.consolidado_grafica_tipos_de_visita}})],1),_c('v-col',{attrs:{\"cols\":_vm.grid == true ? '12' : '12'}},[_c('VisitasMapa',{attrs:{\"prop_markers\":_vm.consolidado_excel_detalle,\"prop_polyline_enable\":true}})],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',{staticClass:\"mx-auto\",attrs:{\"outlined\":\"\"}},[_c('v-card-title',[_c('v-row',{staticClass:\"ml-5\",attrs:{\"align-self\":\"start\"}},[_c('v-col',{attrs:{\"cols\":\"9\"}},[_vm._v(\" Parámetros de búsqueda \"),_c('v-icon'),_c('v-select',{attrs:{\"cache-items\":\"\",\"chips\":\"\",\"multiple\":\"\",\"deletable-chips\":\"\",\"items\":_vm.reporte_seleccionado_items,\"label\":\"Reportes\",\"return-object\":\"\"},scopedSlots:_vm._u([{key:\"item\",fn:function({ index, item }){return [_c('span',{staticClass:\"black--text\"},[_c('v-icon',[_vm._v(_vm._s(item.icon))]),_vm._v(\" \"+_vm._s(item.text))],1)]}}]),model:{value:(_vm.reporte_seleccionado),callback:function ($$v) {_vm.reporte_seleccionado=$$v},expression:\"reporte_seleccionado\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('h6',[_vm._v(\"Total de registros: \"+_vm._s(_vm.consolidado_excel_detalle.length))])]),_c('v-col',[_c('v-btn',{staticClass:\"float-right mb-2\",attrs:{\"color\":\"teal\",\"outlined\":\"\",\"icon\":\"\",\"title\":_vm.show ? 'Ocultar parámetros' : 'Mostrar parámetros'},on:{\"click\":function($event){_vm.show = !_vm.show}}},[_c('v-icon',[_vm._v(_vm._s(_vm.show ? 'mdi-chevron-up' : 'mdi-chevron-down'))])],1),_c('v-btn',{staticClass:\"float-right\",attrs:{\"color\":\"green\",\"outlined\":\"\",\"icon\":\"\",\"title\":'Descargar detalle de #check-ins'},on:{\"click\":function($event){return _vm.fn_consolidado_excel()}}},[_c('v-icon',[_vm._v(\" mdi mdi-microsoft-excel \")])],1)],1),_c('v-col',{attrs:{\"cols\":\"11\"}},[_c('p',[_vm._v(\"Del \"+_vm._s(_vm.selectedDias[0])+\" al \"+_vm._s(_vm.selectedDias[1]))]),(_vm.flag_formulario_con_parametros)?_c('div',{staticClass:\"text-caption\"},[_c('p',[_c('v-icon',[_vm._v(\"mdi mdi-magnify \")]),_vm._v(\" \"+_vm._s(_vm.reporte_seleccionado.text)+\" Parámetros aplicados: \")],1),(_vm.searchSupervisora.length > 0)?_c('p',[_vm._v(\"Usuario(s): \"),_c('span',{domProps:{\"innerHTML\":_vm._s(\n _vm.fn_arrayToCommaStringUsuarios(_vm.searchSupervisora,'nombre_completo', 'alias')\n )}})]):_vm._e(),(_vm.searchDivision.length > 0)?_c('p',[_vm._v(\" Divisione(s): \"),_c('span',{domProps:{\"innerHTML\":_vm._s(\n _vm.fn_arrayToCommaString(_vm.searchDivision, 'division', 'division')\n )}})]):_vm._e(),(_vm.searchRegion.length > 0)?_c('p',[_vm._v(\" Regione(s): \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.fn_arrayToCommaString(_vm.searchRegion, 'region', 'region'))}})]):_vm._e(),(_vm.searchSector.length > 0)?_c('p',[_vm._v(\" Sector(s): \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.fn_arrayToCommaString(_vm.searchSector, 'codigo', 'codigo'))}})]):_vm._e(),(_vm.searchAgenteDeComercio.length > 0)?_c('p',[_vm._v(\" Tipos de agente(s) de comercio: \"),_c('span',{domProps:{\"innerHTML\":_vm._s(\n _vm.fn_arrayToCommaString(_vm.searchAgenteDeComercio, null, null)\n )}})]):_vm._e(),(_vm.searchConsejera.length > 0)?_c('p',[_vm._v(\" Consejera(s): \"),_c('span',{domProps:{\"innerHTML\":_vm._s(\n _vm.fn_arrayToCommaString(_vm.searchConsejera, 'nombre_completo', 'nombre_completo')\n )}})]):_vm._e(),(_vm.search_motivo_de_visita_id != null &&_vm.search_motivo_de_visita_id.length >= 1)?_c('p',[_vm._v(\" Motivo(s) de visita #check-ins: \"),_c('span',{domProps:{\"innerHTML\":_vm._s(\n _vm.fn_arrayToCommaString(_vm.search_motivo_de_visita_id, 'label', 'label')\n )}})]):_vm._e(),(_vm.searchComentario != null && _vm.searchComentario != '')?_c('p',{attrs:{\"title\":_vm.reporte_seleccionado.text != 'Reuniones' ? 'Buscar por alguna palabra contenida en los comentarios' : 'Buscar por alguna palabra contenida en la descripción de las reuniones'}},[_c('span',{domProps:{\"textContent\":_vm._s(_vm.reporte_seleccionado.text != 'Reuniones' ? 'Comentario' : 'Descripción')}}),_vm._v(\": \"),_c('span',[_vm._v(_vm._s(_vm.searchComentario))])]):_vm._e(),(_vm.searchProspecto != null && _vm.searchProspecto != '')?_c('p',{attrs:{\"title\":\"Buscar por nombre, dirección o teléfono de prospecto\"}},[_vm._v(\" Prospecto: \"),_c('span',[_vm._v(_vm._s(_vm.searchProspecto))])]):_vm._e(),(_vm.searchNombramiento != null && _vm.searchNombramiento != '')?_c('p',{attrs:{\"title\":\"Buscar por nombre, dirección, teléfono o número de precalificación de nombramiento\"}},[_vm._v(\" Nombramiento: \"),_c('span',[_vm._v(_vm._s(_vm.searchNombramiento))])]):_vm._e()]):_c('div',{staticClass:\"text-caption\"})])],1)],1),_c('v-card-subtitle'),_c('v-expand-transition',[_c('v-card-text',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}]},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-dialog',{ref:\"mesDialog\",attrs:{\"return-value\":_vm.dialogVarSelectedMes,\"persistent\":\"\",\"width\":\"290px\"},on:{\"update:returnValue\":function($event){_vm.dialogVarSelectedMes=$event},\"update:return-value\":function($event){_vm.dialogVarSelectedMes=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-text-field',_vm._g(_vm._b({attrs:{\"label\":\"Mes:\",\"prepend-icon\":\"mdi-calendar\",\"readonly\":\"\"},model:{value:(_vm.selectedMes),callback:function ($$v) {_vm.selectedMes=$$v},expression:\"selectedMes\"}},'v-text-field',attrs,false),on))]}}]),model:{value:(_vm.modalMes),callback:function ($$v) {_vm.modalMes=$$v},expression:\"modalMes\"}},[_c('v-date-picker',{attrs:{\"locale\":\"es\",\"scrollable\":\"\",\"type\":\"month\",\"show-adjacent-months\":\"\"},model:{value:(_vm.dialogVarSelectedMes),callback:function ($$v) {_vm.dialogVarSelectedMes=$$v},expression:\"dialogVarSelectedMes\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.modalMes = false}}},[_vm._v(\" Cancel \")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.$refs.mesDialog.save(_vm.dialogVarSelectedMes),\n _vm.fn_dialogVarSelectedMes(_vm.dialogVarSelectedMes)}}},[_vm._v(\" OK \")])],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-dialog',{ref:\"diaDialog\",attrs:{\"return-value\":_vm.dialogVarSelectedDia,\"persistent\":\"\",\"width\":\"290px\"},on:{\"update:returnValue\":function($event){_vm.dialogVarSelectedDia=$event},\"update:return-value\":function($event){_vm.dialogVarSelectedDia=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-text-field',_vm._g(_vm._b({attrs:{\"label\":\"Dias:\",\"prepend-icon\":\"mdi-calendar\",\"readonly\":\"\"},model:{value:(_vm.selectedDias),callback:function ($$v) {_vm.selectedDias=$$v},expression:\"selectedDias\"}},'v-text-field',attrs,false),on))]}}]),model:{value:(_vm.modalFechas),callback:function ($$v) {_vm.modalFechas=$$v},expression:\"modalFechas\"}},[_c('v-date-picker',{attrs:{\"selected-items-text\":'$vuetify.datePicker.itemsSelected',\"locale\":\"es\",\"range\":true,\"scrollable\":\"\",\"min\":_vm.dialogVarMinDia,\"max\":_vm.dialogVarMaxDia},model:{value:(_vm.dialogVarSelectedDia),callback:function ($$v) {_vm.dialogVarSelectedDia=$$v},expression:\"dialogVarSelectedDia\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.modalFechas = false}}},[_vm._v(\" Cancelar \")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.$refs.diaDialog.save(_vm.dialogVarSelectedDia),\n _vm.fn_dialogVarSelectedDia(_vm.dialogVarSelectedDia)}}},[_vm._v(\" OK \")])],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-autocomplete',{attrs:{\"cache-items\":\"\",\"chips\":\"\",\"multiple\":\"\",\"deletable-chips\":\"\",\"no-data-text\":'Buscar divisiones',\"clearable\":\"\",\"items\":_vm.itemsDivisiones,\"title\":\"Mostrar solo #check-ins que pertenezcan a las divisiones seleccionadas\",\"loading\":_vm.loadingDivisiones,\"search-input\":_vm.searchSyncDivisiones,\"color\":\"primary\",\"hide-selected\":\"\",\"item-text\":\"division\",\"item-value\":\"division\",\"label\":\"Divisiones\",\"placeholder\":\"buscar...\",\"prepend-icon\":\"mdi-database-search\",\"return-object\":\"\"},on:{\"update:searchInput\":function($event){_vm.searchSyncDivisiones=$event},\"update:search-input\":function($event){_vm.searchSyncDivisiones=$event}},model:{value:(_vm.searchDivision),callback:function ($$v) {_vm.searchDivision=$$v},expression:\"searchDivision\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-autocomplete',{attrs:{\"cache-items\":\"\",\"chips\":\"\",\"multiple\":\"\",\"deletable-chips\":\"\",\"no-data-text\":'Buscar regiones',\"clearable\":\"\",\"items\":_vm.itemsRegiones,\"title\":\"Mostrar solo #check-ins que pertenezcan a las regiones seleccionadas\",\"loading\":_vm.loadingRegiones,\"search-input\":_vm.searchSyncRegiones,\"color\":\"primary\",\"hide-selected\":\"\",\"item-text\":\"region\",\"item-value\":\"region\",\"label\":\"Regiones\",\"placeholder\":\"buscar...\",\"prepend-icon\":\"mdi-database-search\",\"return-object\":\"\"},on:{\"update:searchInput\":function($event){_vm.searchSyncRegiones=$event},\"update:search-input\":function($event){_vm.searchSyncRegiones=$event}},model:{value:(_vm.searchRegion),callback:function ($$v) {_vm.searchRegion=$$v},expression:\"searchRegion\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-autocomplete',{attrs:{\"cache-items\":\"\",\"chips\":\"\",\"multiple\":\"\",\"deletable-chips\":\"\",\"no-data-text\":'Buscar sectores',\"clearable\":\"\",\"items\":_vm.itemsSectores,\"title\":\"Mostrar solo #check-ins que pertenezcan a los sectores seleccionados\",\"loading\":_vm.loadingSectores,\"search-input\":_vm.searchSyncSectores,\"color\":\"primary\",\"hide-selected\":\"\",\"item-text\":\"codigo\",\"item-value\":\"codigo\",\"label\":\"Sectores\",\"placeholder\":\"buscar...\",\"prepend-icon\":\"mdi-database-search\",\"return-object\":\"\"},on:{\"update:searchInput\":function($event){_vm.searchSyncSectores=$event},\"update:search-input\":function($event){_vm.searchSyncSectores=$event}},model:{value:(_vm.searchSector),callback:function ($$v) {_vm.searchSector=$$v},expression:\"searchSector\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"cache-items\":\"\",\"chips\":\"\",\"multiple\":\"\",\"deletable-chips\":\"\",\"no-data-text\":'Sin registros disponibles',\"clearable\":\"\",\"items\":_vm.$store.state.globalAgentesDeComercio,\"title\":\"Mostrar solo #check-ins realizados por usuarios que sean del tipo de agente de comercio seleccionado\",\"loading\":_vm.loadingAgenteDeComercio,\"color\":\"primary\",\"label\":\"Tipo de agente de comercio\",\"placeholder\":\"buscar...\",\"prepend-icon\":\"mdi-database-search\",\"return-object\":\"\"},model:{value:(_vm.searchAgenteDeComercio),callback:function ($$v) {_vm.searchAgenteDeComercio=$$v},expression:\"searchAgenteDeComercio\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"cache-items\":\"\",\"chips\":\"\",\"multiple\":\"\",\"deletable-chips\":\"\",\"no-data-text\":'Buscar usuarios',\"clearable\":\"\",\"items\":_vm.itemsSupervisoras,\"loading\":_vm.loadingSupervisoras,\"search-input\":_vm.searchSyncSupervisoras,\"color\":\"primary\",\"item-text\":\"nombre_completo\",\"item-value\":\"id\",\"title\":\"Mostrar solo #check-ins realizados por los usuarios seleccionados\",\"label\":\"Usuario(S)\",\"placeholder\":\"buscar...\",\"prepend-icon\":\"mdi-database-search\",\"return-object\":\"\"},on:{\"update:searchInput\":function($event){_vm.searchSyncSupervisoras=$event},\"update:search-input\":function($event){_vm.searchSyncSupervisoras=$event}},model:{value:(_vm.searchSupervisora),callback:function ($$v) {_vm.searchSupervisora=$$v},expression:\"searchSupervisora\"}})],1),(\n _vm.flag_mostrar_parametro_if_motivo_de_visita_presente('Visitas')\n )?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-autocomplete',{attrs:{\"cache-items\":\"\",\"chips\":\"\",\"multiple\":\"\",\"deletable-chips\":\"\",\"no-data-text\":'Sin registros disponibles',\"clearable\":\"\",\"items\":_vm.itemsConsejeras,\"loading\":_vm.loadingConsejeras,\"search-input\":_vm.searchSyncConsejeras,\"color\":\"primary\",\"item-text\":\"nombre_completo\",\"item-value\":\"id\",\"title\":\"Mostrar solo #check-ins a consejeras seleccionadas\",\"label\":\"Consejera\",\"placeholder\":\"buscar...\",\"prepend-icon\":\"mdi-database-search\",\"return-object\":\"\"},on:{\"update:searchInput\":function($event){_vm.searchSyncConsejeras=$event},\"update:search-input\":function($event){_vm.searchSyncConsejeras=$event}},model:{value:(_vm.searchConsejera),callback:function ($$v) {_vm.searchConsejera=$$v},expression:\"searchConsejera\"}})],1):_vm._e(),(\n _vm.flag_mostrar_parametro_if_motivo_de_visita_presente('Visitas')\n )?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-autocomplete',{attrs:{\"cache-items\":\"\",\"chips\":\"\",\"multiple\":\"\",\"deletable-chips\":\"\",\"no-data-text\":'Sin registros disponibles',\"clearable\":\"\",\"items\":_vm.localStoreMotivos,\"color\":\"primary\",\"item-text\":\"label\",\"item-value\":\"id\",\"title\":\"Mostrar solo #check-ins por motivo seleccionado\",\"label\":\"Motivo(s) de visita #check-ins\",\"placeholder\":\"buscar...\",\"prepend-icon\":\"mdi-database-search\",\"return-object\":\"\"},model:{value:(_vm.search_motivo_de_visita_id),callback:function ($$v) {_vm.search_motivo_de_visita_id=$$v},expression:\"search_motivo_de_visita_id\"}})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"6\"}},[(_vm.reporte_seleccionado.text != 'Nombramientos')?_c('v-text-field',{attrs:{\"clearable\":\"\",\"title\":_vm.texto_para_comentario_titulo,\"label\":_vm.texto_para_comentario_label,\"prepend-icon\":\"mdi-chat\"},model:{value:(_vm.searchComentario),callback:function ($$v) {_vm.searchComentario=$$v},expression:\"searchComentario\"}}):_vm._e()],1),(\n _vm.flag_mostrar_parametro_if_motivo_de_visita_presente('Prospectos')\n )?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"title\":\"Búsca por nombre, dirección o teléfono de prospecto\",\"label\":\"Prospecto\",\"prepend-icon\":\"mdi-account\"},model:{value:(_vm.searchProspecto),callback:function ($$v) {_vm.searchProspecto=$$v},expression:\"searchProspecto\"}})],1):_vm._e(),(\n _vm.flag_mostrar_parametro_if_motivo_de_visita_presente(\n 'Nombramientos'\n )\n )?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"title\":\"Búsca por nombre, dirección, teléfono o número de precalificación de nombramiento\",\"label\":\"Nombramiento\",\"prepend-icon\":\"mdi-account\"},model:{value:(_vm.searchNombramiento),callback:function ($$v) {_vm.searchNombramiento=$$v},expression:\"searchNombramiento\"}})],1):_vm._e()],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"small\":\"\",\"elevation\":\"\",\"color\":\"primary\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.$emit('EmitAplicarFiltros', true)}}},[_vm._v(\"Aplicar parametros\")])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalParametros.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalParametros.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./generalParametros.vue?vue&type=template&id=2cdb55dc&\"\nimport script from \"./generalParametros.vue?vue&type=script&lang=js&\"\nexport * from \"./generalParametros.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('v-btn',{staticClass:\"float-right mb-1\",attrs:{\"small\":\"\",\"elevation\":\"2\",\"color\":\" primary\",\"text\":\"\"},on:{\"click\":_vm.fnExportChartJsToPng}},[_c('v-icon',{attrs:{\"sm\":\"\",\"color\":\"\"}},[_vm._v(\"mdi-download\")]),_vm._v(\" (PNG)\")],1),_c('canvas',{attrs:{\"id\":\"grafica-usuarios\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * Chart.js v3.8.2\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\nconst requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\nfunction throttled(fn, thisArg, updateFn) {\n const updateArgs = updateFn || ((args) => Array.prototype.slice.call(args));\n let ticking = false;\n let args = [];\n return function(...rest) {\n args = updateArgs(rest);\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\nfunction debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\nconst _toLeftRightCenter = (align) => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\nconst _alignStartEnd = (align, start, end) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\nconst _textX = (align, left, right, rtl) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\nfunction noop() {}\nconst uid = (function() {\n let id = 0;\n return function() {\n return id++;\n };\n}());\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\nconst isNumberFinite = (value) => (typeof value === 'number' || value instanceof Number) && isFinite(+value);\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : value / dimension;\nconst toDimension = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\nfunction _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n for (let i = 0; i < ilen; ++i) {\n source = sources[i];\n if (!isObject(source)) {\n continue;\n }\n const keys = Object.keys(source);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n return merge(target, source, {merger: _mergerIf});\n}\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\nconst emptyString = '';\nconst dot = '.';\nfunction indexOfDotOrLength(key, start) {\n const idx = key.indexOf(dot, start);\n return idx === -1 ? key.length : idx;\n}\nfunction resolveObjectKey(obj, key) {\n if (key === emptyString) {\n return obj;\n }\n let pos = 0;\n let idx = indexOfDotOrLength(key, pos);\n while (obj && idx > pos) {\n obj = obj[key.slice(pos, idx)];\n pos = idx + 1;\n idx = indexOfDotOrLength(key, pos);\n }\n return obj;\n}\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value) => typeof value !== 'undefined';\nconst isFunction = (value) => typeof value === 'function';\nconst setsEqual = (a, b) => {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\nfunction _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\nconst PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\nfunction _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b) => a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\nfunction _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < (-0.5 * PI)) {\n angle += TAU;\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\nfunction _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nconst atEdge = (t) => t === 0 || t === 1;\nconst elasticIn = (t, s, p) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\nconst effects = {\n linear: t => t,\n easeInQuad: t => t * t,\n easeOutQuad: t => -t * (t - 2),\n easeInOutQuad: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n easeInCubic: t => t * t * t,\n easeOutCubic: t => (t -= 1) * t * t + 1,\n easeInOutCubic: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: t => t * t * t * t,\n easeOutQuart: t => -((t -= 1) * t * t * t - 1),\n easeInOutQuart: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: t => t * t * t * t * t,\n easeOutQuint: t => (t -= 1) * t * t * t * t + 1,\n easeInOutQuint: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: t => -Math.cos(t * HALF_PI) + 1,\n easeOutSine: t => Math.sin(t * HALF_PI),\n easeInOutSine: t => -0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: t => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: t => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: t => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: t => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: t => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: t => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: t => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic(t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack(t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack(t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n easeInBounce: t => 1 - effects.easeOutBounce(1 - t),\n easeOutBounce(t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n easeInOutBounce: t => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n};\n\n/*!\n * @kurkle/color v0.2.1\n * https://github.com/kurkle/color#readme\n * (c) 2022 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map = {\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};\nconst names$1 = {\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};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\nfunction index_esm(input) {\n return new Color(input);\n}\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\nclass Defaults {\n constructor(_descriptors) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n}\nvar defaults = new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\nfunction _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n 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 if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\nfunction _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\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}\nfunction drawPoint(ctx, options, x, y) {\n drawPointLegend(ctx, options, x, y, null);\n}\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch (style) {\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n 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 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 case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n 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 case 'crossRot':\n rad += QUARTER_PI;\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 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 case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\nfunction renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n ctx.restore();\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction addRoundedRectPath(ctx, rect) {\n const {x, y, w, h, radius} = rect;\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\nconst LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nconst FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\nfunction toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = v => +v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\nfunction toTRBL(value) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\nfunction toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\nfunction resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\nfunction _addGrace(minmax, grace, beginAtZero) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {lo, hi};\n}\nconst _lookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] < value);\nconst _rlookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] >= value);\nfunction _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n delete array._chartjs;\n}\nfunction _arrayUnique(items) {\n const set = new Set();\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n if (set.size === ilen) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction _createResolver(scopes, prefixes = [''], rootScopes = scopes, fallback, getTarget = () => scopes[0]) {\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: rootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope) => _createResolver([scope, ...scopes], prefixes, rootScopes, fallback),\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get(target, prop) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set(target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value;\n delete target._keys;\n return true;\n }\n });\n}\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get(target, prop, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\nfunction _descriptors(proxy, defaults = {scriptable: true, indexable: true}) {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters' &&\n (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n const value = resolve();\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop];\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, value, target, receiver) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n value = value(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (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 return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n return value;\n }\n return target;\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (defined(value)) {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (defined(value)) {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const {iScale} = meta;\n const {key = 'r'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i) => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis) => indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01;\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\nfunction monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\nfunction splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element) => window.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target) => (x > 0 || y > 0) && (!target || !target.shadowRoot);\nfunction getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const {offsetX, offsetY} = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\nfunction getRelativePosition(evt, chart) {\n if ('native' in evt) {\n return evt;\n }\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(evt, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect();\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = v => Math.round(v * 10) / 10;\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? 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 if (width && !height) {\n height = round1(width / 2);\n }\n return {\n width,\n height\n };\n}\nfunction retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n const canvas = chart.canvas;\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\nconst supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n }\n return passiveSupported;\n}());\nfunction readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\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}\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\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\nfunction _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x(x) {\n return x;\n },\n setWidth(w) {\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) {\n return x;\n },\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: _isBetween,\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n let {start, end, loop} = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n return result;\n}\nfunction _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n while (start < count && points[start].skip) {\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while (end > start && points[end % count].skip) {\n end--;\n }\n end %= count;\n return {start, end};\n}\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n return result;\n}\nfunction _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { toFont as $, _rlookupByKey as A, _isPointInArea as B, getAngleFromPoint as C, toPadding as D, each as E, getMaximumSize as F, _getParentNode as G, HALF_PI as H, readUsedSize as I, throttled as J, supportsEventListenerOptions as K, _isDomSupported as L, log10 as M, _factorize as N, finiteOrDefault as O, PI as P, callback as Q, _addGrace as R, toDegrees as S, TAU as T, _measureText as U, _int16Range as V, _alignPixel as W, clipArea as X, renderText as Y, unclipArea as Z, _arrayUnique as _, resolve as a, RAD_PER_DEG as a$, _toLeftRightCenter as a0, _alignStartEnd as a1, overrides as a2, merge as a3, _capitalize as a4, descriptors as a5, isFunction as a6, _attachContext as a7, _createResolver as a8, _descriptors as a9, _textX as aA, restoreTextDirection as aB, drawPointLegend as aC, noop as aD, distanceBetweenPoints as aE, _setMinAndMaxByKey as aF, niceNum as aG, almostWhole as aH, almostEquals as aI, _decimalPlaces as aJ, _longestText as aK, _filterBetween as aL, _lookup as aM, isPatternOrGradient as aN, getHoverColor as aO, clone$1 as aP, _merger as aQ, _mergerIf as aR, _deprecated as aS, toFontString as aT, splineCurve as aU, splineCurveMonotone as aV, getStyle as aW, fontString as aX, toLineHeight as aY, PITAU as aZ, INFINITY as a_, mergeIf as aa, uid as ab, debounce as ac, retinaScale as ad, clearCanvas as ae, setsEqual as af, _elementsEqual as ag, _isClickEvent as ah, _isBetween as ai, _readValueToProps as aj, _updateBezierControlPoints as ak, _computeSegments as al, _boundSegments as am, _steppedInterpolation as an, _bezierInterpolation as ao, _pointInLine as ap, _steppedLineTo as aq, _bezierCurveTo as ar, drawPoint as as, addRoundedRectPath as at, toTRBL as au, toTRBLCorners as av, _boundSegment as aw, _normalizeAngle as ax, getRtlAdapter as ay, overrideTextDirection as az, isArray as b, QUARTER_PI as b0, TWO_THIRDS_PI as b1, _angleDiff as b2, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, createContext as h, isObject as i, defined as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, isNumber as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _limitValue as w, _lookupByKey as x, _parseObjectDataRadialScale as y, getRelativePosition as z };\n","/*!\n * Chart.js v3.8.2\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, d as defaults, i as isObject, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as createContext, j as defined, s as sign, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as isNumber, w as _limitValue, x as _lookupByKey, y as _parseObjectDataRadialScale, z as getRelativePosition, A as _rlookupByKey, B as _isPointInArea, C as getAngleFromPoint, D as toPadding, E as each, F as getMaximumSize, G as _getParentNode, I as readUsedSize, J as throttled, K as supportsEventListenerOptions, L as _isDomSupported, M as log10, N as _factorize, O as finiteOrDefault, Q as callback, R as _addGrace, S as toDegrees, U as _measureText, V as _int16Range, W as _alignPixel, X as clipArea, Y as renderText, Z as unclipArea, $ as toFont, a0 as _toLeftRightCenter, a1 as _alignStartEnd, a2 as overrides, a3 as merge, a4 as _capitalize, a5 as descriptors, a6 as isFunction, a7 as _attachContext, a8 as _createResolver, a9 as _descriptors, aa as mergeIf, ab as uid, ac as debounce, ad as retinaScale, ae as clearCanvas, af as setsEqual, ag as _elementsEqual, ah as _isClickEvent, ai as _isBetween, aj as _readValueToProps, ak as _updateBezierControlPoints, al as _computeSegments, am as _boundSegments, an as _steppedInterpolation, ao as _bezierInterpolation, ap as _pointInLine, aq as _steppedLineTo, ar as _bezierCurveTo, as as drawPoint, at as addRoundedRectPath, au as toTRBL, av as toTRBLCorners, aw as _boundSegment, ax as _normalizeAngle, ay as getRtlAdapter, az as overrideTextDirection, aA as _textX, aB as restoreTextDirection, aC as drawPointLegend, aD as noop, aE as distanceBetweenPoints, aF as _setMinAndMaxByKey, aG as niceNum, aH as almostWhole, aI as almostEquals, aJ as _decimalPlaces, aK as _longestText, aL as _filterBetween, aM as _lookup } from './chunks/helpers.segment.js';\nexport { d as defaults } from './chunks/helpers.segment.js';\n\nclass Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for (; i >= 0; --i) {\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color(from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || (elapsed < duration));\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n\nconst numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\ndefaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n});\nconst animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n});\ndefaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n});\ndefaults.describe('animations', {\n _fallback: 'animation',\n});\ndefaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0\n },\n }\n }\n});\nclass Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n return value;\n}\nfunction convertObjectDataToArray(data) {\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent,\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n }\n}\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n && {keys: getSortedDatasetIndices(chart, true), values: null};\nclass DatasetController {\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const {_cachedMeta: meta, _data: data} = this;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || (elements.length - start);\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context ||\n (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = () => this.getContext(index, active);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || (sharedOptions !== previouslySharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {sharedOptions, includeOptions};\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList) {\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([this.index, ...args]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync(['_removeElements', start, count]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync(['_insertElements', start, newCount]);\n }\n }\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {start, end, reverse, top, bottom};\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n const {start, end, reverse, top, bottom} = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n properties.inflateAmount = inflateAmount === 'auto'\n ? ratio === 1 ? 0.33 : 0\n : inflateAmount;\n}\nclass BarController extends DatasetController {\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const {index, _cachedMeta: {vScale}} = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const {iScale} = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type)\n .filter(meta => meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const skipNull = (meta) => {\n const parsed = meta.controller.getParsed(dataIndex);\n const val = parsed && parsed[meta.vScale.axis];\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n for (const meta of metasets) {\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n if (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1;\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const {_cachedMeta: {vScale, _stacked}, options: {base: baseValue, minBarLength}} = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n};\n\nclass BubbleController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {$shared: false});\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {ratioX, ratioY, offsetX, offsetY};\n}\nclass DoughnutController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i) => +data[i];\n if (isObject(data[start])) {\n const {key = 'value'} = this._parsing;\n getter = (i) => +resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min,\n };\n }\n update(mode) {\n const chart = this.chart;\n const {chartArea} = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const {circumference, rotation} = this._getRotationExtents();\n const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n for (i = start; i < start + count; ++i) {\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n },\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r',\n};\nDoughnutController.descriptors = {\n _scriptable: (name) => name !== 'spacing',\n _indexable: (name) => name !== 'spacing',\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(tooltipItem) {\n let dataLabel = tooltipItem.label;\n const value = ': ' + tooltipItem.formattedValue;\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n return dataLabel;\n }\n }\n }\n }\n};\n\nclass LineController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false,\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n};\nfunction getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(Math.min(\n _lookupByKey(_parsed, iScale.axis, min).lo,\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n _lookupByKey(_parsed, iScale.axis, max).hi + 1,\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max)).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {start, count};\n}\nfunction scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nclass PolarAreaController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n meta.data.forEach((element, index) => {\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - (radiusLength * this.index);\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index) => {\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index)\n ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n : 0;\n }\n}\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n },\n },\n indexAxis: 'r',\n startAngle: 0,\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(context) {\n return context.chart.data.labels[context.dataIndex] + ': ' + context.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\n\nclass PieController extends DoughnutController {\n}\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nclass RadarController extends DatasetController {\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n },\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear',\n }\n }\n};\n\nclass ScatterController extends LineController {\n}\nScatterController.id = 'scatter';\nScatterController.defaults = {\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(item) {\n return '(' + item.label + ', ' + item.formattedValue + ')';\n }\n }\n }\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPolarAreaController: PolarAreaController,\nPieController: PieController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\nfunction abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\nclass DateAdapter {\n constructor(options) {\n this.options = options || {};\n }\n formats() {\n return abstract();\n }\n parse(value, format) {\n return abstract();\n }\n format(timestamp, format) {\n return abstract();\n }\n add(timestamp, amount, unit) {\n return abstract();\n }\n diff(a, b, unit) {\n return abstract();\n }\n startOf(timestamp, unit, weekday) {\n return abstract();\n }\n endOf(timestamp, unit) {\n return abstract();\n }\n}\nDateAdapter.override = function(members) {\n Object.assign(DateAdapter.prototype, members);\n};\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n return {lo: 0, hi: data.length - 1};\n}\nfunction evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\nfunction getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const {startAngle, endAngle} = element.getProps(['startAngle', 'endAngle'], useFinalPosition);\n const {angle} = getAngleFromPoint(element, {x: position.x, y: position.y});\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({element, datasetIndex, index});\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({element, datasetIndex, index});\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect\n ? getNearestRadialItems(chart, position, axis, useFinalPosition)\n : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\nfunction getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\nvar Interaction = {\n evaluateInteractionItems,\n modes: {\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible)\n : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n return elements;\n },\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) :\n getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n return items;\n },\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n ({position: pos, options: {stack, stackWeight = 1}} = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && (pos + stack),\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const {stack, pos, stackWeight} = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const {vBoxMaxWidth, hBoxMaxHeight} = params;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const {fullSize} = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const {pos, box} = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {size: 0, count: 1};\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let {x, y} = chartArea;\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n const weight = (layout.stackWeight / stack.weight) || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\ndefaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar layouts = {\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n chart.boxes.push(item);\n },\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {left: 0, top: 0, right: 0, bottom: 0});\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = value => value === null || value === '';\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList) {\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, (args) => {\n const event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\nclass DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass Element {\n constructor() {\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n tooltipPosition(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n return this;\n }\n const ret = {};\n props.forEach(prop => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\nElement.defaults = {};\nElement.defaultRoutes = undefined;\n\nconst formatters = {\n values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = tickValue / (Math.pow(10, Math.floor(log10(tickValue))));\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\nvar Ticks = {formatters};\n\ndefaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n borderDash: [],\n borderDashOffset: 0.0,\n borderWidth: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n});\ndefaults.route('scale.ticks', 'color', '', 'color');\ndefaults.route('scale.grid', 'color', '', 'borderColor');\ndefaults.route('scale.grid', 'borderColor', '', 'borderColor');\ndefaults.route('scale.title', 'color', '', 'color');\ndefaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash',\n});\ndefaults.describe('scales', {\n _fallback: 'scale',\n});\ndefaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n});\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return (lines * font.lineHeight) + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right, chart} = scale;\n const {chartArea, scales} = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\nclass Scale extends Element {\n constructor(cfg) {\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {min, max};\n }\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n update(maxWidth, maxHeight, margins) {\n const {beginAtZero, grace, ticks: tickOpts} = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal()\n ? this.width + margins.left + margins.right\n : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [this]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = this.ticks.length;\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n afterAutoSkip() {}\n beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const {first, last, widest, highest} = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const {ticks: {align, padding}, position} = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [this]);\n }\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const {min, max} = this;\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const {grid, position} = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const optsAtIndex = grid.setContext(this.getContext(i));\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = grid.borderDash || [];\n const borderDashOffset = optsAtIndex.borderDashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = y + textOffset - labelPadding.top;\n let left = x - labelPadding.left;\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor,\n };\n }\n items.push({\n rotation,\n label,\n font,\n color,\n strokeColor,\n strokeWidth,\n textOffset,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const {position, ticks} = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += (widest / 2);\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {textAlign, x};\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n }\n }\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n drawBorder() {\n const {chart, ctx, options: {grid}} = this;\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.borderWidth;\n ctx.strokeStyle = borderOpts.borderColor;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n const tickFont = item.font;\n const label = item.label;\n if (item.backdrop) {\n ctx.fillStyle = item.backdrop.color;\n ctx.fillRect(item.backdrop.left, item.backdrop.top, item.backdrop.width, item.backdrop.height);\n }\n let y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: (chartArea) => {\n this.draw(chartArea);\n }\n }];\n }\n return [{\n z: gz,\n draw: (chartArea) => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: (chartArea) => {\n this.drawLabels(chartArea);\n }\n }];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n this._exec(method, reg, arg);\n } else {\n each(arg, item => {\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = new Registry();\n\nclass PluginService {\n constructor() {\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\nfunction allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n return {plugins, localIds};\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, {plugins, localIds}, options, all) {\n const result = [];\n const context = chart.getContext();\n for (const plugin of plugins) {\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {plugin, local: localIds[id]}, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, {plugin, local}, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [''], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const firstIDs = Object.create(null);\n const scales = Object.create(null);\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const {options, type} = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {type},\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = value => isObject(value)\n && Object.getOwnPropertyNames(value).reduce((acc, key) => acc || isFunction(value[key]), false);\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if ((scriptable && (isFunction(value) || hasFunction(value)))\n || (indexable && isArray(value))) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"3.8.2\";\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys) {\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nclass Chart {\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.'\n );\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {size: newSize});\n callback(options.onResize, [this, newSize], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale) => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const {_metasets: metasets, data: {datasets}} = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass.prototype, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const {controller} = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {mode});\n this._layers.sort(compare2Level('z', '_idx'));\n const {_active, _lastEvent} = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale) => {\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const {_hiddenIndices} = this;\n const changes = this._getUniformDataChanges() || [];\n for (const {method, start, count} of changes) {\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx) => new Set(\n _dataChanges\n .filter(c => c[0] === idx)\n .map((c, i) => i + ',' + c.splice(1).join(','))\n );\n const changeSet = makeSet(0);\n for (let i = 1; i < datasetCount; i++) {\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet)\n .map(c => c.split(','))\n .map(a => ({method: a[1], start: +a[2], count: +a[3]}));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this.getDatasetMeta(i).controller.configure();\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({chart: this});\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const {width, height} = this._resizeBeforeDraw;\n this._resize(width, height);\n this._resizeBeforeDraw = null;\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = this.chartArea;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {visible});\n this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const {canvas, ctx} = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n this.notifyPlugins('destroy');\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type) => _add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = () => {\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = () => {\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const {_active: lastActive = [], options} = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [e, active, this], this);\n if (isClick) {\n callback(options.onClick, [e, active, this], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nconst invalidatePlugins = () => each(Chart.instances, (chart) => chart._plugins.invalidate());\nconst enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable,\n value: defaults\n },\n instances: {\n enumerable,\n value: instances\n },\n overrides: {\n enumerable,\n value: overrides\n },\n registry: {\n enumerable,\n value: registry\n },\n version: {\n enumerable,\n value: version\n },\n getChart: {\n enumerable,\n value: getChart\n },\n register: {\n enumerable,\n value: (...items) => {\n registry.add(...items);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable,\n value: (...items) => {\n registry.remove(...items);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n let angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n const computeOuterLimit = (val) => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n };\n}\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta),\n };\n}\nfunction pathArc(ctx, element, offset, spacing, end) {\n const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), startAngle + (innerStart / innerRadius), true);\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.fill();\n return endAngle;\n}\nfunction drawFullCircleBorders(ctx, element, inner) {\n const {x, y, startAngle, pixelMargin, fullCircles} = element;\n const outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n const innerRadius = element.innerRadius + pixelMargin;\n let i;\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\nfunction drawBorder(ctx, element, offset, spacing, endAngle) {\n const {options} = element;\n const {borderWidth, borderJoinStyle} = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.stroke();\n}\nclass ArcElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = this.options.spacing / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const betweenAngles = _circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return (betweenAngles && withinRadius);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference',\n ], useFinalPosition);\n const {offset, spacing} = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const {options, circumference} = this;\n const offset = (options.offset || 0) / 2;\n const spacing = (options.spacing || 0) / 2;\n this.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n let radiusOffset = 0;\n if (offset) {\n radiusOffset = offset / 2;\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n if (this.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n const endAngle = drawArc(ctx, this, radiusOffset, spacing);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle);\n ctx.restore();\n }\n}\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let {move = true, reverse} = params || {};\n let i, point, prev;\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n constructor(cfg) {\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {property, start: value, end: value});\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || (this.points.length - start);\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\nclass PointElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n return options.radius + options.hitRadius;\n }\n}\nPointElement.id = 'point';\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {left, top, right, bottom};\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds\n\t\t&& (skipX || _isBetween(x, bounds.left, bounds.right))\n\t\t&& (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nLineElement: LineElement,\nPointElement: PointElement,\nBarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for (i = 0; i < samples - 2; i++) {\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const {x: pointAx, y: pointAy} = data[a];\n maxArea = area = -1;\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs(\n (pointAx - avgX) * (data[j].y - pointAy) -\n (pointAx - data[j].x) * (avgY - pointAy)\n );\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX,\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {value: data});\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset) => {\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const {iScale} = meta;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {start, count};\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false,\n },\n beforeElementsUpdate: (chart, args, options) => {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex) => {\n const {_data, indexAxis} = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let {start, count} = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments) {\n let {start, end} = segment;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments) {\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources) {\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {property, start, end};\n}\nfunction _pointsFromSegments(boundary, line) {\n const {x = null, y = null} = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({start, end}) => {\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({x: first.x, y});\n points.push({x: last.x, y});\n } else if (x !== null) {\n points.push({x, y: first.y});\n points.push({x, y: last.y});\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for (;end > start; end--) {\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {tension: 0},\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [index];\n let target;\n if (!propagate) {\n return fill;\n }\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\nfunction _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\nfunction _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\nfunction _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\nfunction parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n\nfunction _buildStackLine(source) {\n const {scale, index, line} = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({x: null, y: scale.bottom}, line));\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n for (let j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({points, options: {}});\n}\nfunction getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for (let i = 0; i < metas.length; i++) {\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for (let j = 0; j < linesBelow.length; j++) {\n const line = linesBelow[j];\n const {first, last, point} = findPoint(line, sourcePoint, 'x');\n if (!point || (first && last)) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\nfunction findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {first, last, point};\n}\n\nclass simpleArc {\n constructor(opts) {\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const {x, y, radius} = this;\n bounds = bounds || {start: 0, end: TAU};\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const {x, y, radius} = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n\nfunction _getTarget(source) {\n const {chart, fill, line} = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\nfunction getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const {scale = {}, fill} = source;\n const pixel = _getTargetPixel(fill, scale);\n if (isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const {scale, fill} = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for (let i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const {line, scale, axis} = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const {above = color, below = color} = fillOption || {};\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {line, target, above, below, area, scale, axis});\n unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const {line, target, above, below, area, scale} = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n clipVertical(ctx, target, area.top);\n fill(ctx, {line, target, color: above, scale, property});\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n }\n fill(ctx, {line, target, color: below, scale, property});\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const {segments, points} = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments) {\n const {start, end} = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {move: lineLoop});\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const {line, target, property, color, scale} = cfg;\n const segments = _segments(line, target, property);\n for (const {source: src, target: tgt, start, end} of segments) {\n const {style: {backgroundColor = color} = {}} = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {move: lineLoop, reverse: true});\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, bounds) {\n const {top, bottom} = scale.chart.chartArea;\n const {property, start, end} = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line,\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config) {\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [this.chart], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const {options, ctx} = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxWidth, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxHeight, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const {options: opts, columnSizes, lineWidths, ctx} = this;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const {color: fontColor, padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPointLegend(ctx, drawOptions, centerX, centerY, boxWidth);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right)\n && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width)\n && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, this], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color}} = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: 0,\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n\nclass Title extends Element {\n constructor(config) {\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst positioners = {\n average(items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let x = 0;\n let y = 0;\n let count = 0;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {width, height};\n}\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\nfunction determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nclass Tooltip extends Element {\n constructor(config) {\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart || config._chart;\n this._chart = this.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const {callbacks} = options;\n const beforeTitle = callbacks.beforeTitle.apply(this, [context]);\n const title = callbacks.title.apply(this, [context]);\n const afterTitle = callbacks.afterTitle.apply(this, [context]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n getBody(tooltipItems, options) {\n const {callbacks} = options;\n const bodyItems = [];\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(this, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(this, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n getFooter(tooltipItems, options) {\n const {callbacks} = options;\n const beforeFooter = callbacks.beforeFooter.apply(this, [tooltipItems]);\n const footer = callbacks.footer.apply(this, [tooltipItems]);\n const afterFooter = callbacks.afterFooter.apply(this, [tooltipItems]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(this, context));\n labelPointStyles.push(scoped.labelPointStyle.call(this, context));\n labelTextColors.push(scoped.labelTextColor.call(this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {chart: this.chart, tooltip: this, replay});\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {caretSize, cornerRadius} = options;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColors = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const {boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = isObject(labelColors.borderWidth) ? Math.max(...Object.values(labelColors.borderWidth)) : (labelColors.borderWidth || 1);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n const borderRadius = toTRBLCorners(labelColors.borderRadius);\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const {body} = this;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n : 0;\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({chart, options});\n }\n },\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent(chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n }\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels) => {\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({index, label: raw});\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\nclass CategoryScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const {index, label} of added) {\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for (; j < numSpaces; ++j) {\n ticks.push({value: Math.round((niceMin + j * spacing) * factor) / factor});\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const {beginAtZero} = this.options;\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = 1;\n if (max >= Number.MAX_SAFE_INTEGER || min <= Number.MIN_SAFE_INTEGER) {\n offset = Math.abs(max * 0.05);\n }\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, Math.floor(log10(tickVal))));\n return remain === 1;\n}\nfunction generateTicks(generationOptions, dataRange) {\n const endExp = Math.floor(log10(dataRange.max));\n const endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n const ticks = [];\n let tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n let exp = Math.floor(log10(tickVal));\n let significand = Math.floor(tickVal / Math.pow(10, exp));\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n do {\n ticks.push({value: tickVal, major: isMajor(tickVal)});\n ++significand;\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || (exp === endExp && significand < endSignificand));\n const lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({value: lastTick, major: isMajor(tickVal)});\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n const exp = (v, m) => Math.pow(10, Math.floor(log10(v)) + m);\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(exp(min, -1));\n setMax(exp(max, +1));\n }\n }\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n if (this._zero && this.min !== this._suggestedMin && min === exp(this.min, 0)) {\n setMin(exp(min, -1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined\n ? '0'\n : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min\n ? 0\n : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\nfunction fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(\n orig.l - limits.l,\n limits.r - orig.r,\n orig.t - limits.t,\n limits.b - orig.b\n );\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const extra = getTickBackdropHeight(opts) / 2;\n const outerDistance = scale.drawingArea;\n const additionalAngle = opts.pointLabels.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i], additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const size = labelSizes[i];\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n for (let i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign, left, top, right, bottom} = scale._pointLabelItems[i];\n const {backdropColor} = optsAtIndex;\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(optsAtIndex.borderRadius);\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const {color, lineWidth} = gridLineOpts;\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(gridLineOpts.borderDash);\n ctx.lineDashOffset = gridLineOpts.borderDashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n constructor(cfg) {\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels()\n .map((value, index) => {\n const label = callback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n })\n .filter((v, i) => this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n drawBackground() {\n const {backgroundColor, grid: {circular}} = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const {angleLines, grid} = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const optsAtIndex = grid.setContext(this.getContext(index - 1));\n drawRadiusLine(this, optsAtIndex, offset, labelCount);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for (i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const {color, lineWidth} = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index) => {\n if (index === 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback(label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\n\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\nconst UNITS = (Object.keys(INTERVALS));\nfunction sorter(a, b) {\n return a - b;\n}\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, parser)\n : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n return +value;\n}\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n constructor(props) {\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map(tick => +tick.value));\n }\n }\n initOffsets(timestamps) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(timeOpts.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort((a, b) => a - b).map(x => +x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n const label = this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n const formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], this) : label;\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n }\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return (this._cache.data = this.normalize(timestamps));\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n major: {\n enabled: false\n }\n }\n};\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({lo, hi} = _lookupByKey(table, 'pos', val));\n }\n ({pos: prevSource, time: prevTarget} = table[lo]);\n ({pos: nextSource, time: nextTarget} = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({lo, hi} = _lookupByKey(table, 'time', val));\n }\n ({time: prevSource, pos: prevTarget} = table[lo]);\n ({time: nextSource, pos: nextTarget} = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n constructor(props) {\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const {min, max} = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n return table;\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales,\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, elements, layouts, plugins, registerables, registry, scales };\n","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalGraficaUsuarios.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalGraficaUsuarios.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./generalGraficaUsuarios.vue?vue&type=template&id=0f55b240&scoped=true&\"\nimport script from \"./generalGraficaUsuarios.vue?vue&type=script&lang=js&\"\nexport * from \"./generalGraficaUsuarios.vue?vue&type=script&lang=js&\"\nimport style0 from \"./generalGraficaUsuarios.vue?vue&type=style&index=0&id=0f55b240&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f55b240\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('v-btn',{staticClass:\"float-right mb-1\",attrs:{\"small\":\"\",\"elevation\":\"2\",\"color\":\" primary\",\"text\":\"\"},on:{\"click\":_vm.fnExportChartJsToPng}},[_c('v-icon',{attrs:{\"sm\":\"\",\"color\":\"\"}},[_vm._v(\"mdi-download\")]),_vm._v(\" (PNG)\")],1),_c('canvas',{attrs:{\"id\":\"grafica-sectores\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalGraficaSectores.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalGraficaSectores.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./generalGraficaSectores.vue?vue&type=template&id=1bc151ea&scoped=true&\"\nimport script from \"./generalGraficaSectores.vue?vue&type=script&lang=js&\"\nexport * from \"./generalGraficaSectores.vue?vue&type=script&lang=js&\"\nimport style0 from \"./generalGraficaSectores.vue?vue&type=style&index=0&id=1bc151ea&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1bc151ea\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('v-btn',{staticClass:\"float-right mb-1\",attrs:{\"small\":\"\",\"elevation\":\"2\",\"color\":\" primary\",\"text\":\"\"},on:{\"click\":_vm.fnExportChartJsToPng}},[_c('v-icon',{attrs:{\"sm\":\"\",\"color\":\"\"}},[_vm._v(\"mdi-download\")]),_vm._v(\" (PNG)\")],1),_c('canvas',{attrs:{\"id\":\"general-grafica-regiones\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalGraficaRegiones.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalGraficaRegiones.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./generalGraficaRegiones.vue?vue&type=template&id=268ee6c7&scoped=true&\"\nimport script from \"./generalGraficaRegiones.vue?vue&type=script&lang=js&\"\nexport * from \"./generalGraficaRegiones.vue?vue&type=script&lang=js&\"\nimport style0 from \"./generalGraficaRegiones.vue?vue&type=style&index=0&id=268ee6c7&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"268ee6c7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('v-btn',{staticClass:\"float-right mb-1\",attrs:{\"small\":\"\",\"elevation\":\"2\",\"color\":\" primary\",\"text\":\"\"},on:{\"click\":_vm.fnExportChartJsToPng}},[_c('v-icon',{attrs:{\"sm\":\"\",\"color\":\"\"}},[_vm._v(\"mdi-download\")]),_vm._v(\" (PNG)\")],1),_c('canvas',{attrs:{\"id\":\"general-grafica-divisiones\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalGraficaDivisiones.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalGraficaDivisiones.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./generalGraficaDivisiones.vue?vue&type=template&id=d4f5f78a&scoped=true&\"\nimport script from \"./generalGraficaDivisiones.vue?vue&type=script&lang=js&\"\nexport * from \"./generalGraficaDivisiones.vue?vue&type=script&lang=js&\"\nimport style0 from \"./generalGraficaDivisiones.vue?vue&type=style&index=0&id=d4f5f78a&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d4f5f78a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('v-btn',{staticClass:\"float-right mb-1\",attrs:{\"small\":\"\",\"elevation\":\"2\",\"color\":\" primary\",\"text\":\"\"},on:{\"click\":_vm.fnExportChartJsToPng}},[_c('v-icon',{attrs:{\"sm\":\"\",\"color\":\"\"}},[_vm._v(\"mdi-download\")]),_vm._v(\" (PNG)\")],1),_c('canvas',{attrs:{\"id\":\"general-grafica-tipos-de-visita\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalGraficaTiposDeVisita.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalGraficaTiposDeVisita.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./generalGraficaTiposDeVisita.vue?vue&type=template&id=3e5d8c55&scoped=true&\"\nimport script from \"./generalGraficaTiposDeVisita.vue?vue&type=script&lang=js&\"\nexport * from \"./generalGraficaTiposDeVisita.vue?vue&type=script&lang=js&\"\nimport style0 from \"./generalGraficaTiposDeVisita.vue?vue&type=style&index=0&id=3e5d8c55&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3e5d8c55\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"about\",on:{\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"right\",39,$event.key,[\"Right\",\"ArrowRight\"]))return null;if('button' in $event && $event.button !== 2)return null;return _vm.fnNextVisita()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"]))return null;if('button' in $event && $event.button !== 0)return null;return _vm.fnPrevVisita()}]}},[_c('GmapMap',{staticStyle:{\"width\":\"100%\",\"height\":\"65vh\"},attrs:{\"center\":_vm.centerCoordenates,\"zoom\":_vm.centerZoom,\"map-type-id\":\"terrain\"}},[_c('cluster',{attrs:{\"gridSize\":70,\"zoomOnClick\":true,\"maxZoom\":9}},_vm._l((_vm.prop_markers_and_pedido),function(visita,index){return _c('GmapMarker',{key:index,attrs:{\"position\":{ lat: visita.lat, lng: visita.lng },\"clickable\":true,\"icon\":visita.icon,\"draggable\":false},on:{\"click\":function($event){_vm.toggleInfo(visita), (_vm.flagCurrentIndex = index)},\"mouseover\":function($event){return _vm.fnDrawPolyPath(index)}}})}),1),_c('gmap-polyline',{ref:\"polyline\",attrs:{\"path\":_vm.deliveryPath,\"options\":{\n strokeWeight: 5,\n strokeColor: _vm.deliveryPathColor,\n strokeOpacity: 0.7,\n icons: [\n {\n icon: {\n path: _vm.figura_camino_polyline,\n scale: 3,\n fillColor: _vm.deliveryPathColor,\n fillOpacity: 1,\n },\n offset: '0',\n repeat: '100px',\n },\n ],\n }},on:{\"click\":function($event){_vm.poplyLineFlag = false}}}),_c('gmap-info-window',{attrs:{\"options\":_vm.infoOptions,\"position\":_vm.infoPosition,\"opened\":_vm.infoOpened},on:{\"closeclick\":function($event){_vm.infoOpened = false}}},[(_vm.infoContent)?_c('v-card',{attrs:{\"width\":\"395\",\"max-width\":\"395\"}},[_c('v-card-subtitle',[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-cellphone\")]),_vm._v(\" \"+_vm._s(_vm.infoContent.usuario)+\" \"),_c('small',{attrs:{\"title\":\"Tipo de agente de comercio\"}},[_vm._v(\"(\"+_vm._s(_vm.infoContent.tipo_agente_comercio)+\")\")]),_c('v-btn',{staticClass:\"float-right\",attrs:{\"title\":\"Siguiente visita\",\"disabled\":_vm.flagNextVisita,\"x-small\":\"\",\"elevation\":\"1\",\"text\":\"\",\"color\":\"white\"},on:{\"click\":function($event){return _vm.fnNextVisita()}}},[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-arrow-right\")])],1),_c('v-btn',{staticClass:\"float-right\",attrs:{\"title\":\"Visita previa\",\"disabled\":_vm.flagPrevVisita,\"x-small\":\"\",\"elevation\":\"1\",\"text\":\"\",\"color\":\"white\"},on:{\"click\":function($event){return _vm.fnPrevVisita()}}},[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"mdi-arrow-left\")])],1)],1),_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[(_vm.infoContent.fecha)?_c('p',[_c('strong',[_vm._v(\"Fecha:\")]),_c('span',[_vm._v(\" \"+_vm._s(_vm.fnGetDate(_vm.infoContent.fecha))+\" \")])]):_vm._e(),_c('p',[_c('strong',[_vm._v(\"Visita:\")]),_c('br'),_c('span',[_vm._v(\" \"+_vm._s(_vm.infoContent.motivo)+\" \"),_c('v-icon',{class:_vm.fnGetColor(_vm.infoContent.motivo)},[_vm._v(\"mdi-label-variant\")])],1)]),_c('p',[_c('strong',[_vm._v(\"División:\")]),_c('br'),_c('span',[_vm._v(\" \"+_vm._s(_vm.infoContent.division)+\" \")])]),_c('p',[_c('strong',[_vm._v(\"Región:\")]),_c('br'),_c('span',[_vm._v(\" \"+_vm._s(_vm.infoContent.region)+\" \")])]),_c('p',[_c('strong',[_vm._v(\"Sector:\")]),_c('br'),_c('span',[_vm._v(\" \"+_vm._s(_vm.infoContent.sector)+\" \")])])]),_c('v-col',[_c('p',[_c('strong',[_vm._v(\"ID:\")]),_c('span',[_vm._v(\" \"+_vm._s(_vm.infoContent.id)+\" \")])]),(_vm.infoContent.comentario)?_c('p',[_c('strong',[_vm._v(\"Observación:\")]),_c('br'),_c('span',[_vm._v(\" \"+_vm._s(_vm.infoContent.comentario)+\" \")])]):_vm._e(),(_vm.infoContent.lat)?_c('p',[_c('strong',[_vm._v(\"Latitud:\")]),_c('span',[_vm._v(\" \"+_vm._s(_vm.infoContent.lat)+\" \")])]):_vm._e(),(_vm.infoContent.lng)?_c('p',[_c('strong',[_vm._v(\"Longitud:\")]),_c('span',[_vm._v(\" \"+_vm._s(_vm.infoContent.lng)+\" \")])]):_vm._e()])],1)],1),_c('v-card-actions',[_c('v-spacer')],1)],1):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mapa_consolidado.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mapa_consolidado.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./mapa_consolidado.vue?vue&type=template&id=bc1c253e&\"\nimport script from \"./mapa_consolidado.vue?vue&type=script&lang=js&\"\nexport * from \"./mapa_consolidado.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./general.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./general.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./general.vue?vue&type=template&id=294e0098&\"\nimport script from \"./general.vue?vue&type=script&lang=js&\"\nexport * from \"./general.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./reporteria.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./reporteria.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./reporteria.vue?vue&type=template&id=1f3e74ca&\"\nimport script from \"./reporteria.vue?vue&type=script&lang=js&\"\nexport * from \"./reporteria.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalGraficaTiposDeVisita.vue?vue&type=style&index=0&id=3e5d8c55&prod&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalGraficaRegiones.vue?vue&type=style&index=0&id=268ee6c7&prod&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalGraficaDivisiones.vue?vue&type=style&index=0&id=d4f5f78a&prod&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./generalGraficaSectores.vue?vue&type=style&index=0&id=1bc151ea&prod&scoped=true&lang=css&\""],"sourceRoot":""}