You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

1 lines
1.5 MiB

{"version":3,"sources":["uni-app:///C:/Users/admin/Desktop/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-mp-weixin/dist/index.js",null,"webpack:///D:/项目/济南项目微信小程序/Jinan_app/static/446.png?53dd","webpack:///D:/项目/济南项目微信小程序/Jinan_app/static/zeren/4508.png?922b","webpack:///D:/项目/济南项目微信小程序/Jinan_app/static/zeren/4511.png?26a6","uni-app:///C:/Users/admin/Desktop/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js","uni-app:///libs/auth.js","uni-app:///store.js","uni-app:///C:/Users/admin/Desktop/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js","uni-app:///pages.json","uni-app:///uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js","uni-app:///uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js","uni-app:///C:/Users/admin/Desktop/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vuex3/dist/vuex.common.js","uni-app:///libs/request.js","uni-app:///C:/Users/admin/Desktop/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/regenerator/index.js","uni-app:///C:/Users/admin/Desktop/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/regenerator-runtime/runtime-module.js","uni-app:///C:/Users/admin/Desktop/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/regenerator-runtime/runtime.js","uni-app:///config.js","uni-app:///C:/Users/admin/Desktop/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/webpack/buildin/global.js","uni-app:///libs/alert.js","uni-app:///C:/Users/admin/Desktop/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/qs/lib/index.js","uni-app:///C:/Users/admin/Desktop/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/qs/lib/stringify.js","uni-app:///C:/Users/admin/Desktop/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/qs/lib/utils.js","uni-app:///uni_modules/uni-icons/components/uni-icons/icons.js","uni-app:///C:/Users/admin/Desktop/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/qs/lib/formats.js","uni-app:///C:/Users/admin/Desktop/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/qs/lib/parse.js","uni-app:///node_modules/@escook/request-miniprogram/miniprogram_dist/index.js","uni-app:///C:/Users/admin/Desktop/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js","webpack:///D:/项目/济南项目微信小程序/Jinan_app/static/login/banner.jpg?02fe","webpack:///D:/项目/济南项目微信小程序/Jinan_app/static/login/title.png?4f08","uni-app:///C:/Users/admin/Desktop/HBuilderX/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js","webpack:///D:/项目/济南项目微信小程序/Jinan_app/static/091212.jpg?d86a","webpack:///D:/项目/济南项目微信小程序/Jinan_app/static/arrow.png?f90b","webpack:///D:/项目/济南项目微信小程序/Jinan_app/static/down.png?0a16","webpack:///D:/项目/济南项目微信小程序/Jinan_app/static/4412.png?df47","webpack:///D:/项目/济南项目微信小程序/Jinan_app/static/dadui/10.png?5c90","webpack:///D:/项目/济南项目微信小程序/Jinan_app/static/logo.png?8a5b"],"names":["realAtob","b64","b64re","atob","str","String","replace","test","Error","slice","length","bitmap","result","r1","r2","i","indexOf","charAt","fromCharCode","b64DecodeUnicode","decodeURIComponent","split","map","c","charCodeAt","toString","join","getCurrentUserInfo","token","wx","getStorageSync","tokenArr","uid","role","permission","tokenExpired","userInfo","JSON","parse","error","message","exp","iat","uniIdMixin","Vue","prototype","uniIDHasRole","roleId","uniIDHasPermission","permissionId","uniIDTokenValid","Date","now","_toString","Object","hasOwnProperty","isFn","fn","isStr","isPlainObject","obj","call","hasOwn","key","noop","cached","cache","create","cachedFn","hit","camelizeRE","camelize","_","toUpperCase","HOOKS","globalInterceptors","scopedInterceptors","mergeHook","parentVal","childVal","res","concat","Array","isArray","dedupeHooks","hooks","push","removeHook","hook","index","splice","mergeInterceptorHook","interceptor","option","keys","forEach","removeInterceptorHook","addInterceptor","method","removeInterceptor","wrapperHook","data","isPromise","then","queue","promise","Promise","resolve","callback","wrapperOptions","options","name","oldCallback","callbackInterceptor","wrapperReturnValue","returnValue","returnValueHooks","getApiInterceptorHooks","scopedInterceptor","invokeApi","api","params","invoke","promiseInterceptor","reject","SYNC_API_RE","CONTEXT_API_RE","CONTEXT_API_RE_EXC","ASYNC_API","CALLBACK_API_RE","isContextApi","isSyncApi","isCallbackApi","handlePromise","catch","err","shouldPromise","finally","constructor","value","reason","promisify","promiseApi","success","fail","complete","assign","EPS","BASE_DEVICE_WIDTH","isIOS","deviceWidth","deviceDPR","checkDeviceWidth","getSystemInfoSync","platform","pixelRatio","windowWidth","upx2px","number","newDeviceWidth","Number","Math","floor","getLocale","app","getApp","allowDefault","$vm","$locale","language","setLocale","locale","oldLocale","onLocaleChangeCallbacks","onLocaleChange","global","interceptors","baseApi","freeze","__proto__","findExistsPageIndex","url","pages","getCurrentPages","len","page","$page","fullPath","redirectTo","fromArgs","exists","delta","args","existsPageIndex","previewImage","currentIndex","parseInt","current","isNaN","urls","filter","item","indicator","loop","UUID_KEY","deviceId","addUuid","random","setStorage","addSafeAreaInsets","safeArea","safeAreaInsets","top","left","right","bottom","windowHeight","getSystemInfo","showActionSheet","alertText","title","protocols","todos","canIUses","CALLBACKS","processCallback","methodName","processReturnValue","processArgs","argsOption","keepFromArgs","toArgs","keyOption","console","warn","keepReturnValue","wrapper","protocol","arg1","arg2","apply","todoApis","TODOS","createTodoApi","todoApi","errMsg","providers","oauth","share","payment","getProvider","service","provider","extraApi","getEmitter","Emitter","getUniEmitter","ctx","$on","arguments","$off","$once","$emit","eventApi","MPPage","Page","MPComponent","Component","customizeRE","customize","initTriggerEvent","mpInstance","oldTriggerEvent","triggerEvent","newTriggerEvent","event","_triggerEvent","initHook","isComponent","oldHook","__$wrappered","after","PAGE_EVENT_HOOKS","initMocks","vm","mocks","$mp","mpType","mock","hasHook","vueOptions","default","extendOptions","super","mixins","find","mixin","initHooks","mpOptions","__call_hook","initVueComponent","VueComponent","extend","initSlots","vueSlots","$slots","slotName","$scopedSlots","initVueIds","vueIds","_$vueId","_$vuePid","initData","context","methods","e","process","VUE_APP_DEBUG","stringify","__lifecycle_hooks__","PROP_TYPES","Boolean","createObserver","observer","newVal","oldVal","initBehaviors","initBehavior","vueBehaviors","behaviors","vueExtends","extends","vueMixins","vueProps","props","behavior","type","properties","initProperties","vueMixin","parsePropType","defaultValue","file","isBehavior","vueId","generic","scopedSlotsCompiler","setData","opts","wrapper$1","mp","stopPropagation","preventDefault","target","detail","markerId","getExtraValue","dataPathsArray","dataPathArray","dataPath","propPath","valuePath","vFor","isInteger","substr","__get_value","vForItem","vForKey","processEventExtra","extra","extraObj","__args__","getObjByArray","arr","element","processEventArgs","isCustom","isCustomMPEvent","currentTarget","dataset","comType","ret","arg","ONCE","CUSTOM","isMatchEventType","eventType","optType","getContextVm","$parent","$options","$scope","handleEvent","eventOpts","eventOpt","eventsArray","isOnce","eventArray","handlerCtx","handler","once","messages","initI18nMessages","isEnableLocale","localeKeys","__uniConfig","locales","curMessages","userMessages","i18n","t","i18nMixin","beforeCreate","unwatch","watchLocale","$forceUpdate","$$t","values","setLocale$1","getLocale$1","initAppLocale","appVm","state","observable","localeWatchers","$watchLocale","defineProperty","get","set","v","watch","eventChannels","eventChannelStack","getEventChannel","id","eventChannel","shift","initEventChannel","getOpenerEventChannel","callHook","__id__","__eventChannel__","initScopedSlotsParams","center","parents","$hasScopedSlotsParams","has","$getScopedSlotsParams","object","$setScopedSlotsParams","propsData","destroyed","parseBaseApp","initRefs","store","$store","mpHost","$i18n","_i18n","appOptions","onLaunch","canIUse","globalData","_isMounted","findVmByVueId","vuePid","$children","childVm","parentVm","Behavior","isPage","route","initRelation","selectAllComponents","selector","$refs","components","component","ref","vueGeneric","scopedComponent","forComponents","handleLink","parent","parseApp","createApp","App","encodeReserveRE","encodeReserveReplacer","commaRE","encode","encodeURIComponent","stringifyQuery","encodeStr","val","undefined","val2","x","parseBaseComponent","vueComponentOptions","multipleSlots","addGlobalClass","componentOptions","__file","lifetimes","attached","$mount","ready","detached","$destroy","pageLifetimes","show","hide","resize","size","__l","__e","externalClasses","wxsCallMethods","callMethod","parseComponent","hooks$1","parseBasePage","vuePageOptions","pageOptions","onLoad","query","copyQuery","is","parsePage","createPage","createComponent","createSubpackageApp","onShow","onAppShow","onHide","onAppHide","getLaunchOptionsSync","createPlugin","canIUseApi","apiName","uni","Proxy","uni$1","login","checkAuth","log","getLocalUserInfo","askLogin","user","commit","noCase","alert","showError","setTimeout","switchTab","showModal","content","confirm","navigateTo","getUserProfile","that","lang","desc","showLoading","code","request","post","wechatToken","username","password","hideLoading","status","setStorageSync","reLaunch","logout","path","clearStorage","use","Vuex","Store","people","tag","taskType","mutations","savePath","saveToken","savePeople","saveTaskType","actions","globalThis","window","self","__esModule","n","exports","require","s","r","lib","o","Base","mixIn","init","$super","clone","WordArray","words","sigBytes","clamp","ceil","a","enc","Hex","u","Latin1","h","Utf8","escape","unescape","l","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","_process","blockSize","max","_minBufferSize","min","_doProcessBlock","Hasher","cfg","_doReset","update","finalize","_doFinalize","_createHelper","_createHmacHelper","d","HMAC","algo","abs","sin","MD5","_hash","f","p","g","m","y","w","k","S","T","A","P","I","b","O","E","C","HmacMD5","_hasher","_oKey","_iKey","toLowerCase","appid","_globalUniCloudObj","reduce","isReady","initUniCloud","errCode","requestId","defineProperties","LOCALE","PLATFORM","OS","APPID","DEVICEID","CLIENT_SDK_VERSION","sign","sort","wrappedRequest","header","statusCode","uploadFile","removeStorageSync","clearStorageSync","U","en","fr","es","ja","D","param","config","endpoint","requestUrl","envType","accessTokenKey","spaceId","adapter","_getAccessTokenPromise","_getAccessTokenPromiseStatus","accessToken","requestWrapped","hasAccessToken","getAccessToken","rebuildRequest","clientSecret","timestamp","dataType","requestAuth","setupRequest","setAccessToken","functionTarget","functionArgs","formData","filePath","fileType","onUploadProgress","onProgressUpdate","loaded","totalBytesSent","total","totalBytesExpectedToSend","cloudPath","trim","getOSSUploadOptionsFromPath","env","filename","cdnDomain","ossPath","host","OSSAccessKeyId","accessKeyId","Signature","signature","policy","success_action_status","fileName","uploadFileToOSS","reportOSSUpload","fileID","fileList","tempFileURL","q","signInAnonymously","authorize","getLoginState","auth","customAuth","R","location","L","local","none","session","F","N","$","j","M","B","isMatch","genAdapter","runtime","WEB","WX_MP","K","H","W","root","tcbObject","z","localStorage","sessionStorage","J","_storage","_persistence","primaryStorage","persistence","accessTokenExpireKey","refreshTokenKey","anonymousUuidKey","loginTypeKey","userInfoKey","includes","getItem","setItem","removeItem","version","V","Y","X","G","Q","Z","_listeners","_listens","ee","on","te","fire","ne","off","se","re","oe","ie","ae","ce","ANONYMOUS","WECHAT","WECHAT_PUBLIC","WECHAT_OPEN","EMAIL","USERNAME","NULL","ue","he","le","headers","append","de","seqId","fe","_reqClass","reqClass","timeout","timeoutMsg","restrictedMethods","_cache","_localCache","upload","download","_refreshAccessTokenPromise","_refreshAccessToken","_shouldRefreshAccessTokenHook","removeStore","getStore","refresh_token","send","anonymous_uuid","setRefreshToken","access_token","setStore","access_token_expire","accessTokenExpire","refreshAccessToken","action","dataVersion","FormData","inQuery","search","pe","ge","me","_request","setLocalUserInfo","ye","_envId","setUserInfo","ticket","signInWithRedirect","oldPassword","newPassword","newEmail","users","wxOpenId","wxPublicId","hasPrimaryUid","nickName","gender","avatarUrl","province","country","city","_e","credential","refreshToken","loginType","we","updatePersistence","uuid","_setAnonymousUUID","refresh","_clearAnonymousUUID","ke","refreshUserInfo","Se","email","ve","Te","_onAnonymousConverted","bind","_onLoginTypeChanged","signIn","_anonymousAuthProvider","linkAndRetrieveDataWithTicket","hasLoginState","isRegistered","Ae","authorization","fileId","cosFileId","Pe","Ie","fileid_list","delete_list","be","fileid","max_age","maxAge","file_list","download_list","Oe","download_url","encodeURI","Ee","function_name","request_data","response_data","Ce","Ue","xe","authObj","requestClient","De","qe","Re","Le","clear","Fe","useAdapters","Ne","$e","je","Me","Be","Ke","fileUrl","He","We","clientInfo","uniIdToken","ze","localAddress","localPort","aliyun","tencent","_originCallFunction","Je","rule","mode","Ve","Ye","RegExp","source","Xe","Ge","functionName","logPvd","useDebugFunction","Qe","callFunction","extraInfo","formatter","match","debugInfo","forceRemote","Ze","Symbol","et","_internalType","__ob__","tt","nt","st","rt","$regexp","flags","$date","toISOString","ot","prevStage","udb","_database","$db","reverse","$method","$param","toJSON","_send","from","getAction","getCommand","_callCloudFunction","command","useAggregate","it","at","$newDb","ct","multiCommand","queryList","setResult","dataList","_uniClient","systemInfo","level","_callback","_callbackAuth","affectedDocs","uniClient","_authCallBacks","_dbCallBacks","isDefault","$env","Geo","serverDate","ut","database","ht","lt","dt","ft","pt","tempFiles","substring","lastIndexOf","tempFilePaths","onChooseFile","tempFile","tempFilePath","initChooseAndUploadFile","count","sizeType","sourceType","extension","chooseImage","camera","compressed","maxDuration","chooseVideo","duration","height","width","chooseFile","chooseMessageFile","gt","mt","localdata","spaceInfo","collection","field","orderby","where","pageData","pageCurrent","pageSize","getcount","gettree","gettreepath","startwith","limitlevel","groupby","groupField","distinct","foreignKey","loadtime","manual","mixinDatacomLoading","mixinDatacomHasMore","mixinDatacomResData","mixinDatacomErrorMessage","mixinDatacomPage","created","$watch","onMixinDatacomPropsChange","mixinDatacomEasyGet","getone","mixinDatacomGet","groupBy","orderBy","getCount","limitLevel","startWith","getTree","getTreePath","skip","limit","yt","customUI","loadingOptions","errorOptions","text","mask","retry","showToast","icon","showCancel","cancelText","confirmText","cancel","_t","wt","initUniCloudStatus","address","servePort","port","initialLaunchType","kt","debugFunction","navigator","userAgent","reInit","chooseAndUploadFile","mixinDatacom","importObject","uniCloud","St","yAxisWidth","xAxisHeight","xAxisTextPadding","padding","rotate","fontSize","fontColor","dataPointShape","color","linearColor","pieChartLinePadding","pieChartTextPadding","titleFontSize","subtitleFontSize","toolTipPadding","toolTipBackground","toolTipOpacity","toolTipLineHeight","radarLabelTextMargin","varArgs","TypeError","deepAssign","obj1","obj2","util","toFixed","num","isFloat","approximatelyEqual","num1","num2","isSameSign","isSameXCoordinateArea","p1","p2","isCollision","end","start","flag","getH5Offset","changedTouches","offsetX","offsetY","hexToRgb","hexValue","opc","rgx","hex","rgb","exec","findRange","multiple","calCandleMA","dayArr","nameArr","colorArr","kdata","seriesTemp","seriesItem","sum","calValidDistance","distance","chartData","dataChartAreaWidth","area","dataChartWidth","eachSpacing","xAxisData","xAxisPoints","mount","widthRatio","validDistance","uevent","trigger","scrollOption","position","xAxis","scrollPosition","isInAngleRange","angle","startAngle","endAngle","adjust","PI","createCurveControlPoints","points","isNotMiddlePoint","isNotMiddlePointX","pAx","pAy","pBx","pBy","last","ctrA","ctrB","convertCoordinateOrigin","avoidCollision","fixPieSeries","series","pieSeriesArr","_pieSeries_","oldseries","fillSeries","linearIndex","pointShape","legendShape","fillCustomColor","linearType","customColor","newcolor","chazhi","getDataRange","minData","maxData","range","minRange","maxRange","measureText","setFontSize","dataCombine","dataCombineStack","getTouches","touches","clientX","pix","pageY","offsetTop","getSeriesDataItem","group","newSeries","indexIsArr","tempSeries","filterSeries","tmpindex","style","disableLegend","getMaxTextListLength","list","lengthList","getRadarCoordinateSeries","eachAngle","CoordinateSeries","getToolTipData","seriesData","categories","calPoints","filterPoints","textList","titleText","offset","round","getMixToolTipData","getCandleToolTipData","upColor","upFill","downColor","downFill","text1","text2","text3","text4","validCalPoints","findCurrentIndex","currentPoints","spacing","boundaryGap","isInExactChartArea","timePoints","pointValue","pointIndex","minValue","findBarChartCurrentIndex","yAxisPoints","findLegendIndex","legendData","gap","isInExactLegendArea","findRadarChartCurrentIndex","radarData","eachAngleArea","isInExactPieChartArea","radius","fixAngle","atan2","angleList","rangeStart","rangeEnd","findFunnelChartCurrentIndex","funnelData","funnelArea","findWordChartCurrentIndex","wordData","findMapChartCurrentIndex","cData","mapData","tmp","pointToCoordinate","bounds","scale","xoffset","yoffset","poi","geometry","coordinates","isPoiWithinPoly","mercator","findRoseChartCurrentIndex","pieData","getRoseDataPoints","_series_","rose","offsetAngle","_start_","_rose_proportion_","findPieChartCurrentIndex","getPieDataPoints","pie","ring","_proportion_","pow","splitPoints","eachSeries","newPoints","items","connectNulls","calLegendData","wholeWidth","wholeHeight","widthArr","heightArr","legend","margin","shapeWidth","shapeRight","lineHeight","legendList","widthCount","widthCountArr","currentRow","legendText","itemWidth","itemGap","legendWidth","float","maxHeight","maxLength","lineNum","temp","maxWidth","calCategoriesData","categoriesTextLenth","xitem","maxTextLength","rotateLabel","rotateAngle","tempHeight","enableScroll","scrollShow","disabled","getXAxisTextList","stack","sorted","subitem","rangeSpan","eachRange","splitNumber","calXAxisData","columnstyle","bar","ranges","rangesFormat","xAxisScaleValues","getXAxisPoints","textLength","getRadarDataPoints","radarOption","radar","each","listItem","proportion","cos","_radius_","getFunnelDataPoints","minRadius","dataArr","radiusLength","getArcbarDataPoints","arcbarOption","totalAngle","getGaugeArcbarDataPoints","getGaugeAxisPoints","tempStartAngle","_startAngle_","_endAngle_","getGaugeDataPoints","gaugeOption","pointer","_oldAngle_","oldAngle","oldData","getPieTextMaxLength","textSize","fixColumeData","columnLen","seriesGap","categoryGap","mix","column","fixBarData","fixColumeMeterData","border","fixColumeStackData","indexn","fixBarStackData","spacingValid","dataCount","itemCount","startX","endX","getCandleDataPoints","validHeight","cPoints","indexs","point","getDataPoints","validWidth","xranges","xminRange","xmaxRange","pop","getMountDataPoints","mountOption","mountWidth","getBarDataPoints","getStackDataPoints","seriesIndex","stackSeries","value0","height0","heightc","y0","getBarStackDataPoints","x0","getYAxisTextList","yData","dataRange","yAxis","calYAxisData","YLength","rangesArr","rangesFormatArr","yAxisWidthArr","unit","tofix","yAxisFontSizes","calibration","yAxisFontSize","calTooltipYAxisData","yAxisData","minAxis","maxVal","minVal","calMarkLineData","yAxisIndex","contextRotate","rotateLock","translate","_rotate_","drawPointShape","shape","beginPath","dataPointShapeType","setStrokeStyle","setFillStyle","background","setLineWidth","moveTo","lineTo","arc","rect","closePath","fill","stroke","drawRingTitle","titlefontSize","subtitlefontSize","subtitle","titleFontColor","subtitleFontColor","titleHeight","subtitleHeight","textWidth","startY","fillText","_textWidth","_startX","_startY","drawPointText","textOffset","textColor","formatVal","setTextAlign","drawMountPointText","drawBarPointText","drawGaugeLabel","centerPosition","labelOffset","splitAngle","splitLine","totalNumber","endNumber","startNumber","nowAngle","nowNumber","pos","labelText","labelColor","drawRadarLabel","labelPointShow","posPoint","posPointAxis","labelPointColor","labelPointRadius","posRelativeCanvas","drawPieText","lineRadius","textObjectCollection","lastTextObject","seriesConvert","labelShow","orginX1","orginY1","orginX2","orginY2","orginX3","orginY3","textObject","lineStart","lineEnd","lineStartPoistion","lineEndPoistion","textPosition","curveStartX","textStartX","quadraticCurveTo","drawToolTipSplitLine","toolTipOption","tooltip","gridType","dashLength","endY","setLineDash","gridColor","xAxisLabel","textX","textY","labelBgColor","labelBgOpacity","labelFontColor","drawMarkLine","markLineOption","markLine","lineColor","showLabel","labelAlign","labelOffsetX","labelOffsetY","bgWidth","bgStartX","bgStartY","drawToolTipHorizentalLine","yAxisLabel","tStartLeft","tStartRight","bgEndX","drawToolTipSplitArea","activeBgColor","activeBgOpacity","activeWidth","drawBarToolTipSplitArea","drawToolTip","showBox","showArrow","showCategory","bgColor","bgOpacity","borderColor","borderWidth","borderRadius","borderOpacity","unshift","legendMarginRight","arrowWidth","isOverRightBorder","toolTipWidth","toolTipHeight","_scrollDistance_","fillRect","drawColumnDataPoints","columnOption","meterBorder","meterFillColor","barBorderCircle","barBorderRadius","linearOpacity","colorStop","save","leftNum","rightNum","tooltipPoints","fillColor","strokeColor","grd","createLinearGradient","addColorStop","r0","r3","dataLabel","restore","drawMountDataPoints","bezierCurveTo","drawBarDataPoints","drawCandleDataPoints","seriesMA","candleOption","average","candle","upLine","downLine","day","leftSpace","rightSpace","splitPointList","startPoint","ctrlPoint","drawAreaDataPoints","areaOption","opacity","addLine","gradient","firstPoint","lastPoint","lineType","drawScatterDataPoints","scatterOption","scatter","drawBubbleDataPoints","bubbleOption","bubble","drawLineDataPoints","lineOption","line","drawMixDataPoints","columnIndex","columnLength","addPoint","drawToolTipBridge","horizentalLine","drawXAxis","scrollY","scrollScreenWidth","scrollTotalWidth","scrollWidth","scrollLeft","setLineCap","scrollBackgroundColor","scrollColor","disableGrid","gridEval","maxXAxisListLength","labelCount","ratio","newCategories","cgLength","xAxisFontSize","_xAxisTextAngle_","scrollHeight","axisLine","axisLineColor","drawYAxisGrid","xAxiseachSpacing","TotalWidth","drawYAxis","fillEndY","tStartCenter","textAlign","tmpstrat","gapwidth","showTitle","titleOffsetX","titleOffsetY","drawLegend","legendArea","backgroundColor","itemList","listIndex","hiddenColor","fontTrans","drawPieDataPoints","pieOption","activeOpacity","activeRadius","labelWidth","ringWidth","customRadius","centerColor","_pieTextMaxLength_","lineJoin","fillcolor","createCircularGradient","createRadialGradient","innerPieWidth","drawRoseDataPoints","roseOption","drawArcbarDataPoints","lineCap","arcbar","centerX","centerY","drawGaugeDataPoints","fixRadius","childNumber","childWidth","gauge","innerRadius","pieRadius","childAngle","proc","pointerRadius","gradient3","eachCategories","childendX","drawRadarDataPoints","axisLabel","axisLabelTofix","gridCount","coordinateAngle","xr","yr","_loop","startPos","radarDataPoints","stepLength","label","lonlat2mercator","longitude","latitude","tan","mercator2lonlat","lonlat","atan","getBoundingBox","coords","xMin","xMax","yMin","yMax","coorda","coordinateToPoint","pointY","pointX","isRayIntersectsSegment","s_poi","e_poi","xseg","poly","sinsc","epoly","drawMapDataPoints","mapOption","fillOpacity","activeBorderColor","activeFillColor","activeFillOpacity","xScale","yScale","gaosi","centerPoint","centroid","draw","normalInt","iter","collisionNew","isIn","getWordCloudPoint","tHeight","tWidth","breaknum","Spin","isSpin","areav","drawWordCloudDataPoints","wordOption","autoColors","word","wordCloudData","strokeText","drawFunnelDataPoints","funnelOption","funnel","drawFunnelText","drawCanvas","Timing","easeIn","easeOut","easeInOut","linear","Animation","isStop","timing","delay","createAnimationFrame","step","timeStamp","requestAnimationFrame","animationFrame","startTimeStamp","_step","onProcess","onAnimationFinish","timingFunction","stop","drawCharts","_this","animation","animationInstance","_calLegendData","legendHeight","_calYAxisData","maxTitleHeight","rightIndex","leftIndex","_calCategoriesData","categoriesData","scrollAlign","offsetLeft","totalWidth","screenWidth","currentOffset","startTouchX","lastMoveTime","clearRect","_drawLineDataPoints","enableMarkLine","_drawScatterDataPoints","_drawBubbleDataPoints","_drawMixDataPoints","_drawColumnDataPoints","_drawMountDataPoints","_drawBarDataPoints","_drawAreaDataPoints","arcbarData","gaugeData","_drawCandleDataPoints","uChartsEvent","events","addEventListener","listener","delEventListener","_len","_key","uCharts","canvas2d","config$$1","tempWidth","strokeStyle","lineWidth","font","fillStyle","updateData","_getXAxisPoints0","zoom","centerLeft","MaxLeft","dobuleZoom","tcs","clientY","ntcs","xlength","moveCount","cts0","cts1","moveCurrent1","getCurrentDataIndex","moveCurrent2","currentEachSpacing","currentLeft","stopAnimation","_touches$","getLegendDataIndex","touchLegend","showToolTip","_getToolTipData","_getMixToolTipData","scrollStart","scroll","Limit","touchMoveLimit","currMoveTime","_distance","scrollEnd","_scrollOption","formatDateTime","returnType","date","setTime","getFullYear","getMonth","getDate","getHours","minute","getMinutes","second","getSeconds","cfu","category","getToken","domain","common","msg","uploadFile2","formdata","lawyerInfo","login_type","who","patch","get2","post2","module","devApi","devDomain","online","hideToast","showSuccess","showWarning","Request","baseUrl","beforeRequest","afterRequest","weixin","$http","isObject","defaultDelimiters","BaseFormatter","_caches","delimiters","tokens","compile","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","format","startDelimiter","endDelimiter","char","sub","isClosed","compiled","LOCALE_ZH_HANS","LOCALE_ZH_HANT","LOCALE_EN","LOCALE_FR","LOCALE_ES","defaultFormatter","include","parts","part","startsWith","normalizeLocale","I18n","fallbackLocale","watcher","formater","watchers","override","interpolate","watchAppLocale","newLocale","getDefaultLocale","initVueI18n","isWatchedAppLocale","add","isString","hasI18nJson","jsonObj","walkJsonObj","isI18nStr","parseI18nJson","compileStr","compileI18nJsonStr","jsonStr","localeValues","compileJsonObj","compileValue","valueLocales","localValue","walk","resolveLocale","resolveLocaleChain","chain"],"mappings":"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F,IAAD,CAAT,CAAd,CAArB;AACD;AACF,GAJD;AAKD;;AAEDlF,EAAE,CAACwc,SAAH,GAAeA,SAAf;AACAxc,EAAE,CAACqf,UAAH,GAAgBA,UAAhB;AACArf,EAAE,CAACsf,eAAH,GAAqBA,eAArB;AACAtf,EAAE,CAACuf,mBAAH,GAAyBA,mBAAzB;AACAvf,EAAE,CAAC6f,YAAH,GAAkBA,YAAlB;;AAEA,IAAIK,KAAK,GAAGF,GAAZ,C;;AAEeE,K;;;;;;;;;;;;ACviEf,iCAAiC,4+E;;;;;;;;;;;ACAjC,iCAAiC,g/H;;;;;;;;;;;ACAjC,iCAAiC,4pX;;;;;;;;;;;ACAjC,iCAAiC,4+W;;;;;;;;;;;;ACAjC;AAAA;AAAA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;kIClHA;AACA;AACA,+E;;AAEA,IAAMC,KAAK,GAAG;AACbC,WADa,qBACHrb,QADG,EACO;AACnB6H,WAAO,CAACyT,GAAR,CAAY,CAAZ;AACA,QAAI,KAAKC,gBAAL,EAAJ,EAA6B;AAC5B1T,aAAO,CAACyT,GAAR,CAAY,CAAZ;AACAtb,cAAQ,CAAC,IAAD,CAAR;AACA,KAHD,MAGO;AA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A;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;;AAErB;;AAEA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG,GAAG,gBAAgB;;AAEtB;AACA;AACA,GAAG,GAAG,gBAAgB;AACtB;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,cAAc;AACzB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,2BAA2B,EAAE;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,2CAA2C,0BAA0B,EAAE;AACvE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,cAAc,qBAAqB;;AAE7D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO,IAAqC;AAC5C;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,OAAO,IAAqC;AAC5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,oCAAoC,EAAE;AAClE;AACA;;AAEA;AACA,4BAA4B;AAC5B,uEAAuE,EAAE;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;;AAE1B;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ;;AAER;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,IAAqC;AAC5C;AACA;AACA;AACA;;AAEA,gCAAgC;AAChC,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,uBAAuB,EAAE;;AAE9D;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,SAAS,qBAAqB;;AAE1D;AACA;AACA;;AAEA;AACA,OAAO,IAAqC;AAC5C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA,6BAA6B,oCAAoC,EAAE;;AAEnE;AACA,KAAK,KAAqC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,mBAAmB,EAAE;AACnD,+BAA+B,yCAAyC,EAAE;AAC1E,GAAG;AACH,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;;AAEA;AACA,gDAAgD,yBAAyB,EAAE;AAC3E;;AAEA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB,EAAE;AACtD,mCAAmC,wCAAwC,EAAE;AAC7E,OAAO;AACP,aAAa,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,kBAAkB,EAAE;AACtD,mCAAmC,+CAA+C,EAAE;AACpF,OAAO;AACP,aAAa,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA,yCAAyC,aAAa;AACtD;AACA;;AAEA;AACA;;AAEA,OAAO,IAAqC;AAC5C;AACA;AACA,6CAA6C,6CAA6C,EAAE;AAC5F;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA,iCAAiC,eAAe;;AAEhD,OAAO,IAAqC;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iCAAiC,eAAe;;AAEhD,OAAO,IAAqC;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,iCAAiC,eAAe;;AAEhD,OAAO,IAAqC;AAC5C;AACA;;AAEA;AACA;;AAEA,yEAAyE,iCAAiC;AAC1G;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB,EAAE;AACjD;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,8BAA8B,yBAAyB,EAAE;AACzD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,aAAoB;AACtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,IAAqC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,KAAqC;AAClD;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,KAAqC;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C,uBAAuB,2CAA2C;AAClE,KAAK;AACL;AACA,wBAAwB,0CAA0C;AAClE;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,4BAA4B,EAAE;AACxD;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,4BAA4B;AAC5D,SAAS,IAAqC;AAC9C;AACA;AACA,GAAG,GAAG,yBAAyB;AAC/B;;AAEA;AACA,4CAA4C,mBAAmB,EAAE;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,IAAqC;AAC5C;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;AACA,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW;AACX;AACA;AACA;AACA,OAAO,KAAqC;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,YAAY;AACZ;AACA;AACA;AACA,OAAO,KAAqC;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,YAAY;AACZ;AACA;AACA;AACA,OAAO,KAAqC;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAqC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,YAAY;AACZ;AACA;AACA;AACA,OAAO,KAAqC;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA,CAAC,EAAE;;AAEH;AACA;AACA,iCAAiC,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB;AAC1F,iBAAiB,iBAAiB,QAAQ,mBAAmB,GAAG,mBAAmB,GAAG,mBAAmB;AACzG,WAAW,aAAa;AACxB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU,qBAAqB,EAAE,EAAE;AACjE,2CAA2C,UAAU,0BAA0B,EAAE,EAAE;AACnF;;AAEA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA,OAAO,KAAqC;AAC5C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gCAAgC;AAChC,0BAA0B,iFAAiF,aAAa;AACxH,oCAAoC,+DAA+D,cAAc;AACjH,oDAAoD,6EAA6E,YAAY;AAC7I,sCAAsC,yEAAyE,aAAa;AAC5H,gDAAgD,yEAAyE,YAAY;AACrI,sCAAsC;AACtC,kCAAkC;AAClC,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sDAAsD;AACtD,oDAAoD;AACpD,sDAAsD;AACtD;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,mBAAW;;AAEpC;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kBAAkB;AACnD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;uFChtBA,IAAM5d,GAAG,GAAG,0BAAZ;AACA,IAAM6xD,MAAM,GAAG,0BAAf;;AAEA,IAAMY,MAAM,GAAG,2BAAf;AACA,IAAMC,SAAS,GAAG,2BAAlB;;AAEA,IAAMC,MAAM,GAAG,KAAf,C,CAAsB;;AAEP;AACbd,QAAM,EAAEc,MAAM,GAAGd,MAAH,GAAYa,SADb;AAEb1yD,KAAG,EAAE2yD,MAAM,GAAG3yD,GAAH,GAASyyD,MAFP,E;;;;;;;;;;;ACRf;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;;kICnBA,IAAMz3C,KAAK,GAAG;AACZ;AACAY,aAAW,EAAE,qBAASm2C,GAAT,EAAc;AACzB13C,OAAG,CAACgjB,SAAJ,CAAc;AACZj3B,WAAK,EAAE2rD,GADK;AAEZz0B,UAAI,EAAE,SAFM;AAGZvD,cAAQ,EAAE,MAHE,EAAd;;AAKD,GARW;AASZ;AACA5d,aAAW,EAAE,qBAAS41C,GAAT,EAAc;AACzB13C,OAAG,CAACu4C,SAAJ;AACD,GAZW;AAaZ;AACAC,aAAW,EAAE,qBAASd,GAAT,EAAc;AACzB13C,OAAG,CAACgjB,SAAJ,CAAc;AACZj3B,WAAK,EAAE2rD,GADK;AAEZz0B,UAAI,EAAE,SAFM;AAGZvD,cAAQ,EAAE,IAHE,EAAd;;AAKD,GApBW;AAqBZ;AACA+4B,aAAW,EAAE,qBAASf,GAAT,EAAc;AACzB13C,OAAG,CAACgjB,SAAJ,CAAc;AACZj3B,WAAK,EAAE2rD,GADK;AAEZz0B,UAAI,EAAE,MAFM;AAGZvD,cAAQ,EAAE,IAHE,EAAd;;AAKD,GA5BW;;AA8BZ9e,WAAS,EAAE,mBAAS82C,GAAT,EAAc;AACvB13C,OAAG,CAACgjB,SAAJ,CAAc;AACZj3B,WAAK,EAAE2rD,GADK;AAEZz0B,UAAI,EAAE,MAFM;AAGZvD,cAAQ,EAAE,IAHE,EAAd;;AAKD,GApCW;AAqCZnf,UAAQ,EAAE,oBAAY;AACpBP,OAAG,CAACe,SAAJ,CAAc;AACZhV,WAAK,EAAE,MADK;AAEZiV,aAAO,EAAE,YAFG;AAGZ9Z,aAHY,mBAGJ/D,GAHI,EAGC;AACXyJ,eAAO,CAACyT,GAAR,CAAYld,GAAZ;AACA,YAAIA,GAAG,CAAC8d,OAAR,EAAiB;AACfjB,aAAG,CAACjW,UAAJ,CAAe;AACbP,eAAG,EAAE,oBADQ,EAAf;;AAGD;AACF,OAVW,EAAd;;AAYD,GAlDW,EAAd,C;;;AAqDemX,K;;;;;;;;;;;;;ACrDF;;AAEb,gBAAgB,mBAAO,CAAC,qBAAa;AACrC,YAAY,mBAAO,CAAC,iBAAS;AAC7B,cAAc,mBAAO,CAAC,mBAAW;;AAEjC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACVa;;AAEb,YAAY,mBAAO,CAAC,iBAAS;AAC7B,cAAc,mBAAO,CAAC,mBAAW;;AAEjC;AACA,yCAAyC;AACzC;AACA,KAAK;AACL,4CAA4C;AAC5C;AACA,KAAK;AACL,qCAAqC;AACrC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,mBAAmB,oBAAoB;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,wCAAwC;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,oBAAoB;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACjNa;;AAEb;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB,mBAAmB;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,OAAO,WAAW,aAAa;AACjD;;AAEA,mBAAmB,kBAAkB;AACrC;AACA;;AAEA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;sGCpNe;AACb,QAAM,SADO;AAEb,UAAQ,UAFK;AAGb,iBAAe,UAHF;AAIb,qBAAmB,QAJN;AAKb,iBAAe,EALF;AAMb,YAAU;AACR;AACE,eAAW,UADb;AAEE,YAAQ,OAFV;AAGE,kBAAc,OAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EADQ;;AAQR;AACE,eAAW,UADb;AAEE,YAAQ,QAFV;AAGE,kBAAc,QAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EARQ;;AAeR;AACE,eAAW,UADb;AAEE,YAAQ,iBAFV;AAGE,kBAAc,iBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAfQ;;AAsBR;AACE,eAAW,UADb;AAEE,YAAQ,wBAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAtBQ;;AA6BR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA7BQ;;AAoCR;AACE,eAAW,UADb;AAEE,YAAQ,iBAFV;AAGE,kBAAc,cAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EApCQ;;AA2CR;AACE,eAAW,UADb;AAEE,YAAQ,YAFV;AAGE,kBAAc,YAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA3CQ;;AAkDR;AACE,eAAW,UADb;AAEE,YAAQ,kBAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAlDQ;;AAyDR;AACE,eAAW,UADb;AAEE,YAAQ,mBAFV;AAGE,kBAAc,mBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAzDQ;;AAgER;AACE,eAAW,UADb;AAEE,YAAQ,cAFV;AAGE,kBAAc,cAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAhEQ;;AAuER;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAvEQ;;AA8ER;AACE,eAAW,UADb;AAEE,YAAQ,mBAFV;AAGE,kBAAc,iBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA9EQ;;AAqFR;AACE,eAAW,UADb;AAEE,YAAQ,qBAFV;AAGE,kBAAc,qBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EArFQ;;AA4FR;AACE,eAAW,UADb;AAEE,YAAQ,eAFV;AAGE,kBAAc,eAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA5FQ;;AAmGR;AACE,eAAW,UADb;AAEE,YAAQ,oBAFV;AAGE,kBAAc,cAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAnGQ;;AA0GR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA1GQ;;AAiHR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAjHQ;;AAwHR;AACE,eAAW,UADb;AAEE,YAAQ,cAFV;AAGE,kBAAc,cAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAxHQ;;AA+HR;AACE,eAAW,UADb;AAEE,YAAQ,kBAFV;AAGE,kBAAc,iBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA/HQ;;AAsIR;AACE,eAAW,UADb;AAEE,YAAQ,eAFV;AAGE,kBAAc,eAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAtIQ;;AA6IR;AACE,eAAW,UADb;AAEE,YAAQ,kBAFV;AAGE,kBAAc,kBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA7IQ;;AAoJR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EApJQ;;AA2JR;AACE,eAAW,UADb;AAEE,YAAQ,SAFV;AAGE,kBAAc,SAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA3JQ;;AAkKR;AACE,eAAW,UADb;AAEE,YAAQ,gBAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAlKQ;;AAyKV;AACE,eAAW,UADb;AAEE,YAAQ,gBAFV;AAGE,kBAAc,gBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAzKU;;AAgLR;AACE,eAAW,UADb;AAEE,YAAQ,eAFV;AAGE,kBAAc,YAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAhLQ;;AAuLV;AACE,eAAW,UADb;AAEE,YAAQ,eAFV;AAGE,kBAAc,eAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAvLU;;AA8LR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,UAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA9LQ;;AAqMV;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EArMU;;AA4MR;AACE,eAAW,UADb;AAEE,YAAQ,eAFV;AAGE,kBAAc,YAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA5MQ;AAkNN;AACA,eAAW,UADX;AAEA,YAAQ,eAFR;AAGA,kBAAc,eAHd;AAIA,eAAW,MAJX;AAKA,uBAAmB,KALnB,EAlNM;;AAyNR;AACE,eAAW,UADb;AAEE,YAAQ,WAFV;AAGE,kBAAc,QAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAzNQ;AA+NN;AACA,eAAW,UADX;AAEA,YAAQ,WAFR;AAGA,kBAAc,WAHd;AAIA,eAAW,MAJX;AAKA,uBAAmB,KALnB,EA/NM;;AAsOR;AACE,eAAW,UADb;AAEE,YAAQ,YAFV;AAGE,kBAAc,OAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAtOQ;;AA6OV;AACE,eAAW,UADb;AAEE,YAAQ,YAFV;AAGE,kBAAc,YAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA7OU;;AAoPR;AACE,eAAW,UADb;AAEE,YAAQ,SAFV;AAGE,kBAAc,KAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EApPQ;;AA2PV;AACE,eAAW,UADb;AAEE,YAAQ,SAFV;AAGE,kBAAc,SAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA3PU;;AAkQR;AACE,eAAW,UADb;AAEE,YAAQ,WAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAlQQ;;AAyQV;AACE,eAAW,UADb;AAEE,YAAQ,WAFV;AAGE,kBAAc,WAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAzQU;;AAgRR;AACE,eAAW,UADb;AAEE,YAAQ,KAFV;AAGE,kBAAc,KAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAhRQ;;AAuRR;AACE,eAAW,UADb;AAEE,YAAQ,YAFV;AAGE,kBAAc,YAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAvRQ;;AA8RR;AACE,eAAW,UADb;AAEE,YAAQ,WAFV;AAGE,kBAAc,WAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA9RQ;;AAqSR;AACE,eAAW,UADb;AAEE,YAAQ,kBAFV;AAGE,kBAAc,kBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EArSQ;;AA4SR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA5SQ;;AAmTR;AACE,eAAW,UADb;AAEE,YAAQ,WAFV;AAGE,kBAAc,QAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAnTQ;;AA0TR;AACE,eAAW,UADb;AAEE,YAAQ,gBAFV;AAGE,kBAAc,eAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA1TQ;;AAiUR;AACE,eAAW,UADb;AAEE,YAAQ,iBAFV;AAGE,kBAAc,iBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAjUQ;;AAwUR;AACE,eAAW,UADb;AAEE,YAAQ,SAFV;AAGE,kBAAc,SAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAxUQ;;AA+UR;AACE,eAAW,UADb;AAEE,YAAQ,UAFV;AAGE,kBAAc,UAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA/UQ;;AAsVR;AACE,eAAW,UADb;AAEE,YAAQ,UAFV;AAGE,kBAAc,UAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAtVQ;;AA6VR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA7VQ;;AAoWR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EApWQ;;AA2WR;AACE,eAAW,UADb;AAEE,YAAQ,YAFV;AAGE,kBAAc,UAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA3WQ;;AAkXR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAlXQ;;AAyXR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,OAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAzXQ;;AAgYR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAhYQ;;AAuYR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAvYQ;;AA8YR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA9YQ;;AAqZR;AACE,eAAW,UADb;AAEE,YAAQ,cAFV;AAGE,kBAAc,cAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EArZQ;;AA4ZR;AACE,eAAW,UADb;AAEE,YAAQ,OAFV;AAGE,kBAAc,OAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA5ZQ;;AAmaR;AACE,eAAW,UADb;AAEE,YAAQ,KAFV;AAGE,kBAAc,KAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAnaQ;;AA0aR;AACE,eAAW,UADb;AAEE,YAAQ,YAFV;AAGE,kBAAc,YAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA1aQ;;AAibR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAjbQ;;AAwbR;AACE,eAAW,UADb;AAEE,YAAQ,iBAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAxbQ;;AA+bR;AACE,eAAW,UADb;AAEE,YAAQ,QAFV;AAGE,kBAAc,QAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA/bQ;;AAscR;AACE,eAAW,UADb;AAEE,YAAQ,cAFV;AAGE,kBAAc,cAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAtcQ;;AA6cR;AACE,eAAW,UADb;AAEE,YAAQ,cAFV;AAGE,kBAAc,cAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA7cQ;;AAodR;AACE,eAAW,UADb;AAEE,YAAQ,OAFV;AAGE,kBAAc,OAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EApdQ;;AA2dR;AACE,eAAW,UADb;AAEE,YAAQ,OAFV;AAGE,kBAAc,OAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA3dQ;;AAkeR;AACE,eAAW,UADb;AAEE,YAAQ,WAFV;AAGE,kBAAc,WAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAleQ;;AAyeR;AACE,eAAW,UADb;AAEE,YAAQ,kBAFV;AAGE,kBAAc,kBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAzeQ;;AAgfR;AACE,eAAW,UADb;AAEE,YAAQ,SAFV;AAGE,kBAAc,SAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAhfQ;;AAufR;AACE,eAAW,UADb;AAEE,YAAQ,mBAFV;AAGE,kBAAc,mBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAvfQ;;AA8fR;AACE,eAAW,UADb;AAEE,YAAQ,gBAFV;AAGE,kBAAc,gBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA9fQ;;AAqgBR;AACE,eAAW,UADb;AAEE,YAAQ,WAFV;AAGE,kBAAc,WAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EArgBQ;;AA4gBR;AACE,eAAW,UADb;AAEE,YAAQ,YAFV;AAGE,kBAAc,YAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA5gBQ;;AAmhBR;AACE,eAAW,UADb;AAEE,YAAQ,eAFV;AAGE,kBAAc,eAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAnhBQ;;AA0hBR;AACE,eAAW,UADb;AAEE,YAAQ,QAFV;AAGE,kBAAc,QAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA1hBQ;;AAiiBR;AACE,eAAW,UADb;AAEE,YAAQ,QAFV;AAGE,kBAAc,QAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAjiBQ;;AAwiBR;AACE,eAAW,UADb;AAEE,YAAQ,SAFV;AAGE,kBAAc,SAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAxiBQ;;AA+iBR;AACE,eAAW,UADb;AAEE,YAAQ,IAFV;AAGE,kBAAc,IAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA/iBQ;;AAsjBR;AACE,eAAW,UADb;AAEE,YAAQ,iBAFV;AAGE,kBAAc,iBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAtjBQ;;AA6jBR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,KAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA7jBQ;;AAokBR;AACE,eAAW,UADb;AAEE,YAAQ,OAFV;AAGE,kBAAc,OAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EApkBQ;;AA2kBR;AACE,eAAW,UADb;AAEE,YAAQ,cAFV;AAGE,kBAAc,cAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA3kBQ;;AAklBR;AACE,eAAW,UADb;AAEE,YAAQ,cAFV;AAGE,kBAAc,cAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAllBQ;;AAylBR;AACE,eAAW,UADb;AAEE,YAAQ,OAFV;AAGE,kBAAc,OAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAzlBQ;;AAgmBR;AACE,eAAW,UADb;AAEE,YAAQ,iBAFV;AAGE,kBAAc,iBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAhmBQ;;AAumBR;AACE,eAAW,UADb;AAEE,YAAQ,eAFV;AAGE,kBAAc,eAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAvmBQ;;AA8mBR;AACE,eAAW,UADb;AAEE,YAAQ,OAFV;AAGE,kBAAc,OAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA9mBQ;;AAqnBR;AACE,eAAW,UADb;AAEE,YAAQ,UAFV;AAGE,kBAAc,UAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EArnBQ;;AA4nBR;AACE,eAAW,UADb;AAEE,YAAQ,UAFV;AAGE,kBAAc,UAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA5nBQ;;AAmoBR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAnoBQ;;AA0oBR;AACE,eAAW,UADb;AAEE,YAAQ,iBAFV;AAGE,kBAAc,iBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA1oBQ;;AAipBR;AACE,eAAW,UADb;AAEE,YAAQ,WAFV;AAGE,kBAAc,WAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAjpBQ;;AAwpBR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAxpBQ;;AA+pBR;AACE,eAAW,UADb;AAEE,YAAQ,cAFV;AAGE,kBAAc,cAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA/pBQ;;AAsqBR;AACE,eAAW,UADb;AAEE,YAAQ,QAFV;AAGE,kBAAc,QAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAtqBQ;;AA6qBR;AACE,eAAW,UADb;AAEE,YAAQ,YAFV;AAGE,kBAAc,YAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA7qBQ;;AAorBR;AACE,eAAW,UADb;AAEE,YAAQ,OAFV;AAGE,kBAAc,OAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAprBQ;;AA2rBR;AACE,eAAW,UADb;AAEE,YAAQ,UAFV;AAGE,kBAAc,UAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA3rBQ;;AAksBR;AACE,eAAW,UADb;AAEE,YAAQ,OAFV;AAGE,kBAAc,OAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAlsBQ;;AAysBR;AACE,eAAW,UADb;AAEE,YAAQ,OAFV;AAGE,kBAAc,OAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAzsBQ;;AAgtBR;AACE,eAAW,UADb;AAEE,YAAQ,KAFV;AAGE,kBAAc,KAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAhtBQ;;AAutBR;AACE,eAAW,UADb;AAEE,YAAQ,YAFV;AAGE,kBAAc,YAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAvtBQ;;AA8tBR;AACE,eAAW,UADb;AAEE,YAAQ,OAFV;AAGE,kBAAc,OAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA9tBQ;;AAquBR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAruBQ;;AA4uBR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,mBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA5uBQ;;AAmvBR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAnvBQ;;AA0vBR;AACE,eAAW,UADb;AAEE,YAAQ,YAFV;AAGE,kBAAc,YAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA1vBQ;;AAiwBR;AACE,eAAW,UADb;AAEE,YAAQ,cAFV;AAGE,kBAAc,cAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAjwBQ;;AAwwBR;AACE,eAAW,UADb;AAEE,YAAQ,eAFV;AAGE,kBAAc,eAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAxwBQ;;AA+wBR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA/wBQ;;AAsxBR;AACE,eAAW,UADb;AAEE,YAAQ,QAFV;AAGE,kBAAc,QAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAtxBQ;;AA6xBR;AACE,eAAW,UADb;AAEE,YAAQ,eAFV;AAGE,kBAAc,eAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA7xBQ;;AAoyBR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EApyBQ;;AA2yBR;AACE,eAAW,UADb;AAEE,YAAQ,QAFV;AAGE,kBAAc,QAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA3yBQ;;AAkzBR;AACE,eAAW,UADb;AAEE,YAAQ,QAFV;AAGE,kBAAc,QAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAlzBQ;;AAyzBR;AACE,eAAW,UADb;AAEE,YAAQ,gBAFV;AAGE,kBAAc,gBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAzzBQ;;AAg0BR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAh0BQ;;AAu0BR;AACE,eAAW,UADb;AAEE,YAAQ,eAFV;AAGE,kBAAc,eAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAv0BQ;;AA80BR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA90BQ;;AAq1BR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAr1BQ;;AA41BR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA51BQ;;AAm2BR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAn2BQ;;AA02BR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA12BQ;;AAi3BR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAj3BQ;;AAw3BR;AACE,eAAW,UADb;AAEE,YAAQ,oBAFV;AAGE,kBAAc,oBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAx3BQ;;AA+3BR;AACE,eAAW,UADb;AAEE,YAAQ,YAFV;AAGE,kBAAc,YAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA/3BQ;;AAs4BR;AACE,eAAW,UADb;AAEE,YAAQ,KAFV;AAGE,kBAAc,KAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAt4BQ;;AA64BR;AACE,eAAW,UADb;AAEE,YAAQ,gBAFV;AAGE,kBAAc,gBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA74BQ;;AAo5BR;AACE,eAAW,UADb;AAEE,YAAQ,SAFV;AAGE,kBAAc,SAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAp5BQ;;AA25BR;AACE,eAAW,UADb;AAEE,YAAQ,cAFV;AAGE,kBAAc,cAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA35BQ;;AAk6BR;AACE,eAAW,UADb;AAEE,YAAQ,uBAFV;AAGE,kBAAc,uBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAl6BQ;;AAy6BR;AACE,eAAW,UADb;AAEE,YAAQ,gBAFV;AAGE,kBAAc,gBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAz6BQ;;AAg7BR;AACE,eAAW,UADb;AAEE,YAAQ,qBAFV;AAGE,kBAAc,qBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAh7BQ;;AAu7BR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAv7BQ;;AA87BR;AACE,eAAW,UADb;AAEE,YAAQ,eAFV;AAGE,kBAAc,eAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA97BQ;;AAq8BR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAr8BQ;;AA48BR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA58BQ;;AAm9BR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAn9BQ;;AA09BR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA19BQ;;AAi+BR;AACE,eAAW,UADb;AAEE,YAAQ,QAFV;AAGE,kBAAc,QAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAj+BQ;;AAw+BR;AACE,eAAW,UADb;AAEE,YAAQ,WAFV;AAGE,kBAAc,WAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAx+BQ;;AA++BR;AACE,eAAW,UADb;AAEE,YAAQ,UAFV;AAGE,kBAAc,UAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA/+BQ;;AAs/BR;AACE,eAAW,UADb;AAEE,YAAQ,QAFV;AAGE,kBAAc,QAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAt/BQ;;AA6/BR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA7/BQ;;AAogCR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EApgCQ;;AA2gCR;AACE,eAAW,UADb;AAEE,YAAQ,kBAFV;AAGE,kBAAc,kBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA3gCQ;;AAkhCR;AACE,eAAW,UADb;AAEE,YAAQ,wBAFV;AAGE,kBAAc,kBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAlhCQ;;AAyhCR;AACE,eAAW,UADb;AAEE,YAAQ,iBAFV;AAGE,kBAAc,WAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAzhCQ;;AAgiCR;AACE,eAAW,UADb;AAEE,YAAQ,sBAFV;AAGE,kBAAc,gBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAhiCQ;;AAuiCR;AACE,eAAW,UADb;AAEE,YAAQ,eAFV;AAGE,kBAAc,SAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAviCQ;;AA8iCR;AACE,eAAW,UADb;AAEE,YAAQ,cAFV;AAGE,kBAAc,cAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA9iCQ;;AAqjCR;AACE,eAAW,UADb;AAEE,YAAQ,WAFV;AAGE,kBAAc,WAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EArjCQ;;AA4jCR;AACE,eAAW,UADb;AAEE,YAAQ,OAFV;AAGE,kBAAc,OAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA5jCQ;;AAmkCR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAnkCQ;;AA0kCR;AACE,eAAW,UADb;AAEE,YAAQ,UAFV;AAGE,kBAAc,UAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA1kCQ;;AAilCR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAjlCQ;;AAwlCR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAxlCQ;;AA+lCR;AACE,eAAW,UADb;AAEE,YAAQ,aAFV;AAGE,kBAAc,aAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA/lCQ;;AAsmCR;AACE,eAAW,UADb;AAEE,YAAQ,UAFV;AAGE,kBAAc,UAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAtmCQ;;AA6mCR;AACE,eAAW,UADb;AAEE,YAAQ,iBAFV;AAGE,kBAAc,iBAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA7mCQ;;AAonCR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EApnCQ;;AA2nCR;AACE,eAAW,UADb;AAEE,YAAQ,YAFV;AAGE,kBAAc,YAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EA3nCQ;;AAkoCR;AACE,eAAW,UADb;AAEE,YAAQ,MAFV;AAGE,kBAAc,MAHhB;AAIE,eAAW,MAJb;AAKE,uBAAmB,KALrB,EAloCQ,CANG,E;;;;;;;;;;;;ACAF;;AAEb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;;ACjBa;;AAEb,YAAY,mBAAO,CAAC,iBAAS;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,kBAAkB;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wCAAwC;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;iyBC7KM+3C,O;AACJ,qBAA0B,KAAdzzD,OAAc,uEAAJ,EAAI;AACxB;AACA,SAAK0zD,OAAL,GAAe1zD,OAAO,CAAC0zD,OAAR,IAAmB,EAAlC;AACA;AACA,SAAKnvD,GAAL,GAAWvE,OAAO,CAACuE,GAAR,IAAe,EAA1B;AACA;AACA,SAAKnF,MAAL,GAAc,KAAd;AACA;AACA,SAAKG,IAAL,GAAY,IAAZ;AACA;AACA,SAAKwkB,MAAL,GAAc/jB,OAAO,CAAC+jB,MAAR,IAAkB,EAAhC;AACA,SAAK4vC,aAAL,GAAqB,IAArB;AACA,SAAKC,YAAL,GAAoB,IAApB;AACD,G;;AAEGrvD,O,EAAgB,KAAXhF,IAAW,uEAAJ,EAAI;AAClB,WAAKH,MAAL,GAAc,KAAd;AACA,WAAKmF,GAAL,GAAW,KAAKmvD,OAAL,GAAenvD,GAA1B;AACA,WAAKhF,IAAL,GAAYA,IAAZ;AACA,aAAO,KAAK7B,CAAL,EAAP;AACD,K;;AAEI6G,O,EAAgB,KAAXhF,IAAW,uEAAJ,EAAI;AACnB,WAAKH,MAAL,GAAc,MAAd;AACA,WAAKmF,GAAL,GAAW,KAAKmvD,OAAL,GAAenvD,GAA1B;AACA,WAAKhF,IAAL,GAAYA,IAAZ;AACA,aAAO,KAAK7B,CAAL,EAAP;AACD,K;;AAEG6G,O,EAAgB,KAAXhF,IAAW,uEAAJ,EAAI;AAClB,WAAKH,MAAL,GAAc,KAAd;AACA,WAAKmF,GAAL,GAAW,KAAKmvD,OAAL,GAAenvD,GAA1B;AACA,WAAKhF,IAAL,GAAYA,IAAZ;AACA,aAAO,KAAK7B,CAAL,EAAP;AACD,K;;AAEM6G,O,EAAgB,KAAXhF,IAAW,uEAAJ,EAAI;AACrB,WAAKH,MAAL,GAAc,QAAd;AACA,WAAKmF,GAAL,GAAW,KAAKmvD,OAAL,GAAenvD,GAA1B;AACA,WAAKhF,IAAL,GAAYA,IAAZ;AACA,aAAO,KAAK7B,CAAL,EAAP;AACD,K;;AAEG;AACF;AACA,WAAKqmB,MAAL,GAAc,EAAd;AACA;AACA,WAAK4vC,aAAL,IAAsB,OAAO,KAAKA,aAAZ,KAA8B,UAApD,IAAkE,KAAKA,aAAL,CAAmB,IAAnB,CAAlE;AACA;AACA,aAAO,IAAI/zD,OAAJ,CAAY,UAACC,OAAD,EAAUiB,MAAV,EAAqB;AACtC,YAAI+yD,MAAM,GAAG94D,EAAb;AACA;AACA,YAAI,gBAAgB,OAAOggB,GAA3B,EAAgC;AAC9B84C,gBAAM,GAAG94C,GAAT;AACD;AACD84C,cAAM,CAACr3C,OAAP,CAAe;AACbjY,aAAG,EAAE,KAAI,CAACA,GADG;AAEbnF,gBAAM,EAAE,KAAI,CAACA,MAFA;AAGbG,cAAI,EAAE,KAAI,CAACA,IAHE;AAIbwkB,gBAAM,EAAE,KAAI,CAACA,MAJA;AAKb9hB,iBAAO,EAAE,iBAAC/D,GAAD,EAAS,CAAE2B,OAAO,CAAC3B,GAAD,CAAP,CAAc,CALrB;AAMbgE,cAAI,EAAE,cAACT,GAAD,EAAS,CAAEX,MAAM,CAACW,GAAD,CAAN,CAAa,CANjB;AAObU,kBAAQ,EAAE,kBAACjE,GAAD,EAAS;AACjB;AACA,iBAAI,CAAC01D,YAAL,IAAqB,OAAO,KAAI,CAACA,YAAZ,KAA6B,UAAlD,IAAgE,KAAI,CAACA,YAAL,CAAkB11D,GAAlB,CAAhE;AACD,WAVY,EAAf;;AAYD,OAlBM,CAAP;AAmBD,K;;;AAGI,IAAM41D,KAAK,GAAG,IAAIL,OAAJ,EAAd,C;;;;;;;;;;;;;ACxEP;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,sBAAsB,+BAA+B;AACrD,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iCAAiC,EAAE;AACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,cAAc;;AAE3C;;AAEA;AACA;AACA;AACA,6BAA6B,UAAU;;AAEvC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,aAAoB;;AAErC;AACA;AACA;AACA,YAAY,aAAoB;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,oCAAoC;AACpC;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA,iCAAiC;AACjC,uCAAuC,wBAAwB,EAAE;AACjE,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,wCAAwC,EAAE;AAC1C;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,+BAA+B,oBAAoB,EAAE;AACrD;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,SAAS,qBAAqB;;AAExD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD,iCAAiC,sBAAsB;AACvD;AACA,kBAAkB;AAClB,MAAM,IAAqC;AAC3C;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAoB;AACtC;AACA;AACA,mBAAmB;AACnB;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,OAAO,UAAU,IAAqC;AACtD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,mBAAmB;AACtC,+BAA+B;AAC/B;AACA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,oCAAoC;AACpC;AACA,qCAAqC;AACrC;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAEQ;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,qCAAqC,EAAE;AACpF;;AAEA;AACA;AACA;;AAEA,oCAAoC,yCAAyC,EAAE;AAC/E;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA,4BAA4B;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAsD,EAAE;AACtF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C,GAAG;AACH;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;;AAEA;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,qBAAqB;AAClC;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,MAAM,EAEN;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,IAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,sBAAsB,mBAAmB;AACzC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC,uCAAuC;AACvC;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB,sCAAsC;AACtC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,4CAA4C,eAAe;AAC3D,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kDAAkD;AAClD,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,KAAK,UAAU,KAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,qCAAqC,gEAAgE;AACrG;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,4BAA4B,+BAA+B;AAC3D,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C,kDAAkD;AAClD;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sEAAsE;;AAEtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,uFAAuF;AAC5F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,+BAA+B;AAClC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,oBAAoB;AACxC,sBAAsB,4BAA4B;AAClD;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB;AACnB,yBAAyB;AACzB;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAA6C;AAC9E;AACA;AACA,6CAA6C,4CAA4C;;AAEzF;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG,MAAM,EAGN;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK,2CAA2C,8BAA8B,EAAE;;AAEhF;AACA,wCAAwC,OAAO;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAqC;AACrD;AACA,oBAAoB,SAAI;AACxB;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;;AAE1B,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,EAAE;;AAEpD;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,oBAAoB;AACpB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,oBAAoB,KAAqC;AACzD;AACA,MAAM,SAAE;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,qBAAqB,+BAA+B;AACpD;AACA;AACA,GAAG;AACH,yBAAyB;AACzB;AACA,sBAAsB,iCAAiC;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU,IAAqC;AACpD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,8BAA8B;AAC9B,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,sCAAsC;AACtC,8C;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,YAAY,KAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,0CAA0C,2BAA2B,EAAE;AACvE,KAAK;AACL;AACA,0CAA0C,4BAA4B,EAAE;AACxE,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,YAAY,2GAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,gCAAgC,EAAE;AAC5E;;AAEA;AACA;AACA;AACA;AACA,WAAW,2GAAW;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,2GAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,0CAA0C;;AAE1C;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,KAAK;AACL;AACA;AACA,UAAU,2GAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,qDAAqD,EAAE,SAAS;AACtH;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;AC95LnB,4C;;;;;;;;;;;ACAA,2C;;;;;;;;;;;;4nFCAA,IAAMp1D,OAAO,GAAGD,KAAK,CAACC,OAAtB;AACA,IAAM01D,QAAQ,GAAG,SAAXA,QAAW,CAAC/7C,GAAD,UAASA,GAAG,KAAK,IAAR,IAAgB,OAAOA,GAAP,KAAe,QAAxC,EAAjB;AACA,IAAMg8C,iBAAiB,GAAG,CAAC,GAAD,EAAM,GAAN,CAA1B,C;AACMC,a;AACF,2BAAc;AACV,SAAKC,OAAL,GAAe13D,MAAM,CAACa,MAAP,CAAc,IAAd,CAAf;AACH,G;AACW3B,W,EAASyX,M,EAAwC,KAAhCghD,UAAgC,uEAAnBH,iBAAmB;AACzD,UAAI,CAAC7gD,MAAL,EAAa;AACT,eAAO,CAACzX,OAAD,CAAP;AACH;AACD,UAAI04D,MAAM,GAAG,KAAKF,OAAL,CAAax4D,OAAb,CAAb;AACA,UAAI,CAAC04D,MAAL,EAAa;AACTA,cAAM,GAAG54D,KAAK,CAACE,OAAD,EAAUy4D,UAAV,CAAd;AACA,aAAKD,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","file":"common/vendor.js","sourcesContent":["import Vue from 'vue';\r\nimport { initVueI18n } from '@dcloudio/uni-i18n';\r\n\r\nlet realAtob;\r\n\r\nconst b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\r\n\r\nif (typeof atob !== 'function') {\r\n realAtob = function (str) {\r\n str = String(str).replace(/[\\t\\n\\f\\r ]+/g, '');\r\n if (!b64re.test(str)) { throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\") }\r\n\r\n // Adding the padding if missing, for semplicity\r\n str += '=='.slice(2 - (str.length & 3));\r\n var bitmap; var result = ''; var r1; var r2; var i = 0;\r\n for (; i < str.length;) {\r\n bitmap = b64.indexOf(str.charAt(i++)) << 18 | b64.indexOf(str.charAt(i++)) << 12 |\r\n (r1 = b64.indexOf(str.charAt(i++))) << 6 | (r2 = b64.indexOf(str.charAt(i++)));\r\n\r\n result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255)\r\n : r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255)\r\n : String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);\r\n }\r\n return result\r\n };\r\n} else {\r\n // 注意atob只能在全局对象上调用,例如:`const Base64 = {atob};Base64.atob('xxxx')`是错误的用法\r\n realAtob = atob;\r\n}\r\n\r\nfunction b64DecodeUnicode (str) {\r\n return decodeURIComponent(realAtob(str).split('').map(function (c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\r\n }).join(''))\r\n}\r\n\r\nfunction getCurrentUserInfo () {\r\n const token = ( wx).getStorageSync('uni_id_token') || '';\r\n const tokenArr = token.split('.');\r\n if (!token || tokenArr.length !== 3) {\r\n return {\r\n uid: null,\r\n role: [],\r\n permission: [],\r\n tokenExpired: 0\r\n }\r\n }\r\n let userInfo;\r\n try {\r\n userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));\r\n } catch (error) {\r\n throw new Error('获取当前用户信息出错,详细错误信息为:' + error.message)\r\n }\r\n userInfo.tokenExpired = userInfo.exp * 1000;\r\n delete userInfo.exp;\r\n delete userInfo.iat;\r\n return userInfo\r\n}\r\n\r\nfunction uniIdMixin (Vue) {\r\n Vue.prototype.uniIDHasRole = function (roleId) {\r\n const {\r\n role\r\n } = getCurrentUserInfo();\r\n return role.indexOf(roleId) > -1\r\n };\r\n Vue.prototype.uniIDHasPermission = function (permissionId) {\r\n const {\r\n permission\r\n } = getCurrentUserInfo();\r\n return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1\r\n };\r\n Vue.prototype.uniIDTokenValid = function () {\r\n const {\r\n tokenExpired\r\n } = getCurrentUserInfo();\r\n return tokenExpired > Date.now()\r\n };\r\n}\r\n\r\nconst _toString = Object.prototype.toString;\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\nfunction isFn (fn) {\r\n return typeof fn === 'function'\r\n}\r\n\r\nfunction isStr (str) {\r\n return typeof str === 'string'\r\n}\r\n\r\nfunction isPlainObject (obj) {\r\n return _toString.call(obj) === '[object Object]'\r\n}\r\n\r\nfunction hasOwn (obj, key) {\r\n return hasOwnProperty.call(obj, key)\r\n}\r\n\r\nfunction noop () {}\r\n\r\n/**\r\n * Create a cached version of a pure function.\r\n */\r\nfunction cached (fn) {\r\n const cache = Object.create(null);\r\n return function cachedFn (str) {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str))\r\n }\r\n}\r\n\r\n/**\r\n * Camelize a hyphen-delimited string.\r\n */\r\nconst camelizeRE = /-(\\w)/g;\r\nconst camelize = cached((str) => {\r\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\r\n});\r\n\r\nconst HOOKS = [\r\n 'invoke',\r\n 'success',\r\n 'fail',\r\n 'complete',\r\n 'returnValue'\r\n];\r\n\r\nconst globalInterceptors = {};\r\nconst scopedInterceptors = {};\r\n\r\nfunction mergeHook (parentVal, childVal) {\r\n const res = childVal\r\n ? parentVal\r\n ? parentVal.concat(childVal)\r\n : Array.isArray(childVal)\r\n ? childVal : [childVal]\r\n : parentVal;\r\n return res\r\n ? dedupeHooks(res)\r\n : res\r\n}\r\n\r\nfunction dedupeHooks (hooks) {\r\n const res = [];\r\n for (let i = 0; i < hooks.length; i++) {\r\n if (res.indexOf(hooks[i]) === -1) {\r\n res.push(hooks[i]);\r\n }\r\n }\r\n return res\r\n}\r\n\r\nfunction removeHook (hooks, hook) {\r\n const index = hooks.indexOf(hook);\r\n if (index !== -1) {\r\n hooks.splice(index, 1);\r\n }\r\n}\r\n\r\nfunction mergeInterceptorHook (interceptor, option) {\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n interceptor[hook] = mergeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction removeInterceptorHook (interceptor, option) {\r\n if (!interceptor || !option) {\r\n return\r\n }\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n removeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction addInterceptor (method, option) {\r\n if (typeof method === 'string' && isPlainObject(option)) {\r\n mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option);\r\n } else if (isPlainObject(method)) {\r\n mergeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction removeInterceptor (method, option) {\r\n if (typeof method === 'string') {\r\n if (isPlainObject(option)) {\r\n removeInterceptorHook(scopedInterceptors[method], option);\r\n } else {\r\n delete scopedInterceptors[method];\r\n }\r\n } else if (isPlainObject(method)) {\r\n removeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction wrapperHook (hook) {\r\n return function (data) {\r\n return hook(data) || data\r\n }\r\n}\r\n\r\nfunction isPromise (obj) {\r\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\r\n}\r\n\r\nfunction queue (hooks, data) {\r\n let promise = false;\r\n for (let i = 0; i < hooks.length; i++) {\r\n const hook = hooks[i];\r\n if (promise) {\r\n promise = Promise.resolve(wrapperHook(hook));\r\n } else {\r\n const res = hook(data);\r\n if (isPromise(res)) {\r\n promise = Promise.resolve(res);\r\n }\r\n if (res === false) {\r\n return {\r\n then () { }\r\n }\r\n }\r\n }\r\n }\r\n return promise || {\r\n then (callback) {\r\n return callback(data)\r\n }\r\n }\r\n}\r\n\r\nfunction wrapperOptions (interceptor, options = {}) {\r\n ['success', 'fail', 'complete'].forEach(name => {\r\n if (Array.isArray(interceptor[name])) {\r\n const oldCallback = options[name];\r\n options[name] = function callbackInterceptor (res) {\r\n queue(interceptor[name], res).then((res) => {\r\n /* eslint-disable no-mixed-operators */\r\n return isFn(oldCallback) && oldCallback(res) || res\r\n });\r\n };\r\n }\r\n });\r\n return options\r\n}\r\n\r\nfunction wrapperReturnValue (method, returnValue) {\r\n const returnValueHooks = [];\r\n if (Array.isArray(globalInterceptors.returnValue)) {\r\n returnValueHooks.push(...globalInterceptors.returnValue);\r\n }\r\n const interceptor = scopedInterceptors[method];\r\n if (interceptor && Array.isArray(interceptor.returnValue)) {\r\n returnValueHooks.push(...interceptor.returnValue);\r\n }\r\n returnValueHooks.forEach(hook => {\r\n returnValue = hook(returnValue) || returnValue;\r\n });\r\n return returnValue\r\n}\r\n\r\nfunction getApiInterceptorHooks (method) {\r\n const interceptor = Object.create(null);\r\n Object.keys(globalInterceptors).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = globalInterceptors[hook].slice();\r\n }\r\n });\r\n const scopedInterceptor = scopedInterceptors[method];\r\n if (scopedInterceptor) {\r\n Object.keys(scopedInterceptor).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);\r\n }\r\n });\r\n }\r\n return interceptor\r\n}\r\n\r\nfunction invokeApi (method, api, options, ...params) {\r\n const interceptor = getApiInterceptorHooks(method);\r\n if (interceptor && Object.keys(interceptor).length) {\r\n if (Array.isArray(interceptor.invoke)) {\r\n const res = queue(interceptor.invoke, options);\r\n return res.then((options) => {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n })\r\n } else {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n }\r\n }\r\n return api(options, ...params)\r\n}\r\n\r\nconst promiseInterceptor = {\r\n returnValue (res) {\r\n if (!isPromise(res)) {\r\n return res\r\n }\r\n return new Promise((resolve, reject) => {\r\n res.then(res => {\r\n if (res[0]) {\r\n reject(res[0]);\r\n } else {\r\n resolve(res[1]);\r\n }\r\n });\r\n })\r\n }\r\n};\r\n\r\nconst SYNC_API_RE =\r\n /^\\$|Window$|WindowStyle$|sendHostEvent|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getLocale|setLocale/;\r\n\r\nconst CONTEXT_API_RE = /^create|Manager$/;\r\n\r\n// Context例外情况\r\nconst CONTEXT_API_RE_EXC = ['createBLEConnection'];\r\n\r\n// 同步例外情况\r\nconst ASYNC_API = ['createBLEConnection'];\r\n\r\nconst CALLBACK_API_RE = /^on|^off/;\r\n\r\nfunction isContextApi (name) {\r\n return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1\r\n}\r\nfunction isSyncApi (name) {\r\n return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1\r\n}\r\n\r\nfunction isCallbackApi (name) {\r\n return CALLBACK_API_RE.test(name) && name !== 'onPush'\r\n}\r\n\r\nfunction handlePromise (promise) {\r\n return promise.then(data => {\r\n return [null, data]\r\n })\r\n .catch(err => [err])\r\n}\r\n\r\nfunction shouldPromise (name) {\r\n if (\r\n isContextApi(name) ||\r\n isSyncApi(name) ||\r\n isCallbackApi(name)\r\n ) {\r\n return false\r\n }\r\n return true\r\n}\r\n\r\n/* eslint-disable no-extend-native */\r\nif (!Promise.prototype.finally) {\r\n Promise.prototype.finally = function (callback) {\r\n const promise = this.constructor;\r\n return this.then(\r\n value => promise.resolve(callback()).then(() => value),\r\n reason => promise.resolve(callback()).then(() => {\r\n throw reason\r\n })\r\n )\r\n };\r\n}\r\n\r\nfunction promisify (name, api) {\r\n if (!shouldPromise(name)) {\r\n return api\r\n }\r\n return function promiseApi (options = {}, ...params) {\r\n if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {\r\n return wrapperReturnValue(name, invokeApi(name, api, options, ...params))\r\n }\r\n return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\r\n invokeApi(name, api, Object.assign({}, options, {\r\n success: resolve,\r\n fail: reject\r\n }), ...params);\r\n })))\r\n }\r\n}\r\n\r\nconst EPS = 1e-4;\r\nconst BASE_DEVICE_WIDTH = 750;\r\nlet isIOS = false;\r\nlet deviceWidth = 0;\r\nlet deviceDPR = 0;\r\n\r\nfunction checkDeviceWidth () {\r\n const {\r\n platform,\r\n pixelRatio,\r\n windowWidth\r\n } = wx.getSystemInfoSync(); // uni=>wx runtime 编译目标是 uni 对象,内部不允许直接使用 uni\r\n\r\n deviceWidth = windowWidth;\r\n deviceDPR = pixelRatio;\r\n isIOS = platform === 'ios';\r\n}\r\n\r\nfunction upx2px (number, newDeviceWidth) {\r\n if (deviceWidth === 0) {\r\n checkDeviceWidth();\r\n }\r\n\r\n number = Number(number);\r\n if (number === 0) {\r\n return 0\r\n }\r\n let result = (number / BASE_DEVICE_WIDTH) * (newDeviceWidth || deviceWidth);\r\n if (result < 0) {\r\n result = -result;\r\n }\r\n result = Math.floor(result + EPS);\r\n if (result === 0) {\r\n if (deviceDPR === 1 || !isIOS) {\r\n result = 1;\r\n } else {\r\n result = 0.5;\r\n }\r\n }\r\n return number < 0 ? -result : result\r\n}\r\n\r\nfunction getLocale () {\r\n // 优先使用 $locale\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n if (app && app.$vm) {\r\n return app.$vm.$locale\r\n }\r\n return wx.getSystemInfoSync().language || 'zh-Hans'\r\n}\r\n\r\nfunction setLocale (locale) {\r\n const app = getApp();\r\n if (!app) {\r\n return false\r\n }\r\n const oldLocale = app.$vm.$locale;\r\n if (oldLocale !== locale) {\r\n app.$vm.$locale = locale;\r\n onLocaleChangeCallbacks.forEach((fn) => fn({\r\n locale\r\n }));\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nconst onLocaleChangeCallbacks = [];\r\nfunction onLocaleChange (fn) {\r\n if (onLocaleChangeCallbacks.indexOf(fn) === -1) {\r\n onLocaleChangeCallbacks.push(fn);\r\n }\r\n}\r\n\r\nif (typeof global !== 'undefined') {\r\n global.getLocale = getLocale;\r\n}\r\n\r\nconst interceptors = {\r\n promiseInterceptor\r\n};\r\n\r\nvar baseApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n upx2px: upx2px,\r\n getLocale: getLocale,\r\n setLocale: setLocale,\r\n onLocaleChange: onLocaleChange,\r\n addInterceptor: addInterceptor,\r\n removeInterceptor: removeInterceptor,\r\n interceptors: interceptors\r\n});\r\n\r\nfunction findExistsPageIndex (url) {\r\n const pages = getCurrentPages();\r\n let len = pages.length;\r\n while (len--) {\r\n const page = pages[len];\r\n if (page.$page && page.$page.fullPath === url) {\r\n return len\r\n }\r\n }\r\n return -1\r\n}\r\n\r\nvar redirectTo = {\r\n name (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.delta) {\r\n return 'navigateBack'\r\n }\r\n return 'redirectTo'\r\n },\r\n args (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.url) {\r\n const existsPageIndex = findExistsPageIndex(fromArgs.url);\r\n if (existsPageIndex !== -1) {\r\n const delta = getCurrentPages().length - 1 - existsPageIndex;\r\n if (delta > 0) {\r\n fromArgs.delta = delta;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nvar previewImage = {\r\n args (fromArgs) {\r\n let currentIndex = parseInt(fromArgs.current);\r\n if (isNaN(currentIndex)) {\r\n return\r\n }\r\n const urls = fromArgs.urls;\r\n if (!Array.isArray(urls)) {\r\n return\r\n }\r\n const len = urls.length;\r\n if (!len) {\r\n return\r\n }\r\n if (currentIndex < 0) {\r\n currentIndex = 0;\r\n } else if (currentIndex >= len) {\r\n currentIndex = len - 1;\r\n }\r\n if (currentIndex > 0) {\r\n fromArgs.current = urls[currentIndex];\r\n fromArgs.urls = urls.filter(\r\n (item, index) => index < currentIndex ? item !== urls[currentIndex] : true\r\n );\r\n } else {\r\n fromArgs.current = urls[0];\r\n }\r\n return {\r\n indicator: false,\r\n loop: false\r\n }\r\n }\r\n};\r\n\r\nconst UUID_KEY = '__DC_STAT_UUID';\r\nlet deviceId;\r\nfunction addUuid (result) {\r\n deviceId = deviceId || wx.getStorageSync(UUID_KEY);\r\n if (!deviceId) {\r\n deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7);\r\n wx.setStorage({\r\n key: UUID_KEY,\r\n data: deviceId\r\n });\r\n }\r\n result.deviceId = deviceId;\r\n}\r\n\r\nfunction addSafeAreaInsets (result) {\r\n if (result.safeArea) {\r\n const safeArea = result.safeArea;\r\n result.safeAreaInsets = {\r\n top: safeArea.top,\r\n left: safeArea.left,\r\n right: result.windowWidth - safeArea.right,\r\n bottom: result.windowHeight - safeArea.bottom\r\n };\r\n }\r\n}\r\n\r\nvar getSystemInfo = {\r\n returnValue: function (result) {\r\n addUuid(result);\r\n addSafeAreaInsets(result);\r\n }\r\n};\r\n\r\nvar showActionSheet = {\r\n args (fromArgs) {\r\n if (typeof fromArgs === 'object') {\r\n fromArgs.alertText = fromArgs.title;\r\n }\r\n }\r\n};\r\n\r\n// import navigateTo from 'uni-helpers/navigate-to'\r\n\r\nconst protocols = {\r\n redirectTo,\r\n // navigateTo, // 由于在微信开发者工具的页面参数,会显示__id__参数,因此暂时关闭mp-weixin对于navigateTo的AOP\r\n previewImage,\r\n getSystemInfo,\r\n getSystemInfoSync: getSystemInfo,\r\n showActionSheet\r\n};\r\nconst todos = [\r\n 'vibrate',\r\n 'preloadPage',\r\n 'unPreloadPage',\r\n 'loadSubPackage'\r\n];\r\nconst canIUses = [];\r\n\r\nconst CALLBACKS = ['success', 'fail', 'cancel', 'complete'];\r\n\r\nfunction processCallback (methodName, method, returnValue) {\r\n return function (res) {\r\n return method(processReturnValue(methodName, res, returnValue))\r\n }\r\n}\r\n\r\nfunction processArgs (methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {\r\n if (isPlainObject(fromArgs)) { // 一般 api 的参数解析\r\n const toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值\r\n if (isFn(argsOption)) {\r\n argsOption = argsOption(fromArgs, toArgs) || {};\r\n }\r\n for (const key in fromArgs) {\r\n if (hasOwn(argsOption, key)) {\r\n let keyOption = argsOption[key];\r\n if (isFn(keyOption)) {\r\n keyOption = keyOption(fromArgs[key], fromArgs, toArgs);\r\n }\r\n if (!keyOption) { // 不支持的参数\r\n console.warn(`The '${methodName}' method of platform '微信小程序' does not support option '${key}'`);\r\n } else if (isStr(keyOption)) { // 重写参数 key\r\n toArgs[keyOption] = fromArgs[key];\r\n } else if (isPlainObject(keyOption)) { // {name:newName,value:value}可重新指定参数 key:value\r\n toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;\r\n }\r\n } else if (CALLBACKS.indexOf(key) !== -1) {\r\n if (isFn(fromArgs[key])) {\r\n toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);\r\n }\r\n } else {\r\n if (!keepFromArgs) {\r\n toArgs[key] = fromArgs[key];\r\n }\r\n }\r\n }\r\n return toArgs\r\n } else if (isFn(fromArgs)) {\r\n fromArgs = processCallback(methodName, fromArgs, returnValue);\r\n }\r\n return fromArgs\r\n}\r\n\r\nfunction processReturnValue (methodName, res, returnValue, keepReturnValue = false) {\r\n if (isFn(protocols.returnValue)) { // 处理通用 returnValue\r\n res = protocols.returnValue(methodName, res);\r\n }\r\n return processArgs(methodName, res, returnValue, {}, keepReturnValue)\r\n}\r\n\r\nfunction wrapper (methodName, method) {\r\n if (hasOwn(protocols, methodName)) {\r\n const protocol = protocols[methodName];\r\n if (!protocol) { // 暂不支持的 api\r\n return function () {\r\n console.error(`Platform '微信小程序' does not support '${methodName}'.`);\r\n }\r\n }\r\n return function (arg1, arg2) { // 目前 api 最多两个参数\r\n let options = protocol;\r\n if (isFn(protocol)) {\r\n options = protocol(arg1);\r\n }\r\n\r\n arg1 = processArgs(methodName, arg1, options.args, options.returnValue);\r\n\r\n const args = [arg1];\r\n if (typeof arg2 !== 'undefined') {\r\n args.push(arg2);\r\n }\r\n if (isFn(options.name)) {\r\n methodName = options.name(arg1);\r\n } else if (isStr(options.name)) {\r\n methodName = options.name;\r\n }\r\n const returnValue = wx[methodName].apply(wx, args);\r\n if (isSyncApi(methodName)) { // 同步 api\r\n return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName))\r\n }\r\n return returnValue\r\n }\r\n }\r\n return method\r\n}\r\n\r\nconst todoApis = Object.create(null);\r\n\r\nconst TODOS = [\r\n 'onTabBarMidButtonTap',\r\n 'subscribePush',\r\n 'unsubscribePush',\r\n 'onPush',\r\n 'offPush',\r\n 'share'\r\n];\r\n\r\nfunction createTodoApi (name) {\r\n return function todoApi ({\r\n fail,\r\n complete\r\n }) {\r\n const res = {\r\n errMsg: `${name}:fail method '${name}' not supported`\r\n };\r\n isFn(fail) && fail(res);\r\n isFn(complete) && complete(res);\r\n }\r\n}\r\n\r\nTODOS.forEach(function (name) {\r\n todoApis[name] = createTodoApi(name);\r\n});\r\n\r\nvar providers = {\r\n oauth: ['weixin'],\r\n share: ['weixin'],\r\n payment: ['wxpay'],\r\n push: ['weixin']\r\n};\r\n\r\nfunction getProvider ({\r\n service,\r\n success,\r\n fail,\r\n complete\r\n}) {\r\n let res = false;\r\n if (providers[service]) {\r\n res = {\r\n errMsg: 'getProvider:ok',\r\n service,\r\n provider: providers[service]\r\n };\r\n isFn(success) && success(res);\r\n } else {\r\n res = {\r\n errMsg: 'getProvider:fail service not found'\r\n };\r\n isFn(fail) && fail(res);\r\n }\r\n isFn(complete) && complete(res);\r\n}\r\n\r\nvar extraApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n getProvider: getProvider\r\n});\r\n\r\nconst getEmitter = (function () {\r\n let Emitter;\r\n return function getUniEmitter () {\r\n if (!Emitter) {\r\n Emitter = new Vue();\r\n }\r\n return Emitter\r\n }\r\n})();\r\n\r\nfunction apply (ctx, method, args) {\r\n return ctx[method].apply(ctx, args)\r\n}\r\n\r\nfunction $on () {\r\n return apply(getEmitter(), '$on', [...arguments])\r\n}\r\nfunction $off () {\r\n return apply(getEmitter(), '$off', [...arguments])\r\n}\r\nfunction $once () {\r\n return apply(getEmitter(), '$once', [...arguments])\r\n}\r\nfunction $emit () {\r\n return apply(getEmitter(), '$emit', [...arguments])\r\n}\r\n\r\nvar eventApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n $on: $on,\r\n $off: $off,\r\n $once: $once,\r\n $emit: $emit\r\n});\r\n\r\nvar api = /*#__PURE__*/Object.freeze({\r\n __proto__: null\r\n});\r\n\r\nconst MPPage = Page;\r\nconst MPComponent = Component;\r\n\r\nconst customizeRE = /:/g;\r\n\r\nconst customize = cached((str) => {\r\n return camelize(str.replace(customizeRE, '-'))\r\n});\r\n\r\nfunction initTriggerEvent (mpInstance) {\r\n const oldTriggerEvent = mpInstance.triggerEvent;\r\n const newTriggerEvent = function (event, ...args) {\r\n return oldTriggerEvent.apply(mpInstance, [customize(event), ...args])\r\n };\r\n try {\r\n // 京东小程序 triggerEvent 为只读\r\n mpInstance.triggerEvent = newTriggerEvent;\r\n } catch (error) {\r\n mpInstance._triggerEvent = newTriggerEvent;\r\n }\r\n}\r\n\r\nfunction initHook (name, options, isComponent) {\r\n const oldHook = options[name];\r\n if (!oldHook) {\r\n options[name] = function () {\r\n initTriggerEvent(this);\r\n };\r\n } else {\r\n options[name] = function (...args) {\r\n initTriggerEvent(this);\r\n return oldHook.apply(this, args)\r\n };\r\n }\r\n}\r\nif (!MPPage.__$wrappered) {\r\n MPPage.__$wrappered = true;\r\n Page = function (options = {}) {\r\n initHook('onLoad', options);\r\n return MPPage(options)\r\n };\r\n Page.after = MPPage.after;\r\n\r\n Component = function (options = {}) {\r\n initHook('created', options);\r\n return MPComponent(options)\r\n };\r\n}\r\n\r\nconst PAGE_EVENT_HOOKS = [\r\n 'onPullDownRefresh',\r\n 'onReachBottom',\r\n 'onAddToFavorites',\r\n 'onShareTimeline',\r\n 'onShareAppMessage',\r\n 'onPageScroll',\r\n 'onResize',\r\n 'onTabItemTap'\r\n];\r\n\r\nfunction initMocks (vm, mocks) {\r\n const mpInstance = vm.$mp[vm.mpType];\r\n mocks.forEach(mock => {\r\n if (hasOwn(mpInstance, mock)) {\r\n vm[mock] = mpInstance[mock];\r\n }\r\n });\r\n}\r\n\r\nfunction hasHook (hook, vueOptions) {\r\n if (!vueOptions) {\r\n return true\r\n }\r\n\r\n if (Vue.options && Array.isArray(Vue.options[hook])) {\r\n return true\r\n }\r\n\r\n vueOptions = vueOptions.default || vueOptions;\r\n\r\n if (isFn(vueOptions)) {\r\n if (isFn(vueOptions.extendOptions[hook])) {\r\n return true\r\n }\r\n if (vueOptions.super &&\r\n vueOptions.super.options &&\r\n Array.isArray(vueOptions.super.options[hook])) {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n if (isFn(vueOptions[hook])) {\r\n return true\r\n }\r\n const mixins = vueOptions.mixins;\r\n if (Array.isArray(mixins)) {\r\n return !!mixins.find(mixin => hasHook(hook, mixin))\r\n }\r\n}\r\n\r\nfunction initHooks (mpOptions, hooks, vueOptions) {\r\n hooks.forEach(hook => {\r\n if (hasHook(hook, vueOptions)) {\r\n mpOptions[hook] = function (args) {\r\n return this.$vm && this.$vm.__call_hook(hook, args)\r\n };\r\n }\r\n });\r\n}\r\n\r\nfunction initVueComponent (Vue, vueOptions) {\r\n vueOptions = vueOptions.default || vueOptions;\r\n let VueComponent;\r\n if (isFn(vueOptions)) {\r\n VueComponent = vueOptions;\r\n } else {\r\n VueComponent = Vue.extend(vueOptions);\r\n }\r\n vueOptions = VueComponent.options;\r\n return [VueComponent, vueOptions]\r\n}\r\n\r\nfunction initSlots (vm, vueSlots) {\r\n if (Array.isArray(vueSlots) && vueSlots.length) {\r\n const $slots = Object.create(null);\r\n vueSlots.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n vm.$scopedSlots = vm.$slots = $slots;\r\n }\r\n}\r\n\r\nfunction initVueIds (vueIds, mpInstance) {\r\n vueIds = (vueIds || '').split(',');\r\n const len = vueIds.length;\r\n\r\n if (len === 1) {\r\n mpInstance._$vueId = vueIds[0];\r\n } else if (len === 2) {\r\n mpInstance._$vueId = vueIds[0];\r\n mpInstance._$vuePid = vueIds[1];\r\n }\r\n}\r\n\r\nfunction initData (vueOptions, context) {\r\n let data = vueOptions.data || {};\r\n const methods = vueOptions.methods || {};\r\n\r\n if (typeof data === 'function') {\r\n try {\r\n data = data.call(context); // 支持 Vue.prototype 上挂的数据\r\n } catch (e) {\r\n if (process.env.VUE_APP_DEBUG) {\r\n console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);\r\n }\r\n }\r\n } else {\r\n try {\r\n // 对 data 格式化\r\n data = JSON.parse(JSON.stringify(data));\r\n } catch (e) {}\r\n }\r\n\r\n if (!isPlainObject(data)) {\r\n data = {};\r\n }\r\n\r\n Object.keys(methods).forEach(methodName => {\r\n if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) {\r\n data[methodName] = methods[methodName];\r\n }\r\n });\r\n\r\n return data\r\n}\r\n\r\nconst PROP_TYPES = [String, Number, Boolean, Object, Array, null];\r\n\r\nfunction createObserver (name) {\r\n return function observer (newVal, oldVal) {\r\n if (this.$vm) {\r\n this.$vm[name] = newVal; // 为了触发其他非 render watcher\r\n }\r\n }\r\n}\r\n\r\nfunction initBehaviors (vueOptions, initBehavior) {\r\n const vueBehaviors = vueOptions.behaviors;\r\n const vueExtends = vueOptions.extends;\r\n const vueMixins = vueOptions.mixins;\r\n\r\n let vueProps = vueOptions.props;\r\n\r\n if (!vueProps) {\r\n vueOptions.props = vueProps = [];\r\n }\r\n\r\n const behaviors = [];\r\n if (Array.isArray(vueBehaviors)) {\r\n vueBehaviors.forEach(behavior => {\r\n behaviors.push(behavior.replace('uni://', `${\"wx\"}://`));\r\n if (behavior === 'uni://form-field') {\r\n if (Array.isArray(vueProps)) {\r\n vueProps.push('name');\r\n vueProps.push('value');\r\n } else {\r\n vueProps.name = {\r\n type: String,\r\n default: ''\r\n };\r\n vueProps.value = {\r\n type: [String, Number, Boolean, Array, Object, Date],\r\n default: ''\r\n };\r\n }\r\n }\r\n });\r\n }\r\n if (isPlainObject(vueExtends) && vueExtends.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueExtends.props, true)\r\n })\r\n );\r\n }\r\n if (Array.isArray(vueMixins)) {\r\n vueMixins.forEach(vueMixin => {\r\n if (isPlainObject(vueMixin) && vueMixin.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueMixin.props, true)\r\n })\r\n );\r\n }\r\n });\r\n }\r\n return behaviors\r\n}\r\n\r\nfunction parsePropType (key, type, defaultValue, file) {\r\n // [String]=>String\r\n if (Array.isArray(type) && type.length === 1) {\r\n return type[0]\r\n }\r\n return type\r\n}\r\n\r\nfunction initProperties (props, isBehavior = false, file = '') {\r\n const properties = {};\r\n if (!isBehavior) {\r\n properties.vueId = {\r\n type: String,\r\n value: ''\r\n };\r\n // 用于字节跳动小程序模拟抽象节点\r\n properties.generic = {\r\n type: Object,\r\n value: null\r\n };\r\n // scopedSlotsCompiler auto\r\n properties.scopedSlotsCompiler = {\r\n type: String,\r\n value: ''\r\n };\r\n properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots\r\n type: null,\r\n value: [],\r\n observer: function (newVal, oldVal) {\r\n const $slots = Object.create(null);\r\n newVal.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n this.setData({\r\n $slots\r\n });\r\n }\r\n };\r\n }\r\n if (Array.isArray(props)) { // ['title']\r\n props.forEach(key => {\r\n properties[key] = {\r\n type: null,\r\n observer: createObserver(key)\r\n };\r\n });\r\n } else if (isPlainObject(props)) { // {title:{type:String,default:''},content:String}\r\n Object.keys(props).forEach(key => {\r\n const opts = props[key];\r\n if (isPlainObject(opts)) { // title:{type:String,default:''}\r\n let value = opts.default;\r\n if (isFn(value)) {\r\n value = value();\r\n }\r\n\r\n opts.type = parsePropType(key, opts.type);\r\n\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null,\r\n value,\r\n observer: createObserver(key)\r\n };\r\n } else { // content:String\r\n const type = parsePropType(key, opts);\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(type) !== -1 ? type : null,\r\n observer: createObserver(key)\r\n };\r\n }\r\n });\r\n }\r\n return properties\r\n}\r\n\r\nfunction wrapper$1 (event) {\r\n // TODO 又得兼容 mpvue 的 mp 对象\r\n try {\r\n event.mp = JSON.parse(JSON.stringify(event));\r\n } catch (e) {}\r\n\r\n event.stopPropagation = noop;\r\n event.preventDefault = noop;\r\n\r\n event.target = event.target || {};\r\n\r\n if (!hasOwn(event, 'detail')) {\r\n event.detail = {};\r\n }\r\n\r\n if (hasOwn(event, 'markerId')) {\r\n event.detail = typeof event.detail === 'object' ? event.detail : {};\r\n event.detail.markerId = event.markerId;\r\n }\r\n\r\n if (isPlainObject(event.detail)) {\r\n event.target = Object.assign({}, event.target, event.detail);\r\n }\r\n\r\n return event\r\n}\r\n\r\nfunction getExtraValue (vm, dataPathsArray) {\r\n let context = vm;\r\n dataPathsArray.forEach(dataPathArray => {\r\n const dataPath = dataPathArray[0];\r\n const value = dataPathArray[2];\r\n if (dataPath || typeof value !== 'undefined') { // ['','',index,'disable']\r\n const propPath = dataPathArray[1];\r\n const valuePath = dataPathArray[3];\r\n\r\n let vFor;\r\n if (Number.isInteger(dataPath)) {\r\n vFor = dataPath;\r\n } else if (!dataPath) {\r\n vFor = context;\r\n } else if (typeof dataPath === 'string' && dataPath) {\r\n if (dataPath.indexOf('#s#') === 0) {\r\n vFor = dataPath.substr(3);\r\n } else {\r\n vFor = vm.__get_value(dataPath, context);\r\n }\r\n }\r\n\r\n if (Number.isInteger(vFor)) {\r\n context = value;\r\n } else if (!propPath) {\r\n context = vFor[value];\r\n } else {\r\n if (Array.isArray(vFor)) {\r\n context = vFor.find(vForItem => {\r\n return vm.__get_value(propPath, vForItem) === value\r\n });\r\n } else if (isPlainObject(vFor)) {\r\n context = Object.keys(vFor).find(vForKey => {\r\n return vm.__get_value(propPath, vFor[vForKey]) === value\r\n });\r\n } else {\r\n console.error('v-for 暂不支持循环数据:', vFor);\r\n }\r\n }\r\n\r\n if (valuePath) {\r\n context = vm.__get_value(valuePath, context);\r\n }\r\n }\r\n });\r\n return context\r\n}\r\n\r\nfunction processEventExtra (vm, extra, event) {\r\n const extraObj = {};\r\n\r\n if (Array.isArray(extra) && extra.length) {\r\n /**\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *'test'\r\n */\r\n extra.forEach((dataPath, index) => {\r\n if (typeof dataPath === 'string') {\r\n if (!dataPath) { // model,prop.sync\r\n extraObj['$' + index] = vm;\r\n } else {\r\n if (dataPath === '$event') { // $event\r\n extraObj['$' + index] = event;\r\n } else if (dataPath === 'arguments') {\r\n if (event.detail && event.detail.__args__) {\r\n extraObj['$' + index] = event.detail.__args__;\r\n } else {\r\n extraObj['$' + index] = [event];\r\n }\r\n } else if (dataPath.indexOf('$event.') === 0) { // $event.target.value\r\n extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event);\r\n } else {\r\n extraObj['$' + index] = vm.__get_value(dataPath);\r\n }\r\n }\r\n } else {\r\n extraObj['$' + index] = getExtraValue(vm, dataPath);\r\n }\r\n });\r\n }\r\n\r\n return extraObj\r\n}\r\n\r\nfunction getObjByArray (arr) {\r\n const obj = {};\r\n for (let i = 1; i < arr.length; i++) {\r\n const element = arr[i];\r\n obj[element[0]] = element[1];\r\n }\r\n return obj\r\n}\r\n\r\nfunction processEventArgs (vm, event, args = [], extra = [], isCustom, methodName) {\r\n let isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象\r\n if (isCustom) { // 自定义事件\r\n isCustomMPEvent = event.currentTarget &&\r\n event.currentTarget.dataset &&\r\n event.currentTarget.dataset.comType === 'wx';\r\n if (!args.length) { // 无参数,直接传入 event 或 detail 数组\r\n if (isCustomMPEvent) {\r\n return [event]\r\n }\r\n return event.detail.__args__ || event.detail\r\n }\r\n }\r\n\r\n const extraObj = processEventExtra(vm, extra, event);\r\n\r\n const ret = [];\r\n args.forEach(arg => {\r\n if (arg === '$event') {\r\n if (methodName === '__set_model' && !isCustom) { // input v-model value\r\n ret.push(event.target.value);\r\n } else {\r\n if (isCustom && !isCustomMPEvent) {\r\n ret.push(event.detail.__args__[0]);\r\n } else { // wxcomponent 组件或内置组件\r\n ret.push(event);\r\n }\r\n }\r\n } else {\r\n if (Array.isArray(arg) && arg[0] === 'o') {\r\n ret.push(getObjByArray(arg));\r\n } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) {\r\n ret.push(extraObj[arg]);\r\n } else {\r\n ret.push(arg);\r\n }\r\n }\r\n });\r\n\r\n return ret\r\n}\r\n\r\nconst ONCE = '~';\r\nconst CUSTOM = '^';\r\n\r\nfunction isMatchEventType (eventType, optType) {\r\n return (eventType === optType) ||\r\n (\r\n optType === 'regionchange' &&\r\n (\r\n eventType === 'begin' ||\r\n eventType === 'end'\r\n )\r\n )\r\n}\r\n\r\nfunction getContextVm (vm) {\r\n let $parent = vm.$parent;\r\n // 父组件是 scoped slots 或者其他自定义组件时继续查找\r\n while ($parent && $parent.$parent && ($parent.$options.generic || $parent.$parent.$options.generic || $parent.$scope._$vuePid)) {\r\n $parent = $parent.$parent;\r\n }\r\n return $parent && $parent.$parent\r\n}\r\n\r\nfunction handleEvent (event) {\r\n event = wrapper$1(event);\r\n\r\n // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]]\r\n const dataset = (event.currentTarget || event.target).dataset;\r\n if (!dataset) {\r\n return console.warn('事件信息不存在')\r\n }\r\n const eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰\r\n if (!eventOpts) {\r\n return console.warn('事件信息不存在')\r\n }\r\n\r\n // [['handle',[1,2,a]],['handle1',[1,2,a]]]\r\n const eventType = event.type;\r\n\r\n const ret = [];\r\n\r\n eventOpts.forEach(eventOpt => {\r\n let type = eventOpt[0];\r\n const eventsArray = eventOpt[1];\r\n\r\n const isCustom = type.charAt(0) === CUSTOM;\r\n type = isCustom ? type.slice(1) : type;\r\n const isOnce = type.charAt(0) === ONCE;\r\n type = isOnce ? type.slice(1) : type;\r\n\r\n if (eventsArray && isMatchEventType(eventType, type)) {\r\n eventsArray.forEach(eventArray => {\r\n const methodName = eventArray[0];\r\n if (methodName) {\r\n let handlerCtx = this.$vm;\r\n if (handlerCtx.$options.generic) { // mp-weixin,mp-toutiao 抽象节点模拟 scoped slots\r\n handlerCtx = getContextVm(handlerCtx) || handlerCtx;\r\n }\r\n if (methodName === '$emit') {\r\n handlerCtx.$emit.apply(handlerCtx,\r\n processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n ));\r\n return\r\n }\r\n const handler = handlerCtx[methodName];\r\n if (!isFn(handler)) {\r\n throw new Error(` _vm.${methodName} is not a function`)\r\n }\r\n if (isOnce) {\r\n if (handler.once) {\r\n return\r\n }\r\n handler.once = true;\r\n }\r\n let params = processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n );\r\n params = Array.isArray(params) ? params : [];\r\n // 参数尾部增加原始事件对象用于复杂表达式内获取额外数据\r\n if (/=\\s*\\S+\\.eventParams\\s*\\|\\|\\s*\\S+\\[['\"]event-params['\"]\\]/.test(handler.toString())) {\r\n // eslint-disable-next-line no-sparse-arrays\r\n params = params.concat([, , , , , , , , , , event]);\r\n }\r\n ret.push(handler.apply(handlerCtx, params));\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (\r\n eventType === 'input' &&\r\n ret.length === 1 &&\r\n typeof ret[0] !== 'undefined'\r\n ) {\r\n return ret[0]\r\n }\r\n}\r\n\r\nconst messages = {};\r\n\r\nlet locale;\r\n\r\n{\r\n locale = wx.getSystemInfoSync().language;\r\n}\r\n\r\nfunction initI18nMessages () {\r\n if (!isEnableLocale()) {\r\n return\r\n }\r\n const localeKeys = Object.keys(__uniConfig.locales);\r\n if (localeKeys.length) {\r\n localeKeys.forEach((locale) => {\r\n const curMessages = messages[locale];\r\n const userMessages = __uniConfig.locales[locale];\r\n if (curMessages) {\r\n Object.assign(curMessages, userMessages);\r\n } else {\r\n messages[locale] = userMessages;\r\n }\r\n });\r\n }\r\n}\r\n\r\ninitI18nMessages();\r\n\r\nconst i18n = initVueI18n(\r\n locale,\r\n {}\r\n);\r\nconst t = i18n.t;\r\nconst i18nMixin = (i18n.mixin = {\r\n beforeCreate () {\r\n const unwatch = i18n.i18n.watchLocale(() => {\r\n this.$forceUpdate();\r\n });\r\n this.$once('hook:beforeDestroy', function () {\r\n unwatch();\r\n });\r\n },\r\n methods: {\r\n $$t (key, values) {\r\n return t(key, values)\r\n }\r\n }\r\n});\r\nconst setLocale$1 = i18n.setLocale;\r\nconst getLocale$1 = i18n.getLocale;\r\n\r\nfunction initAppLocale (Vue, appVm, locale) {\r\n const state = Vue.observable({\r\n locale: locale || i18n.getLocale()\r\n });\r\n const localeWatchers = [];\r\n appVm.$watchLocale = fn => {\r\n localeWatchers.push(fn);\r\n };\r\n Object.defineProperty(appVm, '$locale', {\r\n get () {\r\n return state.locale\r\n },\r\n set (v) {\r\n state.locale = v;\r\n localeWatchers.forEach(watch => watch(v));\r\n }\r\n });\r\n}\r\n\r\nfunction isEnableLocale () {\r\n return typeof __uniConfig !== 'undefined' && __uniConfig.locales && !!Object.keys(__uniConfig.locales).length\r\n}\r\n\r\n// export function initI18n() {\r\n// const localeKeys = Object.keys(__uniConfig.locales || {})\r\n// if (localeKeys.length) {\r\n// localeKeys.forEach((locale) =>\r\n// i18n.add(locale, __uniConfig.locales[locale])\r\n// )\r\n// }\r\n// }\r\n\r\nconst eventChannels = {};\r\n\r\nconst eventChannelStack = [];\r\n\r\nfunction getEventChannel (id) {\r\n if (id) {\r\n const eventChannel = eventChannels[id];\r\n delete eventChannels[id];\r\n return eventChannel\r\n }\r\n return eventChannelStack.shift()\r\n}\r\n\r\nconst hooks = [\r\n 'onShow',\r\n 'onHide',\r\n 'onError',\r\n 'onPageNotFound',\r\n 'onThemeChange',\r\n 'onUnhandledRejection'\r\n];\r\n\r\nfunction initEventChannel () {\r\n Vue.prototype.getOpenerEventChannel = function () {\r\n // 微信小程序使用自身getOpenerEventChannel\r\n {\r\n return this.$scope.getOpenerEventChannel()\r\n }\r\n };\r\n const callHook = Vue.prototype.__call_hook;\r\n Vue.prototype.__call_hook = function (hook, args) {\r\n if (hook === 'onLoad' && args && args.__id__) {\r\n this.__eventChannel__ = getEventChannel(args.__id__);\r\n delete args.__id__;\r\n }\r\n return callHook.call(this, hook, args)\r\n };\r\n}\r\n\r\nfunction initScopedSlotsParams () {\r\n const center = {};\r\n const parents = {};\r\n\r\n Vue.prototype.$hasScopedSlotsParams = function (vueId) {\r\n const has = center[vueId];\r\n if (!has) {\r\n parents[vueId] = this;\r\n this.$on('hook:destroyed', () => {\r\n delete parents[vueId];\r\n });\r\n }\r\n return has\r\n };\r\n\r\n Vue.prototype.$getScopedSlotsParams = function (vueId, name, key) {\r\n const data = center[vueId];\r\n if (data) {\r\n const object = data[name] || {};\r\n return key ? object[key] : object\r\n } else {\r\n parents[vueId] = this;\r\n this.$on('hook:destroyed', () => {\r\n delete parents[vueId];\r\n });\r\n }\r\n };\r\n\r\n Vue.prototype.$setScopedSlotsParams = function (name, value) {\r\n const vueIds = this.$options.propsData.vueId;\r\n if (vueIds) {\r\n const vueId = vueIds.split(',')[0];\r\n const object = center[vueId] = center[vueId] || {};\r\n object[name] = value;\r\n if (parents[vueId]) {\r\n parents[vueId].$forceUpdate();\r\n }\r\n }\r\n };\r\n\r\n Vue.mixin({\r\n destroyed () {\r\n const propsData = this.$options.propsData;\r\n const vueId = propsData && propsData.vueId;\r\n if (vueId) {\r\n delete center[vueId];\r\n delete parents[vueId];\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction parseBaseApp (vm, {\r\n mocks,\r\n initRefs\r\n}) {\r\n initEventChannel();\r\n {\r\n initScopedSlotsParams();\r\n }\r\n if (vm.$options.store) {\r\n Vue.prototype.$store = vm.$options.store;\r\n }\r\n uniIdMixin(Vue);\r\n\r\n Vue.prototype.mpHost = \"mp-weixin\";\r\n\r\n Vue.mixin({\r\n beforeCreate () {\r\n if (!this.$options.mpType) {\r\n return\r\n }\r\n\r\n this.mpType = this.$options.mpType;\r\n\r\n this.$mp = {\r\n data: {},\r\n [this.mpType]: this.$options.mpInstance\r\n };\r\n\r\n this.$scope = this.$options.mpInstance;\r\n\r\n delete this.$options.mpType;\r\n delete this.$options.mpInstance;\r\n if (this.mpType === 'page' && typeof getApp === 'function') { // hack vue-i18n\r\n const app = getApp();\r\n if (app.$vm && app.$vm.$i18n) {\r\n this._i18n = app.$vm.$i18n;\r\n }\r\n }\r\n if (this.mpType !== 'app') {\r\n initRefs(this);\r\n initMocks(this, mocks);\r\n }\r\n }\r\n });\r\n\r\n const appOptions = {\r\n onLaunch (args) {\r\n if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前\r\n return\r\n }\r\n {\r\n if (wx.canIUse && !wx.canIUse('nextTick')) { // 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断\r\n console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上');\r\n }\r\n }\r\n\r\n this.$vm = vm;\r\n\r\n this.$vm.$mp = {\r\n app: this\r\n };\r\n\r\n this.$vm.$scope = this;\r\n // vm 上也挂载 globalData\r\n this.$vm.globalData = this.globalData;\r\n\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted', args);\r\n\r\n this.$vm.__call_hook('onLaunch', args);\r\n }\r\n };\r\n\r\n // 兼容旧版本 globalData\r\n appOptions.globalData = vm.$options.globalData || {};\r\n // 将 methods 中的方法挂在 getApp() 中\r\n const methods = vm.$options.methods;\r\n if (methods) {\r\n Object.keys(methods).forEach(name => {\r\n appOptions[name] = methods[name];\r\n });\r\n }\r\n\r\n initAppLocale(Vue, vm, wx.getSystemInfoSync().language || 'zh-Hans');\r\n\r\n initHooks(appOptions, hooks);\r\n\r\n return appOptions\r\n}\r\n\r\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\r\n\r\nfunction findVmByVueId (vm, vuePid) {\r\n const $children = vm.$children;\r\n // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n const childVm = $children[i];\r\n if (childVm.$scope._$vueId === vuePid) {\r\n return childVm\r\n }\r\n }\r\n // 反向递归查找\r\n let parentVm;\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n parentVm = findVmByVueId($children[i], vuePid);\r\n if (parentVm) {\r\n return parentVm\r\n }\r\n }\r\n}\r\n\r\nfunction initBehavior (options) {\r\n return Behavior(options)\r\n}\r\n\r\nfunction isPage () {\r\n return !!this.route\r\n}\r\n\r\nfunction initRelation (detail) {\r\n this.triggerEvent('__l', detail);\r\n}\r\n\r\nfunction selectAllComponents (mpInstance, selector, $refs) {\r\n const components = mpInstance.selectAllComponents(selector);\r\n components.forEach(component => {\r\n const ref = component.dataset.ref;\r\n $refs[ref] = component.$vm || component;\r\n {\r\n if (component.dataset.vueGeneric === 'scoped') {\r\n component.selectAllComponents('.scoped-ref').forEach(scopedComponent => {\r\n selectAllComponents(scopedComponent, selector, $refs);\r\n });\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction initRefs (vm) {\r\n const mpInstance = vm.$scope;\r\n Object.defineProperty(vm, '$refs', {\r\n get () {\r\n const $refs = {};\r\n selectAllComponents(mpInstance, '.vue-ref', $refs);\r\n // TODO 暂不考虑 for 中的 scoped\r\n const forComponents = mpInstance.selectAllComponents('.vue-ref-in-for');\r\n forComponents.forEach(component => {\r\n const ref = component.dataset.ref;\r\n if (!$refs[ref]) {\r\n $refs[ref] = [];\r\n }\r\n $refs[ref].push(component.$vm || component);\r\n });\r\n return $refs\r\n }\r\n });\r\n}\r\n\r\nfunction handleLink (event) {\r\n const {\r\n vuePid,\r\n vueOptions\r\n } = event.detail || event.value; // detail 是微信,value 是百度(dipatch)\r\n\r\n let parentVm;\r\n\r\n if (vuePid) {\r\n parentVm = findVmByVueId(this.$vm, vuePid);\r\n }\r\n\r\n if (!parentVm) {\r\n parentVm = this.$vm;\r\n }\r\n\r\n vueOptions.parent = parentVm;\r\n}\r\n\r\nfunction parseApp (vm) {\r\n return parseBaseApp(vm, {\r\n mocks,\r\n initRefs\r\n })\r\n}\r\n\r\nfunction createApp (vm) {\r\n App(parseApp(vm));\r\n return vm\r\n}\r\n\r\nconst encodeReserveRE = /[!'()*]/g;\r\nconst encodeReserveReplacer = c => '%' + c.charCodeAt(0).toString(16);\r\nconst commaRE = /%2C/g;\r\n\r\n// fixed encodeURIComponent which is more conformant to RFC3986:\r\n// - escapes [!'()*]\r\n// - preserve commas\r\nconst encode = str => encodeURIComponent(str)\r\n .replace(encodeReserveRE, encodeReserveReplacer)\r\n .replace(commaRE, ',');\r\n\r\nfunction stringifyQuery (obj, encodeStr = encode) {\r\n const res = obj ? Object.keys(obj).map(key => {\r\n const val = obj[key];\r\n\r\n if (val === undefined) {\r\n return ''\r\n }\r\n\r\n if (val === null) {\r\n return encodeStr(key)\r\n }\r\n\r\n if (Array.isArray(val)) {\r\n const result = [];\r\n val.forEach(val2 => {\r\n if (val2 === undefined) {\r\n return\r\n }\r\n if (val2 === null) {\r\n result.push(encodeStr(key));\r\n } else {\r\n result.push(encodeStr(key) + '=' + encodeStr(val2));\r\n }\r\n });\r\n return result.join('&')\r\n }\r\n\r\n return encodeStr(key) + '=' + encodeStr(val)\r\n }).filter(x => x.length > 0).join('&') : null;\r\n return res ? `?${res}` : ''\r\n}\r\n\r\nfunction parseBaseComponent (vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n} = {}) {\r\n const [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);\r\n\r\n const options = {\r\n multipleSlots: true,\r\n addGlobalClass: true,\r\n ...(vueOptions.options || {})\r\n };\r\n\r\n {\r\n // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项\r\n if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) {\r\n Object.assign(options, vueOptions['mp-weixin'].options);\r\n }\r\n }\r\n\r\n const componentOptions = {\r\n options,\r\n data: initData(vueOptions, Vue.prototype),\r\n behaviors: initBehaviors(vueOptions, initBehavior),\r\n properties: initProperties(vueOptions.props, false, vueOptions.__file),\r\n lifetimes: {\r\n attached () {\r\n const properties = this.properties;\r\n\r\n const options = {\r\n mpType: isPage.call(this) ? 'page' : 'component',\r\n mpInstance: this,\r\n propsData: properties\r\n };\r\n\r\n initVueIds(properties.vueId, this);\r\n\r\n // 处理父子关系\r\n initRelation.call(this, {\r\n vuePid: this._$vuePid,\r\n vueOptions: options\r\n });\r\n\r\n // 初始化 vue 实例\r\n this.$vm = new VueComponent(options);\r\n\r\n // 处理$slots,$scopedSlots(暂不支持动态变化$slots)\r\n initSlots(this.$vm, properties.vueSlots);\r\n\r\n // 触发首次 setData\r\n this.$vm.$mount();\r\n },\r\n ready () {\r\n // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发\r\n // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800\r\n if (this.$vm) {\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted');\r\n this.$vm.__call_hook('onReady');\r\n }\r\n },\r\n detached () {\r\n this.$vm && this.$vm.$destroy();\r\n }\r\n },\r\n pageLifetimes: {\r\n show (args) {\r\n this.$vm && this.$vm.__call_hook('onPageShow', args);\r\n },\r\n hide () {\r\n this.$vm && this.$vm.__call_hook('onPageHide');\r\n },\r\n resize (size) {\r\n this.$vm && this.$vm.__call_hook('onPageResize', size);\r\n }\r\n },\r\n methods: {\r\n __l: handleLink,\r\n __e: handleEvent\r\n }\r\n };\r\n // externalClasses\r\n if (vueOptions.externalClasses) {\r\n componentOptions.externalClasses = vueOptions.externalClasses;\r\n }\r\n\r\n if (Array.isArray(vueOptions.wxsCallMethods)) {\r\n vueOptions.wxsCallMethods.forEach(callMethod => {\r\n componentOptions.methods[callMethod] = function (args) {\r\n return this.$vm[callMethod](args)\r\n };\r\n });\r\n }\r\n\r\n if (isPage) {\r\n return componentOptions\r\n }\r\n return [componentOptions, VueComponent]\r\n}\r\n\r\nfunction parseComponent (vueComponentOptions) {\r\n return parseBaseComponent(vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n })\r\n}\r\n\r\nconst hooks$1 = [\r\n 'onShow',\r\n 'onHide',\r\n 'onUnload'\r\n];\r\n\r\nhooks$1.push(...PAGE_EVENT_HOOKS);\r\n\r\nfunction parseBasePage (vuePageOptions, {\r\n isPage,\r\n initRelation\r\n}) {\r\n const pageOptions = parseComponent(vuePageOptions);\r\n\r\n initHooks(pageOptions.methods, hooks$1, vuePageOptions);\r\n\r\n pageOptions.methods.onLoad = function (query) {\r\n this.options = query;\r\n const copyQuery = Object.assign({}, query);\r\n delete copyQuery.__id__;\r\n this.$page = {\r\n fullPath: '/' + (this.route || this.is) + stringifyQuery(copyQuery)\r\n };\r\n this.$vm.$mp.query = query; // 兼容 mpvue\r\n this.$vm.__call_hook('onLoad', query);\r\n };\r\n\r\n return pageOptions\r\n}\r\n\r\nfunction parsePage (vuePageOptions) {\r\n return parseBasePage(vuePageOptions, {\r\n isPage,\r\n initRelation\r\n })\r\n}\r\n\r\nfunction createPage (vuePageOptions) {\r\n {\r\n return Component(parsePage(vuePageOptions))\r\n }\r\n}\r\n\r\nfunction createComponent (vueOptions) {\r\n {\r\n return Component(parseComponent(vueOptions))\r\n }\r\n}\r\n\r\nfunction createSubpackageApp (vm) {\r\n const appOptions = parseApp(vm);\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n vm.$scope = app;\r\n const globalData = app.globalData;\r\n if (globalData) {\r\n Object.keys(appOptions.globalData).forEach(name => {\r\n if (!hasOwn(globalData, name)) {\r\n globalData[name] = appOptions.globalData[name];\r\n }\r\n });\r\n }\r\n Object.keys(appOptions).forEach(name => {\r\n if (!hasOwn(app, name)) {\r\n app[name] = appOptions[name];\r\n }\r\n });\r\n if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n wx.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\nfunction createPlugin (vm) {\r\n const appOptions = parseApp(vm);\r\n if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n wx.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\ntodos.forEach(todoApi => {\r\n protocols[todoApi] = false;\r\n});\r\n\r\ncanIUses.forEach(canIUseApi => {\r\n const apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name\r\n : canIUseApi;\r\n if (!wx.canIUse(apiName)) {\r\n protocols[canIUseApi] = false;\r\n }\r\n});\r\n\r\nlet uni = {};\r\n\r\nif (typeof Proxy !== 'undefined' && \"mp-weixin\" !== 'app-plus') {\r\n uni = new Proxy({}, {\r\n get (target, name) {\r\n if (hasOwn(target, name)) {\r\n return target[name]\r\n }\r\n if (baseApi[name]) {\r\n return baseApi[name]\r\n }\r\n if (api[name]) {\r\n return promisify(name, api[name])\r\n }\r\n {\r\n if (extraApi[name]) {\r\n return promisify(name, extraApi[name])\r\n }\r\n if (todoApis[name]) {\r\n return promisify(name, todoApis[name])\r\n }\r\n }\r\n if (eventApi[name]) {\r\n return eventApi[name]\r\n }\r\n if (!hasOwn(wx, name) && !hasOwn(protocols, name)) {\r\n return\r\n }\r\n return promisify(name, wrapper(name, wx[name]))\r\n },\r\n set (target, name, value) {\r\n target[name] = value;\r\n return true\r\n }\r\n });\r\n} else {\r\n Object.keys(baseApi).forEach(name => {\r\n uni[name] = baseApi[name];\r\n });\r\n\r\n {\r\n Object.keys(todoApis).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n Object.keys(extraApi).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n }\r\n\r\n Object.keys(eventApi).forEach(name => {\r\n uni[name] = eventApi[name];\r\n });\r\n\r\n Object.keys(api).forEach(name => {\r\n uni[name] = promisify(name, api[name]);\r\n });\r\n\r\n Object.keys(wx).forEach(name => {\r\n if (hasOwn(wx, name) || hasOwn(protocols, name)) {\r\n uni[name] = promisify(name, wrapper(name, wx[name]));\r\n }\r\n });\r\n}\r\n\r\nwx.createApp = createApp;\r\nwx.createPage = createPage;\r\nwx.createComponent = createComponent;\r\nwx.createSubpackageApp = createSubpackageApp;\r\nwx.createPlugin = createPlugin;\r\n\r\nvar uni$1 = uni;\r\n\r\nexport default uni$1;\r\nexport { createApp, createComponent, createPage, createPlugin, createSubpackageApp };\r\n","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAn1BMVEUAAABis0pYpzlis0piskpis0ljs0pYrkFis0tis0tisklis0lgskhgskhisklesERbsURis0pgskdis0pesEZis0lis0pgskhis0phsklis0pfsUdis0pis0piskpis0pis0pis0pis0pis0pis0phs0lhsklhskhjs0pis0pis0pis0pis0pis0pisklis0pis0pjs0phsklhs0ljs0skK+OrAAAANHRSTlMAgAb4piXICvPmZok0KkgTD7wgtxxxky/RU9YX4Zhr68xir6qyWT863J12e47AXsSh70ROX0/pQwAAIcpJREFUeNrMmAeT4jgQhWUJJxxwzgkb25jgAO///7az4fZuZmdhwoa7ryhDUSC9br1uWSa/FJHSdns8rcphUDtP6foy9bIwdmKDkv8hlDTbbpemZ26SpAQAw0KAGSFgibDiQt8g/x9E53AMXGlvsz5DnoBNACa8Qdql3EUk/z2idd2kSqIASEtMDEya5H0h7MqZnVDs5Vxi/8oGmO1a/6lwUT0WEuR6hLkoiuzMvbb8hr7yzYZXr65nFy9SH5ya/0q3xkVcgpk8kParrLFuljW0S5hlyt+4Wdjw4t1DbTZG+Bs2cj7544jqGUAKgMllZt2MorvpkGMhwivkVMkuzhKTs64ShnudCv2G/Em0k3mVMMMKpREJtXSuqxiQr+7OlbDAltc3WFIpR2OWSVtOkHAj+YPp9pWpkGQGREd/VnxRhBzIb3I7zAxJUJjZbleei0hmkCJpCYMlLNDX27qZdWuH4B7UVLbkD0D9HUsACfk4T2/oXY6/YdPZ9NyrH4vGJo5j3povG0N0nDDzSmFiiKphl+S2TsmM2skAsyWkFiW/Gb9imDlf3c2sOE3+doAUrNwLz7f1Ma12O9s8n+3Var6a9q6svEOoWpp+OF3k1DYTpuu1x1MSu4UUsD2TlN+c7fWEGWZqhDhcxHAj6GprdrUdmN2xbi1nI/6TOypuHL7tlZUZVIdLbF0zU4Ygy0IkcA4RLzZTZEgJx5PfhahZ6U2ySqg23jPMkpMqzqWVVJlGn9qqdcvEPKqidkoZZMbARp8S1bw3k+Pvadz0Ggy3Ha0htNnle4AhOjbadnUee+2D9bCuzLHmW4U77zFjhyJp7oZLf4ez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\"","module.exports = \"data:image/png;base64,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\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode, /* vue-cli only */\n components, // fixed by xxxxxx auto components\n renderjs // fixed by xxxxxx renderjs\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // fixed by xxxxxx auto components\n if (components) {\n if (!options.components) {\n options.components = {}\n }\n var hasOwn = Object.prototype.hasOwnProperty\n for (var name in components) {\n if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) {\n options.components[name] = components[name]\n }\n }\n }\n // fixed by xxxxxx renderjs\n if (renderjs) {\n (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() {\n this[renderjs.__module] = this\n });\n (options.mixins || (options.mixins = [])).push(renderjs)\n }\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import store from \"../store.js\"\r\nimport request from './request.js'\r\nimport alert from './alert.js'\r\n\r\nconst login = {\r\n\tcheckAuth(callback) {\r\n\t\tconsole.log(1);\r\n\t\tif (this.getLocalUserInfo()) {\r\n\t\t\tconsole.log(2);\r\n\t\t\tcallback(true)\r\n\t\t} else {\r\n\t\t\tconsole.log(3);\r\n\t\t\tcallback(false);\r\n\t\t\tconsole.log('未获取到用户本地数据,去获取授权设置', 22222222)\r\n\t\t\tthis.askLogin()\r\n\t\t}\r\n\t},\r\n\r\n\tgetLocalUserInfo() {\r\n\t\tconst user = uni.getStorageSync(\"token\");\r\n\t\tconsole.log('从本地存储中获取用户数据', user, 11111111);\r\n\t\tif (!user) return false;\r\n\t\tif (!user.token) return false;\r\n\t\tstore.commit('saveToken', user);\r\n\t\treturn true\r\n\t},\r\n\r\n\tnoCase() {\r\n\t\talert.showError('案件不存在');\r\n\t\tsetTimeout(() => {\r\n\t\t\tuni.switchTab({\r\n\t\t\t\turl: '/pages/case/caseList/caseList'\r\n\t\t\t});\r\n\t\t}, 1500);\r\n\t},\r\n\r\n\taskLogin() {\r\n\t\tuni.showModal({\r\n\t\t\ttitle: '尚未登录',\r\n\t\t\tcontent: '前往授权登录页面吗?',\r\n\t\t\tsuccess(res) {\r\n\t\t\t\tconsole.log(res)\r\n\t\t\t\tif (res.confirm) {\r\n\t\t\t\t\tuni.navigateTo({\r\n\t\t\t\t\t\turl: '/pages/login/login'\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\r\n\tgetUserProfile(data) {\r\n\t\tconst that = this;\r\n\t\tconsole.log(data);\r\n\t\t// return\r\n\t\twx.getUserProfile({\r\n\t\t\tlang: 'zh_CN',\r\n\t\t\tdesc: '用于完善会员资料',\r\n\t\t success (res) {\r\n\t\t\t\tthat.login(data,res)\r\n\t\t },\r\n\t\t\tfail (e) {\r\n\t\t\t\tconsole.error('获取用户身份信息失败了', e);\r\n\t\t\t\talert.showError('获取失败')\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\r\n\tlogin(data) {\r\n\t\tconst that = this;\r\n\t\tuni.showLoading({\r\n\t\t\ttitle: '登录中',\r\n\t\t});\r\n\t\twx.login({\r\n\t\t\tsuccess: res => {\r\n\t\t\t\tconsole.log(res, '----------- login获取的 -----------')\r\n\t\t\t\tconst code = res.code;\r\n\t\t\t\tconsole.log(res.code);\r\n\t\t\t\trequest.post('/api/Accounts/SignIn', {\r\n\t\t\t\t\twechatToken:code,\r\n\t\t\t\t\tusername:data.name,\r\n\t\t\t\t\tpassword:data.password\r\n\t\t\t\t}, function(data, res) {\r\n\t\t\t\t\tuni.hideLoading();\r\n\t\t\t\t\tconsole.log(data, res ,'----------后端传回来的----------')\r\n\t\t\t\t\tif(res.status==500){\r\n\t\t\t\t\t\treturn alert.showError(\"用户名或密码错误\")\r\n\t\t\t\t\t}\r\n\t\t\t\t\tuni.setStorageSync(\"token\", res)\r\n\t\t\t\t\tstore.commit('saveToken', res)\r\n\t\t\t\t\tconsole.log(store.state.token);\r\n\t\t\t\t\trequest.get(\"/api/Accounts/Profile\", {}, (data, res) => {\r\n\t\t\t\t\t\tconsole.log(res);\r\n\t\t\t\t\t\tuni.setStorageSync(\"user\", res)\r\n\t\t\t\t\t\tuni.reLaunch({\r\n\t\t\t\t\t\t\turl: \"/pages/index/index\",\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t})\r\n\t\t\t\t\t\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\tfail: err => {\r\n\t\t\t\tconsole.error(err, 8877897)\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\r\n\tlogout() {\r\n\t\tstore.state.user = {\r\n\t\t\tuser: null,\r\n\t\t\tpath: '/pages/login/login'\r\n\t\t}\r\n\t\tstore.commit('saveToken', null)\r\n\t\t// uni.setStorageSync(\"token\",null);\r\n\t\tuni.clearStorage();\r\n\t\tuni.reLaunch({\r\n\t\t\turl: '/pages/login/login'\r\n\t\t})\r\n\t\t\t\r\n\t\tconsole.log('退出登录。。。', this.user)\r\n\t},\r\n\r\n\r\n\r\n}\r\n\r\nexport default login\r\n","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nVue.use(Vuex)\r\n\r\nconst store = new Vuex.Store({\r\n\tstate: {\r\n\t\ttoken: null,\r\n\t\tpath: '/pages/index/index',\r\n\t\tpeople: {\r\n\t\t\tid: null,\r\n\t\t\tname: null,\r\n\t\t\ttag: null\r\n\t\t},\r\n\t\ttaskType:'',\r\n\t},\r\n\tmutations: {\r\n\t\tsavePath (state, path) {\r\n\t\t\tstate.path = path;\r\n\t\t},\r\n\t\tsaveToken (state, token) {\r\n\t\t\tstate.token = token\r\n\t\t},\r\n\t\tsavePeople (state, people){\r\n\t\t\tstate.people = people\r\n\t\t},\r\n\t\tsaveTaskType (state, taskType){\r\n\t\t\tstate.taskType = taskType\r\n\t\t},\r\n\t},\r\n\tactions: {},\r\n})\r\nexport default store\r\n","import{initVueI18n as e}from\"@dcloudio/uni-i18n\";\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}function n(e,t,n){return e(n={path:t,exports:{},require:function(e,t){return function(){throw new Error(\"Dynamic requires are not currently supported by @rollup/plugin-commonjs\")}(null==t&&n.path)}},n.exports),n.exports}var s=n((function(e,t){var n;e.exports=(n=n||function(e,t){var n=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),s={},r=s.lib={},o=r.Base={extend:function(e){var t=n(this);return e&&t.mixIn(e),t.hasOwnProperty(\"init\")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty(\"toString\")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},i=r.WordArray=o.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n!=t?n:4*e.length},toString:function(e){return(e||c).stringify(this)},concat:function(e){var t=this.words,n=e.words,s=this.sigBytes,r=e.sigBytes;if(this.clamp(),s%4)for(var o=0;o<r;o++){var i=n[o>>>2]>>>24-o%4*8&255;t[s+o>>>2]|=i<<24-(s+o)%4*8}else for(o=0;o<r;o+=4)t[s+o>>>2]=n[o>>>2];return this.sigBytes+=r,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=o.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var n,s=[],r=function(t){t=t;var n=987654321,s=4294967295;return function(){var r=((n=36969*(65535&n)+(n>>16)&s)<<16)+(t=18e3*(65535&t)+(t>>16)&s)&s;return r/=4294967296,(r+=.5)*(e.random()>.5?1:-1)}},o=0;o<t;o+=4){var a=r(4294967296*(n||e.random()));n=987654071*a(),s.push(4294967296*a()|0)}return new i.init(s,t)}}),a=s.enc={},c=a.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,s=[],r=0;r<n;r++){var o=t[r>>>2]>>>24-r%4*8&255;s.push((o>>>4).toString(16)),s.push((15&o).toString(16))}return s.join(\"\")},parse:function(e){for(var t=e.length,n=[],s=0;s<t;s+=2)n[s>>>3]|=parseInt(e.substr(s,2),16)<<24-s%8*4;return new i.init(n,t/2)}},u=a.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,s=[],r=0;r<n;r++){var o=t[r>>>2]>>>24-r%4*8&255;s.push(String.fromCharCode(o))}return s.join(\"\")},parse:function(e){for(var t=e.length,n=[],s=0;s<t;s++)n[s>>>2]|=(255&e.charCodeAt(s))<<24-s%4*8;return new i.init(n,t)}},h=a.Utf8={stringify:function(e){try{return decodeURIComponent(escape(u.stringify(e)))}catch(e){throw new Error(\"Malformed UTF-8 data\")}},parse:function(e){return u.parse(unescape(encodeURIComponent(e)))}},l=r.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new i.init,this._nDataBytes=0},_append:function(e){\"string\"==typeof e&&(e=h.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,s=n.words,r=n.sigBytes,o=this.blockSize,a=r/(4*o),c=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*o,u=e.min(4*c,r);if(c){for(var h=0;h<c;h+=o)this._doProcessBlock(s,h);var l=s.splice(0,c);n.sigBytes-=u}return new i.init(l,u)},clone:function(){var e=o.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});r.Hasher=l.extend({cfg:o.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new d.HMAC.init(e,n).finalize(t)}}});var d=s.algo={};return s}(Math),n)})),r=(n((function(e,t){var n;e.exports=(n=s,function(e){var t=n,s=t.lib,r=s.WordArray,o=s.Hasher,i=t.algo,a=[];!function(){for(var t=0;t<64;t++)a[t]=4294967296*e.abs(e.sin(t+1))|0}();var c=i.MD5=o.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var n=0;n<16;n++){var s=t+n,r=e[s];e[s]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8)}var o=this._hash.words,i=e[t+0],c=e[t+1],f=e[t+2],p=e[t+3],g=e[t+4],m=e[t+5],y=e[t+6],_=e[t+7],w=e[t+8],k=e[t+9],S=e[t+10],v=e[t+11],T=e[t+12],A=e[t+13],P=e[t+14],I=e[t+15],b=o[0],O=o[1],E=o[2],C=o[3];b=u(b,O,E,C,i,7,a[0]),C=u(C,b,O,E,c,12,a[1]),E=u(E,C,b,O,f,17,a[2]),O=u(O,E,C,b,p,22,a[3]),b=u(b,O,E,C,g,7,a[4]),C=u(C,b,O,E,m,12,a[5]),E=u(E,C,b,O,y,17,a[6]),O=u(O,E,C,b,_,22,a[7]),b=u(b,O,E,C,w,7,a[8]),C=u(C,b,O,E,k,12,a[9]),E=u(E,C,b,O,S,17,a[10]),O=u(O,E,C,b,v,22,a[11]),b=u(b,O,E,C,T,7,a[12]),C=u(C,b,O,E,A,12,a[13]),E=u(E,C,b,O,P,17,a[14]),b=h(b,O=u(O,E,C,b,I,22,a[15]),E,C,c,5,a[16]),C=h(C,b,O,E,y,9,a[17]),E=h(E,C,b,O,v,14,a[18]),O=h(O,E,C,b,i,20,a[19]),b=h(b,O,E,C,m,5,a[20]),C=h(C,b,O,E,S,9,a[21]),E=h(E,C,b,O,I,14,a[22]),O=h(O,E,C,b,g,20,a[23]),b=h(b,O,E,C,k,5,a[24]),C=h(C,b,O,E,P,9,a[25]),E=h(E,C,b,O,p,14,a[26]),O=h(O,E,C,b,w,20,a[27]),b=h(b,O,E,C,A,5,a[28]),C=h(C,b,O,E,f,9,a[29]),E=h(E,C,b,O,_,14,a[30]),b=l(b,O=h(O,E,C,b,T,20,a[31]),E,C,m,4,a[32]),C=l(C,b,O,E,w,11,a[33]),E=l(E,C,b,O,v,16,a[34]),O=l(O,E,C,b,P,23,a[35]),b=l(b,O,E,C,c,4,a[36]),C=l(C,b,O,E,g,11,a[37]),E=l(E,C,b,O,_,16,a[38]),O=l(O,E,C,b,S,23,a[39]),b=l(b,O,E,C,A,4,a[40]),C=l(C,b,O,E,i,11,a[41]),E=l(E,C,b,O,p,16,a[42]),O=l(O,E,C,b,y,23,a[43]),b=l(b,O,E,C,k,4,a[44]),C=l(C,b,O,E,T,11,a[45]),E=l(E,C,b,O,I,16,a[46]),b=d(b,O=l(O,E,C,b,f,23,a[47]),E,C,i,6,a[48]),C=d(C,b,O,E,_,10,a[49]),E=d(E,C,b,O,P,15,a[50]),O=d(O,E,C,b,m,21,a[51]),b=d(b,O,E,C,T,6,a[52]),C=d(C,b,O,E,p,10,a[53]),E=d(E,C,b,O,S,15,a[54]),O=d(O,E,C,b,c,21,a[55]),b=d(b,O,E,C,w,6,a[56]),C=d(C,b,O,E,I,10,a[57]),E=d(E,C,b,O,y,15,a[58]),O=d(O,E,C,b,A,21,a[59]),b=d(b,O,E,C,g,6,a[60]),C=d(C,b,O,E,v,10,a[61]),E=d(E,C,b,O,f,15,a[62]),O=d(O,E,C,b,k,21,a[63]),o[0]=o[0]+b|0,o[1]=o[1]+O|0,o[2]=o[2]+E|0,o[3]=o[3]+C|0},_doFinalize:function(){var t=this._data,n=t.words,s=8*this._nDataBytes,r=8*t.sigBytes;n[r>>>5]|=128<<24-r%32;var o=e.floor(s/4294967296),i=s;n[15+(r+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),n[14+(r+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),t.sigBytes=4*(n.length+1),this._process();for(var a=this._hash,c=a.words,u=0;u<4;u++){var h=c[u];c[u]=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8)}return a},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});function u(e,t,n,s,r,o,i){var a=e+(t&n|~t&s)+r+i;return(a<<o|a>>>32-o)+t}function h(e,t,n,s,r,o,i){var a=e+(t&s|n&~s)+r+i;return(a<<o|a>>>32-o)+t}function l(e,t,n,s,r,o,i){var a=e+(t^n^s)+r+i;return(a<<o|a>>>32-o)+t}function d(e,t,n,s,r,o,i){var a=e+(n^(t|~s))+r+i;return(a<<o|a>>>32-o)+t}t.MD5=o._createHelper(c),t.HmacMD5=o._createHmacHelper(c)}(Math),n.MD5)})),n((function(e,t){var n,r,o;e.exports=(r=(n=s).lib.Base,o=n.enc.Utf8,void(n.algo.HMAC=r.extend({init:function(e,t){e=this._hasher=new e.init,\"string\"==typeof t&&(t=o.parse(t));var n=e.blockSize,s=4*n;t.sigBytes>s&&(t=e.finalize(t)),t.clamp();for(var r=this._oKey=t.clone(),i=this._iKey=t.clone(),a=r.words,c=i.words,u=0;u<n;u++)a[u]^=1549556828,c[u]^=909522486;r.sigBytes=i.sigBytes=s,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,n=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(n))}})))})),n((function(e,t){e.exports=s.HmacMD5})));const o=\"FUNCTION\",i=\"OBJECT\",a=\"CLIENT_DB\";function c(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function u(e){return\"object\"===c(e)}function h(e){return e&&\"string\"==typeof e?JSON.parse(e):e}const l=\"development\"===process.env.NODE_ENV,d=process.env.VUE_APP_PLATFORM,f=h(process.env.UNICLOUD_DEBUG),p=h(process.env.UNI_CLOUD_PROVIDER),g=process.env.RUN_BY_HBUILDERX;let m=\"\";try{{const e=require(\"uni-stat-config\").default||require(\"uni-stat-config\");m=e.appid}}catch(e){}let y={};function _(e,t={}){var n,s;return n=y,s=e,Object.prototype.hasOwnProperty.call(n,s)||(y[e]=t),y[e]}\"app-plus\"===d&&(y=uni._globalUniCloudObj?uni._globalUniCloudObj:uni._globalUniCloudObj={});const w=[\"invoke\",\"success\",\"fail\",\"complete\"],k=_(\"_globalUniCloudInterceptor\");function S(e,t){k[e]||(k[e]={}),u(t)&&Object.keys(t).forEach((n=>{w.indexOf(n)>-1&&function(e,t,n){let s=k[e][t];s||(s=k[e][t]=[]),-1===s.indexOf(n)&&\"function\"==typeof n&&s.push(n)}(e,n,t[n])}))}function v(e,t){k[e]||(k[e]={}),u(t)?Object.keys(t).forEach((n=>{w.indexOf(n)>-1&&function(e,t,n){const s=k[e][t];if(!s)return;const r=s.indexOf(n);r>-1&&s.splice(r,1)}(e,n,t[n])})):delete k[e]}function T(e,t){return e&&0!==e.length?e.reduce(((e,n)=>e.then((()=>n(t)))),Promise.resolve()):Promise.resolve()}function A(e,t){return k[e]&&k[e][t]||[]}function P(e,t){return t?function(n){let s,r=!1;if(\"callFunction\"===t){const e=n&&n.type||o;r=e!==o}s=this.isReady?Promise.resolve():this.initUniCloud,n=n||{};const i=s.then((()=>r?Promise.resolve():T(A(t,\"invoke\"),n))).then((()=>e.call(this,n))).then((e=>r?Promise.resolve(e):T(A(t,\"success\"),e).then((()=>T(A(t,\"complete\"),e))).then((()=>Promise.resolve(e)))),(e=>r?Promise.reject(e):T(A(t,\"fail\"),e).then((()=>T(A(t,\"complete\"),e))).then((()=>Promise.reject(e)))));if(!(n.success||n.fail||n.complete))return i;i.then((e=>{n.success&&n.success(e),n.complete&&n.complete(e)}),(e=>{n.fail&&n.fail(e),n.complete&&n.complete(e)}))}:function(t){if(!((t=t||{}).success||t.fail||t.complete))return e.call(this,t);e.call(this,t).then((e=>{t.success&&t.success(e),t.complete&&t.complete(e)}),(e=>{t.fail&&t.fail(e),t.complete&&t.complete(e)}))}}class I extends Error{constructor(e){super(e.message),this.errMsg=e.message||\"\",this.errCode=this.code=e.code,this.requestId=e.requestId,Object.defineProperties(this,{message:{get(){return this.errMsg},set(e){this.errMsg=e}}})}}let b;function O(){const e=uni.getLocale&&uni.getLocale()||\"en\";if(b)return{...b,LOCALE:e};const{deviceId:t,platform:n}=uni.getSystemInfoSync();return b={PLATFORM:d,OS:n,APPID:m,DEVICEID:t,CLIENT_SDK_VERSION:\"1.0.25\"},{...b,LOCALE:e}}var E={sign:function(e,t){let n=\"\";return Object.keys(e).sort().forEach((function(t){e[t]&&(n=n+\"&\"+t+\"=\"+e[t])})),n=n.slice(1),r(n,t).toString()},wrappedRequest:function(e,t){return new Promise(((n,s)=>{t(Object.assign(e,{complete(e){e||(e={}),l&&\"h5\"===d&&e.errMsg&&0===e.errMsg.indexOf(\"request:fail\")&&console.warn(\"发布H5,需要在uniCloud后台操作,绑定安全域名,否则会因为跨域问题而无法访问。教程参考:https://uniapp.dcloud.io/uniCloud/quickstart?id=useinh5\");const t=e.data&&e.data.header&&e.data.header[\"x-serverless-request-id\"]||e.header&&e.header[\"request-id\"];if(!e.statusCode||e.statusCode>=400)return s(new I({code:\"SYS_ERR\",message:e.errMsg||\"request:fail\",requestId:t}));const r=e.data;if(r.error)return s(new I({code:r.error.code,message:r.error.message,requestId:t}));r.result=r.data,r.requestId=t,delete r.data,n(r)}}))}))}};var C={request:e=>uni.request(e),uploadFile:e=>uni.uploadFile(e),setStorageSync:(e,t)=>uni.setStorageSync(e,t),getStorageSync:e=>uni.getStorageSync(e),removeStorageSync:e=>uni.removeStorageSync(e),clearStorageSync:()=>uni.clearStorageSync()},U={\"uniCloud.init.paramRequired\":\"{param} required\",\"uniCloud.uploadFile.fileError\":\"filePath should be instance of File\"};const{t:x}=e({\"zh-Hans\":{\"uniCloud.init.paramRequired\":\"缺少参数:{param}\",\"uniCloud.uploadFile.fileError\":\"filePath应为File对象\"},\"zh-Hant\":{\"uniCloud.init.paramRequired\":\"缺少参数:{param}\",\"uniCloud.uploadFile.fileError\":\"filePath应为File对象\"},en:U,fr:{\"uniCloud.init.paramRequired\":\"{param} required\",\"uniCloud.uploadFile.fileError\":\"filePath should be instance of File\"},es:{\"uniCloud.init.paramRequired\":\"{param} required\",\"uniCloud.uploadFile.fileError\":\"filePath should be instance of File\"},ja:U},\"zh-Hans\");var D=class{constructor(e){[\"spaceId\",\"clientSecret\"].forEach((t=>{if(!Object.prototype.hasOwnProperty.call(e,t))throw new Error(x(\"uniCloud.init.paramRequired\",{param:t}))})),this.config=Object.assign({},{endpoint:\"https://api.bspapp.com\"},e),this.config.provider=\"aliyun\",this.config.requestUrl=this.config.endpoint+\"/client\",this.config.envType=this.config.envType||\"public\",this.config.accessTokenKey=\"access_token_\"+this.config.spaceId,this.adapter=C,this._getAccessTokenPromise=null,this._getAccessTokenPromiseStatus=null}get hasAccessToken(){return!!this.accessToken}setAccessToken(e){this.accessToken=e}requestWrapped(e){return E.wrappedRequest(e,this.adapter.request)}requestAuth(e){return this.requestWrapped(e)}request(e,t){return Promise.resolve().then((()=>this.hasAccessToken?t?this.requestWrapped(e):this.requestWrapped(e).catch((t=>new Promise(((e,n)=>{!t||\"GATEWAY_INVALID_TOKEN\"!==t.code&&\"InvalidParameter.InvalidToken\"!==t.code?n(t):e()})).then((()=>this.getAccessToken())).then((()=>{const t=this.rebuildRequest(e);return this.request(t,!0)})))):this.getAccessToken().then((()=>{const t=this.rebuildRequest(e);return this.request(t,!0)}))))}rebuildRequest(e){const t=Object.assign({},e);return t.data.token=this.accessToken,t.header[\"x-basement-token\"]=this.accessToken,t.header[\"x-serverless-sign\"]=E.sign(t.data,this.config.clientSecret),t}setupRequest(e,t){const n=Object.assign({},e,{spaceId:this.config.spaceId,timestamp:Date.now()}),s={\"Content-Type\":\"application/json\"};return\"auth\"!==t&&(n.token=this.accessToken,s[\"x-basement-token\"]=this.accessToken),s[\"x-serverless-sign\"]=E.sign(n,this.config.clientSecret),{url:this.config.requestUrl,method:\"POST\",data:n,dataType:\"json\",header:s}}getAccessToken(){if(\"pending\"===this._getAccessTokenPromiseStatus)return this._getAccessTokenPromise;this._getAccessTokenPromiseStatus=\"pending\";return this._getAccessTokenPromise=this.requestAuth(this.setupRequest({method:\"serverless.auth.user.anonymousAuthorize\",params:\"{}\"},\"auth\")).then((e=>new Promise(((t,n)=>{e.result&&e.result.accessToken?(this.setAccessToken(e.result.accessToken),this._getAccessTokenPromiseStatus=\"fulfilled\",t(this.accessToken)):(this._getAccessTokenPromiseStatus=\"rejected\",n(new I({code:\"AUTH_FAILED\",message:\"获取accessToken失败\"})))}))),(e=>(this._getAccessTokenPromiseStatus=\"rejected\",Promise.reject(e)))),this._getAccessTokenPromise}authorize(){this.getAccessToken()}callFunction(e){const t={method:\"serverless.function.runtime.invoke\",params:JSON.stringify({functionTarget:e.name,functionArgs:e.data||{}})};return this.request(this.setupRequest(t))}getOSSUploadOptionsFromPath(e){const t={method:\"serverless.file.resource.generateProximalSign\",params:JSON.stringify(e)};return this.request(this.setupRequest(t))}uploadFileToOSS({url:e,formData:t,name:n,filePath:s,fileType:r,onUploadProgress:o}){return new Promise(((i,a)=>{const c=this.adapter.uploadFile({url:e,formData:t,name:n,filePath:s,fileType:r,header:{\"X-OSS-server-side-encrpytion\":\"AES256\"},success(e){e&&e.statusCode<400?i(e):a(new I({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))},fail(e){a(new I({code:e.code||\"UPLOAD_FAILED\",message:e.message||e.errMsg||\"文件上传失败\"}))}});\"function\"==typeof o&&c&&\"function\"==typeof c.onProgressUpdate&&c.onProgressUpdate((e=>{o({loaded:e.totalBytesSent,total:e.totalBytesExpectedToSend})}))}))}reportOSSUpload(e){const t={method:\"serverless.file.resource.report\",params:JSON.stringify(e)};return this.request(this.setupRequest(t))}uploadFile({filePath:e,cloudPath:t,fileType:n=\"image\",onUploadProgress:s,config:r}){if(\"string\"!==c(t))throw new I({code:\"INVALID_PARAM\",message:\"cloudPath必须为字符串类型\"});if(!(t=t.trim()))throw new I({code:\"CLOUDPATH_REQUIRED\",message:\"cloudPath不可为空\"});if(/:\\/\\//.test(t))throw new I({code:\"INVALID_PARAM\",message:\"cloudPath不合法\"});const o=r&&r.envType||this.config.envType;let i,a;return this.getOSSUploadOptionsFromPath({env:o,filename:t}).then((t=>{const r=t.result;i=r.id,a=\"https://\"+r.cdnDomain+\"/\"+r.ossPath;const o={url:\"https://\"+r.host,formData:{\"Cache-Control\":\"max-age=2592000\",\"Content-Disposition\":\"attachment\",OSSAccessKeyId:r.accessKeyId,Signature:r.signature,host:r.host,id:i,key:r.ossPath,policy:r.policy,success_action_status:200},fileName:\"file\",name:\"file\",filePath:e,fileType:n};return this.uploadFileToOSS(Object.assign({},o,{onUploadProgress:s}))})).then((()=>this.reportOSSUpload({id:i}))).then((t=>new Promise(((n,s)=>{t.success?n({success:!0,filePath:e,fileID:a}):s(new I({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))}))))}deleteFile({fileList:e}){const t={method:\"serverless.file.resource.delete\",params:JSON.stringify({id:e[0]})};return this.request(this.setupRequest(t))}getTempFileURL({fileList:e}={}){return new Promise(((t,n)=>{Array.isArray(e)&&0!==e.length||n(new I({code:\"INVALID_PARAM\",message:\"fileList的元素必须是非空的字符串\"})),t({fileList:e.map((e=>({fileID:e,tempFileURL:e})))})}))}};var q={init(e){const t=new D(e),n={signInAnonymously:function(){return t.authorize()},getLoginState:function(){return Promise.resolve(!1)}};return t.auth=function(){return n},t.customAuth=t.auth,t}};const R=\"undefined\"!=typeof location&&\"http:\"===location.protocol?\"http:\":\"https:\";var L;!function(e){e.local=\"local\",e.none=\"none\",e.session=\"session\"}(L||(L={}));var F=function(){};const N=()=>{let e;if(!Promise){e=()=>{},e.promise={};const t=()=>{throw new Error('Your Node runtime does support ES6 Promises. Set \"global.Promise\" to your preferred implementation of promises.')};return Object.defineProperty(e.promise,\"then\",{get:t}),Object.defineProperty(e.promise,\"catch\",{get:t}),e}const t=new Promise(((t,n)=>{e=(e,s)=>e?n(e):t(s)}));return e.promise=t,e};function $(e){return void 0===e}function j(e){return\"[object Null]\"===Object.prototype.toString.call(e)}var M;function B(e){const t=(n=e,\"[object Array]\"===Object.prototype.toString.call(n)?e:[e]);var n;for(const e of t){const{isMatch:t,genAdapter:n,runtime:s}=e;if(t())return{adapter:n(),runtime:s}}}!function(e){e.WEB=\"web\",e.WX_MP=\"wx_mp\"}(M||(M={}));const K={adapter:null,runtime:void 0},H=[\"anonymousUuidKey\"];class W extends F{constructor(){super(),K.adapter.root.tcbObject||(K.adapter.root.tcbObject={})}setItem(e,t){K.adapter.root.tcbObject[e]=t}getItem(e){return K.adapter.root.tcbObject[e]}removeItem(e){delete K.adapter.root.tcbObject[e]}clear(){delete K.adapter.root.tcbObject}}function z(e,t){switch(e){case\"local\":return t.localStorage||new W;case\"none\":return new W;default:return t.sessionStorage||new W}}class J{constructor(e){if(!this._storage){this._persistence=K.adapter.primaryStorage||e.persistence,this._storage=z(this._persistence,K.adapter);const t=`access_token_${e.env}`,n=`access_token_expire_${e.env}`,s=`refresh_token_${e.env}`,r=`anonymous_uuid_${e.env}`,o=`login_type_${e.env}`,i=`user_info_${e.env}`;this.keys={accessTokenKey:t,accessTokenExpireKey:n,refreshTokenKey:s,anonymousUuidKey:r,loginTypeKey:o,userInfoKey:i}}}updatePersistence(e){if(e===this._persistence)return;const t=\"local\"===this._persistence;this._persistence=e;const n=z(e,K.adapter);for(const e in this.keys){const s=this.keys[e];if(t&&H.includes(e))continue;const r=this._storage.getItem(s);$(r)||j(r)||(n.setItem(s,r),this._storage.removeItem(s))}this._storage=n}setStore(e,t,n){if(!this._storage)return;const s={version:n||\"localCachev1\",content:t},r=JSON.stringify(s);try{this._storage.setItem(e,r)}catch(e){throw e}}getStore(e,t){try{if(!this._storage)return}catch(e){return\"\"}t=t||\"localCachev1\";const n=this._storage.getItem(e);if(!n)return\"\";if(n.indexOf(t)>=0){return JSON.parse(n).content}return\"\"}removeStore(e){this._storage.removeItem(e)}}const V={},Y={};function X(e){return V[e]}class G{constructor(e,t){this.data=t||null,this.name=e}}class Q extends G{constructor(e,t){super(\"error\",{error:e,data:t}),this.error=e}}const Z=new class{constructor(){this._listeners={}}on(e,t){return function(e,t,n){n[e]=n[e]||[],n[e].push(t)}(e,t,this._listeners),this}off(e,t){return function(e,t,n){if(n&&n[e]){const s=n[e].indexOf(t);-1!==s&&n[e].splice(s,1)}}(e,t,this._listeners),this}fire(e,t){if(e instanceof Q)return console.error(e.error),this;const n=\"string\"==typeof e?new G(e,t||{}):e;const s=n.name;if(this._listens(s)){n.target=this;const e=this._listeners[s]?[...this._listeners[s]]:[];for(const t of e)t.call(this,n)}return this}_listens(e){return this._listeners[e]&&this._listeners[e].length>0}};function ee(e,t){Z.on(e,t)}function te(e,t={}){Z.fire(e,t)}function ne(e,t){Z.off(e,t)}const se=\"loginStateChanged\",re=\"loginStateExpire\",oe=\"loginTypeChanged\",ie=\"anonymousConverted\",ae=\"refreshAccessToken\";var ce;!function(e){e.ANONYMOUS=\"ANONYMOUS\",e.WECHAT=\"WECHAT\",e.WECHAT_PUBLIC=\"WECHAT-PUBLIC\",e.WECHAT_OPEN=\"WECHAT-OPEN\",e.CUSTOM=\"CUSTOM\",e.EMAIL=\"EMAIL\",e.USERNAME=\"USERNAME\",e.NULL=\"NULL\"}(ce||(ce={}));const ue=[\"auth.getJwt\",\"auth.logout\",\"auth.signInWithTicket\",\"auth.signInAnonymously\",\"auth.signIn\",\"auth.fetchAccessTokenWithRefreshToken\",\"auth.signUpWithEmailAndPassword\",\"auth.activateEndUserMail\",\"auth.sendPasswordResetEmail\",\"auth.resetPasswordWithToken\",\"auth.isUsernameRegistered\"],he={\"X-SDK-Version\":\"1.3.5\"};function le(e,t,n){const s=e[t];e[t]=function(t){const r={},o={};n.forEach((n=>{const{data:s,headers:i}=n.call(e,t);Object.assign(r,s),Object.assign(o,i)}));const i=t.data;return i&&(()=>{var e;if(e=i,\"[object FormData]\"!==Object.prototype.toString.call(e))t.data={...i,...r};else for(const e in r)i.append(e,r[e])})(),t.headers={...t.headers||{},...o},s.call(e,t)}}function de(){const e=Math.random().toString(16).slice(2);return{data:{seqId:e},headers:{...he,\"x-seqid\":e}}}class fe{constructor(e={}){var t;this.config=e,this._reqClass=new K.adapter.reqClass({timeout:this.config.timeout,timeoutMsg:`请求在${this.config.timeout/1e3}s内未完成,已中断`,restrictedMethods:[\"post\"]}),this._cache=X(this.config.env),this._localCache=(t=this.config.env,Y[t]),le(this._reqClass,\"post\",[de]),le(this._reqClass,\"upload\",[de]),le(this._reqClass,\"download\",[de])}async post(e){return await this._reqClass.post(e)}async upload(e){return await this._reqClass.upload(e)}async download(e){return await this._reqClass.download(e)}async refreshAccessToken(){let e,t;this._refreshAccessTokenPromise||(this._refreshAccessTokenPromise=this._refreshAccessToken());try{e=await this._refreshAccessTokenPromise}catch(e){t=e}if(this._refreshAccessTokenPromise=null,this._shouldRefreshAccessTokenHook=null,t)throw t;return e}async _refreshAccessToken(){const{accessTokenKey:e,accessTokenExpireKey:t,refreshTokenKey:n,loginTypeKey:s,anonymousUuidKey:r}=this._cache.keys;this._cache.removeStore(e),this._cache.removeStore(t);let o=this._cache.getStore(n);if(!o)throw new Error(\"未登录CloudBase\");const i={refresh_token:o},a=await this.request(\"auth.fetchAccessTokenWithRefreshToken\",i);if(a.data.code){const{code:e}=a.data;if(\"SIGN_PARAM_INVALID\"===e||\"REFRESH_TOKEN_EXPIRED\"===e||\"INVALID_REFRESH_TOKEN\"===e){if(this._cache.getStore(s)===ce.ANONYMOUS&&\"INVALID_REFRESH_TOKEN\"===e){const e=this._cache.getStore(r),t=this._cache.getStore(n),s=await this.send(\"auth.signInAnonymously\",{anonymous_uuid:e,refresh_token:t});return this.setRefreshToken(s.refresh_token),this._refreshAccessToken()}te(re),this._cache.removeStore(n)}throw new Error(`刷新access token失败:${a.data.code}`)}if(a.data.access_token)return te(ae),this._cache.setStore(e,a.data.access_token),this._cache.setStore(t,a.data.access_token_expire+Date.now()),{accessToken:a.data.access_token,accessTokenExpire:a.data.access_token_expire};a.data.refresh_token&&(this._cache.removeStore(n),this._cache.setStore(n,a.data.refresh_token),this._refreshAccessToken())}async getAccessToken(){const{accessTokenKey:e,accessTokenExpireKey:t,refreshTokenKey:n}=this._cache.keys;if(!this._cache.getStore(n))throw new Error(\"refresh token不存在,登录状态异常\");let s=this._cache.getStore(e),r=this._cache.getStore(t),o=!0;return this._shouldRefreshAccessTokenHook&&!await this._shouldRefreshAccessTokenHook(s,r)&&(o=!1),(!s||!r||r<Date.now())&&o?this.refreshAccessToken():{accessToken:s,accessTokenExpire:r}}async request(e,t,n){const s=`x-tcb-trace_${this.config.env}`;let r=\"application/x-www-form-urlencoded\";const o={action:e,env:this.config.env,dataVersion:\"2019-08-16\",...t};if(-1===ue.indexOf(e)){const{refreshTokenKey:e}=this._cache.keys;this._cache.getStore(e)&&(o.access_token=(await this.getAccessToken()).accessToken)}let i;if(\"storage.uploadFile\"===e){i=new FormData;for(let e in i)i.hasOwnProperty(e)&&void 0!==i[e]&&i.append(e,o[e]);r=\"multipart/form-data\"}else{r=\"application/json\",i={};for(let e in o)void 0!==o[e]&&(i[e]=o[e])}let a={headers:{\"content-type\":r}};n&&n.onUploadProgress&&(a.onUploadProgress=n.onUploadProgress);const c=this._localCache.getStore(s);c&&(a.headers[\"X-TCB-Trace\"]=c);const{parse:u,inQuery:h,search:l}=t;let d={env:this.config.env};u&&(d.parse=!0),h&&(d={...h,...d});let f=function(e,t,n={}){const s=/\\?/.test(t);let r=\"\";for(let e in n)\"\"===r?!s&&(t+=\"?\"):r+=\"&\",r+=`${e}=${encodeURIComponent(n[e])}`;return/^http(s)?\\:\\/\\//.test(t+=r)?t:`${e}${t}`}(R,\"//tcb-api.tencentcloudapi.com/web\",d);l&&(f+=l);const p=await this.post({url:f,data:i,...a}),g=p.header&&p.header[\"x-tcb-trace\"];if(g&&this._localCache.setStore(s,g),200!==Number(p.status)&&200!==Number(p.statusCode)||!p.data)throw new Error(\"network request error\");return p}async send(e,t={}){const n=await this.request(e,t,{onUploadProgress:t.onUploadProgress});if(\"ACCESS_TOKEN_EXPIRED\"===n.data.code&&-1===ue.indexOf(e)){await this.refreshAccessToken();const n=await this.request(e,t,{onUploadProgress:t.onUploadProgress});if(n.data.code)throw new Error(`[${n.data.code}] ${n.data.message}`);return n.data}if(n.data.code)throw new Error(`[${n.data.code}] ${n.data.message}`);return n.data}setRefreshToken(e){const{accessTokenKey:t,accessTokenExpireKey:n,refreshTokenKey:s}=this._cache.keys;this._cache.removeStore(t),this._cache.removeStore(n),this._cache.setStore(s,e)}}const pe={};function ge(e){return pe[e]}class me{constructor(e){this.config=e,this._cache=X(e.env),this._request=ge(e.env)}setRefreshToken(e){const{accessTokenKey:t,accessTokenExpireKey:n,refreshTokenKey:s}=this._cache.keys;this._cache.removeStore(t),this._cache.removeStore(n),this._cache.setStore(s,e)}setAccessToken(e,t){const{accessTokenKey:n,accessTokenExpireKey:s}=this._cache.keys;this._cache.setStore(n,e),this._cache.setStore(s,t)}async refreshUserInfo(){const{data:e}=await this._request.send(\"auth.getUserInfo\",{});return this.setLocalUserInfo(e),e}setLocalUserInfo(e){const{userInfoKey:t}=this._cache.keys;this._cache.setStore(t,e)}}class ye{constructor(e){if(!e)throw new Error(\"envId is not defined\");this._envId=e,this._cache=X(this._envId),this._request=ge(this._envId),this.setUserInfo()}linkWithTicket(e){if(\"string\"!=typeof e)throw new Error(\"ticket must be string\");return this._request.send(\"auth.linkWithTicket\",{ticket:e})}linkWithRedirect(e){e.signInWithRedirect()}updatePassword(e,t){return this._request.send(\"auth.updatePassword\",{oldPassword:t,newPassword:e})}updateEmail(e){return this._request.send(\"auth.updateEmail\",{newEmail:e})}updateUsername(e){if(\"string\"!=typeof e)throw new Error(\"username must be a string\");return this._request.send(\"auth.updateUsername\",{username:e})}async getLinkedUidList(){const{data:e}=await this._request.send(\"auth.getLinkedUidList\",{});let t=!1;const{users:n}=e;return n.forEach((e=>{e.wxOpenId&&e.wxPublicId&&(t=!0)})),{users:n,hasPrimaryUid:t}}setPrimaryUid(e){return this._request.send(\"auth.setPrimaryUid\",{uid:e})}unlink(e){return this._request.send(\"auth.unlink\",{platform:e})}async update(e){const{nickName:t,gender:n,avatarUrl:s,province:r,country:o,city:i}=e,{data:a}=await this._request.send(\"auth.updateUserInfo\",{nickName:t,gender:n,avatarUrl:s,province:r,country:o,city:i});this.setLocalUserInfo(a)}async refresh(){const{data:e}=await this._request.send(\"auth.getUserInfo\",{});return this.setLocalUserInfo(e),e}setUserInfo(){const{userInfoKey:e}=this._cache.keys,t=this._cache.getStore(e);[\"uid\",\"loginType\",\"openid\",\"wxOpenId\",\"wxPublicId\",\"unionId\",\"qqMiniOpenId\",\"email\",\"hasPassword\",\"customUserId\",\"nickName\",\"gender\",\"avatarUrl\"].forEach((e=>{this[e]=t[e]})),this.location={country:t.country,province:t.province,city:t.city}}setLocalUserInfo(e){const{userInfoKey:t}=this._cache.keys;this._cache.setStore(t,e),this.setUserInfo()}}class _e{constructor(e){if(!e)throw new Error(\"envId is not defined\");this._cache=X(e);const{refreshTokenKey:t,accessTokenKey:n,accessTokenExpireKey:s}=this._cache.keys,r=this._cache.getStore(t),o=this._cache.getStore(n),i=this._cache.getStore(s);this.credential={refreshToken:r,accessToken:o,accessTokenExpire:i},this.user=new ye(e)}get isAnonymousAuth(){return this.loginType===ce.ANONYMOUS}get isCustomAuth(){return this.loginType===ce.CUSTOM}get isWeixinAuth(){return this.loginType===ce.WECHAT||this.loginType===ce.WECHAT_OPEN||this.loginType===ce.WECHAT_PUBLIC}get loginType(){return this._cache.getStore(this._cache.keys.loginTypeKey)}}class we extends me{async signIn(){this._cache.updatePersistence(\"local\");const{anonymousUuidKey:e,refreshTokenKey:t}=this._cache.keys,n=this._cache.getStore(e)||void 0,s=this._cache.getStore(t)||void 0,r=await this._request.send(\"auth.signInAnonymously\",{anonymous_uuid:n,refresh_token:s});if(r.uuid&&r.refresh_token){this._setAnonymousUUID(r.uuid),this.setRefreshToken(r.refresh_token),await this._request.refreshAccessToken(),te(se),te(oe,{env:this.config.env,loginType:ce.ANONYMOUS,persistence:\"local\"});const e=new _e(this.config.env);return await e.user.refresh(),e}throw new Error(\"匿名登录失败\")}async linkAndRetrieveDataWithTicket(e){const{anonymousUuidKey:t,refreshTokenKey:n}=this._cache.keys,s=this._cache.getStore(t),r=this._cache.getStore(n),o=await this._request.send(\"auth.linkAndRetrieveDataWithTicket\",{anonymous_uuid:s,refresh_token:r,ticket:e});if(o.refresh_token)return this._clearAnonymousUUID(),this.setRefreshToken(o.refresh_token),await this._request.refreshAccessToken(),te(ie,{env:this.config.env}),te(oe,{loginType:ce.CUSTOM,persistence:\"local\"}),{credential:{refreshToken:o.refresh_token}};throw new Error(\"匿名转化失败\")}_setAnonymousUUID(e){const{anonymousUuidKey:t,loginTypeKey:n}=this._cache.keys;this._cache.removeStore(t),this._cache.setStore(t,e),this._cache.setStore(n,ce.ANONYMOUS)}_clearAnonymousUUID(){this._cache.removeStore(this._cache.keys.anonymousUuidKey)}}class ke extends me{async signIn(e){if(\"string\"!=typeof e)throw new Error(\"ticket must be a string\");const{refreshTokenKey:t}=this._cache.keys,n=await this._request.send(\"auth.signInWithTicket\",{ticket:e,refresh_token:this._cache.getStore(t)||\"\"});if(n.refresh_token)return this.setRefreshToken(n.refresh_token),await this._request.refreshAccessToken(),te(se),te(oe,{env:this.config.env,loginType:ce.CUSTOM,persistence:this.config.persistence}),await this.refreshUserInfo(),new _e(this.config.env);throw new Error(\"自定义登录失败\")}}class Se extends me{async signIn(e,t){if(\"string\"!=typeof e)throw new Error(\"email must be a string\");const{refreshTokenKey:n}=this._cache.keys,s=await this._request.send(\"auth.signIn\",{loginType:\"EMAIL\",email:e,password:t,refresh_token:this._cache.getStore(n)||\"\"}),{refresh_token:r,access_token:o,access_token_expire:i}=s;if(r)return this.setRefreshToken(r),o&&i?this.setAccessToken(o,i):await this._request.refreshAccessToken(),await this.refreshUserInfo(),te(se),te(oe,{env:this.config.env,loginType:ce.EMAIL,persistence:this.config.persistence}),new _e(this.config.env);throw s.code?new Error(`邮箱登录失败: [${s.code}] ${s.message}`):new Error(\"邮箱登录失败\")}async activate(e){return this._request.send(\"auth.activateEndUserMail\",{token:e})}async resetPasswordWithToken(e,t){return this._request.send(\"auth.resetPasswordWithToken\",{token:e,newPassword:t})}}class ve extends me{async signIn(e,t){if(\"string\"!=typeof e)throw new Error(\"username must be a string\");\"string\"!=typeof t&&(t=\"\",console.warn(\"password is empty\"));const{refreshTokenKey:n}=this._cache.keys,s=await this._request.send(\"auth.signIn\",{loginType:ce.USERNAME,username:e,password:t,refresh_token:this._cache.getStore(n)||\"\"}),{refresh_token:r,access_token_expire:o,access_token:i}=s;if(r)return this.setRefreshToken(r),i&&o?this.setAccessToken(i,o):await this._request.refreshAccessToken(),await this.refreshUserInfo(),te(se),te(oe,{env:this.config.env,loginType:ce.USERNAME,persistence:this.config.persistence}),new _e(this.config.env);throw s.code?new Error(`用户名密码登录失败: [${s.code}] ${s.message}`):new Error(\"用户名密码登录失败\")}}class Te{constructor(e){this.config=e,this._cache=X(e.env),this._request=ge(e.env),this._onAnonymousConverted=this._onAnonymousConverted.bind(this),this._onLoginTypeChanged=this._onLoginTypeChanged.bind(this),ee(oe,this._onLoginTypeChanged)}get currentUser(){const e=this.hasLoginState();return e&&e.user||null}get loginType(){return this._cache.getStore(this._cache.keys.loginTypeKey)}anonymousAuthProvider(){return new we(this.config)}customAuthProvider(){return new ke(this.config)}emailAuthProvider(){return new Se(this.config)}usernameAuthProvider(){return new ve(this.config)}async signInAnonymously(){return new we(this.config).signIn()}async signInWithEmailAndPassword(e,t){return new Se(this.config).signIn(e,t)}signInWithUsernameAndPassword(e,t){return new ve(this.config).signIn(e,t)}async linkAndRetrieveDataWithTicket(e){this._anonymousAuthProvider||(this._anonymousAuthProvider=new we(this.config)),ee(ie,this._onAnonymousConverted);return await this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e)}async signOut(){if(this.loginType===ce.ANONYMOUS)throw new Error(\"匿名用户不支持登出操作\");const{refreshTokenKey:e,accessTokenKey:t,accessTokenExpireKey:n}=this._cache.keys,s=this._cache.getStore(e);if(!s)return;const r=await this._request.send(\"auth.logout\",{refresh_token:s});return this._cache.removeStore(e),this._cache.removeStore(t),this._cache.removeStore(n),te(se),te(oe,{env:this.config.env,loginType:ce.NULL,persistence:this.config.persistence}),r}async signUpWithEmailAndPassword(e,t){return this._request.send(\"auth.signUpWithEmailAndPassword\",{email:e,password:t})}async sendPasswordResetEmail(e){return this._request.send(\"auth.sendPasswordResetEmail\",{email:e})}onLoginStateChanged(e){ee(se,(()=>{const t=this.hasLoginState();e.call(this,t)}));const t=this.hasLoginState();e.call(this,t)}onLoginStateExpired(e){ee(re,e.bind(this))}onAccessTokenRefreshed(e){ee(ae,e.bind(this))}onAnonymousConverted(e){ee(ie,e.bind(this))}onLoginTypeChanged(e){ee(oe,(()=>{const t=this.hasLoginState();e.call(this,t)}))}async getAccessToken(){return{accessToken:(await this._request.getAccessToken()).accessToken,env:this.config.env}}hasLoginState(){const{refreshTokenKey:e}=this._cache.keys;return this._cache.getStore(e)?new _e(this.config.env):null}async isUsernameRegistered(e){if(\"string\"!=typeof e)throw new Error(\"username must be a string\");const{data:t}=await this._request.send(\"auth.isUsernameRegistered\",{username:e});return t&&t.isRegistered}getLoginState(){return Promise.resolve(this.hasLoginState())}async signInWithTicket(e){return new ke(this.config).signIn(e)}shouldRefreshAccessToken(e){this._request._shouldRefreshAccessTokenHook=e.bind(this)}getUserInfo(){return this._request.send(\"auth.getUserInfo\",{}).then((e=>e.code?e:{...e.data,requestId:e.seqId}))}getAuthHeader(){const{refreshTokenKey:e,accessTokenKey:t}=this._cache.keys,n=this._cache.getStore(e);return{\"x-cloudbase-credentials\":this._cache.getStore(t)+\"/@@/\"+n}}_onAnonymousConverted(e){const{env:t}=e.data;t===this.config.env&&this._cache.updatePersistence(this.config.persistence)}_onLoginTypeChanged(e){const{loginType:t,persistence:n,env:s}=e.data;s===this.config.env&&(this._cache.updatePersistence(n),this._cache.setStore(this._cache.keys.loginTypeKey,t))}}const Ae=function(e,t){t=t||N();const n=ge(this.config.env),{cloudPath:s,filePath:r,onUploadProgress:o,fileType:i=\"image\"}=e;return n.send(\"storage.getUploadMetadata\",{path:s}).then((e=>{const{data:{url:a,authorization:c,token:u,fileId:h,cosFileId:l},requestId:d}=e,f={key:s,signature:c,\"x-cos-meta-fileid\":l,success_action_status:\"201\",\"x-cos-security-token\":u};n.upload({url:a,data:f,file:r,name:s,fileType:i,onUploadProgress:o}).then((e=>{201===e.statusCode?t(null,{fileID:h,requestId:d}):t(new Error(`STORAGE_REQUEST_FAIL: ${e.data}`))})).catch((e=>{t(e)}))})).catch((e=>{t(e)})),t.promise},Pe=function(e,t){t=t||N();const n=ge(this.config.env),{cloudPath:s}=e;return n.send(\"storage.getUploadMetadata\",{path:s}).then((e=>{t(null,e)})).catch((e=>{t(e)})),t.promise},Ie=function({fileList:e},t){if(t=t||N(),!e||!Array.isArray(e))return{code:\"INVALID_PARAM\",message:\"fileList必须是非空的数组\"};for(let t of e)if(!t||\"string\"!=typeof t)return{code:\"INVALID_PARAM\",message:\"fileList的元素必须是非空的字符串\"};const n={fileid_list:e};return ge(this.config.env).send(\"storage.batchDeleteFile\",n).then((e=>{e.code?t(null,e):t(null,{fileList:e.data.delete_list,requestId:e.requestId})})).catch((e=>{t(e)})),t.promise},be=function({fileList:e},t){t=t||N(),e&&Array.isArray(e)||t(null,{code:\"INVALID_PARAM\",message:\"fileList必须是非空的数组\"});let n=[];for(let s of e)\"object\"==typeof s?(s.hasOwnProperty(\"fileID\")&&s.hasOwnProperty(\"maxAge\")||t(null,{code:\"INVALID_PARAM\",message:\"fileList的元素必须是包含fileID和maxAge的对象\"}),n.push({fileid:s.fileID,max_age:s.maxAge})):\"string\"==typeof s?n.push({fileid:s}):t(null,{code:\"INVALID_PARAM\",message:\"fileList的元素必须是字符串\"});const s={file_list:n};return ge(this.config.env).send(\"storage.batchGetDownloadUrl\",s).then((e=>{e.code?t(null,e):t(null,{fileList:e.data.download_list,requestId:e.requestId})})).catch((e=>{t(e)})),t.promise},Oe=async function({fileID:e},t){const n=(await be.call(this,{fileList:[{fileID:e,maxAge:600}]})).fileList[0];if(\"SUCCESS\"!==n.code)return t?t(n):new Promise((e=>{e(n)}));const s=ge(this.config.env);let r=n.download_url;if(r=encodeURI(r),!t)return s.download({url:r});t(await s.download({url:r}))},Ee=function({name:e,data:t,query:n,parse:s,search:r},o){const i=o||N();let a;try{a=t?JSON.stringify(t):\"\"}catch(e){return Promise.reject(e)}if(!e)return Promise.reject(new Error(\"函数名不能为空\"));const c={inQuery:n,parse:s,search:r,function_name:e,request_data:a};return ge(this.config.env).send(\"functions.invokeFunction\",c).then((e=>{if(e.code)i(null,e);else{let t=e.data.response_data;if(s)i(null,{result:t,requestId:e.requestId});else try{t=JSON.parse(e.data.response_data),i(null,{result:t,requestId:e.requestId})}catch(e){i(new Error(\"response data must be json\"))}}return i.promise})).catch((e=>{i(e)})),i.promise},Ce={timeout:15e3,persistence:\"session\"},Ue={};class xe{constructor(e){this.config=e||this.config,this.authObj=void 0}init(e){switch(K.adapter||(this.requestClient=new K.adapter.reqClass({timeout:e.timeout||5e3,timeoutMsg:`请求在${(e.timeout||5e3)/1e3}s内未完成,已中断`})),this.config={...Ce,...e},!0){case this.config.timeout>6e5:console.warn(\"timeout大于可配置上限[10分钟],已重置为上限数值\"),this.config.timeout=6e5;break;case this.config.timeout<100:console.warn(\"timeout小于可配置下限[100ms],已重置为下限数值\"),this.config.timeout=100}return new xe(this.config)}auth({persistence:e}={}){if(this.authObj)return this.authObj;const t=e||K.adapter.primaryStorage||Ce.persistence;var n;return t!==this.config.persistence&&(this.config.persistence=t),function(e){const{env:t}=e;V[t]=new J(e),Y[t]=new J({...e,persistence:\"local\"})}(this.config),n=this.config,pe[n.env]=new fe(n),this.authObj=new Te(this.config),this.authObj}on(e,t){return ee.apply(this,[e,t])}off(e,t){return ne.apply(this,[e,t])}callFunction(e,t){return Ee.apply(this,[e,t])}deleteFile(e,t){return Ie.apply(this,[e,t])}getTempFileURL(e,t){return be.apply(this,[e,t])}downloadFile(e,t){return Oe.apply(this,[e,t])}uploadFile(e,t){return Ae.apply(this,[e,t])}getUploadMetadata(e,t){return Pe.apply(this,[e,t])}registerExtension(e){Ue[e.name]=e}async invokeExtension(e,t){const n=Ue[e];if(!n)throw Error(`扩展${e} 必须先注册`);return await n.invoke(t,this)}useAdapters(e){const{adapter:t,runtime:n}=B(e)||{};t&&(K.adapter=t),n&&(K.runtime=n)}}var De=new xe;function qe(e,t,n){void 0===n&&(n={});var s=/\\?/.test(t),r=\"\";for(var o in n)\"\"===r?!s&&(t+=\"?\"):r+=\"&\",r+=o+\"=\"+encodeURIComponent(n[o]);return/^http(s)?:\\/\\//.test(t+=r)?t:\"\"+e+t}class Re{post(e){const{url:t,data:n,headers:s}=e;return new Promise(((e,r)=>{C.request({url:qe(\"https:\",t),data:n,method:\"POST\",header:s,success(t){e(t)},fail(e){r(e)}})}))}upload(e){return new Promise(((t,n)=>{const{url:s,file:r,data:o,headers:i,fileType:a}=e,c=C.uploadFile({url:qe(\"https:\",s),name:\"file\",formData:Object.assign({},o),filePath:r,fileType:a,header:i,success(e){const n={statusCode:e.statusCode,data:e.data||{}};200===e.statusCode&&o.success_action_status&&(n.statusCode=parseInt(o.success_action_status,10)),t(n)},fail(e){l&&\"mp-alipay\"===d&&console.warn(\"支付宝小程序开发工具上传腾讯云时无法准确判断是否上传成功,请使用真机测试\"),n(new Error(e.errMsg||\"uploadFile:fail\"))}});\"function\"==typeof e.onUploadProgress&&c&&\"function\"==typeof c.onProgressUpdate&&c.onProgressUpdate((t=>{e.onUploadProgress({loaded:t.totalBytesSent,total:t.totalBytesExpectedToSend})}))}))}}const Le={setItem(e,t){C.setStorageSync(e,t)},getItem:e=>C.getStorageSync(e),removeItem(e){C.removeStorageSync(e)},clear(){C.clearStorageSync()}};var Fe={genAdapter:function(){return{root:{},reqClass:Re,localStorage:Le,primaryStorage:\"local\"}},isMatch:function(){return!0},runtime:\"uni_app\"};De.useAdapters(Fe);const Ne=De,$e=Ne.init;Ne.init=function(e){e.env=e.spaceId;const t=$e.call(this,e);t.config.provider=\"tencent\",t.config.spaceId=e.spaceId;const n=t.auth;return t.auth=function(e){const t=n.call(this,e);return[\"linkAndRetrieveDataWithTicket\",\"signInAnonymously\",\"signOut\",\"getAccessToken\",\"getLoginState\",\"signInWithTicket\",\"getUserInfo\"].forEach((e=>{t[e]=P(t[e]).bind(t)})),t},t.customAuth=t.auth,t};var je=Ne;function Me(){return{token:C.getStorageSync(\"uni_id_token\")||C.getStorageSync(\"uniIdToken\"),tokenExpired:C.getStorageSync(\"uni_id_token_expired\")}}function Be(){if(!l||\"h5\"!==d)return;uni.getStorageSync(\"__LAST_DCLOUD_APPID\")!==m&&(uni.setStorageSync(\"__LAST_DCLOUD_APPID\",m),console.warn(\"检测到当前项目与上次运行到此端口的项目不一致,自动清理uni-id保存的token信息(仅开发调试时生效)\"),C.removeStorageSync(\"uni_id_token\"),C.removeStorageSync(\"uniIdToken\"),C.removeStorageSync(\"uni_id_token_expired\"))}var Ke=class extends D{getAccessToken(){return new Promise(((e,t)=>{const n=\"Anonymous_Access_token\";this.setAccessToken(n),e(n)}))}setupRequest(e,t){const n=Object.assign({},e,{spaceId:this.config.spaceId,timestamp:Date.now()}),s={\"Content-Type\":\"application/json\"};\"auth\"!==t&&(n.token=this.accessToken,s[\"x-basement-token\"]=this.accessToken),s[\"x-serverless-sign\"]=E.sign(n,this.config.clientSecret);const r=O();s[\"x-client-info\"]=JSON.stringify(r);const{token:o}=Me();return s[\"x-client-token\"]=o,{url:this.config.requestUrl,method:\"POST\",data:n,dataType:\"json\",header:JSON.parse(JSON.stringify(s))}}uploadFileToOSS({url:e,formData:t,name:n,filePath:s,fileType:r,onUploadProgress:o}){return new Promise(((i,a)=>{const c=this.adapter.uploadFile({url:e,formData:t,name:n,filePath:s,fileType:r,success(e){e&&e.statusCode<400?i(e):a(new I({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))},fail(e){a(new I({code:e.code||\"UPLOAD_FAILED\",message:e.message||e.errMsg||\"文件上传失败\"}))}});\"function\"==typeof o&&c&&\"function\"==typeof c.onProgressUpdate&&c.onProgressUpdate((e=>{o({loaded:e.totalBytesSent,total:e.totalBytesExpectedToSend})}))}))}uploadFile({filePath:e,cloudPath:t,fileType:n=\"image\",onUploadProgress:s}){if(!t)throw new I({code:\"CLOUDPATH_REQUIRED\",message:\"cloudPath不可为空\"});let r;return this.getOSSUploadOptionsFromPath({cloudPath:t}).then((t=>{const{url:o,formData:i,name:a}=t.result;r=t.result.fileUrl;const c={url:o,formData:i,name:a,filePath:e,fileType:n};return this.uploadFileToOSS(Object.assign({},c,{onUploadProgress:s}))})).then((()=>this.reportOSSUpload({cloudPath:t}))).then((t=>new Promise(((n,s)=>{t.success?n({success:!0,filePath:e,fileID:r}):s(new I({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))}))))}deleteFile({fileList:e}){const t={method:\"serverless.file.resource.delete\",params:JSON.stringify({fileList:e})};return this.request(this.setupRequest(t))}getTempFileURL({fileList:e}={}){const t={method:\"serverless.file.resource.getTempFileURL\",params:JSON.stringify({fileList:e})};return this.request(this.setupRequest(t))}};var He={init(e){const t=new Ke(e),n={signInAnonymously:function(){return t.authorize()},getLoginState:function(){return Promise.resolve(!1)}};return t.auth=function(){return n},t.customAuth=t.auth,t}};function We({data:e}){let t;t=O();const n=JSON.parse(JSON.stringify(e||{}));if(Object.assign(n,{clientInfo:t}),!n.uniIdToken){const{token:e}=Me();e&&(n.uniIdToken=e)}return n}function ze({name:e,data:t}){const{localAddress:n,localPort:s}=this,r={aliyun:\"aliyun\",tencent:\"tcb\"}[this.config.provider],o=this.config.spaceId,i=`http://${n}:${s}/system/check-function`,a=`http://${n}:${s}/cloudfunctions/${e}`;return new Promise(((t,n)=>{C.request({method:\"POST\",url:i,data:{name:e,platform:d,provider:r,spaceId:o},timeout:3e3,success(e){t(e)},fail(){t({data:{code:\"NETWORK_ERROR\",message:\"连接本地调试服务失败,请检查客户端是否和主机在同一局域网下,自动切换为已部署的云函数。\"}})}})})).then((({data:e}={})=>{const{code:t,message:n}=e||{};return{code:0===t?0:t||\"SYS_ERR\",message:n||\"SYS_ERR\"}})).then((({code:n,message:s})=>{if(0!==n){switch(n){case\"MODULE_ENCRYPTED\":console.error(`此云函数(${e})依赖加密公共模块不可本地调试,自动切换为云端已部署的云函数`);break;case\"FUNCTION_ENCRYPTED\":console.error(`此云函数(${e})已加密不可本地调试,自动切换为云端已部署的云函数`);break;case\"ACTION_ENCRYPTED\":console.error(s||\"需要访问加密的uni-clientDB-action,自动切换为云端环境\");break;case\"NETWORK_ERROR\":{const e=\"连接本地调试服务失败,请检查客户端是否和主机在同一局域网下\";throw console.error(e),new Error(e)}case\"SWITCH_TO_CLOUD\":break;default:{const e=`检测本地调试服务出现错误:${s},请检查网络环境或重启客户端再试`;throw console.error(e),new Error(e)}}return this._originCallFunction({name:e,data:t})}return new Promise(((e,n)=>{const s=We.call(this,{data:t});C.request({method:\"POST\",url:a,data:{provider:r,platform:d,param:s},success:({statusCode:t,data:s}={})=>!t||t>=400?n(new I({code:s.code||\"SYS_ERR\",message:s.message||\"request:fail\"})):e({result:s}),fail(e){n(new I({code:e.code||e.errCode||\"SYS_ERR\",message:e.message||e.errMsg||\"request:fail\"}))}})}))}))}const Je=[{rule:/fc_function_not_found|FUNCTION_NOT_FOUND/,content:\",云函数[{functionName}]在云端不存在,请检查此云函数名称是否正确以及该云函数是否已上传到服务空间\",mode:\"append\"}];var Ve=/[\\\\^$.*+?()[\\]{}|]/g,Ye=RegExp(Ve.source);function Xe(e,t,n){return e.replace(new RegExp((s=t)&&Ye.test(s)?s.replace(Ve,\"\\\\$&\"):s,\"g\"),n);var s}function Ge({functionName:e,result:t,logPvd:n}){if(this.config.useDebugFunction&&t&&t.requestId){const s=JSON.stringify({spaceId:this.config.spaceId,functionName:e,requestId:t.requestId});console.log(`[${n}-request]${s}[/${n}-request]`)}}function Qe(e){const t=e.callFunction,n=function(n){const s=n.name;n.data=We.call(e,{data:n.data});const r={aliyun:\"aliyun\",tencent:\"tcb\"}[this.config.provider];return t.call(this,n).then((e=>(Ge.call(this,{functionName:s,result:e,logPvd:r}),Promise.resolve(e))),(e=>(Ge.call(this,{functionName:s,result:e,logPvd:r}),e&&e.message&&(e.message=function({message:e=\"\",extraInfo:t={},formatter:n=[]}={}){for(let s=0;s<n.length;s++){const{rule:r,content:o,mode:i}=n[s],a=e.match(r);if(!a)continue;let c=o;for(let e=1;e<a.length;e++)c=Xe(c,`{$${e}}`,a[e]);for(const e in t)c=Xe(c,`{${e}}`,t[e]);return\"replace\"===i?c:e+c}return e}({message:`[${n.name}]: ${e.message}`,formatter:Je,extraInfo:{functionName:s}})),Promise.reject(e))))};e.callFunction=function(t){let s;return l&&e.debugInfo&&!e.debugInfo.forceRemote&&p?(e._originCallFunction||(e._originCallFunction=n),s=ze.call(this,t)):s=n.call(this,t),Object.defineProperty(s,\"result\",{get:()=>(console.warn(\"当前返回结果为Promise类型,不可直接访问其result属性,详情请参考:https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise\"),{})}),s}}const Ze=Symbol(\"CLIENT_DB_INTERNAL\");function et(e,t){return e.then=\"DoNotReturnProxyWithAFunctionNamedThen\",e._internalType=Ze,e.__ob__=void 0,new Proxy(e,{get(e,n,s){if(\"_uniClient\"===n)return null;if(n in e||\"string\"!=typeof n){const t=e[n];return\"function\"==typeof t?t.bind(e):t}return t.get(e,n,s)}})}function tt(e){return{on:(t,n)=>{e[t]=e[t]||[],e[t].indexOf(n)>-1||e[t].push(n)},off:(t,n)=>{e[t]=e[t]||[];const s=e[t].indexOf(n);-1!==s&&e[t].splice(s,1)}}}const nt=[\"db.Geo\",\"db.command\",\"command.aggregate\"];function st(e,t){return nt.indexOf(`${e}.${t}`)>-1}function rt(e){switch(c(e)){case\"array\":return e.map((e=>rt(e)));case\"object\":return e._internalType===Ze||Object.keys(e).forEach((t=>{e[t]=rt(e[t])})),e;case\"regexp\":return{$regexp:{source:e.source,flags:e.flags}};case\"date\":return{$date:e.toISOString()};default:return e}}class ot{constructor(e,t,n){this.content=e,this.prevStage=t||null,this.udb=null,this._database=n}toJSON(){let e=this;const t=[e.content];for(;e.prevStage;)e=e.prevStage,t.push(e.content);return{$db:t.reverse().map((e=>({$method:e.$method,$param:rt(e.$param)})))}}getAction(){const e=this.toJSON().$db.find((e=>\"action\"===e.$method));return e&&e.$param&&e.$param[0]}getCommand(){return{$db:this.toJSON().$db.filter((e=>\"action\"!==e.$method))}}get useAggregate(){let e=this,t=!1;for(;e.prevStage;){e=e.prevStage;const n=e.content.$method;if(\"aggregate\"===n||\"pipeline\"===n){t=!0;break}}return t}get count(){if(!this.useAggregate)return function(){return this._send(\"count\",Array.from(arguments))};const e=this;return function(){return it({$method:\"count\",$param:rt(Array.from(arguments))},e,this._database)}}get(){return this._send(\"get\",Array.from(arguments))}add(){return this._send(\"add\",Array.from(arguments))}remove(){return this._send(\"remove\",Array.from(arguments))}update(){return this._send(\"update\",Array.from(arguments))}end(){return this._send(\"end\",Array.from(arguments))}set(){throw new Error(\"clientDB禁止使用set方法\")}_send(e,t){const n=this.getAction(),s=this.getCommand();if(s.$db.push({$method:e,$param:rt(t)}),l){const e=s.$db.find((e=>\"collection\"===e.$method)),t=e&&e.$param;t&&1===t.length&&\"string\"==typeof e.$param[0]&&e.$param[0].indexOf(\",\")>-1&&console.warn(\"检测到使用JQL语法联表查询时,未使用getTemp先过滤主表数据,在主表数据量大的情况下可能会查询缓慢。\\n- 如何优化请参考此文档:https://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup-with-temp \\n- 如果主表数据量很小请忽略此信息,项目发行时不会出现此提示。\")}return this._database._callCloudFunction({action:n,command:s})}}function it(e,t,n){return et(new ot(e,t,n),{get(e,t){let s=\"db\";return e&&e.content&&(s=e.content.$method),st(s,t)?it({$method:t},e,n):function(){return it({$method:t,$param:rt(Array.from(arguments))},e,n)}}})}function at({path:e,method:t}){return class{constructor(){this.param=Array.from(arguments)}toJSON(){return{$newDb:[...e.map((e=>({$method:e}))),{$method:t,$param:this.param}]}}}}class ct extends class{constructor({uniClient:e={}}={}){this._uniClient=e,this._authCallBacks={},this._dbCallBacks={},e.isDefault&&(this._dbCallBacks=_(\"_globalUniCloudDatabaseCallback\")),this.auth=tt(this._authCallBacks),Object.assign(this,tt(this._dbCallBacks)),this.env=et({},{get:(e,t)=>({$env:t})}),this.Geo=et({},{get:(e,t)=>at({path:[\"Geo\"],method:t})}),this.serverDate=at({path:[],method:\"serverDate\"}),this.RegExp=at({path:[],method:\"RegExp\"})}getCloudEnv(e){if(\"string\"!=typeof e||!e.trim())throw new Error(\"getCloudEnv参数错误\");return{$env:e.replace(\"$cloudEnv_\",\"\")}}_callback(e,t){const n=this._dbCallBacks;n[e]&&n[e].forEach((e=>{e(...t)}))}_callbackAuth(e,t){const n=this._authCallBacks;n[e]&&n[e].forEach((e=>{e(...t)}))}multiSend(){const e=Array.from(arguments),t=e.map((e=>{const t=e.getAction(),n=e.getCommand();if(\"getTemp\"!==n.$db[n.$db.length-1].$method)throw new Error(\"multiSend只支持子命令内使用getTemp\");return{action:t,command:n}}));return this._callCloudFunction({multiCommand:t,queryList:e})}}{_callCloudFunction({action:e,command:t,multiCommand:n,queryList:s}){function r(e,t){if(n&&s)for(let n=0;n<s.length;n++){const r=s[n];r.udb&&\"function\"==typeof r.udb.setResult&&(t?r.udb.setResult(t):r.udb.setResult(e.result.dataList[n]))}}const o=T(A(\"database\",\"invoke\")),i=this._uniClient;return o.then((()=>i.callFunction({name:\"DCloud-clientDB\",type:a,data:{action:e,command:t,multiCommand:n}}))).then((e=>{const{code:t,message:n,token:s,tokenExpired:o,systemInfo:i=[]}=e.result;if(i)for(let e=0;e<i.length;e++){const{level:t,message:n,detail:s}=i[e],r=console[\"app-plus\"===d&&\"warn\"===t?\"error\":t]||console.log;let o=\"[System Info]\"+n;s&&(o=`${o}\\n详细信息:${s}`),r(o)}if(t){const s=new I({message:n,code:t,requestId:e.requestId});return this._callback(\"error\",[s]),Promise.reject(s)}s&&o&&(!function({token:e,tokenExpired:t}={}){e&&C.setStorageSync(\"uni_id_token\",e),t&&C.setStorageSync(\"uni_id_token_expired\",t)}({token:s,tokenExpired:o}),this._callbackAuth(\"refreshToken\",[{token:s,tokenExpired:o}]),this._callback(\"refreshToken\",[{token:s,tokenExpired:o}]));const a=e.result.affectedDocs;return\"number\"==typeof a&&Object.defineProperty(e.result,\"affectedDocs\",{get:()=>(console.warn(\"affectedDocs不再推荐使用,请使用inserted/deleted/updated/data.length替代\"),a)}),T(A(\"database\",\"success\"),e).then((()=>T(A(\"database\",\"complete\"),e))).then((()=>(r(e,null),Promise.resolve(e))))}),(e=>{const t=new I({code:e.code||\"SYSTEM_ERROR\",message:e.message,requestId:e.requestId});return this._callback(\"error\",[t]),/fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e.message)&&console.warn(\"clientDB未初始化,请在web控制台保存一次schema以开启clientDB\"),T(A(\"database\",\"fail\"),e).then((()=>T(A(\"database\",\"complete\"),e))).then((()=>(r(null,e),Promise.reject(e))))}))}}function ut(e){e.database=function(t){if(t&&Object.keys(t).length>0)return e.init(t).database();if(this._database)return this._database;const n=function(e,t={}){return et(new e(t),{get:(e,t)=>st(\"db\",t)?it({$method:t},null,e):function(){return it({$method:t,$param:rt(Array.from(arguments))},null,e)}})}(ct,{uniClient:e});return this._database=n,n}}let ht;const lt=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",dt=/^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;function ft(){const e=Me().token||\"\",t=e.split(\".\");if(!e||3!==t.length)return{uid:null,role:[],permission:[],tokenExpired:0};let n;try{n=JSON.parse((s=t[1],decodeURIComponent(ht(s).split(\"\").map((function(e){return\"%\"+(\"00\"+e.charCodeAt(0).toString(16)).slice(-2)})).join(\"\"))))}catch(e){throw new Error(\"获取当前用户信息出错,详细错误信息为:\"+e.message)}var s;return n.tokenExpired=1e3*n.exp,delete n.exp,delete n.iat,n}ht=\"function\"!=typeof atob?function(e){if(e=String(e).replace(/[\\t\\n\\f\\r ]+/g,\"\"),!dt.test(e))throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\");var t;e+=\"==\".slice(2-(3&e.length));for(var n,s,r=\"\",o=0;o<e.length;)t=lt.indexOf(e.charAt(o++))<<18|lt.indexOf(e.charAt(o++))<<12|(n=lt.indexOf(e.charAt(o++)))<<6|(s=lt.indexOf(e.charAt(o++))),r+=64===n?String.fromCharCode(t>>16&255):64===s?String.fromCharCode(t>>16&255,t>>8&255):String.fromCharCode(t>>16&255,t>>8&255,255&t);return r}:atob;var pt=t(n((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0});const n=\"chooseAndUploadFile:ok\",s=\"chooseAndUploadFile:fail\";function r(e,t){return e.tempFiles.forEach(((e,n)=>{e.name||(e.name=e.path.substring(e.path.lastIndexOf(\"/\")+1)),t&&(e.fileType=t),e.cloudPath=Date.now()+\"_\"+n+e.name.substring(e.name.lastIndexOf(\".\"))})),e.tempFilePaths||(e.tempFilePaths=e.tempFiles.map((e=>e.path))),e}function o(e,t,{onChooseFile:s,onUploadProgress:r}){return t.then((e=>{if(s){const t=s(e);if(void 0!==t)return Promise.resolve(t).then((t=>void 0===t?e:t))}return e})).then((t=>!1===t?{errMsg:n,tempFilePaths:[],tempFiles:[]}:function(e,t,s=5,r){(t=Object.assign({},t)).errMsg=n;const o=t.tempFiles,i=o.length;let a=0;return new Promise((n=>{for(;a<s;)c();function c(){const s=a++;if(s>=i)return void(!o.find((e=>!e.url&&!e.errMsg))&&n(t));const u=o[s];e.uploadFile({filePath:u.path,cloudPath:u.cloudPath,fileType:u.fileType,onUploadProgress(e){e.index=s,e.tempFile=u,e.tempFilePath=u.path,r&&r(e)}}).then((e=>{u.url=e.fileID,s<i&&c()})).catch((e=>{u.errMsg=e.errMsg||e.message,s<i&&c()}))}}))}(e,t,5,r)))}t.initChooseAndUploadFile=function(e){return function(t={type:\"all\"}){return\"image\"===t.type?o(e,function(e){const{count:t,sizeType:n,sourceType:o=[\"album\",\"camera\"],extension:i}=e;return new Promise(((e,a)=>{uni.chooseImage({count:t,sizeType:n,sourceType:o,extension:i,success(t){e(r(t,\"image\"))},fail(e){a({errMsg:e.errMsg.replace(\"chooseImage:fail\",s)})}})}))}(t),t):\"video\"===t.type?o(e,function(e){const{camera:t,compressed:n,maxDuration:o,sourceType:i=[\"album\",\"camera\"],extension:a}=e;return new Promise(((e,c)=>{uni.chooseVideo({camera:t,compressed:n,maxDuration:o,sourceType:i,extension:a,success(t){const{tempFilePath:n,duration:s,size:o,height:i,width:a}=t;e(r({errMsg:\"chooseVideo:ok\",tempFilePaths:[n],tempFiles:[{name:t.tempFile&&t.tempFile.name||\"\",path:n,size:o,type:t.tempFile&&t.tempFile.type||\"\",width:a,height:i,duration:s,fileType:\"video\",cloudPath:\"\"}]},\"video\"))},fail(e){c({errMsg:e.errMsg.replace(\"chooseVideo:fail\",s)})}})}))}(t),t):o(e,function(e){const{count:t,extension:n}=e;return new Promise(((e,o)=>{let i=uni.chooseFile;if(\"undefined\"!=typeof wx&&\"function\"==typeof wx.chooseMessageFile&&(i=wx.chooseMessageFile),\"function\"!=typeof i)return o({errMsg:s+\" 请指定 type 类型,该平台仅支持选择 image 或 video。\"});i({type:\"all\",count:t,extension:n,success(t){e(r(t))},fail(e){o({errMsg:e.errMsg.replace(\"chooseFile:fail\",s)})}})}))}(t),t)}}})));const gt=\"manual\";function mt(e){return{props:{localdata:{type:Array,default:()=>[]},options:{type:[Object,Array],default:()=>({})},spaceInfo:{type:Object,default:()=>({})},collection:{type:[String,Array],default:\"\"},action:{type:String,default:\"\"},field:{type:String,default:\"\"},orderby:{type:String,default:\"\"},where:{type:[String,Object],default:\"\"},pageData:{type:String,default:\"add\"},pageCurrent:{type:Number,default:1},pageSize:{type:Number,default:20},getcount:{type:[Boolean,String],default:!1},gettree:{type:[Boolean,String],default:!1},gettreepath:{type:[Boolean,String],default:!1},startwith:{type:String,default:\"\"},limitlevel:{type:Number,default:10},groupby:{type:String,default:\"\"},groupField:{type:String,default:\"\"},distinct:{type:[Boolean,String],default:!1},foreignKey:{type:String,default:\"\"},loadtime:{type:String,default:\"auto\"},manual:{type:Boolean,default:!1}},data:()=>({mixinDatacomLoading:!1,mixinDatacomHasMore:!1,mixinDatacomResData:[],mixinDatacomErrorMessage:\"\",mixinDatacomPage:{}}),created(){this.mixinDatacomPage={current:this.pageCurrent,size:this.pageSize,count:0},this.$watch((()=>{var e=[];return[\"pageCurrent\",\"pageSize\",\"localdata\",\"collection\",\"action\",\"field\",\"orderby\",\"where\",\"getont\",\"getcount\",\"gettree\",\"groupby\",\"groupField\",\"distinct\"].forEach((t=>{e.push(this[t])})),e}),((e,t)=>{if(this.loadtime===gt)return;let n=!1;const s=[];for(let r=2;r<e.length;r++)e[r]!==t[r]&&(s.push(e[r]),n=!0);e[0]!==t[0]&&(this.mixinDatacomPage.current=this.pageCurrent),this.mixinDatacomPage.size=this.pageSize,this.onMixinDatacomPropsChange(n,s)}))},methods:{onMixinDatacomPropsChange(e,t){},mixinDatacomEasyGet({getone:e=!1,success:t,fail:n}={}){this.mixinDatacomLoading||(this.mixinDatacomLoading=!0,this.mixinDatacomErrorMessage=\"\",this.mixinDatacomGet().then((n=>{this.mixinDatacomLoading=!1;const{data:s,count:r}=n.result;this.getcount&&(this.mixinDatacomPage.count=r),this.mixinDatacomHasMore=s.length<this.pageSize;const o=e?s.length?s[0]:void 0:s;this.mixinDatacomResData=o,t&&t(o)})).catch((e=>{this.mixinDatacomLoading=!1,this.mixinDatacomErrorMessage=e,n&&n(e)})))},mixinDatacomGet(t={}){let n=e.database(this.spaceInfo);const s=t.action||this.action;s&&(n=n.action(s));const r=t.collection||this.collection;n=Array.isArray(r)?n.collection(...r):n.collection(r);const o=t.where||this.where;o&&Object.keys(o).length&&(n=n.where(o));const i=t.field||this.field;i&&(n=n.field(i));const a=t.foreignKey||this.foreignKey;a&&(n=n.foreignKey(a));const c=t.groupby||this.groupby;c&&(n=n.groupBy(c));const u=t.groupField||this.groupField;u&&(n=n.groupField(u));!0===(void 0!==t.distinct?t.distinct:this.distinct)&&(n=n.distinct());const h=t.orderby||this.orderby;h&&(n=n.orderBy(h));const l=void 0!==t.pageCurrent?t.pageCurrent:this.mixinDatacomPage.current,d=void 0!==t.pageSize?t.pageSize:this.mixinDatacomPage.size,f=void 0!==t.getcount?t.getcount:this.getcount,p=void 0!==t.gettree?t.gettree:this.gettree,g=void 0!==t.gettreepath?t.gettreepath:this.gettreepath,m={getCount:f},y={limitLevel:void 0!==t.limitlevel?t.limitlevel:this.limitlevel,startWith:void 0!==t.startwith?t.startwith:this.startwith};return p&&(m.getTree=y),g&&(m.getTreePath=y),n=n.skip(d*(l-1)).limit(d).get(m),n}}}}function yt(e){return function(t,n={}){n=function(e,t={}){return e.customUI=t.customUI||e.customUI,Object.assign(e.loadingOptions,t.loadingOptions),Object.assign(e.errorOptions,t.errorOptions),e}({customUI:!1,loadingOptions:{text:\"加载中...\",mask:!0},errorOptions:{type:\"modal\",retry:!1}},n);const{customUI:s,loadingOptions:r,errorOptions:o}=n,a=!s;return new Proxy({},{get:(n,s)=>async function n(...c){let u;a&&uni.showLoading({title:r.title,mask:r.mask});try{u=await e.callFunction({name:t,type:i,data:{method:s,params:c}})}catch(e){u={result:e}}const{errCode:h,errMsg:l}=u.result||{};if(a&&uni.hideLoading(),h){if(a)if(\"toast\"===o.type)uni.showToast({title:l,icon:\"none\"});else{if(\"modal\"!==o.type)throw new Error(`Invalid errorOptions.type: ${o.type}`);{const{confirm:e}=await async function({title:e,content:t,showCancel:n,cancelText:s,confirmText:r}={}){return new Promise(((o,i)=>{uni.showModal({title:e,content:t,showCancel:n,cancelText:s,confirmText:r,success(e){o(e)},fail(){o({confirm:!1,cancel:!0})}})}))}({title:\"提示\",content:l,showCancel:o.retry,cancelText:\"取消\",confirmText:o.retry?\"重试\":\"确定\"});if(o.retry&&e)return n(...c)}}const e=new I({code:h,message:l,requestId:u.requestId});throw e.detail=u.result,e}return u.result}})}}async function _t(e,t){const n=`http://${e}:${t}/system/ping`;try{const e=await(s={url:n,timeout:500},new Promise(((e,t)=>{C.request({...s,success(t){e(t)},fail(e){t(e)}})})));return!(!e.data||0!==e.data.code)}catch(e){return!1}var s}function wt(e){if(e.initUniCloudStatus&&\"rejected\"!==e.initUniCloudStatus)return;let t=Promise.resolve();var n;n=1,t=new Promise(((e,t)=>{setTimeout((()=>{e()}),n)})),e.isReady=!1,e.isDefault=!1;const s=e.auth();e.initUniCloudStatus=\"pending\",e.initUniCloud=t.then((()=>s.getLoginState())).then((e=>e?Promise.resolve():s.signInAnonymously())).then((()=>{if(!l)return Promise.resolve();if(l&&e.debugInfo){const{address:t,servePort:n}=e.debugInfo;return async function(e,t){let n;for(let s=0;s<e.length;s++){const r=e[s];if(await _t(r,t)){n=r;break}}return{address:n,port:t}}(t,n)}})).then((({address:t,port:n}={})=>{if(!l)return Promise.resolve();if(t)e.localAddress=t,e.localPort=n;else if(e.debugInfo){const t=console[\"app-plus\"===d?\"error\":\"warn\"];let n=\"\";\"remote\"===e.debugInfo.initialLaunchType?(e.debugInfo.forceRemote=!0,n=\"当前客户端和HBuilderX不在同一局域网下(或其他网络原因无法连接HBuilderX),uniCloud本地调试服务不对当前客户端生效。\\n- 如果不使用uniCloud本地调试服务,请直接忽略此信息。\\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。\\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\"):n=\"无法连接uniCloud本地调试服务,请检查当前客户端是否与主机在同一局域网下。\\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。\\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\",\"h5\"===d&&(n+=\"\\n- 部分浏览器开启节流模式之后访问本地地址受限,请检查是否启用了节流模式\"),t(n)}})).then((()=>{Be(),e.isReady=!0,e.initUniCloudStatus=\"fulfilled\"})).catch((t=>{console.error(t),e.initUniCloudStatus=\"rejected\"}))}let kt=new class{init(e){let t={};const n=!1!==e.debugFunction&&l&&(\"h5\"===d&&navigator.userAgent.indexOf(\"HBuilderX\")>0||\"app-plus\"===d);switch(e.provider){case\"tencent\":t=je.init(Object.assign(e,{useDebugFunction:n}));break;case\"aliyun\":t=q.init(Object.assign(e,{useDebugFunction:n}));break;case\"private\":t=He.init(Object.assign(e,{useDebugFunction:n}));break;default:throw new Error(\"未提供正确的provider参数\")}const s=f;l&&s&&!s.code&&(t.debugInfo=s),wt(t),t.reInit=function(){wt(this)},Qe(t),function(e){const t=e.uploadFile;e.uploadFile=function(e){return t.call(this,e)}}(t),ut(t),function(e){e.getCurrentUserInfo=ft,e.chooseAndUploadFile=pt.initChooseAndUploadFile(e),Object.assign(e,{get mixinDatacom(){return mt(e)}}),e.importObject=yt(e)}(t);return[\"callFunction\",\"uploadFile\",\"deleteFile\",\"getTempFileURL\",\"downloadFile\",\"chooseAndUploadFile\"].forEach((e=>{if(!t[e])return;const n=t[e];t[e]=function(){return t.reInit(),n.apply(t,Array.from(arguments))},t[e]=P(t[e],e).bind(t)})),t.init=this.init,t}};(()=>{{const e=p;let t={};if(1===e.length)t=e[0],kt=kt.init(t),kt.isDefault=!0;else{const t=[\"auth\",\"callFunction\",\"uploadFile\",\"deleteFile\",\"getTempFileURL\",\"downloadFile\",\"database\",\"getCurrentUSerInfo\",\"importObject\"];let n;n=e&&e.length>0?\"应用有多个服务空间,请通过uniCloud.init方法指定要使用的服务空间\":g?\"应用未关联服务空间,请在uniCloud目录右键关联服务空间\":\"uni-app cli项目内使用uniCloud需要使用HBuilderX的运行菜单运行项目,且需要在uniCloud目录关联服务空间\",t.forEach((e=>{kt[e]=function(){return console.error(n),Promise.reject(new I({code:\"SYS_ERR\",message:n}))}}))}Object.assign(kt,{get mixinDatacom(){return mt(kt)}}),kt.addInterceptor=S,kt.removeInterceptor=v,l&&\"h5\"===d&&(window.uniCloud=kt)}})();var St=kt;export{St as default};\n","export default {\"appid\":\"__UNI__915967A\"}","/*\r\n * uCharts (R)\r\n * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360/快手)、Vue、Taro等支持canvas的框架平台\r\n * Copyright (C) 2018-2022 QIUN (R) 秋云 https://www.ucharts.cn All rights reserved.\r\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n * 复制使用请保留本段注释,感谢支持开源!\r\n * \r\n * uCharts (R) 官方网站\r\n * https://www.uCharts.cn\r\n * \r\n * 开源地址:\r\n * https://gitee.com/uCharts/uCharts\r\n * \r\n * uni-app插件市场地址:\r\n * http://ext.dcloud.net.cn/plugin?id=271\r\n * \r\n */\r\n\r\n'use strict';\r\n\r\nvar config = {\r\n version: 'v2.4.3-20220505',\r\n yAxisWidth: 15,\r\n xAxisHeight: 22,\r\n xAxisTextPadding: 3,\r\n padding: [10, 10, 10, 10],\r\n pixelRatio: 1,\r\n rotate: false,\r\n fontSize: 13,\r\n fontColor: '#666666',\r\n dataPointShape: ['circle', 'circle', 'circle', 'circle'],\r\n color: ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'],\r\n linearColor: ['#0EE2F8', '#2BDCA8', '#FA7D8D', '#EB88E2', '#2AE3A0', '#0EE2F8', '#EB88E2', '#6773E3', '#F78A85'],\r\n pieChartLinePadding: 15,\r\n pieChartTextPadding: 5,\r\n titleFontSize: 20,\r\n subtitleFontSize: 15,\r\n toolTipPadding: 3,\r\n toolTipBackground: '#000000',\r\n toolTipOpacity: 0.7,\r\n toolTipLineHeight: 20,\r\n radarLabelTextMargin: 13,\r\n};\r\n\r\nvar assign = function(target, ...varArgs) {\r\n if (target == null) {\r\n throw new TypeError('[uCharts] Cannot convert undefined or null to object');\r\n }\r\n if (!varArgs || varArgs.length <= 0) {\r\n return target;\r\n }\r\n // 深度合并对象\r\n function deepAssign(obj1, obj2) {\r\n for (let key in obj2) {\r\n obj1[key] = obj1[key] && obj1[key].toString() === \"[object Object]\" ?\r\n deepAssign(obj1[key], obj2[key]) : obj1[key] = obj2[key];\r\n }\r\n return obj1;\r\n }\r\n varArgs.forEach(val => {\r\n target = deepAssign(target, val);\r\n });\r\n return target;\r\n};\r\n\r\nvar util = {\r\n toFixed: function toFixed(num, limit) {\r\n limit = limit || 2;\r\n if (this.isFloat(num)) {\r\n num = num.toFixed(limit);\r\n }\r\n return num;\r\n },\r\n isFloat: function isFloat(num) {\r\n return num % 1 !== 0;\r\n },\r\n approximatelyEqual: function approximatelyEqual(num1, num2) {\r\n return Math.abs(num1 - num2) < 1e-10;\r\n },\r\n isSameSign: function isSameSign(num1, num2) {\r\n return Math.abs(num1) === num1 && Math.abs(num2) === num2 || Math.abs(num1) !== num1 && Math.abs(num2) !== num2;\r\n },\r\n isSameXCoordinateArea: function isSameXCoordinateArea(p1, p2) {\r\n return this.isSameSign(p1.x, p2.x);\r\n },\r\n isCollision: function isCollision(obj1, obj2) {\r\n obj1.end = {};\r\n obj1.end.x = obj1.start.x + obj1.width;\r\n obj1.end.y = obj1.start.y - obj1.height;\r\n obj2.end = {};\r\n obj2.end.x = obj2.start.x + obj2.width;\r\n obj2.end.y = obj2.start.y - obj2.height;\r\n var flag = obj2.start.x > obj1.end.x || obj2.end.x < obj1.start.x || obj2.end.y > obj1.start.y || obj2.start.y < obj1.end.y;\r\n return !flag;\r\n }\r\n};\r\n\r\n//兼容H5点击事件\r\nfunction getH5Offset(e) {\r\n e.mp = {\r\n changedTouches: []\r\n };\r\n e.mp.changedTouches.push({\r\n x: e.offsetX,\r\n y: e.offsetY\r\n });\r\n return e;\r\n}\r\n\r\n// hex 转 rgba\r\nfunction hexToRgb(hexValue, opc) {\r\n var rgx = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\r\n var hex = hexValue.replace(rgx, function(m, r, g, b) {\r\n return r + r + g + g + b + b;\r\n });\r\n var rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n var r = parseInt(rgb[1], 16);\r\n var g = parseInt(rgb[2], 16);\r\n var b = parseInt(rgb[3], 16);\r\n return 'rgba(' + r + ',' + g + ',' + b + ',' + opc + ')';\r\n}\r\n\r\nfunction findRange(num, type, limit) {\r\n if (isNaN(num)) {\r\n throw new Error('[uCharts] series数据需为Number格式');\r\n }\r\n limit = limit || 10;\r\n type = type ? type : 'upper';\r\n var multiple = 1;\r\n while (limit < 1) {\r\n limit *= 10;\r\n multiple *= 10;\r\n }\r\n if (type === 'upper') {\r\n num = Math.ceil(num * multiple);\r\n } else {\r\n num = Math.floor(num * multiple);\r\n }\r\n while (num % limit !== 0) {\r\n if (type === 'upper') {\r\n if (num == num + 1) { //修复数据值过大num++无效的bug by 向日葵 @xrk_jy\r\n break;\r\n }\r\n num++;\r\n } else {\r\n num--;\r\n }\r\n }\r\n return num / multiple;\r\n}\r\n\r\nfunction calCandleMA(dayArr, nameArr, colorArr, kdata) {\r\n let seriesTemp = [];\r\n for (let k = 0; k < dayArr.length; k++) {\r\n let seriesItem = {\r\n data: [],\r\n name: nameArr[k],\r\n color: colorArr[k]\r\n };\r\n for (let i = 0, len = kdata.length; i < len; i++) {\r\n if (i < dayArr[k]) {\r\n seriesItem.data.push(null);\r\n continue;\r\n }\r\n let sum = 0;\r\n for (let j = 0; j < dayArr[k]; j++) {\r\n sum += kdata[i - j][1];\r\n }\r\n seriesItem.data.push(+(sum / dayArr[k]).toFixed(3));\r\n }\r\n seriesTemp.push(seriesItem);\r\n }\r\n return seriesTemp;\r\n}\r\n\r\nfunction calValidDistance(self, distance, chartData, config, opts) {\r\n var dataChartAreaWidth = opts.width - opts.area[1] - opts.area[3];\r\n var dataChartWidth = chartData.eachSpacing * (opts.chartData.xAxisData.xAxisPoints.length - 1);\r\n if(opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1){\r\n if(opts.extra.mount.widthRatio>2) opts.extra.mount.widthRatio = 2\r\n dataChartWidth += (opts.extra.mount.widthRatio - 1)*chartData.eachSpacing;\r\n }\r\n var validDistance = distance;\r\n if (distance >= 0) {\r\n validDistance = 0;\r\n self.uevent.trigger('scrollLeft');\r\n self.scrollOption.position = 'left'\r\n opts.xAxis.scrollPosition = 'left';\r\n } else if (Math.abs(distance) >= dataChartWidth - dataChartAreaWidth) {\r\n validDistance = dataChartAreaWidth - dataChartWidth;\r\n self.uevent.trigger('scrollRight');\r\n self.scrollOption.position = 'right'\r\n opts.xAxis.scrollPosition = 'right';\r\n } else {\r\n self.scrollOption.position = distance\r\n opts.xAxis.scrollPosition = distance;\r\n }\r\n return validDistance;\r\n}\r\n\r\nfunction isInAngleRange(angle, startAngle, endAngle) {\r\n function adjust(angle) {\r\n while (angle < 0) {\r\n angle += 2 * Math.PI;\r\n }\r\n while (angle > 2 * Math.PI) {\r\n angle -= 2 * Math.PI;\r\n }\r\n return angle;\r\n }\r\n angle = adjust(angle);\r\n startAngle = adjust(startAngle);\r\n endAngle = adjust(endAngle);\r\n if (startAngle > endAngle) {\r\n endAngle += 2 * Math.PI;\r\n if (angle < startAngle) {\r\n angle += 2 * Math.PI;\r\n }\r\n }\r\n return angle >= startAngle && angle <= endAngle;\r\n}\r\n\r\nfunction createCurveControlPoints(points, i) {\r\n function isNotMiddlePoint(points, i) {\r\n if (points[i - 1] && points[i + 1]) {\r\n return points[i].y >= Math.max(points[i - 1].y, points[i + 1].y) || points[i].y <= Math.min(points[i - 1].y,\r\n points[i + 1].y);\r\n } else {\r\n return false;\r\n }\r\n }\r\n function isNotMiddlePointX(points, i) {\r\n if (points[i - 1] && points[i + 1]) {\r\n return points[i].x >= Math.max(points[i - 1].x, points[i + 1].x) || points[i].x <= Math.min(points[i - 1].x,\r\n points[i + 1].x);\r\n } else {\r\n return false;\r\n }\r\n }\r\n var a = 0.2;\r\n var b = 0.2;\r\n var pAx = null;\r\n var pAy = null;\r\n var pBx = null;\r\n var pBy = null;\r\n if (i < 1) {\r\n pAx = points[0].x + (points[1].x - points[0].x) * a;\r\n pAy = points[0].y + (points[1].y - points[0].y) * a;\r\n } else {\r\n pAx = points[i].x + (points[i + 1].x - points[i - 1].x) * a;\r\n pAy = points[i].y + (points[i + 1].y - points[i - 1].y) * a;\r\n }\r\n\r\n if (i > points.length - 3) {\r\n var last = points.length - 1;\r\n pBx = points[last].x - (points[last].x - points[last - 1].x) * b;\r\n pBy = points[last].y - (points[last].y - points[last - 1].y) * b;\r\n } else {\r\n pBx = points[i + 1].x - (points[i + 2].x - points[i].x) * b;\r\n pBy = points[i + 1].y - (points[i + 2].y - points[i].y) * b;\r\n }\r\n if (isNotMiddlePoint(points, i + 1)) {\r\n pBy = points[i + 1].y;\r\n }\r\n if (isNotMiddlePoint(points, i)) {\r\n pAy = points[i].y;\r\n }\r\n if (isNotMiddlePointX(points, i + 1)) {\r\n pBx = points[i + 1].x;\r\n }\r\n if (isNotMiddlePointX(points, i)) {\r\n pAx = points[i].x;\r\n }\r\n if (pAy >= Math.max(points[i].y, points[i + 1].y) || pAy <= Math.min(points[i].y, points[i + 1].y)) {\r\n pAy = points[i].y;\r\n }\r\n if (pBy >= Math.max(points[i].y, points[i + 1].y) || pBy <= Math.min(points[i].y, points[i + 1].y)) {\r\n pBy = points[i + 1].y;\r\n }\r\n if (pAx >= Math.max(points[i].x, points[i + 1].x) || pAx <= Math.min(points[i].x, points[i + 1].x)) {\r\n pAx = points[i].x;\r\n }\r\n if (pBx >= Math.max(points[i].x, points[i + 1].x) || pBx <= Math.min(points[i].x, points[i + 1].x)) {\r\n pBx = points[i + 1].x;\r\n }\r\n return {\r\n ctrA: {\r\n x: pAx,\r\n y: pAy\r\n },\r\n ctrB: {\r\n x: pBx,\r\n y: pBy\r\n }\r\n };\r\n}\r\n\r\n\r\nfunction convertCoordinateOrigin(x, y, center) {\r\n return {\r\n x: center.x + x,\r\n y: center.y - y\r\n };\r\n}\r\n\r\nfunction avoidCollision(obj, target) {\r\n if (target) {\r\n // is collision test\r\n while (util.isCollision(obj, target)) {\r\n if (obj.start.x > 0) {\r\n obj.start.y--;\r\n } else if (obj.start.x < 0) {\r\n obj.start.y++;\r\n } else {\r\n if (obj.start.y > 0) {\r\n obj.start.y++;\r\n } else {\r\n obj.start.y--;\r\n }\r\n }\r\n }\r\n }\r\n return obj;\r\n}\r\n\r\nfunction fixPieSeries(series, opts, config){\r\n let pieSeriesArr = [];\r\n if(series.length>0 && series[0].data.constructor.toString().indexOf('Array') > -1){\r\n opts._pieSeries_ = series;\r\n let oldseries = series[0].data;\r\n for (var i = 0; i < oldseries.length; i++) {\r\n oldseries[i].formatter = series[0].formatter;\r\n oldseries[i].data = oldseries[i].value;\r\n pieSeriesArr.push(oldseries[i]);\r\n }\r\n opts.series = pieSeriesArr;\r\n }else{\r\n pieSeriesArr = series;\r\n }\r\n return pieSeriesArr;\r\n}\r\n\r\nfunction fillSeries(series, opts, config) {\r\n var index = 0;\r\n for (var i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n if (!item.color) {\r\n item.color = config.color[index];\r\n index = (index + 1) % config.color.length;\r\n }\r\n if (!item.linearIndex) {\r\n item.linearIndex = i;\r\n }\r\n if (!item.index) {\r\n item.index = 0;\r\n }\r\n if (!item.type) {\r\n item.type = opts.type;\r\n }\r\n if (typeof item.show == \"undefined\") {\r\n item.show = true;\r\n }\r\n if (!item.type) {\r\n item.type = opts.type;\r\n }\r\n if (!item.pointShape) {\r\n item.pointShape = \"circle\";\r\n }\r\n if (!item.legendShape) {\r\n switch (item.type) {\r\n case 'line':\r\n item.legendShape = \"line\";\r\n break;\r\n case 'column':\r\n case 'bar':\r\n item.legendShape = \"rect\";\r\n break;\r\n case 'area':\r\n case 'mount':\r\n item.legendShape = \"triangle\";\r\n break;\r\n default:\r\n item.legendShape = \"circle\";\r\n }\r\n }\r\n }\r\n return series;\r\n}\r\n\r\nfunction fillCustomColor(linearType, customColor, series, config) {\r\n var newcolor = customColor || [];\r\n if (linearType == 'custom' && newcolor.length == 0 ) {\r\n newcolor = config.linearColor;\r\n }\r\n if (linearType == 'custom' && newcolor.length < series.length) {\r\n let chazhi = series.length - newcolor.length;\r\n for (var i = 0; i < chazhi; i++) {\r\n newcolor.push(config.linearColor[(i + 1) % config.linearColor.length]);\r\n }\r\n }\r\n return newcolor;\r\n}\r\n\r\nfunction getDataRange(minData, maxData) {\r\n var limit = 0;\r\n var range = maxData - minData;\r\n if (range >= 10000) {\r\n limit = 1000;\r\n } else if (range >= 1000) {\r\n limit = 100;\r\n } else if (range >= 100) {\r\n limit = 10;\r\n } else if (range >= 10) {\r\n limit = 5;\r\n } else if (range >= 1) {\r\n limit = 1;\r\n } else if (range >= 0.1) {\r\n limit = 0.1;\r\n } else if (range >= 0.01) {\r\n limit = 0.01;\r\n } else if (range >= 0.001) {\r\n limit = 0.001;\r\n } else if (range >= 0.0001) {\r\n limit = 0.0001;\r\n } else if (range >= 0.00001) {\r\n limit = 0.00001;\r\n } else {\r\n limit = 0.000001;\r\n }\r\n return {\r\n minRange: findRange(minData, 'lower', limit),\r\n maxRange: findRange(maxData, 'upper', limit)\r\n };\r\n}\r\n\r\nfunction measureText(text, fontSize, context) {\r\n var width = 0;\r\n text = String(text);\r\n\r\n\r\n\r\n if (context !== false && context !== undefined && context.setFontSize && context.measureText) {\r\n context.setFontSize(fontSize);\r\n return context.measureText(text).width;\r\n } else {\r\n var text = text.split('');\r\n for (let i = 0; i < text.length; i++) {\r\n let item = text[i];\r\n if (/[a-zA-Z]/.test(item)) {\r\n width += 7;\r\n } else if (/[0-9]/.test(item)) {\r\n width += 5.5;\r\n } else if (/\\./.test(item)) {\r\n width += 2.7;\r\n } else if (/-/.test(item)) {\r\n width += 3.25;\r\n } else if (/:/.test(item)) {\r\n width += 2.5;\r\n } else if (/[\\u4e00-\\u9fa5]/.test(item)) {\r\n width += 10;\r\n } else if (/\\(|\\)/.test(item)) {\r\n width += 3.73;\r\n } else if (/\\s/.test(item)) {\r\n width += 2.5;\r\n } else if (/%/.test(item)) {\r\n width += 8;\r\n } else {\r\n width += 10;\r\n }\r\n }\r\n return width * fontSize / 10;\r\n }\r\n}\r\n\r\nfunction dataCombine(series) {\r\n return series.reduce(function(a, b) {\r\n return (a.data ? a.data : a).concat(b.data);\r\n }, []);\r\n}\r\n\r\nfunction dataCombineStack(series, len) {\r\n var sum = new Array(len);\r\n for (var j = 0; j < sum.length; j++) {\r\n sum[j] = 0;\r\n }\r\n for (var i = 0; i < series.length; i++) {\r\n for (var j = 0; j < sum.length; j++) {\r\n sum[j] += series[i].data[j];\r\n }\r\n }\r\n return series.reduce(function(a, b) {\r\n return (a.data ? a.data : a).concat(b.data).concat(sum);\r\n }, []);\r\n}\r\n\r\nfunction getTouches(touches, opts, e) {\r\n let x, y;\r\n if (touches.clientX) {\r\n if (opts.rotate) {\r\n y = opts.height - touches.clientX * opts.pix;\r\n x = (touches.pageY - e.currentTarget.offsetTop - (opts.height / opts.pix / 2) * (opts.pix - 1)) * opts.pix;\r\n } else {\r\n x = touches.clientX * opts.pix;\r\n y = (touches.pageY - e.currentTarget.offsetTop - (opts.height / opts.pix / 2) * (opts.pix - 1)) * opts.pix;\r\n }\r\n } else {\r\n if (opts.rotate) {\r\n y = opts.height - touches.x * opts.pix;\r\n x = touches.y * opts.pix;\r\n } else {\r\n x = touches.x * opts.pix;\r\n y = touches.y * opts.pix;\r\n }\r\n }\r\n return {\r\n x: x,\r\n y: y\r\n }\r\n}\r\n\r\nfunction getSeriesDataItem(series, index, group) {\r\n var data = [];\r\n var newSeries = [];\r\n var indexIsArr = index.constructor.toString().indexOf('Array') > -1;\r\n if(indexIsArr){\r\n let tempSeries = filterSeries(series);\r\n for (var i = 0; i < group.length; i++) {\r\n newSeries.push(tempSeries[group[i]]);\r\n }\r\n }else{\r\n newSeries = series;\r\n };\r\n for (let i = 0; i < newSeries.length; i++) {\r\n let item = newSeries[i];\r\n let tmpindex = -1;\r\n if(indexIsArr){\r\n tmpindex = index[i];\r\n }else{\r\n tmpindex = index;\r\n }\r\n if (item.data[tmpindex] !== null && typeof item.data[tmpindex] !== 'undefined' && item.show) {\r\n let seriesItem = {};\r\n seriesItem.color = item.color;\r\n seriesItem.type = item.type;\r\n seriesItem.style = item.style;\r\n seriesItem.pointShape = item.pointShape;\r\n seriesItem.disableLegend = item.disableLegend;\r\n seriesItem.name = item.name;\r\n seriesItem.show = item.show;\r\n seriesItem.data = item.formatter ? item.formatter(item.data[tmpindex]) : item.data[tmpindex];\r\n data.push(seriesItem);\r\n }\r\n }\r\n return data;\r\n}\r\n\r\nfunction getMaxTextListLength(list, fontSize, context) {\r\n var lengthList = list.map(function(item) {\r\n return measureText(item, fontSize, context);\r\n });\r\n return Math.max.apply(null, lengthList);\r\n}\r\n\r\nfunction getRadarCoordinateSeries(length) {\r\n var eachAngle = 2 * Math.PI / length;\r\n var CoordinateSeries = [];\r\n for (var i = 0; i < length; i++) {\r\n CoordinateSeries.push(eachAngle * i);\r\n }\r\n return CoordinateSeries.map(function(item) {\r\n return -1 * item + Math.PI / 2;\r\n });\r\n}\r\n\r\nfunction getToolTipData(seriesData, opts, index, group, categories) {\r\n var option = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\r\n var calPoints = opts.chartData.calPoints?opts.chartData.calPoints:[];\r\n let points = {};\r\n if(group.length > 0){\r\n let filterPoints = [];\r\n for (let i = 0; i < group.length; i++) {\r\n filterPoints.push(calPoints[group[i]])\r\n }\r\n points = filterPoints[0][index[0]];\r\n }else{\r\n for (let i = 0; i < calPoints.length; i++) {\r\n if(calPoints[i][index]){\r\n points = calPoints[i][index];\r\n break;\r\n }\r\n }\r\n };\r\n var textList = seriesData.map(function(item) {\r\n let titleText = null;\r\n if (opts.categories && opts.categories.length>0) {\r\n titleText = categories[index];\r\n };\r\n return {\r\n text: option.formatter ? option.formatter(item, titleText, index, opts) : item.name + ': ' + item.data,\r\n color: item.color\r\n };\r\n });\r\n var offset = {\r\n x: Math.round(points.x),\r\n y: Math.round(points.y)\r\n };\r\n return {\r\n textList: textList,\r\n offset: offset\r\n };\r\n}\r\n\r\nfunction getMixToolTipData(seriesData, opts, index, categories) {\r\n var option = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\r\n var points = opts.chartData.xAxisPoints[index] + opts.chartData.eachSpacing / 2;\r\n var textList = seriesData.map(function(item) {\r\n return {\r\n text: option.formatter ? option.formatter(item, categories[index], index, opts) : item.name + ': ' + item.data,\r\n color: item.color,\r\n disableLegend: item.disableLegend ? true : false\r\n };\r\n });\r\n textList = textList.filter(function(item) {\r\n if (item.disableLegend !== true) {\r\n return item;\r\n }\r\n });\r\n var offset = {\r\n x: Math.round(points),\r\n y: 0\r\n };\r\n return {\r\n textList: textList,\r\n offset: offset\r\n };\r\n}\r\n\r\nfunction getCandleToolTipData(series, seriesData, opts, index, categories, extra) {\r\n var option = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};\r\n var calPoints = opts.chartData.calPoints;\r\n let upColor = extra.color.upFill;\r\n let downColor = extra.color.downFill;\r\n //颜色顺序为开盘,收盘,最低,最高\r\n let color = [upColor, upColor, downColor, upColor];\r\n var textList = [];\r\n seriesData.map(function(item) {\r\n if (index == 0) {\r\n if (item.data[1] - item.data[0] < 0) {\r\n color[1] = downColor;\r\n } else {\r\n color[1] = upColor;\r\n }\r\n } else {\r\n if (item.data[0] < series[index - 1][1]) {\r\n color[0] = downColor;\r\n }\r\n if (item.data[1] < item.data[0]) {\r\n color[1] = downColor;\r\n }\r\n if (item.data[2] > series[index - 1][1]) {\r\n color[2] = upColor;\r\n }\r\n if (item.data[3] < series[index - 1][1]) {\r\n color[3] = downColor;\r\n }\r\n }\r\n let text1 = {\r\n text: '开盘:' + item.data[0],\r\n color: color[0]\r\n };\r\n let text2 = {\r\n text: '收盘:' + item.data[1],\r\n color: color[1]\r\n };\r\n let text3 = {\r\n text: '最低:' + item.data[2],\r\n color: color[2]\r\n };\r\n let text4 = {\r\n text: '最高:' + item.data[3],\r\n color: color[3]\r\n };\r\n textList.push(text1, text2, text3, text4);\r\n });\r\n var validCalPoints = [];\r\n var offset = {\r\n x: 0,\r\n y: 0\r\n };\r\n for (let i = 0; i < calPoints.length; i++) {\r\n let points = calPoints[i];\r\n if (typeof points[index] !== 'undefined' && points[index] !== null) {\r\n validCalPoints.push(points[index]);\r\n }\r\n }\r\n offset.x = Math.round(validCalPoints[0][0].x);\r\n return {\r\n textList: textList,\r\n offset: offset\r\n };\r\n}\r\n\r\nfunction filterSeries(series) {\r\n let tempSeries = [];\r\n for (let i = 0; i < series.length; i++) {\r\n if (series[i].show == true) {\r\n tempSeries.push(series[i])\r\n }\r\n }\r\n return tempSeries;\r\n}\r\n\r\nfunction findCurrentIndex(currentPoints, calPoints, opts, config) {\r\n var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\r\n var current={ index:-1, group:[] };\r\n var spacing = opts.chartData.eachSpacing / 2;\r\n let xAxisPoints = [];\r\n if (calPoints && calPoints.length > 0) {\r\n if (!opts.categories) {\r\n spacing = 0;\r\n }else{\r\n for (let i = 1; i < opts.chartData.xAxisPoints.length; i++) {\r\n xAxisPoints.push(opts.chartData.xAxisPoints[i] - spacing);\r\n }\r\n if ((opts.type == 'line' || opts.type == 'area') && opts.xAxis.boundaryGap == 'justify') {\r\n xAxisPoints = opts.chartData.xAxisPoints;\r\n }\r\n }\r\n if (isInExactChartArea(currentPoints, opts, config)) {\r\n if (!opts.categories) {\r\n let timePoints = Array(calPoints.length);\r\n for (let i = 0; i < calPoints.length; i++) {\r\n timePoints[i] = Array(calPoints[i].length)\r\n for (let j = 0; j < calPoints[i].length; j++) {\r\n timePoints[i][j] = (Math.abs(calPoints[i][j].x - currentPoints.x));\r\n }\r\n };\r\n let pointValue = Array(timePoints.length);\r\n let pointIndex = Array(timePoints.length);\r\n for (let i = 0; i < timePoints.length; i++) {\r\n pointValue[i] = Math.min.apply(null, timePoints[i]);\r\n pointIndex[i] = timePoints[i].indexOf(pointValue[i]);\r\n }\r\n let minValue = Math.min.apply(null, pointValue);\r\n current.index = [];\r\n for (let i = 0; i < pointValue.length; i++) {\r\n if(pointValue[i] == minValue){\r\n current.group.push(i);\r\n current.index.push(pointIndex[i]);\r\n }\r\n };\r\n }else{\r\n xAxisPoints.forEach(function(item, index) {\r\n if (currentPoints.x + offset + spacing > item) {\r\n current.index = index;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n return current;\r\n}\r\n\r\nfunction findBarChartCurrentIndex(currentPoints, calPoints, opts, config) {\r\n var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\r\n var current={ index:-1, group:[] };\r\n var spacing = opts.chartData.eachSpacing / 2;\r\n let yAxisPoints = opts.chartData.yAxisPoints;\r\n if (calPoints && calPoints.length > 0) {\r\n if (isInExactChartArea(currentPoints, opts, config)) {\r\n yAxisPoints.forEach(function(item, index) {\r\n if (currentPoints.y + offset + spacing > item) {\r\n current.index = index;\r\n }\r\n });\r\n }\r\n }\r\n return current;\r\n}\r\n\r\nfunction findLegendIndex(currentPoints, legendData, opts) {\r\n let currentIndex = -1;\r\n let gap = 0;\r\n if (isInExactLegendArea(currentPoints, legendData.area)) {\r\n let points = legendData.points;\r\n let index = -1;\r\n for (let i = 0, len = points.length; i < len; i++) {\r\n let item = points[i];\r\n for (let j = 0; j < item.length; j++) {\r\n index += 1;\r\n let area = item[j]['area'];\r\n if (area && currentPoints.x > area[0] - gap && currentPoints.x < area[2] + gap && currentPoints.y > area[1] - gap && currentPoints.y < area[3] + gap) {\r\n currentIndex = index;\r\n break;\r\n }\r\n }\r\n }\r\n return currentIndex;\r\n }\r\n return currentIndex;\r\n}\r\n\r\nfunction isInExactLegendArea(currentPoints, area) {\r\n return currentPoints.x > area.start.x && currentPoints.x < area.end.x && currentPoints.y > area.start.y && currentPoints.y < area.end.y;\r\n}\r\n\r\nfunction isInExactChartArea(currentPoints, opts, config) {\r\n return currentPoints.x <= opts.width - opts.area[1] + 10 && currentPoints.x >= opts.area[3] - 10 && currentPoints.y >= opts.area[0] && currentPoints.y <= opts.height - opts.area[2];\r\n}\r\n\r\nfunction findRadarChartCurrentIndex(currentPoints, radarData, count) {\r\n var eachAngleArea = 2 * Math.PI / count;\r\n var currentIndex = -1;\r\n if (isInExactPieChartArea(currentPoints, radarData.center, radarData.radius)) {\r\n var fixAngle = function fixAngle(angle) {\r\n if (angle < 0) {\r\n angle += 2 * Math.PI;\r\n }\r\n if (angle > 2 * Math.PI) {\r\n angle -= 2 * Math.PI;\r\n }\r\n return angle;\r\n };\r\n var angle = Math.atan2(radarData.center.y - currentPoints.y, currentPoints.x - radarData.center.x);\r\n angle = -1 * angle;\r\n if (angle < 0) {\r\n angle += 2 * Math.PI;\r\n }\r\n var angleList = radarData.angleList.map(function(item) {\r\n item = fixAngle(-1 * item);\r\n return item;\r\n });\r\n angleList.forEach(function(item, index) {\r\n var rangeStart = fixAngle(item - eachAngleArea / 2);\r\n var rangeEnd = fixAngle(item + eachAngleArea / 2);\r\n if (rangeEnd < rangeStart) {\r\n rangeEnd += 2 * Math.PI;\r\n }\r\n if (angle >= rangeStart && angle <= rangeEnd || angle + 2 * Math.PI >= rangeStart && angle + 2 * Math.PI <= rangeEnd) {\r\n currentIndex = index;\r\n }\r\n });\r\n }\r\n return currentIndex;\r\n}\r\n\r\nfunction findFunnelChartCurrentIndex(currentPoints, funnelData) {\r\n var currentIndex = -1;\r\n for (var i = 0, len = funnelData.series.length; i < len; i++) {\r\n var item = funnelData.series[i];\r\n if (currentPoints.x > item.funnelArea[0] && currentPoints.x < item.funnelArea[2] && currentPoints.y > item.funnelArea[1] && currentPoints.y < item.funnelArea[3]) {\r\n currentIndex = i;\r\n break;\r\n }\r\n }\r\n return currentIndex;\r\n}\r\n\r\nfunction findWordChartCurrentIndex(currentPoints, wordData) {\r\n var currentIndex = -1;\r\n for (var i = 0, len = wordData.length; i < len; i++) {\r\n var item = wordData[i];\r\n if (currentPoints.x > item.area[0] && currentPoints.x < item.area[2] && currentPoints.y > item.area[1] && currentPoints.y < item.area[3]) {\r\n currentIndex = i;\r\n break;\r\n }\r\n }\r\n return currentIndex;\r\n}\r\n\r\nfunction findMapChartCurrentIndex(currentPoints, opts) {\r\n var currentIndex = -1;\r\n var cData = opts.chartData.mapData;\r\n var data = opts.series;\r\n var tmp = pointToCoordinate(currentPoints.y, currentPoints.x, cData.bounds, cData.scale, cData.xoffset, cData.yoffset);\r\n var poi = [tmp.x, tmp.y];\r\n for (var i = 0, len = data.length; i < len; i++) {\r\n var item = data[i].geometry.coordinates;\r\n if (isPoiWithinPoly(poi, item, opts.chartData.mapData.mercator)) {\r\n currentIndex = i;\r\n break;\r\n }\r\n }\r\n return currentIndex;\r\n}\r\n\r\nfunction findRoseChartCurrentIndex(currentPoints, pieData, opts) {\r\n var currentIndex = -1;\r\n var series = getRoseDataPoints(opts._series_, opts.extra.rose.type, pieData.radius, pieData.radius);\r\n if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {\r\n var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);\r\n angle = -angle;\r\n if(opts.extra.rose && opts.extra.rose.offsetAngle){\r\n angle = angle - opts.extra.rose.offsetAngle * Math.PI / 180;\r\n }\r\n for (var i = 0, len = series.length; i < len; i++) {\r\n if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._rose_proportion_ * 2 * Math.PI)) {\r\n currentIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n return currentIndex;\r\n}\r\n\r\nfunction findPieChartCurrentIndex(currentPoints, pieData, opts) {\r\n var currentIndex = -1;\r\n var series = getPieDataPoints(pieData.series);\r\n if (pieData && pieData.center && isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) {\r\n var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x);\r\n angle = -angle;\r\n if(opts.extra.pie && opts.extra.pie.offsetAngle){\r\n angle = angle - opts.extra.pie.offsetAngle * Math.PI / 180;\r\n }\r\n if(opts.extra.ring && opts.extra.ring.offsetAngle){\r\n angle = angle - opts.extra.ring.offsetAngle * Math.PI / 180;\r\n }\r\n for (var i = 0, len = series.length; i < len; i++) {\r\n if (isInAngleRange(angle, series[i]._start_, series[i]._start_ + series[i]._proportion_ * 2 * Math.PI)) {\r\n currentIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n return currentIndex;\r\n}\r\n\r\nfunction isInExactPieChartArea(currentPoints, center, radius) {\r\n return Math.pow(currentPoints.x - center.x, 2) + Math.pow(currentPoints.y - center.y, 2) <= Math.pow(radius, 2);\r\n}\r\n\r\n\r\nfunction splitPoints(points,eachSeries) {\r\n var newPoints = [];\r\n var items = [];\r\n points.forEach(function(item, index) {\r\n if(eachSeries.connectNulls){\r\n if (item !== null) {\r\n items.push(item);\r\n }\r\n }else{\r\n if (item !== null) {\r\n items.push(item);\r\n } else {\r\n if (items.length) {\r\n newPoints.push(items);\r\n }\r\n items = [];\r\n }\r\n }\r\n \r\n });\r\n if (items.length) {\r\n newPoints.push(items);\r\n }\r\n return newPoints;\r\n}\r\n\r\n\r\nfunction calLegendData(series, opts, config, chartData, context) {\r\n let legendData = {\r\n area: {\r\n start: {\r\n x: 0,\r\n y: 0\r\n },\r\n end: {\r\n x: 0,\r\n y: 0\r\n },\r\n width: 0,\r\n height: 0,\r\n wholeWidth: 0,\r\n wholeHeight: 0\r\n },\r\n points: [],\r\n widthArr: [],\r\n heightArr: []\r\n };\r\n if (opts.legend.show === false) {\r\n chartData.legendData = legendData;\r\n return legendData;\r\n }\r\n let padding = opts.legend.padding * opts.pix;\r\n let margin = opts.legend.margin * opts.pix;\r\n let fontSize = opts.legend.fontSize ? opts.legend.fontSize * opts.pix : config.fontSize;\r\n let shapeWidth = 15 * opts.pix;\r\n let shapeRight = 5 * opts.pix;\r\n let lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);\r\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\r\n let legendList = [];\r\n let widthCount = 0;\r\n let widthCountArr = [];\r\n let currentRow = [];\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n const legendText = item.legendText ? item.legendText : item.name;\r\n let itemWidth = shapeWidth + shapeRight + measureText(legendText || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;\r\n if (widthCount + itemWidth > opts.width - opts.area[1] - opts.area[3]) {\r\n legendList.push(currentRow);\r\n widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);\r\n widthCount = itemWidth;\r\n currentRow = [item];\r\n } else {\r\n widthCount += itemWidth;\r\n currentRow.push(item);\r\n }\r\n }\r\n if (currentRow.length) {\r\n legendList.push(currentRow);\r\n widthCountArr.push(widthCount - opts.legend.itemGap * opts.pix);\r\n legendData.widthArr = widthCountArr;\r\n let legendWidth = Math.max.apply(null, widthCountArr);\r\n switch (opts.legend.float) {\r\n case 'left':\r\n legendData.area.start.x = opts.area[3];\r\n legendData.area.end.x = opts.area[3] + legendWidth + 2 * padding;\r\n break;\r\n case 'right':\r\n legendData.area.start.x = opts.width - opts.area[1] - legendWidth - 2 * padding;\r\n legendData.area.end.x = opts.width - opts.area[1];\r\n break;\r\n default:\r\n legendData.area.start.x = (opts.width - legendWidth) / 2 - padding;\r\n legendData.area.end.x = (opts.width + legendWidth) / 2 + padding;\r\n }\r\n legendData.area.width = legendWidth + 2 * padding;\r\n legendData.area.wholeWidth = legendWidth + 2 * padding;\r\n legendData.area.height = legendList.length * lineHeight + 2 * padding;\r\n legendData.area.wholeHeight = legendList.length * lineHeight + 2 * padding + 2 * margin;\r\n legendData.points = legendList;\r\n }\r\n } else {\r\n let len = series.length;\r\n let maxHeight = opts.height - opts.area[0] - opts.area[2] - 2 * margin - 2 * padding;\r\n let maxLength = Math.min(Math.floor(maxHeight / lineHeight), len);\r\n legendData.area.height = maxLength * lineHeight + padding * 2;\r\n legendData.area.wholeHeight = maxLength * lineHeight + padding * 2;\r\n switch (opts.legend.float) {\r\n case 'top':\r\n legendData.area.start.y = opts.area[0] + margin;\r\n legendData.area.end.y = opts.area[0] + margin + legendData.area.height;\r\n break;\r\n case 'bottom':\r\n legendData.area.start.y = opts.height - opts.area[2] - margin - legendData.area.height;\r\n legendData.area.end.y = opts.height - opts.area[2] - margin;\r\n break;\r\n default:\r\n legendData.area.start.y = (opts.height - legendData.area.height) / 2;\r\n legendData.area.end.y = (opts.height + legendData.area.height) / 2;\r\n }\r\n let lineNum = len % maxLength === 0 ? len / maxLength : Math.floor((len / maxLength) + 1);\r\n let currentRow = [];\r\n for (let i = 0; i < lineNum; i++) {\r\n let temp = series.slice(i * maxLength, i * maxLength + maxLength);\r\n currentRow.push(temp);\r\n }\r\n legendData.points = currentRow;\r\n if (currentRow.length) {\r\n for (let i = 0; i < currentRow.length; i++) {\r\n let item = currentRow[i];\r\n let maxWidth = 0;\r\n for (let j = 0; j < item.length; j++) {\r\n let itemWidth = shapeWidth + shapeRight + measureText(item[j].name || 'undefined', fontSize, context) + opts.legend.itemGap * opts.pix;\r\n if (itemWidth > maxWidth) {\r\n maxWidth = itemWidth;\r\n }\r\n }\r\n legendData.widthArr.push(maxWidth);\r\n legendData.heightArr.push(item.length * lineHeight + padding * 2);\r\n }\r\n let legendWidth = 0\r\n for (let i = 0; i < legendData.widthArr.length; i++) {\r\n legendWidth += legendData.widthArr[i];\r\n }\r\n legendData.area.width = legendWidth - opts.legend.itemGap * opts.pix + 2 * padding;\r\n legendData.area.wholeWidth = legendData.area.width + padding;\r\n }\r\n }\r\n switch (opts.legend.position) {\r\n case 'top':\r\n legendData.area.start.y = opts.area[0] + margin;\r\n legendData.area.end.y = opts.area[0] + margin + legendData.area.height;\r\n break;\r\n case 'bottom':\r\n legendData.area.start.y = opts.height - opts.area[2] - legendData.area.height - margin;\r\n legendData.area.end.y = opts.height - opts.area[2] - margin;\r\n break;\r\n case 'left':\r\n legendData.area.start.x = opts.area[3];\r\n legendData.area.end.x = opts.area[3] + legendData.area.width;\r\n break;\r\n case 'right':\r\n legendData.area.start.x = opts.width - opts.area[1] - legendData.area.width;\r\n legendData.area.end.x = opts.width - opts.area[1];\r\n break;\r\n }\r\n chartData.legendData = legendData;\r\n return legendData;\r\n}\r\n\r\nfunction calCategoriesData(categories, opts, config, eachSpacing, context) {\r\n var result = {\r\n angle: 0,\r\n xAxisHeight: config.xAxisHeight\r\n };\r\n var fontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;\r\n var categoriesTextLenth = categories.map(function(item,index) {\r\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item,index,opts) : item;\r\n return measureText(String(xitem), fontSize, context);\r\n });\r\n \r\n var maxTextLength = Math.max.apply(this, categoriesTextLenth);\r\n if (opts.xAxis.rotateLabel == true) {\r\n result.angle = opts.xAxis.rotateAngle * Math.PI / 180;\r\n let tempHeight = 2 * config.xAxisTextPadding + Math.abs(maxTextLength * Math.sin(result.angle))\r\n tempHeight = tempHeight < fontSize + 2 * config.xAxisTextPadding ? tempHeight + 2 * config.xAxisTextPadding : tempHeight;\r\n if(opts.enableScroll == true && opts.xAxis.scrollShow == true){\r\n tempHeight += 12 * opts.pix;\r\n }\r\n result.xAxisHeight = tempHeight;\r\n }\r\n if (opts.xAxis.disabled){\r\n result.xAxisHeight = 0;\r\n }\r\n return result;\r\n}\r\n\r\nfunction getXAxisTextList(series, opts, config, stack) {\r\n var index = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1;\r\n var data;\r\n if (stack == 'stack') {\r\n data = dataCombineStack(series, opts.categories.length);\r\n } else {\r\n data = dataCombine(series);\r\n }\r\n var sorted = [];\r\n // remove null from data\r\n data = data.filter(function(item) {\r\n //return item !== null;\r\n if (typeof item === 'object' && item !== null) {\r\n if (item.constructor.toString().indexOf('Array') > -1) {\r\n return item !== null;\r\n } else {\r\n return item.value !== null;\r\n }\r\n } else {\r\n return item !== null;\r\n }\r\n });\r\n data.map(function(item) {\r\n if (typeof item === 'object') {\r\n if (item.constructor.toString().indexOf('Array') > -1) {\r\n if (opts.type == 'candle') {\r\n item.map(function(subitem) {\r\n sorted.push(subitem);\r\n })\r\n } else {\r\n sorted.push(item[0]);\r\n }\r\n } else {\r\n sorted.push(item.value);\r\n }\r\n } else {\r\n sorted.push(item);\r\n }\r\n })\r\n\r\n var minData = 0;\r\n var maxData = 0;\r\n if (sorted.length > 0) {\r\n minData = Math.min.apply(this, sorted);\r\n maxData = Math.max.apply(this, sorted);\r\n }\r\n //为了兼容v1.9.0之前的项目\r\n if (index > -1) {\r\n if (typeof opts.xAxis.data[index].min === 'number') {\r\n minData = Math.min(opts.xAxis.data[index].min, minData);\r\n }\r\n if (typeof opts.xAxis.data[index].max === 'number') {\r\n maxData = Math.max(opts.xAxis.data[index].max, maxData);\r\n }\r\n } else {\r\n if (typeof opts.xAxis.min === 'number') {\r\n minData = Math.min(opts.xAxis.min, minData);\r\n }\r\n if (typeof opts.xAxis.max === 'number') {\r\n maxData = Math.max(opts.xAxis.max, maxData);\r\n }\r\n }\r\n if (minData === maxData) {\r\n var rangeSpan = maxData || 10;\r\n maxData += rangeSpan;\r\n }\r\n //var dataRange = getDataRange(minData, maxData);\r\n var minRange = minData;\r\n var maxRange = maxData;\r\n var range = [];\r\n var eachRange = (maxRange - minRange) / opts.xAxis.splitNumber;\r\n for (var i = 0; i <= opts.xAxis.splitNumber; i++) {\r\n range.push(minRange + eachRange * i);\r\n }\r\n return range;\r\n}\r\n\r\nfunction calXAxisData(series, opts, config, context) {\r\n //堆叠图重算Y轴\r\n var columnstyle = assign({}, {\r\n type: \"\"\r\n }, opts.extra.bar);\r\n var result = {\r\n angle: 0,\r\n xAxisHeight: config.xAxisHeight\r\n };\r\n result.ranges = getXAxisTextList(series, opts, config, columnstyle.type);\r\n result.rangesFormat = result.ranges.map(function(item) {\r\n //item = opts.xAxis.formatter ? opts.xAxis.formatter(item) : util.toFixed(item, 2);\r\n item = util.toFixed(item, 2);\r\n return item;\r\n });\r\n var xAxisScaleValues = result.ranges.map(function(item) {\r\n // 如果刻度值是浮点数,则保留两位小数\r\n item = util.toFixed(item, 2);\r\n // 若有自定义格式则调用自定义的格式化函数\r\n //item = opts.xAxis.formatter ? opts.xAxis.formatter(Number(item)) : item;\r\n return item;\r\n });\r\n result = Object.assign(result, getXAxisPoints(xAxisScaleValues, opts, config));\r\n // 计算X轴刻度的属性譬如每个刻度的间隔,刻度的起始点\\结束点以及总长\r\n var eachSpacing = result.eachSpacing;\r\n var textLength = xAxisScaleValues.map(function(item) {\r\n return measureText(item, opts.xAxis.fontSize * opts.pix || config.fontSize, context);\r\n });\r\n // get max length of categories text\r\n var maxTextLength = Math.max.apply(this, textLength);\r\n // 如果刻度值文本内容过长,则将其逆时针旋转45°\r\n if (maxTextLength + 2 * config.xAxisTextPadding > eachSpacing) {\r\n result.angle = 45 * Math.PI / 180;\r\n result.xAxisHeight = 2 * config.xAxisTextPadding + maxTextLength * Math.sin(result.angle);\r\n }\r\n if (opts.xAxis.disabled === true) {\r\n result.xAxisHeight = 0;\r\n }\r\n return result;\r\n}\r\n\r\nfunction getRadarDataPoints(angleList, center, radius, series, opts) {\r\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\r\n var radarOption = opts.extra.radar || {};\r\n radarOption.max = radarOption.max || 0;\r\n var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));\r\n var data = [];\r\n for (let i = 0; i < series.length; i++) {\r\n let each = series[i];\r\n let listItem = {};\r\n listItem.color = each.color;\r\n listItem.legendShape = each.legendShape;\r\n listItem.pointShape = each.pointShape;\r\n listItem.data = [];\r\n each.data.forEach(function(item, index) {\r\n let tmp = {};\r\n tmp.angle = angleList[index];\r\n tmp.proportion = item / maxData;\r\n tmp.value = item;\r\n tmp.position = convertCoordinateOrigin(radius * tmp.proportion * process * Math.cos(tmp.angle), radius * tmp.proportion * process * Math.sin(tmp.angle), center);\r\n listItem.data.push(tmp);\r\n });\r\n data.push(listItem);\r\n }\r\n return data;\r\n}\r\n\r\nfunction getPieDataPoints(series, radius) {\r\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\r\n var count = 0;\r\n var _start_ = 0;\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item.data = item.data === null ? 0 : item.data;\r\n count += item.data;\r\n }\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item.data = item.data === null ? 0 : item.data;\r\n if (count === 0) {\r\n item._proportion_ = 1 / series.length * process;\r\n } else {\r\n item._proportion_ = item.data / count * process;\r\n }\r\n item._radius_ = radius;\r\n }\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item._start_ = _start_;\r\n _start_ += 2 * item._proportion_ * Math.PI;\r\n }\r\n return series;\r\n}\r\n\r\nfunction getFunnelDataPoints(series, radius, type, eachSpacing) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n series = series.sort(function(a, b) {\r\n return parseInt(b.data) - parseInt(a.data);\r\n });\r\n for (let i = 0; i < series.length; i++) {\r\n if(type == 'funnel'){\r\n series[i].radius = series[i].data / series[0].data * radius * process;\r\n }else{\r\n series[i].radius = (eachSpacing * (series.length - i)) / (eachSpacing * series.length) * radius * process;\r\n }\r\n series[i]._proportion_ = series[i].data / series[0].data;\r\n }\r\n if(type !== 'pyramid'){\r\n series.reverse();\r\n }\r\n return series;\r\n}\r\n\r\nfunction getRoseDataPoints(series, type, minRadius, radius) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var count = 0;\r\n var _start_ = 0;\r\n var dataArr = [];\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item.data = item.data === null ? 0 : item.data;\r\n count += item.data;\r\n dataArr.push(item.data);\r\n }\r\n var minData = Math.min.apply(null, dataArr);\r\n var maxData = Math.max.apply(null, dataArr);\r\n var radiusLength = radius - minRadius;\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item.data = item.data === null ? 0 : item.data;\r\n if (count === 0) {\r\n item._proportion_ = 1 / series.length * process;\r\n item._rose_proportion_ = 1 / series.length * process;\r\n } else {\r\n item._proportion_ = item.data / count * process;\r\n if(type == 'area'){\r\n item._rose_proportion_ = 1 / series.length * process;\r\n }else{\r\n item._rose_proportion_ = item.data / count * process;\r\n }\r\n }\r\n item._radius_ = minRadius + radiusLength * ((item.data - minData) / (maxData - minData)) || radius;\r\n }\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item._start_ = _start_;\r\n _start_ += 2 * item._rose_proportion_ * Math.PI;\r\n }\r\n return series;\r\n}\r\n\r\nfunction getArcbarDataPoints(series, arcbarOption) {\r\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\r\n if (process == 1) {\r\n process = 0.999999;\r\n }\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item.data = item.data === null ? 0 : item.data;\r\n let totalAngle;\r\n if (arcbarOption.type == 'circle') {\r\n totalAngle = 2;\r\n } else {\r\n if (arcbarOption.endAngle < arcbarOption.startAngle) {\r\n totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;\r\n } else {\r\n totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\r\n }\r\n }\r\n item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;\r\n if (item._proportion_ >= 2) {\r\n item._proportion_ = item._proportion_ % 2;\r\n }\r\n }\r\n return series;\r\n}\r\n\r\nfunction getGaugeArcbarDataPoints(series, arcbarOption) {\r\n var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\r\n if (process == 1) {\r\n process = 0.999999;\r\n }\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item.data = item.data === null ? 0 : item.data;\r\n let totalAngle;\r\n if (arcbarOption.type == 'circle') {\r\n totalAngle = 2;\r\n } else {\r\n if (arcbarOption.endAngle < arcbarOption.startAngle) {\r\n totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle;\r\n } else {\r\n totalAngle = arcbarOption.startAngle - arcbarOption.endAngle;\r\n }\r\n }\r\n item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle;\r\n if (item._proportion_ >= 2) {\r\n item._proportion_ = item._proportion_ % 2;\r\n }\r\n }\r\n return series;\r\n}\r\n\r\nfunction getGaugeAxisPoints(categories, startAngle, endAngle) {\r\n let totalAngle = startAngle - endAngle + 1;\r\n let tempStartAngle = startAngle;\r\n for (let i = 0; i < categories.length; i++) {\r\n categories[i].value = categories[i].value === null ? 0 : categories[i].value;\r\n categories[i]._startAngle_ = tempStartAngle;\r\n categories[i]._endAngle_ = totalAngle * categories[i].value + startAngle;\r\n if (categories[i]._endAngle_ >= 2) {\r\n categories[i]._endAngle_ = categories[i]._endAngle_ % 2;\r\n }\r\n tempStartAngle = categories[i]._endAngle_;\r\n }\r\n return categories;\r\n}\r\n\r\nfunction getGaugeDataPoints(series, categories, gaugeOption) {\r\n let process = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n item.data = item.data === null ? 0 : item.data;\r\n if (gaugeOption.pointer.color == 'auto') {\r\n for (let i = 0; i < categories.length; i++) {\r\n if (item.data <= categories[i].value) {\r\n item.color = categories[i].color;\r\n break;\r\n }\r\n }\r\n } else {\r\n item.color = gaugeOption.pointer.color;\r\n }\r\n let totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\r\n item._endAngle_ = totalAngle * item.data + gaugeOption.startAngle;\r\n item._oldAngle_ = gaugeOption.oldAngle;\r\n if (gaugeOption.oldAngle < gaugeOption.endAngle) {\r\n item._oldAngle_ += 2;\r\n }\r\n if (item.data >= gaugeOption.oldData) {\r\n item._proportion_ = (item._endAngle_ - item._oldAngle_) * process + gaugeOption.oldAngle;\r\n } else {\r\n item._proportion_ = item._oldAngle_ - (item._oldAngle_ - item._endAngle_) * process;\r\n }\r\n if (item._proportion_ >= 2) {\r\n item._proportion_ = item._proportion_ % 2;\r\n }\r\n }\r\n return series;\r\n}\r\n\r\nfunction getPieTextMaxLength(series, config, context, opts) {\r\n series = getPieDataPoints(series);\r\n let maxLength = 0;\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n let text = item.formatter ? item.formatter(+item._proportion_.toFixed(2)) : util.toFixed(item._proportion_ * 100) + '%';\r\n maxLength = Math.max(maxLength, measureText(text, item.textSize * opts.pix || config.fontSize, context));\r\n }\r\n return maxLength;\r\n}\r\n\r\nfunction fixColumeData(points, eachSpacing, columnLen, index, config, opts) {\r\n return points.map(function(item) {\r\n if (item === null) {\r\n return null;\r\n }\r\n var seriesGap = 0;\r\n var categoryGap = 0;\r\n if (opts.type == 'mix') {\r\n seriesGap = opts.extra.mix.column.seriesGap * opts.pix || 0;\r\n categoryGap = opts.extra.mix.column.categoryGap * opts.pix || 0;\r\n } else {\r\n seriesGap = opts.extra.column.seriesGap * opts.pix || 0;\r\n categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\r\n }\r\n seriesGap = Math.min(seriesGap, eachSpacing / columnLen)\r\n categoryGap = Math.min(categoryGap, eachSpacing / columnLen)\r\n item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);\r\n if (opts.extra.mix && opts.extra.mix.column.width && +opts.extra.mix.column.width > 0) {\r\n item.width = Math.min(item.width, +opts.extra.mix.column.width * opts.pix);\r\n }\r\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\r\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\r\n }\r\n if (item.width <= 0) {\r\n item.width = 1;\r\n }\r\n item.x += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);\r\n return item;\r\n });\r\n}\r\n\r\nfunction fixBarData(points, eachSpacing, columnLen, index, config, opts) {\r\n return points.map(function(item) {\r\n if (item === null) {\r\n return null;\r\n }\r\n var seriesGap = 0;\r\n var categoryGap = 0;\r\n seriesGap = opts.extra.bar.seriesGap * opts.pix || 0;\r\n categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;\r\n seriesGap = Math.min(seriesGap, eachSpacing / columnLen)\r\n categoryGap = Math.min(categoryGap, eachSpacing / columnLen)\r\n item.width = Math.ceil((eachSpacing - 2 * categoryGap - seriesGap * (columnLen - 1)) / columnLen);\r\n if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {\r\n item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);\r\n }\r\n if (item.width <= 0) {\r\n item.width = 1;\r\n }\r\n item.y += (index + 0.5 - columnLen / 2) * (item.width + seriesGap);\r\n return item;\r\n });\r\n}\r\n\r\nfunction fixColumeMeterData(points, eachSpacing, columnLen, index, config, opts, border) {\r\n var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\r\n return points.map(function(item) {\r\n if (item === null) {\r\n return null;\r\n }\r\n item.width = eachSpacing - 2 * categoryGap;\r\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\r\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\r\n }\r\n if (index > 0) {\r\n item.width -= border;\r\n }\r\n return item;\r\n });\r\n}\r\n\r\nfunction fixColumeStackData(points, eachSpacing, columnLen, index, config, opts, series) {\r\n var categoryGap = opts.extra.column.categoryGap * opts.pix || 0;\r\n return points.map(function(item, indexn) {\r\n if (item === null) {\r\n return null;\r\n }\r\n item.width = Math.ceil(eachSpacing - 2 * categoryGap);\r\n if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) {\r\n item.width = Math.min(item.width, +opts.extra.column.width * opts.pix);\r\n }\r\n if (item.width <= 0) {\r\n item.width = 1;\r\n }\r\n return item;\r\n });\r\n}\r\n\r\nfunction fixBarStackData(points, eachSpacing, columnLen, index, config, opts, series) {\r\n var categoryGap = opts.extra.bar.categoryGap * opts.pix || 0;\r\n return points.map(function(item, indexn) {\r\n if (item === null) {\r\n return null;\r\n }\r\n item.width = Math.ceil(eachSpacing - 2 * categoryGap);\r\n if (opts.extra.bar && opts.extra.bar.width && +opts.extra.bar.width > 0) {\r\n item.width = Math.min(item.width, +opts.extra.bar.width * opts.pix);\r\n }\r\n if (item.width <= 0) {\r\n item.width = 1;\r\n }\r\n return item;\r\n });\r\n}\r\n\r\nfunction getXAxisPoints(categories, opts, config) {\r\n var spacingValid = opts.width - opts.area[1] - opts.area[3];\r\n var dataCount = opts.enableScroll ? Math.min(opts.xAxis.itemCount, categories.length) : categories.length;\r\n if ((opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble' || opts.type == 'bar') && dataCount > 1 && opts.xAxis.boundaryGap == 'justify') {\r\n dataCount -= 1;\r\n }\r\n var widthRatio = 0;\r\n if(opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1){\r\n if(opts.extra.mount.widthRatio>2) opts.extra.mount.widthRatio = 2\r\n widthRatio = opts.extra.mount.widthRatio - 1;\r\n dataCount += widthRatio;\r\n }\r\n var eachSpacing = spacingValid / dataCount;\r\n var xAxisPoints = [];\r\n var startX = opts.area[3];\r\n var endX = opts.width - opts.area[1];\r\n categories.forEach(function(item, index) {\r\n xAxisPoints.push(startX + widthRatio / 2 * eachSpacing + index * eachSpacing);\r\n });\r\n if (opts.xAxis.boundaryGap !== 'justify') {\r\n if (opts.enableScroll === true) {\r\n xAxisPoints.push(startX + widthRatio * eachSpacing + categories.length * eachSpacing);\r\n } else {\r\n xAxisPoints.push(endX);\r\n }\r\n }\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n startX: startX,\r\n endX: endX,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {\r\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\r\n var points = [];\r\n var validHeight = opts.height - opts.area[0] - opts.area[2];\r\n data.forEach(function(item, index) {\r\n if (item === null) {\r\n points.push(null);\r\n } else {\r\n var cPoints = [];\r\n item.forEach(function(items, indexs) {\r\n var point = {};\r\n point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);\r\n var value = items.value || items;\r\n var height = validHeight * (value - minRange) / (maxRange - minRange);\r\n height *= process;\r\n point.y = opts.height - Math.round(height) - opts.area[2];\r\n cPoints.push(point);\r\n });\r\n points.push(cPoints);\r\n }\r\n });\r\n return points;\r\n}\r\n\r\nfunction getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) {\r\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\r\n var boundaryGap = 'center';\r\n if (opts.type == 'line' || opts.type == 'area' || opts.type == 'scatter' || opts.type == 'bubble' ) {\r\n boundaryGap = opts.xAxis.boundaryGap;\r\n }\r\n var points = [];\r\n var validHeight = opts.height - opts.area[0] - opts.area[2];\r\n var validWidth = opts.width - opts.area[1] - opts.area[3];\r\n data.forEach(function(item, index) {\r\n if (item === null) {\r\n points.push(null);\r\n } else {\r\n var point = {};\r\n point.color = item.color;\r\n point.x = xAxisPoints[index];\r\n var value = item;\r\n if (typeof item === 'object' && item !== null) {\r\n if (item.constructor.toString().indexOf('Array') > -1) {\r\n let xranges, xminRange, xmaxRange;\r\n xranges = [].concat(opts.chartData.xAxisData.ranges);\r\n xminRange = xranges.shift();\r\n xmaxRange = xranges.pop();\r\n value = item[1];\r\n point.x = opts.area[3] + validWidth * (item[0] - xminRange) / (xmaxRange - xminRange);\r\n if(opts.type == 'bubble'){\r\n point.r = item[2];\r\n point.t = item[3];\r\n }\r\n } else {\r\n value = item.value;\r\n }\r\n }\r\n if (boundaryGap == 'center') {\r\n point.x += eachSpacing / 2;\r\n }\r\n var height = validHeight * (value - minRange) / (maxRange - minRange);\r\n height *= process;\r\n point.y = opts.height - height - opts.area[2];\r\n points.push(point);\r\n }\r\n });\r\n return points;\r\n}\r\n\r\nfunction getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption) {\r\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\r\n var points = [];\r\n var validHeight = opts.height - opts.area[0] - opts.area[2];\r\n var validWidth = opts.width - opts.area[1] - opts.area[3];\r\n var mountWidth = eachSpacing * mountOption.widthRatio;\r\n series.forEach(function(item, index) {\r\n if (item === null) {\r\n points.push(null);\r\n } else {\r\n var point = {};\r\n point.color = item.color;\r\n point.x = xAxisPoints[index];\r\n point.x += eachSpacing / 2;\r\n var value = item.data;\r\n var height = validHeight * (value - minRange) / (maxRange - minRange);\r\n height *= process;\r\n point.y = opts.height - height - opts.area[2];\r\n point.value = value;\r\n point.width = mountWidth;\r\n points.push(point);\r\n }\r\n });\r\n return points;\r\n}\r\n\r\nfunction getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config) {\r\n var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1;\r\n var points = [];\r\n var validHeight = opts.height - opts.area[0] - opts.area[2];\r\n var validWidth = opts.width - opts.area[1] - opts.area[3];\r\n data.forEach(function(item, index) {\r\n if (item === null) {\r\n points.push(null);\r\n } else {\r\n var point = {};\r\n point.color = item.color;\r\n point.y = yAxisPoints[index];\r\n var value = item;\r\n if (typeof item === 'object' && item !== null) {\r\n value = item.value;\r\n }\r\n var height = validWidth * (value - minRange) / (maxRange - minRange);\r\n height *= process;\r\n point.height = height;\r\n point.value = value;\r\n point.x = height + opts.area[3];\r\n points.push(point);\r\n }\r\n });\r\n return points;\r\n}\r\n\r\nfunction getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {\r\n var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;\r\n var points = [];\r\n var validHeight = opts.height - opts.area[0] - opts.area[2];\r\n data.forEach(function(item, index) {\r\n if (item === null) {\r\n points.push(null);\r\n } else {\r\n var point = {};\r\n point.color = item.color;\r\n point.x = xAxisPoints[index] + Math.round(eachSpacing / 2);\r\n\r\n if (seriesIndex > 0) {\r\n var value = 0;\r\n for (let i = 0; i <= seriesIndex; i++) {\r\n value += stackSeries[i].data[index];\r\n }\r\n var value0 = value - item;\r\n var height = validHeight * (value - minRange) / (maxRange - minRange);\r\n var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);\r\n } else {\r\n var value = item;\r\n var height = validHeight * (value - minRange) / (maxRange - minRange);\r\n var height0 = 0;\r\n }\r\n var heightc = height0;\r\n height *= process;\r\n heightc *= process;\r\n point.y = opts.height - Math.round(height) - opts.area[2];\r\n point.y0 = opts.height - Math.round(heightc) - opts.area[2];\r\n points.push(point);\r\n }\r\n });\r\n return points;\r\n}\r\n\r\nfunction getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) {\r\n var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1;\r\n var points = [];\r\n var validHeight = opts.width - opts.area[1] - opts.area[3];\r\n data.forEach(function(item, index) {\r\n if (item === null) {\r\n points.push(null);\r\n } else {\r\n var point = {};\r\n point.color = item.color;\r\n point.y = yAxisPoints[index];\r\n if (seriesIndex > 0) {\r\n var value = 0;\r\n for (let i = 0; i <= seriesIndex; i++) {\r\n value += stackSeries[i].data[index];\r\n }\r\n var value0 = value - item;\r\n var height = validHeight * (value - minRange) / (maxRange - minRange);\r\n var height0 = validHeight * (value0 - minRange) / (maxRange - minRange);\r\n } else {\r\n var value = item;\r\n var height = validHeight * (value - minRange) / (maxRange - minRange);\r\n var height0 = 0;\r\n }\r\n var heightc = height0;\r\n height *= process;\r\n heightc *= process;\r\n point.height = height - heightc;\r\n point.x = opts.area[3] + height;\r\n point.x0 = opts.area[3] + heightc;\r\n points.push(point);\r\n }\r\n });\r\n return points;\r\n}\r\n\r\nfunction getYAxisTextList(series, opts, config, stack, yData) {\r\n var index = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : -1;\r\n var data;\r\n if (stack == 'stack') {\r\n data = dataCombineStack(series, opts.categories.length);\r\n } else {\r\n data = dataCombine(series);\r\n }\r\n var sorted = [];\r\n // remove null from data\r\n data = data.filter(function(item) {\r\n //return item !== null;\r\n if (typeof item === 'object' && item !== null) {\r\n if (item.constructor.toString().indexOf('Array') > -1) {\r\n return item !== null;\r\n } else {\r\n return item.value !== null;\r\n }\r\n } else {\r\n return item !== null;\r\n }\r\n });\r\n data.map(function(item) {\r\n if (typeof item === 'object') {\r\n if (item.constructor.toString().indexOf('Array') > -1) {\r\n if (opts.type == 'candle') {\r\n item.map(function(subitem) {\r\n sorted.push(subitem);\r\n })\r\n } else {\r\n sorted.push(item[1]);\r\n }\r\n } else {\r\n sorted.push(item.value);\r\n }\r\n } else {\r\n sorted.push(item);\r\n }\r\n })\r\n var minData = yData.min || 0;\r\n var maxData = yData.max || 0;\r\n if (sorted.length > 0) {\r\n minData = Math.min.apply(this, sorted);\r\n maxData = Math.max.apply(this, sorted);\r\n }\r\n if (minData === maxData) {\r\n // var rangeSpan = maxData || 10;\r\n // maxData += rangeSpan;\r\n if(maxData == 0){\r\n maxData = 10;\r\n }else{\r\n minData = 0;\r\n }\r\n }\r\n var dataRange = getDataRange(minData, maxData);\r\n var minRange = (yData.min === undefined || yData.min === null) ? dataRange.minRange : yData.min;\r\n var maxRange = (yData.max === undefined || yData.max === null) ? dataRange.maxRange : yData.max;\r\n var range = [];\r\n var eachRange = (maxRange - minRange) / opts.yAxis.splitNumber;\r\n for (var i = 0; i <= opts.yAxis.splitNumber; i++) {\r\n range.push(minRange + eachRange * i);\r\n }\r\n return range.reverse();\r\n}\r\n\r\nfunction calYAxisData(series, opts, config, context) {\r\n //堆叠图重算Y轴\r\n var columnstyle = assign({}, {\r\n type: \"\"\r\n }, opts.extra.column);\r\n //如果是多Y轴,重新计算\r\n var YLength = opts.yAxis.data.length;\r\n var newSeries = new Array(YLength);\r\n if (YLength > 0) {\r\n for (let i = 0; i < YLength; i++) {\r\n newSeries[i] = [];\r\n for (let j = 0; j < series.length; j++) {\r\n if (series[j].index == i) {\r\n newSeries[i].push(series[j]);\r\n }\r\n }\r\n }\r\n var rangesArr = new Array(YLength);\r\n var rangesFormatArr = new Array(YLength);\r\n var yAxisWidthArr = new Array(YLength);\r\n\r\n for (let i = 0; i < YLength; i++) {\r\n let yData = opts.yAxis.data[i];\r\n //如果总开关不显示,强制每个Y轴为不显示\r\n if (opts.yAxis.disabled == true) {\r\n yData.disabled = true;\r\n }\r\n if(yData.type === 'categories'){\r\n if(!yData.formatter){\r\n yData.formatter = (val,index,opts) => {return val + (yData.unit || '')};\r\n }\r\n yData.categories = yData.categories || opts.categories;\r\n rangesArr[i] = yData.categories;\r\n }else{\r\n if(!yData.formatter){\r\n yData.formatter = (val,index,opts) => {return val.toFixed(yData.tofix) + (yData.unit || '')};\r\n }\r\n rangesArr[i] = getYAxisTextList(newSeries[i], opts, config, columnstyle.type, yData, i);\r\n }\r\n let yAxisFontSizes = yData.fontSize * opts.pix || config.fontSize;\r\n yAxisWidthArr[i] = {\r\n position: yData.position ? yData.position : 'left',\r\n width: 0\r\n };\r\n rangesFormatArr[i] = rangesArr[i].map(function(items,index) {\r\n items = yData.formatter(items,index,opts);\r\n yAxisWidthArr[i].width = Math.max(yAxisWidthArr[i].width, measureText(items, yAxisFontSizes, context) + 5);\r\n return items;\r\n });\r\n let calibration = yData.calibration ? 4 * opts.pix : 0;\r\n yAxisWidthArr[i].width += calibration + 3 * opts.pix;\r\n if (yData.disabled === true) {\r\n yAxisWidthArr[i].width = 0;\r\n }\r\n }\r\n } else {\r\n var rangesArr = new Array(1);\r\n var rangesFormatArr = new Array(1);\r\n var yAxisWidthArr = new Array(1);\r\n if(opts.type === 'bar'){\r\n rangesArr[0] = opts.categories;\r\n if(!opts.yAxis.formatter){\r\n opts.yAxis.formatter = (val,index,opts) => {return val + (opts.yAxis.unit || '')}\r\n }\r\n }else{\r\n if(!opts.yAxis.formatter){\r\n opts.yAxis.formatter = (val,index,opts) => {return val.toFixed(opts.yAxis.tofix ) + (opts.yAxis.unit || '')}\r\n }\r\n rangesArr[0] = getYAxisTextList(series, opts, config, columnstyle.type, {});\r\n }\r\n yAxisWidthArr[0] = {\r\n position: 'left',\r\n width: 0\r\n };\r\n var yAxisFontSize = opts.yAxis.fontSize * opts.pix || config.fontSize;\r\n rangesFormatArr[0] = rangesArr[0].map(function(item,index) {\r\n item = opts.yAxis.formatter(item,index,opts);\r\n yAxisWidthArr[0].width = Math.max(yAxisWidthArr[0].width, measureText(item, yAxisFontSize, context) + 5);\r\n return item;\r\n });\r\n yAxisWidthArr[0].width += 3 * opts.pix;\r\n if (opts.yAxis.disabled === true) {\r\n yAxisWidthArr[0] = {\r\n position: 'left',\r\n width: 0\r\n };\r\n opts.yAxis.data[0] = {\r\n disabled: true\r\n };\r\n } else {\r\n opts.yAxis.data[0] = {\r\n disabled: false,\r\n position: 'left',\r\n max: opts.yAxis.max,\r\n min: opts.yAxis.min,\r\n formatter: opts.yAxis.formatter\r\n };\r\n if(opts.type === 'bar'){\r\n opts.yAxis.data[0].categories = opts.categories;\r\n opts.yAxis.data[0].type = 'categories';\r\n }\r\n }\r\n }\r\n return {\r\n rangesFormat: rangesFormatArr,\r\n ranges: rangesArr,\r\n yAxisWidth: yAxisWidthArr\r\n };\r\n}\r\n\r\nfunction calTooltipYAxisData(point, series, opts, config, eachSpacing) {\r\n let ranges = [].concat(opts.chartData.yAxisData.ranges);\r\n let spacingValid = opts.height - opts.area[0] - opts.area[2];\r\n let minAxis = opts.area[0];\r\n let items = [];\r\n for (let i = 0; i < ranges.length; i++) {\r\n let maxVal = ranges[i].shift();\r\n let minVal = ranges[i].pop();\r\n let item = maxVal - (maxVal - minVal) * (point - minAxis) / spacingValid;\r\n item = opts.yAxis.data[i].formatter ? opts.yAxis.data[i].formatter(item) : item.toFixed(0);\r\n items.push(String(item))\r\n }\r\n return items;\r\n}\r\n\r\nfunction calMarkLineData(points, opts) {\r\n let minRange, maxRange;\r\n let spacingValid = opts.height - opts.area[0] - opts.area[2];\r\n for (let i = 0; i < points.length; i++) {\r\n points[i].yAxisIndex = points[i].yAxisIndex ? points[i].yAxisIndex : 0;\r\n let range = [].concat(opts.chartData.yAxisData.ranges[points[i].yAxisIndex]);\r\n minRange = range.pop();\r\n maxRange = range.shift();\r\n let height = spacingValid * (points[i].value - minRange) / (maxRange - minRange);\r\n points[i].y = opts.height - Math.round(height) - opts.area[2];\r\n }\r\n return points;\r\n}\r\n\r\nfunction contextRotate(context, opts) {\r\n if (opts.rotateLock !== true) {\r\n context.translate(opts.height, 0);\r\n context.rotate(90 * Math.PI / 180);\r\n } else if (opts._rotate_ !== true) {\r\n context.translate(opts.height, 0);\r\n context.rotate(90 * Math.PI / 180);\r\n opts._rotate_ = true;\r\n }\r\n}\r\n\r\nfunction drawPointShape(points, color, shape, context, opts) {\r\n context.beginPath();\r\n if (opts.dataPointShapeType == 'hollow') {\r\n context.setStrokeStyle(color);\r\n context.setFillStyle(opts.background);\r\n context.setLineWidth(2 * opts.pix);\r\n } else {\r\n context.setStrokeStyle(\"#ffffff\");\r\n context.setFillStyle(color);\r\n context.setLineWidth(1 * opts.pix);\r\n }\r\n if (shape === 'diamond') {\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.moveTo(item.x, item.y - 4.5);\r\n context.lineTo(item.x - 4.5, item.y);\r\n context.lineTo(item.x, item.y + 4.5);\r\n context.lineTo(item.x + 4.5, item.y);\r\n context.lineTo(item.x, item.y - 4.5);\r\n }\r\n });\r\n } else if (shape === 'circle') {\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.moveTo(item.x + 2.5 * opts.pix, item.y);\r\n context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);\r\n }\r\n });\r\n } else if (shape === 'square') {\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.moveTo(item.x - 3.5, item.y - 3.5);\r\n context.rect(item.x - 3.5, item.y - 3.5, 7, 7);\r\n }\r\n });\r\n } else if (shape === 'triangle') {\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.moveTo(item.x, item.y - 4.5);\r\n context.lineTo(item.x - 4.5, item.y + 4.5);\r\n context.lineTo(item.x + 4.5, item.y + 4.5);\r\n context.lineTo(item.x, item.y - 4.5);\r\n }\r\n });\r\n } else if (shape === 'triangle') {\r\n return;\r\n }\r\n context.closePath();\r\n context.fill();\r\n context.stroke();\r\n}\r\n\r\nfunction drawRingTitle(opts, config, context, center) {\r\n var titlefontSize = opts.title.fontSize || config.titleFontSize;\r\n var subtitlefontSize = opts.subtitle.fontSize || config.subtitleFontSize;\r\n var title = opts.title.name || '';\r\n var subtitle = opts.subtitle.name || '';\r\n var titleFontColor = opts.title.color || opts.fontColor;\r\n var subtitleFontColor = opts.subtitle.color || opts.fontColor;\r\n var titleHeight = title ? titlefontSize : 0;\r\n var subtitleHeight = subtitle ? subtitlefontSize : 0;\r\n var margin = 5;\r\n if (subtitle) {\r\n var textWidth = measureText(subtitle, subtitlefontSize * opts.pix, context);\r\n var startX = center.x - textWidth / 2 + (opts.subtitle.offsetX|| 0) * opts.pix ;\r\n var startY = center.y + subtitlefontSize * opts.pix / 2 + (opts.subtitle.offsetY || 0) * opts.pix;\r\n if (title) {\r\n startY += (titleHeight * opts.pix + margin) / 2;\r\n }\r\n context.beginPath();\r\n context.setFontSize(subtitlefontSize * opts.pix);\r\n context.setFillStyle(subtitleFontColor);\r\n context.fillText(subtitle, startX, startY);\r\n context.closePath();\r\n context.stroke();\r\n }\r\n if (title) {\r\n var _textWidth = measureText(title, titlefontSize * opts.pix, context);\r\n var _startX = center.x - _textWidth / 2 + (opts.title.offsetX || 0);\r\n var _startY = center.y + titlefontSize * opts.pix / 2 + (opts.title.offsetY || 0) * opts.pix;\r\n if (subtitle) {\r\n _startY -= (subtitleHeight * opts.pix + margin) / 2;\r\n }\r\n context.beginPath();\r\n context.setFontSize(titlefontSize * opts.pix);\r\n context.setFillStyle(titleFontColor);\r\n context.fillText(title, _startX, _startY);\r\n context.closePath();\r\n context.stroke();\r\n }\r\n}\r\n\r\nfunction drawPointText(points, series, config, context, opts) {\r\n // 绘制数据文案\r\n var data = series.data;\r\n var textOffset = series.textOffset ? series.textOffset : 0;\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.beginPath();\r\n var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(series.textColor || opts.fontColor);\r\n var value = data[index]\r\n if (typeof data[index] === 'object' && data[index] !== null) {\r\n if (data[index].constructor.toString().indexOf('Array')>-1) {\r\n value = data[index][1];\r\n } else {\r\n value = data[index].value\r\n }\r\n }\r\n var formatVal = series.formatter ? series.formatter(value,index,series,opts) : value;\r\n context.setTextAlign('center');\r\n context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);\r\n context.closePath();\r\n context.stroke();\r\n context.setTextAlign('left');\r\n }\r\n });\r\n}\r\n\r\nfunction drawMountPointText(points, series, config, context, opts) {\r\n // 绘制数据文案\r\n var data = series.data;\r\n var textOffset = series.textOffset ? series.textOffset : 0;\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.beginPath();\r\n var fontSize = series[index].textSize ? series[index].textSize * opts.pix : config.fontSize;\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(series[index].textColor || opts.fontColor);\r\n var value = item.value\r\n var formatVal = series[index].formatter ? series[index].formatter(value,index,series,opts) : value;\r\n context.setTextAlign('center');\r\n context.fillText(String(formatVal), item.x, item.y - 4 + textOffset * opts.pix);\r\n context.closePath();\r\n context.stroke();\r\n context.setTextAlign('left');\r\n }\r\n });\r\n}\r\n\r\nfunction drawBarPointText(points, series, config, context, opts) {\r\n // 绘制数据文案\r\n var data = series.data;\r\n var textOffset = series.textOffset ? series.textOffset : 0;\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.beginPath();\r\n var fontSize = series.textSize ? series.textSize * opts.pix : config.fontSize;\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(series.textColor || opts.fontColor);\r\n var value = data[index]\r\n if (typeof data[index] === 'object' && data[index] !== null) {\r\n value = data[index].value ;\r\n }\r\n var formatVal = series.formatter ? series.formatter(value,index,series,opts) : value;\r\n context.setTextAlign('left');\r\n context.fillText(String(formatVal), item.x + 4 * opts.pix , item.y + fontSize / 2 - 3 );\r\n context.closePath();\r\n context.stroke();\r\n }\r\n });\r\n}\r\n\r\nfunction drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context) {\r\n radius -= gaugeOption.width / 2 + gaugeOption.labelOffset * opts.pix;\r\n radius = radius < 10 ? 10 : radius;\r\n let totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\r\n let splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\r\n let totalNumber = gaugeOption.endNumber - gaugeOption.startNumber;\r\n let splitNumber = totalNumber / gaugeOption.splitLine.splitNumber;\r\n let nowAngle = gaugeOption.startAngle;\r\n let nowNumber = gaugeOption.startNumber;\r\n for (let i = 0; i < gaugeOption.splitLine.splitNumber + 1; i++) {\r\n var pos = {\r\n x: radius * Math.cos(nowAngle * Math.PI),\r\n y: radius * Math.sin(nowAngle * Math.PI)\r\n };\r\n var labelText = gaugeOption.formatter ? gaugeOption.formatter(nowNumber,i,opts) : nowNumber;\r\n pos.x += centerPosition.x - measureText(labelText, config.fontSize, context) / 2;\r\n pos.y += centerPosition.y;\r\n var startX = pos.x;\r\n var startY = pos.y;\r\n context.beginPath();\r\n context.setFontSize(config.fontSize);\r\n context.setFillStyle(gaugeOption.labelColor || opts.fontColor);\r\n context.fillText(labelText, startX, startY + config.fontSize / 2);\r\n context.closePath();\r\n context.stroke();\r\n nowAngle += splitAngle;\r\n if (nowAngle >= 2) {\r\n nowAngle = nowAngle % 2;\r\n }\r\n nowNumber += splitNumber;\r\n }\r\n}\r\n\r\nfunction drawRadarLabel(angleList, radius, centerPosition, opts, config, context) {\r\n var radarOption = opts.extra.radar || {};\r\n angleList.forEach(function(angle, index) {\r\n if(radarOption.labelPointShow === true && opts.categories[index] !== ''){\r\n var posPoint = {\r\n x: radius * Math.cos(angle),\r\n y: radius * Math.sin(angle)\r\n };\r\n var posPointAxis = convertCoordinateOrigin(posPoint.x, posPoint.y, centerPosition);\r\n context.setFillStyle(radarOption.labelPointColor);\r\n context.beginPath();\r\n context.arc(posPointAxis.x, posPointAxis.y, radarOption.labelPointRadius * opts.pix, 0, 2 * Math.PI, false);\r\n context.closePath();\r\n context.fill();\r\n }\r\n var pos = {\r\n x: (radius + config.radarLabelTextMargin * opts.pix) * Math.cos(angle),\r\n y: (radius + config.radarLabelTextMargin * opts.pix) * Math.sin(angle)\r\n };\r\n var posRelativeCanvas = convertCoordinateOrigin(pos.x, pos.y, centerPosition);\r\n var startX = posRelativeCanvas.x;\r\n var startY = posRelativeCanvas.y;\r\n if (util.approximatelyEqual(pos.x, 0)) {\r\n startX -= measureText(opts.categories[index] || '', config.fontSize, context) / 2;\r\n } else if (pos.x < 0) {\r\n startX -= measureText(opts.categories[index] || '', config.fontSize, context);\r\n }\r\n context.beginPath();\r\n context.setFontSize(config.fontSize);\r\n context.setFillStyle(radarOption.labelColor || opts.fontColor);\r\n context.fillText(opts.categories[index] || '', startX, startY + config.fontSize / 2);\r\n context.closePath();\r\n context.stroke();\r\n });\r\n\r\n}\r\n\r\nfunction drawPieText(series, opts, config, context, radius, center) {\r\n var lineRadius = config.pieChartLinePadding;\r\n var textObjectCollection = [];\r\n var lastTextObject = null;\r\n var seriesConvert = series.map(function(item,index) {\r\n var text = item.formatter ? item.formatter(item,index,series,opts) : util.toFixed(item._proportion_.toFixed(4) * 100) + '%';\r\n text = item.labelText ? item.labelText : text;\r\n var arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._proportion_ / 2);\r\n if (item._rose_proportion_) {\r\n arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._rose_proportion_ / 2);\r\n }\r\n var color = item.color;\r\n var radius = item._radius_;\r\n return {\r\n arc: arc,\r\n text: text,\r\n color: color,\r\n radius: radius,\r\n textColor: item.textColor,\r\n textSize: item.textSize,\r\n labelShow: item.labelShow\r\n };\r\n });\r\n for (let i = 0; i < seriesConvert.length; i++) {\r\n let item = seriesConvert[i];\r\n // line end\r\n let orginX1 = Math.cos(item.arc) * (item.radius + lineRadius);\r\n let orginY1 = Math.sin(item.arc) * (item.radius + lineRadius);\r\n // line start\r\n let orginX2 = Math.cos(item.arc) * item.radius;\r\n let orginY2 = Math.sin(item.arc) * item.radius;\r\n // text start\r\n let orginX3 = orginX1 >= 0 ? orginX1 + config.pieChartTextPadding : orginX1 - config.pieChartTextPadding;\r\n let orginY3 = orginY1;\r\n let textWidth = measureText(item.text, item.textSize * opts.pix || config.fontSize, context);\r\n let startY = orginY3;\r\n if (lastTextObject && util.isSameXCoordinateArea(lastTextObject.start, {\r\n x: orginX3\r\n })) {\r\n if (orginX3 > 0) {\r\n startY = Math.min(orginY3, lastTextObject.start.y);\r\n } else if (orginX1 < 0) {\r\n startY = Math.max(orginY3, lastTextObject.start.y);\r\n } else {\r\n if (orginY3 > 0) {\r\n startY = Math.max(orginY3, lastTextObject.start.y);\r\n } else {\r\n startY = Math.min(orginY3, lastTextObject.start.y);\r\n }\r\n }\r\n }\r\n if (orginX3 < 0) {\r\n orginX3 -= textWidth;\r\n }\r\n let textObject = {\r\n lineStart: {\r\n x: orginX2,\r\n y: orginY2\r\n },\r\n lineEnd: {\r\n x: orginX1,\r\n y: orginY1\r\n },\r\n start: {\r\n x: orginX3,\r\n y: startY\r\n },\r\n width: textWidth,\r\n height: config.fontSize,\r\n text: item.text,\r\n color: item.color,\r\n textColor: item.textColor,\r\n textSize: item.textSize\r\n };\r\n lastTextObject = avoidCollision(textObject, lastTextObject);\r\n textObjectCollection.push(lastTextObject);\r\n }\r\n for (let i = 0; i < textObjectCollection.length; i++) {\r\n if(seriesConvert[i].labelShow === false){\r\n continue;\r\n }\r\n let item = textObjectCollection[i];\r\n let lineStartPoistion = convertCoordinateOrigin(item.lineStart.x, item.lineStart.y, center);\r\n let lineEndPoistion = convertCoordinateOrigin(item.lineEnd.x, item.lineEnd.y, center);\r\n let textPosition = convertCoordinateOrigin(item.start.x, item.start.y, center);\r\n context.setLineWidth(1 * opts.pix);\r\n context.setFontSize(item.textSize * opts.pix || config.fontSize);\r\n context.beginPath();\r\n context.setStrokeStyle(item.color);\r\n context.setFillStyle(item.color);\r\n context.moveTo(lineStartPoistion.x, lineStartPoistion.y);\r\n let curveStartX = item.start.x < 0 ? textPosition.x + item.width : textPosition.x;\r\n let textStartX = item.start.x < 0 ? textPosition.x - 5 : textPosition.x + 5;\r\n context.quadraticCurveTo(lineEndPoistion.x, lineEndPoistion.y, curveStartX, textPosition.y);\r\n context.moveTo(lineStartPoistion.x, lineStartPoistion.y);\r\n context.stroke();\r\n context.closePath();\r\n context.beginPath();\r\n context.moveTo(textPosition.x + item.width, textPosition.y);\r\n context.arc(curveStartX, textPosition.y, 2 * opts.pix, 0, 2 * Math.PI);\r\n context.closePath();\r\n context.fill();\r\n context.beginPath();\r\n context.setFontSize(item.textSize * opts.pix || config.fontSize);\r\n context.setFillStyle(item.textColor || opts.fontColor);\r\n context.fillText(item.text, textStartX, textPosition.y + 3);\r\n context.closePath();\r\n context.stroke();\r\n context.closePath();\r\n }\r\n}\r\n\r\nfunction drawToolTipSplitLine(offsetX, opts, config, context) {\r\n var toolTipOption = opts.extra.tooltip || {};\r\n toolTipOption.gridType = toolTipOption.gridType == undefined ? 'solid' : toolTipOption.gridType;\r\n toolTipOption.dashLength = toolTipOption.dashLength == undefined ? 4 : toolTipOption.dashLength;\r\n var startY = opts.area[0];\r\n var endY = opts.height - opts.area[2];\r\n if (toolTipOption.gridType == 'dash') {\r\n context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);\r\n }\r\n context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');\r\n context.setLineWidth(1 * opts.pix);\r\n context.beginPath();\r\n context.moveTo(offsetX, startY);\r\n context.lineTo(offsetX, endY);\r\n context.stroke();\r\n context.setLineDash([]);\r\n if (toolTipOption.xAxisLabel) {\r\n let labelText = opts.categories[opts.tooltip.index];\r\n context.setFontSize(config.fontSize);\r\n let textWidth = measureText(labelText, config.fontSize, context);\r\n let textX = offsetX - 0.5 * textWidth;\r\n let textY = endY;\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));\r\n context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);\r\n context.setLineWidth(1 * opts.pix);\r\n context.rect(textX - config.toolTipPadding, textY, textWidth + 2 * config.toolTipPadding, config.fontSize + 2 * config.toolTipPadding);\r\n context.closePath();\r\n context.stroke();\r\n context.fill();\r\n context.beginPath();\r\n context.setFontSize(config.fontSize);\r\n context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);\r\n context.fillText(String(labelText), textX, textY + config.toolTipPadding + config.fontSize);\r\n context.closePath();\r\n context.stroke();\r\n }\r\n}\r\n\r\nfunction drawMarkLine(opts, config, context) {\r\n let markLineOption = assign({}, {\r\n type: 'solid',\r\n dashLength: 4,\r\n data: []\r\n }, opts.extra.markLine);\r\n let startX = opts.area[3];\r\n let endX = opts.width - opts.area[1];\r\n let points = calMarkLineData(markLineOption.data, opts);\r\n for (let i = 0; i < points.length; i++) {\r\n let item = assign({}, {\r\n lineColor: '#DE4A42',\r\n showLabel: false,\r\n labelFontColor: '#666666',\r\n labelBgColor: '#DFE8FF',\r\n labelBgOpacity: 0.8,\r\n labelAlign: 'left',\r\n labelOffsetX: 0,\r\n labelOffsetY: 0,\r\n }, points[i]);\r\n if (markLineOption.type == 'dash') {\r\n context.setLineDash([markLineOption.dashLength, markLineOption.dashLength]);\r\n }\r\n context.setStrokeStyle(item.lineColor);\r\n context.setLineWidth(1 * opts.pix);\r\n context.beginPath();\r\n context.moveTo(startX, item.y);\r\n context.lineTo(endX, item.y);\r\n context.stroke();\r\n context.setLineDash([]);\r\n if (item.showLabel) {\r\n let labelText = item.labelText ? item.labelText : item.value;\r\n context.setFontSize(config.fontSize);\r\n let textWidth = measureText(labelText, config.fontSize, context);\r\n let bgWidth = textWidth + config.toolTipPadding * 2;\r\n let bgStartX = item.labelAlign == 'left' ? opts.area[3] - bgWidth : opts.width - opts.area[1];\r\n bgStartX += item.labelOffsetX;\r\n let bgStartY = item.y - 0.5 * config.fontSize - config.toolTipPadding;\r\n bgStartY += item.labelOffsetY;\r\n let textX = bgStartX + config.toolTipPadding;\r\n let textY = item.y;\r\n context.setFillStyle(hexToRgb(item.labelBgColor, item.labelBgOpacity));\r\n context.setStrokeStyle(item.labelBgColor);\r\n context.setLineWidth(1 * opts.pix);\r\n context.beginPath();\r\n context.rect(bgStartX, bgStartY, bgWidth, config.fontSize + 2 * config.toolTipPadding);\r\n context.closePath();\r\n context.stroke();\r\n context.fill();\r\n context.setFontSize(config.fontSize);\r\n context.setTextAlign('left');\r\n context.setFillStyle(item.labelFontColor);\r\n context.fillText(String(labelText), textX, bgStartY + config.fontSize + config.toolTipPadding/2);\r\n context.stroke();\r\n context.setTextAlign('left');\r\n }\r\n }\r\n}\r\n\r\nfunction drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints) {\r\n var toolTipOption = assign({}, {\r\n gridType: 'solid',\r\n dashLength: 4\r\n }, opts.extra.tooltip);\r\n var startX = opts.area[3];\r\n var endX = opts.width - opts.area[1];\r\n if (toolTipOption.gridType == 'dash') {\r\n context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]);\r\n }\r\n context.setStrokeStyle(toolTipOption.gridColor || '#cccccc');\r\n context.setLineWidth(1 * opts.pix);\r\n context.beginPath();\r\n context.moveTo(startX, opts.tooltip.offset.y);\r\n context.lineTo(endX, opts.tooltip.offset.y);\r\n context.stroke();\r\n context.setLineDash([]);\r\n if (toolTipOption.yAxisLabel) {\r\n let labelText = calTooltipYAxisData(opts.tooltip.offset.y, opts.series, opts, config, eachSpacing);\r\n let widthArr = opts.chartData.yAxisData.yAxisWidth;\r\n let tStartLeft = opts.area[3];\r\n let tStartRight = opts.width - opts.area[1];\r\n for (let i = 0; i < labelText.length; i++) {\r\n context.setFontSize(config.fontSize);\r\n let textWidth = measureText(labelText[i], config.fontSize, context);\r\n let bgStartX, bgEndX, bgWidth;\r\n if (widthArr[i].position == 'left') {\r\n bgStartX = tStartLeft - widthArr[i].width;\r\n bgEndX = Math.max(bgStartX, bgStartX + textWidth + config.toolTipPadding * 2);\r\n } else {\r\n bgStartX = tStartRight;\r\n bgEndX = Math.max(bgStartX + widthArr[i].width, bgStartX + textWidth + config.toolTipPadding * 2);\r\n }\r\n bgWidth = bgEndX - bgStartX;\r\n let textX = bgStartX + (bgWidth - textWidth) / 2;\r\n let textY = opts.tooltip.offset.y;\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity));\r\n context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground);\r\n context.setLineWidth(1 * opts.pix);\r\n context.rect(bgStartX, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 *\r\n config.toolTipPadding);\r\n context.closePath();\r\n context.stroke();\r\n context.fill();\r\n context.beginPath();\r\n context.setFontSize(config.fontSize);\r\n context.setFillStyle(toolTipOption.labelFontColor || opts.fontColor);\r\n context.fillText(labelText[i], textX, textY + 0.5 * config.fontSize);\r\n context.closePath();\r\n context.stroke();\r\n if (widthArr[i].position == 'left') {\r\n tStartLeft -= (widthArr[i].width + opts.yAxis.padding * opts.pix);\r\n } else {\r\n tStartRight += widthArr[i].width + opts.yAxis.padding * opts.pix;\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction drawToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {\r\n var toolTipOption = assign({}, {\r\n activeBgColor: '#000000',\r\n activeBgOpacity: 0.08,\r\n activeWidth: eachSpacing\r\n }, opts.extra.column);\r\n toolTipOption.activeWidth = toolTipOption.activeWidth > eachSpacing ? eachSpacing : toolTipOption.activeWidth;\r\n var startY = opts.area[0];\r\n var endY = opts.height - opts.area[2];\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));\r\n context.rect(offsetX - toolTipOption.activeWidth / 2, startY, toolTipOption.activeWidth, endY - startY);\r\n context.closePath();\r\n context.fill();\r\n context.setFillStyle(\"#FFFFFF\");\r\n}\r\n\r\nfunction drawBarToolTipSplitArea(offsetX, opts, config, context, eachSpacing) {\r\n var toolTipOption = assign({}, {\r\n activeBgColor: '#000000',\r\n activeBgOpacity: 0.08\r\n }, opts.extra.bar);\r\n var startX = opts.area[3];\r\n var endX = opts.width - opts.area[1];\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity));\r\n context.rect( startX ,offsetX - eachSpacing / 2 , endX - startX,eachSpacing);\r\n context.closePath();\r\n context.fill();\r\n context.setFillStyle(\"#FFFFFF\");\r\n}\r\n\r\n\r\nfunction drawToolTip(textList, offset, opts, config, context, eachSpacing, xAxisPoints) {\r\n var toolTipOption = assign({}, {\r\n showBox: true,\r\n showArrow: true,\r\n showCategory: false,\r\n bgColor: '#000000',\r\n bgOpacity: 0.7,\r\n borderColor: '#000000',\r\n borderWidth: 0,\r\n borderRadius: 0,\r\n borderOpacity: 0.7,\r\n fontColor: '#FFFFFF',\r\n splitLine: true,\r\n }, opts.extra.tooltip);\r\n if(toolTipOption.showCategory==true && opts.categories){\r\n textList.unshift({text:opts.categories[opts.tooltip.index],color:null})\r\n }\r\n var legendWidth = 4 * opts.pix;\r\n var legendMarginRight = 5 * opts.pix;\r\n var arrowWidth = toolTipOption.showArrow ? 8 * opts.pix : 0;\r\n var isOverRightBorder = false;\r\n if (opts.type == 'line' || opts.type == 'mount' || opts.type == 'area' || opts.type == 'candle' || opts.type == 'mix') {\r\n if (toolTipOption.splitLine == true) {\r\n drawToolTipSplitLine(opts.tooltip.offset.x, opts, config, context);\r\n }\r\n }\r\n offset = assign({\r\n x: 0,\r\n y: 0\r\n }, offset);\r\n offset.y -= 8 * opts.pix;\r\n var textWidth = textList.map(function(item) {\r\n return measureText(item.text, config.fontSize, context);\r\n });\r\n var toolTipWidth = legendWidth + legendMarginRight + 4 * config.toolTipPadding + Math.max.apply(null, textWidth);\r\n var toolTipHeight = 2 * config.toolTipPadding + textList.length * config.toolTipLineHeight;\r\n if (toolTipOption.showBox == false) {\r\n return\r\n }\r\n // if beyond the right border\r\n if (offset.x - Math.abs(opts._scrollDistance_ || 0) + arrowWidth + toolTipWidth > opts.width) {\r\n isOverRightBorder = true;\r\n }\r\n if (toolTipHeight + offset.y > opts.height) {\r\n offset.y = opts.height - toolTipHeight;\r\n }\r\n // draw background rect\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(toolTipOption.bgColor || config.toolTipBackground, toolTipOption.bgOpacity || config.toolTipOpacity));\r\n context.setLineWidth(toolTipOption.borderWidth * opts.pix);\r\n context.setStrokeStyle(hexToRgb(toolTipOption.borderColor, toolTipOption.borderOpacity));\r\n var radius = toolTipOption.borderRadius;\r\n if (isOverRightBorder) {\r\n if (toolTipOption.showArrow) {\r\n context.moveTo(offset.x, offset.y + 10 * opts.pix);\r\n context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);\r\n }\r\n context.arc(offset.x - arrowWidth - radius, offset.y + toolTipHeight - radius, radius, 0, Math.PI / 2, false);\r\n context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + toolTipHeight - radius, radius,\r\n Math.PI / 2, Math.PI, false);\r\n context.arc(offset.x - arrowWidth - Math.round(toolTipWidth) + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);\r\n context.arc(offset.x - arrowWidth - radius, offset.y + radius, radius, -Math.PI / 2, 0, false);\r\n if (toolTipOption.showArrow) {\r\n context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);\r\n context.lineTo(offset.x, offset.y + 10 * opts.pix);\r\n }\r\n } else {\r\n if (toolTipOption.showArrow) {\r\n context.moveTo(offset.x, offset.y + 10 * opts.pix);\r\n context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix - 5 * opts.pix);\r\n }\r\n context.arc(offset.x + arrowWidth + radius, offset.y + radius, radius, -Math.PI, -Math.PI / 2, false);\r\n context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + radius, radius, -Math.PI / 2, 0,\r\n false);\r\n context.arc(offset.x + arrowWidth + Math.round(toolTipWidth) - radius, offset.y + toolTipHeight - radius, radius, 0,\r\n Math.PI / 2, false);\r\n context.arc(offset.x + arrowWidth + radius, offset.y + toolTipHeight - radius, radius, Math.PI / 2, Math.PI, false);\r\n if (toolTipOption.showArrow) {\r\n context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pix + 5 * opts.pix);\r\n context.lineTo(offset.x, offset.y + 10 * opts.pix);\r\n }\r\n }\r\n context.closePath();\r\n context.fill();\r\n if (toolTipOption.borderWidth > 0) {\r\n context.stroke();\r\n }\r\n // draw legend\r\n textList.forEach(function(item, index) {\r\n if (item.color !== null) {\r\n context.beginPath();\r\n context.setFillStyle(item.color);\r\n var startX = offset.x + arrowWidth + 2 * config.toolTipPadding;\r\n var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding + 1;\r\n if (isOverRightBorder) {\r\n startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding;\r\n }\r\n context.fillRect(startX, startY, legendWidth, config.fontSize);\r\n context.closePath();\r\n }\r\n });\r\n // draw text list\r\n textList.forEach(function(item, index) {\r\n var startX = offset.x + arrowWidth + 2 * config.toolTipPadding + legendWidth + legendMarginRight;\r\n if (isOverRightBorder) {\r\n startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding + +legendWidth + legendMarginRight;\r\n }\r\n var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + config.toolTipPadding;\r\n context.beginPath();\r\n context.setFontSize(config.fontSize);\r\n context.setFillStyle(toolTipOption.fontColor);\r\n context.fillText(item.text, startX, startY + config.fontSize);\r\n context.closePath();\r\n context.stroke();\r\n });\r\n}\r\n\r\nfunction drawColumnDataPoints(series, opts, config, context) {\r\n let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n eachSpacing = xAxisData.eachSpacing;\r\n let columnOption = assign({}, {\r\n type: 'group',\r\n width: eachSpacing / 2,\r\n meterBorder: 4,\r\n meterFillColor: '#FFFFFF',\r\n barBorderCircle: false,\r\n barBorderRadius: [],\r\n seriesGap: 2,\r\n linearType: 'none',\r\n linearOpacity: 1,\r\n customColor: [],\r\n colorStop: 0,\r\n }, opts.extra.column);\r\n let calPoints = [];\r\n context.save();\r\n let leftNum = -2;\r\n let rightNum = xAxisPoints.length + 2;\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\r\n rightNum = leftNum + opts.xAxis.itemCount + 4;\r\n }\r\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\r\n drawToolTipSplitArea(opts.tooltip.offset.x, opts, config, context, eachSpacing);\r\n }\r\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n switch (columnOption.type) {\r\n case 'group':\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n var tooltipPoints = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\r\n calPoints.push(tooltipPoints);\r\n points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n //fix issues/I27B1N yyoinge & Joeshu\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n var startX = item.x - item.width / 2;\r\n var height = opts.height - item.y - opts.area[2];\r\n context.beginPath();\r\n var fillColor = item.color || eachSeries.color\r\n var strokeColor = item.color || eachSeries.color\r\n if (columnOption.linearType !== 'none') {\r\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\r\n //透明渐变\r\n if (columnOption.linearType == 'opacity') {\r\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n } else {\r\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\r\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex],columnOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n }\r\n fillColor = grd\r\n }\r\n // 圆角边框\r\n if ((columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4) || columnOption.barBorderCircle === true) {\r\n const left = startX;\r\n const top = item.y;\r\n const width = item.width;\r\n const height = opts.height - opts.area[2] - item.y;\r\n if (columnOption.barBorderCircle) {\r\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\r\n }\r\n let [r0, r1, r2, r3] = columnOption.barBorderRadius;\r\n let minRadius = Math.min(width/2,height/2);\r\n r0 = r0 > minRadius ? minRadius : r0;\r\n r1 = r1 > minRadius ? minRadius : r1;\r\n r2 = r2 > minRadius ? minRadius : r2;\r\n r3 = r3 > minRadius ? minRadius : r3;\r\n r0 = r0 < 0 ? 0 : r0;\r\n r1 = r1 < 0 ? 0 : r1;\r\n r2 = r2 < 0 ? 0 : r2;\r\n r3 = r3 < 0 ? 0 : r3;\r\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\r\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\r\n context.arc(left + width - r2, top + height - r2, r2, 0, Math.PI / 2);\r\n context.arc(left + r3, top + height - r3, r3, Math.PI / 2, Math.PI);\r\n } else {\r\n context.moveTo(startX, item.y);\r\n context.lineTo(startX + item.width, item.y);\r\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\r\n context.lineTo(startX, opts.height - opts.area[2]);\r\n context.lineTo(startX, item.y);\r\n context.setLineWidth(1)\r\n context.setStrokeStyle(strokeColor);\r\n }\r\n context.setFillStyle(fillColor);\r\n context.closePath();\r\n //context.stroke();\r\n context.fill();\r\n }\r\n };\r\n break;\r\n case 'stack':\r\n // 绘制堆叠数据图\r\n var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\r\n calPoints.push(points);\r\n points = fixColumeStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n context.beginPath();\r\n var fillColor = item.color || eachSeries.color;\r\n var startX = item.x - item.width / 2 + 1;\r\n var height = opts.height - item.y - opts.area[2];\r\n var height0 = opts.height - item.y0 - opts.area[2];\r\n if (seriesIndex > 0) {\r\n height -= height0;\r\n }\r\n context.setFillStyle(fillColor);\r\n context.moveTo(startX, item.y);\r\n context.fillRect(startX, item.y, item.width, height);\r\n context.closePath();\r\n context.fill();\r\n }\r\n };\r\n break;\r\n case 'meter':\r\n // 绘制温度计数据图\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n calPoints.push(points);\r\n points = fixColumeMeterData(points, eachSpacing, series.length, seriesIndex, config, opts, columnOption.meterBorder);\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n //画背景颜色\r\n context.beginPath();\r\n if (seriesIndex == 0 && columnOption.meterBorder > 0) {\r\n context.setStrokeStyle(eachSeries.color);\r\n context.setLineWidth(columnOption.meterBorder * opts.pix);\r\n }\r\n if(seriesIndex == 0){\r\n context.setFillStyle(columnOption.meterFillColor);\r\n }else{\r\n context.setFillStyle(item.color || eachSeries.color);\r\n }\r\n var startX = item.x - item.width / 2;\r\n var height = opts.height - item.y - opts.area[2];\r\n if ((columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4) || columnOption.barBorderCircle === true) {\r\n const left = startX;\r\n const top = item.y;\r\n const width = item.width;\r\n const height = opts.height - opts.area[2] - item.y;\r\n if (columnOption.barBorderCircle) {\r\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\r\n }\r\n let [r0, r1, r2, r3] = columnOption.barBorderRadius;\r\n let minRadius = Math.min(width/2,height/2);\r\n r0 = r0 > minRadius ? minRadius : r0;\r\n r1 = r1 > minRadius ? minRadius : r1;\r\n r2 = r2 > minRadius ? minRadius : r2;\r\n r3 = r3 > minRadius ? minRadius : r3;\r\n r0 = r0 < 0 ? 0 : r0;\r\n r1 = r1 < 0 ? 0 : r1;\r\n r2 = r2 < 0 ? 0 : r2;\r\n r3 = r3 < 0 ? 0 : r3;\r\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\r\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\r\n context.arc(left + width - r2, top + height - r2, r2, 0, Math.PI / 2);\r\n context.arc(left + r3, top + height - r3, r3, Math.PI / 2, Math.PI);\r\n context.fill();\r\n }else{\r\n context.moveTo(startX, item.y);\r\n context.lineTo(startX + item.width, item.y);\r\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\r\n context.lineTo(startX, opts.height - opts.area[2]);\r\n context.lineTo(startX, item.y);\r\n context.fill();\r\n }\r\n if (seriesIndex == 0 && columnOption.meterBorder > 0) {\r\n context.closePath();\r\n context.stroke();\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n });\r\n\r\n if (opts.dataLabel !== false && process === 1) {\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n switch (columnOption.type) {\r\n case 'group':\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts);\r\n drawPointText(points, eachSeries, config, context, opts);\r\n break;\r\n case 'stack':\r\n var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\r\n drawPointText(points, eachSeries, config, context, opts);\r\n break;\r\n case 'meter':\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n drawPointText(points, eachSeries, config, context, opts);\r\n break;\r\n }\r\n });\r\n }\r\n context.restore();\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n calPoints: calPoints,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction drawMountDataPoints(series, opts, config, context) {\r\n let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n eachSpacing = xAxisData.eachSpacing;\r\n let mountOption = assign({}, {\r\n type: 'mount',\r\n widthRatio: 1,\r\n borderWidth: 1,\r\n barBorderCircle: false,\r\n barBorderRadius: [],\r\n linearType: 'none',\r\n linearOpacity: 1,\r\n customColor: [],\r\n colorStop: 0,\r\n }, opts.extra.mount);\r\n mountOption.widthRatio = mountOption.widthRatio <= 0 ? 0 : mountOption.widthRatio;\r\n mountOption.widthRatio = mountOption.widthRatio >= 2 ? 2 : mountOption.widthRatio;\r\n let calPoints = [];\r\n context.save();\r\n let leftNum = -2;\r\n let rightNum = xAxisPoints.length + 2;\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\r\n rightNum = leftNum + opts.xAxis.itemCount + 4;\r\n }\r\n mountOption.customColor = fillCustomColor(mountOption.linearType, mountOption.customColor, series, config);\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[0]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var points = getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption, process);\r\n switch (mountOption.type) {\r\n case 'bar':\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n var startX = item.x - eachSpacing*mountOption.widthRatio/2;\r\n var height = opts.height - item.y - opts.area[2];\r\n context.beginPath();\r\n var fillColor = item.color || series[i].color\r\n var strokeColor = item.color || series[i].color\r\n if (mountOption.linearType !== 'none') {\r\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\r\n //透明渐变\r\n if (mountOption.linearType == 'opacity') {\r\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n } else {\r\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\r\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex],mountOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n }\r\n fillColor = grd\r\n }\r\n // 圆角边框\r\n if ((mountOption.barBorderRadius && mountOption.barBorderRadius.length === 4) || mountOption.barBorderCircle === true) {\r\n const left = startX;\r\n const top = item.y;\r\n const width = item.width;\r\n const height = opts.height - opts.area[2] - item.y - mountOption.borderWidth * opts.pix / 2; \r\n if (mountOption.barBorderCircle) {\r\n mountOption.barBorderRadius = [width / 2, width / 2, 0, 0];\r\n }\r\n let [r0, r1, r2, r3] = mountOption.barBorderRadius;\r\n let minRadius = Math.min(width/2,height/2);\r\n r0 = r0 > minRadius ? minRadius : r0;\r\n r1 = r1 > minRadius ? minRadius : r1;\r\n r2 = r2 > minRadius ? minRadius : r2;\r\n r3 = r3 > minRadius ? minRadius : r3;\r\n r0 = r0 < 0 ? 0 : r0;\r\n r1 = r1 < 0 ? 0 : r1;\r\n r2 = r2 < 0 ? 0 : r2;\r\n r3 = r3 < 0 ? 0 : r3;\r\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\r\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\r\n context.arc(left + width - r2, top + height - r2, r2, 0, Math.PI / 2);\r\n context.arc(left + r3, top + height - r3, r3, Math.PI / 2, Math.PI);\r\n } else {\r\n context.moveTo(startX, item.y);\r\n context.lineTo(startX + item.width, item.y);\r\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\r\n context.lineTo(startX, opts.height - opts.area[2]);\r\n context.lineTo(startX, item.y);\r\n }\r\n context.setStrokeStyle(strokeColor);\r\n context.setFillStyle(fillColor);\r\n if(mountOption.borderWidth > 0){\r\n context.setLineWidth(mountOption.borderWidth * opts.pix);\r\n context.closePath();\r\n context.stroke();\r\n }\r\n context.fill();\r\n }\r\n };\r\n break;\r\n case 'triangle':\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n var startX = item.x - eachSpacing*mountOption.widthRatio/2;\r\n var height = opts.height - item.y - opts.area[2];\r\n context.beginPath();\r\n var fillColor = item.color || series[i].color\r\n var strokeColor = item.color || series[i].color\r\n if (mountOption.linearType !== 'none') {\r\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\r\n //透明渐变\r\n if (mountOption.linearType == 'opacity') {\r\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n } else {\r\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\r\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex],mountOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n }\r\n fillColor = grd\r\n }\r\n context.moveTo(startX, opts.height - opts.area[2]);\r\n context.lineTo(item.x, item.y);\r\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\r\n context.setStrokeStyle(strokeColor);\r\n context.setFillStyle(fillColor);\r\n if(mountOption.borderWidth > 0){\r\n context.setLineWidth(mountOption.borderWidth * opts.pix);\r\n context.stroke();\r\n }\r\n context.fill();\r\n }\r\n };\r\n break;\r\n case 'mount':\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n var startX = item.x - eachSpacing*mountOption.widthRatio/2;\r\n var height = opts.height - item.y - opts.area[2];\r\n context.beginPath();\r\n var fillColor = item.color || series[i].color\r\n var strokeColor = item.color || series[i].color\r\n if (mountOption.linearType !== 'none') {\r\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\r\n //透明渐变\r\n if (mountOption.linearType == 'opacity') {\r\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n } else {\r\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\r\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex],mountOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n }\r\n fillColor = grd\r\n }\r\n context.moveTo(startX, opts.height - opts.area[2]);\r\n context.bezierCurveTo(item.x - item.width/4, opts.height - opts.area[2], item.x - item.width/4, item.y, item.x, item.y);\r\n context.bezierCurveTo(item.x + item.width/4, item.y, item.x + item.width/4, opts.height - opts.area[2], startX + item.width, opts.height - opts.area[2]);\r\n context.setStrokeStyle(strokeColor);\r\n context.setFillStyle(fillColor);\r\n if(mountOption.borderWidth > 0){\r\n context.setLineWidth(mountOption.borderWidth * opts.pix);\r\n context.stroke();\r\n }\r\n context.fill();\r\n }\r\n };\r\n break;\r\n case 'sharp':\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n var startX = item.x - eachSpacing*mountOption.widthRatio/2;\r\n var height = opts.height - item.y - opts.area[2];\r\n context.beginPath();\r\n var fillColor = item.color || series[i].color\r\n var strokeColor = item.color || series[i].color\r\n if (mountOption.linearType !== 'none') {\r\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\r\n //透明渐变\r\n if (mountOption.linearType == 'opacity') {\r\n grd.addColorStop(0, hexToRgb(fillColor, mountOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n } else {\r\n grd.addColorStop(0, hexToRgb(mountOption.customColor[series[i].linearIndex], mountOption.linearOpacity));\r\n grd.addColorStop(mountOption.colorStop, hexToRgb(mountOption.customColor[series[i].linearIndex],mountOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n }\r\n fillColor = grd\r\n }\r\n context.moveTo(startX, opts.height - opts.area[2]);\r\n context.quadraticCurveTo(item.x - 0, opts.height - opts.area[2] - height/4, item.x, item.y);\r\n context.quadraticCurveTo(item.x + 0, opts.height - opts.area[2] - height/4, startX + item.width, opts.height - opts.area[2])\r\n context.setStrokeStyle(strokeColor);\r\n context.setFillStyle(fillColor);\r\n if(mountOption.borderWidth > 0){\r\n context.setLineWidth(mountOption.borderWidth * opts.pix);\r\n context.stroke();\r\n }\r\n context.fill();\r\n }\r\n };\r\n break;\r\n }\r\n\r\n if (opts.dataLabel !== false && process === 1) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[0]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var points = getMountDataPoints(series, minRange, maxRange, xAxisPoints, eachSpacing, opts, mountOption, process);\r\n drawMountPointText(points, series, config, context, opts);\r\n }\r\n context.restore();\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n calPoints: points,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction drawBarDataPoints(series, opts, config, context) {\r\n let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n let yAxisPoints = [];\r\n let eachSpacing = (opts.height - opts.area[0] - opts.area[2])/opts.categories.length;\r\n for (let i = 0; i < opts.categories.length; i++) {\r\n yAxisPoints.push(opts.area[0] + eachSpacing / 2 + eachSpacing * i);\r\n }\r\n let columnOption = assign({}, {\r\n type: 'group',\r\n width: eachSpacing / 2,\r\n meterBorder: 4,\r\n meterFillColor: '#FFFFFF',\r\n barBorderCircle: false,\r\n barBorderRadius: [],\r\n seriesGap: 2,\r\n linearType: 'none',\r\n linearOpacity: 1,\r\n customColor: [],\r\n colorStop: 0,\r\n }, opts.extra.bar);\r\n let calPoints = [];\r\n context.save();\r\n let leftNum = -2;\r\n let rightNum = yAxisPoints.length + 2;\r\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\r\n drawBarToolTipSplitArea(opts.tooltip.offset.y, opts, config, context, eachSpacing);\r\n }\r\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.xAxisData.ranges);\r\n maxRange = ranges.pop();\r\n minRange = ranges.shift();\r\n var data = eachSeries.data;\r\n switch (columnOption.type) {\r\n case 'group':\r\n var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);\r\n var tooltipPoints = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\r\n calPoints.push(tooltipPoints);\r\n points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n //fix issues/I27B1N yyoinge & Joeshu\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n //var startX = item.x - item.width / 2;\r\n var startX = opts.area[3];\r\n var startY = item.y - item.width / 2;\r\n var height = item.height;\r\n context.beginPath();\r\n var fillColor = item.color || eachSeries.color\r\n var strokeColor = item.color || eachSeries.color\r\n if (columnOption.linearType !== 'none') {\r\n var grd = context.createLinearGradient(startX, item.y, item.x, item.y);\r\n //透明渐变\r\n if (columnOption.linearType == 'opacity') {\r\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n } else {\r\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\r\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex],columnOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n }\r\n fillColor = grd\r\n }\r\n // 圆角边框\r\n if ((columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4) || columnOption.barBorderCircle === true) {\r\n const left = startX;\r\n const width = item.width;\r\n const top = item.y - item.width / 2;\r\n const height = item.height;\r\n if (columnOption.barBorderCircle) {\r\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\r\n }\r\n let [r0, r1, r2, r3] = columnOption.barBorderRadius;\r\n let minRadius = Math.min(width/2,height/2);\r\n r0 = r0 > minRadius ? minRadius : r0;\r\n r1 = r1 > minRadius ? minRadius : r1;\r\n r2 = r2 > minRadius ? minRadius : r2;\r\n r3 = r3 > minRadius ? minRadius : r3;\r\n r0 = r0 < 0 ? 0 : r0;\r\n r1 = r1 < 0 ? 0 : r1;\r\n r2 = r2 < 0 ? 0 : r2;\r\n r3 = r3 < 0 ? 0 : r3;\r\n \r\n context.arc(left + r3, top + r3, r3, -Math.PI, -Math.PI / 2);\r\n context.arc(item.x - r0, top + r0, r0, -Math.PI / 2, 0);\r\n context.arc(item.x - r1, top + width - r1, r1, 0, Math.PI / 2);\r\n context.arc(left + r2, top + width - r2, r2, Math.PI / 2, Math.PI);\r\n } else {\r\n context.moveTo(startX, startY);\r\n context.lineTo(item.x, startY);\r\n context.lineTo(item.x, startY + item.width);\r\n context.lineTo(startX, startY + item.width);\r\n context.lineTo(startX, startY);\r\n context.setLineWidth(1)\r\n context.setStrokeStyle(strokeColor);\r\n }\r\n context.setFillStyle(fillColor);\r\n context.closePath();\r\n //context.stroke();\r\n context.fill();\r\n }\r\n };\r\n break;\r\n case 'stack':\r\n // 绘制堆叠数据图\r\n var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\r\n calPoints.push(points);\r\n points = fixBarStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series);\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n context.beginPath();\r\n var fillColor = item.color || eachSeries.color;\r\n var startX = item.x0;\r\n context.setFillStyle(fillColor);\r\n context.moveTo(startX, item.y - item.width/2);\r\n context.fillRect(startX, item.y - item.width/2, item.height , item.width);\r\n context.closePath();\r\n context.fill();\r\n }\r\n };\r\n break;\r\n }\r\n });\r\n\r\n if (opts.dataLabel !== false && process === 1) {\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.xAxisData.ranges);\r\n maxRange = ranges.pop();\r\n minRange = ranges.shift();\r\n var data = eachSeries.data;\r\n switch (columnOption.type) {\r\n case 'group':\r\n var points = getBarDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, process);\r\n points = fixBarData(points, eachSpacing, series.length, seriesIndex, config, opts);\r\n drawBarPointText(points, eachSeries, config, context, opts);\r\n break;\r\n case 'stack':\r\n var points = getBarStackDataPoints(data, minRange, maxRange, yAxisPoints, eachSpacing, opts, config, seriesIndex, series, process);\r\n drawBarPointText(points, eachSeries, config, context, opts);\r\n break;\r\n }\r\n });\r\n }\r\n return {\r\n yAxisPoints: yAxisPoints,\r\n calPoints: calPoints,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction drawCandleDataPoints(series, seriesMA, opts, config, context) {\r\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\r\n var candleOption = assign({}, {\r\n color: {},\r\n average: {}\r\n }, opts.extra.candle);\r\n candleOption.color = assign({}, {\r\n upLine: '#f04864',\r\n upFill: '#f04864',\r\n downLine: '#2fc25b',\r\n downFill: '#2fc25b'\r\n }, candleOption.color);\r\n candleOption.average = assign({}, {\r\n show: false,\r\n name: [],\r\n day: [],\r\n color: config.color\r\n }, candleOption.average);\r\n opts.extra.candle = candleOption;\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n eachSpacing = xAxisData.eachSpacing;\r\n let calPoints = [];\r\n context.save();\r\n let leftNum = -2;\r\n let rightNum = xAxisPoints.length + 2;\r\n let leftSpace = 0;\r\n let rightSpace = opts.width + eachSpacing;\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\r\n rightNum = leftNum + opts.xAxis.itemCount + 4;\r\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\r\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\r\n }\r\n //画均线\r\n if (candleOption.average.show || seriesMA) { //Merge pull request !12 from 邱贵翔\r\n seriesMA.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n var splitPointList = splitPoints(points,eachSeries);\r\n for (let i = 0; i < splitPointList.length; i++) {\r\n let points = splitPointList[i];\r\n context.beginPath();\r\n context.setStrokeStyle(eachSeries.color);\r\n context.setLineWidth(1);\r\n if (points.length === 1) {\r\n context.moveTo(points[0].x, points[0].y);\r\n context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\r\n } else {\r\n context.moveTo(points[0].x, points[0].y);\r\n let startPoint = 0;\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n var ctrlPoint = createCurveControlPoints(points, j - 1);\r\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x,\r\n item.y);\r\n }\r\n }\r\n context.moveTo(points[0].x, points[0].y);\r\n }\r\n context.closePath();\r\n context.stroke();\r\n }\r\n });\r\n }\r\n //画K线\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n calPoints.push(points);\r\n var splitPointList = splitPoints(points,eachSeries);\r\n for (let i = 0; i < splitPointList[0].length; i++) {\r\n if (i > leftNum && i < rightNum) {\r\n let item = splitPointList[0][i];\r\n context.beginPath();\r\n //如果上涨\r\n if (data[i][1] - data[i][0] > 0) {\r\n context.setStrokeStyle(candleOption.color.upLine);\r\n context.setFillStyle(candleOption.color.upFill);\r\n context.setLineWidth(1 * opts.pix);\r\n context.moveTo(item[3].x, item[3].y); //顶点\r\n context.lineTo(item[1].x, item[1].y); //收盘中间点\r\n context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //收盘左侧点\r\n context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //开盘左侧点\r\n context.lineTo(item[0].x, item[0].y); //开盘中间点\r\n context.lineTo(item[2].x, item[2].y); //底点\r\n context.lineTo(item[0].x, item[0].y); //开盘中间点\r\n context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //开盘右侧点\r\n context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //收盘右侧点\r\n context.lineTo(item[1].x, item[1].y); //收盘中间点\r\n context.moveTo(item[3].x, item[3].y); //顶点\r\n } else {\r\n context.setStrokeStyle(candleOption.color.downLine);\r\n context.setFillStyle(candleOption.color.downFill);\r\n context.setLineWidth(1 * opts.pix);\r\n context.moveTo(item[3].x, item[3].y); //顶点\r\n context.lineTo(item[0].x, item[0].y); //开盘中间点\r\n context.lineTo(item[0].x - eachSpacing / 4, item[0].y); //开盘左侧点\r\n context.lineTo(item[1].x - eachSpacing / 4, item[1].y); //收盘左侧点\r\n context.lineTo(item[1].x, item[1].y); //收盘中间点\r\n context.lineTo(item[2].x, item[2].y); //底点\r\n context.lineTo(item[1].x, item[1].y); //收盘中间点\r\n context.lineTo(item[1].x + eachSpacing / 4, item[1].y); //收盘右侧点\r\n context.lineTo(item[0].x + eachSpacing / 4, item[0].y); //开盘右侧点\r\n context.lineTo(item[0].x, item[0].y); //开盘中间点\r\n context.moveTo(item[3].x, item[3].y); //顶点\r\n }\r\n context.closePath();\r\n context.fill();\r\n context.stroke();\r\n }\r\n }\r\n });\r\n context.restore();\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n calPoints: calPoints,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction drawAreaDataPoints(series, opts, config, context) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var areaOption = assign({}, {\r\n type: 'straight',\r\n opacity: 0.2,\r\n addLine: false,\r\n width: 2,\r\n gradient: false\r\n }, opts.extra.area);\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n eachSpacing = xAxisData.eachSpacing;\r\n let endY = opts.height - opts.area[2];\r\n let calPoints = [];\r\n context.save();\r\n let leftSpace = 0;\r\n let rightSpace = opts.width + eachSpacing;\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\r\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\r\n }\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n let data = eachSeries.data;\r\n let points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n calPoints.push(points);\r\n let splitPointList = splitPoints(points,eachSeries);\r\n for (let i = 0; i < splitPointList.length; i++) {\r\n let points = splitPointList[i];\r\n // 绘制区域数\r\n context.beginPath();\r\n context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));\r\n if (areaOption.gradient) {\r\n let gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);\r\n gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));\r\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\r\n context.setFillStyle(gradient);\r\n } else {\r\n context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));\r\n }\r\n context.setLineWidth(areaOption.width * opts.pix);\r\n if (points.length > 1) {\r\n let firstPoint = points[0];\r\n let lastPoint = points[points.length - 1];\r\n context.moveTo(firstPoint.x, firstPoint.y);\r\n let startPoint = 0;\r\n if (areaOption.type === 'curve') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n let ctrlPoint = createCurveControlPoints(points, j - 1);\r\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\r\n }\r\n };\r\n } \r\n if (areaOption.type === 'straight') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n context.lineTo(item.x, item.y);\r\n }\r\n };\r\n }\r\n if (areaOption.type === 'step') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n context.lineTo(item.x, points[j - 1].y);\r\n context.lineTo(item.x, item.y);\r\n }\r\n };\r\n }\r\n context.lineTo(lastPoint.x, endY);\r\n context.lineTo(firstPoint.x, endY);\r\n context.lineTo(firstPoint.x, firstPoint.y);\r\n } else {\r\n let item = points[0];\r\n context.moveTo(item.x - eachSpacing / 2, item.y);\r\n context.lineTo(item.x + eachSpacing / 2, item.y);\r\n context.lineTo(item.x + eachSpacing / 2, endY);\r\n context.lineTo(item.x - eachSpacing / 2, endY);\r\n context.moveTo(item.x - eachSpacing / 2, item.y);\r\n }\r\n context.closePath();\r\n context.fill();\r\n //画连线\r\n if (areaOption.addLine) {\r\n if (eachSeries.lineType == 'dash') {\r\n let dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\r\n dashLength *= opts.pix;\r\n context.setLineDash([dashLength, dashLength]);\r\n }\r\n context.beginPath();\r\n context.setStrokeStyle(eachSeries.color);\r\n context.setLineWidth(areaOption.width * opts.pix);\r\n if (points.length === 1) {\r\n context.moveTo(points[0].x, points[0].y);\r\n context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\r\n } else {\r\n context.moveTo(points[0].x, points[0].y);\r\n let startPoint = 0;\r\n if (areaOption.type === 'curve') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n let ctrlPoint = createCurveControlPoints(points, j - 1);\r\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\r\n }\r\n };\r\n }\r\n if (areaOption.type === 'straight') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n context.lineTo(item.x, item.y);\r\n }\r\n };\r\n }\r\n if (areaOption.type === 'step') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n context.lineTo(item.x, points[j - 1].y);\r\n context.lineTo(item.x, item.y);\r\n }\r\n };\r\n }\r\n context.moveTo(points[0].x, points[0].y);\r\n }\r\n context.stroke();\r\n context.setLineDash([]);\r\n }\r\n }\r\n //画点\r\n if (opts.dataPointShape !== false) {\r\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\r\n }\r\n });\r\n\r\n if (opts.dataLabel !== false && process === 1) {\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n drawPointText(points, eachSeries, config, context, opts);\r\n });\r\n }\r\n context.restore();\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n calPoints: calPoints,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction drawScatterDataPoints(series, opts, config, context) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var scatterOption = assign({}, {\r\n type: 'circle'\r\n }, opts.extra.scatter);\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n eachSpacing = xAxisData.eachSpacing;\r\n var calPoints = [];\r\n context.save();\r\n let leftSpace = 0;\r\n let rightSpace = opts.width + eachSpacing;\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\r\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\r\n }\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n context.beginPath();\r\n context.setStrokeStyle(eachSeries.color);\r\n context.setFillStyle(eachSeries.color);\r\n context.setLineWidth(1 * opts.pix);\r\n var shape = eachSeries.pointShape;\r\n if (shape === 'diamond') {\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.moveTo(item.x, item.y - 4.5);\r\n context.lineTo(item.x - 4.5, item.y);\r\n context.lineTo(item.x, item.y + 4.5);\r\n context.lineTo(item.x + 4.5, item.y);\r\n context.lineTo(item.x, item.y - 4.5);\r\n }\r\n });\r\n } else if (shape === 'circle') {\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.moveTo(item.x + 2.5 * opts.pix, item.y);\r\n context.arc(item.x, item.y, 3 * opts.pix, 0, 2 * Math.PI, false);\r\n }\r\n });\r\n } else if (shape === 'square') {\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.moveTo(item.x - 3.5, item.y - 3.5);\r\n context.rect(item.x - 3.5, item.y - 3.5, 7, 7);\r\n }\r\n });\r\n } else if (shape === 'triangle') {\r\n points.forEach(function(item, index) {\r\n if (item !== null) {\r\n context.moveTo(item.x, item.y - 4.5);\r\n context.lineTo(item.x - 4.5, item.y + 4.5);\r\n context.lineTo(item.x + 4.5, item.y + 4.5);\r\n context.lineTo(item.x, item.y - 4.5);\r\n }\r\n });\r\n } else if (shape === 'triangle') {\r\n return;\r\n }\r\n context.closePath();\r\n context.fill();\r\n context.stroke();\r\n });\r\n if (opts.dataLabel !== false && process === 1) {\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n drawPointText(points, eachSeries, config, context, opts);\r\n });\r\n }\r\n context.restore();\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n calPoints: calPoints,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction drawBubbleDataPoints(series, opts, config, context) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var bubbleOption = assign({}, {\r\n opacity: 1,\r\n border:2\r\n }, opts.extra.bubble);\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n eachSpacing = xAxisData.eachSpacing;\r\n var calPoints = [];\r\n context.save();\r\n let leftSpace = 0;\r\n let rightSpace = opts.width + eachSpacing;\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\r\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\r\n }\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n context.beginPath();\r\n context.setStrokeStyle(eachSeries.color);\r\n context.setLineWidth(bubbleOption.border * opts.pix);\r\n context.setFillStyle(hexToRgb(eachSeries.color, bubbleOption.opacity));\r\n points.forEach(function(item, index) {\r\n context.moveTo(item.x + item.r, item.y);\r\n context.arc(item.x, item.y, item.r * opts.pix, 0, 2 * Math.PI, false);\r\n });\r\n context.closePath();\r\n context.fill();\r\n context.stroke();\r\n \r\n if (opts.dataLabel !== false && process === 1) {\r\n points.forEach(function(item, index) {\r\n context.beginPath();\r\n var fontSize = series.textSize * opts.pix || config.fontSize;\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(series.textColor || \"#FFFFFF\");\r\n context.setTextAlign('center');\r\n context.fillText(String(item.t), item.x, item.y + fontSize/2);\r\n context.closePath();\r\n context.stroke();\r\n context.setTextAlign('left');\r\n });\r\n }\r\n });\r\n context.restore();\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n calPoints: calPoints,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction drawLineDataPoints(series, opts, config, context) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var lineOption = assign({}, {\r\n type: 'straight',\r\n width: 2\r\n }, opts.extra.line);\r\n lineOption.width *= opts.pix;\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n eachSpacing = xAxisData.eachSpacing;\r\n var calPoints = [];\r\n context.save();\r\n let leftSpace = 0;\r\n let rightSpace = opts.width + eachSpacing;\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\r\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\r\n }\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n calPoints.push(points);\r\n var splitPointList = splitPoints(points,eachSeries);\r\n if (eachSeries.lineType == 'dash') {\r\n let dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\r\n dashLength *= opts.pix;\r\n context.setLineDash([dashLength, dashLength]);\r\n }\r\n context.beginPath();\r\n context.setStrokeStyle(eachSeries.color);\r\n context.setLineWidth(lineOption.width);\r\n splitPointList.forEach(function(points, index) {\r\n if (points.length === 1) {\r\n context.moveTo(points[0].x, points[0].y);\r\n context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\r\n } else {\r\n context.moveTo(points[0].x, points[0].y);\r\n let startPoint = 0;\r\n if (lineOption.type === 'curve') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n var ctrlPoint = createCurveControlPoints(points, j - 1);\r\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\r\n }\r\n };\r\n }\r\n if (lineOption.type === 'straight') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n context.lineTo(item.x, item.y);\r\n }\r\n };\r\n }\r\n if (lineOption.type === 'step') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n context.lineTo(item.x, points[j - 1].y);\r\n context.lineTo(item.x, item.y);\r\n }\r\n };\r\n }\r\n context.moveTo(points[0].x, points[0].y);\r\n }\r\n });\r\n context.stroke();\r\n context.setLineDash([]);\r\n if (opts.dataPointShape !== false) {\r\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\r\n }\r\n });\r\n if (opts.dataLabel !== false && process === 1) {\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n drawPointText(points, eachSeries, config, context, opts);\r\n });\r\n }\r\n context.restore();\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n calPoints: calPoints,\r\n eachSpacing: eachSpacing\r\n };\r\n}\r\n\r\nfunction drawMixDataPoints(series, opts, config, context) {\r\n let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n eachSpacing = xAxisData.eachSpacing;\r\n let columnOption = assign({}, {\r\n width: eachSpacing / 2,\r\n barBorderCircle: false,\r\n barBorderRadius: [],\r\n seriesGap: 2,\r\n linearType: 'none',\r\n linearOpacity: 1,\r\n customColor: [],\r\n colorStop: 0,\r\n }, opts.extra.mix.column);\r\n let areaOption = assign({}, {\r\n opacity: 0.2,\r\n gradient: false\r\n }, opts.extra.mix.area);\r\n let endY = opts.height - opts.area[2];\r\n let calPoints = [];\r\n var columnIndex = 0;\r\n var columnLength = 0;\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n if (eachSeries.type == 'column') {\r\n columnLength += 1;\r\n }\r\n });\r\n context.save();\r\n let leftNum = -2;\r\n let rightNum = xAxisPoints.length + 2;\r\n let leftSpace = 0;\r\n let rightSpace = opts.width + eachSpacing;\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n leftNum = Math.floor(-opts._scrollDistance_ / eachSpacing) - 2;\r\n rightNum = leftNum + opts.xAxis.itemCount + 4;\r\n leftSpace = -opts._scrollDistance_ - eachSpacing * 2 + opts.area[3];\r\n rightSpace = leftSpace + (opts.xAxis.itemCount + 4) * eachSpacing;\r\n }\r\n columnOption.customColor = fillCustomColor(columnOption.linearType, columnOption.customColor, series, config);\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n calPoints.push(points);\r\n // 绘制柱状数据图\r\n if (eachSeries.type == 'column') {\r\n points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);\r\n for (let i = 0; i < points.length; i++) {\r\n let item = points[i];\r\n if (item !== null && i > leftNum && i < rightNum) {\r\n var startX = item.x - item.width / 2;\r\n var height = opts.height - item.y - opts.area[2];\r\n context.beginPath();\r\n var fillColor = item.color || eachSeries.color\r\n var strokeColor = item.color || eachSeries.color\r\n if (columnOption.linearType !== 'none') {\r\n var grd = context.createLinearGradient(startX, item.y, startX, opts.height - opts.area[2]);\r\n //透明渐变\r\n if (columnOption.linearType == 'opacity') {\r\n grd.addColorStop(0, hexToRgb(fillColor, columnOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n } else {\r\n grd.addColorStop(0, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\r\n grd.addColorStop(columnOption.colorStop, hexToRgb(columnOption.customColor[eachSeries.linearIndex], columnOption.linearOpacity));\r\n grd.addColorStop(1, hexToRgb(fillColor, 1));\r\n }\r\n fillColor = grd\r\n }\r\n // 圆角边框\r\n if ((columnOption.barBorderRadius && columnOption.barBorderRadius.length === 4) || columnOption.barBorderCircle) {\r\n const left = startX;\r\n const top = item.y;\r\n const width = item.width;\r\n const height = opts.height - opts.area[2] - item.y;\r\n if (columnOption.barBorderCircle) {\r\n columnOption.barBorderRadius = [width / 2, width / 2, 0, 0];\r\n }\r\n let [r0, r1, r2, r3] = columnOption.barBorderRadius;\r\n let minRadius = Math.min(width/2,height/2);\r\n r0 = r0 > minRadius ? minRadius : r0;\r\n r1 = r1 > minRadius ? minRadius : r1;\r\n r2 = r2 > minRadius ? minRadius : r2;\r\n r3 = r3 > minRadius ? minRadius : r3;\r\n r0 = r0 < 0 ? 0 : r0;\r\n r1 = r1 < 0 ? 0 : r1;\r\n r2 = r2 < 0 ? 0 : r2;\r\n r3 = r3 < 0 ? 0 : r3;\r\n context.arc(left + r0, top + r0, r0, -Math.PI, -Math.PI / 2);\r\n context.arc(left + width - r1, top + r1, r1, -Math.PI / 2, 0);\r\n context.arc(left + width - r2, top + height - r2, r2, 0, Math.PI / 2);\r\n context.arc(left + r3, top + height - r3, r3, Math.PI / 2, Math.PI);\r\n } else {\r\n context.moveTo(startX, item.y);\r\n context.lineTo(startX + item.width, item.y);\r\n context.lineTo(startX + item.width, opts.height - opts.area[2]);\r\n context.lineTo(startX, opts.height - opts.area[2]);\r\n context.lineTo(startX, item.y);\r\n context.setLineWidth(1)\r\n context.setStrokeStyle(strokeColor);\r\n }\r\n context.setFillStyle(fillColor);\r\n context.closePath();\r\n context.fill();\r\n }\r\n }\r\n columnIndex += 1;\r\n }\r\n //绘制区域图数据\r\n if (eachSeries.type == 'area') {\r\n let splitPointList = splitPoints(points,eachSeries);\r\n for (let i = 0; i < splitPointList.length; i++) {\r\n let points = splitPointList[i];\r\n // 绘制区域数据\r\n context.beginPath();\r\n context.setStrokeStyle(eachSeries.color);\r\n context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity));\r\n if (areaOption.gradient) {\r\n let gradient = context.createLinearGradient(0, opts.area[0], 0, opts.height - opts.area[2]);\r\n gradient.addColorStop('0', hexToRgb(eachSeries.color, areaOption.opacity));\r\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\r\n context.setFillStyle(gradient);\r\n } else {\r\n context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity));\r\n }\r\n context.setLineWidth(2 * opts.pix);\r\n if (points.length > 1) {\r\n var firstPoint = points[0];\r\n let lastPoint = points[points.length - 1];\r\n context.moveTo(firstPoint.x, firstPoint.y);\r\n let startPoint = 0;\r\n if (eachSeries.style === 'curve') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n var ctrlPoint = createCurveControlPoints(points, j - 1);\r\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y);\r\n }\r\n };\r\n } else {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n context.lineTo(item.x, item.y);\r\n }\r\n };\r\n }\r\n context.lineTo(lastPoint.x, endY);\r\n context.lineTo(firstPoint.x, endY);\r\n context.lineTo(firstPoint.x, firstPoint.y);\r\n } else {\r\n let item = points[0];\r\n context.moveTo(item.x - eachSpacing / 2, item.y);\r\n context.lineTo(item.x + eachSpacing / 2, item.y);\r\n context.lineTo(item.x + eachSpacing / 2, endY);\r\n context.lineTo(item.x - eachSpacing / 2, endY);\r\n context.moveTo(item.x - eachSpacing / 2, item.y);\r\n }\r\n context.closePath();\r\n context.fill();\r\n }\r\n }\r\n // 绘制折线数据图\r\n if (eachSeries.type == 'line') {\r\n var splitPointList = splitPoints(points,eachSeries);\r\n splitPointList.forEach(function(points, index) {\r\n if (eachSeries.lineType == 'dash') {\r\n let dashLength = eachSeries.dashLength ? eachSeries.dashLength : 8;\r\n dashLength *= opts.pix;\r\n context.setLineDash([dashLength, dashLength]);\r\n }\r\n context.beginPath();\r\n context.setStrokeStyle(eachSeries.color);\r\n context.setLineWidth(2 * opts.pix);\r\n if (points.length === 1) {\r\n context.moveTo(points[0].x, points[0].y);\r\n context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI);\r\n } else {\r\n context.moveTo(points[0].x, points[0].y);\r\n let startPoint = 0;\r\n if (eachSeries.style == 'curve') {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n var ctrlPoint = createCurveControlPoints(points, j - 1);\r\n context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y,\r\n item.x, item.y);\r\n }\r\n }\r\n } else {\r\n for (let j = 0; j < points.length; j++) {\r\n let item = points[j];\r\n if (startPoint == 0 && item.x > leftSpace) {\r\n context.moveTo(item.x, item.y);\r\n startPoint = 1;\r\n }\r\n if (j > 0 && item.x > leftSpace && item.x < rightSpace) {\r\n context.lineTo(item.x, item.y);\r\n }\r\n }\r\n }\r\n context.moveTo(points[0].x, points[0].y);\r\n }\r\n context.stroke();\r\n context.setLineDash([]);\r\n });\r\n }\r\n // 绘制点数据图\r\n if (eachSeries.type == 'point') {\r\n eachSeries.addPoint = true;\r\n }\r\n if (eachSeries.addPoint == true && eachSeries.type !== 'column') {\r\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\r\n }\r\n });\r\n if (opts.dataLabel !== false && process === 1) {\r\n var columnIndex = 0;\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n let ranges, minRange, maxRange;\r\n ranges = [].concat(opts.chartData.yAxisData.ranges[eachSeries.index]);\r\n minRange = ranges.pop();\r\n maxRange = ranges.shift();\r\n var data = eachSeries.data;\r\n var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process);\r\n if (eachSeries.type !== 'column') {\r\n drawPointText(points, eachSeries, config, context, opts);\r\n } else {\r\n points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts);\r\n drawPointText(points, eachSeries, config, context, opts);\r\n columnIndex += 1;\r\n }\r\n });\r\n }\r\n context.restore();\r\n return {\r\n xAxisPoints: xAxisPoints,\r\n calPoints: calPoints,\r\n eachSpacing: eachSpacing,\r\n }\r\n}\r\n\r\n\r\nfunction drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints) {\r\n var toolTipOption = opts.extra.tooltip || {};\r\n if (toolTipOption.horizentalLine && opts.tooltip && process === 1 && (opts.type == 'line' || opts.type == 'area' || opts.type == 'column' || opts.type == 'mount' || opts.type == 'candle' || opts.type == 'mix')) {\r\n drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints)\r\n }\r\n context.save();\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) {\r\n context.translate(opts._scrollDistance_, 0);\r\n }\r\n if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) {\r\n drawToolTip(opts.tooltip.textList, opts.tooltip.offset, opts, config, context, eachSpacing, xAxisPoints);\r\n }\r\n context.restore();\r\n\r\n}\r\n\r\nfunction drawXAxis(categories, opts, config, context) {\r\n\r\n let xAxisData = opts.chartData.xAxisData,\r\n xAxisPoints = xAxisData.xAxisPoints,\r\n startX = xAxisData.startX,\r\n endX = xAxisData.endX,\r\n eachSpacing = xAxisData.eachSpacing;\r\n var boundaryGap = 'center';\r\n if (opts.type == 'bar' || opts.type == 'line' || opts.type == 'area'|| opts.type == 'scatter' || opts.type == 'bubble') {\r\n boundaryGap = opts.xAxis.boundaryGap;\r\n }\r\n var startY = opts.height - opts.area[2];\r\n var endY = opts.area[0];\r\n\r\n //绘制滚动条\r\n if (opts.enableScroll && opts.xAxis.scrollShow) {\r\n var scrollY = opts.height - opts.area[2] + config.xAxisHeight;\r\n var scrollScreenWidth = endX - startX;\r\n var scrollTotalWidth = eachSpacing * (xAxisPoints.length - 1);\r\n if(opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1){\r\n if(opts.extra.mount.widthRatio>2) opts.extra.mount.widthRatio = 2\r\n scrollTotalWidth += (opts.extra.mount.widthRatio - 1)*eachSpacing;\r\n }\r\n var scrollWidth = scrollScreenWidth * scrollScreenWidth / scrollTotalWidth;\r\n var scrollLeft = 0;\r\n if (opts._scrollDistance_) {\r\n scrollLeft = -opts._scrollDistance_ * (scrollScreenWidth) / scrollTotalWidth;\r\n }\r\n context.beginPath();\r\n context.setLineCap('round');\r\n context.setLineWidth(6 * opts.pix);\r\n context.setStrokeStyle(opts.xAxis.scrollBackgroundColor || \"#EFEBEF\");\r\n context.moveTo(startX, scrollY);\r\n context.lineTo(endX, scrollY);\r\n context.stroke();\r\n context.closePath();\r\n context.beginPath();\r\n context.setLineCap('round');\r\n context.setLineWidth(6 * opts.pix);\r\n context.setStrokeStyle(opts.xAxis.scrollColor || \"#A6A6A6\");\r\n context.moveTo(startX + scrollLeft, scrollY);\r\n context.lineTo(startX + scrollLeft + scrollWidth, scrollY);\r\n context.stroke();\r\n context.closePath();\r\n context.setLineCap('butt');\r\n }\r\n context.save();\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {\r\n context.translate(opts._scrollDistance_, 0);\r\n }\r\n //绘制X轴刻度线\r\n if (opts.xAxis.calibration === true) {\r\n context.setStrokeStyle(opts.xAxis.gridColor || \"#cccccc\");\r\n context.setLineCap('butt');\r\n context.setLineWidth(1 * opts.pix);\r\n xAxisPoints.forEach(function(item, index) {\r\n if (index > 0) {\r\n context.beginPath();\r\n context.moveTo(item - eachSpacing / 2, startY);\r\n context.lineTo(item - eachSpacing / 2, startY + 3 * opts.pix);\r\n context.closePath();\r\n context.stroke();\r\n }\r\n });\r\n }\r\n //绘制X轴网格\r\n if (opts.xAxis.disableGrid !== true) {\r\n context.setStrokeStyle(opts.xAxis.gridColor || \"#cccccc\");\r\n context.setLineCap('butt');\r\n context.setLineWidth(1 * opts.pix);\r\n if (opts.xAxis.gridType == 'dash') {\r\n context.setLineDash([opts.xAxis.dashLength * opts.pix, opts.xAxis.dashLength * opts.pix]);\r\n }\r\n opts.xAxis.gridEval = opts.xAxis.gridEval || 1;\r\n xAxisPoints.forEach(function(item, index) {\r\n if (index % opts.xAxis.gridEval == 0) {\r\n context.beginPath();\r\n context.moveTo(item, startY);\r\n context.lineTo(item, endY);\r\n context.stroke();\r\n }\r\n });\r\n context.setLineDash([]);\r\n }\r\n //绘制X轴文案\r\n if (opts.xAxis.disabled !== true) {\r\n // 对X轴列表做抽稀处理\r\n //默认全部显示X轴标签\r\n let maxXAxisListLength = categories.length;\r\n //如果设置了X轴单屏数量\r\n if (opts.xAxis.labelCount) {\r\n //如果设置X轴密度\r\n if (opts.xAxis.itemCount) {\r\n maxXAxisListLength = Math.ceil(categories.length / opts.xAxis.itemCount * opts.xAxis.labelCount);\r\n } else {\r\n maxXAxisListLength = opts.xAxis.labelCount;\r\n }\r\n maxXAxisListLength -= 1;\r\n }\r\n\r\n let ratio = Math.ceil(categories.length / maxXAxisListLength);\r\n\r\n let newCategories = [];\r\n let cgLength = categories.length;\r\n for (let i = 0; i < cgLength; i++) {\r\n if (i % ratio !== 0) {\r\n newCategories.push(\"\");\r\n } else {\r\n newCategories.push(categories[i]);\r\n }\r\n }\r\n newCategories[cgLength - 1] = categories[cgLength - 1];\r\n var xAxisFontSize = opts.xAxis.fontSize * opts.pix || config.fontSize;\r\n if (config._xAxisTextAngle_ === 0) {\r\n newCategories.forEach(function(item, index) {\r\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item,index,opts) : item;\r\n var offset = -measureText(String(xitem), xAxisFontSize, context) / 2;\r\n if (boundaryGap == 'center') {\r\n offset += eachSpacing / 2;\r\n }\r\n var scrollHeight = 0;\r\n if (opts.xAxis.scrollShow) {\r\n scrollHeight = 6 * opts.pix;\r\n }\r\n context.beginPath();\r\n context.setFontSize(xAxisFontSize);\r\n context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);\r\n context.fillText(String(xitem), xAxisPoints[index] + offset, startY + xAxisFontSize + (config.xAxisHeight - scrollHeight - xAxisFontSize) / 2);\r\n context.closePath();\r\n context.stroke();\r\n });\r\n } else {\r\n newCategories.forEach(function(item, index) {\r\n var xitem = opts.xAxis.formatter ? opts.xAxis.formatter(item) : item;\r\n context.save();\r\n context.beginPath();\r\n context.setFontSize(xAxisFontSize);\r\n context.setFillStyle(opts.xAxis.fontColor || opts.fontColor);\r\n var textWidth = measureText(String(xitem), xAxisFontSize, context);\r\n var offsetX = xAxisPoints[index];\r\n if (boundaryGap == 'center') {\r\n offsetX = xAxisPoints[index] + eachSpacing / 2;\r\n }\r\n var scrollHeight = 0;\r\n if (opts.xAxis.scrollShow) {\r\n scrollHeight = 6 * opts.pix;\r\n }\r\n var offsetY = startY + 6 * opts.pix + xAxisFontSize - xAxisFontSize * Math.abs(Math.sin(config._xAxisTextAngle_));\r\n if(opts.xAxis.rotateAngle < 0){\r\n offsetX -= xAxisFontSize / 2;\r\n textWidth = 0;\r\n }else{\r\n offsetX += xAxisFontSize / 2;\r\n textWidth = -textWidth;\r\n }\r\n context.translate(offsetX, offsetY);\r\n context.rotate(-1 * config._xAxisTextAngle_);\r\n context.fillText(String(xitem), textWidth , 0 );\r\n context.closePath();\r\n context.stroke();\r\n context.restore();\r\n });\r\n }\r\n }\r\n context.restore();\r\n //绘制X轴轴线\r\n if (opts.xAxis.axisLine) {\r\n context.beginPath();\r\n context.setStrokeStyle(opts.xAxis.axisLineColor);\r\n context.setLineWidth(1 * opts.pix);\r\n context.moveTo(startX, opts.height - opts.area[2]);\r\n context.lineTo(endX, opts.height - opts.area[2]);\r\n context.stroke();\r\n }\r\n}\r\n\r\nfunction drawYAxisGrid(categories, opts, config, context) {\r\n if (opts.yAxis.disableGrid === true) {\r\n return;\r\n }\r\n let spacingValid = opts.height - opts.area[0] - opts.area[2];\r\n let eachSpacing = spacingValid / opts.yAxis.splitNumber;\r\n let startX = opts.area[3];\r\n let xAxisPoints = opts.chartData.xAxisData.xAxisPoints,\r\n xAxiseachSpacing = opts.chartData.xAxisData.eachSpacing;\r\n let TotalWidth = xAxiseachSpacing * (xAxisPoints.length - 1);\r\n if(opts.type == 'mount' && opts.extra && opts.extra.mount && opts.extra.mount.widthRatio && opts.extra.mount.widthRatio > 1 ){\r\n if(opts.extra.mount.widthRatio>2) opts.extra.mount.widthRatio = 2\r\n TotalWidth += (opts.extra.mount.widthRatio - 1)*xAxiseachSpacing;\r\n }\r\n let endX = startX + TotalWidth;\r\n let points = [];\r\n let startY = 1\r\n if (opts.xAxis.axisLine === false) {\r\n startY = 0\r\n }\r\n for (let i = startY; i < opts.yAxis.splitNumber + 1; i++) {\r\n points.push(opts.height - opts.area[2] - eachSpacing * i);\r\n }\r\n context.save();\r\n if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) {\r\n context.translate(opts._scrollDistance_, 0);\r\n }\r\n if (opts.yAxis.gridType == 'dash') {\r\n context.setLineDash([opts.yAxis.dashLength * opts.pix, opts.yAxis.dashLength * opts.pix]);\r\n }\r\n context.setStrokeStyle(opts.yAxis.gridColor);\r\n context.setLineWidth(1 * opts.pix);\r\n points.forEach(function(item, index) {\r\n context.beginPath();\r\n context.moveTo(startX, item);\r\n context.lineTo(endX, item);\r\n context.stroke();\r\n });\r\n context.setLineDash([]);\r\n context.restore();\r\n}\r\n\r\nfunction drawYAxis(series, opts, config, context) {\r\n if (opts.yAxis.disabled === true) {\r\n return;\r\n }\r\n var spacingValid = opts.height - opts.area[0] - opts.area[2];\r\n var eachSpacing = spacingValid / opts.yAxis.splitNumber;\r\n var startX = opts.area[3];\r\n var endX = opts.width - opts.area[1];\r\n var endY = opts.height - opts.area[2];\r\n var fillEndY = endY + config.xAxisHeight;\r\n if (opts.xAxis.scrollShow) {\r\n fillEndY -= 3 * opts.pix;\r\n }\r\n if (opts.xAxis.rotateLabel) {\r\n fillEndY = opts.height - opts.area[2] + opts.fontSize * opts.pix / 2;\r\n }\r\n // set YAxis background\r\n context.beginPath();\r\n context.setFillStyle(opts.background);\r\n if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'left') {\r\n context.fillRect(0, 0, startX, fillEndY);\r\n }\r\n if (opts.enableScroll == true && opts.xAxis.scrollPosition && opts.xAxis.scrollPosition !== 'right') {\r\n context.fillRect(endX, 0, opts.width, fillEndY);\r\n }\r\n context.closePath();\r\n context.stroke();\r\n \r\n let tStartLeft = opts.area[3];\r\n let tStartRight = opts.width - opts.area[1];\r\n let tStartCenter = opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2;\r\n if (opts.yAxis.data) {\r\n for (let i = 0; i < opts.yAxis.data.length; i++) {\r\n let yData = opts.yAxis.data[i];\r\n var points = [];\r\n if(yData.type === 'categories'){\r\n for (let i = 0; i <= yData.categories.length; i++) {\r\n points.push(opts.area[0] + spacingValid / yData.categories.length / 2 + spacingValid / yData.categories.length * i);\r\n }\r\n }else{\r\n for (let i = 0; i <= opts.yAxis.splitNumber; i++) {\r\n points.push(opts.area[0] + eachSpacing * i);\r\n }\r\n }\r\n if (yData.disabled !== true) {\r\n let rangesFormat = opts.chartData.yAxisData.rangesFormat[i];\r\n let yAxisFontSize = yData.fontSize ? yData.fontSize * opts.pix : config.fontSize;\r\n let yAxisWidth = opts.chartData.yAxisData.yAxisWidth[i];\r\n let textAlign = yData.textAlign || \"right\";\r\n //画Y轴刻度及文案\r\n rangesFormat.forEach(function(item, index) {\r\n var pos = points[index];\r\n context.beginPath();\r\n context.setFontSize(yAxisFontSize);\r\n context.setLineWidth(1 * opts.pix);\r\n context.setStrokeStyle(yData.axisLineColor || '#cccccc');\r\n context.setFillStyle(yData.fontColor || opts.fontColor);\r\n let tmpstrat = 0;\r\n let gapwidth = 4 * opts.pix;\r\n if (yAxisWidth.position == 'left') {\r\n //画刻度线\r\n if (yData.calibration == true) {\r\n context.moveTo(tStartLeft, pos);\r\n context.lineTo(tStartLeft - 3 * opts.pix, pos);\r\n gapwidth += 3 * opts.pix;\r\n }\r\n //画文字\r\n switch (textAlign) {\r\n case \"left\":\r\n context.setTextAlign('left');\r\n tmpstrat = tStartLeft - yAxisWidth.width\r\n break;\r\n case \"right\":\r\n context.setTextAlign('right');\r\n tmpstrat = tStartLeft - gapwidth\r\n break;\r\n default:\r\n context.setTextAlign('center');\r\n tmpstrat = tStartLeft - yAxisWidth.width / 2\r\n }\r\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\r\n\r\n } else if (yAxisWidth.position == 'right') {\r\n //画刻度线\r\n if (yData.calibration == true) {\r\n context.moveTo(tStartRight, pos);\r\n context.lineTo(tStartRight + 3 * opts.pix, pos);\r\n gapwidth += 3 * opts.pix;\r\n }\r\n switch (textAlign) {\r\n case \"left\":\r\n context.setTextAlign('left');\r\n tmpstrat = tStartRight + gapwidth\r\n break;\r\n case \"right\":\r\n context.setTextAlign('right');\r\n tmpstrat = tStartRight + yAxisWidth.width\r\n break;\r\n default:\r\n context.setTextAlign('center');\r\n tmpstrat = tStartRight + yAxisWidth.width / 2\r\n }\r\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\r\n } else if (yAxisWidth.position == 'center') {\r\n //画刻度线\r\n if (yData.calibration == true) {\r\n context.moveTo(tStartCenter, pos);\r\n context.lineTo(tStartCenter - 3 * opts.pix, pos);\r\n gapwidth += 3 * opts.pix;\r\n }\r\n //画文字\r\n switch (textAlign) {\r\n case \"left\":\r\n context.setTextAlign('left');\r\n tmpstrat = tStartCenter - yAxisWidth.width\r\n break;\r\n case \"right\":\r\n context.setTextAlign('right');\r\n tmpstrat = tStartCenter - gapwidth\r\n break;\r\n default:\r\n context.setTextAlign('center');\r\n tmpstrat = tStartCenter - yAxisWidth.width / 2\r\n }\r\n context.fillText(String(item), tmpstrat, pos + yAxisFontSize / 2 - 3 * opts.pix);\r\n }\r\n context.closePath();\r\n context.stroke();\r\n context.setTextAlign('left');\r\n });\r\n //画Y轴轴线\r\n if (yData.axisLine !== false) {\r\n context.beginPath();\r\n context.setStrokeStyle(yData.axisLineColor || '#cccccc');\r\n context.setLineWidth(1 * opts.pix);\r\n if (yAxisWidth.position == 'left') {\r\n context.moveTo(tStartLeft, opts.height - opts.area[2]);\r\n context.lineTo(tStartLeft, opts.area[0]);\r\n } else if (yAxisWidth.position == 'right') {\r\n context.moveTo(tStartRight, opts.height - opts.area[2]);\r\n context.lineTo(tStartRight, opts.area[0]);\r\n } else if (yAxisWidth.position == 'center') {\r\n context.moveTo(tStartCenter, opts.height - opts.area[2]);\r\n context.lineTo(tStartCenter, opts.area[0]);\r\n }\r\n context.stroke();\r\n }\r\n //画Y轴标题\r\n if (opts.yAxis.showTitle) {\r\n let titleFontSize = yData.titleFontSize * opts.pix || config.fontSize;\r\n let title = yData.title;\r\n context.beginPath();\r\n context.setFontSize(titleFontSize);\r\n context.setFillStyle(yData.titleFontColor || opts.fontColor);\r\n if (yAxisWidth.position == 'left') {\r\n context.fillText(title, tStartLeft - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\r\n } else if (yAxisWidth.position == 'right') {\r\n context.fillText(title, tStartRight - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\r\n } else if (yAxisWidth.position == 'center') {\r\n context.fillText(title, tStartCenter - measureText(title, titleFontSize, context) / 2 + (yData.titleOffsetX || 0), opts.area[0] - (10 - (yData.titleOffsetY || 0)) * opts.pix);\r\n }\r\n context.closePath();\r\n context.stroke();\r\n }\r\n if (yAxisWidth.position == 'left') {\r\n tStartLeft -= (yAxisWidth.width + opts.yAxis.padding * opts.pix);\r\n } else {\r\n tStartRight += yAxisWidth.width + opts.yAxis.padding * opts.pix;\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nfunction drawLegend(series, opts, config, context, chartData) {\r\n if (opts.legend.show === false) {\r\n return;\r\n }\r\n let legendData = chartData.legendData;\r\n let legendList = legendData.points;\r\n let legendArea = legendData.area;\r\n let padding = opts.legend.padding * opts.pix;\r\n let fontSize = opts.legend.fontSize * opts.pix;\r\n let shapeWidth = 15 * opts.pix;\r\n let shapeRight = 5 * opts.pix;\r\n let itemGap = opts.legend.itemGap * opts.pix;\r\n let lineHeight = Math.max(opts.legend.lineHeight * opts.pix, fontSize);\r\n //画背景及边框\r\n context.beginPath();\r\n context.setLineWidth(opts.legend.borderWidth * opts.pix);\r\n context.setStrokeStyle(opts.legend.borderColor);\r\n context.setFillStyle(opts.legend.backgroundColor);\r\n context.moveTo(legendArea.start.x, legendArea.start.y);\r\n context.rect(legendArea.start.x, legendArea.start.y, legendArea.width, legendArea.height);\r\n context.closePath();\r\n context.fill();\r\n context.stroke();\r\n legendList.forEach(function(itemList, listIndex) {\r\n let width = 0;\r\n let height = 0;\r\n width = legendData.widthArr[listIndex];\r\n height = legendData.heightArr[listIndex];\r\n let startX = 0;\r\n let startY = 0;\r\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\r\n switch (opts.legend.float) {\r\n case 'left':\r\n startX = legendArea.start.x + padding;\r\n break;\r\n case 'right':\r\n startX = legendArea.start.x + legendArea.width - width;\r\n break;\r\n default:\r\n startX = legendArea.start.x + (legendArea.width - width) / 2;\r\n }\r\n startY = legendArea.start.y + padding + listIndex * lineHeight;\r\n } else {\r\n if (listIndex == 0) {\r\n width = 0;\r\n } else {\r\n width = legendData.widthArr[listIndex - 1];\r\n }\r\n startX = legendArea.start.x + padding + width;\r\n startY = legendArea.start.y + padding + (legendArea.height - height) / 2;\r\n }\r\n context.setFontSize(config.fontSize);\r\n for (let i = 0; i < itemList.length; i++) {\r\n let item = itemList[i];\r\n item.area = [0, 0, 0, 0];\r\n item.area[0] = startX;\r\n item.area[1] = startY;\r\n item.area[3] = startY + lineHeight;\r\n context.beginPath();\r\n context.setLineWidth(1 * opts.pix);\r\n context.setStrokeStyle(item.show ? item.color : opts.legend.hiddenColor);\r\n context.setFillStyle(item.show ? item.color : opts.legend.hiddenColor);\r\n switch (item.legendShape) {\r\n case 'line':\r\n context.moveTo(startX, startY + 0.5 * lineHeight - 2 * opts.pix);\r\n context.fillRect(startX, startY + 0.5 * lineHeight - 2 * opts.pix, 15 * opts.pix, 4 * opts.pix);\r\n break;\r\n case 'triangle':\r\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\r\n context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\r\n context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\r\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\r\n break;\r\n case 'diamond':\r\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\r\n context.lineTo(startX + 2.5 * opts.pix, startY + 0.5 * lineHeight);\r\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight + 5 * opts.pix);\r\n context.lineTo(startX + 12.5 * opts.pix, startY + 0.5 * lineHeight);\r\n context.lineTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\r\n break;\r\n case 'circle':\r\n context.moveTo(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight);\r\n context.arc(startX + 7.5 * opts.pix, startY + 0.5 * lineHeight, 5 * opts.pix, 0, 2 * Math.PI);\r\n break;\r\n case 'rect':\r\n context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);\r\n context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);\r\n break;\r\n case 'square':\r\n context.moveTo(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix);\r\n context.fillRect(startX + 5 * opts.pix, startY + 0.5 * lineHeight - 5 * opts.pix, 10 * opts.pix, 10 * opts.pix);\r\n break;\r\n case 'none':\r\n break;\r\n default:\r\n context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pix);\r\n context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pix, 15 * opts.pix, 10 * opts.pix);\r\n }\r\n context.closePath();\r\n context.fill();\r\n context.stroke();\r\n startX += shapeWidth + shapeRight;\r\n let fontTrans = 0.5 * lineHeight + 0.5 * fontSize - 2;\r\n const legendText = item.legendText ? item.legendText : item.name;\r\n context.beginPath();\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(item.show ? opts.legend.fontColor : opts.legend.hiddenColor);\r\n context.fillText(legendText, startX, startY + fontTrans);\r\n context.closePath();\r\n context.stroke();\r\n if (opts.legend.position == 'top' || opts.legend.position == 'bottom') {\r\n startX += measureText(legendText, fontSize, context) + itemGap;\r\n item.area[2] = startX;\r\n } else {\r\n item.area[2] = startX + measureText(legendText, fontSize, context) + itemGap;;\r\n startX -= shapeWidth + shapeRight;\r\n startY += lineHeight;\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction drawPieDataPoints(series, opts, config, context) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var pieOption = assign({}, {\r\n activeOpacity: 0.5,\r\n activeRadius: 10,\r\n offsetAngle: 0,\r\n labelWidth: 15,\r\n ringWidth: 30,\r\n customRadius: 0,\r\n border: false,\r\n borderWidth: 2,\r\n borderColor: '#FFFFFF',\r\n centerColor: '#FFFFFF',\r\n linearType: 'none',\r\n customColor: [],\r\n }, opts.type == \"pie\" ? opts.extra.pie : opts.extra.ring);\r\n var centerPosition = {\r\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\r\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2\r\n };\r\n if (config.pieChartLinePadding == 0) {\r\n config.pieChartLinePadding = pieOption.activeRadius * opts.pix;\r\n }\r\n\r\n var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);\r\n radius = radius < 10 ? 10 : radius;\r\n if (pieOption.customRadius > 0) {\r\n radius = pieOption.customRadius * opts.pix;\r\n }\r\n series = getPieDataPoints(series, radius, process);\r\n var activeRadius = pieOption.activeRadius * opts.pix;\r\n pieOption.customColor = fillCustomColor(pieOption.linearType, pieOption.customColor, series, config);\r\n series = series.map(function(eachSeries) {\r\n eachSeries._start_ += (pieOption.offsetAngle) * Math.PI / 180;\r\n return eachSeries;\r\n });\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == seriesIndex) {\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(eachSeries.color, pieOption.activeOpacity || 0.5));\r\n context.moveTo(centerPosition.x, centerPosition.y);\r\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_ + activeRadius, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);\r\n context.closePath();\r\n context.fill();\r\n }\r\n }\r\n context.beginPath();\r\n context.setLineWidth(pieOption.borderWidth * opts.pix);\r\n context.lineJoin = \"round\";\r\n context.setStrokeStyle(pieOption.borderColor);\r\n var fillcolor = eachSeries.color;\r\n if (pieOption.linearType == 'custom') {\r\n var grd;\r\n if(context.createCircularGradient){\r\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_)\r\n }else{\r\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0,centerPosition.x, centerPosition.y, eachSeries._radius_)\r\n }\r\n grd.addColorStop(0, hexToRgb(pieOption.customColor[eachSeries.linearIndex], 1))\r\n grd.addColorStop(1, hexToRgb(eachSeries.color, 1))\r\n fillcolor = grd\r\n }\r\n context.setFillStyle(fillcolor);\r\n context.moveTo(centerPosition.x, centerPosition.y);\r\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI);\r\n context.closePath();\r\n context.fill();\r\n if (pieOption.border == true) {\r\n context.stroke();\r\n }\r\n });\r\n if (opts.type === 'ring') {\r\n var innerPieWidth = radius * 0.6;\r\n if (typeof pieOption.ringWidth === 'number' && pieOption.ringWidth > 0) {\r\n innerPieWidth = Math.max(0, radius - pieOption.ringWidth * opts.pix);\r\n }\r\n context.beginPath();\r\n context.setFillStyle(pieOption.centerColor);\r\n context.moveTo(centerPosition.x, centerPosition.y);\r\n context.arc(centerPosition.x, centerPosition.y, innerPieWidth, 0, 2 * Math.PI);\r\n context.closePath();\r\n context.fill();\r\n }\r\n if (opts.dataLabel !== false && process === 1) {\r\n drawPieText(series, opts, config, context, radius, centerPosition);\r\n }\r\n if (process === 1 && opts.type === 'ring') {\r\n drawRingTitle(opts, config, context, centerPosition);\r\n }\r\n return {\r\n center: centerPosition,\r\n radius: radius,\r\n series: series\r\n };\r\n}\r\n\r\nfunction drawRoseDataPoints(series, opts, config, context) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var roseOption = assign({}, {\r\n type: 'area',\r\n activeOpacity: 0.5,\r\n activeRadius: 10,\r\n offsetAngle: 0,\r\n labelWidth: 15,\r\n border: false,\r\n borderWidth: 2,\r\n borderColor: '#FFFFFF',\r\n linearType: 'none',\r\n customColor: [],\r\n }, opts.extra.rose);\r\n if (config.pieChartLinePadding == 0) {\r\n config.pieChartLinePadding = roseOption.activeRadius * opts.pix;\r\n }\r\n var centerPosition = {\r\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\r\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2\r\n };\r\n var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding);\r\n radius = radius < 10 ? 10 : radius;\r\n var minRadius = roseOption.minRadius || radius * 0.5;\r\n series = getRoseDataPoints(series, roseOption.type, minRadius, radius, process);\r\n var activeRadius = roseOption.activeRadius * opts.pix;\r\n roseOption.customColor = fillCustomColor(roseOption.linearType, roseOption.customColor, series, config);\r\n series = series.map(function(eachSeries) {\r\n eachSeries._start_ += (roseOption.offsetAngle || 0) * Math.PI / 180;\r\n return eachSeries;\r\n });\r\n series.forEach(function(eachSeries, seriesIndex) {\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == seriesIndex) {\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(eachSeries.color, roseOption.activeOpacity || 0.5));\r\n context.moveTo(centerPosition.x, centerPosition.y);\r\n context.arc(centerPosition.x, centerPosition.y, activeRadius + eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);\r\n context.closePath();\r\n context.fill();\r\n }\r\n }\r\n context.beginPath();\r\n context.setLineWidth(roseOption.borderWidth * opts.pix);\r\n context.lineJoin = \"round\";\r\n context.setStrokeStyle(roseOption.borderColor);\r\n var fillcolor = eachSeries.color;\r\n if (roseOption.linearType == 'custom') {\r\n var grd;\r\n if(context.createCircularGradient){\r\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, eachSeries._radius_)\r\n }else{\r\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0,centerPosition.x, centerPosition.y, eachSeries._radius_)\r\n }\r\n grd.addColorStop(0, hexToRgb(roseOption.customColor[eachSeries.linearIndex], 1))\r\n grd.addColorStop(1, hexToRgb(eachSeries.color, 1))\r\n fillcolor = grd\r\n }\r\n context.setFillStyle(fillcolor);\r\n context.moveTo(centerPosition.x, centerPosition.y);\r\n context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI);\r\n context.closePath();\r\n context.fill();\r\n if (roseOption.border == true) {\r\n context.stroke();\r\n }\r\n });\r\n\r\n if (opts.dataLabel !== false && process === 1) {\r\n drawPieText(series, opts, config, context, radius, centerPosition);\r\n }\r\n return {\r\n center: centerPosition,\r\n radius: radius,\r\n series: series\r\n };\r\n}\r\n\r\nfunction drawArcbarDataPoints(series, opts, config, context) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var arcbarOption = assign({}, {\r\n startAngle: 0.75,\r\n endAngle: 0.25,\r\n type: 'default',\r\n lineCap: 'round',\r\n width: 12 ,\r\n gap: 2 ,\r\n linearType: 'none',\r\n customColor: [],\r\n }, opts.extra.arcbar);\r\n series = getArcbarDataPoints(series, arcbarOption, process);\r\n var centerPosition;\r\n if (arcbarOption.centerX || arcbarOption.centerY) {\r\n centerPosition = {\r\n x: arcbarOption.centerX ? arcbarOption.centerX : opts.width / 2,\r\n y: arcbarOption.centerY ? arcbarOption.centerY : opts.height / 2\r\n };\r\n } else {\r\n centerPosition = {\r\n x: opts.width / 2,\r\n y: opts.height / 2\r\n };\r\n }\r\n var radius;\r\n if (arcbarOption.radius) {\r\n radius = arcbarOption.radius;\r\n } else {\r\n radius = Math.min(centerPosition.x, centerPosition.y);\r\n radius -= 5 * opts.pix;\r\n radius -= arcbarOption.width / 2;\r\n }\r\n radius = radius < 10 ? 10 : radius;\r\n arcbarOption.customColor = fillCustomColor(arcbarOption.linearType, arcbarOption.customColor, series, config);\r\n \r\n for (let i = 0; i < series.length; i++) {\r\n let eachSeries = series[i];\r\n //背景颜色\r\n context.setLineWidth(arcbarOption.width * opts.pix);\r\n context.setStrokeStyle(arcbarOption.backgroundColor || '#E9E9E9');\r\n context.setLineCap(arcbarOption.lineCap);\r\n context.beginPath();\r\n if (arcbarOption.type == 'default') {\r\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, arcbarOption.endAngle * Math.PI, false);\r\n } else {\r\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, 0, 2 * Math.PI, false);\r\n }\r\n context.stroke();\r\n //进度条\r\n var fillColor = eachSeries.color\r\n if(arcbarOption.linearType == 'custom'){\r\n var grd = context.createLinearGradient(centerPosition.x - radius, centerPosition.y, centerPosition.x + radius, centerPosition.y);\r\n grd.addColorStop(1, hexToRgb(arcbarOption.customColor[eachSeries.linearIndex], 1))\r\n grd.addColorStop(0, hexToRgb(eachSeries.color, 1))\r\n fillColor = grd;\r\n }\r\n context.setLineWidth(arcbarOption.width * opts.pix);\r\n context.setStrokeStyle(fillColor);\r\n context.setLineCap(arcbarOption.lineCap);\r\n context.beginPath();\r\n context.arc(centerPosition.x, centerPosition.y, radius - (arcbarOption.width * opts.pix + arcbarOption.gap * opts.pix) * i, arcbarOption.startAngle * Math.PI, eachSeries._proportion_ * Math.PI, false);\r\n context.stroke();\r\n }\r\n drawRingTitle(opts, config, context, centerPosition);\r\n return {\r\n center: centerPosition,\r\n radius: radius,\r\n series: series\r\n };\r\n}\r\n\r\nfunction drawGaugeDataPoints(categories, series, opts, config, context) {\r\n var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;\r\n var gaugeOption = assign({}, {\r\n type: 'default',\r\n startAngle: 0.75,\r\n endAngle: 0.25,\r\n width: 15,\r\n labelOffset:13,\r\n splitLine: {\r\n fixRadius: 0,\r\n splitNumber: 10,\r\n width: 15,\r\n color: '#FFFFFF',\r\n childNumber: 5,\r\n childWidth: 5\r\n },\r\n pointer: {\r\n width: 15,\r\n color: 'auto'\r\n }\r\n }, opts.extra.gauge);\r\n if (gaugeOption.oldAngle == undefined) {\r\n gaugeOption.oldAngle = gaugeOption.startAngle;\r\n }\r\n if (gaugeOption.oldData == undefined) {\r\n gaugeOption.oldData = 0;\r\n }\r\n categories = getGaugeAxisPoints(categories, gaugeOption.startAngle, gaugeOption.endAngle);\r\n var centerPosition = {\r\n x: opts.width / 2,\r\n y: opts.height / 2\r\n };\r\n var radius = Math.min(centerPosition.x, centerPosition.y);\r\n radius -= 5 * opts.pix;\r\n radius -= gaugeOption.width / 2;\r\n radius = radius < 10 ? 10 : radius;\r\n var innerRadius = radius - gaugeOption.width;\r\n var totalAngle = 0;\r\n //判断仪表盘的样式:default百度样式,progress新样式\r\n if (gaugeOption.type == 'progress') {\r\n //## 第一步画中心圆形背景和进度条背景\r\n //中心圆形背景\r\n var pieRadius = radius - gaugeOption.width * 3;\r\n context.beginPath();\r\n let gradient = context.createLinearGradient(centerPosition.x, centerPosition.y - pieRadius, centerPosition.x, centerPosition.y + pieRadius);\r\n //配置渐变填充(起点:中心点向上减半径;结束点中心点向下加半径)\r\n gradient.addColorStop('0', hexToRgb(series[0].color, 0.3));\r\n gradient.addColorStop('1.0', hexToRgb(\"#FFFFFF\", 0.1));\r\n context.setFillStyle(gradient);\r\n context.arc(centerPosition.x, centerPosition.y, pieRadius, 0, 2 * Math.PI, false);\r\n context.fill();\r\n //画进度条背景\r\n context.setLineWidth(gaugeOption.width);\r\n context.setStrokeStyle(hexToRgb(series[0].color, 0.3));\r\n context.setLineCap('round');\r\n context.beginPath();\r\n context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, gaugeOption.endAngle * Math.PI, false);\r\n context.stroke();\r\n //## 第二步画刻度线\r\n totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\r\n let splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\r\n let childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;\r\n let startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;\r\n let endX = -radius - gaugeOption.width - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;\r\n context.save();\r\n context.translate(centerPosition.x, centerPosition.y);\r\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\r\n let len = gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1;\r\n let proc = series[0].data * process;\r\n for (let i = 0; i < len; i++) {\r\n context.beginPath();\r\n //刻度线随进度变色\r\n if (proc > (i / len)) {\r\n context.setStrokeStyle(hexToRgb(series[0].color, 1));\r\n } else {\r\n context.setStrokeStyle(hexToRgb(series[0].color, 0.3));\r\n }\r\n context.setLineWidth(3 * opts.pix);\r\n context.moveTo(startX, 0);\r\n context.lineTo(endX, 0);\r\n context.stroke();\r\n context.rotate(childAngle * Math.PI);\r\n }\r\n context.restore();\r\n //## 第三步画进度条\r\n series = getGaugeArcbarDataPoints(series, gaugeOption, process);\r\n context.setLineWidth(gaugeOption.width);\r\n context.setStrokeStyle(series[0].color);\r\n context.setLineCap('round');\r\n context.beginPath();\r\n context.arc(centerPosition.x, centerPosition.y, innerRadius, gaugeOption.startAngle * Math.PI, series[0]._proportion_ * Math.PI, false);\r\n context.stroke();\r\n //## 第四步画指针\r\n let pointerRadius = radius - gaugeOption.width * 2.5;\r\n context.save();\r\n context.translate(centerPosition.x, centerPosition.y);\r\n context.rotate((series[0]._proportion_ - 1) * Math.PI);\r\n context.beginPath();\r\n context.setLineWidth(gaugeOption.width / 3);\r\n let gradient3 = context.createLinearGradient(0, -pointerRadius * 0.6, 0, pointerRadius * 0.6);\r\n gradient3.addColorStop('0', hexToRgb('#FFFFFF', 0));\r\n gradient3.addColorStop('0.5', hexToRgb(series[0].color, 1));\r\n gradient3.addColorStop('1.0', hexToRgb('#FFFFFF', 0));\r\n context.setStrokeStyle(gradient3);\r\n context.arc(0, 0, pointerRadius, 0.85 * Math.PI, 1.15 * Math.PI, false);\r\n context.stroke();\r\n context.beginPath();\r\n context.setLineWidth(1);\r\n context.setStrokeStyle(series[0].color);\r\n context.setFillStyle(series[0].color);\r\n context.moveTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);\r\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2 - 4, 0);\r\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, 4);\r\n context.lineTo(-pointerRadius - gaugeOption.width / 3 / 2, -4);\r\n context.stroke();\r\n context.fill();\r\n context.restore();\r\n //default百度样式\r\n } else {\r\n //画背景\r\n context.setLineWidth(gaugeOption.width);\r\n context.setLineCap('butt');\r\n for (let i = 0; i < categories.length; i++) {\r\n let eachCategories = categories[i];\r\n context.beginPath();\r\n context.setStrokeStyle(eachCategories.color);\r\n context.arc(centerPosition.x, centerPosition.y, radius, eachCategories._startAngle_ * Math.PI, eachCategories._endAngle_ * Math.PI, false);\r\n context.stroke();\r\n }\r\n context.save();\r\n //画刻度线\r\n totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1;\r\n let splitAngle = totalAngle / gaugeOption.splitLine.splitNumber;\r\n let childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber;\r\n let startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius;\r\n let endX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width;\r\n let childendX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.childWidth;\r\n context.translate(centerPosition.x, centerPosition.y);\r\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\r\n for (let i = 0; i < gaugeOption.splitLine.splitNumber + 1; i++) {\r\n context.beginPath();\r\n context.setStrokeStyle(gaugeOption.splitLine.color);\r\n context.setLineWidth(2 * opts.pix);\r\n context.moveTo(startX, 0);\r\n context.lineTo(endX, 0);\r\n context.stroke();\r\n context.rotate(splitAngle * Math.PI);\r\n }\r\n context.restore();\r\n context.save();\r\n context.translate(centerPosition.x, centerPosition.y);\r\n context.rotate((gaugeOption.startAngle - 1) * Math.PI);\r\n for (let i = 0; i < gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1; i++) {\r\n context.beginPath();\r\n context.setStrokeStyle(gaugeOption.splitLine.color);\r\n context.setLineWidth(1 * opts.pix);\r\n context.moveTo(startX, 0);\r\n context.lineTo(childendX, 0);\r\n context.stroke();\r\n context.rotate(childAngle * Math.PI);\r\n }\r\n context.restore();\r\n //画指针\r\n series = getGaugeDataPoints(series, categories, gaugeOption, process);\r\n for (let i = 0; i < series.length; i++) {\r\n let eachSeries = series[i];\r\n context.save();\r\n context.translate(centerPosition.x, centerPosition.y);\r\n context.rotate((eachSeries._proportion_ - 1) * Math.PI);\r\n context.beginPath();\r\n context.setFillStyle(eachSeries.color);\r\n context.moveTo(gaugeOption.pointer.width, 0);\r\n context.lineTo(0, -gaugeOption.pointer.width / 2);\r\n context.lineTo(-innerRadius, 0);\r\n context.lineTo(0, gaugeOption.pointer.width / 2);\r\n context.lineTo(gaugeOption.pointer.width, 0);\r\n context.closePath();\r\n context.fill();\r\n context.beginPath();\r\n context.setFillStyle('#FFFFFF');\r\n context.arc(0, 0, gaugeOption.pointer.width / 6, 0, 2 * Math.PI, false);\r\n context.fill();\r\n context.restore();\r\n }\r\n if (opts.dataLabel !== false) {\r\n drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context);\r\n }\r\n }\r\n //画仪表盘标题,副标题\r\n drawRingTitle(opts, config, context, centerPosition);\r\n if (process === 1 && opts.type === 'gauge') {\r\n opts.extra.gauge.oldAngle = series[0]._proportion_;\r\n opts.extra.gauge.oldData = series[0].data;\r\n }\r\n return {\r\n center: centerPosition,\r\n radius: radius,\r\n innerRadius: innerRadius,\r\n categories: categories,\r\n totalAngle: totalAngle\r\n };\r\n}\r\n\r\nfunction drawRadarDataPoints(series, opts, config, context) {\r\n var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n var radarOption = assign({}, {\r\n gridColor: '#cccccc',\r\n gridType: 'radar',\r\n gridEval:1,\r\n axisLabel:false,\r\n axisLabelTofix:0,\r\n labelColor:'#666666',\r\n labelPointShow:false,\r\n labelPointRadius:3,\r\n labelPointColor:'#cccccc',\r\n opacity: 0.2,\r\n gridCount: 3,\r\n border:false,\r\n borderWidth:2,\r\n linearType: 'none',\r\n customColor: [],\r\n }, opts.extra.radar);\r\n var coordinateAngle = getRadarCoordinateSeries(opts.categories.length);\r\n var centerPosition = {\r\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\r\n y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2\r\n };\r\n var xr = (opts.width - opts.area[1] - opts.area[3]) / 2\r\n var yr = (opts.height - opts.area[0] - opts.area[2]) / 2\r\n var radius = Math.min(xr - (getMaxTextListLength(opts.categories, config.fontSize, context) + config.radarLabelTextMargin), yr - config.radarLabelTextMargin);\r\n radius -= config.radarLabelTextMargin * opts.pix;\r\n radius = radius < 10 ? 10 : radius;\r\n // 画分割线\r\n context.beginPath();\r\n context.setLineWidth(1 * opts.pix);\r\n context.setStrokeStyle(radarOption.gridColor);\r\n coordinateAngle.forEach(function(angle,index) {\r\n var pos = convertCoordinateOrigin(radius * Math.cos(angle), radius * Math.sin(angle), centerPosition);\r\n context.moveTo(centerPosition.x, centerPosition.y);\r\n if (index % radarOption.gridEval == 0) {\r\n context.lineTo(pos.x, pos.y);\r\n }\r\n });\r\n context.stroke();\r\n context.closePath();\r\n \r\n // 画背景网格\r\n var _loop = function _loop(i) {\r\n var startPos = {};\r\n context.beginPath();\r\n context.setLineWidth(1 * opts.pix);\r\n context.setStrokeStyle(radarOption.gridColor);\r\n if (radarOption.gridType == 'radar') {\r\n coordinateAngle.forEach(function(angle, index) {\r\n var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(angle), radius /\r\n radarOption.gridCount * i * Math.sin(angle), centerPosition);\r\n if (index === 0) {\r\n startPos = pos;\r\n context.moveTo(pos.x, pos.y);\r\n } else {\r\n context.lineTo(pos.x, pos.y);\r\n }\r\n });\r\n context.lineTo(startPos.x, startPos.y);\r\n } else {\r\n var pos = convertCoordinateOrigin(radius / radarOption.gridCount * i * Math.cos(1.5), radius / radarOption.gridCount * i * Math.sin(1.5), centerPosition);\r\n context.arc(centerPosition.x, centerPosition.y, centerPosition.y - pos.y, 0, 2 * Math.PI, false);\r\n }\r\n context.stroke();\r\n context.closePath();\r\n };\r\n for (var i = 1; i <= radarOption.gridCount; i++) {\r\n _loop(i);\r\n }\r\n radarOption.customColor = fillCustomColor(radarOption.linearType, radarOption.customColor, series, config);\r\n var radarDataPoints = getRadarDataPoints(coordinateAngle, centerPosition, radius, series, opts, process);\r\n radarDataPoints.forEach(function(eachSeries, seriesIndex) {\r\n // 绘制区域数据\r\n context.beginPath();\r\n context.setLineWidth(radarOption.borderWidth * opts.pix);\r\n context.setStrokeStyle(eachSeries.color);\r\n \r\n var fillcolor = hexToRgb(eachSeries.color, radarOption.opacity);\r\n if (radarOption.linearType == 'custom') {\r\n var grd;\r\n if(context.createCircularGradient){\r\n grd = context.createCircularGradient(centerPosition.x, centerPosition.y, radius)\r\n }else{\r\n grd = context.createRadialGradient(centerPosition.x, centerPosition.y, 0,centerPosition.x, centerPosition.y, radius)\r\n }\r\n grd.addColorStop(0, hexToRgb(radarOption.customColor[series[seriesIndex].linearIndex], radarOption.opacity))\r\n grd.addColorStop(1, hexToRgb(eachSeries.color, radarOption.opacity))\r\n fillcolor = grd\r\n }\r\n \r\n context.setFillStyle(fillcolor);\r\n eachSeries.data.forEach(function(item, index) {\r\n if (index === 0) {\r\n context.moveTo(item.position.x, item.position.y);\r\n } else {\r\n context.lineTo(item.position.x, item.position.y);\r\n }\r\n });\r\n context.closePath();\r\n context.fill();\r\n if(radarOption.border === true){\r\n context.stroke();\r\n }\r\n context.closePath();\r\n if (opts.dataPointShape !== false) {\r\n var points = eachSeries.data.map(function(item) {\r\n return item.position;\r\n });\r\n drawPointShape(points, eachSeries.color, eachSeries.pointShape, context, opts);\r\n }\r\n });\r\n // 画刻度值\r\n if(radarOption.axisLabel === true){\r\n const maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series)));\r\n const stepLength = radius / radarOption.gridCount;\r\n const fontSize = opts.fontSize * opts.pix;\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(opts.fontColor);\r\n context.setTextAlign('left');\r\n for (var i = 0; i < radarOption.gridCount + 1; i++) {\r\n let label = i * maxData / radarOption.gridCount;\r\n label = label.toFixed(radarOption.axisLabelTofix);\r\n context.fillText(String(label), centerPosition.x + 3 * opts.pix, centerPosition.y - i * stepLength + fontSize / 2);\r\n }\r\n }\r\n \r\n // draw label text\r\n drawRadarLabel(coordinateAngle, radius, centerPosition, opts, config, context);\r\n \r\n // draw dataLabel\r\n if (opts.dataLabel !== false && process === 1) {\r\n radarDataPoints.forEach(function(eachSeries, seriesIndex) {\r\n context.beginPath();\r\n var fontSize = eachSeries.textSize * opts.pix || config.fontSize;\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(eachSeries.textColor || opts.fontColor);\r\n eachSeries.data.forEach(function(item, index) {\r\n //如果是中心点垂直的上下点位\r\n if(Math.abs(item.position.x - centerPosition.x)<2){\r\n //如果在上面\r\n if(item.position.y < centerPosition.y){\r\n context.setTextAlign('center');\r\n context.fillText(item.value, item.position.x, item.position.y - 4);\r\n }else{\r\n context.setTextAlign('center');\r\n context.fillText(item.value, item.position.x, item.position.y + fontSize + 2);\r\n }\r\n }else{\r\n //如果在左侧\r\n if(item.position.x < centerPosition.x){\r\n context.setTextAlign('right');\r\n context.fillText(item.value, item.position.x - 4, item.position.y + fontSize / 2 - 2);\r\n }else{\r\n context.setTextAlign('left');\r\n context.fillText(item.value, item.position.x + 4, item.position.y + fontSize / 2 - 2);\r\n }\r\n }\r\n });\r\n context.closePath();\r\n context.stroke();\r\n });\r\n context.setTextAlign('left');\r\n }\r\n \r\n return {\r\n center: centerPosition,\r\n radius: radius,\r\n angleList: coordinateAngle\r\n };\r\n}\r\n\r\n// 经纬度转墨卡托\r\nfunction lonlat2mercator(longitude, latitude) {\r\n var mercator = Array(2);\r\n var x = longitude * 20037508.34 / 180;\r\n var y = Math.log(Math.tan((90 + latitude) * Math.PI / 360)) / (Math.PI / 180);\r\n y = y * 20037508.34 / 180;\r\n mercator[0] = x;\r\n mercator[1] = y;\r\n return mercator;\r\n}\r\n\r\n// 墨卡托转经纬度\r\nfunction mercator2lonlat(longitude, latitude) {\r\n var lonlat = Array(2)\r\n var x = longitude / 20037508.34 * 180;\r\n var y = latitude / 20037508.34 * 180;\r\n y = 180 / Math.PI * (2 * Math.atan(Math.exp(y * Math.PI / 180)) - Math.PI / 2);\r\n lonlat[0] = x;\r\n lonlat[1] = y;\r\n return lonlat;\r\n}\r\n\r\nfunction getBoundingBox(data) {\r\n var bounds = {},coords;\r\n bounds.xMin = 180;\r\n bounds.xMax = 0;\r\n bounds.yMin = 90;\r\n bounds.yMax = 0\r\n for (var i = 0; i < data.length; i++) {\r\n var coorda = data[i].geometry.coordinates\r\n for (var k = 0; k < coorda.length; k++) {\r\n coords = coorda[k];\r\n if (coords.length == 1) {\r\n coords = coords[0]\r\n }\r\n for (var j = 0; j < coords.length; j++) {\r\n var longitude = coords[j][0];\r\n var latitude = coords[j][1];\r\n var point = {\r\n x: longitude,\r\n y: latitude\r\n }\r\n bounds.xMin = bounds.xMin < point.x ? bounds.xMin : point.x;\r\n bounds.xMax = bounds.xMax > point.x ? bounds.xMax : point.x;\r\n bounds.yMin = bounds.yMin < point.y ? bounds.yMin : point.y;\r\n bounds.yMax = bounds.yMax > point.y ? bounds.yMax : point.y;\r\n }\r\n }\r\n }\r\n return bounds;\r\n}\r\n\r\nfunction coordinateToPoint(latitude, longitude, bounds, scale, xoffset, yoffset) {\r\n return {\r\n x: (longitude - bounds.xMin) * scale + xoffset,\r\n y: (bounds.yMax - latitude) * scale + yoffset\r\n };\r\n}\r\n\r\nfunction pointToCoordinate(pointY, pointX, bounds, scale, xoffset, yoffset) {\r\n return {\r\n x: (pointX - xoffset) / scale + bounds.xMin,\r\n y: bounds.yMax - (pointY - yoffset) / scale\r\n };\r\n}\r\n\r\nfunction isRayIntersectsSegment(poi, s_poi, e_poi) {\r\n if (s_poi[1] == e_poi[1]) {\r\n return false;\r\n }\r\n if (s_poi[1] > poi[1] && e_poi[1] > poi[1]) {\r\n return false;\r\n }\r\n if (s_poi[1] < poi[1] && e_poi[1] < poi[1]) {\r\n return false;\r\n }\r\n if (s_poi[1] == poi[1] && e_poi[1] > poi[1]) {\r\n return false;\r\n }\r\n if (e_poi[1] == poi[1] && s_poi[1] > poi[1]) {\r\n return false;\r\n }\r\n if (s_poi[0] < poi[0] && e_poi[1] < poi[1]) {\r\n return false;\r\n }\r\n let xseg = e_poi[0] - (e_poi[0] - s_poi[0]) * (e_poi[1] - poi[1]) / (e_poi[1] - s_poi[1]);\r\n if (xseg < poi[0]) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n}\r\n\r\nfunction isPoiWithinPoly(poi, poly, mercator) {\r\n let sinsc = 0;\r\n for (let i = 0; i < poly.length; i++) {\r\n let epoly = poly[i][0];\r\n if (poly.length == 1) {\r\n epoly = poly[i][0]\r\n }\r\n for (let j = 0; j < epoly.length - 1; j++) {\r\n let s_poi = epoly[j];\r\n let e_poi = epoly[j + 1];\r\n if (mercator) {\r\n s_poi = lonlat2mercator(epoly[j][0], epoly[j][1]);\r\n e_poi = lonlat2mercator(epoly[j + 1][0], epoly[j + 1][1]);\r\n }\r\n if (isRayIntersectsSegment(poi, s_poi, e_poi)) {\r\n sinsc += 1;\r\n }\r\n }\r\n }\r\n if (sinsc % 2 == 1) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nfunction drawMapDataPoints(series, opts, config, context) {\r\n var mapOption = assign({}, {\r\n border: true,\r\n mercator: false,\r\n borderWidth: 1,\r\n borderColor: '#666666',\r\n fillOpacity: 0.6,\r\n activeBorderColor: '#f04864',\r\n activeFillColor: '#facc14',\r\n activeFillOpacity: 1\r\n }, opts.extra.map);\r\n var coords, point;\r\n var data = series;\r\n var bounds = getBoundingBox(data);\r\n if (mapOption.mercator) {\r\n var max = lonlat2mercator(bounds.xMax, bounds.yMax)\r\n var min = lonlat2mercator(bounds.xMin, bounds.yMin)\r\n bounds.xMax = max[0]\r\n bounds.yMax = max[1]\r\n bounds.xMin = min[0]\r\n bounds.yMin = min[1]\r\n }\r\n var xScale = opts.width / Math.abs(bounds.xMax - bounds.xMin);\r\n var yScale = opts.height / Math.abs(bounds.yMax - bounds.yMin);\r\n var scale = xScale < yScale ? xScale : yScale;\r\n var xoffset = opts.width / 2 - Math.abs(bounds.xMax - bounds.xMin) / 2 * scale;\r\n var yoffset = opts.height / 2 - Math.abs(bounds.yMax - bounds.yMin) / 2 * scale;\r\n for (var i = 0; i < data.length; i++) {\r\n context.beginPath();\r\n context.setLineWidth(mapOption.borderWidth * opts.pix);\r\n context.setStrokeStyle(mapOption.borderColor);\r\n context.setFillStyle(hexToRgb(series[i].color, mapOption.fillOpacity));\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == i) {\r\n context.setStrokeStyle(mapOption.activeBorderColor);\r\n context.setFillStyle(hexToRgb(mapOption.activeFillColor, mapOption.activeFillOpacity));\r\n }\r\n }\r\n var coorda = data[i].geometry.coordinates\r\n for (var k = 0; k < coorda.length; k++) {\r\n coords = coorda[k];\r\n if (coords.length == 1) {\r\n coords = coords[0]\r\n }\r\n for (var j = 0; j < coords.length; j++) {\r\n var gaosi = Array(2);\r\n if (mapOption.mercator) {\r\n gaosi = lonlat2mercator(coords[j][0], coords[j][1])\r\n } else {\r\n gaosi = coords[j]\r\n }\r\n point = coordinateToPoint(gaosi[1], gaosi[0], bounds, scale, xoffset, yoffset)\r\n if (j === 0) {\r\n context.beginPath();\r\n context.moveTo(point.x, point.y);\r\n } else {\r\n context.lineTo(point.x, point.y);\r\n }\r\n }\r\n context.fill();\r\n if (mapOption.border == true) {\r\n context.stroke();\r\n }\r\n }\r\n }\r\n if (opts.dataLabel == true) {\r\n for (var i = 0; i < data.length; i++) {\r\n var centerPoint = data[i].properties.centroid;\r\n if (centerPoint) {\r\n if (mapOption.mercator) {\r\n centerPoint = lonlat2mercator(data[i].properties.centroid[0], data[i].properties.centroid[1])\r\n }\r\n point = coordinateToPoint(centerPoint[1], centerPoint[0], bounds, scale, xoffset, yoffset);\r\n let fontSize = data[i].textSize * opts.pix || config.fontSize;\r\n let text = data[i].properties.name;\r\n context.beginPath();\r\n context.setFontSize(fontSize)\r\n context.setFillStyle(data[i].textColor || opts.fontColor)\r\n context.fillText(text, point.x - measureText(text, fontSize, context) / 2, point.y + fontSize / 2);\r\n context.closePath();\r\n context.stroke();\r\n }\r\n }\r\n }\r\n opts.chartData.mapData = {\r\n bounds: bounds,\r\n scale: scale,\r\n xoffset: xoffset,\r\n yoffset: yoffset,\r\n mercator: mapOption.mercator\r\n }\r\n drawToolTipBridge(opts, config, context, 1);\r\n context.draw();\r\n}\r\n\r\nfunction normalInt(min, max, iter) {\r\n iter = iter == 0 ? 1 : iter;\r\n var arr = [];\r\n for (var i = 0; i < iter; i++) {\r\n arr[i] = Math.random();\r\n };\r\n return Math.floor(arr.reduce(function(i, j) {\r\n return i + j\r\n }) / iter * (max - min)) + min;\r\n};\r\n\r\nfunction collisionNew(area, points, width, height) {\r\n var isIn = false;\r\n for (let i = 0; i < points.length; i++) {\r\n if (points[i].area) {\r\n if (area[3] < points[i].area[1] || area[0] > points[i].area[2] || area[1] > points[i].area[3] || area[2] < points[i].area[0]) {\r\n if (area[0] < 0 || area[1] < 0 || area[2] > width || area[3] > height) {\r\n isIn = true;\r\n break;\r\n } else {\r\n isIn = false;\r\n }\r\n } else {\r\n isIn = true;\r\n break;\r\n }\r\n }\r\n }\r\n return isIn;\r\n};\r\n\r\nfunction getWordCloudPoint(opts, type, context) {\r\n let points = opts.series;\r\n switch (type) {\r\n case 'normal':\r\n for (let i = 0; i < points.length; i++) {\r\n let text = points[i].name;\r\n let tHeight = points[i].textSize * opts.pix;\r\n let tWidth = measureText(text, tHeight, context);\r\n let x, y;\r\n let area;\r\n let breaknum = 0;\r\n while (true) {\r\n breaknum++;\r\n x = normalInt(-opts.width / 2, opts.width / 2, 5) - tWidth / 2;\r\n y = normalInt(-opts.height / 2, opts.height / 2, 5) + tHeight / 2;\r\n area = [x - 5 + opts.width / 2, y - 5 - tHeight + opts.height / 2, x + tWidth + 5 + opts.width / 2, y + 5 +\r\n opts.height / 2\r\n ];\r\n let isCollision = collisionNew(area, points, opts.width, opts.height);\r\n if (!isCollision) break;\r\n if (breaknum == 1000) {\r\n area = [-100, -100, -100, -100];\r\n break;\r\n }\r\n };\r\n points[i].area = area;\r\n }\r\n break;\r\n case 'vertical':\r\n function Spin() {\r\n //获取均匀随机值,是否旋转,旋转的概率为(1-0.5)\r\n if (Math.random() > 0.7) {\r\n return true;\r\n } else {\r\n return false\r\n };\r\n };\r\n for (let i = 0; i < points.length; i++) {\r\n let text = points[i].name;\r\n let tHeight = points[i].textSize * opts.pix;\r\n let tWidth = measureText(text, tHeight, context);\r\n let isSpin = Spin();\r\n let x, y, area, areav;\r\n let breaknum = 0;\r\n while (true) {\r\n breaknum++;\r\n let isCollision;\r\n if (isSpin) {\r\n x = normalInt(-opts.width / 2, opts.width / 2, 5) - tWidth / 2;\r\n y = normalInt(-opts.height / 2, opts.height / 2, 5) + tHeight / 2;\r\n area = [y - 5 - tWidth + opts.width / 2, (-x - 5 + opts.height / 2), y + 5 + opts.width / 2, (-x + tHeight + 5 + opts.height / 2)];\r\n areav = [opts.width - (opts.width / 2 - opts.height / 2) - (-x + tHeight + 5 + opts.height / 2) - 5, (opts.height / 2 - opts.width / 2) + (y - 5 - tWidth + opts.width / 2) - 5, opts.width - (opts.width / 2 - opts.height / 2) - (-x + tHeight + 5 + opts.height / 2) + tHeight, (opts.height / 2 - opts.width / 2) + (y - 5 - tWidth + opts.width / 2) + tWidth + 5];\r\n isCollision = collisionNew(areav, points, opts.height, opts.width);\r\n } else {\r\n x = normalInt(-opts.width / 2, opts.width / 2, 5) - tWidth / 2;\r\n y = normalInt(-opts.height / 2, opts.height / 2, 5) + tHeight / 2;\r\n area = [x - 5 + opts.width / 2, y - 5 - tHeight + opts.height / 2, x + tWidth + 5 + opts.width / 2, y + 5 + opts.height / 2];\r\n isCollision = collisionNew(area, points, opts.width, opts.height);\r\n }\r\n if (!isCollision) break;\r\n if (breaknum == 1000) {\r\n area = [-1000, -1000, -1000, -1000];\r\n break;\r\n }\r\n };\r\n if (isSpin) {\r\n points[i].area = areav;\r\n points[i].areav = area;\r\n } else {\r\n points[i].area = area;\r\n }\r\n points[i].rotate = isSpin;\r\n };\r\n break;\r\n }\r\n return points;\r\n}\r\n\r\nfunction drawWordCloudDataPoints(series, opts, config, context) {\r\n let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n let wordOption = assign({}, {\r\n type: 'normal',\r\n autoColors: true\r\n }, opts.extra.word);\r\n if (!opts.chartData.wordCloudData) {\r\n opts.chartData.wordCloudData = getWordCloudPoint(opts, wordOption.type, context);\r\n }\r\n context.beginPath();\r\n context.setFillStyle(opts.background);\r\n context.rect(0, 0, opts.width, opts.height);\r\n context.fill();\r\n context.save();\r\n let points = opts.chartData.wordCloudData;\r\n context.translate(opts.width / 2, opts.height / 2);\r\n for (let i = 0; i < points.length; i++) {\r\n context.save();\r\n if (points[i].rotate) {\r\n context.rotate(90 * Math.PI / 180);\r\n }\r\n let text = points[i].name;\r\n let tHeight = points[i].textSize * opts.pix;\r\n let tWidth = measureText(text, tHeight, context);\r\n context.beginPath();\r\n context.setStrokeStyle(points[i].color);\r\n context.setFillStyle(points[i].color);\r\n context.setFontSize(tHeight);\r\n if (points[i].rotate) {\r\n if (points[i].areav[0] > 0) {\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == i) {\r\n context.strokeText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\r\n } else {\r\n context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\r\n }\r\n } else {\r\n context.fillText(text, (points[i].areav[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].areav[1] + 5 + tHeight - opts.height / 2) * process);\r\n }\r\n }\r\n } else {\r\n if (points[i].area[0] > 0) {\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == i) {\r\n context.strokeText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\r\n } else {\r\n context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\r\n }\r\n } else {\r\n context.fillText(text, (points[i].area[0] + 5 - opts.width / 2) * process - tWidth * (1 - process) / 2, (points[i].area[1] + 5 + tHeight - opts.height / 2) * process);\r\n }\r\n }\r\n }\r\n context.stroke();\r\n context.restore();\r\n }\r\n context.restore();\r\n}\r\n\r\nfunction drawFunnelDataPoints(series, opts, config, context) {\r\n let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\r\n let funnelOption = assign({}, {\r\n type:'funnel',\r\n activeWidth: 10,\r\n activeOpacity: 0.3,\r\n border: false,\r\n borderWidth: 2,\r\n borderColor: '#FFFFFF',\r\n fillOpacity: 1,\r\n labelAlign: 'right',\r\n linearType: 'none',\r\n customColor: [],\r\n }, opts.extra.funnel);\r\n let eachSpacing = (opts.height - opts.area[0] - opts.area[2]) / series.length;\r\n let centerPosition = {\r\n x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2,\r\n y: opts.height - opts.area[2]\r\n };\r\n let activeWidth = funnelOption.activeWidth * opts.pix;\r\n let radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - activeWidth, (opts.height - opts.area[0] - opts.area[2]) / 2 - activeWidth);\r\n series = getFunnelDataPoints(series, radius, funnelOption.type, eachSpacing, process);\r\n context.save();\r\n context.translate(centerPosition.x, centerPosition.y);\r\n funnelOption.customColor = fillCustomColor(funnelOption.linearType, funnelOption.customColor, series, config);\r\n if(funnelOption.type == 'pyramid'){\r\n for (let i = 0; i < series.length; i++) {\r\n if (i == series.length -1) {\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == i) {\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(series[i].color, funnelOption.activeOpacity));\r\n context.moveTo(-activeWidth, -eachSpacing);\r\n context.lineTo(-series[i].radius - activeWidth, 0);\r\n context.lineTo(series[i].radius + activeWidth, 0);\r\n context.lineTo(activeWidth, -eachSpacing);\r\n context.lineTo(-activeWidth, -eachSpacing);\r\n context.closePath();\r\n context.fill();\r\n }\r\n }\r\n series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + series[i].radius, centerPosition.y - eachSpacing * i];\r\n context.beginPath();\r\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\r\n context.setStrokeStyle(funnelOption.borderColor);\r\n var fillColor = hexToRgb(series[i].color, funnelOption.fillOpacity);\r\n if (funnelOption.linearType == 'custom') {\r\n var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);\r\n grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));\r\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));\r\n grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));\r\n fillColor = grd\r\n }\r\n context.setFillStyle(fillColor);\r\n context.moveTo(0, -eachSpacing);\r\n context.lineTo(-series[i].radius, 0);\r\n context.lineTo(series[i].radius, 0);\r\n context.lineTo(0, -eachSpacing);\r\n context.closePath();\r\n context.fill();\r\n if (funnelOption.border == true) {\r\n context.stroke();\r\n }\r\n } else {\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == i) {\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(series[i].color, funnelOption.activeOpacity));\r\n context.moveTo(0, 0);\r\n context.lineTo(-series[i].radius - activeWidth, 0);\r\n context.lineTo(-series[i + 1].radius - activeWidth, -eachSpacing);\r\n context.lineTo(series[i + 1].radius + activeWidth, -eachSpacing);\r\n context.lineTo(series[i].radius + activeWidth, 0);\r\n context.lineTo(0, 0);\r\n context.closePath();\r\n context.fill();\r\n }\r\n }\r\n series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + series[i].radius, centerPosition.y - eachSpacing * i];\r\n context.beginPath();\r\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\r\n context.setStrokeStyle(funnelOption.borderColor);\r\n var fillColor = hexToRgb(series[i].color, funnelOption.fillOpacity);\r\n if (funnelOption.linearType == 'custom') {\r\n var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);\r\n grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));\r\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));\r\n grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));\r\n fillColor = grd\r\n }\r\n context.setFillStyle(fillColor);\r\n context.moveTo(0, 0);\r\n context.lineTo(-series[i].radius, 0);\r\n context.lineTo(-series[i + 1].radius, -eachSpacing);\r\n context.lineTo(series[i + 1].radius, -eachSpacing);\r\n context.lineTo(series[i].radius, 0);\r\n context.lineTo(0, 0);\r\n context.closePath();\r\n context.fill();\r\n if (funnelOption.border == true) {\r\n context.stroke();\r\n }\r\n }\r\n context.translate(0, -eachSpacing)\r\n }\r\n }else{\r\n for (let i = 0; i < series.length; i++) {\r\n if (i == 0) {\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == i) {\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(series[i].color, funnelOption.activeOpacity));\r\n context.moveTo(-activeWidth, 0);\r\n context.lineTo(-series[i].radius - activeWidth, -eachSpacing);\r\n context.lineTo(series[i].radius + activeWidth, -eachSpacing);\r\n context.lineTo(activeWidth, 0);\r\n context.lineTo(-activeWidth, 0);\r\n context.closePath();\r\n context.fill();\r\n }\r\n }\r\n series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing, centerPosition.x + series[i].radius, centerPosition.y];\r\n context.beginPath();\r\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\r\n context.setStrokeStyle(funnelOption.borderColor);\r\n var fillColor = hexToRgb(series[i].color, funnelOption.fillOpacity);\r\n if (funnelOption.linearType == 'custom') {\r\n var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);\r\n grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));\r\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));\r\n grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));\r\n fillColor = grd\r\n }\r\n context.setFillStyle(fillColor);\r\n context.moveTo(0, 0);\r\n context.lineTo(-series[i].radius, -eachSpacing);\r\n context.lineTo(series[i].radius, -eachSpacing);\r\n context.lineTo(0, 0);\r\n context.closePath();\r\n context.fill();\r\n if (funnelOption.border == true) {\r\n context.stroke();\r\n }\r\n } else {\r\n if (opts.tooltip) {\r\n if (opts.tooltip.index == i) {\r\n context.beginPath();\r\n context.setFillStyle(hexToRgb(series[i].color, funnelOption.activeOpacity));\r\n context.moveTo(0, 0);\r\n context.lineTo(-series[i - 1].radius - activeWidth, 0);\r\n context.lineTo(-series[i].radius - activeWidth, -eachSpacing);\r\n context.lineTo(series[i].radius + activeWidth, -eachSpacing);\r\n context.lineTo(series[i - 1].radius + activeWidth, 0);\r\n context.lineTo(0, 0);\r\n context.closePath();\r\n context.fill();\r\n }\r\n }\r\n series[i].funnelArea = [centerPosition.x - series[i].radius, centerPosition.y - eachSpacing * (i + 1), centerPosition.x + series[i].radius, centerPosition.y - eachSpacing * i];\r\n context.beginPath();\r\n context.setLineWidth(funnelOption.borderWidth * opts.pix);\r\n context.setStrokeStyle(funnelOption.borderColor);\r\n var fillColor = hexToRgb(series[i].color, funnelOption.fillOpacity);\r\n if (funnelOption.linearType == 'custom') {\r\n var grd = context.createLinearGradient(series[i].radius, -eachSpacing, -series[i].radius, -eachSpacing);\r\n grd.addColorStop(0, hexToRgb(series[i].color, funnelOption.fillOpacity));\r\n grd.addColorStop(0.5, hexToRgb(funnelOption.customColor[series[i].linearIndex], funnelOption.fillOpacity));\r\n grd.addColorStop(1, hexToRgb(series[i].color, funnelOption.fillOpacity));\r\n fillColor = grd\r\n }\r\n context.setFillStyle(fillColor);\r\n context.moveTo(0, 0);\r\n context.lineTo(-series[i - 1].radius, 0);\r\n context.lineTo(-series[i].radius, -eachSpacing);\r\n context.lineTo(series[i].radius, -eachSpacing);\r\n context.lineTo(series[i - 1].radius, 0);\r\n context.lineTo(0, 0);\r\n context.closePath();\r\n context.fill();\r\n if (funnelOption.border == true) {\r\n context.stroke();\r\n }\r\n }\r\n context.translate(0, -eachSpacing)\r\n }\r\n }\r\n \r\n context.restore();\r\n if (opts.dataLabel !== false && process === 1) {\r\n drawFunnelText(series, opts, context, eachSpacing, funnelOption.labelAlign, activeWidth, centerPosition);\r\n }\r\n return {\r\n center: centerPosition,\r\n radius: radius,\r\n series: series\r\n };\r\n}\r\n\r\nfunction drawFunnelText(series, opts, context, eachSpacing, labelAlign, activeWidth, centerPosition) {\r\n for (let i = 0; i < series.length; i++) {\r\n let item = series[i];\r\n if(item.labelShow === false){\r\n continue;\r\n }\r\n let startX, endX, startY, fontSize;\r\n let text = item.formatter ? item.formatter(item,i,series,opts) : util.toFixed(item._proportion_ * 100) + '%';\r\n text = item.labelText ? item.labelText : text;\r\n if (labelAlign == 'right') {\r\n if(opts.extra.funnel.type === 'pyramid'){\r\n if (i == series.length -1) {\r\n startX = (item.funnelArea[2] + centerPosition.x) / 2;\r\n } else {\r\n startX = (item.funnelArea[2] + series[i + 1].funnelArea[2]) / 2;\r\n }\r\n }else{\r\n if (i == 0) {\r\n startX = (item.funnelArea[2] + centerPosition.x) / 2;\r\n } else {\r\n startX = (item.funnelArea[2] + series[i - 1].funnelArea[2]) / 2;\r\n }\r\n }\r\n endX = startX + activeWidth * 2;\r\n startY = item.funnelArea[1] + eachSpacing / 2;\r\n fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;\r\n context.setLineWidth(1 * opts.pix);\r\n context.setStrokeStyle(item.color);\r\n context.setFillStyle(item.color);\r\n context.beginPath();\r\n context.moveTo(startX, startY);\r\n context.lineTo(endX, startY);\r\n context.stroke();\r\n context.closePath();\r\n context.beginPath();\r\n context.moveTo(endX, startY);\r\n context.arc(endX, startY, 2 * opts.pix, 0, 2 * Math.PI);\r\n context.closePath();\r\n context.fill();\r\n context.beginPath();\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(item.textColor || opts.fontColor);\r\n context.fillText(text, endX + 5, startY + fontSize / 2 - 2);\r\n context.closePath();\r\n context.stroke();\r\n context.closePath();\r\n } else {\r\n if(opts.extra.funnel.type === 'pyramid'){\r\n if (i == series.length -1) {\r\n startX = (item.funnelArea[0] + centerPosition.x) / 2;\r\n } else {\r\n startX = (item.funnelArea[0] + series[i + 1].funnelArea[0]) / 2;\r\n }\r\n }else{\r\n if (i == 0) {\r\n startX = (item.funnelArea[0] + centerPosition.x) / 2;\r\n } else {\r\n startX = (item.funnelArea[0] + series[i - 1].funnelArea[0]) / 2;\r\n }\r\n }\r\n endX = startX - activeWidth * 2;\r\n startY = item.funnelArea[1] + eachSpacing / 2;\r\n fontSize = item.textSize * opts.pix || opts.fontSize * opts.pix;\r\n context.setLineWidth(1 * opts.pix);\r\n context.setStrokeStyle(item.color);\r\n context.setFillStyle(item.color);\r\n context.beginPath();\r\n context.moveTo(startX, startY);\r\n context.lineTo(endX, startY);\r\n context.stroke();\r\n context.closePath();\r\n context.beginPath();\r\n context.moveTo(endX, startY);\r\n context.arc(endX, startY, 2, 0, 2 * Math.PI);\r\n context.closePath();\r\n context.fill();\r\n context.beginPath();\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(item.textColor || opts.fontColor);\r\n context.fillText(text, endX - 5 - measureText(text, fontSize, context), startY + fontSize / 2 - 2);\r\n context.closePath();\r\n context.stroke();\r\n context.closePath();\r\n }\r\n\r\n }\r\n}\r\n\r\n\r\nfunction drawCanvas(opts, context) {\r\n context.draw();\r\n}\r\n\r\nvar Timing = {\r\n easeIn: function easeIn(pos) {\r\n return Math.pow(pos, 3);\r\n },\r\n easeOut: function easeOut(pos) {\r\n return Math.pow(pos - 1, 3) + 1;\r\n },\r\n easeInOut: function easeInOut(pos) {\r\n if ((pos /= 0.5) < 1) {\r\n return 0.5 * Math.pow(pos, 3);\r\n } else {\r\n return 0.5 * (Math.pow(pos - 2, 3) + 2);\r\n }\r\n },\r\n linear: function linear(pos) {\r\n return pos;\r\n }\r\n};\r\n\r\nfunction Animation(opts) {\r\n this.isStop = false;\r\n opts.duration = typeof opts.duration === 'undefined' ? 1000 : opts.duration;\r\n opts.timing = opts.timing || 'easeInOut';\r\n var delay = 17;\r\n function createAnimationFrame() {\r\n if (typeof setTimeout !== 'undefined') {\r\n return function(step, delay) {\r\n setTimeout(function() {\r\n var timeStamp = +new Date();\r\n step(timeStamp);\r\n }, delay);\r\n };\r\n } else if (typeof requestAnimationFrame !== 'undefined') {\r\n return requestAnimationFrame;\r\n } else {\r\n return function(step) {\r\n step(null);\r\n };\r\n }\r\n };\r\n var animationFrame = createAnimationFrame();\r\n var startTimeStamp = null;\r\n var _step = function step(timestamp) {\r\n if (timestamp === null || this.isStop === true) {\r\n opts.onProcess && opts.onProcess(1);\r\n opts.onAnimationFinish && opts.onAnimationFinish();\r\n return;\r\n }\r\n if (startTimeStamp === null) {\r\n startTimeStamp = timestamp;\r\n }\r\n if (timestamp - startTimeStamp < opts.duration) {\r\n var process = (timestamp - startTimeStamp) / opts.duration;\r\n var timingFunction = Timing[opts.timing];\r\n process = timingFunction(process);\r\n opts.onProcess && opts.onProcess(process);\r\n animationFrame(_step, delay);\r\n } else {\r\n opts.onProcess && opts.onProcess(1);\r\n opts.onAnimationFinish && opts.onAnimationFinish();\r\n }\r\n };\r\n _step = _step.bind(this);\r\n animationFrame(_step, delay);\r\n}\r\n\r\nAnimation.prototype.stop = function() {\r\n this.isStop = true;\r\n};\r\n\r\nfunction drawCharts(type, opts, config, context) {\r\n var _this = this;\r\n var series = opts.series;\r\n //兼容ECharts饼图类数据格式\r\n if (type === 'pie' || type === 'ring' || type === 'mount' || type === 'rose' || type === 'funnel') {\r\n series = fixPieSeries(series, opts, config);\r\n }\r\n var categories = opts.categories;\r\n if (type === 'mount') {\r\n categories = [];\r\n for (let j = 0; j < series.length; j++) {\r\n if(series[j].show !== false) categories.push(series[j].name)\r\n }\r\n opts.categories = categories;\r\n }\r\n series = fillSeries(series, opts, config);\r\n var duration = opts.animation ? opts.duration : 0;\r\n _this.animationInstance && _this.animationInstance.stop();\r\n var seriesMA = null;\r\n if (type == 'candle') {\r\n let average = assign({}, opts.extra.candle.average);\r\n if (average.show) {\r\n seriesMA = calCandleMA(average.day, average.name, average.color, series[0].data);\r\n seriesMA = fillSeries(seriesMA, opts, config);\r\n opts.seriesMA = seriesMA;\r\n } else if (opts.seriesMA) {\r\n seriesMA = opts.seriesMA = fillSeries(opts.seriesMA, opts, config);\r\n } else {\r\n seriesMA = series;\r\n }\r\n } else {\r\n seriesMA = series;\r\n }\r\n /* 过滤掉show=false的series */\r\n opts._series_ = series = filterSeries(series);\r\n //重新计算图表区域\r\n opts.area = new Array(4);\r\n //复位绘图区域\r\n for (let j = 0; j < 4; j++) {\r\n opts.area[j] = opts.padding[j] * opts.pix;\r\n }\r\n //通过计算三大区域:图例、X轴、Y轴的大小,确定绘图区域\r\n var _calLegendData = calLegendData(seriesMA, opts, config, opts.chartData, context),\r\n legendHeight = _calLegendData.area.wholeHeight,\r\n legendWidth = _calLegendData.area.wholeWidth;\r\n\r\n switch (opts.legend.position) {\r\n case 'top':\r\n opts.area[0] += legendHeight;\r\n break;\r\n case 'bottom':\r\n opts.area[2] += legendHeight;\r\n break;\r\n case 'left':\r\n opts.area[3] += legendWidth;\r\n break;\r\n case 'right':\r\n opts.area[1] += legendWidth;\r\n break;\r\n }\r\n\r\n let _calYAxisData = {},\r\n yAxisWidth = 0;\r\n if (opts.type === 'line' || opts.type === 'column'|| opts.type === 'mount' || opts.type === 'area' || opts.type === 'mix' || opts.type === 'candle' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {\r\n _calYAxisData = calYAxisData(series, opts, config, context);\r\n yAxisWidth = _calYAxisData.yAxisWidth;\r\n //如果显示Y轴标题\r\n if (opts.yAxis.showTitle) {\r\n let maxTitleHeight = 0;\r\n for (let i = 0; i < opts.yAxis.data.length; i++) {\r\n maxTitleHeight = Math.max(maxTitleHeight, opts.yAxis.data[i].titleFontSize ? opts.yAxis.data[i].titleFontSize * opts.pix : config.fontSize)\r\n }\r\n opts.area[0] += maxTitleHeight;\r\n }\r\n let rightIndex = 0,\r\n leftIndex = 0;\r\n //计算主绘图区域左右位置\r\n for (let i = 0; i < yAxisWidth.length; i++) {\r\n if (yAxisWidth[i].position == 'left') {\r\n if (leftIndex > 0) {\r\n opts.area[3] += yAxisWidth[i].width + opts.yAxis.padding * opts.pix;\r\n } else {\r\n opts.area[3] += yAxisWidth[i].width;\r\n }\r\n leftIndex += 1;\r\n } else if (yAxisWidth[i].position == 'right') {\r\n if (rightIndex > 0) {\r\n opts.area[1] += yAxisWidth[i].width + opts.yAxis.padding * opts.pix;\r\n } else {\r\n opts.area[1] += yAxisWidth[i].width;\r\n }\r\n rightIndex += 1;\r\n }\r\n }\r\n } else {\r\n config.yAxisWidth = yAxisWidth;\r\n }\r\n opts.chartData.yAxisData = _calYAxisData;\r\n\r\n if (opts.categories && opts.categories.length && opts.type !== 'radar' && opts.type !== 'gauge' && opts.type !== 'bar') {\r\n opts.chartData.xAxisData = getXAxisPoints(opts.categories, opts, config);\r\n let _calCategoriesData = calCategoriesData(opts.categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),\r\n xAxisHeight = _calCategoriesData.xAxisHeight,\r\n angle = _calCategoriesData.angle;\r\n config.xAxisHeight = xAxisHeight;\r\n config._xAxisTextAngle_ = angle;\r\n opts.area[2] += xAxisHeight;\r\n opts.chartData.categoriesData = _calCategoriesData;\r\n } else {\r\n if (opts.type === 'line' || opts.type === 'area' || opts.type === 'scatter' || opts.type === 'bubble' || opts.type === 'bar') {\r\n opts.chartData.xAxisData = calXAxisData(series, opts, config, context);\r\n categories = opts.chartData.xAxisData.rangesFormat;\r\n let _calCategoriesData = calCategoriesData(categories, opts, config, opts.chartData.xAxisData.eachSpacing, context),\r\n xAxisHeight = _calCategoriesData.xAxisHeight,\r\n angle = _calCategoriesData.angle;\r\n config.xAxisHeight = xAxisHeight;\r\n config._xAxisTextAngle_ = angle;\r\n opts.area[2] += xAxisHeight;\r\n opts.chartData.categoriesData = _calCategoriesData;\r\n } else {\r\n opts.chartData.xAxisData = {\r\n xAxisPoints: []\r\n };\r\n }\r\n }\r\n\r\n //计算右对齐偏移距离\r\n if (opts.enableScroll && opts.xAxis.scrollAlign == 'right' && opts._scrollDistance_ === undefined) {\r\n let offsetLeft = 0,\r\n xAxisPoints = opts.chartData.xAxisData.xAxisPoints,\r\n startX = opts.chartData.xAxisData.startX,\r\n endX = opts.chartData.xAxisData.endX,\r\n eachSpacing = opts.chartData.xAxisData.eachSpacing;\r\n let totalWidth = eachSpacing * (xAxisPoints.length - 1);\r\n let screenWidth = endX - startX;\r\n offsetLeft = screenWidth - totalWidth;\r\n _this.scrollOption.currentOffset = offsetLeft;\r\n _this.scrollOption.startTouchX = offsetLeft;\r\n _this.scrollOption.distance = 0;\r\n _this.scrollOption.lastMoveTime = 0;\r\n opts._scrollDistance_ = offsetLeft;\r\n }\r\n\r\n if (type === 'pie' || type === 'ring' || type === 'rose') {\r\n config._pieTextMaxLength_ = opts.dataLabel === false ? 0 : getPieTextMaxLength(seriesMA, config, context, opts);\r\n }\r\n \r\n switch (type) {\r\n case 'word':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawWordCloudDataPoints(series, opts, config, context, process);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'map':\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n drawMapDataPoints(series, opts, config, context);\r\n break;\r\n case 'funnel':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n opts.chartData.funnelData = drawFunnelDataPoints(series, opts, config, context, process);\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'line':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawYAxisGrid(categories, opts, config, context);\r\n drawXAxis(categories, opts, config, context);\r\n var _drawLineDataPoints = drawLineDataPoints(series, opts, config, context, process),\r\n xAxisPoints = _drawLineDataPoints.xAxisPoints,\r\n calPoints = _drawLineDataPoints.calPoints,\r\n eachSpacing = _drawLineDataPoints.eachSpacing;\r\n opts.chartData.xAxisPoints = xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'scatter':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawYAxisGrid(categories, opts, config, context);\r\n drawXAxis(categories, opts, config, context);\r\n var _drawScatterDataPoints = drawScatterDataPoints(series, opts, config, context, process),\r\n xAxisPoints = _drawScatterDataPoints.xAxisPoints,\r\n calPoints = _drawScatterDataPoints.calPoints,\r\n eachSpacing = _drawScatterDataPoints.eachSpacing;\r\n opts.chartData.xAxisPoints = xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'bubble':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawYAxisGrid(categories, opts, config, context);\r\n drawXAxis(categories, opts, config, context);\r\n var _drawBubbleDataPoints = drawBubbleDataPoints(series, opts, config, context, process),\r\n xAxisPoints = _drawBubbleDataPoints.xAxisPoints,\r\n calPoints = _drawBubbleDataPoints.calPoints,\r\n eachSpacing = _drawBubbleDataPoints.eachSpacing;\r\n opts.chartData.xAxisPoints = xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'mix':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawYAxisGrid(categories, opts, config, context);\r\n drawXAxis(categories, opts, config, context);\r\n var _drawMixDataPoints = drawMixDataPoints(series, opts, config, context, process),\r\n xAxisPoints = _drawMixDataPoints.xAxisPoints,\r\n calPoints = _drawMixDataPoints.calPoints,\r\n eachSpacing = _drawMixDataPoints.eachSpacing;\r\n opts.chartData.xAxisPoints = xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'column':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawYAxisGrid(categories, opts, config, context);\r\n drawXAxis(categories, opts, config, context);\r\n var _drawColumnDataPoints = drawColumnDataPoints(series, opts, config, context, process),\r\n xAxisPoints = _drawColumnDataPoints.xAxisPoints,\r\n calPoints = _drawColumnDataPoints.calPoints,\r\n eachSpacing = _drawColumnDataPoints.eachSpacing;\r\n opts.chartData.xAxisPoints = xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'mount':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawYAxisGrid(categories, opts, config, context);\r\n drawXAxis(categories, opts, config, context);\r\n var _drawMountDataPoints = drawMountDataPoints(series, opts, config, context, process),\r\n xAxisPoints = _drawMountDataPoints.xAxisPoints,\r\n calPoints = _drawMountDataPoints.calPoints,\r\n eachSpacing = _drawMountDataPoints.eachSpacing;\r\n opts.chartData.xAxisPoints = xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'bar':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawXAxis(categories, opts, config, context);\r\n var _drawBarDataPoints = drawBarDataPoints(series, opts, config, context, process),\r\n yAxisPoints = _drawBarDataPoints.yAxisPoints,\r\n calPoints = _drawBarDataPoints.calPoints,\r\n eachSpacing = _drawBarDataPoints.eachSpacing;\r\n opts.chartData.yAxisPoints = yAxisPoints;\r\n opts.chartData.xAxisPoints = opts.chartData.xAxisData.xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, yAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'area':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawYAxisGrid(categories, opts, config, context);\r\n drawXAxis(categories, opts, config, context);\r\n var _drawAreaDataPoints = drawAreaDataPoints(series, opts, config, context, process),\r\n xAxisPoints = _drawAreaDataPoints.xAxisPoints,\r\n calPoints = _drawAreaDataPoints.calPoints,\r\n eachSpacing = _drawAreaDataPoints.eachSpacing;\r\n opts.chartData.xAxisPoints = xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'ring':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'pie':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n opts.chartData.pieData = drawPieDataPoints(series, opts, config, context, process);\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'rose':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n opts.chartData.pieData = drawRoseDataPoints(series, opts, config, context, process);\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'radar':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n opts.chartData.radarData = drawRadarDataPoints(series, opts, config, context, process);\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n drawToolTipBridge(opts, config, context, process);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'arcbar':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n opts.chartData.arcbarData = drawArcbarDataPoints(series, opts, config, context, process);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'gauge':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n opts.chartData.gaugeData = drawGaugeDataPoints(categories, series, opts, config, context, process);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n case 'candle':\r\n this.animationInstance = new Animation({\r\n timing: opts.timing,\r\n duration: duration,\r\n onProcess: function onProcess(process) {\r\n context.clearRect(0, 0, opts.width, opts.height);\r\n if (opts.rotate) {\r\n contextRotate(context, opts);\r\n }\r\n drawYAxisGrid(categories, opts, config, context);\r\n drawXAxis(categories, opts, config, context);\r\n var _drawCandleDataPoints = drawCandleDataPoints(series, seriesMA, opts, config, context, process),\r\n xAxisPoints = _drawCandleDataPoints.xAxisPoints,\r\n calPoints = _drawCandleDataPoints.calPoints,\r\n eachSpacing = _drawCandleDataPoints.eachSpacing;\r\n opts.chartData.xAxisPoints = xAxisPoints;\r\n opts.chartData.calPoints = calPoints;\r\n opts.chartData.eachSpacing = eachSpacing;\r\n drawYAxis(series, opts, config, context);\r\n if (opts.enableMarkLine !== false && process === 1) {\r\n drawMarkLine(opts, config, context);\r\n }\r\n if (seriesMA) {\r\n drawLegend(seriesMA, opts, config, context, opts.chartData);\r\n } else {\r\n drawLegend(opts.series, opts, config, context, opts.chartData);\r\n }\r\n drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints);\r\n drawCanvas(opts, context);\r\n },\r\n onAnimationFinish: function onAnimationFinish() {\r\n _this.uevent.trigger('renderComplete');\r\n }\r\n });\r\n break;\r\n }\r\n}\r\n\r\nfunction uChartsEvent() {\r\n this.events = {};\r\n}\r\n\r\nuChartsEvent.prototype.addEventListener = function(type, listener) {\r\n this.events[type] = this.events[type] || [];\r\n this.events[type].push(listener);\r\n};\r\n\r\nuChartsEvent.prototype.delEventListener = function(type) {\r\n this.events[type] = [];\r\n};\r\n\r\nuChartsEvent.prototype.trigger = function() {\r\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key];\r\n }\r\n var type = args[0];\r\n var params = args.slice(1);\r\n if (!!this.events[type]) {\r\n this.events[type].forEach(function(listener) {\r\n try {\r\n listener.apply(null, params);\r\n } catch (e) {\r\n //console.log('[uCharts] '+e);\r\n }\r\n });\r\n }\r\n};\r\n\r\nvar uCharts = function uCharts(opts) {\r\n opts.pix = opts.pixelRatio ? opts.pixelRatio : 1;\r\n opts.fontSize = opts.fontSize ? opts.fontSize : 13;\r\n opts.fontColor = opts.fontColor ? opts.fontColor : config.fontColor;\r\n if (opts.background == \"\" || opts.background == \"none\") {\r\n opts.background = \"#FFFFFF\"\r\n }\r\n opts.title = assign({}, opts.title);\r\n opts.subtitle = assign({}, opts.subtitle);\r\n opts.duration = opts.duration ? opts.duration : 1000;\r\n opts.yAxis = assign({}, {\r\n data: [],\r\n showTitle: false,\r\n disabled: false,\r\n disableGrid: false,\r\n splitNumber: 5,\r\n gridType: 'solid',\r\n dashLength: 4 * opts.pix,\r\n gridColor: '#cccccc',\r\n padding: 10,\r\n fontColor: '#666666'\r\n }, opts.yAxis);\r\n opts.xAxis = assign({}, {\r\n rotateLabel: false,\r\n rotateAngle:45,\r\n disabled: false,\r\n disableGrid: false,\r\n splitNumber: 5,\r\n calibration:false,\r\n gridType: 'solid',\r\n dashLength: 4,\r\n scrollAlign: 'left',\r\n boundaryGap: 'center',\r\n axisLine: true,\r\n axisLineColor: '#cccccc'\r\n }, opts.xAxis);\r\n opts.xAxis.scrollPosition = opts.xAxis.scrollAlign;\r\n opts.legend = assign({}, {\r\n show: true,\r\n position: 'bottom',\r\n float: 'center',\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: 'rgba(0,0,0,0)',\r\n borderWidth: 0,\r\n padding: 5,\r\n margin: 5,\r\n itemGap: 10,\r\n fontSize: opts.fontSize,\r\n lineHeight: opts.fontSize,\r\n fontColor: opts.fontColor,\r\n formatter: {},\r\n hiddenColor: '#CECECE'\r\n }, opts.legend);\r\n opts.extra = assign({}, opts.extra);\r\n opts.rotate = opts.rotate ? true : false;\r\n opts.animation = opts.animation ? true : false;\r\n opts.rotate = opts.rotate ? true : false;\r\n opts.canvas2d = opts.canvas2d ? true : false;\r\n \r\n let config$$1 = assign({}, config);\r\n config$$1.color = opts.color ? opts.color : config$$1.color;\r\n if (opts.type == 'pie') {\r\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.pie.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\r\n }\r\n if (opts.type == 'ring') {\r\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.ring.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\r\n }\r\n if (opts.type == 'rose') {\r\n config$$1.pieChartLinePadding = opts.dataLabel === false ? 0 : opts.extra.rose.labelWidth * opts.pix || config$$1.pieChartLinePadding * opts.pix;\r\n }\r\n config$$1.pieChartTextPadding = opts.dataLabel === false ? 0 : config$$1.pieChartTextPadding * opts.pix;\r\n\r\n //屏幕旋转\r\n config$$1.rotate = opts.rotate;\r\n if (opts.rotate) {\r\n let tempWidth = opts.width;\r\n let tempHeight = opts.height;\r\n opts.width = tempHeight;\r\n opts.height = tempWidth;\r\n }\r\n\r\n //适配高分屏\r\n opts.padding = opts.padding ? opts.padding : config$$1.padding;\r\n config$$1.yAxisWidth = config.yAxisWidth * opts.pix;\r\n config$$1.xAxisHeight = config.xAxisHeight * opts.pix;\r\n if (opts.enableScroll && opts.xAxis.scrollShow) {\r\n config$$1.xAxisHeight += 6 * opts.pix;\r\n }\r\n config$$1.fontSize = opts.fontSize * opts.pix;\r\n config$$1.titleFontSize = config.titleFontSize * opts.pix;\r\n config$$1.subtitleFontSize = config.subtitleFontSize * opts.pix;\r\n config$$1.toolTipPadding = config.toolTipPadding * opts.pix;\r\n config$$1.toolTipLineHeight = config.toolTipLineHeight * opts.pix;\r\n if(!opts.context){\r\n throw new Error('[uCharts] 未获取到context!注意:v2.0版本后,需要自行获取canvas的绘图上下文并传入opts.context!');\r\n }\r\n this.context = opts.context;\r\n if (!this.context.setTextAlign) {\r\n this.context.setStrokeStyle = function(e) {\r\n return this.strokeStyle = e;\r\n }\r\n this.context.setLineWidth = function(e) {\r\n return this.lineWidth = e;\r\n }\r\n this.context.setLineCap = function(e) {\r\n return this.lineCap = e;\r\n }\r\n this.context.setFontSize = function(e) {\r\n return this.font = e + \"px sans-serif\";\r\n }\r\n this.context.setFillStyle = function(e) {\r\n return this.fillStyle = e;\r\n }\r\n this.context.setTextAlign = function(e) {\r\n return this.textAlign = e;\r\n }\r\n this.context.draw = function() {}\r\n }\r\n //兼容NVUEsetLineDash\r\n if(!this.context.setLineDash){\r\n this.context.setLineDash = function(e) {}\r\n }\r\n opts.chartData = {};\r\n this.uevent = new uChartsEvent();\r\n this.scrollOption = {\r\n currentOffset: 0,\r\n startTouchX: 0,\r\n distance: 0,\r\n lastMoveTime: 0\r\n };\r\n this.opts = opts;\r\n this.config = config$$1;\r\n drawCharts.call(this, opts.type, opts, config$$1, this.context);\r\n};\r\n\r\nuCharts.prototype.updateData = function() {\r\n let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\r\n this.opts = assign({}, this.opts, data);\r\n this.opts.updateData = true;\r\n let scrollPosition = data.scrollPosition || 'current';\r\n switch (scrollPosition) {\r\n case 'current':\r\n this.opts._scrollDistance_ = this.scrollOption.currentOffset;\r\n break;\r\n case 'left':\r\n this.opts._scrollDistance_ = 0;\r\n this.scrollOption = {\r\n currentOffset: 0,\r\n startTouchX: 0,\r\n distance: 0,\r\n lastMoveTime: 0\r\n };\r\n break;\r\n case 'right':\r\n let _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context), yAxisWidth = _calYAxisData.yAxisWidth;\r\n this.config.yAxisWidth = yAxisWidth;\r\n let offsetLeft = 0;\r\n let _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config), xAxisPoints = _getXAxisPoints0.xAxisPoints,\r\n startX = _getXAxisPoints0.startX,\r\n endX = _getXAxisPoints0.endX,\r\n eachSpacing = _getXAxisPoints0.eachSpacing;\r\n let totalWidth = eachSpacing * (xAxisPoints.length - 1);\r\n let screenWidth = endX - startX;\r\n offsetLeft = screenWidth - totalWidth;\r\n this.scrollOption = {\r\n currentOffset: offsetLeft,\r\n startTouchX: offsetLeft,\r\n distance: 0,\r\n lastMoveTime: 0\r\n };\r\n this.opts._scrollDistance_ = offsetLeft;\r\n break;\r\n }\r\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\r\n};\r\n\r\nuCharts.prototype.zoom = function() {\r\n var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.opts.xAxis.itemCount;\r\n if (this.opts.enableScroll !== true) {\r\n console.log('[uCharts] 请启用滚动条后使用')\r\n return;\r\n }\r\n //当前屏幕中间点\r\n let centerPoint = Math.round(Math.abs(this.scrollOption.currentOffset) / this.opts.chartData.eachSpacing) + Math.round(this.opts.xAxis.itemCount / 2);\r\n this.opts.animation = false;\r\n this.opts.xAxis.itemCount = val.itemCount;\r\n //重新计算x轴偏移距离\r\n let _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config, this.context),\r\n yAxisWidth = _calYAxisData.yAxisWidth;\r\n this.config.yAxisWidth = yAxisWidth;\r\n let offsetLeft = 0;\r\n let _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\r\n xAxisPoints = _getXAxisPoints0.xAxisPoints,\r\n startX = _getXAxisPoints0.startX,\r\n endX = _getXAxisPoints0.endX,\r\n eachSpacing = _getXAxisPoints0.eachSpacing;\r\n let centerLeft = eachSpacing * centerPoint;\r\n let screenWidth = endX - startX;\r\n let MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);\r\n offsetLeft = screenWidth / 2 - centerLeft;\r\n if (offsetLeft > 0) {\r\n offsetLeft = 0;\r\n }\r\n if (offsetLeft < MaxLeft) {\r\n offsetLeft = MaxLeft;\r\n }\r\n this.scrollOption = {\r\n currentOffset: offsetLeft,\r\n startTouchX: 0,\r\n distance: 0,\r\n lastMoveTime: 0\r\n };\r\n calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);\r\n this.opts._scrollDistance_ = offsetLeft;\r\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\r\n};\r\n\r\nuCharts.prototype.dobuleZoom = function(e) {\r\n if (this.opts.enableScroll !== true) {\r\n console.log('[uCharts] 请启用滚动条后使用')\r\n return;\r\n }\r\n const tcs = e.changedTouches;\r\n if (tcs.length < 2) {\r\n return;\r\n }\r\n for (var i = 0; i < tcs.length; i++) {\r\n tcs[i].x = tcs[i].x ? tcs[i].x : tcs[i].clientX;\r\n tcs[i].y = tcs[i].y ? tcs[i].y : tcs[i].clientY;\r\n }\r\n const ntcs = [getTouches(tcs[0], this.opts, e),getTouches(tcs[1], this.opts, e)]; \r\n const xlength = Math.abs(ntcs[0].x - ntcs[1].x);\r\n // 记录初始的两指之间的数据\r\n if(!this.scrollOption.moveCount){\r\n let cts0 = {changedTouches:[{x:tcs[0].x,y:this.opts.area[0] / this.opts.pix + 2}]};\r\n let cts1 = {changedTouches:[{x:tcs[1].x,y:this.opts.area[0] / this.opts.pix + 2}]};\r\n if(this.opts.rotate){\r\n cts0 = {changedTouches:[{x:this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2,y:tcs[0].y}]};\r\n cts1 = {changedTouches:[{x:this.opts.height / this.opts.pix - this.opts.area[0] / this.opts.pix - 2,y:tcs[1].y}]};\r\n }\r\n const moveCurrent1 = this.getCurrentDataIndex(cts0).index;\r\n const moveCurrent2 = this.getCurrentDataIndex(cts1).index;\r\n const moveCount = Math.abs(moveCurrent1 - moveCurrent2);\r\n this.scrollOption.moveCount = moveCount;\r\n this.scrollOption.moveCurrent1 = Math.min(moveCurrent1, moveCurrent2);\r\n this.scrollOption.moveCurrent2 = Math.max(moveCurrent1, moveCurrent2);\r\n return;\r\n }\r\n \r\n let currentEachSpacing = xlength / this.scrollOption.moveCount;\r\n let itemCount = (this.opts.width - this.opts.area[1] - this.opts.area[3]) / currentEachSpacing;\r\n itemCount = itemCount <= 2 ? 2 : itemCount;\r\n itemCount = itemCount >= this.opts.categories.length ? this.opts.categories.length : itemCount;\r\n this.opts.animation = false;\r\n this.opts.xAxis.itemCount = itemCount;\r\n // 重新计算滚动条偏移距离\r\n let offsetLeft = 0;\r\n let _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config),\r\n xAxisPoints = _getXAxisPoints0.xAxisPoints,\r\n startX = _getXAxisPoints0.startX,\r\n endX = _getXAxisPoints0.endX,\r\n eachSpacing = _getXAxisPoints0.eachSpacing;\r\n let currentLeft = eachSpacing * this.scrollOption.moveCurrent1;\r\n let screenWidth = endX - startX;\r\n let MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1);\r\n offsetLeft = -currentLeft+Math.min(ntcs[0].x,ntcs[1].x)-this.opts.area[3]-eachSpacing;\r\n if (offsetLeft > 0) {\r\n offsetLeft = 0;\r\n }\r\n if (offsetLeft < MaxLeft) {\r\n offsetLeft = MaxLeft;\r\n }\r\n this.scrollOption.currentOffset= offsetLeft;\r\n this.scrollOption.startTouchX= 0;\r\n this.scrollOption.distance=0;\r\n calValidDistance(this, offsetLeft, this.opts.chartData, this.config, this.opts);\r\n this.opts._scrollDistance_ = offsetLeft;\r\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\r\n}\r\n\r\nuCharts.prototype.stopAnimation = function() {\r\n this.animationInstance && this.animationInstance.stop();\r\n};\r\n\r\nuCharts.prototype.addEventListener = function(type, listener) {\r\n this.uevent.addEventListener(type, listener);\r\n};\r\n\r\nuCharts.prototype.delEventListener = function(type) {\r\n this.uevent.delEventListener(type);\r\n};\r\n\r\nuCharts.prototype.getCurrentDataIndex = function(e) {\r\n var touches = null;\r\n if (e.changedTouches) {\r\n touches = e.changedTouches[0];\r\n } else {\r\n touches = e.mp.changedTouches[0];\r\n }\r\n if (touches) {\r\n let _touches$ = getTouches(touches, this.opts, e);\r\n if (this.opts.type === 'pie' || this.opts.type === 'ring') {\r\n return findPieChartCurrentIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts.chartData.pieData, this.opts);\r\n } else if (this.opts.type === 'rose') {\r\n return findRoseChartCurrentIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts.chartData.pieData, this.opts);\r\n } else if (this.opts.type === 'radar') {\r\n return findRadarChartCurrentIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts.chartData.radarData, this.opts.categories.length);\r\n } else if (this.opts.type === 'funnel') {\r\n return findFunnelChartCurrentIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts.chartData.funnelData);\r\n } else if (this.opts.type === 'map') {\r\n return findMapChartCurrentIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts);\r\n } else if (this.opts.type === 'word') {\r\n return findWordChartCurrentIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts.chartData.wordCloudData);\r\n } else if (this.opts.type === 'bar') {\r\n return findBarChartCurrentIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));\r\n } else {\r\n return findCurrentIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts.chartData.calPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset));\r\n }\r\n }\r\n return -1;\r\n};\r\n\r\nuCharts.prototype.getLegendDataIndex = function(e) {\r\n var touches = null;\r\n if (e.changedTouches) {\r\n touches = e.changedTouches[0];\r\n } else {\r\n touches = e.mp.changedTouches[0];\r\n }\r\n if (touches) {\r\n let _touches$ = getTouches(touches, this.opts, e);\r\n return findLegendIndex({\r\n x: _touches$.x,\r\n y: _touches$.y\r\n }, this.opts.chartData.legendData);\r\n }\r\n return -1;\r\n};\r\n\r\nuCharts.prototype.touchLegend = function(e) {\r\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n var touches = null;\r\n if (e.changedTouches) {\r\n touches = e.changedTouches[0];\r\n } else {\r\n touches = e.mp.changedTouches[0];\r\n }\r\n if (touches) {\r\n var _touches$ = getTouches(touches, this.opts, e);\r\n var index = this.getLegendDataIndex(e);\r\n if (index >= 0) {\r\n if (this.opts.type == 'candle') {\r\n this.opts.seriesMA[index].show = !this.opts.seriesMA[index].show;\r\n } else {\r\n this.opts.series[index].show = !this.opts.series[index].show;\r\n }\r\n this.opts.animation = option.animation ? true : false;\r\n this.opts._scrollDistance_ = this.scrollOption.currentOffset;\r\n drawCharts.call(this, this.opts.type, this.opts, this.config, this.context);\r\n }\r\n }\r\n\r\n};\r\n\r\nuCharts.prototype.showToolTip = function(e) {\r\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n var touches = null;\r\n if (e.changedTouches) {\r\n touches = e.changedTouches[0];\r\n } else {\r\n touches = e.mp.changedTouches[0];\r\n }\r\n if (!touches) {\r\n console.log(\"[uCharts] 未获取到event坐标信息\");\r\n }\r\n var _touches$ = getTouches(touches, this.opts, e);\r\n var currentOffset = this.scrollOption.currentOffset;\r\n var opts = assign({}, this.opts, {\r\n _scrollDistance_: currentOffset,\r\n animation: false\r\n });\r\n if (this.opts.type === 'line' || this.opts.type === 'area' || this.opts.type === 'column' || this.opts.type === 'scatter' || this.opts.type === 'bubble') {\r\n var current = this.getCurrentDataIndex(e);\r\n var index = option.index == undefined ? current.index : option.index;\r\n if (index > -1 || index.length>0) {\r\n var seriesData = getSeriesDataItem(this.opts.series, index, current.group);\r\n if (seriesData.length !== 0) {\r\n var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),\r\n textList = _getToolTipData.textList,\r\n offset = _getToolTipData.offset;\r\n offset.y = _touches$.y;\r\n opts.tooltip = {\r\n textList: option.textList !== undefined ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n }\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n if (this.opts.type === 'mount') {\r\n var index = option.index == undefined ? this.getCurrentDataIndex(e).index : option.index;\r\n if (index > -1) {\r\n var opts = assign({}, this.opts, {animation: false});\r\n var seriesData = assign({}, opts._series_[index]);\r\n var textList = [{\r\n text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,\r\n color: seriesData.color\r\n }];\r\n var offset = {\r\n x: opts.chartData.calPoints[index].x,\r\n y: _touches$.y\r\n };\r\n opts.tooltip = {\r\n textList: option.textList ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n \r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n if (this.opts.type === 'bar') {\r\n var current = this.getCurrentDataIndex(e);\r\n var index = option.index == undefined ? current.index : option.index;\r\n if (index > -1 || index.length>0) {\r\n var seriesData = getSeriesDataItem(this.opts.series, index, current.group);\r\n if (seriesData.length !== 0) {\r\n var _getToolTipData = getToolTipData(seriesData, this.opts, index, current.group, this.opts.categories, option),\r\n textList = _getToolTipData.textList,\r\n offset = _getToolTipData.offset;\r\n offset.x = _touches$.x;\r\n opts.tooltip = {\r\n textList: option.textList !== undefined ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n }\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n if (this.opts.type === 'mix') {\r\n var current = this.getCurrentDataIndex(e);\r\n var index = option.index == undefined ? current.index : option.index;\r\n if (index > -1) {\r\n var currentOffset = this.scrollOption.currentOffset;\r\n var opts = assign({}, this.opts, {\r\n _scrollDistance_: currentOffset,\r\n animation: false\r\n });\r\n var seriesData = getSeriesDataItem(this.opts.series, index);\r\n if (seriesData.length !== 0) {\r\n var _getMixToolTipData = getMixToolTipData(seriesData, this.opts, index, this.opts.categories, option),\r\n textList = _getMixToolTipData.textList,\r\n offset = _getMixToolTipData.offset;\r\n offset.y = _touches$.y;\r\n opts.tooltip = {\r\n textList: option.textList ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n }\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n if (this.opts.type === 'candle') {\r\n var current = this.getCurrentDataIndex(e);\r\n var index = option.index == undefined ? current.index : option.index;\r\n if (index > -1) {\r\n var currentOffset = this.scrollOption.currentOffset;\r\n var opts = assign({}, this.opts, {\r\n _scrollDistance_: currentOffset,\r\n animation: false\r\n });\r\n var seriesData = getSeriesDataItem(this.opts.series, index);\r\n if (seriesData.length !== 0) {\r\n var _getToolTipData = getCandleToolTipData(this.opts.series[0].data, seriesData, this.opts, index, this.opts.categories, this.opts.extra.candle, option),\r\n textList = _getToolTipData.textList,\r\n offset = _getToolTipData.offset;\r\n offset.y = _touches$.y;\r\n opts.tooltip = {\r\n textList: option.textList ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n }\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n if (this.opts.type === 'pie' || this.opts.type === 'ring' || this.opts.type === 'rose' || this.opts.type === 'funnel') {\r\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\r\n if (index > -1) {\r\n var opts = assign({}, this.opts, {animation: false});\r\n var seriesData = assign({}, opts._series_[index]);\r\n var textList = [{\r\n text: option.formatter ? option.formatter(seriesData, undefined, index, opts) : seriesData.name + ': ' + seriesData.data,\r\n color: seriesData.color\r\n }];\r\n var offset = {\r\n x: _touches$.x,\r\n y: _touches$.y\r\n };\r\n opts.tooltip = {\r\n textList: option.textList ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n if (this.opts.type === 'map') {\r\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\r\n if (index > -1) {\r\n var opts = assign({}, this.opts, {animation: false});\r\n var seriesData = assign({}, this.opts.series[index]);\r\n seriesData.name = seriesData.properties.name\r\n var textList = [{\r\n text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,\r\n color: seriesData.color\r\n }];\r\n var offset = {\r\n x: _touches$.x,\r\n y: _touches$.y\r\n };\r\n opts.tooltip = {\r\n textList: option.textList ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n opts.updateData = false;\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n if (this.opts.type === 'word') {\r\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\r\n if (index > -1) {\r\n var opts = assign({}, this.opts, {animation: false});\r\n var seriesData = assign({}, this.opts.series[index]);\r\n var textList = [{\r\n text: option.formatter ? option.formatter(seriesData, undefined, index, this.opts) : seriesData.name,\r\n color: seriesData.color\r\n }];\r\n var offset = {\r\n x: _touches$.x,\r\n y: _touches$.y\r\n };\r\n opts.tooltip = {\r\n textList: option.textList ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n opts.updateData = false;\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n if (this.opts.type === 'radar') {\r\n var index = option.index == undefined ? this.getCurrentDataIndex(e) : option.index;\r\n if (index > -1) {\r\n var opts = assign({}, this.opts, {animation: false});\r\n var seriesData = getSeriesDataItem(this.opts.series, index);\r\n if (seriesData.length !== 0) {\r\n var textList = seriesData.map((item) => {\r\n return {\r\n text: option.formatter ? option.formatter(item, this.opts.categories[index], index, this.opts) : item.name + ': ' + item.data,\r\n color: item.color\r\n };\r\n });\r\n var offset = {\r\n x: _touches$.x,\r\n y: _touches$.y\r\n };\r\n opts.tooltip = {\r\n textList: option.textList ? option.textList : textList,\r\n offset: option.offset !== undefined ? option.offset : offset,\r\n option: option,\r\n index: index\r\n };\r\n }\r\n }\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n }\r\n};\r\n\r\nuCharts.prototype.translate = function(distance) {\r\n this.scrollOption = {\r\n currentOffset: distance,\r\n startTouchX: distance,\r\n distance: 0,\r\n lastMoveTime: 0\r\n };\r\n let opts = assign({}, this.opts, {\r\n _scrollDistance_: distance,\r\n animation: false\r\n });\r\n drawCharts.call(this, this.opts.type, opts, this.config, this.context);\r\n};\r\n\r\nuCharts.prototype.scrollStart = function(e) {\r\n var touches = null;\r\n if (e.changedTouches) {\r\n touches = e.changedTouches[0];\r\n } else {\r\n touches = e.mp.changedTouches[0];\r\n }\r\n var _touches$ = getTouches(touches, this.opts, e);\r\n if (touches && this.opts.enableScroll === true) {\r\n this.scrollOption.startTouchX = _touches$.x;\r\n }\r\n};\r\n\r\nuCharts.prototype.scroll = function(e) {\r\n if (this.scrollOption.lastMoveTime === 0) {\r\n this.scrollOption.lastMoveTime = Date.now();\r\n }\r\n let Limit = this.opts.touchMoveLimit || 60;\r\n let currMoveTime = Date.now();\r\n let duration = currMoveTime - this.scrollOption.lastMoveTime;\r\n if (duration < Math.floor(1000 / Limit)) return;\r\n if (this.scrollOption.startTouchX == 0) return;\r\n this.scrollOption.lastMoveTime = currMoveTime;\r\n var touches = null;\r\n if (e.changedTouches) {\r\n touches = e.changedTouches[0];\r\n } else {\r\n touches = e.mp.changedTouches[0];\r\n }\r\n if (touches && this.opts.enableScroll === true) {\r\n var _touches$ = getTouches(touches, this.opts, e);\r\n var _distance;\r\n _distance = _touches$.x - this.scrollOption.startTouchX;\r\n var currentOffset = this.scrollOption.currentOffset;\r\n var validDistance = calValidDistance(this, currentOffset + _distance, this.opts.chartData, this.config, this.opts);\r\n this.scrollOption.distance = _distance = validDistance - currentOffset;\r\n var opts = assign({}, this.opts, {\r\n _scrollDistance_: currentOffset + _distance,\r\n animation: false\r\n });\r\n\t\tthis.opts = opts;\r\n drawCharts.call(this, opts.type, opts, this.config, this.context);\r\n return currentOffset + _distance;\r\n }\r\n};\r\n\r\nuCharts.prototype.scrollEnd = function(e) {\r\n if (this.opts.enableScroll === true) {\r\n var _scrollOption = this.scrollOption,\r\n currentOffset = _scrollOption.currentOffset,\r\n distance = _scrollOption.distance;\r\n this.scrollOption.currentOffset = currentOffset + distance;\r\n this.scrollOption.distance = 0;\r\n this.scrollOption.moveCount = 0;\r\n }\r\n};\r\n\r\nexport default uCharts;","/*\r\n * uCharts®\r\n * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360)、Vue、Taro等支持canvas的框架平台\r\n * Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved.\r\n * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )\r\n * 复制使用请保留本段注释,感谢支持开源!\r\n * \r\n * uCharts®官方网站\r\n * https://www.uCharts.cn\r\n * \r\n * 开源地址:\r\n * https://gitee.com/uCharts/uCharts\r\n * \r\n * uni-app插件市场地址:\r\n * http://ext.dcloud.net.cn/plugin?id=271\r\n * \r\n */\r\n\r\n// 主题颜色配置:如每个图表类型需要不同主题,请在对应图表类型上更改color属性\r\nconst color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];\r\n\r\n//事件转换函数,主要用作格式化x轴为时间轴,根据需求自行修改\r\nconst formatDateTime = (timeStamp, returnType)=>{\r\n var date = new Date();\r\n date.setTime(timeStamp * 1000);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n m = m < 10 ? ('0' + m) : m;\r\n var d = date.getDate();\r\n d = d < 10 ? ('0' + d) : d;\r\n var h = date.getHours();\r\n h = h < 10 ? ('0' + h) : h;\r\n var minute = date.getMinutes();\r\n var second = date.getSeconds();\r\n minute = minute < 10 ? ('0' + minute) : minute;\r\n second = second < 10 ? ('0' + second) : second;\r\n if(returnType == 'full'){return y + '-' + m + '-' + d + ' '+ h +':' + minute + ':' + second;}\r\n if(returnType == 'y-m-d'){return y + '-' + m + '-' + d;}\r\n if(returnType == 'h:m'){return h +':' + minute;}\r\n if(returnType == 'h:m:s'){return h +':' + minute +':' + second;}\r\n return [y, m, d, h, minute, second];\r\n}\r\n\r\nconst cfu = {\r\n //demotype为自定义图表类型,一般不需要自定义图表类型,只需要改根节点上对应的类型即可\r\n\t\"type\":[\"pie\",\"ring\",\"rose\",\"word\",\"funnel\",\"map\",\"arcbar\",\"line\",\"column\",\"mount\",\"bar\",\"area\",\"radar\",\"gauge\",\"candle\",\"mix\",\"tline\",\"tarea\",\"scatter\",\"bubble\",\"demotype\"],\r\n\t\"range\":[\"饼状图\",\"圆环图\",\"玫瑰图\",\"词云图\",\"漏斗图\",\"地图\",\"圆弧进度条\",\"折线图\",\"柱状图\",\"山峰图\",\"条状图\",\"区域图\",\"雷达图\",\"仪表盘\",\"K线图\",\"混合图\",\"时间轴折线\",\"时间轴区域\",\"散点图\",\"气泡图\",\"自定义类型\"],\r\n //增加自定义图表类型,如果需要categories,请在这里加入您的图表类型,例如最后的\"demotype\"\r\n //自定义类型时需要注意\"tline\",\"tarea\",\"scatter\",\"bubble\"等时间轴(矢量x轴)类图表,没有categories,不需要加入categories\r\n\t\"categories\":[\"line\",\"column\",\"mount\",\"bar\",\"area\",\"radar\",\"gauge\",\"candle\",\"mix\",\"demotype\"],\r\n //instance为实例变量承载属性,不要删除\r\n \"instance\":{},\r\n //option为opts及eopts承载属性,不要删除\r\n \"option\":{},\r\n //下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换\r\n \"formatter\":{\r\n \"yAxisDemo1\":function(val, index, opts){return val+'元'},\r\n \"yAxisDemo2\":function(val, index, opts){return val.toFixed(2)},\r\n \"xAxisDemo1\":function(val, index, opts){return val+'年';},\r\n \"xAxisDemo2\":function(val, index, opts){return formatDateTime(val,'h:m')},\r\n \"seriesDemo1\":function(val, index, series, opts){return val+'元'},\r\n \"tooltipDemo1\":function(item, category, index, opts){\r\n if(index==0){\r\n \treturn '随便用'+item.data+'年'\r\n }else{\r\n \treturn '其他我没改'+item.data+'天'\r\n }\r\n },\r\n \"pieDemo\":function(val, index, series, opts){\r\n if(index !== undefined){\r\n return series[index].name+':'+series[index].data+'元'\r\n }\r\n },\r\n },\r\n //这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type=\"demotype\" 后,组件会调用这个花括号里的option,如果组件上还存在opts参数,会将demotype与opts中option合并后渲染图表。\r\n \"demotype\":{\r\n //我这里把曲线图当做了自定义图表类型,您可以根据需要随意指定类型或配置\r\n \"type\": \"line\",\r\n \"color\": color,\r\n \"padding\": [15,10,0,15],\r\n \"xAxis\": {\r\n \"disableGrid\": true,\r\n },\r\n \"yAxis\": {\r\n \"gridType\": \"dash\",\r\n \"dashLength\": 2,\r\n },\r\n \"legend\": {\r\n },\r\n \"extra\": {\r\n \t\"line\": {\r\n \t\t\"type\": \"curve\",\r\n \t\t\"width\": 2\r\n \t},\r\n }\r\n },\r\n //下面是自定义配置,请添加项目所需的通用配置\r\n\t\"pie\":{\r\n\t\t\"type\": \"pie\",\r\n \"color\": color,\r\n\t\t\"padding\": [5,5,5,5],\r\n\t\t\"extra\": {\r\n\t\t\t\"pie\": {\r\n\t\t\t\t\"activeOpacity\": 0.5,\r\n\t\t\t\t\"activeRadius\": 10,\r\n\t\t\t\t\"offsetAngle\": 0,\r\n\t\t\t\t\"labelWidth\": 15,\r\n\t\t\t\t\"border\": true,\r\n\t\t\t\t\"borderWidth\": 3,\r\n\t\t\t\t\"borderColor\": \"#FFFFFF\"\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t\"ring\":{\r\n\t\t\"type\": \"ring\",\r\n \"color\": color,\r\n\t\t\"padding\": [5,5,5,5],\r\n\t\t\"rotate\": false,\r\n\t\t\"dataLabel\": true,\r\n\t\t\"legend\": {\r\n\t\t\t\"show\": true,\r\n\t\t\t\"position\": \"right\",\r\n \"lineHeight\": 25,\r\n\t\t},\r\n\t\t\"title\": {\r\n\t\t\t\"name\": \"收益率\",\r\n\t\t\t\"fontSize\": 15,\r\n\t\t\t\"color\": \"#666666\"\r\n\t\t},\r\n\t\t\"subtitle\": {\r\n\t\t\t\"name\": \"70%\",\r\n\t\t\t\"fontSize\": 25,\r\n\t\t\t\"color\": \"#7cb5ec\"\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"ring\": {\r\n\t\t\t\t\"ringWidth\":30,\r\n\t\t\t\t\"activeOpacity\": 0.5,\r\n\t\t\t\t\"activeRadius\": 10,\r\n\t\t\t\t\"offsetAngle\": 0,\r\n\t\t\t\t\"labelWidth\": 15,\r\n\t\t\t\t\"border\": true,\r\n\t\t\t\t\"borderWidth\": 3,\r\n\t\t\t\t\"borderColor\": \"#FFFFFF\"\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\t\"rose\":{\r\n\t\t\"type\": \"rose\",\r\n \"color\": color,\r\n\t\t\"padding\": [5,5,5,5],\r\n\t\t\"legend\": {\r\n\t\t\t\"show\": true,\r\n\t\t\t\"position\": \"left\",\r\n \"lineHeight\": 25,\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"rose\": {\r\n\t\t\t\t\"type\": \"area\",\r\n\t\t\t\t\"minRadius\": 50,\r\n\t\t\t\t\"activeOpacity\": 0.5,\r\n\t\t\t\t\"activeRadius\": 10,\r\n\t\t\t\t\"offsetAngle\": 0,\r\n\t\t\t\t\"labelWidth\": 15,\r\n\t\t\t\t\"border\": false,\r\n\t\t\t\t\"borderWidth\": 2,\r\n\t\t\t\t\"borderColor\": \"#FFFFFF\"\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t\"word\":{\r\n\t\t\"type\": \"word\",\r\n \"color\": color,\r\n\t\t\"extra\": {\r\n\t\t\t\"word\": {\r\n\t\t\t\t\"type\": \"normal\",\r\n\t\t\t\t\"autoColors\": false\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t\"funnel\":{\r\n\t\t\"type\": \"funnel\",\r\n \"color\": color,\r\n\t\t\"padding\": [15,15,0,15],\r\n\t\t\"extra\": {\r\n\t\t\t\"funnel\": {\r\n\t\t\t\t\"activeOpacity\": 0.3,\r\n\t\t\t\t\"activeWidth\": 10,\r\n\t\t\t\t\"border\": true,\r\n\t\t\t\t\"borderWidth\": 2,\r\n\t\t\t\t\"borderColor\": \"#FFFFFF\",\r\n\t\t\t\t\"fillOpacity\": 1,\r\n\t\t\t\t\"labelAlign\": \"right\"\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t\"map\":{\r\n\t\t\"type\": \"map\",\r\n \"color\": color,\r\n\t\t\"padding\": [0,0,0,0],\r\n \"dataLabel\": true,\r\n\t\t\"extra\": {\r\n\t\t\t\"map\": {\r\n\t\t\t\t\"border\": true,\r\n\t\t\t\t\"borderWidth\": 1,\r\n\t\t\t\t\"borderColor\": \"#666666\",\r\n\t\t\t\t\"fillOpacity\": 0.6,\r\n\t\t\t\t\"activeBorderColor\": \"#F04864\",\r\n\t\t\t\t\"activeFillColor\": \"#FACC14\",\r\n\t\t\t\t\"activeFillOpacity\": 1\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t\"arcbar\":{\r\n\t\t\"type\": \"arcbar\",\r\n \"color\": color,\r\n\t\t\"title\": {\r\n\t\t\t\"name\": \"百分比\",\r\n\t\t\t\"fontSize\": 25,\r\n\t\t\t\"color\": \"#00FF00\"\r\n\t\t},\r\n\t\t\"subtitle\": {\r\n\t\t\t\"name\": \"默认标题\",\r\n\t\t\t\"fontSize\": 15,\r\n\t\t\t\"color\": \"#666666\"\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"arcbar\": {\r\n\t\t\t\t\"type\": \"default\",\r\n\t\t\t\t\"width\": 12,\r\n\t\t\t\t\"backgroundColor\": \"#E9E9E9\",\r\n\t\t\t\t\"startAngle\": 0.75,\r\n\t\t\t\t\"endAngle\": 0.25,\r\n\t\t\t\t\"gap\": 2\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t\"line\":{\r\n\t\t\"type\": \"line\",\r\n \"color\": color,\r\n\t\t\"padding\": [15,10,0,15],\r\n\t\t\"xAxis\": {\r\n \"disableGrid\": true,\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n \"gridType\": \"dash\",\r\n \"dashLength\": 2,\r\n\t\t},\r\n\t\t\"legend\": {\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"line\": {\r\n\t\t\t\t\"type\": \"straight\",\r\n\t\t\t\t\"width\": 2\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n \"tline\":{\r\n \t\"type\": \"line\",\r\n \"color\": color,\r\n \t\"padding\": [15,10,0,15],\r\n \t\"xAxis\": {\r\n \"disableGrid\": false,\r\n \"boundaryGap\":\"justify\",\r\n \t},\r\n \t\"yAxis\": {\r\n \"gridType\": \"dash\",\r\n \"dashLength\": 2,\r\n \"data\":[\r\n {\r\n \"min\":0,\r\n \"max\":80\r\n }\r\n ]\r\n \t},\r\n \t\"legend\": {\r\n \t},\r\n \t\"extra\": {\r\n \t\t\"line\": {\r\n \t\t\t\"type\": \"curve\",\r\n \t\t\t\"width\": 2\r\n \t\t},\r\n \t}\r\n },\r\n \"tarea\":{\r\n \t\"type\": \"area\",\r\n \"color\": color,\r\n \t\"padding\": [15,10,0,15],\r\n \t\"xAxis\": {\r\n \"disableGrid\": true,\r\n \"boundaryGap\":\"justify\",\r\n \t},\r\n \t\"yAxis\": {\r\n \"gridType\": \"dash\",\r\n \"dashLength\": 2,\r\n \"data\":[\r\n {\r\n \"min\":0,\r\n \"max\":80\r\n }\r\n ]\r\n \t},\r\n \t\"legend\": {\r\n \t},\r\n \t\"extra\": {\r\n \t\t\"area\": {\r\n \t\t\t\"type\": \"curve\",\r\n \t\t\t\"opacity\": 0.2,\r\n \t\t\t\"addLine\": true,\r\n \t\t\t\"width\": 2,\r\n \t\t\t\"gradient\": true\r\n \t\t},\r\n \t}\r\n },\r\n\t\"column\":{\r\n\t\t\"type\": \"column\",\r\n \"color\": color,\r\n\t\t\"padding\": [15,15,0,5],\r\n\t\t\"xAxis\": {\r\n \"disableGrid\": true,\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n \"data\":[{\"min\":0}]\r\n\t\t},\r\n\t\t\"legend\": {\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"column\": {\r\n\t\t\t\t\"type\": \"group\",\r\n\t\t\t\t\"width\": 30,\r\n\t\t\t\t\"activeBgColor\": \"#000000\",\r\n\t\t\t\t\"activeBgOpacity\": 0.08\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n \"mount\":{\r\n \t\"type\": \"mount\",\r\n \"color\": color,\r\n \t\"padding\": [15,15,0,5],\r\n \t\"xAxis\": {\r\n \"disableGrid\": true,\r\n \t},\r\n \t\"yAxis\": {\r\n \"data\":[{\"min\":0}]\r\n \t},\r\n \t\"legend\": {\r\n \t},\r\n \t\"extra\": {\r\n \t\t\"mount\": {\r\n \t\t\t\"type\": \"mount\",\r\n \t\t\t\"widthRatio\": 1.5,\r\n \t\t},\r\n \t}\r\n },\r\n \"bar\":{\r\n \t\"type\": \"bar\",\r\n \"color\": color,\r\n \t\"padding\": [15,30,0,5],\r\n \t\"xAxis\": {\r\n \"boundaryGap\":\"justify\",\r\n \"disableGrid\":false,\r\n \"min\":0,\r\n \"axisLine\":false\r\n \t},\r\n \t\"yAxis\": {\r\n \t},\r\n \t\"legend\": {\r\n \t},\r\n \t\"extra\": {\r\n \t\t\"bar\": {\r\n \t\t\t\"type\": \"group\",\r\n \t\t\t\"width\": 30,\r\n \t\t\t\"meterBorde\": 1,\r\n \t\t\t\"meterFillColor\": \"#FFFFFF\",\r\n \t\t\t\"activeBgColor\": \"#000000\",\r\n \t\t\t\"activeBgOpacity\": 0.08\r\n \t\t},\r\n \t}\r\n },\r\n\t\"area\":{\r\n\t\t\"type\": \"area\",\r\n\t\t\"color\": color,\r\n\t\t\"padding\": [15,15,0,15],\r\n\t\t\"xAxis\": {\r\n \"disableGrid\": true,\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n \"gridType\": \"dash\",\r\n \"dashLength\": 2,\r\n\t\t},\r\n\t\t\"legend\": {\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"area\": {\r\n\t\t\t\t\"type\": \"straight\",\r\n\t\t\t\t\"opacity\": 0.2,\r\n\t\t\t\t\"addLine\": true,\r\n\t\t\t\t\"width\": 2,\r\n\t\t\t\t\"gradient\": false\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t\"radar\":{\r\n\t\t\"type\": \"radar\",\r\n\t\t\"color\": color,\r\n\t\t\"padding\": [5,5,5,5],\r\n \"dataLabel\": false,\r\n\t\t\"legend\": {\r\n\t\t\t\"show\": true,\r\n\t\t\t\"position\": \"right\",\r\n \"lineHeight\": 25,\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"radar\": {\r\n\t\t\t\t\"gridType\": \"radar\",\r\n\t\t\t\t\"gridColor\": \"#CCCCCC\",\r\n\t\t\t\t\"gridCount\": 3,\r\n\t\t\t\t\"opacity\": 0.2,\r\n\t\t\t\t\"max\": 200\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t\"gauge\":{\r\n\t\t\"type\": \"gauge\",\r\n\t\t\"color\": color,\r\n\t\t\"title\": {\r\n\t\t\t\"name\": \"66Km/H\",\r\n\t\t\t\"fontSize\": 25,\r\n\t\t\t\"color\": \"#2fc25b\",\r\n\t\t\t\"offsetY\": 50\r\n\t\t},\r\n\t\t\"subtitle\": {\r\n\t\t\t\"name\": \"实时速度\",\r\n\t\t\t\"fontSize\": 15,\r\n\t\t\t\"color\": \"#1890ff\",\r\n\t\t\t\"offsetY\": -50\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"gauge\": {\r\n\t\t\t\t\"type\": \"default\",\r\n\t\t\t\t\"width\": 30,\r\n\t\t\t\t\"labelColor\": \"#666666\",\r\n\t\t\t\t\"startAngle\": 0.75,\r\n\t\t\t\t\"endAngle\": 0.25,\r\n\t\t\t\t\"startNumber\": 0,\r\n\t\t\t\t\"endNumber\": 100,\r\n\t\t\t\t\"labelFormat\": \"\",\r\n\t\t\t\t\"splitLine\": {\r\n\t\t\t\t\t\"fixRadius\": 0,\r\n\t\t\t\t\t\"splitNumber\": 10,\r\n\t\t\t\t\t\"width\": 30,\r\n\t\t\t\t\t\"color\": \"#FFFFFF\",\r\n\t\t\t\t\t\"childNumber\": 5,\r\n\t\t\t\t\t\"childWidth\": 12\r\n\t\t\t\t},\r\n\t\t\t\t\"pointer\": {\r\n\t\t\t\t\t\"width\": 24,\r\n\t\t\t\t\t\"color\": \"auto\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t\"candle\":{\r\n\t\t\"type\": \"candle\",\r\n\t\t\"color\": color,\r\n\t\t\"padding\": [15,15,0,15],\r\n\t\t\"enableScroll\": true,\r\n\t\t\"enableMarkLine\": true,\r\n\t\t\"dataLabel\": false,\r\n\t\t\"xAxis\": {\r\n\t\t\t\"labelCount\": 4,\r\n\t\t\t\"itemCount\": 40,\r\n\t\t\t\"disableGrid\": true,\r\n\t\t\t\"gridColor\": \"#CCCCCC\",\r\n\t\t\t\"gridType\": \"solid\",\r\n\t\t\t\"dashLength\": 4,\r\n\t\t\t\"scrollShow\": true,\r\n\t\t\t\"scrollAlign\": \"left\",\r\n\t\t\t\"scrollColor\": \"#A6A6A6\",\r\n\t\t\t\"scrollBackgroundColor\": \"#EFEBEF\"\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n\t\t},\r\n\t\t\"legend\": {\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"candle\": {\r\n\t\t\t\t\"color\": {\r\n\t\t\t\t\t\"upLine\": \"#f04864\",\r\n\t\t\t\t\t\"upFill\": \"#f04864\",\r\n\t\t\t\t\t\"downLine\": \"#2fc25b\",\r\n\t\t\t\t\t\"downFill\": \"#2fc25b\"\r\n\t\t\t\t},\r\n\t\t\t\t\"average\": {\r\n\t\t\t\t\t\"show\": true,\r\n\t\t\t\t\t\"name\": [\"MA5\",\"MA10\",\"MA30\"],\r\n\t\t\t\t\t\"day\": [5,10,20],\r\n\t\t\t\t\t\"color\": [\"#1890ff\",\"#2fc25b\",\"#facc14\"]\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t\"markLine\": {\r\n\t\t\t\t\"type\": \"dash\",\r\n\t\t\t\t\"dashLength\": 5,\r\n\t\t\t\t\"data\": [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"value\": 2150,\r\n\t\t\t\t\t\t\"lineColor\": \"#f04864\",\r\n\t\t\t\t\t\t\"showLabel\": true\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"value\": 2350,\r\n\t\t\t\t\t\t\"lineColor\": \"#f04864\",\r\n\t\t\t\t\t\t\"showLabel\": true\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t\"mix\":{\r\n\t\t\"type\": \"mix\",\r\n\t\t\"color\": color,\r\n\t\t\"padding\": [15,15,0,15],\r\n\t\t\"xAxis\": {\r\n \"disableGrid\": true,\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n\t\t\t\"disabled\": false,\r\n\t\t\t\"disableGrid\": false,\r\n\t\t\t\"splitNumber\": 5,\r\n\t\t\t\"gridType\": \"dash\",\r\n\t\t\t\"dashLength\": 4,\r\n\t\t\t\"gridColor\": \"#CCCCCC\",\r\n\t\t\t\"padding\": 10,\r\n\t\t\t\"showTitle\": true,\r\n\t\t\t\"data\": []\r\n\t\t},\r\n\t\t\"legend\": {\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"mix\": {\r\n\t\t\t\t\"column\": {\r\n\t\t\t\t\t\"width\": 20\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t\"scatter\":{\r\n\t\t\"type\": \"scatter\",\r\n\t\t\"color\":color,\r\n\t\t\"padding\":[15,15,0,15],\r\n \"dataLabel\":false,\r\n \"xAxis\": {\r\n \"disableGrid\": false,\r\n \"gridType\":\"dash\",\r\n \"splitNumber\":5,\r\n \"boundaryGap\":\"justify\",\r\n \"min\":0\r\n },\r\n \"yAxis\": {\r\n \"disableGrid\": false,\r\n \"gridType\":\"dash\",\r\n },\r\n \"legend\": {\r\n },\r\n \"extra\": {\r\n \t\"scatter\": {\r\n \t},\r\n }\r\n\t},\r\n\t\"bubble\":{\r\n\t\t\"type\": \"bubble\",\r\n\t\t\"color\":color,\r\n\t\t\"padding\":[15,15,0,15],\r\n \"xAxis\": {\r\n \"disableGrid\": false,\r\n \"gridType\":\"dash\",\r\n \"splitNumber\":5,\r\n \"boundaryGap\":\"justify\",\r\n \"min\":0,\r\n \"max\":250\r\n },\r\n \"yAxis\": {\r\n \"disableGrid\": false,\r\n \"gridType\":\"dash\",\r\n \"data\":[{\r\n \"min\":0,\r\n \"max\":150\r\n }]\r\n },\r\n \"legend\": {\r\n },\r\n \"extra\": {\r\n \t\"bubble\": {\r\n \"border\":2,\r\n \"opacity\": 0.5,\r\n \t},\r\n }\r\n\t}\r\n}\r\n\r\nexport default cfu;","/*!\n * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\n'use strict';\n\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array<Object>} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n this._makeLocalGettersCache = Object.create(null);\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n if (useDevtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype[[104,111,116,85,112,100,97,116,101].map(function (item) {return String.fromCharCode(item)}).join('')] = function (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldVm.\n // using partial to return function with only arguments preserved in closure environment.\n computed[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index_cjs = {\n Store: Store,\n install: install,\n version: '3.6.2',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nmodule.exports = index_cjs;\n","import config from '../config.js'\r\nimport common from './alert.js'\r\nimport store from '../store.js'\r\n\r\nconst request = {\r\n\tgetToken(){\r\n\t\tlet user=store.state.token\r\n\t\t// console.log(user);\r\n\t\tif(user){\r\n\t\t\tthis.post(\"/api/Accounts/RefreshToken\",{token:user.token,refreshToken:user.refreshToken},(data,res)=>{\r\n\t\t\t\tstore.commit('saveToken', res)\r\n\t\t\t\tuni.setStorageSync(\"token\", res)\r\n\t\t\t})\r\n\t\t}else{\r\n\t\t\treturn\r\n\t\t}\r\n\t\t\r\n\t},\r\n\tuploadFile(filePath, callback) {\r\n\t\tconst user = store.state.token || {};\r\n\t\t// if(!user.lawyerInfo) return common.askLogin();\r\n\t\tconsole.log(filePath, callback,2222222);\r\n\t\tuni.uploadFile({\r\n\t\t\turl: config.domain + '/api/Objects/integration/xxx',\r\n\t\t\tfilePath: filePath,\r\n\t\t\tname: 'file',\r\n\t\t\theader: {\r\n\t\t\t\t'Authorization': \"Bearer \"+ user.token || '',\r\n\t\t\t},\r\n\t\t\tsuccess (res) {\r\n\t\t\t\tconsole.log(res,333333);\r\n\t\t\t\tconst data = JSON.parse(res.data);\r\n\t\t\t\tif (data.status == -100) {\r\n\t\t\t\t\tcommon.askLogin()\r\n\t\t\t\t} else if (data.status == -1) {\r\n\t\t\t\t\tcommon.showError(data.msg)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\t\r\n\tuploadFile2(filePath, formdata, callback) {\r\n\t\tconst user = store.state.user || {};\r\n\t\tif(!user.lawyerInfo) return common.askLogin();\r\n\t\tconsole.log('1111111111111'+filePath)\r\n\t\tconsole.log('2222222222222'+formdata)\r\n\t\tconsole.log('3333333333333'+callback)\r\n\t\tuni.uploadFile({\r\n\t\t\turl: config.domain + '/file/uploadFile2',\r\n\t\t\tfilePath: filePath,\r\n\t\t\tname: 'file',\r\n\t\t\tformData: formdata,\r\n\t\t\theader: {\r\n\t\t\t\t'token': user.lawyerInfo.token || '',\r\n\t\t\t\t'login_type': user.login_type || 0,\r\n\t\t\t\t'who': user.who\r\n\t\t\t},\r\n\t\t\tsuccess (res) {\r\n\t\t\t\tconsole.log(res)\r\n\t\t\t\tconst data = JSON.parse(res.data);\r\n\t\t\t\tif (data.status == -100) {\r\n\t\t\t\t\tcommon.askLogin()\r\n\t\t\t\t} else if (data.status == -1) {\r\n\t\t\t\t\tcommon.showError(data.msg)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\r\n\tasync get(url, data, callback) {\r\n\r\n\t\tthis.getToken()\r\n\t\tconst user = store.state.token || {};\r\n\t\tawait uni.request({\r\n\t\t\turl: config.api + url, // 仅为示例,并非真实的接口地址\r\n\t\t\tmethod: 'GET',\r\n\t\t\tdata: data,\r\n\t\t\theader: {\r\n\t\t\t\t'Authorization': \"Bearer \"+ user.token || '',\r\n\t\t\t\t'content-type': 'application/json'\r\n\t\t\t},\r\n\t\t\tsuccess(res) {\r\n\t\t\t\tconst data = res.data;\r\n\t\t\t\t// console.log(data, '请求返回的数据', 1000000000000000)\r\n\t\t\t\tif (data.status == -100) {\r\n\t\t\t\t\tconsole.log('没有登录');\r\n\t\t\t\t\tcommon.askLogin()\r\n\t\t\t\t} else if (data.status == -1) {\r\n\t\t\t\t\tcommon.showError(data.msg)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\tpost(url, data, callback) {\r\n\t\t\r\n\t\tif(url!=\"/api/Accounts/RefreshToken\"&&user!={}){\r\n\t\t\tthis.getToken()\r\n\t\t}\r\n\t\tconst user = store.state.token || {};\r\n\t\ttry {\r\n\t\t\tuni.request({\r\n\t\t\t\turl: config.api + url, // 仅为示例,并非真实的接口地址\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\tdata: data,\r\n\t\t\t\theader: {\r\n\t\t\t\t\t'Authorization': \"Bearer \"+ user.token || '',\r\n\t\t\t\t},\r\n\t\t\t\tsuccess(res) {\r\n\t\t\t\t\tconst data = res.data;\r\n\t\t\t\t\t// console.log(res, '------------- 请求返回的数据 -------------')\r\n\t\t\t\t\tif (data.status == -100) {\r\n\t\t\t\t\t\tconsole.log('没有登录');\r\n\t\t\t\t\t\tcommon.askLogin()\r\n\t\t\t\t\t} else if (data.status == -1) {\r\n\t\t\t\t\t\tcommon.showError(data.msg)\r\n\t\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// 第一个参数是data,第二个是全部数据,有时候会用到msg之类的数据,\r\n\t\t\t\t\t\t// 默认只要第一个值即可获取数据\r\n\t\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tfail: err => {\r\n\t\t\t\t\tconsole.error(err, 8877897)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t} catch (e) {\r\n\t\t\tconsole.log(e)\r\n\t\t\t//TODO handle the exception\r\n\t\t}\r\n\t},\r\n\tpatch(url, data, callback) {\r\n\t\t\r\n\t\tif(url!=\"/api/Accounts/RefreshToken\"&&user!={}){\r\n\t\t\tthis.getToken()\r\n\t\t}\r\n\t\tconst user = store.state.token || {};\r\n\t\ttry {\r\n\t\t\tuni.request({\r\n\t\t\t\turl: config.api + url, // 仅为示例,并非真实的接口地址\r\n\t\t\t\tmethod: 'PATCH',\r\n\t\t\t\tdata: data,\r\n\t\t\t\theader: {\r\n\t\t\t\t\t'Authorization': \"Bearer \"+ user.token || '',\r\n\t\t\t\t},\r\n\t\t\t\tsuccess(res) {\r\n\t\t\t\t\tconst data = res.data;\r\n\t\t\t\t\t// console.log(res, '------------- 请求返回的数据 -------------')\r\n\t\t\t\t\tif (data.status == -100) {\r\n\t\t\t\t\t\tconsole.log('没有登录');\r\n\t\t\t\t\t\tcommon.askLogin()\r\n\t\t\t\t\t} else if (data.status == -1) {\r\n\t\t\t\t\t\tcommon.showError(data.msg)\r\n\t\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// 第一个参数是data,第二个是全部数据,有时候会用到msg之类的数据,\r\n\t\t\t\t\t\t// 默认只要第一个值即可获取数据\r\n\t\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tfail: err => {\r\n\t\t\t\t\tconsole.error(err, 8877897)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t} catch (e) {\r\n\t\t\tconsole.log(e)\r\n\t\t\t//TODO handle the exception\r\n\t\t}\r\n\t},\r\n\tget2(url, data, callback) {\r\n\t\tconst user = store.state.user || {};\r\n\t\tuni.request({\r\n\t\t\turl: config.domain + url, // 仅为示例,并非真实的接口地址\r\n\t\t\tmethod: 'GET',\r\n\t\t\tdata: data,\r\n\t\t\theader: {\r\n\t\t\t\t'token': user.token || '',\r\n\t\t\t\t'login_type': user.login_type || 0\r\n\t\t\t},\r\n\t\t\tsuccess(res) {\r\n\t\t\t\tconst data = res.data;\r\n\t\t\t\t// console.log(data, '请求返回的数据', 1000000000000000)\r\n\t\t\t\tif (data.status == -100) {\r\n\t\t\t\t\tconsole.log('没有登录');\r\n\t\t\t\t\tcommon.askLogin()\r\n\t\t\t\t} else if (data.status == -1) {\r\n\t\t\t\t\tcommon.showError(data.msg)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\t\r\n\tpost2(url, data, callback) {\r\n\t\tconst user = store.state.user || {};\r\n\t\ttry {\r\n\t\t\tuni.request({\r\n\t\t\t\turl: config.domain + url, // 仅为示例,并非真实的接口地址\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\tdata: data,\r\n\t\t\t\theader: {\r\n\t\t\t\t\t'token': user.lawyerInfo.token || '',\r\n\t\t\t\t\t'login_type': user.login_type || 0,\r\n\t\t\t\t\t'who': user.who\r\n\t\t\t\t},\r\n\t\t\t\tsuccess(res) {\r\n\t\t\t\t\tconst data = res.data;\r\n\t\t\t\t\tconsole.log(data, '------------- 请求返回的数据 -------------')\r\n\t\t\t\t\tif (data.status == -100) {\r\n\t\t\t\t\t\tconsole.log('没有登录');\r\n\t\t\t\t\t\tcommon.askLogin()\r\n\t\t\t\t\t} else if (data.status == -1) {\r\n\t\t\t\t\t\tcommon.showError(data.msg)\r\n\t\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// 第一个参数是data,第二个是全部数据,有时候会用到msg之类的数据,\r\n\t\t\t\t\t\t// 默认只要第一个值即可获取数据\r\n\t\t\t\t\t\tcallback(data.data, data)\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tfail: err => {\r\n\t\t\t\t\tconsole.error(err, 8877897)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t} catch (e) {\r\n\t\t\tconsole.log(e)\r\n\t\t\t//TODO handle the exception\r\n\t\t}\r\n\t},\r\n\t\r\n\t\r\n}\r\n\r\nexport default request\r\n","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() {\n return this || (typeof self === \"object\" && self);\n})() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() {\n return this || (typeof self === \"object\" && self);\n })() || Function(\"return this\")()\n);\n","const api = 'https://fx.anxincloud.cn';\r\nconst domain = 'https://fx.anxincloud.cn';\r\n\r\nconst devApi = 'https://121.36.37.70:8204';\r\nconst devDomain = 'https://121.36.37.70:8204';\r\n\r\nconst online = false; //是否线上模式\r\n\r\nexport default {\r\n domain: online ? domain : devDomain,\r\n api: online ? api : devApi\r\n}","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","const alert = {\r\n // 显示等待对话框\r\n showLoading: function(msg) {\r\n uni.showToast({\r\n title: msg,\r\n icon: \"loading\",\r\n duration: 100000\r\n });\r\n },\r\n // 隐藏等待对话框\r\n hideLoading: function(msg) {\r\n uni.hideToast();\r\n },\r\n // 成功\r\n showSuccess: function(msg) {\r\n uni.showToast({\r\n title: msg,\r\n icon: \"success\",\r\n duration: 2000\r\n });\r\n },\r\n //显示警告\r\n showWarning: function(msg) {\r\n uni.showToast({\r\n title: msg,\r\n icon: \"none\",\r\n duration: 2000\r\n });\r\n },\r\n\r\n showError: function(msg) {\r\n uni.showToast({\r\n title: msg,\r\n icon: \"none\",\r\n duration: 2000\r\n });\r\n },\r\n askLogin: function () {\r\n uni.showModal({\r\n title: '尚未登录',\r\n content: '前往授权登录页面吗?',\r\n success(res) {\r\n console.log(res)\r\n if (res.confirm) {\r\n uni.redirectTo({\r\n url: '/pages/login/login'\r\n })\r\n }\r\n }\r\n })\r\n }\r\n}\r\n\r\nexport default alert","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar formats = require('./formats');\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) { // eslint-disable-line func-name-matching\n return prefix + '[]';\n },\n indices: function indices(prefix, key) { // eslint-disable-line func-name-matching\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) { // eslint-disable-line func-name-matching\n return prefix;\n }\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaults = {\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar stringify = function stringify( // eslint-disable-line func-name-matching\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n) {\n var obj = object;\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;\n }\n\n obj = '';\n }\n\n if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (Array.isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n if (Array.isArray(obj)) {\n values = values.concat(stringify(\n obj[key],\n generateArrayPrefix(prefix, key),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n } else {\n values = values.concat(stringify(\n obj[key],\n prefix + (allowDots ? '.' + key : '[' + key + ']'),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n }\n\n return values;\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;\n var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;\n var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;\n var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;\n var sort = typeof options.sort === 'function' ? options.sort : null;\n var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;\n var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;\n var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;\n if (typeof options.format === 'undefined') {\n options.format = formats['default'];\n } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n var formatter = formats.formatters[options.format];\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (Array.isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (options.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = options.arrayFormat;\n } else if ('indices' in options) {\n arrayFormat = options.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (sort) {\n objKeys.sort(sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n keys = keys.concat(stringify(\n obj[key],\n key,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encode ? encoder : null,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n\n var joined = keys.join(delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n var obj;\n\n while (queue.length) {\n var item = queue.pop();\n obj = item.obj[item.prop];\n\n if (Array.isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n\n return obj;\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (Array.isArray(target)) {\n target.push(source);\n } else if (typeof target === 'object') {\n if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (Array.isArray(target) && !Array.isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (Array.isArray(target) && Array.isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n if (target[i] && typeof target[i] === 'object') {\n target[i] = merge(target[i], item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str) {\n try {\n return decodeURIComponent(str.replace(/\\+/g, ' '));\n } catch (e) {\n return str;\n }\n};\n\nvar encode = function encode(str) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = typeof str === 'string' ? str : String(str);\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n return compactQueue(queue);\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n merge: merge\n};\n","export default {\r\n \"id\": \"2852637\",\r\n \"name\": \"uniui图标库\",\r\n \"font_family\": \"uniicons\",\r\n \"css_prefix_text\": \"uniui-\",\r\n \"description\": \"\",\r\n \"glyphs\": [\r\n {\r\n \"icon_id\": \"25027049\",\r\n \"name\": \"yanse\",\r\n \"font_class\": \"color\",\r\n \"unicode\": \"e6cf\",\r\n \"unicode_decimal\": 59087\r\n },\r\n {\r\n \"icon_id\": \"25027048\",\r\n \"name\": \"wallet\",\r\n \"font_class\": \"wallet\",\r\n \"unicode\": \"e6b1\",\r\n \"unicode_decimal\": 59057\r\n },\r\n {\r\n \"icon_id\": \"25015720\",\r\n \"name\": \"settings-filled\",\r\n \"font_class\": \"settings-filled\",\r\n \"unicode\": \"e6ce\",\r\n \"unicode_decimal\": 59086\r\n },\r\n {\r\n \"icon_id\": \"25015434\",\r\n \"name\": \"shimingrenzheng-filled\",\r\n \"font_class\": \"auth-filled\",\r\n \"unicode\": \"e6cc\",\r\n \"unicode_decimal\": 59084\r\n },\r\n {\r\n \"icon_id\": \"24934246\",\r\n \"name\": \"shop-filled\",\r\n \"font_class\": \"shop-filled\",\r\n \"unicode\": \"e6cd\",\r\n \"unicode_decimal\": 59085\r\n },\r\n {\r\n \"icon_id\": \"24934159\",\r\n \"name\": \"staff-filled-01\",\r\n \"font_class\": \"staff-filled\",\r\n \"unicode\": \"e6cb\",\r\n \"unicode_decimal\": 59083\r\n },\r\n {\r\n \"icon_id\": \"24932461\",\r\n \"name\": \"VIP-filled\",\r\n \"font_class\": \"vip-filled\",\r\n \"unicode\": \"e6c6\",\r\n \"unicode_decimal\": 59078\r\n },\r\n {\r\n \"icon_id\": \"24932462\",\r\n \"name\": \"plus_circle_fill\",\r\n \"font_class\": \"plus-filled\",\r\n \"unicode\": \"e6c7\",\r\n \"unicode_decimal\": 59079\r\n },\r\n {\r\n \"icon_id\": \"24932463\",\r\n \"name\": \"folder_add-filled\",\r\n \"font_class\": \"folder-add-filled\",\r\n \"unicode\": \"e6c8\",\r\n \"unicode_decimal\": 59080\r\n },\r\n {\r\n \"icon_id\": \"24932464\",\r\n \"name\": \"yanse-filled\",\r\n \"font_class\": \"color-filled\",\r\n \"unicode\": \"e6c9\",\r\n \"unicode_decimal\": 59081\r\n },\r\n {\r\n \"icon_id\": \"24932465\",\r\n \"name\": \"tune-filled\",\r\n \"font_class\": \"tune-filled\",\r\n \"unicode\": \"e6ca\",\r\n \"unicode_decimal\": 59082\r\n },\r\n {\r\n \"icon_id\": \"24932455\",\r\n \"name\": \"a-rilidaka-filled\",\r\n \"font_class\": \"calendar-filled\",\r\n \"unicode\": \"e6c0\",\r\n \"unicode_decimal\": 59072\r\n },\r\n {\r\n \"icon_id\": \"24932456\",\r\n \"name\": \"notification-filled\",\r\n \"font_class\": \"notification-filled\",\r\n \"unicode\": \"e6c1\",\r\n \"unicode_decimal\": 59073\r\n },\r\n {\r\n \"icon_id\": \"24932457\",\r\n \"name\": \"wallet-filled\",\r\n \"font_class\": \"wallet-filled\",\r\n \"unicode\": \"e6c2\",\r\n \"unicode_decimal\": 59074\r\n },\r\n {\r\n \"icon_id\": \"24932458\",\r\n \"name\": \"paihangbang-filled\",\r\n \"font_class\": \"medal-filled\",\r\n \"unicode\": \"e6c3\",\r\n \"unicode_decimal\": 59075\r\n },\r\n {\r\n \"icon_id\": \"24932459\",\r\n \"name\": \"gift-filled\",\r\n \"font_class\": \"gift-filled\",\r\n \"unicode\": \"e6c4\",\r\n \"unicode_decimal\": 59076\r\n },\r\n {\r\n \"icon_id\": \"24932460\",\r\n \"name\": \"fire-filled\",\r\n \"font_class\": \"fire-filled\",\r\n \"unicode\": \"e6c5\",\r\n \"unicode_decimal\": 59077\r\n },\r\n {\r\n \"icon_id\": \"24928001\",\r\n \"name\": \"refreshempty\",\r\n \"font_class\": \"refreshempty\",\r\n \"unicode\": \"e6bf\",\r\n \"unicode_decimal\": 59071\r\n },\r\n {\r\n \"icon_id\": \"24926853\",\r\n \"name\": \"location-ellipse\",\r\n \"font_class\": \"location-filled\",\r\n \"unicode\": \"e6af\",\r\n \"unicode_decimal\": 59055\r\n },\r\n {\r\n \"icon_id\": \"24926735\",\r\n \"name\": \"person-filled\",\r\n \"font_class\": \"person-filled\",\r\n \"unicode\": \"e69d\",\r\n \"unicode_decimal\": 59037\r\n },\r\n {\r\n \"icon_id\": \"24926703\",\r\n \"name\": \"personadd-filled\",\r\n \"font_class\": \"personadd-filled\",\r\n \"unicode\": \"e698\",\r\n \"unicode_decimal\": 59032\r\n },\r\n {\r\n \"icon_id\": \"24923351\",\r\n \"name\": \"back\",\r\n \"font_class\": \"back\",\r\n \"unicode\": \"e6b9\",\r\n \"unicode_decimal\": 59065\r\n },\r\n {\r\n \"icon_id\": \"24923352\",\r\n \"name\": \"forward\",\r\n \"font_class\": \"forward\",\r\n \"unicode\": \"e6ba\",\r\n \"unicode_decimal\": 59066\r\n },\r\n {\r\n \"icon_id\": \"24923353\",\r\n \"name\": \"arrowthinright\",\r\n \"font_class\": \"arrow-right\",\r\n \"unicode\": \"e6bb\",\r\n \"unicode_decimal\": 59067\r\n },\r\n\t\t{\r\n\t\t \"icon_id\": \"24923353\",\r\n\t\t \"name\": \"arrowthinright\",\r\n\t\t \"font_class\": \"arrowthinright\",\r\n\t\t \"unicode\": \"e6bb\",\r\n\t\t \"unicode_decimal\": 59067\r\n\t\t},\r\n {\r\n \"icon_id\": \"24923354\",\r\n \"name\": \"arrowthinleft\",\r\n \"font_class\": \"arrow-left\",\r\n \"unicode\": \"e6bc\",\r\n \"unicode_decimal\": 59068\r\n },\r\n\t\t{\r\n\t\t \"icon_id\": \"24923354\",\r\n\t\t \"name\": \"arrowthinleft\",\r\n\t\t \"font_class\": \"arrowthinleft\",\r\n\t\t \"unicode\": \"e6bc\",\r\n\t\t \"unicode_decimal\": 59068\r\n\t\t},\r\n {\r\n \"icon_id\": \"24923355\",\r\n \"name\": \"arrowthinup\",\r\n \"font_class\": \"arrow-up\",\r\n \"unicode\": \"e6bd\",\r\n \"unicode_decimal\": 59069\r\n },\r\n\t\t{\r\n\t\t \"icon_id\": \"24923355\",\r\n\t\t \"name\": \"arrowthinup\",\r\n\t\t \"font_class\": \"arrowthinup\",\r\n\t\t \"unicode\": \"e6bd\",\r\n\t\t \"unicode_decimal\": 59069\r\n\t\t},\r\n {\r\n \"icon_id\": \"24923356\",\r\n \"name\": \"arrowthindown\",\r\n \"font_class\": \"arrow-down\",\r\n \"unicode\": \"e6be\",\r\n \"unicode_decimal\": 59070\r\n },{\r\n \"icon_id\": \"24923356\",\r\n \"name\": \"arrowthindown\",\r\n \"font_class\": \"arrowthindown\",\r\n \"unicode\": \"e6be\",\r\n \"unicode_decimal\": 59070\r\n },\r\n {\r\n \"icon_id\": \"24923349\",\r\n \"name\": \"arrowdown\",\r\n \"font_class\": \"bottom\",\r\n \"unicode\": \"e6b8\",\r\n \"unicode_decimal\": 59064\r\n },{\r\n \"icon_id\": \"24923349\",\r\n \"name\": \"arrowdown\",\r\n \"font_class\": \"arrowdown\",\r\n \"unicode\": \"e6b8\",\r\n \"unicode_decimal\": 59064\r\n },\r\n {\r\n \"icon_id\": \"24923346\",\r\n \"name\": \"arrowright\",\r\n \"font_class\": \"right\",\r\n \"unicode\": \"e6b5\",\r\n \"unicode_decimal\": 59061\r\n },\r\n\t\t{\r\n\t\t \"icon_id\": \"24923346\",\r\n\t\t \"name\": \"arrowright\",\r\n\t\t \"font_class\": \"arrowright\",\r\n\t\t \"unicode\": \"e6b5\",\r\n\t\t \"unicode_decimal\": 59061\r\n\t\t},\r\n {\r\n \"icon_id\": \"24923347\",\r\n \"name\": \"arrowup\",\r\n \"font_class\": \"top\",\r\n \"unicode\": \"e6b6\",\r\n \"unicode_decimal\": 59062\r\n },\r\n\t\t{\r\n\t\t \"icon_id\": \"24923347\",\r\n\t\t \"name\": \"arrowup\",\r\n\t\t \"font_class\": \"arrowup\",\r\n\t\t \"unicode\": \"e6b6\",\r\n\t\t \"unicode_decimal\": 59062\r\n\t\t},\r\n {\r\n \"icon_id\": \"24923348\",\r\n \"name\": \"arrowleft\",\r\n \"font_class\": \"left\",\r\n \"unicode\": \"e6b7\",\r\n \"unicode_decimal\": 59063\r\n },\r\n\t\t{\r\n\t\t \"icon_id\": \"24923348\",\r\n\t\t \"name\": \"arrowleft\",\r\n\t\t \"font_class\": \"arrowleft\",\r\n\t\t \"unicode\": \"e6b7\",\r\n\t\t \"unicode_decimal\": 59063\r\n\t\t},\r\n {\r\n \"icon_id\": \"24923334\",\r\n \"name\": \"eye\",\r\n \"font_class\": \"eye\",\r\n \"unicode\": \"e651\",\r\n \"unicode_decimal\": 58961\r\n },\r\n {\r\n \"icon_id\": \"24923335\",\r\n \"name\": \"eye-filled\",\r\n \"font_class\": \"eye-filled\",\r\n \"unicode\": \"e66a\",\r\n \"unicode_decimal\": 58986\r\n },\r\n {\r\n \"icon_id\": \"24923336\",\r\n \"name\": \"eye-slash\",\r\n \"font_class\": \"eye-slash\",\r\n \"unicode\": \"e6b3\",\r\n \"unicode_decimal\": 59059\r\n },\r\n {\r\n \"icon_id\": \"24923337\",\r\n \"name\": \"eye-slash-filled\",\r\n \"font_class\": \"eye-slash-filled\",\r\n \"unicode\": \"e6b4\",\r\n \"unicode_decimal\": 59060\r\n },\r\n {\r\n \"icon_id\": \"24923305\",\r\n \"name\": \"info-filled\",\r\n \"font_class\": \"info-filled\",\r\n \"unicode\": \"e649\",\r\n \"unicode_decimal\": 58953\r\n },\r\n {\r\n \"icon_id\": \"24923299\",\r\n \"name\": \"reload-01\",\r\n \"font_class\": \"reload\",\r\n \"unicode\": \"e6b2\",\r\n \"unicode_decimal\": 59058\r\n },\r\n {\r\n \"icon_id\": \"24923195\",\r\n \"name\": \"mic_slash_fill\",\r\n \"font_class\": \"micoff-filled\",\r\n \"unicode\": \"e6b0\",\r\n \"unicode_decimal\": 59056\r\n },\r\n {\r\n \"icon_id\": \"24923165\",\r\n \"name\": \"map-pin-ellipse\",\r\n \"font_class\": \"map-pin-ellipse\",\r\n \"unicode\": \"e6ac\",\r\n \"unicode_decimal\": 59052\r\n },\r\n {\r\n \"icon_id\": \"24923166\",\r\n \"name\": \"map-pin\",\r\n \"font_class\": \"map-pin\",\r\n \"unicode\": \"e6ad\",\r\n \"unicode_decimal\": 59053\r\n },\r\n {\r\n \"icon_id\": \"24923167\",\r\n \"name\": \"location\",\r\n \"font_class\": \"location\",\r\n \"unicode\": \"e6ae\",\r\n \"unicode_decimal\": 59054\r\n },\r\n {\r\n \"icon_id\": \"24923064\",\r\n \"name\": \"starhalf\",\r\n \"font_class\": \"starhalf\",\r\n \"unicode\": \"e683\",\r\n \"unicode_decimal\": 59011\r\n },\r\n {\r\n \"icon_id\": \"24923065\",\r\n \"name\": \"star\",\r\n \"font_class\": \"star\",\r\n \"unicode\": \"e688\",\r\n \"unicode_decimal\": 59016\r\n },\r\n {\r\n \"icon_id\": \"24923066\",\r\n \"name\": \"star-filled\",\r\n \"font_class\": \"star-filled\",\r\n \"unicode\": \"e68f\",\r\n \"unicode_decimal\": 59023\r\n },\r\n {\r\n \"icon_id\": \"24899646\",\r\n \"name\": \"a-rilidaka\",\r\n \"font_class\": \"calendar\",\r\n \"unicode\": \"e6a0\",\r\n \"unicode_decimal\": 59040\r\n },\r\n {\r\n \"icon_id\": \"24899647\",\r\n \"name\": \"fire\",\r\n \"font_class\": \"fire\",\r\n \"unicode\": \"e6a1\",\r\n \"unicode_decimal\": 59041\r\n },\r\n {\r\n \"icon_id\": \"24899648\",\r\n \"name\": \"paihangbang\",\r\n \"font_class\": \"medal\",\r\n \"unicode\": \"e6a2\",\r\n \"unicode_decimal\": 59042\r\n },\r\n {\r\n \"icon_id\": \"24899649\",\r\n \"name\": \"font\",\r\n \"font_class\": \"font\",\r\n \"unicode\": \"e6a3\",\r\n \"unicode_decimal\": 59043\r\n },\r\n {\r\n \"icon_id\": \"24899650\",\r\n \"name\": \"gift\",\r\n \"font_class\": \"gift\",\r\n \"unicode\": \"e6a4\",\r\n \"unicode_decimal\": 59044\r\n },\r\n {\r\n \"icon_id\": \"24899651\",\r\n \"name\": \"link\",\r\n \"font_class\": \"link\",\r\n \"unicode\": \"e6a5\",\r\n \"unicode_decimal\": 59045\r\n },\r\n {\r\n \"icon_id\": \"24899652\",\r\n \"name\": \"notification\",\r\n \"font_class\": \"notification\",\r\n \"unicode\": \"e6a6\",\r\n \"unicode_decimal\": 59046\r\n },\r\n {\r\n \"icon_id\": \"24899653\",\r\n \"name\": \"staff\",\r\n \"font_class\": \"staff\",\r\n \"unicode\": \"e6a7\",\r\n \"unicode_decimal\": 59047\r\n },\r\n {\r\n \"icon_id\": \"24899654\",\r\n \"name\": \"VIP\",\r\n \"font_class\": \"vip\",\r\n \"unicode\": \"e6a8\",\r\n \"unicode_decimal\": 59048\r\n },\r\n {\r\n \"icon_id\": \"24899655\",\r\n \"name\": \"folder_add\",\r\n \"font_class\": \"folder-add\",\r\n \"unicode\": \"e6a9\",\r\n \"unicode_decimal\": 59049\r\n },\r\n {\r\n \"icon_id\": \"24899656\",\r\n \"name\": \"tune\",\r\n \"font_class\": \"tune\",\r\n \"unicode\": \"e6aa\",\r\n \"unicode_decimal\": 59050\r\n },\r\n {\r\n \"icon_id\": \"24899657\",\r\n \"name\": \"shimingrenzheng\",\r\n \"font_class\": \"auth\",\r\n \"unicode\": \"e6ab\",\r\n \"unicode_decimal\": 59051\r\n },\r\n {\r\n \"icon_id\": \"24899565\",\r\n \"name\": \"person\",\r\n \"font_class\": \"person\",\r\n \"unicode\": \"e699\",\r\n \"unicode_decimal\": 59033\r\n },\r\n {\r\n \"icon_id\": \"24899566\",\r\n \"name\": \"email-filled\",\r\n \"font_class\": \"email-filled\",\r\n \"unicode\": \"e69a\",\r\n \"unicode_decimal\": 59034\r\n },\r\n {\r\n \"icon_id\": \"24899567\",\r\n \"name\": \"phone-filled\",\r\n \"font_class\": \"phone-filled\",\r\n \"unicode\": \"e69b\",\r\n \"unicode_decimal\": 59035\r\n },\r\n {\r\n \"icon_id\": \"24899568\",\r\n \"name\": \"phone\",\r\n \"font_class\": \"phone\",\r\n \"unicode\": \"e69c\",\r\n \"unicode_decimal\": 59036\r\n },\r\n {\r\n \"icon_id\": \"24899570\",\r\n \"name\": \"email\",\r\n \"font_class\": \"email\",\r\n \"unicode\": \"e69e\",\r\n \"unicode_decimal\": 59038\r\n },\r\n {\r\n \"icon_id\": \"24899571\",\r\n \"name\": \"personadd\",\r\n \"font_class\": \"personadd\",\r\n \"unicode\": \"e69f\",\r\n \"unicode_decimal\": 59039\r\n },\r\n {\r\n \"icon_id\": \"24899558\",\r\n \"name\": \"chatboxes-filled\",\r\n \"font_class\": \"chatboxes-filled\",\r\n \"unicode\": \"e692\",\r\n \"unicode_decimal\": 59026\r\n },\r\n {\r\n \"icon_id\": \"24899559\",\r\n \"name\": \"contact\",\r\n \"font_class\": \"contact\",\r\n \"unicode\": \"e693\",\r\n \"unicode_decimal\": 59027\r\n },\r\n {\r\n \"icon_id\": \"24899560\",\r\n \"name\": \"chatbubble-filled\",\r\n \"font_class\": \"chatbubble-filled\",\r\n \"unicode\": \"e694\",\r\n \"unicode_decimal\": 59028\r\n },\r\n {\r\n \"icon_id\": \"24899561\",\r\n \"name\": \"contact-filled\",\r\n \"font_class\": \"contact-filled\",\r\n \"unicode\": \"e695\",\r\n \"unicode_decimal\": 59029\r\n },\r\n {\r\n \"icon_id\": \"24899562\",\r\n \"name\": \"chatboxes\",\r\n \"font_class\": \"chatboxes\",\r\n \"unicode\": \"e696\",\r\n \"unicode_decimal\": 59030\r\n },\r\n {\r\n \"icon_id\": \"24899563\",\r\n \"name\": \"chatbubble\",\r\n \"font_class\": \"chatbubble\",\r\n \"unicode\": \"e697\",\r\n \"unicode_decimal\": 59031\r\n },\r\n {\r\n \"icon_id\": \"24881290\",\r\n \"name\": \"upload-filled\",\r\n \"font_class\": \"upload-filled\",\r\n \"unicode\": \"e68e\",\r\n \"unicode_decimal\": 59022\r\n },\r\n {\r\n \"icon_id\": \"24881292\",\r\n \"name\": \"upload\",\r\n \"font_class\": \"upload\",\r\n \"unicode\": \"e690\",\r\n \"unicode_decimal\": 59024\r\n },\r\n {\r\n \"icon_id\": \"24881293\",\r\n \"name\": \"weixin\",\r\n \"font_class\": \"weixin\",\r\n \"unicode\": \"e691\",\r\n \"unicode_decimal\": 59025\r\n },\r\n {\r\n \"icon_id\": \"24881274\",\r\n \"name\": \"compose\",\r\n \"font_class\": \"compose\",\r\n \"unicode\": \"e67f\",\r\n \"unicode_decimal\": 59007\r\n },\r\n {\r\n \"icon_id\": \"24881275\",\r\n \"name\": \"qq\",\r\n \"font_class\": \"qq\",\r\n \"unicode\": \"e680\",\r\n \"unicode_decimal\": 59008\r\n },\r\n {\r\n \"icon_id\": \"24881276\",\r\n \"name\": \"download-filled\",\r\n \"font_class\": \"download-filled\",\r\n \"unicode\": \"e681\",\r\n \"unicode_decimal\": 59009\r\n },\r\n {\r\n \"icon_id\": \"24881277\",\r\n \"name\": \"pengyouquan\",\r\n \"font_class\": \"pyq\",\r\n \"unicode\": \"e682\",\r\n \"unicode_decimal\": 59010\r\n },\r\n {\r\n \"icon_id\": \"24881279\",\r\n \"name\": \"sound\",\r\n \"font_class\": \"sound\",\r\n \"unicode\": \"e684\",\r\n \"unicode_decimal\": 59012\r\n },\r\n {\r\n \"icon_id\": \"24881280\",\r\n \"name\": \"trash-filled\",\r\n \"font_class\": \"trash-filled\",\r\n \"unicode\": \"e685\",\r\n \"unicode_decimal\": 59013\r\n },\r\n {\r\n \"icon_id\": \"24881281\",\r\n \"name\": \"sound-filled\",\r\n \"font_class\": \"sound-filled\",\r\n \"unicode\": \"e686\",\r\n \"unicode_decimal\": 59014\r\n },\r\n {\r\n \"icon_id\": \"24881282\",\r\n \"name\": \"trash\",\r\n \"font_class\": \"trash\",\r\n \"unicode\": \"e687\",\r\n \"unicode_decimal\": 59015\r\n },\r\n {\r\n \"icon_id\": \"24881284\",\r\n \"name\": \"videocam-filled\",\r\n \"font_class\": \"videocam-filled\",\r\n \"unicode\": \"e689\",\r\n \"unicode_decimal\": 59017\r\n },\r\n {\r\n \"icon_id\": \"24881285\",\r\n \"name\": \"spinner-cycle\",\r\n \"font_class\": \"spinner-cycle\",\r\n \"unicode\": \"e68a\",\r\n \"unicode_decimal\": 59018\r\n },\r\n {\r\n \"icon_id\": \"24881286\",\r\n \"name\": \"weibo\",\r\n \"font_class\": \"weibo\",\r\n \"unicode\": \"e68b\",\r\n \"unicode_decimal\": 59019\r\n },\r\n {\r\n \"icon_id\": \"24881288\",\r\n \"name\": \"videocam\",\r\n \"font_class\": \"videocam\",\r\n \"unicode\": \"e68c\",\r\n \"unicode_decimal\": 59020\r\n },\r\n {\r\n \"icon_id\": \"24881289\",\r\n \"name\": \"download\",\r\n \"font_class\": \"download\",\r\n \"unicode\": \"e68d\",\r\n \"unicode_decimal\": 59021\r\n },\r\n {\r\n \"icon_id\": \"24879601\",\r\n \"name\": \"help\",\r\n \"font_class\": \"help\",\r\n \"unicode\": \"e679\",\r\n \"unicode_decimal\": 59001\r\n },\r\n {\r\n \"icon_id\": \"24879602\",\r\n \"name\": \"navigate-filled\",\r\n \"font_class\": \"navigate-filled\",\r\n \"unicode\": \"e67a\",\r\n \"unicode_decimal\": 59002\r\n },\r\n {\r\n \"icon_id\": \"24879603\",\r\n \"name\": \"plusempty\",\r\n \"font_class\": \"plusempty\",\r\n \"unicode\": \"e67b\",\r\n \"unicode_decimal\": 59003\r\n },\r\n {\r\n \"icon_id\": \"24879604\",\r\n \"name\": \"smallcircle\",\r\n \"font_class\": \"smallcircle\",\r\n \"unicode\": \"e67c\",\r\n \"unicode_decimal\": 59004\r\n },\r\n {\r\n \"icon_id\": \"24879605\",\r\n \"name\": \"minus-filled\",\r\n \"font_class\": \"minus-filled\",\r\n \"unicode\": \"e67d\",\r\n \"unicode_decimal\": 59005\r\n },\r\n {\r\n \"icon_id\": \"24879606\",\r\n \"name\": \"micoff\",\r\n \"font_class\": \"micoff\",\r\n \"unicode\": \"e67e\",\r\n \"unicode_decimal\": 59006\r\n },\r\n {\r\n \"icon_id\": \"24879588\",\r\n \"name\": \"closeempty\",\r\n \"font_class\": \"closeempty\",\r\n \"unicode\": \"e66c\",\r\n \"unicode_decimal\": 58988\r\n },\r\n {\r\n \"icon_id\": \"24879589\",\r\n \"name\": \"clear\",\r\n \"font_class\": \"clear\",\r\n \"unicode\": \"e66d\",\r\n \"unicode_decimal\": 58989\r\n },\r\n {\r\n \"icon_id\": \"24879590\",\r\n \"name\": \"navigate\",\r\n \"font_class\": \"navigate\",\r\n \"unicode\": \"e66e\",\r\n \"unicode_decimal\": 58990\r\n },\r\n {\r\n \"icon_id\": \"24879591\",\r\n \"name\": \"minus\",\r\n \"font_class\": \"minus\",\r\n \"unicode\": \"e66f\",\r\n \"unicode_decimal\": 58991\r\n },\r\n {\r\n \"icon_id\": \"24879592\",\r\n \"name\": \"image\",\r\n \"font_class\": \"image\",\r\n \"unicode\": \"e670\",\r\n \"unicode_decimal\": 58992\r\n },\r\n {\r\n \"icon_id\": \"24879593\",\r\n \"name\": \"mic\",\r\n \"font_class\": \"mic\",\r\n \"unicode\": \"e671\",\r\n \"unicode_decimal\": 58993\r\n },\r\n {\r\n \"icon_id\": \"24879594\",\r\n \"name\": \"paperplane\",\r\n \"font_class\": \"paperplane\",\r\n \"unicode\": \"e672\",\r\n \"unicode_decimal\": 58994\r\n },\r\n {\r\n \"icon_id\": \"24879595\",\r\n \"name\": \"close\",\r\n \"font_class\": \"close\",\r\n \"unicode\": \"e673\",\r\n \"unicode_decimal\": 58995\r\n },\r\n {\r\n \"icon_id\": \"24879596\",\r\n \"name\": \"help-filled\",\r\n \"font_class\": \"help-filled\",\r\n \"unicode\": \"e674\",\r\n \"unicode_decimal\": 58996\r\n },\r\n {\r\n \"icon_id\": \"24879597\",\r\n \"name\": \"plus-filled\",\r\n \"font_class\": \"paperplane-filled\",\r\n \"unicode\": \"e675\",\r\n \"unicode_decimal\": 58997\r\n },\r\n {\r\n \"icon_id\": \"24879598\",\r\n \"name\": \"plus\",\r\n \"font_class\": \"plus\",\r\n \"unicode\": \"e676\",\r\n \"unicode_decimal\": 58998\r\n },\r\n {\r\n \"icon_id\": \"24879599\",\r\n \"name\": \"mic-filled\",\r\n \"font_class\": \"mic-filled\",\r\n \"unicode\": \"e677\",\r\n \"unicode_decimal\": 58999\r\n },\r\n {\r\n \"icon_id\": \"24879600\",\r\n \"name\": \"image-filled\",\r\n \"font_class\": \"image-filled\",\r\n \"unicode\": \"e678\",\r\n \"unicode_decimal\": 59000\r\n },\r\n {\r\n \"icon_id\": \"24855900\",\r\n \"name\": \"locked-filled\",\r\n \"font_class\": \"locked-filled\",\r\n \"unicode\": \"e668\",\r\n \"unicode_decimal\": 58984\r\n },\r\n {\r\n \"icon_id\": \"24855901\",\r\n \"name\": \"info\",\r\n \"font_class\": \"info\",\r\n \"unicode\": \"e669\",\r\n \"unicode_decimal\": 58985\r\n },\r\n {\r\n \"icon_id\": \"24855903\",\r\n \"name\": \"locked\",\r\n \"font_class\": \"locked\",\r\n \"unicode\": \"e66b\",\r\n \"unicode_decimal\": 58987\r\n },\r\n {\r\n \"icon_id\": \"24855884\",\r\n \"name\": \"camera-filled\",\r\n \"font_class\": \"camera-filled\",\r\n \"unicode\": \"e658\",\r\n \"unicode_decimal\": 58968\r\n },\r\n {\r\n \"icon_id\": \"24855885\",\r\n \"name\": \"chat-filled\",\r\n \"font_class\": \"chat-filled\",\r\n \"unicode\": \"e659\",\r\n \"unicode_decimal\": 58969\r\n },\r\n {\r\n \"icon_id\": \"24855886\",\r\n \"name\": \"camera\",\r\n \"font_class\": \"camera\",\r\n \"unicode\": \"e65a\",\r\n \"unicode_decimal\": 58970\r\n },\r\n {\r\n \"icon_id\": \"24855887\",\r\n \"name\": \"circle\",\r\n \"font_class\": \"circle\",\r\n \"unicode\": \"e65b\",\r\n \"unicode_decimal\": 58971\r\n },\r\n {\r\n \"icon_id\": \"24855888\",\r\n \"name\": \"checkmarkempty\",\r\n \"font_class\": \"checkmarkempty\",\r\n \"unicode\": \"e65c\",\r\n \"unicode_decimal\": 58972\r\n },\r\n {\r\n \"icon_id\": \"24855889\",\r\n \"name\": \"chat\",\r\n \"font_class\": \"chat\",\r\n \"unicode\": \"e65d\",\r\n \"unicode_decimal\": 58973\r\n },\r\n {\r\n \"icon_id\": \"24855890\",\r\n \"name\": \"circle-filled\",\r\n \"font_class\": \"circle-filled\",\r\n \"unicode\": \"e65e\",\r\n \"unicode_decimal\": 58974\r\n },\r\n {\r\n \"icon_id\": \"24855891\",\r\n \"name\": \"flag\",\r\n \"font_class\": \"flag\",\r\n \"unicode\": \"e65f\",\r\n \"unicode_decimal\": 58975\r\n },\r\n {\r\n \"icon_id\": \"24855892\",\r\n \"name\": \"flag-filled\",\r\n \"font_class\": \"flag-filled\",\r\n \"unicode\": \"e660\",\r\n \"unicode_decimal\": 58976\r\n },\r\n {\r\n \"icon_id\": \"24855893\",\r\n \"name\": \"gear-filled\",\r\n \"font_class\": \"gear-filled\",\r\n \"unicode\": \"e661\",\r\n \"unicode_decimal\": 58977\r\n },\r\n {\r\n \"icon_id\": \"24855894\",\r\n \"name\": \"home\",\r\n \"font_class\": \"home\",\r\n \"unicode\": \"e662\",\r\n \"unicode_decimal\": 58978\r\n },\r\n {\r\n \"icon_id\": \"24855895\",\r\n \"name\": \"home-filled\",\r\n \"font_class\": \"home-filled\",\r\n \"unicode\": \"e663\",\r\n \"unicode_decimal\": 58979\r\n },\r\n {\r\n \"icon_id\": \"24855896\",\r\n \"name\": \"gear\",\r\n \"font_class\": \"gear\",\r\n \"unicode\": \"e664\",\r\n \"unicode_decimal\": 58980\r\n },\r\n {\r\n \"icon_id\": \"24855897\",\r\n \"name\": \"smallcircle-filled\",\r\n \"font_class\": \"smallcircle-filled\",\r\n \"unicode\": \"e665\",\r\n \"unicode_decimal\": 58981\r\n },\r\n {\r\n \"icon_id\": \"24855898\",\r\n \"name\": \"map-filled\",\r\n \"font_class\": \"map-filled\",\r\n \"unicode\": \"e666\",\r\n \"unicode_decimal\": 58982\r\n },\r\n {\r\n \"icon_id\": \"24855899\",\r\n \"name\": \"map\",\r\n \"font_class\": \"map\",\r\n \"unicode\": \"e667\",\r\n \"unicode_decimal\": 58983\r\n },\r\n {\r\n \"icon_id\": \"24855825\",\r\n \"name\": \"refresh-filled\",\r\n \"font_class\": \"refresh-filled\",\r\n \"unicode\": \"e656\",\r\n \"unicode_decimal\": 58966\r\n },\r\n {\r\n \"icon_id\": \"24855826\",\r\n \"name\": \"refresh\",\r\n \"font_class\": \"refresh\",\r\n \"unicode\": \"e657\",\r\n \"unicode_decimal\": 58967\r\n },\r\n {\r\n \"icon_id\": \"24855808\",\r\n \"name\": \"cloud-upload\",\r\n \"font_class\": \"cloud-upload\",\r\n \"unicode\": \"e645\",\r\n \"unicode_decimal\": 58949\r\n },\r\n {\r\n \"icon_id\": \"24855809\",\r\n \"name\": \"cloud-download-filled\",\r\n \"font_class\": \"cloud-download-filled\",\r\n \"unicode\": \"e646\",\r\n \"unicode_decimal\": 58950\r\n },\r\n {\r\n \"icon_id\": \"24855810\",\r\n \"name\": \"cloud-download\",\r\n \"font_class\": \"cloud-download\",\r\n \"unicode\": \"e647\",\r\n \"unicode_decimal\": 58951\r\n },\r\n {\r\n \"icon_id\": \"24855811\",\r\n \"name\": \"cloud-upload-filled\",\r\n \"font_class\": \"cloud-upload-filled\",\r\n \"unicode\": \"e648\",\r\n \"unicode_decimal\": 58952\r\n },\r\n {\r\n \"icon_id\": \"24855813\",\r\n \"name\": \"redo\",\r\n \"font_class\": \"redo\",\r\n \"unicode\": \"e64a\",\r\n \"unicode_decimal\": 58954\r\n },\r\n {\r\n \"icon_id\": \"24855814\",\r\n \"name\": \"images-filled\",\r\n \"font_class\": \"images-filled\",\r\n \"unicode\": \"e64b\",\r\n \"unicode_decimal\": 58955\r\n },\r\n {\r\n \"icon_id\": \"24855815\",\r\n \"name\": \"undo-filled\",\r\n \"font_class\": \"undo-filled\",\r\n \"unicode\": \"e64c\",\r\n \"unicode_decimal\": 58956\r\n },\r\n {\r\n \"icon_id\": \"24855816\",\r\n \"name\": \"more\",\r\n \"font_class\": \"more\",\r\n \"unicode\": \"e64d\",\r\n \"unicode_decimal\": 58957\r\n },\r\n {\r\n \"icon_id\": \"24855817\",\r\n \"name\": \"more-filled\",\r\n \"font_class\": \"more-filled\",\r\n \"unicode\": \"e64e\",\r\n \"unicode_decimal\": 58958\r\n },\r\n {\r\n \"icon_id\": \"24855818\",\r\n \"name\": \"undo\",\r\n \"font_class\": \"undo\",\r\n \"unicode\": \"e64f\",\r\n \"unicode_decimal\": 58959\r\n },\r\n {\r\n \"icon_id\": \"24855819\",\r\n \"name\": \"images\",\r\n \"font_class\": \"images\",\r\n \"unicode\": \"e650\",\r\n \"unicode_decimal\": 58960\r\n },\r\n {\r\n \"icon_id\": \"24855821\",\r\n \"name\": \"paperclip\",\r\n \"font_class\": \"paperclip\",\r\n \"unicode\": \"e652\",\r\n \"unicode_decimal\": 58962\r\n },\r\n {\r\n \"icon_id\": \"24855822\",\r\n \"name\": \"settings\",\r\n \"font_class\": \"settings\",\r\n \"unicode\": \"e653\",\r\n \"unicode_decimal\": 58963\r\n },\r\n {\r\n \"icon_id\": \"24855823\",\r\n \"name\": \"search\",\r\n \"font_class\": \"search\",\r\n \"unicode\": \"e654\",\r\n \"unicode_decimal\": 58964\r\n },\r\n {\r\n \"icon_id\": \"24855824\",\r\n \"name\": \"redo-filled\",\r\n \"font_class\": \"redo-filled\",\r\n \"unicode\": \"e655\",\r\n \"unicode_decimal\": 58965\r\n },\r\n {\r\n \"icon_id\": \"24841702\",\r\n \"name\": \"list\",\r\n \"font_class\": \"list\",\r\n \"unicode\": \"e644\",\r\n \"unicode_decimal\": 58948\r\n },\r\n {\r\n \"icon_id\": \"24841489\",\r\n \"name\": \"mail-open-filled\",\r\n \"font_class\": \"mail-open-filled\",\r\n \"unicode\": \"e63a\",\r\n \"unicode_decimal\": 58938\r\n },\r\n {\r\n \"icon_id\": \"24841491\",\r\n \"name\": \"hand-thumbsdown-filled\",\r\n \"font_class\": \"hand-down-filled\",\r\n \"unicode\": \"e63c\",\r\n \"unicode_decimal\": 58940\r\n },\r\n {\r\n \"icon_id\": \"24841492\",\r\n \"name\": \"hand-thumbsdown\",\r\n \"font_class\": \"hand-down\",\r\n \"unicode\": \"e63d\",\r\n \"unicode_decimal\": 58941\r\n },\r\n {\r\n \"icon_id\": \"24841493\",\r\n \"name\": \"hand-thumbsup-filled\",\r\n \"font_class\": \"hand-up-filled\",\r\n \"unicode\": \"e63e\",\r\n \"unicode_decimal\": 58942\r\n },\r\n {\r\n \"icon_id\": \"24841494\",\r\n \"name\": \"hand-thumbsup\",\r\n \"font_class\": \"hand-up\",\r\n \"unicode\": \"e63f\",\r\n \"unicode_decimal\": 58943\r\n },\r\n {\r\n \"icon_id\": \"24841496\",\r\n \"name\": \"heart-filled\",\r\n \"font_class\": \"heart-filled\",\r\n \"unicode\": \"e641\",\r\n \"unicode_decimal\": 58945\r\n },\r\n {\r\n \"icon_id\": \"24841498\",\r\n \"name\": \"mail-open\",\r\n \"font_class\": \"mail-open\",\r\n \"unicode\": \"e643\",\r\n \"unicode_decimal\": 58947\r\n },\r\n {\r\n \"icon_id\": \"24841488\",\r\n \"name\": \"heart\",\r\n \"font_class\": \"heart\",\r\n \"unicode\": \"e639\",\r\n \"unicode_decimal\": 58937\r\n },\r\n {\r\n \"icon_id\": \"24839963\",\r\n \"name\": \"loop\",\r\n \"font_class\": \"loop\",\r\n \"unicode\": \"e633\",\r\n \"unicode_decimal\": 58931\r\n },\r\n {\r\n \"icon_id\": \"24839866\",\r\n \"name\": \"pulldown\",\r\n \"font_class\": \"pulldown\",\r\n \"unicode\": \"e632\",\r\n \"unicode_decimal\": 58930\r\n },\r\n {\r\n \"icon_id\": \"24813798\",\r\n \"name\": \"scan\",\r\n \"font_class\": \"scan\",\r\n \"unicode\": \"e62a\",\r\n \"unicode_decimal\": 58922\r\n },\r\n {\r\n \"icon_id\": \"24813786\",\r\n \"name\": \"bars\",\r\n \"font_class\": \"bars\",\r\n \"unicode\": \"e627\",\r\n \"unicode_decimal\": 58919\r\n },\r\n {\r\n \"icon_id\": \"24813788\",\r\n \"name\": \"cart-filled\",\r\n \"font_class\": \"cart-filled\",\r\n \"unicode\": \"e629\",\r\n \"unicode_decimal\": 58921\r\n },\r\n {\r\n \"icon_id\": \"24813790\",\r\n \"name\": \"checkbox\",\r\n \"font_class\": \"checkbox\",\r\n \"unicode\": \"e62b\",\r\n \"unicode_decimal\": 58923\r\n },\r\n {\r\n \"icon_id\": \"24813791\",\r\n \"name\": \"checkbox-filled\",\r\n \"font_class\": \"checkbox-filled\",\r\n \"unicode\": \"e62c\",\r\n \"unicode_decimal\": 58924\r\n },\r\n {\r\n \"icon_id\": \"24813794\",\r\n \"name\": \"shop\",\r\n \"font_class\": \"shop\",\r\n \"unicode\": \"e62f\",\r\n \"unicode_decimal\": 58927\r\n },\r\n {\r\n \"icon_id\": \"24813795\",\r\n \"name\": \"headphones\",\r\n \"font_class\": \"headphones\",\r\n \"unicode\": \"e630\",\r\n \"unicode_decimal\": 58928\r\n },\r\n {\r\n \"icon_id\": \"24813796\",\r\n \"name\": \"cart\",\r\n \"font_class\": \"cart\",\r\n \"unicode\": \"e631\",\r\n \"unicode_decimal\": 58929\r\n }\r\n ]\r\n}\r\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nmodule.exports = {\n 'default': 'RFC3986',\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return value;\n }\n },\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n parameterLimit: 1000,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n\n for (var i = 0; i < parts.length; ++i) {\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder);\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder);\n val = options.decoder(part.slice(pos + 1), defaults.decoder);\n }\n if (has.call(obj, key)) {\n obj[key] = [].concat(obj[key]).concat(val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options) {\n var leaf = val;\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]') {\n obj = [];\n obj = obj.concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys\n // that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while ((segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options);\n};\n\nmodule.exports = function (str, opts) {\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;\n options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;\n options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;\n options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;\n options.parseArrays = options.parseArrays !== false;\n options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;\n options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;\n options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;\n options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;\n options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;\n options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options);\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","class Request {\r\n constructor(options = {}) {\r\n // 请求的根路径\r\n this.baseUrl = options.baseUrl || ''\r\n // 请求的 url 地址\r\n this.url = options.url || ''\r\n // 请求方式\r\n this.method = 'GET'\r\n // 请求的参数对象\r\n this.data = null\r\n // header 请求头\r\n this.header = options.header || {}\r\n this.beforeRequest = null\r\n this.afterRequest = null\r\n }\r\n\r\n get(url, data = {}) {\r\n this.method = 'GET'\r\n this.url = this.baseUrl + url\r\n this.data = data\r\n return this._()\r\n }\r\n\r\n post(url, data = {}) {\r\n this.method = 'POST'\r\n this.url = this.baseUrl + url\r\n this.data = data\r\n return this._()\r\n }\r\n\r\n put(url, data = {}) {\r\n this.method = 'PUT'\r\n this.url = this.baseUrl + url\r\n this.data = data\r\n return this._()\r\n }\r\n\r\n delete(url, data = {}) {\r\n this.method = 'DELETE'\r\n this.url = this.baseUrl + url\r\n this.data = data\r\n return this._()\r\n }\r\n\r\n _() {\r\n // 清空 header 对象\r\n this.header = {}\r\n // 请求之前做一些事\r\n this.beforeRequest && typeof this.beforeRequest === 'function' && this.beforeRequest(this)\r\n // 发起请求\r\n return new Promise((resolve, reject) => {\r\n let weixin = wx\r\n // 适配 uniapp\r\n if ('undefined' !== typeof uni) {\r\n weixin = uni\r\n }\r\n weixin.request({\r\n url: this.url,\r\n method: this.method,\r\n data: this.data,\r\n header: this.header,\r\n success: (res) => { resolve(res) },\r\n fail: (err) => { reject(err) },\r\n complete: (res) => {\r\n // 请求完成以后做一些事情\r\n this.afterRequest && typeof this.afterRequest === 'function' && this.afterRequest(res)\r\n }\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport const $http = new Request()","/*!\n * Vue.js v2.6.11\n * (c) 2014-2022 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n if (vm.$options && vm.$options.__file) { // fixed by xxxxxx\n return ('') + vm.$options.__file\n }\n return '<Root>'\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm && vm.$options.name !== 'PageBody') {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n !vm.$options.isReserved && tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.SharedObject.target) {\n Dep.SharedObject.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\n// fixed by xxxxxx (nvue shared vuex)\n/* eslint-disable no-undef */\nDep.SharedObject = {};\nDep.SharedObject.target = null;\nDep.SharedObject.targetStack = [];\n\nfunction pushTarget (target) {\n Dep.SharedObject.targetStack.push(target);\n Dep.SharedObject.target = target;\n Dep.target = target;\n}\n\nfunction popTarget () {\n Dep.SharedObject.targetStack.pop();\n Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1];\n Dep.target = Dep.SharedObject.target;\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑\n if(value.push !== value.__proto__.push){\n copyAugment(value, arrayMethods, arrayKeys);\n } else {\n protoAugment(value, arrayMethods);\n }\n }\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.SharedObject.target) { // fixed by xxxxxx\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\n/* */\n\n// fixed by xxxxxx (mp properties)\nfunction extractPropertiesFromVNodeData(data, Ctor, res, context) {\n var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties;\n if (isUndef(propOptions)) {\n return res\n }\n var externalClasses = Ctor.options.mpOptions.externalClasses || [];\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n var result = checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n // externalClass\n if (\n result &&\n res[key] &&\n externalClasses.indexOf(altKey) !== -1 &&\n context[camelize(res[key])]\n ) {\n // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串)\n res[key] = context[camelize(res[key])];\n }\n }\n }\n return res\n}\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag,\n context// fixed by xxxxxx\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, {}, context)\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, res, context)\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (Array.isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive$$1(vm, key, result[key]);\n }\n });\n toggleObserving(true);\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject)\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n // #6574 in case the inject object is observed...\n if (key === '__ob__') { continue }\n var provideKey = inject[key].from;\n var source = vm;\n while (source) {\n if (source._provided && hasOwn(source._provided, provideKey)) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (!source) {\n if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = typeof provideDefault === 'function'\n ? provideDefault.call(vm)\n : provideDefault;\n } else if (process.env.NODE_ENV !== 'production') {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n }\n return result\n }\n}\n\n/* */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n if (!children || !children.length) {\n return {}\n }\n var slots = {};\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data && data.slot != null\n ) {\n var name = data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n } else {\n slot.push(child);\n }\n } else {\n // fixed by xxxxxx 临时 hack 掉 uni-app 中的异步 name slot page\n if(child.asyncMeta && child.asyncMeta.data && child.asyncMeta.data.slot === 'page'){\n (slots['page'] || (slots['page'] = [])).push(child);\n }else{\n (slots.default || (slots.default = [])).push(child);\n }\n }\n }\n // ignore slots that contains only whitespace\n for (var name$1 in slots) {\n if (slots[name$1].every(isWhitespace)) {\n delete slots[name$1];\n }\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\n/* */\n\nfunction normalizeScopedSlots (\n slots,\n normalSlots,\n prevSlots\n) {\n var res;\n var hasNormalSlots = Object.keys(normalSlots).length > 0;\n var isStable = slots ? !!slots.$stable : !hasNormalSlots;\n var key = slots && slots.$key;\n if (!slots) {\n res = {};\n } else if (slots._normalized) {\n // fast path 1: child component re-render only, parent did not change\n return slots._normalized\n } else if (\n isStable &&\n prevSlots &&\n prevSlots !== emptyObject &&\n key === prevSlots.$key &&\n !hasNormalSlots &&\n !prevSlots.$hasNormal\n ) {\n // fast path 2: stable scoped slots w/ no normal slots to proxy,\n // only need to normalize once\n return prevSlots\n } else {\n res = {};\n for (var key$1 in slots) {\n if (slots[key$1] && key$1[0] !== '$') {\n res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\n }\n }\n }\n // expose normal slots on scopedSlots\n for (var key$2 in normalSlots) {\n if (!(key$2 in res)) {\n res[key$2] = proxyNormalSlot(normalSlots, key$2);\n }\n }\n // avoriaz seems to mock a non-extensible $scopedSlots object\n // and when that is passed down this would cause an error\n if (slots && Object.isExtensible(slots)) {\n (slots)._normalized = res;\n }\n def(res, '$stable', isStable);\n def(res, '$key', key);\n def(res, '$hasNormal', hasNormalSlots);\n return res\n}\n\nfunction normalizeScopedSlot(normalSlots, key, fn) {\n var normalized = function () {\n var res = arguments.length ? fn.apply(null, arguments) : fn({});\n res = res && typeof res === 'object' && !Array.isArray(res)\n ? [res] // single vnode\n : normalizeChildren(res);\n return res && (\n res.length === 0 ||\n (res.length === 1 && res[0].isComment) // #9658\n ) ? undefined\n : res\n };\n // this is a slot using the new v-slot syntax without scope. although it is\n // compiled as a scoped slot, render fn users would expect it to be present\n // on this.$slots because the usage is semantically a normal slot.\n if (fn.proxy) {\n Object.defineProperty(normalSlots, key, {\n get: normalized,\n enumerable: true,\n configurable: true\n });\n }\n return normalized\n}\n\nfunction proxyNormalSlot(slots, key) {\n return function () { return slots[key]; }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i, i, i); // fixed by xxxxxx\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i, i, i); // fixed by xxxxxx\n }\n } else if (isObject(val)) {\n if (hasSymbol && val[Symbol.iterator]) {\n ret = [];\n var iterator = val[Symbol.iterator]();\n var result = iterator.next();\n while (!result.done) {\n ret.push(render(result.value, ret.length, i, i++)); // fixed by xxxxxx\n result = iterator.next();\n }\n } else {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i, i); // fixed by xxxxxx\n }\n }\n }\n if (!isDef(ret)) {\n ret = [];\n }\n (ret)._isVList = true;\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n name,\n fallback,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) { // scoped slot\n props = props || {};\n if (bindObject) {\n if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n warn(\n 'slot v-bind without argument expects an Object',\n this\n );\n }\n props = extend(extend({}, bindObject), props);\n }\n // fixed by xxxxxx app-plus scopedSlot\n nodes = scopedSlotFn(props, this, props._i) || fallback;\n } else {\n nodes = this.$slots[name] || fallback;\n }\n\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes)\n } else {\n return nodes\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\nfunction isKeyNotMatch (expect, actual) {\n if (Array.isArray(expect)) {\n return expect.indexOf(actual) === -1\n } else {\n return expect !== actual\n }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInKeyCode,\n eventKeyName,\n builtInKeyName\n) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName)\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key\n }\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n var camelizedKey = camelize(key);\n var hyphenatedKey = hyphenate(key);\n if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(\n this._renderProxy,\n null,\n this // for render fns generated for functional component templates\n );\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res,\n // the following are added in 2.6\n hasDynamicKeys,\n contentHashKey\n) {\n res = res || { $stable: !hasDynamicKeys };\n for (var i = 0; i < fns.length; i++) {\n var slot = fns[i];\n if (Array.isArray(slot)) {\n resolveScopedSlots(slot, res, hasDynamicKeys);\n } else if (slot) {\n // marker for reverse proxying v-slot without scope on this.$slots\n if (slot.proxy) {\n slot.fn.proxy = true;\n }\n res[slot.key] = slot.fn;\n }\n }\n if (contentHashKey) {\n (res).$key = contentHashKey;\n }\n return res\n}\n\n/* */\n\nfunction bindDynamicKeys (baseObj, values) {\n for (var i = 0; i < values.length; i += 2) {\n var key = values[i];\n if (typeof key === 'string' && key) {\n baseObj[values[i]] = values[i + 1];\n } else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {\n // null is a special value for explicitly removing a binding\n warn(\n (\"Invalid value for dynamic directive argument (expected string or null): \" + key),\n this\n );\n }\n }\n return baseObj\n}\n\n// helper to dynamically append modifier runtime markers to event names.\n// ensure only append when value is already string, otherwise it will be cast\n// to string and cause the type check to miss.\nfunction prependModifier (value, symbol) {\n return typeof value === 'string' ? symbol + value : value\n}\n\n/* */\n\nfunction installRenderHelpers (target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n target._d = bindDynamicKeys;\n target._p = prependModifier;\n}\n\n/* */\n\nfunction FunctionalRenderContext (\n data,\n props,\n children,\n parent,\n Ctor\n) {\n var this$1 = this;\n\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n // $flow-disable-line\n contextVm._original = parent;\n } else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // $flow-disable-line\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () {\n if (!this$1.$slots) {\n normalizeScopedSlots(\n data.scopedSlots,\n this$1.$slots = resolveSlots(children, parent)\n );\n }\n return this$1.$slots\n };\n\n Object.defineProperty(this, 'scopedSlots', ({\n enumerable: true,\n get: function get () {\n return normalizeScopedSlots(data.scopedSlots, this.slots())\n }\n }));\n\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\n }\n\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n if (vnode && !Array.isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode\n };\n } else {\n this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n contextVm,\n children\n) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n\n var renderContext = new FunctionalRenderContext(\n data,\n props,\n children,\n contextVm,\n Ctor\n );\n\n var vnode = options.render.call(null, renderContext._c, renderContext);\n\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)\n } else if (Array.isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n }\n return res\n }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n if (process.env.NODE_ENV !== 'production') {\n (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;\n }\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n/* */\n\n/* */\n\n/* */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (vnode, hydrating) {\n if (\n vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive\n ) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n } else {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n callHook(componentInstance, 'onServiceCreated');\n callHook(componentInstance, 'onServiceAttached');\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag, context); // fixed by xxxxxx\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n vnode, // we know it's MountedComponentVNode but flow doesn't\n parent // activeInstance in lifecycle state\n) {\n var options = {\n _isComponent: true,\n _parentVnode: vnode,\n parent: parent\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n var existing = hooks[key];\n var toMerge = componentVNodeHooks[key];\n if (existing !== toMerge && !(existing && existing._merged)) {\n hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\n }\n }\n}\n\nfunction mergeHook$1 (f1, f2) {\n var merged = function (a, b) {\n // flow complains about extra args which is why we use any\n f1(a, b);\n f2(a, b);\n };\n merged._merged = true;\n return merged\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input'\n ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n var existing = on[event];\n var callback = data.model.callback;\n if (isDef(existing)) {\n if (\n Array.isArray(existing)\n ? existing.indexOf(callback) === -1\n : existing !== callback\n ) {\n on[event] = [callback].concat(existing);\n }\n } else {\n on[event] = callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (process.env.NODE_ENV !== 'production' &&\n isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n ) {\n {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n if (process.env.NODE_ENV !== 'production' && isDef(data) && isDef(data.nativeOn)) {\n warn(\n (\"The .native modifier for v-on is only valid on components but it was used on <\" + tag + \">.\"),\n context\n );\n }\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (Array.isArray(vnode)) {\n return vnode\n } else if (isDef(vnode)) {\n if (isDef(ns)) { applyNS(vnode, ns); }\n if (isDef(data)) { registerDeepBindings(data); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && (\n isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n }\n}\n\nvar currentRenderingInstance = null;\n\nfunction renderMixin (Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var _parentVnode = ref._parentVnode;\n\n if (_parentVnode) {\n vm.$scopedSlots = normalizeScopedSlots(\n _parentVnode.data.scopedSlots,\n vm.$slots,\n vm.$scopedSlots\n );\n }\n\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n // There's no need to maintain a stack because all render fns are called\n // separately from one another. Nested component's render fns are called\n // when parent component is patched.\n currentRenderingInstance = vm;\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n } catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n } finally {\n currentRenderingInstance = null;\n }\n // if the returned array contains only a single node, allow it\n if (Array.isArray(vnode) && vnode.length === 1) {\n vnode = vnode[0];\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (\n comp.__esModule ||\n (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n ) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n var owner = currentRenderingInstance;\n if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n // already pending\n factory.owners.push(owner);\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (owner && !isDef(factory.owners)) {\n var owners = factory.owners = [owner];\n var sync = true;\n var timerLoading = null;\n var timerTimeout = null\n\n ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });\n\n var forceRender = function (renderCompleted) {\n for (var i = 0, l = owners.length; i < l; i++) {\n (owners[i]).$forceUpdate();\n }\n\n if (renderCompleted) {\n owners.length = 0;\n if (timerLoading !== null) {\n clearTimeout(timerLoading);\n timerLoading = null;\n }\n if (timerTimeout !== null) {\n clearTimeout(timerTimeout);\n timerTimeout = null;\n }\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender(true);\n } else {\n owners.length = 0;\n }\n });\n\n var reject = once(function (reason) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender(true);\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (isPromise(res)) {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isPromise(res.component)) {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n timerLoading = setTimeout(function () {\n timerLoading = null;\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender(false);\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n timerTimeout = setTimeout(function () {\n timerTimeout = null;\n if (isUndef(factory.resolved)) {\n reject(\n process.env.NODE_ENV !== 'production'\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn) {\n target.$on(event, fn);\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction createOnceHandler (event, fn) {\n var _target = target;\n return function onceHandler () {\n var res = fn.apply(null, arguments);\n if (res !== null) {\n _target.$off(event, onceHandler);\n }\n }\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\n target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n vm.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\n vm.$off(event[i$1], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (!fn) {\n vm._events[event] = null;\n return vm\n }\n // specific handler\n var cb;\n var i = cbs.length;\n while (i--) {\n cb = cbs[i];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i, 1);\n break\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (process.env.NODE_ENV !== 'production') {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n var info = \"event handler for \\\"\" + event + \"\\\"\";\n for (var i = 0, l = cbs.length; i < l; i++) {\n invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n }\n }\n return vm\n };\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction setActiveInstance(vm) {\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n return function () {\n activeInstance = prevActiveInstance;\n }\n}\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var restoreActiveInstance = setActiveInstance(vm);\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n restoreActiveInstance();\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren.\n\n // check if there are dynamic scopedSlots (hand-written or compiled but with\n // dynamic slot names). Static scoped slots compiled from template has the\n // \"$stable\" marker.\n var newScopedSlots = parentVnode.data.scopedSlots;\n var oldScopedSlots = vm.$scopedSlots;\n var hasDynamicScopedSlot = !!(\n (newScopedSlots && !newScopedSlots.$stable) ||\n (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)\n );\n\n // Any static slot children from the parent may have changed during parent's\n // update. Dynamic scoped slots may also have changed. In such cases, a forced\n // update is necessary to ensure correctness.\n var needsForceUpdate = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n hasDynamicScopedSlot\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = parentVnode.data.attrs || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n \n // fixed by xxxxxx update properties(mp runtime)\n vm._$updateProperties && vm._$updateProperties(vm);\n \n // update listeners\n listeners = listeners || emptyObject;\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n\n // resolve slots + force update if has children\n if (needsForceUpdate) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n var info = hook + \" hook\";\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n invokeWithErrorHandling(handlers[i], vm, null, vm, info);\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n popTarget();\n}\n\n/* */\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (process.env.NODE_ENV !== 'production') {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n// Async edge case #6566 requires saving the timestamp when event listeners are\n// attached. However, calling performance.now() has a perf overhead especially\n// if the page has thousands of event listeners. Instead, we take a timestamp\n// every time the scheduler flushes and use that for all event listeners\n// attached during that flush.\nvar currentFlushTimestamp = 0;\n\n// Async edge case fix requires storing an event listener's attach timestamp.\nvar getNow = Date.now;\n\n// Determine what event timestamp the browser is using. Annoyingly, the\n// timestamp can either be hi-res (relative to page load) or low-res\n// (relative to UNIX epoch), so in order to compare time we have to use the\n// same timestamp type when saving the flush timestamp.\n// All IE versions use low-res event timestamps, and have problematic clock\n// implementations (#9632)\nif (inBrowser && !isIE) {\n var performance = window.performance;\n if (\n performance &&\n typeof performance.now === 'function' &&\n getNow() > document.createEvent('Event').timeStamp\n ) {\n // if the event timestamp, although evaluated AFTER the Date.now(), is\n // smaller than it, it means the event is using a hi-res timestamp,\n // and we need to use the hi-res version for event listener timestamps as\n // well.\n getNow = function () { return performance.now(); };\n }\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n currentFlushTimestamp = getNow();\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n if (watcher.before) {\n watcher.before();\n }\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n flushSchedulerQueue();\n return\n }\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\n\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options,\n isRenderWatcher\n) {\n this.vm = vm;\n if (isRenderWatcher) {\n vm._watcher = this;\n }\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n this.before = options.before;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$2; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = process.env.NODE_ENV !== 'production'\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = noop;\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var i = this.deps.length;\n while (i--) {\n var dep = this.deps[i];\n if (!this.newDepIds.has(dep.id)) {\n dep.removeSub(this);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var i = this.deps.length;\n while (i--) {\n this.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this.deps[i].removeSub(this);\n }\n this.active = false;\n }\n};\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn(\n (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive$$1(props, key, value, function () {\n if (!isRoot && !isUpdatingChildComponent) {\n {\n if(vm.mpHost === 'mp-baidu' || vm.mpHost === 'mp-kuaishou' || vm.mpHost === 'mp-xhs'){//百度、快手、小红书 observer 在 setData callback 之后触发,直接忽略该 warn\n return\n }\n //fixed by xxxxxx __next_tick_pending,uni://form-field 时不告警\n if(\n key === 'value' && \n Array.isArray(vm.$options.behaviors) &&\n vm.$options.behaviors.indexOf('uni://form-field') !== -1\n ){\n return\n }\n if(vm._getFormData){\n return\n }\n var $parent = vm.$parent;\n while($parent){\n if($parent.__next_tick_pending){\n return \n }\n $parent = $parent.$parent;\n }\n }\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive$$1(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n toggleObserving(true);\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n process.env.NODE_ENV !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n } finally {\n popTarget();\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n // $flow-disable-line\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (process.env.NODE_ENV !== 'production' && getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (process.env.NODE_ENV !== 'production') {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : createGetterInvoker(userDef);\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : createGetterInvoker(userDef.get)\n : noop;\n sharedPropertyDefinition.set = userDef.set || noop;\n }\n if (process.env.NODE_ENV !== 'production' &&\n sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.SharedObject.target) {// fixed by xxxxxx\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction createGetterInvoker(fn) {\n return function computedGetter () {\n return fn.call(this, this)\n }\n}\n\nfunction initMethods (vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof methods[key] !== 'function') {\n warn(\n \"Method \\\"\" + key + \"\\\" has type \\\"\" + (typeof methods[key]) + \"\\\" in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n expOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (process.env.NODE_ENV !== 'production') {\n dataDef.set = function () {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n try {\n cb.call(vm, watcher.value);\n } catch (error) {\n handleError(error, vm, (\"callback for immediate watcher \\\"\" + (watcher.expression) + \"\\\"\"));\n }\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$3++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n startTag = \"vue-perf-start:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n !vm._$fallback && initInjections(vm); // resolve injections before data/props \n initState(vm);\n !vm._$fallback && initProvide(vm); // resolve provide after data/props\n !vm._$fallback && callHook(vm, 'created'); \n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = latest[key];\n }\n }\n return modified\n}\n\nfunction Vue (options) {\n if (process.env.NODE_ENV !== 'production' &&\n !(this instanceof Vue)\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (process.env.NODE_ENV !== 'production' && name) {\n validateComponentName(name);\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\n\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache;\n var keys = keepAliveInstance.keys;\n var _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var cachedNode = cache[key];\n if (cachedNode) {\n var name = getComponentName(cachedNode.componentOptions);\n if (name && !filter(name)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n}\n\nfunction pruneCacheEntry (\n cache,\n key,\n keys,\n current\n) {\n var cached$$1 = cache[key];\n if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n cached$$1.componentInstance.$destroy();\n }\n cache[key] = null;\n remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n\n created: function created () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n\n destroyed: function destroyed () {\n for (var key in this.cache) {\n pruneCacheEntry(this.cache, key, this.keys);\n }\n },\n\n mounted: function mounted () {\n var this$1 = this;\n\n this.$watch('include', function (val) {\n pruneCache(this$1, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(this$1, function (name) { return !matches(val, name); });\n });\n },\n\n render: function render () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n var ref = this;\n var include = ref.include;\n var exclude = ref.exclude;\n if (\n // not included\n (include && (!name || !matches(include, name))) ||\n // excluded\n (exclude && name && matches(exclude, name))\n ) {\n return vnode\n }\n\n var ref$1 = this;\n var cache = ref$1.cache;\n var keys = ref$1.keys;\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove(keys, key);\n keys.push(key);\n } else {\n cache[key] = vnode;\n keys.push(key);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n }\n\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0])\n }\n};\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n};\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (process.env.NODE_ENV !== 'production') {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive$$1\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n // 2.6 explicit observable API\n Vue.observable = function (obj) {\n observe(obj);\n return obj\n };\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n});\n\nVue.version = '2.6.11';\n\n/**\n * https://raw.githubusercontent.com/Tencent/westore/master/packages/westore/utils/diff.js\n */\nvar ARRAYTYPE = '[object Array]';\nvar OBJECTTYPE = '[object Object]';\n// const FUNCTIONTYPE = '[object Function]'\n\nfunction diff(current, pre) {\n var result = {};\n syncKeys(current, pre);\n _diff(current, pre, '', result);\n return result\n}\n\nfunction syncKeys(current, pre) {\n if (current === pre) { return }\n var rootCurrentType = type(current);\n var rootPreType = type(pre);\n if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n if(Object.keys(current).length >= Object.keys(pre).length){\n for (var key in pre) {\n var currentValue = current[key];\n if (currentValue === undefined) {\n current[key] = null;\n } else {\n syncKeys(currentValue, pre[key]);\n }\n }\n }\n } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n if (current.length >= pre.length) {\n pre.forEach(function (item, index) {\n syncKeys(current[index], item);\n });\n }\n }\n}\n\nfunction _diff(current, pre, path, result) {\n if (current === pre) { return }\n var rootCurrentType = type(current);\n var rootPreType = type(pre);\n if (rootCurrentType == OBJECTTYPE) {\n if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n setResult(result, path, current);\n } else {\n var loop = function ( key ) {\n var currentValue = current[key];\n var preValue = pre[key];\n var currentType = type(currentValue);\n var preType = type(preValue);\n if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n if (currentValue !== pre[key]) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n }\n } else if (currentType == ARRAYTYPE) {\n if (preType != ARRAYTYPE) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n } else {\n if (currentValue.length < preValue.length) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n } else {\n currentValue.forEach(function (item, index) {\n _diff(item, preValue[index], (path == '' ? '' : path + \".\") + key + '[' + index + ']', result);\n });\n }\n }\n } else if (currentType == OBJECTTYPE) {\n if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n } else {\n for (var subKey in currentValue) {\n _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + \".\") + key + '.' + subKey, result);\n }\n }\n }\n };\n\n for (var key in current) loop( key );\n }\n } else if (rootCurrentType == ARRAYTYPE) {\n if (rootPreType != ARRAYTYPE) {\n setResult(result, path, current);\n } else {\n if (current.length < pre.length) {\n setResult(result, path, current);\n } else {\n current.forEach(function (item, index) {\n _diff(item, pre[index], path + '[' + index + ']', result);\n });\n }\n }\n } else {\n setResult(result, path, current);\n }\n}\n\nfunction setResult(result, k, v) {\n // if (type(v) != FUNCTIONTYPE) {\n result[k] = v;\n // }\n}\n\nfunction type(obj) {\n return Object.prototype.toString.call(obj)\n}\n\n/* */\n\nfunction flushCallbacks$1(vm) {\n if (vm.__next_tick_callbacks && vm.__next_tick_callbacks.length) {\n if (process.env.VUE_APP_DEBUG) {\n var mpInstance = vm.$scope;\n console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +\n ']:flushCallbacks[' + vm.__next_tick_callbacks.length + ']');\n }\n var copies = vm.__next_tick_callbacks.slice(0);\n vm.__next_tick_callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n }\n}\n\nfunction hasRenderWatcher(vm) {\n return queue.find(function (watcher) { return vm._watcher === watcher; })\n}\n\nfunction nextTick$1(vm, cb) {\n //1.nextTick 之前 已 setData 且 setData 还未回调完成\n //2.nextTick 之前存在 render watcher\n if (!vm.__next_tick_pending && !hasRenderWatcher(vm)) {\n if(process.env.VUE_APP_DEBUG){\n var mpInstance = vm.$scope;\n console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +\n ']:nextVueTick');\n }\n return nextTick(cb, vm)\n }else{\n if(process.env.VUE_APP_DEBUG){\n var mpInstance$1 = vm.$scope;\n console.log('[' + (+new Date) + '][' + (mpInstance$1.is || mpInstance$1.route) + '][' + vm._uid +\n ']:nextMPTick');\n }\n }\n var _resolve;\n if (!vm.__next_tick_callbacks) {\n vm.__next_tick_callbacks = [];\n }\n vm.__next_tick_callbacks.push(function () {\n if (cb) {\n try {\n cb.call(vm);\n } catch (e) {\n handleError(e, vm, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(vm);\n }\n });\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\nfunction cloneWithData(vm) {\n // 确保当前 vm 所有数据被同步\n var ret = Object.create(null);\n var dataKeys = [].concat(\n Object.keys(vm._data || {}),\n Object.keys(vm._computedWatchers || {}));\n\n dataKeys.reduce(function(ret, key) {\n ret[key] = vm[key];\n return ret\n }, ret);\n\n // vue-composition-api\n var compositionApiState = vm.__composition_api_state__ || vm.__secret_vfa_state__;\n var rawBindings = compositionApiState && compositionApiState.rawBindings;\n if (rawBindings) {\n Object.keys(rawBindings).forEach(function (key) {\n ret[key] = vm[key];\n });\n }\n\n //TODO 需要把无用数据处理掉,比如 list=>l0 则 list 需要移除,否则多传输一份数据\n Object.assign(ret, vm.$mp.data || {});\n if (\n Array.isArray(vm.$options.behaviors) &&\n vm.$options.behaviors.indexOf('uni://form-field') !== -1\n ) { //form-field\n ret['name'] = vm.name;\n ret['value'] = vm.value;\n }\n\n return JSON.parse(JSON.stringify(ret))\n}\n\nvar patch = function(oldVnode, vnode) {\n var this$1 = this;\n\n if (vnode === null) { //destroy\n return\n }\n if (this.mpType === 'page' || this.mpType === 'component') {\n var mpInstance = this.$scope;\n var data = Object.create(null);\n try {\n data = cloneWithData(this);\n } catch (err) {\n console.error(err);\n }\n data.__webviewId__ = mpInstance.data.__webviewId__;\n var mpData = Object.create(null);\n Object.keys(data).forEach(function (key) { //仅同步 data 中有的数据\n mpData[key] = mpInstance.data[key];\n });\n var diffData = this.$shouldDiffData === false ? data : diff(data, mpData);\n if (Object.keys(diffData).length) {\n if (process.env.VUE_APP_DEBUG) {\n console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + this._uid +\n ']差量更新',\n JSON.stringify(diffData));\n }\n this.__next_tick_pending = true;\n mpInstance.setData(diffData, function () {\n this$1.__next_tick_pending = false;\n flushCallbacks$1(this$1);\n });\n } else {\n flushCallbacks$1(this);\n }\n }\n};\n\n/* */\n\nfunction createEmptyRender() {\n\n}\n\nfunction mountComponent$1(\n vm,\n el,\n hydrating\n) {\n if (!vm.mpType) {//main.js 中的 new Vue\n return vm\n }\n if (vm.mpType === 'app') {\n vm.$options.render = createEmptyRender;\n }\n if (!vm.$options.render) {\n vm.$options.render = createEmptyRender;\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n \n !vm._$fallback && callHook(vm, 'beforeMount');\n\n var updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, {\n before: function before() {\n if (vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'beforeUpdate');\n }\n }\n }, true /* isRenderWatcher */);\n hydrating = false;\n return vm\n}\n\n/* */\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/* */\n\nvar MP_METHODS = ['createSelectorQuery', 'createIntersectionObserver', 'selectAllComponents', 'selectComponent'];\n\nfunction getTarget(obj, path) {\n var parts = path.split('.');\n var key = parts[0];\n if (key.indexOf('__$n') === 0) { //number index\n key = parseInt(key.replace('__$n', ''));\n }\n if (parts.length === 1) {\n return obj[key]\n }\n return getTarget(obj[key], parts.slice(1).join('.'))\n}\n\nfunction internalMixin(Vue) {\n\n Vue.config.errorHandler = function(err, vm, info) {\n Vue.util.warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n console.error(err);\n /* eslint-disable no-undef */\n var app = typeof getApp === 'function' && getApp();\n if (app && app.onError) {\n app.onError(err);\n }\n };\n\n var oldEmit = Vue.prototype.$emit;\n\n Vue.prototype.$emit = function(event) {\n if (this.$scope && event) {\n (this.$scope['_triggerEvent'] || this.$scope['triggerEvent']).call(this.$scope, event, {\n __args__: toArray(arguments, 1)\n });\n }\n return oldEmit.apply(this, arguments)\n };\n\n Vue.prototype.$nextTick = function(fn) {\n return nextTick$1(this, fn)\n };\n\n MP_METHODS.forEach(function (method) {\n Vue.prototype[method] = function(args) {\n if (this.$scope && this.$scope[method]) {\n return this.$scope[method](args)\n }\n // mp-alipay\n if (typeof my === 'undefined') {\n return\n }\n if (method === 'createSelectorQuery') {\n /* eslint-disable no-undef */\n return my.createSelectorQuery(args)\n } else if (method === 'createIntersectionObserver') {\n /* eslint-disable no-undef */\n return my.createIntersectionObserver(args)\n }\n // TODO mp-alipay 暂不支持 selectAllComponents,selectComponent\n };\n });\n\n Vue.prototype.__init_provide = initProvide;\n\n Vue.prototype.__init_injections = initInjections;\n\n Vue.prototype.__call_hook = function(hook, args) {\n var vm = this;\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n var info = hook + \" hook\";\n var ret;\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n ret = invokeWithErrorHandling(handlers[i], vm, args ? [args] : null, vm, info);\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook, args);\n }\n popTarget();\n return ret\n };\n\n Vue.prototype.__set_model = function(target, key, value, modifiers) {\n if (Array.isArray(modifiers)) {\n if (modifiers.indexOf('trim') !== -1) {\n value = value.trim();\n }\n if (modifiers.indexOf('number') !== -1) {\n value = this._n(value);\n }\n }\n if (!target) {\n target = this;\n }\n // 解决动态属性添加\n Vue.set(target, key, value);\n };\n\n Vue.prototype.__set_sync = function(target, key, value) {\n if (!target) {\n target = this;\n }\n // 解决动态属性添加\n Vue.set(target, key, value);\n };\n\n Vue.prototype.__get_orig = function(item) {\n if (isPlainObject(item)) {\n return item['$orig'] || item\n }\n return item\n };\n\n Vue.prototype.__get_value = function(dataPath, target) {\n return getTarget(target || this, dataPath)\n };\n\n\n Vue.prototype.__get_class = function(dynamicClass, staticClass) {\n return renderClass(staticClass, dynamicClass)\n };\n\n Vue.prototype.__get_style = function(dynamicStyle, staticStyle) {\n if (!dynamicStyle && !staticStyle) {\n return ''\n }\n var dynamicStyleObj = normalizeStyleBinding(dynamicStyle);\n var styleObj = staticStyle ? extend(staticStyle, dynamicStyleObj) : dynamicStyleObj;\n return Object.keys(styleObj).map(function (name) { return ((hyphenate(name)) + \":\" + (styleObj[name])); }).join(';')\n };\n\n Vue.prototype.__map = function(val, iteratee) {\n //TODO 暂不考虑 string\n var ret, i, l, keys, key;\n if (Array.isArray(val)) {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = iteratee(val[i], i);\n }\n return ret\n } else if (isObject(val)) {\n keys = Object.keys(val);\n ret = Object.create(null);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[key] = iteratee(val[key], key, i);\n }\n return ret\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0, l = val; i < l; i++) {\n // 第一个参数暂时仍和小程序一致\n ret[i] = iteratee(i, i);\n }\n return ret\n }\n return []\n };\n\n}\n\n/* */\n\nvar LIFECYCLE_HOOKS$1 = [\n //App\n 'onLaunch',\n 'onShow',\n 'onHide',\n 'onUniNViewMessage',\n 'onPageNotFound',\n 'onThemeChange',\n 'onError',\n 'onUnhandledRejection',\n //Page\n 'onInit',\n 'onLoad',\n // 'onShow',\n 'onReady',\n // 'onHide',\n 'onUnload',\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onTabItemTap',\n 'onAddToFavorites',\n 'onShareTimeline',\n 'onShareAppMessage',\n 'onResize',\n 'onPageScroll',\n 'onNavigationBarButtonTap',\n 'onBackPress',\n 'onNavigationBarSearchInputChanged',\n 'onNavigationBarSearchInputConfirmed',\n 'onNavigationBarSearchInputClicked',\n //Component\n // 'onReady', // 兼容旧版本,应该移除该事件\n 'onPageShow',\n 'onPageHide',\n 'onPageResize'\n];\nfunction lifecycleMixin$1(Vue) {\n\n //fixed vue-class-component\n var oldExtend = Vue.extend;\n Vue.extend = function(extendOptions) {\n extendOptions = extendOptions || {};\n\n var methods = extendOptions.methods;\n if (methods) {\n Object.keys(methods).forEach(function (methodName) {\n if (LIFECYCLE_HOOKS$1.indexOf(methodName)!==-1) {\n extendOptions[methodName] = methods[methodName];\n delete methods[methodName];\n }\n });\n }\n\n return oldExtend.call(this, extendOptions)\n };\n\n var strategies = Vue.config.optionMergeStrategies;\n var mergeHook = strategies.created;\n LIFECYCLE_HOOKS$1.forEach(function (hook) {\n strategies[hook] = mergeHook;\n });\n\n Vue.prototype.__lifecycle_hooks__ = LIFECYCLE_HOOKS$1;\n}\n\n/* */\n\n// install platform patch function\nVue.prototype.__patch__ = patch;\n\n// public mount method\nVue.prototype.$mount = function(\n el ,\n hydrating \n) {\n return mountComponent$1(this, el, hydrating)\n};\n\nlifecycleMixin$1(Vue);\ninternalMixin(Vue);\n\n/* */\n\nexport default Vue;\n","module.exports = \"/static/login/banner.jpg\";","module.exports = \"/static/login/title.png\";","const isArray = Array.isArray;\r\nconst isObject = (val) => val !== null && typeof val === 'object';\r\nconst defaultDelimiters = ['{', '}'];\r\nclass BaseFormatter {\r\n constructor() {\r\n this._caches = Object.create(null);\r\n }\r\n interpolate(message, values, delimiters = defaultDelimiters) {\r\n if (!values) {\r\n return [message];\r\n }\r\n let tokens = this._caches[message];\r\n if (!tokens) {\r\n tokens = parse(message, delimiters);\r\n this._caches[message] = tokens;\r\n }\r\n return compile(tokens, values);\r\n }\r\n}\r\nconst RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\r\nconst RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\r\nfunction parse(format, [startDelimiter, endDelimiter]) {\r\n const tokens = [];\r\n let position = 0;\r\n let text = '';\r\n while (position < format.length) {\r\n let char = format[position++];\r\n if (char === startDelimiter) {\r\n if (text) {\r\n tokens.push({ type: 'text', value: text });\r\n }\r\n text = '';\r\n let sub = '';\r\n char = format[position++];\r\n while (char !== undefined && char !== endDelimiter) {\r\n sub += char;\r\n char = format[position++];\r\n }\r\n const isClosed = char === endDelimiter;\r\n const type = RE_TOKEN_LIST_VALUE.test(sub)\r\n ? 'list'\r\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\r\n ? 'named'\r\n : 'unknown';\r\n tokens.push({ value: sub, type });\r\n }\r\n // else if (char === '%') {\r\n // // when found rails i18n syntax, skip text capture\r\n // if (format[position] !== '{') {\r\n // text += char\r\n // }\r\n // }\r\n else {\r\n text += char;\r\n }\r\n }\r\n text && tokens.push({ type: 'text', value: text });\r\n return tokens;\r\n}\r\nfunction compile(tokens, values) {\r\n const compiled = [];\r\n let index = 0;\r\n const mode = isArray(values)\r\n ? 'list'\r\n : isObject(values)\r\n ? 'named'\r\n : 'unknown';\r\n if (mode === 'unknown') {\r\n return compiled;\r\n }\r\n while (index < tokens.length) {\r\n const token = tokens[index];\r\n switch (token.type) {\r\n case 'text':\r\n compiled.push(token.value);\r\n break;\r\n case 'list':\r\n compiled.push(values[parseInt(token.value, 10)]);\r\n break;\r\n case 'named':\r\n if (mode === 'named') {\r\n compiled.push(values[token.value]);\r\n }\r\n else {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`);\r\n }\r\n }\r\n break;\r\n case 'unknown':\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(`Detect 'unknown' type of token!`);\r\n }\r\n break;\r\n }\r\n index++;\r\n }\r\n return compiled;\r\n}\r\n\r\nconst LOCALE_ZH_HANS = 'zh-Hans';\r\nconst LOCALE_ZH_HANT = 'zh-Hant';\r\nconst LOCALE_EN = 'en';\r\nconst LOCALE_FR = 'fr';\r\nconst LOCALE_ES = 'es';\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\r\nconst defaultFormatter = new BaseFormatter();\r\nfunction include(str, parts) {\r\n return !!parts.find((part) => str.indexOf(part) !== -1);\r\n}\r\nfunction startsWith(str, parts) {\r\n return parts.find((part) => str.indexOf(part) === 0);\r\n}\r\nfunction normalizeLocale(locale, messages) {\r\n if (!locale) {\r\n return;\r\n }\r\n locale = locale.trim().replace(/_/g, '-');\r\n if (messages && messages[locale]) {\r\n return locale;\r\n }\r\n locale = locale.toLowerCase();\r\n if (locale.indexOf('zh') === 0) {\r\n if (locale.indexOf('-hans') > -1) {\r\n return LOCALE_ZH_HANS;\r\n }\r\n if (locale.indexOf('-hant') > -1) {\r\n return LOCALE_ZH_HANT;\r\n }\r\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\r\n return LOCALE_ZH_HANT;\r\n }\r\n return LOCALE_ZH_HANS;\r\n }\r\n const lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]);\r\n if (lang) {\r\n return lang;\r\n }\r\n}\r\nclass I18n {\r\n constructor({ locale, fallbackLocale, messages, watcher, formater, }) {\r\n this.locale = LOCALE_EN;\r\n this.fallbackLocale = LOCALE_EN;\r\n this.message = {};\r\n this.messages = {};\r\n this.watchers = [];\r\n if (fallbackLocale) {\r\n this.fallbackLocale = fallbackLocale;\r\n }\r\n this.formater = formater || defaultFormatter;\r\n this.messages = messages || {};\r\n this.setLocale(locale || LOCALE_EN);\r\n if (watcher) {\r\n this.watchLocale(watcher);\r\n }\r\n }\r\n setLocale(locale) {\r\n const oldLocale = this.locale;\r\n this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;\r\n if (!this.messages[this.locale]) {\r\n // 可能初始化时不存在\r\n this.messages[this.locale] = {};\r\n }\r\n this.message = this.messages[this.locale];\r\n // 仅发生变化时,通知\r\n if (oldLocale !== this.locale) {\r\n this.watchers.forEach((watcher) => {\r\n watcher(this.locale, oldLocale);\r\n });\r\n }\r\n }\r\n getLocale() {\r\n return this.locale;\r\n }\r\n watchLocale(fn) {\r\n const index = this.watchers.push(fn) - 1;\r\n return () => {\r\n this.watchers.splice(index, 1);\r\n };\r\n }\r\n add(locale, message, override = true) {\r\n const curMessages = this.messages[locale];\r\n if (curMessages) {\r\n if (override) {\r\n Object.assign(curMessages, message);\r\n }\r\n else {\r\n Object.keys(message).forEach((key) => {\r\n if (!hasOwn(curMessages, key)) {\r\n curMessages[key] = message[key];\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.messages[locale] = message;\r\n }\r\n }\r\n f(message, values, delimiters) {\r\n return this.formater.interpolate(message, values, delimiters).join('');\r\n }\r\n t(key, locale, values) {\r\n let message = this.message;\r\n if (typeof locale === 'string') {\r\n locale = normalizeLocale(locale, this.messages);\r\n locale && (message = this.messages[locale]);\r\n }\r\n else {\r\n values = locale;\r\n }\r\n if (!hasOwn(message, key)) {\r\n console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`);\r\n return key;\r\n }\r\n return this.formater.interpolate(message[key], values).join('');\r\n }\r\n}\r\n\r\nfunction watchAppLocale(appVm, i18n) {\r\n // 需要保证 watch 的触发在组件渲染之前\r\n if (appVm.$watchLocale) {\r\n // vue2\r\n appVm.$watchLocale((newLocale) => {\r\n i18n.setLocale(newLocale);\r\n });\r\n }\r\n else {\r\n appVm.$watch(() => appVm.$locale, (newLocale) => {\r\n i18n.setLocale(newLocale);\r\n });\r\n }\r\n}\r\nfunction getDefaultLocale() {\r\n if (typeof uni !== 'undefined' && uni.getLocale) {\r\n return uni.getLocale();\r\n }\r\n // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale\r\n if (typeof global !== 'undefined' && global.getLocale) {\r\n return global.getLocale();\r\n }\r\n return LOCALE_EN;\r\n}\r\nfunction initVueI18n(locale, messages = {}, fallbackLocale, watcher) {\r\n // 兼容旧版本入参\r\n if (typeof locale !== 'string') {\r\n [locale, messages] = [\r\n messages,\r\n locale,\r\n ];\r\n }\r\n if (typeof locale !== 'string') {\r\n // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined\r\n locale = getDefaultLocale();\r\n }\r\n if (typeof fallbackLocale !== 'string') {\r\n fallbackLocale =\r\n (typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale) ||\r\n LOCALE_EN;\r\n }\r\n const i18n = new I18n({\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n watcher,\r\n });\r\n let t = (key, values) => {\r\n if (typeof getApp !== 'function') {\r\n // app view\r\n /* eslint-disable no-func-assign */\r\n t = function (key, values) {\r\n return i18n.t(key, values);\r\n };\r\n }\r\n else {\r\n let isWatchedAppLocale = false;\r\n t = function (key, values) {\r\n const appVm = getApp().$vm;\r\n // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化\r\n // options: {\r\n // \ttype: Array,\r\n // \tdefault () {\r\n // \t\treturn [{\r\n // \t\t\ticon: 'shop',\r\n // \t\t\ttext: t(\"uni-goods-nav.options.shop\"),\r\n // \t\t}, {\r\n // \t\t\ticon: 'cart',\r\n // \t\t\ttext: t(\"uni-goods-nav.options.cart\")\r\n // \t\t}]\r\n // \t}\r\n // },\r\n if (appVm) {\r\n // 触发响应式\r\n appVm.$locale;\r\n if (!isWatchedAppLocale) {\r\n isWatchedAppLocale = true;\r\n watchAppLocale(appVm, i18n);\r\n }\r\n }\r\n return i18n.t(key, values);\r\n };\r\n }\r\n return t(key, values);\r\n };\r\n return {\r\n i18n,\r\n f(message, values, delimiters) {\r\n return i18n.f(message, values, delimiters);\r\n },\r\n t(key, values) {\r\n return t(key, values);\r\n },\r\n add(locale, message, override = true) {\r\n return i18n.add(locale, message, override);\r\n },\r\n watch(fn) {\r\n return i18n.watchLocale(fn);\r\n },\r\n getLocale() {\r\n return i18n.getLocale();\r\n },\r\n setLocale(newLocale) {\r\n return i18n.setLocale(newLocale);\r\n },\r\n };\r\n}\r\n\r\nconst isString = (val) => typeof val === 'string';\r\nlet formater;\r\nfunction hasI18nJson(jsonObj, delimiters) {\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n return walkJsonObj(jsonObj, (jsonObj, key) => {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n if (isI18nStr(value, delimiters)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n return hasI18nJson(value, delimiters);\r\n }\r\n });\r\n}\r\nfunction parseI18nJson(jsonObj, values, delimiters) {\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n walkJsonObj(jsonObj, (jsonObj, key) => {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n if (isI18nStr(value, delimiters)) {\r\n jsonObj[key] = compileStr(value, values, delimiters);\r\n }\r\n }\r\n else {\r\n parseI18nJson(value, values, delimiters);\r\n }\r\n });\r\n return jsonObj;\r\n}\r\nfunction compileI18nJsonStr(jsonStr, { locale, locales, delimiters, }) {\r\n if (!isI18nStr(jsonStr, delimiters)) {\r\n return jsonStr;\r\n }\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n const localeValues = [];\r\n Object.keys(locales).forEach((name) => {\r\n if (name !== locale) {\r\n localeValues.push({\r\n locale: name,\r\n values: locales[name],\r\n });\r\n }\r\n });\r\n localeValues.unshift({ locale, values: locales[locale] });\r\n try {\r\n return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2);\r\n }\r\n catch (e) { }\r\n return jsonStr;\r\n}\r\nfunction isI18nStr(value, delimiters) {\r\n return value.indexOf(delimiters[0]) > -1;\r\n}\r\nfunction compileStr(value, values, delimiters) {\r\n return formater.interpolate(value, values, delimiters).join('');\r\n}\r\nfunction compileValue(jsonObj, key, localeValues, delimiters) {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n // 存在国际化\r\n if (isI18nStr(value, delimiters)) {\r\n jsonObj[key] = compileStr(value, localeValues[0].values, delimiters);\r\n if (localeValues.length > 1) {\r\n // 格式化国际化语言\r\n const valueLocales = (jsonObj[key + 'Locales'] = {});\r\n localeValues.forEach((localValue) => {\r\n valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters);\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n compileJsonObj(value, localeValues, delimiters);\r\n }\r\n}\r\nfunction compileJsonObj(jsonObj, localeValues, delimiters) {\r\n walkJsonObj(jsonObj, (jsonObj, key) => {\r\n compileValue(jsonObj, key, localeValues, delimiters);\r\n });\r\n return jsonObj;\r\n}\r\nfunction walkJsonObj(jsonObj, walk) {\r\n if (isArray(jsonObj)) {\r\n for (let i = 0; i < jsonObj.length; i++) {\r\n if (walk(jsonObj, i)) {\r\n return true;\r\n }\r\n }\r\n }\r\n else if (isObject(jsonObj)) {\r\n for (const key in jsonObj) {\r\n if (walk(jsonObj, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction resolveLocale(locales) {\r\n return (locale) => {\r\n if (!locale) {\r\n return locale;\r\n }\r\n locale = normalizeLocale(locale) || locale;\r\n return resolveLocaleChain(locale).find((locale) => locales.indexOf(locale) > -1);\r\n };\r\n}\r\nfunction resolveLocaleChain(locale) {\r\n const chain = [];\r\n const tokens = locale.split('-');\r\n while (tokens.length) {\r\n chain.push(tokens.join('-'));\r\n tokens.pop();\r\n }\r\n return chain;\r\n}\r\n\r\nexport { BaseFormatter as Formatter, I18n, LOCALE_EN, LOCALE_ES, LOCALE_FR, LOCALE_ZH_HANS, LOCALE_ZH_HANT, compileI18nJsonStr, hasI18nJson, initVueI18n, isI18nStr, isString, normalizeLocale, parseI18nJson, resolveLocale };\r\n","module.exports = \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAFVAVYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK47xt4olsX+w2j7JCMySL1HsK3o0ZV5qETOpUVOPMzqLjUrS1bbPdQwt6SSBT+pqL+3dN/wCgha/9/wBf8a8eZizFmJJPJJpK9xZVG2szz/rj6I9shuIrlN8MqSp/eRgR+lSV4xp+pXGl3Amt5WjcdcdD7EV6toOsJremx3Kja/3XX0Ydf8+9edisFLDe8ndHVRxCq6bM0aKKK806gooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKbI4jjZz0UZNAFDWNetNEiDXEnzN92NeWNczJ8Sl3HZZEr/tPXJaxqMmqahNcSNnc3y+w7CqdfUUcupRivaas8epipt+7ojt/wDhZX/Tl/4//wDWrktVvzqmoT3RXaZGztznFVaK7qWGpUXzU1ZnPOrOorSYUUUV1GQVveG/FTeH4Z4/J85ZGDD5sYrBorOpTjVjyTV0VGTg+aJ2/wDwsr/py/8AH/8A61H/AAsr/py/8f8A/rVxFFcf1DD/AMv5m/1mr3O3/wCFlf8ATl/4/wD/AFqP+Flf9OX/AI//APWriKKPqGH/AJfzD6zV7nb/APCyv+nL/wAf/wDrU+P4lJuHmWTBf9l+a4Wij+z8P/L+LD6zV7nsOk61a61D5ltJkj7yHhl/Cr9eQaBqj6TqkMythdwVx2KnrXrwORmvn8Zhvq01bZnp0K3tY67oWiiivPOkKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKgvf+POf/rm38qnqC9/485/+ubfyqo/EhPY8Wooor74+bCiiigAoorR0fQbvXJttumEH3pG4UVMpRguaTshqLk7IzqK9H0/4fWFuoNyz3Unfnav5Dn9a0f8AhEtI24+xR4/HNeVLM6MXZJs7FhKjWp5PRXouofD2xuEJtHe1k7Ancv68/rXE6tol1os3l3MeAfuuvKt9DXXRxdKvpF69jGpRnT1aKFABJwOTRWj4daFdcsjPjy/NGc9M9v1xXTOXLFy7GMVzNIuw+CdVntxMIVXIyFZgG/KsSeCS1maKVDHIpwVYcivba81+IDRNrg8vG8RgPj1ryMHjaleo4SR3V8PGnHmTOZr26P7i/SvEa9uj/wBWv0rHNvsfP9C8H9r5DqKKK+fPTCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACoL3/jzn/65t/Kp6gvf+POf/rm38qqPxIT2PFqKKK++PmwooooA0NC0iTWtQjt1+Vert/dXvXrFjYw6dbJBboI41GAB/M1zPw7sRFp0t0R88r7QfYV11fKZhXdSq4LZHs4Wmow5urCiiivKOwKq6jp8GqWr29wm5GH4g+oq1RTUnF3QmrqzPG9Y0yTSNQltpOdp+VvUdjVOu8+JFiGt7a8A+ZW8pvoQSP5H864OvtMLW9vSU3ueDWh7ObibEPi7VYLcQrdtsAwMgEj8ayZZXmkaSRi7sclmOSabRW8acINuKsZuUpbsK9uj/wBWv0rxGvbo/wDVr9K8PNvsfP8AQ9DB/a+Q6iiivnz0wooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqC9/wCPOf8A65t/Kp6gvf8Ajzn/AOubfyqo/EhPY8Wooor74+bCiiigD1LwOQfDtvj1bP51vVxvw51APaz2bH5kbeo9j1rsq+KxcXCvNPue9RlzU0FFFFchuFFFFAHOePsf8I6+evmLj868yrufiPqA221kp5z5rj9B/M1w1fW5dFxoJvqeLipXqaBRRRXpnIFe3R/6tfpXiNe3R/6tfpXz+bfY+f6HpYP7XyHUUUV8+emFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFQXv/AB5z/wDXNv5VPUF7/wAec/8A1zb+VVH4kJ7Hi1FFFffHzYUUUUAW9K1KXSb6O5hPzKeV7EdxXrGk6tb6xaLPA2f7y91Poa8cqzp+pXOl3AmtpWjfvjofYivOxeDWJV1pJHVRruk7PY9noriNP+Iy7Qt5bEN3eI8flWj/AMLA0vbn99n02V87LB4iLtynprEU2r3OmrP1rWYNFs2mmb5uiR92NctqHxGypWyt8N/flP8ASuQvtQuNSuDNcytLIe7dvYeldmHy2cnerojCpioxVoasNQv5dSvJbmY5dzn6e1V6KK+mSUVZHkt3d2FFFFMAr26P/Vr9K8Rr26P/AFa/Svn82+x8/wBD0sH9r5DqKKK+fPTCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACoL3/AI85/wDrm38qnpGUOpU8gjBpp2dxHiFFaXiDR5dH1KSJ1PlsS0bdiKza+8hJTipR2Z85KLi7MKKKKsQUUUUAFFFFABRRRQAUUUUAFFFFABXt0f3F+leUeGdGk1jU4lC/uY2DSN2wO3416xXzmazTlGC3Vz1MHFpOQtFFFeEeiFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAFa+0621KHyrmFZU/2u30Paufk+HemMxIkuUH91XXA/Na6mit6derSVoSsZypwnrJHK/wDCudN/573X/fa//E0f8K503/nvdf8Afa//ABNdVRWv1zEfzsj2FP8AlOV/4Vzpv/Pe6/77X/4mj/hXOm/897r/AL7X/wCJrqqKPrmI/nYewp/ynK/8K503/nvdf99r/wDE0f8ACudN/wCe91/32v8A8TXVUUfXMR/Ow9hT/lOV/wCFc6b/AM97r/vtf/iaP+Fc6b/z3uv++1/+JrqqKPrmI/nYewp/ynK/8K503/nvdf8Afa//ABNH/CudN/573X/fa/8AxNdVRR9cxH87D2FP+U5X/hXOm/8APe6/77X/AOJp0fw70uNwWkuZB/dZxg/kBXUUUfXK/wDOw9hT/lK9nY2+nwiK3iWKMdlFWKKK5G3J3ZttogooopDCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiisLXNauNP1jS7aLZ5dy5V9wyfwoA3aKK5rxh4ofQo4orULJ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jTI/nWZ8O4nXSZ5HRkWSdmXcMZFHQCrDZwX3xAvkuIkmQQAhXGRniuk/4R3TP+fCD/vgVyF7Nqdv44vX0y2S4mMQBWQgDbxzyRWh/aXjD/oFW/8A38X/AOLoAgurKCx8faalvCkKGIkqgwM81veLdPn1TQ57a2TzJmxhcgd/euXtpNUuPG2nvqdqtvKEIAjIIxg+hNdN4s1l9H0w+QjPczHy4woJwT3oAwbHweb618sa7MxRdksSEMEPdetXdU8Ky3Xh6y0+wuYna1mD+ZKcA4B9AeeRWj4T0P8AsPSlSTm5mPmTN/tHt+FZvgIPBJrFsVIWO53DI9cj+lACRR+KZGdI9S012j4ZVySPr8tUl0vVdV8QWZvNQsJpbGRZGiiJDBdwJ42+1XIIZdJ8fyiNGNtfRbm2jgN6n8QfzpPGFhNpt5ba7YqfNiYLMi/xKeM/0/EUAdhRUVrOLq3ilCsgdQ21hgjPapaQBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFNaNGYMyqzL0JHIp1FABRRRQAUUUUAFFFFABRRRQAUlLRQAUUUUAFFFFADHiSTG9FbHTcM07p0paKAG+WgcuFUN/exzTqKKAE2jOcc0FQ3BGaWigApKWigApKWigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/9k=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAIVBMVEUAAACKioqJiYmJiYmKioqKioqJiYmKioqLi4uKioqJiYmKjwfTAAAAC3RSTlMAZ8UW/6qf1Cp6Skx12y4AAABXSURBVHja7ZZBCoBADMS2u9Va//9g/YAgBD0l9wTa0wyRZ2LOIP7Kmw0E9oSFSFhYRQuHBQsWLHxeaFooGpj0hKBP1NfX1/975jX0+dQ9oT9WV/UQec0FfE0HsP+s8qIAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAAPFBMVEUAAABmZmZnZ2dnZ2dlZWVmZmZlZWVlZWVmZmZmZmZmZmZlZWVkZGRlZWVlZWVlZWVmZmZmZmZlZWVmZmZ2HvaHAAAAE3RSTlMA1ioi57MblmtIDF413MbBpYd0XJLcVQAAAS1JREFUeNrtkMuuwjAQxRKapLS8mf//16uLEGyySOVKbOz1HNmaJCIiIiIiIiIiIl3W01yfS9qN8+NWj+uG+xz/zG0ffbvHi+Po4BRv8mEP/1QiNhWsJfYsmHJ8WLc84FvA/dteMEe/gPujDm1q9Au4P25Do2f0C7g/HkOrJfoF3B/nsd3cL+D+++Cw5V4B95c2Oj10Crg/TymxAu5nBdwPC7AfF1A/L6B+XkD9vID6eQH18wLq5wXUzwuonxdQPy+gfl5A/byA+nkB9fMC6ucF1M8LqJ8XUD8voH5eQP28gPp5AfXzAubnBZcL8/MC4AcFyM8LqJ8XUD8voH5eQP28gPp5AfXzAurnBdTPC6CfF5R4U4Cf0K7x4trSr1hqKXVJIiIiIiIiIiIiQvgDv3di66a/wEQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\""],"sourceRoot":""}