{"version":3,"sources":["uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-mp-weixin/dist/index.js","uni-app:///D:/HBuilderX.3.4.7.20220422/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:///D:/HBuilderX.3.4.7.20220422/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:///store.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vuex3/dist/vuex.common.js","uni-app:///libs/request.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/regenerator/index.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/regenerator-runtime/runtime-module.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/regenerator-runtime/runtime.js","uni-app:///config.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/webpack/buildin/global.js","uni-app:///libs/alert.js","uni-app:///uni_modules/uni-icons/components/uni-icons/icons.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/qs/lib/index.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/qs/lib/stringify.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/qs/lib/utils.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/qs/lib/formats.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/qs/lib/parse.js","uni-app:///node_modules/@escook/request-miniprogram/miniprogram_dist/index.js","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js","webpack:///F:/项目2/Jinan_app/Jinan_app/static/login/banner.jpg?b0c7","webpack:///F:/项目2/Jinan_app/Jinan_app/static/login/title.png?927a","uni-app:///D:/HBuilderX.3.4.7.20220422/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js","webpack:///F:/项目2/Jinan_app/Jinan_app/static/down.png?7ce8","webpack:///F:/项目2/Jinan_app/Jinan_app/static/4412.png?72e2","webpack:///F:/项目2/Jinan_app/Jinan_app/static/dadui/10.png?fc6d","webpack:///F:/项目2/Jinan_app/Jinan_app/static/zeren/4508.png?1030",null,"webpack:///F:/项目2/Jinan_app/Jinan_app/static/446.png?3c1a","webpack:///F:/项目2/Jinan_app/Jinan_app/static/logo.png?ced9","webpack:///F:/项目2/Jinan_app/Jinan_app/static/arrow.png?80f1","webpack:///F:/项目2/Jinan_app/Jinan_app/static/dadui/11.png?1f9f","webpack:///F:/项目2/Jinan_app/Jinan_app/static/dadui/9.png?b244"],"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","sortObject","sortObj","keys","sort","forEach","HOOKS","globalInterceptors","scopedInterceptors","mergeHook","parentVal","childVal","res","concat","Array","isArray","dedupeHooks","hooks","push","removeHook","hook","index","splice","mergeInterceptorHook","interceptor","option","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","LOCALE_ZH_HANS","LOCALE_ZH_HANT","LOCALE_EN","LOCALE_FR","LOCALE_ES","messages","locale","normalizeLocale","language","initI18nMessages","isEnableLocale","localeKeys","__uniConfig","locales","curMessages","userMessages","i18n","t","i18nMixin","mixin","beforeCreate","unwatch","watchLocale","$forceUpdate","$once","methods","$$t","values","setLocale","getLocale","initAppLocale","appVm","state","observable","localeWatchers","$watchLocale","defineProperty","get","set","v","watch","include","parts","find","part","startsWith","trim","toLowerCase","lang","getLocale$1","app","getApp","allowDefault","$vm","$locale","setLocale$1","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","useDeviceId","random","setStorage","addSafeAreaInsets","safeArea","safeAreaInsets","top","left","right","bottom","screenHeight","populateParameters","brand","model","system","theme","version","fontSizeSetting","SDKVersion","deviceOrientation","osName","osVersion","hostVersion","deviceType","getGetDeviceType","deviceBrand","getDeviceBrand","_hostName","getHostName","_deviceOrientation","_devicePixelRatio","_SDKVersion","hostLanguage","parameters","appId","process","appName","appVersion","appVersionCode","appLanguage","getAppLanguage","uniCompileVersion","uniRuntimeVersion","uniPlatform","deviceModel","devicePixelRatio","toLocaleLowerCase","hostTheme","hostName","hostSDKVersion","hostFontSizeSetting","windowTop","windowBottom","osLanguage","undefined","osTheme","ua","hostPackageName","browserName","browserVersion","deviceTypeMaps","ipad","windows","mac","deviceTypeMapsKeys","_model","_m","defaultLanguage","_platform","environment","host","env","getSystemInfo","showActionSheet","alertText","title","getAppBaseInfo","getDeviceInfo","getWindowInfo","getAppAuthorizeSetting","locationReducedAccuracy","locationAccuracy","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","$emit","eventApi","tryCatch","e","getApiCallbacks","apiCallbacks","param","cid","cidErrMsg","enabled","normalizePushMessage","invokePushCallback","type","invokeGetPushCidCallbacks","onPushMessageCallbacks","stopped","getPushCidCallbacks","getPushClientId","hasSuccess","hasFail","hasComplete","onPushMessage","offPushMessage","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","initHooks","mpOptions","__call_hook","initVueComponent","VueComponent","extend","initSlots","vueSlots","$slots","slotName","$scopedSlots","initVueIds","vueIds","_$vueId","_$vuePid","initData","context","VUE_APP_DEBUG","stringify","__lifecycle_hooks__","PROP_TYPES","Boolean","createObserver","observer","newVal","oldVal","initBehaviors","initBehavior","vueBehaviors","behaviors","vueExtends","extends","vueMixins","vueProps","props","behavior","properties","initProperties","vueMixin","parsePropType","defaultValue","file","isBehavior","vueId","virtualHost","virtualHostStyle","virtualHostClass","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","generic","$scope","handleEvent","eventOpts","eventOpt","eventsArray","isOnce","eventArray","handlerCtx","handler","path","route","is","once","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","initRelation","selectAllComponents","selector","$refs","components","component","ref","vueGeneric","scopedComponent","forComponents","handleLink","parent","parseApp","createApp","App","encodeReserveRE","encodeReserveReplacer","commaRE","encode","encodeURIComponent","stringifyQuery","encodeStr","val","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","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","desc","showLoading","code","request","post","encryptedData","iv","who","lawyerInfo","expires_at","clientInfo","info","login_type","setStorageSync","hideLoading","reLaunch","logout","clearStorage","globalThis","window","self","n","__esModule","s","exports","require","o","lib","r","Base","mixIn","init","$super","clone","WordArray","words","sigBytes","clamp","ceil","a","enc","Hex","u","Latin1","l","Utf8","escape","unescape","h","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","g","p","m","y","w","k","T","S","A","P","I","b","O","C","E","HmacMD5","_hasher","_oKey","_iKey","appid","_globalUniCloudObj","reduce","R","U","L","D","includes","q","N","F","isReady","initUniCloud","M","errCode","requestId","$","scene","channel","j","K","LOCALE","PLATFORM","OS","APPID","DEVICEID","B","sign","wrappedRequest","header","statusCode","H","uploadFile","removeStorageSync","clearStorageSync","W","en","fr","es","ja","z","V","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","getOSSUploadOptionsFromPath","filename","cdnDomain","ossPath","OSSAccessKeyId","accessKeyId","Signature","signature","policy","success_action_status","fileName","uploadFileToOSS","reportOSSUpload","fileID","fileList","tempFileURL","J","signInAnonymously","authorize","getLoginState","auth","customAuth","Y","location","X","local","none","session","G","Q","Z","ee","te","ne","isMatch","genAdapter","runtime","WEB","WX_MP","se","oe","re","root","tcbObject","ie","localStorage","sessionStorage","ae","_storage","_persistence","primaryStorage","persistence","accessTokenExpireKey","refreshTokenKey","anonymousUuidKey","loginTypeKey","userInfoKey","getItem","setItem","removeItem","ce","ue","le","he","de","fe","_listeners","_listens","ge","on","pe","fire","me","off","ye","_e","we","ke","Te","Se","ANONYMOUS","WECHAT","WECHAT_PUBLIC","WECHAT_OPEN","EMAIL","USERNAME","NULL","ve","Ae","Pe","headers","append","Ie","seqId","be","_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","status","Oe","Ce","Ee","_request","setLocalUserInfo","Re","_envId","setUserInfo","ticket","signInWithRedirect","oldPassword","newPassword","newEmail","username","users","wxOpenId","wxPublicId","hasPrimaryUid","nickName","gender","avatarUrl","province","country","city","Ue","credential","refreshToken","loginType","xe","updatePersistence","uuid","_setAnonymousUUID","refresh","_clearAnonymousUUID","Le","refreshUserInfo","De","email","password","qe","Ne","_onAnonymousConverted","bind","_onLoginTypeChanged","signIn","_anonymousAuthProvider","linkAndRetrieveDataWithTicket","hasLoginState","isRegistered","Fe","authorization","fileId","cosFileId","Me","$e","fileid_list","delete_list","je","fileid","max_age","maxAge","file_list","download_list","Ke","download_url","encodeURI","Be","function_name","request_data","response_data","He","We","ze","authObj","requestClient","Ve","Je","Ye","Xe","clear","Ge","useAdapters","Qe","Ze","et","tt","nt","st","ot","fileUrl","rt","it","uniIdToken","at","localAddress","localPort","aliyun","tencent","_originCallFunction","ct","rule","mode","ut","lt","RegExp","source","ht","dt","functionName","logPvd","debugLog","ft","callFunction","tcb","extraInfo","formatter","match","debugInfo","forceRemote","gt","Symbol","pt","_internalType","__ob__","mt","yt","_t","wt","$regexp","flags","$date","toISOString","kt","$method","Tt","prevStage","udb","_database","$db","reverse","$param","toJSON","_send","from","getAction","getCommand","_callCloudFunction","command","isAggregate","St","isCommand","vt","$newDb","At","multiCommand","queryList","setResult","dataList","_callback","_uniClient","systemInfo","level","_callbackAuth","prop","tips","uniClient","_authCallBacks","_dbCallBacks","isDefault","$env","Geo","serverDate","Pt","database","It","bt","Ot","TOKEN_INVALID_TOKEN_EXPIRED","TOKEN_INVALID_INVALID_CLIENTID","TOKEN_INVALID","TOKEN_INVALID_WRONG_TOKEN","TOKEN_INVALID_ANONYMOUS_USER","Ct","Et","Rt","needLogin","needLoginPage","notNeedLoginPage","Ut","list","some","pagePath","xt","uniIdRouter","subPackages","tabBar","loginPage","resToLogin","routerNeedLogin","loginPageInTabBar","Lt","Dt","qt","Nt","Ft","Mt","$t","pop","jt","Kt","uniIdRedirectUrl","Bt","onResponse","Ht","onNeedLogin","offNeedLogin","needLoginInit","Wt","offResponse","onRefreshToken","offRefreshToken","zt","Vt","Jt","Yt","Xt","tempFiles","substring","lastIndexOf","tempFilePaths","onChooseFile","tempFile","tempFilePath","initChooseAndUploadFile","count","sizeType","sourceType","extension","chooseImage","camera","compressed","maxDuration","chooseVideo","duration","height","width","chooseFile","chooseMessageFile","Gt","Qt","Zt","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","customUI","loadingOptions","errorOptions","mask","retry","newToken","showToast","icon","showCancel","cancelText","confirmText","cancel","tn","nn","initUniCloudStatus","address","servePort","port","initialLaunchType","sn","navigator","userAgent","reInit","chooseAndUploadFile","mixinDatacom","importObject","uniCloud","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","text","setFontSize","dataCombine","dataCombineStack","getTouches","touches","clientX","pix","pageY","offsetTop","getSeriesDataItem","group","newSeries","indexIsArr","tempSeries","filterSeries","tmpindex","style","disableLegend","getMaxTextListLength","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","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","use","Vuex","Store","people","tag","taskType","mutations","savePath","saveToken","savePeople","saveTaskType","actions","getToken","domain","common","msg","uploadFile2","formdata","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","defaultFormatter","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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D;AAKD;;AAEDrF,EAAE,CAACkjB,SAAH,GAAeA,SAAf;AACAljB,EAAE,CAAC6lB,UAAH,GAAgBA,UAAhB;AACA7lB,EAAE,CAAC8lB,eAAH,GAAqBA,eAArB;AACA9lB,EAAE,CAAC+lB,mBAAH,GAAyBA,mBAAzB;AACA/lB,EAAE,CAACqmB,YAAH,GAAkBA,YAAlB;;AAEA,IAAIK,KAAK,GAAGF,GAAZ,C;;AAEeE,K;;;;;;;;;;;;;ACv7Ef;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,qBACH1hB,QADG,EACO;AACnB+O,WAAO,CAAC4S,GAAR,CAAY,CAAZ;AACA,QAAI,KAAKC,gBAAL,EAAJ,EAA6B;AAC5B7S,aAAO,CAAC4S,GAAR,CAAY,CAAZ;AACA3hB,cAAQ,CAAC,IAAD,CAAR;AACA,KAHD,MAGO;AACN+O,aAAO,CAAC4S,GAAR,CAAY,CAAZ;AACA3hB,cAAQ,CAAC,KAAD,CAAR;AACA+O,aAAO,CAAC4S,GAAR,CAAY,oBAAZ,EAAkC,QAAlC;AACA,WAAKE,QAAL;AACA;AACD,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K,CAAC22D,QAAN,GAAiBA,QAAjB;AACA,KAZS,EAXiB;;AAyB5BM,SAAO,EAAE,EAzBmB,EAAf,CAAd,C;;AA2BetgD,K;;;;;;;;;;;;AC/Bf;AACA;AACA;AACA;AACA;AACa;;AAEb;AACA;;AAEA;AACA,eAAe,yBAAyB;AACxC,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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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AwBX2C,YAAI,EAAE,cAAAT,GAAG,EAAI;AACZoN,iBAAO,CAACvT,KAAR,CAAcmG,GAAd,EAAmB,OAAnB;AACA,SA1BU,EAAZ;;AA4BA,KA7BD,CA6BE,OAAOmP,CAAP,EAAU;AACX/B,aAAO,CAAC4S,GAAR,CAAY7Q,CAAZ;AACA;AACA;AACD,GAvOc,EAAhB,C;;;;;AA4OegS,O;;;;;;;;;;;;AChPfo6C,MAAM,CAAC/4C,OAAP,GAAiBC,mBAAO,CAAC,6BAAD,CAAxB,C;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;;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;AAC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;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;;;;;;;;;;;;;ACpNa;;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;AA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ACH,GAND;AAOH;AACD,SAASg9D,kBAAT,CAA4Bh9D,MAA5B,EAAoC;AAChC,MAAMi9D,KAAK,GAAG,EAAd;AACA,MAAM1C,MAAM,GAAGv6D,MAAM,CAACvJ,KAAP,CAAa,GAAb,CAAf;AACA,SAAO8jE,MAAM,CAACzkE,MAAd,EAAsB;AAClBmnE,SAAK,CAACliE,IAAN,CAAWw/D,MAAM,CAACzjE,IAAP,CAAY,GAAZ,CAAX;AACAyjE,UAAM,CAACr8B,GAAP;AACH;AACD,SAAO++B,KAAP;AACH,C;;;;;;;;;;;;ACncD,4C;;;;;;;;;;;ACAA,2C;;;;;;;;;;;;ACAA;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,iCAAiC,gnB;;;;;;;;;;;ACAjC,iCAAiC,wzJ;;;;;;;;;;;ACAjC,iCAAiC,w9xB;;;;;;;;;;;ACAjC,iCAAiC,4pX;;;;;;;;;;;ACAjC,iCAAiC,4+E;;;;;;;;;;;ACAjC,iCAAiC,g/H;;;;;;;;;;;ACAjC,iCAAiC,4vK;;;;;;;;;;;ACAjC,iCAAiC,oS;;;;;;;;;;;ACAjC,iCAAiC,gqqC;;;;;;;;;;;ACAjC,iCAAiC,gh0B","file":"common/vendor.js","sourcesContent":["import { initVueI18n } from '@dcloudio/uni-i18n';\r\nimport Vue from 'vue';\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\nfunction sortObject (obj) {\r\n const sortObj = {};\r\n if (isPlainObject(obj)) {\r\n Object.keys(obj).sort().forEach(key => {\r\n sortObj[key] = obj[key];\r\n });\r\n }\r\n return !Object.keys(sortObj) ? obj : sortObj\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|invokePushCallback|getWindowInfo|getDeviceInfo|getAppBaseInfo|getSystemSetting|getAppAuthorizeSetting/;\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', 'createPushMessage'];\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\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\n\r\nconst messages = {};\r\n\r\nlet locale;\r\n\r\n{\r\n locale = normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN;\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 = i18n.setLocale;\r\nconst getLocale = 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\nfunction include (str, parts) {\r\n return !!parts.find((part) => str.indexOf(part) !== -1)\r\n}\r\n\r\nfunction startsWith (str, parts) {\r\n return parts.find((part) => str.indexOf(part) === 0)\r\n}\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 === 'chinese') {\r\n // 支付宝\r\n return LOCALE_ZH_HANS\r\n }\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\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\nfunction getLocale$1 () {\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 normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN\r\n}\r\n\r\nfunction setLocale$1 (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$1;\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$1,\r\n setLocale: setLocale$1,\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 useDeviceId (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.screenHeight - safeArea.bottom\r\n };\r\n }\r\n}\r\n\r\nfunction populateParameters (result) {\r\n const {\r\n brand = '', model = '', system = '',\r\n language = '', theme, version,\r\n platform, fontSizeSetting,\r\n SDKVersion, pixelRatio, deviceOrientation\r\n } = result;\r\n // const isQuickApp = \"mp-weixin\".indexOf('quickapp-webview') !== -1\r\n\r\n // osName osVersion\r\n let osName = '';\r\n let osVersion = '';\r\n {\r\n osName = system.split(' ')[0] || '';\r\n osVersion = system.split(' ')[1] || '';\r\n }\r\n let hostVersion = version;\r\n\r\n // deviceType\r\n const deviceType = getGetDeviceType(result, model);\r\n\r\n // deviceModel\r\n const deviceBrand = getDeviceBrand(brand);\r\n\r\n // hostName\r\n const _hostName = getHostName(result);\r\n\r\n // deviceOrientation\r\n let _deviceOrientation = deviceOrientation; // 仅 微信 百度 支持\r\n\r\n // devicePixelRatio\r\n let _devicePixelRatio = pixelRatio;\r\n\r\n // SDKVersion\r\n let _SDKVersion = SDKVersion;\r\n\r\n // hostLanguage\r\n const hostLanguage = language.replace(/_/g, '-');\r\n\r\n // wx.getAccountInfoSync\r\n\r\n const parameters = {\r\n appId: process.env.UNI_APP_ID,\r\n appName: process.env.UNI_APP_NAME,\r\n appVersion: process.env.UNI_APP_VERSION_NAME,\r\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\r\n appLanguage: getAppLanguage(hostLanguage),\r\n uniCompileVersion: process.env.UNI_COMPILER_VERSION,\r\n uniRuntimeVersion: process.env.UNI_COMPILER_VERSION,\r\n uniPlatform: process.env.UNI_SUB_PLATFORM || process.env.UNI_PLATFORM,\r\n deviceBrand,\r\n deviceModel: model,\r\n deviceType,\r\n devicePixelRatio: _devicePixelRatio,\r\n deviceOrientation: _deviceOrientation,\r\n osName: osName.toLocaleLowerCase(),\r\n osVersion,\r\n hostTheme: theme,\r\n hostVersion,\r\n hostLanguage,\r\n hostName: _hostName,\r\n hostSDKVersion: _SDKVersion,\r\n hostFontSizeSetting: fontSizeSetting,\r\n windowTop: 0,\r\n windowBottom: 0,\r\n // TODO\r\n osLanguage: undefined,\r\n osTheme: undefined,\r\n ua: undefined,\r\n hostPackageName: undefined,\r\n browserName: undefined,\r\n browserVersion: undefined\r\n };\r\n\r\n Object.assign(result, parameters);\r\n}\r\n\r\nfunction getGetDeviceType (result, model) {\r\n let deviceType = result.deviceType || 'phone';\r\n {\r\n const deviceTypeMaps = {\r\n ipad: 'pad',\r\n windows: 'pc',\r\n mac: 'pc'\r\n };\r\n const deviceTypeMapsKeys = Object.keys(deviceTypeMaps);\r\n const _model = model.toLocaleLowerCase();\r\n for (let index = 0; index < deviceTypeMapsKeys.length; index++) {\r\n const _m = deviceTypeMapsKeys[index];\r\n if (_model.indexOf(_m) !== -1) {\r\n deviceType = deviceTypeMaps[_m];\r\n break\r\n }\r\n }\r\n }\r\n return deviceType\r\n}\r\n\r\nfunction getDeviceBrand (brand) {\r\n let deviceBrand = brand;\r\n if (deviceBrand) {\r\n deviceBrand = brand.toLocaleLowerCase();\r\n }\r\n return deviceBrand\r\n}\r\n\r\nfunction getAppLanguage (defaultLanguage) {\r\n return getLocale$1\r\n ? getLocale$1()\r\n : defaultLanguage\r\n}\r\n\r\nfunction getHostName (result) {\r\n const _platform = 'WeChat' ;\r\n let _hostName = result.hostName || _platform; // mp-jd\r\n {\r\n if (result.environment) {\r\n _hostName = result.environment;\r\n } else if (result.host && result.host.env) {\r\n _hostName = result.host.env;\r\n }\r\n }\r\n\r\n return _hostName\r\n}\r\n\r\nvar getSystemInfo = {\r\n returnValue: function (result) {\r\n useDeviceId(result);\r\n addSafeAreaInsets(result);\r\n populateParameters(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\nvar getAppBaseInfo = {\r\n returnValue: function (result) {\r\n const { version, language, SDKVersion, theme } = result;\r\n\r\n const _hostName = getHostName(result);\r\n\r\n const hostLanguage = language.replace('_', '-');\r\n\r\n result = sortObject(Object.assign(result, {\r\n appId: process.env.UNI_APP_ID,\r\n appName: process.env.UNI_APP_NAME,\r\n appVersion: process.env.UNI_APP_VERSION_NAME,\r\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\r\n appLanguage: getAppLanguage(hostLanguage),\r\n hostVersion: version,\r\n hostLanguage,\r\n hostName: _hostName,\r\n hostSDKVersion: SDKVersion,\r\n hostTheme: theme\r\n }));\r\n }\r\n};\r\n\r\nvar getDeviceInfo = {\r\n returnValue: function (result) {\r\n const { brand, model } = result;\r\n const deviceType = getGetDeviceType(result, model);\r\n const deviceBrand = getDeviceBrand(brand);\r\n useDeviceId(result);\r\n\r\n result = sortObject(Object.assign(result, {\r\n deviceType,\r\n deviceBrand,\r\n deviceModel: model\r\n }));\r\n }\r\n};\r\n\r\nvar getWindowInfo = {\r\n returnValue: function (result) {\r\n addSafeAreaInsets(result);\r\n\r\n result = sortObject(Object.assign(result, {\r\n windowTop: 0,\r\n windowBottom: 0\r\n }));\r\n }\r\n};\r\n\r\nvar getAppAuthorizeSetting = {\r\n returnValue: function (result) {\r\n const { locationReducedAccuracy } = result;\r\n\r\n result.locationAccuracy = 'unsupported';\r\n if (locationReducedAccuracy === true) {\r\n result.locationAccuracy = 'reduced';\r\n } else if (locationReducedAccuracy === false) {\r\n result.locationAccuracy = 'full';\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 getAppBaseInfo,\r\n getDeviceInfo,\r\n getWindowInfo,\r\n getAppAuthorizeSetting\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\n/**\r\n * 框架内 try-catch\r\n */\r\n/**\r\n * 开发者 try-catch\r\n */\r\nfunction tryCatch (fn) {\r\n return function () {\r\n try {\r\n return fn.apply(fn, arguments)\r\n } catch (e) {\r\n // TODO\r\n console.error(e);\r\n }\r\n }\r\n}\r\n\r\nfunction getApiCallbacks (params) {\r\n const apiCallbacks = {};\r\n for (const name in params) {\r\n const param = params[name];\r\n if (isFn(param)) {\r\n apiCallbacks[name] = tryCatch(param);\r\n delete params[name];\r\n }\r\n }\r\n return apiCallbacks\r\n}\r\n\r\nlet cid;\r\nlet cidErrMsg;\r\nlet enabled;\r\n\r\nfunction normalizePushMessage (message) {\r\n try {\r\n return JSON.parse(message)\r\n } catch (e) {}\r\n return message\r\n}\r\n\r\nfunction invokePushCallback (\r\n args\r\n) {\r\n if (args.type === 'enabled') {\r\n enabled = true;\r\n } else if (args.type === 'clientId') {\r\n cid = args.cid;\r\n cidErrMsg = args.errMsg;\r\n invokeGetPushCidCallbacks(cid, args.errMsg);\r\n } else if (args.type === 'pushMsg') {\r\n const message = {\r\n type: 'receive',\r\n data: normalizePushMessage(args.message)\r\n };\r\n for (let i = 0; i < onPushMessageCallbacks.length; i++) {\r\n const callback = onPushMessageCallbacks[i];\r\n callback(message);\r\n // 该消息已被阻止\r\n if (message.stopped) {\r\n break\r\n }\r\n }\r\n } else if (args.type === 'click') {\r\n onPushMessageCallbacks.forEach((callback) => {\r\n callback({\r\n type: 'click',\r\n data: normalizePushMessage(args.message)\r\n });\r\n });\r\n }\r\n}\r\n\r\nconst getPushCidCallbacks = [];\r\n\r\nfunction invokeGetPushCidCallbacks (cid, errMsg) {\r\n getPushCidCallbacks.forEach((callback) => {\r\n callback(cid, errMsg);\r\n });\r\n getPushCidCallbacks.length = 0;\r\n}\r\n\r\nfunction getPushClientId (args) {\r\n if (!isPlainObject(args)) {\r\n args = {};\r\n }\r\n const {\r\n success,\r\n fail,\r\n complete\r\n } = getApiCallbacks(args);\r\n const hasSuccess = isFn(success);\r\n const hasFail = isFn(fail);\r\n const hasComplete = isFn(complete);\r\n Promise.resolve().then(() => {\r\n if (typeof enabled === 'undefined') {\r\n enabled = false;\r\n cid = '';\r\n cidErrMsg = 'unipush is not enabled';\r\n }\r\n getPushCidCallbacks.push((cid, errMsg) => {\r\n let res;\r\n if (cid) {\r\n res = {\r\n errMsg: 'getPushClientId:ok',\r\n cid\r\n };\r\n hasSuccess && success(res);\r\n } else {\r\n res = {\r\n errMsg: 'getPushClientId:fail' + (errMsg ? ' ' + errMsg : '')\r\n };\r\n hasFail && fail(res);\r\n }\r\n hasComplete && complete(res);\r\n });\r\n if (typeof cid !== 'undefined') {\r\n invokeGetPushCidCallbacks(cid, cidErrMsg);\r\n }\r\n });\r\n}\r\n\r\nconst onPushMessageCallbacks = [];\r\n// 不使用 defineOnApi 实现,是因为 defineOnApi 依赖 UniServiceJSBridge ,该对象目前在小程序上未提供,故简单实现\r\nconst onPushMessage = (fn) => {\r\n if (onPushMessageCallbacks.indexOf(fn) === -1) {\r\n onPushMessageCallbacks.push(fn);\r\n }\r\n};\r\n\r\nconst offPushMessage = (fn) => {\r\n if (!fn) {\r\n onPushMessageCallbacks.length = 0;\r\n } else {\r\n const index = onPushMessageCallbacks.indexOf(fn);\r\n if (index > -1) {\r\n onPushMessageCallbacks.splice(index, 1);\r\n }\r\n }\r\n};\r\n\r\nvar api = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n getPushClientId: getPushClientId,\r\n onPushMessage: onPushMessage,\r\n offPushMessage: offPushMessage,\r\n invokePushCallback: invokePushCallback\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 = '', options) {\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 if ( options.virtualHost) {\r\n properties.virtualHostStyle = {\r\n type: null,\r\n value: ''\r\n };\r\n properties.virtualHostClass = {\r\n type: null,\r\n value: ''\r\n };\r\n }\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 const type = this.$vm.mpType === 'page' ? 'Page' : 'Component';\r\n const path = this.route || this.is;\r\n throw new Error(`${type} \"${path}\" does not have a method \"${methodName}\"`)\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 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, normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN);\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, options),\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","/* 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\t// console.log(data);\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,userInfo) {\r\n\t\tconst that = this;\r\n\t\tuni.showLoading({\r\n\t\t\ttitle: '登录中',\r\n\t\t});\r\n\t\t\r\n\t\tconsole.log(userInfo, 1111)\r\n\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\trequest.post('/login', {\r\n\t\t\t\t\tcode,\r\n\t\t\t\t\tencryptedData: userInfo.encryptedData,\r\n\t\t\t\t\tiv: userInfo.iv\r\n\t\t\t\t}, function(data, res) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tconsole.log(data, res ,'----------后端传回来的----------')\r\n\t\t\t\t\treturn\r\n\t\t\t\t\tconst user = {\r\n\t\t\t\t\t\ttoken: data.token,\r\n\t\t\t\t\t\twho: data.lawyerInfo.who,\r\n\t\t\t\t\t\texpires_at: data.expires_at,\r\n\t\t\t\t\t\tlawyerInfo: data.lawyerInfo,\r\n\t\t\t\t\t\tclientInfo: data.clientInfo,\r\n\t\t\t\t\t\tinfo: res.userInfo,\r\n\t\t\t\t\t\tlogin_type: 0\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tstore.commit('saveUser', user)\r\n\t\t\t\t\tuni.setStorageSync('user', user);\r\n\t\t\t\t\t\r\n\t\t\t\t\tuni.hideLoading();\r\n\r\n\t\t\t\t\tif (store.state.path) {\r\n\t\t\t\t\t\tlet path = store.state.path;\r\n\t\t\t\t\t\tconsole.log(path.startsWith('/'))\r\n\t\t\t\t\t\t// 判断是否path前面有/\r\n\t\t\t\t\t\tif (!path.startsWith('/')) {\r\n\t\t\t\t\t\t\tpath = '/' + path\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tuni.reLaunch({\r\n\t\t\t\t\t\t\turl: path,\r\n\t\t\t\t\t\t\tsuccess: function(res) {\r\n\t\t\t\t\t\t\t\tconsole.log(res)\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tfail: function(res) {\r\n\t\t\t\t\t\t\t\tconsole.log(res)\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})\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{initVueI18n as e}from\"@dcloudio/uni-i18n\";import t from\"@/pages.json\";\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}function s(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 o=s((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={},o=s.lib={},r=o.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=o.WordArray=r.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,o=e.sigBytes;if(this.clamp(),s%4)for(var r=0;r>>2]>>>24-r%4*8&255;t[s+r>>>2]|=i<<24-(s+r)%4*8}else for(r=0;r>>2]=n[r>>>2];return this.sigBytes+=o,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=r.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var n,s=[],o=function(t){t=t;var n=987654321,s=4294967295;return function(){var o=((n=36969*(65535&n)+(n>>16)&s)<<16)+(t=18e3*(65535&t)+(t>>16)&s)&s;return o/=4294967296,(o+=.5)*(e.random()>.5?1:-1)}},r=0;r>>2]>>>24-o%4*8&255;s.push((r>>>4).toString(16)),s.push((15&r).toString(16))}return s.join(\"\")},parse:function(e){for(var t=e.length,n=[],s=0;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=[],o=0;o>>2]>>>24-o%4*8&255;s.push(String.fromCharCode(r))}return s.join(\"\")},parse:function(e){for(var t=e.length,n=[],s=0;s>>2]|=(255&e.charCodeAt(s))<<24-s%4*8;return new i.init(n,t)}},l=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)))}},h=o.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new i.init,this._nDataBytes=0},_append:function(e){\"string\"==typeof e&&(e=l.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,s=n.words,o=n.sigBytes,r=this.blockSize,a=o/(4*r),c=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*r,u=e.min(4*c,o);if(c){for(var l=0;l>>24)|4278255360&(o<<24|o>>>8)}var r=this._hash.words,i=e[t+0],c=e[t+1],f=e[t+2],g=e[t+3],p=e[t+4],m=e[t+5],y=e[t+6],_=e[t+7],w=e[t+8],k=e[t+9],T=e[t+10],S=e[t+11],v=e[t+12],A=e[t+13],P=e[t+14],I=e[t+15],b=r[0],O=r[1],C=r[2],E=r[3];b=u(b,O,C,E,i,7,a[0]),E=u(E,b,O,C,c,12,a[1]),C=u(C,E,b,O,f,17,a[2]),O=u(O,C,E,b,g,22,a[3]),b=u(b,O,C,E,p,7,a[4]),E=u(E,b,O,C,m,12,a[5]),C=u(C,E,b,O,y,17,a[6]),O=u(O,C,E,b,_,22,a[7]),b=u(b,O,C,E,w,7,a[8]),E=u(E,b,O,C,k,12,a[9]),C=u(C,E,b,O,T,17,a[10]),O=u(O,C,E,b,S,22,a[11]),b=u(b,O,C,E,v,7,a[12]),E=u(E,b,O,C,A,12,a[13]),C=u(C,E,b,O,P,17,a[14]),b=l(b,O=u(O,C,E,b,I,22,a[15]),C,E,c,5,a[16]),E=l(E,b,O,C,y,9,a[17]),C=l(C,E,b,O,S,14,a[18]),O=l(O,C,E,b,i,20,a[19]),b=l(b,O,C,E,m,5,a[20]),E=l(E,b,O,C,T,9,a[21]),C=l(C,E,b,O,I,14,a[22]),O=l(O,C,E,b,p,20,a[23]),b=l(b,O,C,E,k,5,a[24]),E=l(E,b,O,C,P,9,a[25]),C=l(C,E,b,O,g,14,a[26]),O=l(O,C,E,b,w,20,a[27]),b=l(b,O,C,E,A,5,a[28]),E=l(E,b,O,C,f,9,a[29]),C=l(C,E,b,O,_,14,a[30]),b=h(b,O=l(O,C,E,b,v,20,a[31]),C,E,m,4,a[32]),E=h(E,b,O,C,w,11,a[33]),C=h(C,E,b,O,S,16,a[34]),O=h(O,C,E,b,P,23,a[35]),b=h(b,O,C,E,c,4,a[36]),E=h(E,b,O,C,p,11,a[37]),C=h(C,E,b,O,_,16,a[38]),O=h(O,C,E,b,T,23,a[39]),b=h(b,O,C,E,A,4,a[40]),E=h(E,b,O,C,i,11,a[41]),C=h(C,E,b,O,g,16,a[42]),O=h(O,C,E,b,y,23,a[43]),b=h(b,O,C,E,k,4,a[44]),E=h(E,b,O,C,v,11,a[45]),C=h(C,E,b,O,I,16,a[46]),b=d(b,O=h(O,C,E,b,f,23,a[47]),C,E,i,6,a[48]),E=d(E,b,O,C,_,10,a[49]),C=d(C,E,b,O,P,15,a[50]),O=d(O,C,E,b,m,21,a[51]),b=d(b,O,C,E,v,6,a[52]),E=d(E,b,O,C,g,10,a[53]),C=d(C,E,b,O,T,15,a[54]),O=d(O,C,E,b,c,21,a[55]),b=d(b,O,C,E,w,6,a[56]),E=d(E,b,O,C,I,10,a[57]),C=d(C,E,b,O,y,15,a[58]),O=d(O,C,E,b,A,21,a[59]),b=d(b,O,C,E,p,6,a[60]),E=d(E,b,O,C,S,10,a[61]),C=d(C,E,b,O,f,15,a[62]),O=d(O,C,E,b,k,21,a[63]),r[0]=r[0]+b|0,r[1]=r[1]+O|0,r[2]=r[2]+C|0,r[3]=r[3]+E|0},_doFinalize:function(){var t=this._data,n=t.words,s=8*this._nDataBytes,o=8*t.sigBytes;n[o>>>5]|=128<<24-o%32;var r=e.floor(s/4294967296),i=s;n[15+(o+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),n[14+(o+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 l=c[u];c[u]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return a},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});function u(e,t,n,s,o,r,i){var a=e+(t&n|~t&s)+o+i;return(a<>>32-r)+t}function l(e,t,n,s,o,r,i){var a=e+(t&s|n&~s)+o+i;return(a<>>32-r)+t}function h(e,t,n,s,o,r,i){var a=e+(t^n^s)+o+i;return(a<>>32-r)+t}function d(e,t,n,s,o,r,i){var a=e+(n^(t|~s))+o+i;return(a<>>32-r)+t}t.MD5=r._createHelper(c),t.HmacMD5=r._createHmacHelper(c)}(Math),n.MD5)})),s((function(e,t){var n,s,r;e.exports=(s=(n=o).lib.Base,r=n.enc.Utf8,void(n.algo.HMAC=s.extend({init:function(e,t){e=this._hasher=new e.init,\"string\"==typeof t&&(t=r.parse(t));var n=e.blockSize,s=4*n;t.sigBytes>s&&(t=e.finalize(t)),t.clamp();for(var o=this._oKey=t.clone(),i=this._iKey=t.clone(),a=o.words,c=i.words,u=0;u{T.indexOf(n)>-1&&function(e,t,n){let s=S[e][t];s||(s=S[e][t]=[]),-1===s.indexOf(n)&&\"function\"==typeof n&&s.push(n)}(e,n,t[n])}))}function A(e,t){S[e]||(S[e]={}),l(t)?Object.keys(t).forEach((n=>{T.indexOf(n)>-1&&function(e,t,n){const s=S[e][t];if(!s)return;const o=s.indexOf(n);o>-1&&s.splice(o,1)}(e,n,t[n])})):delete S[e]}function P(e,t){return e&&0!==e.length?e.reduce(((e,n)=>e.then((()=>n(t)))),Promise.resolve()):Promise.resolve()}function I(e,t){return S[e]&&S[e][t]||[]}const b=k(\"_globalUniCloudListener\"),O=\"response\",C=\"needLogin\",E=\"refreshToken\",R=\"clientdb\",U=\"cloudfunction\",x=\"cloudobject\";function L(e){return b[e]||(b[e]=[]),b[e]}function D(e,t){const n=L(e);n.includes(t)||n.push(t)}function q(e,t){const n=L(e),s=n.indexOf(t);-1!==s&&n.splice(s,1)}function N(e,t){const n=L(e);for(let e=0;es?Promise.resolve():P(I(t,\"invoke\"),n))).then((()=>e.call(this,n))).then((e=>s?Promise.resolve(e):P(I(t,\"success\"),e).then((()=>P(I(t,\"complete\"),e))).then((()=>(o&&N(O,{type:U,content:e}),Promise.resolve(e))))),(e=>s?Promise.reject(e):P(I(t,\"fail\"),e).then((()=>P(I(t,\"complete\"),e))).then((()=>(N(O,{type:U,content:e}),Promise.reject(e))))));if(!(n.success||n.fail||n.complete))return a;a.then((e=>{n.success&&n.success(e),n.complete&&n.complete(e),o&&N(O,{type:U,content:e})}),(e=>{n.fail&&n.fail(e),n.complete&&n.complete(e),o&&N(O,{type:U,content: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 M extends Error{constructor(e){super(e.message),this.errMsg=e.message||\"\",this.errCode=this.code=e.code||\"SYSTEM_ERROR\",this.requestId=e.requestId}}function $(){let e,t;try{if(uni.getLaunchOptionsSync){if(uni.getLaunchOptionsSync.toString().indexOf(\"not yet implemented\")>-1)return;const{scene:n,channel:s}=uni.getLaunchOptionsSync();e=s,t=n}}catch(e){}return{channel:e,scene:t}}let j;function K(){const e=uni.getLocale&&uni.getLocale()||\"en\";if(j)return{...j,locale:e,LOCALE:e};const t=uni.getSystemInfoSync(),{deviceId:n,osName:s,uniPlatform:o,appId:r}=t,i=[\"pixelRatio\",\"brand\",\"model\",\"system\",\"language\",\"version\",\"platform\",\"host\",\"SDKVersion\",\"swanNativeVersion\",\"app\",\"AppPlatform\",\"fontSizeSetting\"];for(let e=0;e{t(Object.assign(e,{complete(e){e||(e={}),d&&\"web\"===g&&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 M({code:\"SYS_ERR\",message:e.errMsg||\"request:fail\",requestId:t}));const o=e.data;if(o.error)return s(new M({code:o.error.code,message:o.error.message,requestId:t}));o.result=o.data,o.requestId=t,delete o.data,n(o)}}))}))}};var H={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()},W={\"uniCloud.init.paramRequired\":\"{param} required\",\"uniCloud.uploadFile.fileError\":\"filePath should be instance of File\"};const{t:z}=e({\"zh-Hans\":{\"uniCloud.init.paramRequired\":\"缺少参数:{param}\",\"uniCloud.uploadFile.fileError\":\"filePath应为File对象\"},\"zh-Hant\":{\"uniCloud.init.paramRequired\":\"缺少参数:{param}\",\"uniCloud.uploadFile.fileError\":\"filePath应为File对象\"},en:W,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:W},\"zh-Hans\");var V=class{constructor(e){[\"spaceId\",\"clientSecret\"].forEach((t=>{if(!Object.prototype.hasOwnProperty.call(e,t))throw new Error(z(\"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=H,this._getAccessTokenPromise=null,this._getAccessTokenPromiseStatus=null}get hasAccessToken(){return!!this.accessToken}setAccessToken(e){this.accessToken=e}requestWrapped(e){return B.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\"]=B.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\"]=B.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 M({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:o,onUploadProgress:r}){return new Promise(((i,a)=>{const c=this.adapter.uploadFile({url:e,formData:t,name:n,filePath:s,fileType:o,header:{\"X-OSS-server-side-encrpytion\":\"AES256\"},success(e){e&&e.statusCode<400?i(e):a(new M({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))},fail(e){a(new M({code:e.code||\"UPLOAD_FAILED\",message:e.message||e.errMsg||\"文件上传失败\"}))}});\"function\"==typeof r&&c&&\"function\"==typeof c.onProgressUpdate&&c.onProgressUpdate((e=>{r({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:o}){if(\"string\"!==u(t))throw new M({code:\"INVALID_PARAM\",message:\"cloudPath必须为字符串类型\"});if(!(t=t.trim()))throw new M({code:\"CLOUDPATH_REQUIRED\",message:\"cloudPath不可为空\"});if(/:\\/\\//.test(t))throw new M({code:\"INVALID_PARAM\",message:\"cloudPath不合法\"});const r=o&&o.envType||this.config.envType;let i,a;return this.getOSSUploadOptionsFromPath({env:r,filename:t}).then((t=>{const o=t.result;i=o.id,a=\"https://\"+o.cdnDomain+\"/\"+o.ossPath;const r={url:\"https://\"+o.host,formData:{\"Cache-Control\":\"max-age=2592000\",\"Content-Disposition\":\"attachment\",OSSAccessKeyId:o.accessKeyId,Signature:o.signature,host:o.host,id:i,key:o.ossPath,policy:o.policy,success_action_status:200},fileName:\"file\",name:\"file\",filePath:e,fileType:n};return this.uploadFileToOSS(Object.assign({},r,{onUploadProgress:s}))})).then((()=>this.reportOSSUpload({id:i}))).then((t=>new Promise(((n,s)=>{t.success?n({success:!0,filePath:e,fileID:a}):s(new M({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 M({code:\"INVALID_PARAM\",message:\"fileList的元素必须是非空的字符串\"})),t({fileList:e.map((e=>({fileID:e,tempFileURL:e})))})}))}};var J={init(e){const t=new V(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 Y=\"undefined\"!=typeof location&&\"http:\"===location.protocol?\"http:\":\"https:\";var X;!function(e){e.local=\"local\",e.none=\"none\",e.session=\"session\"}(X||(X={}));var G=function(){};const Q=()=>{let e;if(!Promise){e=()=>{},e.promise={};const t=()=>{throw new M({message:'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 Z(e){return void 0===e}function ee(e){return\"[object Null]\"===Object.prototype.toString.call(e)}var te;function ne(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\"}(te||(te={}));const se={adapter:null,runtime:void 0},oe=[\"anonymousUuidKey\"];class re extends G{constructor(){super(),se.adapter.root.tcbObject||(se.adapter.root.tcbObject={})}setItem(e,t){se.adapter.root.tcbObject[e]=t}getItem(e){return se.adapter.root.tcbObject[e]}removeItem(e){delete se.adapter.root.tcbObject[e]}clear(){delete se.adapter.root.tcbObject}}function ie(e,t){switch(e){case\"local\":return t.localStorage||new re;case\"none\":return new re;default:return t.sessionStorage||new re}}class ae{constructor(e){if(!this._storage){this._persistence=se.adapter.primaryStorage||e.persistence,this._storage=ie(this._persistence,se.adapter);const t=`access_token_${e.env}`,n=`access_token_expire_${e.env}`,s=`refresh_token_${e.env}`,o=`anonymous_uuid_${e.env}`,r=`login_type_${e.env}`,i=`user_info_${e.env}`;this.keys={accessTokenKey:t,accessTokenExpireKey:n,refreshTokenKey:s,anonymousUuidKey:o,loginTypeKey:r,userInfoKey:i}}}updatePersistence(e){if(e===this._persistence)return;const t=\"local\"===this._persistence;this._persistence=e;const n=ie(e,se.adapter);for(const e in this.keys){const s=this.keys[e];if(t&&oe.includes(e))continue;const o=this._storage.getItem(s);Z(o)||ee(o)||(n.setItem(s,o),this._storage.removeItem(s))}this._storage=n}setStore(e,t,n){if(!this._storage)return;const s={version:n||\"localCachev1\",content:t},o=JSON.stringify(s);try{this._storage.setItem(e,o)}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 ce={},ue={};function le(e){return ce[e]}class he{constructor(e,t){this.data=t||null,this.name=e}}class de extends he{constructor(e,t){super(\"error\",{error:e,data:t}),this.error=e}}const fe=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 de)return console.error(e.error),this;const n=\"string\"==typeof e?new he(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 ge(e,t){fe.on(e,t)}function pe(e,t={}){fe.fire(e,t)}function me(e,t){fe.off(e,t)}const ye=\"loginStateChanged\",_e=\"loginStateExpire\",we=\"loginTypeChanged\",ke=\"anonymousConverted\",Te=\"refreshAccessToken\";var Se;!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\"}(Se||(Se={}));const ve=[\"auth.getJwt\",\"auth.logout\",\"auth.signInWithTicket\",\"auth.signInAnonymously\",\"auth.signIn\",\"auth.fetchAccessTokenWithRefreshToken\",\"auth.signUpWithEmailAndPassword\",\"auth.activateEndUserMail\",\"auth.sendPasswordResetEmail\",\"auth.resetPasswordWithToken\",\"auth.isUsernameRegistered\"],Ae={\"X-SDK-Version\":\"1.3.5\"};function Pe(e,t,n){const s=e[t];e[t]=function(t){const o={},r={};n.forEach((n=>{const{data:s,headers:i}=n.call(e,t);Object.assign(o,s),Object.assign(r,i)}));const i=t.data;return i&&(()=>{var e;if(e=i,\"[object FormData]\"!==Object.prototype.toString.call(e))t.data={...i,...o};else for(const e in o)i.append(e,o[e])})(),t.headers={...t.headers||{},...r},s.call(e,t)}}function Ie(){const e=Math.random().toString(16).slice(2);return{data:{seqId:e},headers:{...Ae,\"x-seqid\":e}}}class be{constructor(e={}){var t;this.config=e,this._reqClass=new se.adapter.reqClass({timeout:this.config.timeout,timeoutMsg:`请求在${this.config.timeout/1e3}s内未完成,已中断`,restrictedMethods:[\"post\"]}),this._cache=le(this.config.env),this._localCache=(t=this.config.env,ue[t]),Pe(this._reqClass,\"post\",[Ie]),Pe(this._reqClass,\"upload\",[Ie]),Pe(this._reqClass,\"download\",[Ie])}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:o}=this._cache.keys;this._cache.removeStore(e),this._cache.removeStore(t);let r=this._cache.getStore(n);if(!r)throw new M({message:\"未登录CloudBase\"});const i={refresh_token:r},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)===Se.ANONYMOUS&&\"INVALID_REFRESH_TOKEN\"===e){const e=this._cache.getStore(o),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()}pe(_e),this._cache.removeStore(n)}throw new M({code:a.data.code,message:`刷新access token失败:${a.data.code}`})}if(a.data.access_token)return pe(Te),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 M({message:\"refresh token不存在,登录状态异常\"});let s=this._cache.getStore(e),o=this._cache.getStore(t),r=!0;return this._shouldRefreshAccessTokenHook&&!await this._shouldRefreshAccessTokenHook(s,o)&&(r=!1),(!s||!o||o{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:o,country:r,city:i}=e,{data:a}=await this._request.send(\"auth.updateUserInfo\",{nickName:t,gender:n,avatarUrl:s,province:o,country:r,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 Ue{constructor(e){if(!e)throw new M({code:\"PARAM_ERROR\",message:\"envId is not defined\"});this._cache=le(e);const{refreshTokenKey:t,accessTokenKey:n,accessTokenExpireKey:s}=this._cache.keys,o=this._cache.getStore(t),r=this._cache.getStore(n),i=this._cache.getStore(s);this.credential={refreshToken:o,accessToken:r,accessTokenExpire:i},this.user=new Re(e)}get isAnonymousAuth(){return this.loginType===Se.ANONYMOUS}get isCustomAuth(){return this.loginType===Se.CUSTOM}get isWeixinAuth(){return this.loginType===Se.WECHAT||this.loginType===Se.WECHAT_OPEN||this.loginType===Se.WECHAT_PUBLIC}get loginType(){return this._cache.getStore(this._cache.keys.loginTypeKey)}}class xe extends Ee{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,o=await this._request.send(\"auth.signInAnonymously\",{anonymous_uuid:n,refresh_token:s});if(o.uuid&&o.refresh_token){this._setAnonymousUUID(o.uuid),this.setRefreshToken(o.refresh_token),await this._request.refreshAccessToken(),pe(ye),pe(we,{env:this.config.env,loginType:Se.ANONYMOUS,persistence:\"local\"});const e=new Ue(this.config.env);return await e.user.refresh(),e}throw new M({message:\"匿名登录失败\"})}async linkAndRetrieveDataWithTicket(e){const{anonymousUuidKey:t,refreshTokenKey:n}=this._cache.keys,s=this._cache.getStore(t),o=this._cache.getStore(n),r=await this._request.send(\"auth.linkAndRetrieveDataWithTicket\",{anonymous_uuid:s,refresh_token:o,ticket:e});if(r.refresh_token)return this._clearAnonymousUUID(),this.setRefreshToken(r.refresh_token),await this._request.refreshAccessToken(),pe(ke,{env:this.config.env}),pe(we,{loginType:Se.CUSTOM,persistence:\"local\"}),{credential:{refreshToken:r.refresh_token}};throw new M({message:\"匿名转化失败\"})}_setAnonymousUUID(e){const{anonymousUuidKey:t,loginTypeKey:n}=this._cache.keys;this._cache.removeStore(t),this._cache.setStore(t,e),this._cache.setStore(n,Se.ANONYMOUS)}_clearAnonymousUUID(){this._cache.removeStore(this._cache.keys.anonymousUuidKey)}}class Le extends Ee{async signIn(e){if(\"string\"!=typeof e)throw new M({param:\"PARAM_ERROR\",message:\"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(),pe(ye),pe(we,{env:this.config.env,loginType:Se.CUSTOM,persistence:this.config.persistence}),await this.refreshUserInfo(),new Ue(this.config.env);throw new M({message:\"自定义登录失败\"})}}class De extends Ee{async signIn(e,t){if(\"string\"!=typeof e)throw new M({code:\"PARAM_ERROR\",message:\"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:o,access_token:r,access_token_expire:i}=s;if(o)return this.setRefreshToken(o),r&&i?this.setAccessToken(r,i):await this._request.refreshAccessToken(),await this.refreshUserInfo(),pe(ye),pe(we,{env:this.config.env,loginType:Se.EMAIL,persistence:this.config.persistence}),new Ue(this.config.env);throw s.code?new M({code:s.code,message:`邮箱登录失败: ${s.message}`}):new M({message:\"邮箱登录失败\"})}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 qe extends Ee{async signIn(e,t){if(\"string\"!=typeof e)throw new M({code:\"PARAM_ERROR\",message:\"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:Se.USERNAME,username:e,password:t,refresh_token:this._cache.getStore(n)||\"\"}),{refresh_token:o,access_token_expire:r,access_token:i}=s;if(o)return this.setRefreshToken(o),i&&r?this.setAccessToken(i,r):await this._request.refreshAccessToken(),await this.refreshUserInfo(),pe(ye),pe(we,{env:this.config.env,loginType:Se.USERNAME,persistence:this.config.persistence}),new Ue(this.config.env);throw s.code?new M({code:s.code,message:`用户名密码登录失败: ${s.message}`}):new M({message:\"用户名密码登录失败\"})}}class Ne{constructor(e){this.config=e,this._cache=le(e.env),this._request=Ce(e.env),this._onAnonymousConverted=this._onAnonymousConverted.bind(this),this._onLoginTypeChanged=this._onLoginTypeChanged.bind(this),ge(we,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 xe(this.config)}customAuthProvider(){return new Le(this.config)}emailAuthProvider(){return new De(this.config)}usernameAuthProvider(){return new qe(this.config)}async signInAnonymously(){return new xe(this.config).signIn()}async signInWithEmailAndPassword(e,t){return new De(this.config).signIn(e,t)}signInWithUsernameAndPassword(e,t){return new qe(this.config).signIn(e,t)}async linkAndRetrieveDataWithTicket(e){this._anonymousAuthProvider||(this._anonymousAuthProvider=new xe(this.config)),ge(ke,this._onAnonymousConverted);return await this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e)}async signOut(){if(this.loginType===Se.ANONYMOUS)throw new M({message:\"匿名用户不支持登出操作\"});const{refreshTokenKey:e,accessTokenKey:t,accessTokenExpireKey:n}=this._cache.keys,s=this._cache.getStore(e);if(!s)return;const o=await this._request.send(\"auth.logout\",{refresh_token:s});return this._cache.removeStore(e),this._cache.removeStore(t),this._cache.removeStore(n),pe(ye),pe(we,{env:this.config.env,loginType:Se.NULL,persistence:this.config.persistence}),o}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){ge(ye,(()=>{const t=this.hasLoginState();e.call(this,t)}));const t=this.hasLoginState();e.call(this,t)}onLoginStateExpired(e){ge(_e,e.bind(this))}onAccessTokenRefreshed(e){ge(Te,e.bind(this))}onAnonymousConverted(e){ge(ke,e.bind(this))}onLoginTypeChanged(e){ge(we,(()=>{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 Ue(this.config.env):null}async isUsernameRegistered(e){if(\"string\"!=typeof e)throw new M({code:\"PARAM_ERROR\",message:\"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 Le(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 Fe=function(e,t){t=t||Q();const n=Ce(this.config.env),{cloudPath:s,filePath:o,onUploadProgress:r,fileType:i=\"image\"}=e;return n.send(\"storage.getUploadMetadata\",{path:s}).then((e=>{const{data:{url:a,authorization:c,token:u,fileId:l,cosFileId:h},requestId:d}=e,f={key:s,signature:c,\"x-cos-meta-fileid\":h,success_action_status:\"201\",\"x-cos-security-token\":u};n.upload({url:a,data:f,file:o,name:s,fileType:i,onUploadProgress:r}).then((e=>{201===e.statusCode?t(null,{fileID:l,requestId:d}):t(new M({code:\"STORAGE_REQUEST_FAIL\",message:`STORAGE_REQUEST_FAIL: ${e.data}`}))})).catch((e=>{t(e)}))})).catch((e=>{t(e)})),t.promise},Me=function(e,t){t=t||Q();const n=Ce(this.config.env),{cloudPath:s}=e;return n.send(\"storage.getUploadMetadata\",{path:s}).then((e=>{t(null,e)})).catch((e=>{t(e)})),t.promise},$e=function({fileList:e},t){if(t=t||Q(),!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 Ce(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},je=function({fileList:e},t){t=t||Q(),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 Ce(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},Ke=async function({fileID:e},t){const n=(await je.call(this,{fileList:[{fileID:e,maxAge:600}]})).fileList[0];if(\"SUCCESS\"!==n.code)return t?t(n):new Promise((e=>{e(n)}));const s=Ce(this.config.env);let o=n.download_url;if(o=encodeURI(o),!t)return s.download({url:o});t(await s.download({url:o}))},Be=function({name:e,data:t,query:n,parse:s,search:o},r){const i=r||Q();let a;try{a=t?JSON.stringify(t):\"\"}catch(e){return Promise.reject(e)}if(!e)return Promise.reject(new M({code:\"PARAM_ERROR\",message:\"函数名不能为空\"}));const c={inQuery:n,parse:s,search:o,function_name:e,request_data:a};return Ce(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 M({message:\"response data must be json\"}))}}return i.promise})).catch((e=>{i(e)})),i.promise},He={timeout:15e3,persistence:\"session\"},We={};class ze{constructor(e){this.config=e||this.config,this.authObj=void 0}init(e){switch(se.adapter||(this.requestClient=new se.adapter.reqClass({timeout:e.timeout||5e3,timeoutMsg:`请求在${(e.timeout||5e3)/1e3}s内未完成,已中断`})),this.config={...He,...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 ze(this.config)}auth({persistence:e}={}){if(this.authObj)return this.authObj;const t=e||se.adapter.primaryStorage||He.persistence;var n;return t!==this.config.persistence&&(this.config.persistence=t),function(e){const{env:t}=e;ce[t]=new ae(e),ue[t]=new ae({...e,persistence:\"local\"})}(this.config),n=this.config,Oe[n.env]=new be(n),this.authObj=new Ne(this.config),this.authObj}on(e,t){return ge.apply(this,[e,t])}off(e,t){return me.apply(this,[e,t])}callFunction(e,t){return Be.apply(this,[e,t])}deleteFile(e,t){return $e.apply(this,[e,t])}getTempFileURL(e,t){return je.apply(this,[e,t])}downloadFile(e,t){return Ke.apply(this,[e,t])}uploadFile(e,t){return Fe.apply(this,[e,t])}getUploadMetadata(e,t){return Me.apply(this,[e,t])}registerExtension(e){We[e.name]=e}async invokeExtension(e,t){const n=We[e];if(!n)throw new M({message:`扩展${e} 必须先注册`});return await n.invoke(t,this)}useAdapters(e){const{adapter:t,runtime:n}=ne(e)||{};t&&(se.adapter=t),n&&(se.runtime=n)}}var Ve=new ze;function Je(e,t,n){void 0===n&&(n={});var s=/\\?/.test(t),o=\"\";for(var r in n)\"\"===o?!s&&(t+=\"?\"):o+=\"&\",o+=r+\"=\"+encodeURIComponent(n[r]);return/^http(s)?:\\/\\//.test(t+=o)?t:\"\"+e+t}class Ye{post(e){const{url:t,data:n,headers:s}=e;return new Promise(((e,o)=>{H.request({url:Je(\"https:\",t),data:n,method:\"POST\",header:s,success(t){e(t)},fail(e){o(e)}})}))}upload(e){return new Promise(((t,n)=>{const{url:s,file:o,data:r,headers:i,fileType:a}=e,c=H.uploadFile({url:Je(\"https:\",s),name:\"file\",formData:Object.assign({},r),filePath:o,fileType:a,header:i,success(e){const n={statusCode:e.statusCode,data:e.data||{}};200===e.statusCode&&r.success_action_status&&(n.statusCode=parseInt(r.success_action_status,10)),t(n)},fail(e){d&&\"mp-alipay\"===g&&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 Xe={setItem(e,t){H.setStorageSync(e,t)},getItem:e=>H.getStorageSync(e),removeItem(e){H.removeStorageSync(e)},clear(){H.clearStorageSync()}};var Ge={genAdapter:function(){return{root:{},reqClass:Ye,localStorage:Xe,primaryStorage:\"local\"}},isMatch:function(){return!0},runtime:\"uni_app\"};Ve.useAdapters(Ge);const Qe=Ve,Ze=Qe.init;Qe.init=function(e){e.env=e.spaceId;const t=Ze.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]=F(t[e]).bind(t)})),t},t.customAuth=t.auth,t};var et=Qe;function tt(){return{token:H.getStorageSync(\"uni_id_token\")||H.getStorageSync(\"uniIdToken\"),tokenExpired:H.getStorageSync(\"uni_id_token_expired\")}}function nt({token:e,tokenExpired:t}={}){e&&H.setStorageSync(\"uni_id_token\",e),t&&H.setStorageSync(\"uni_id_token_expired\",t)}function st(){if(!d||\"web\"!==g)return;uni.getStorageSync(\"__LAST_DCLOUD_APPID\")!==_&&(uni.setStorageSync(\"__LAST_DCLOUD_APPID\",_),console.warn(\"检测到当前项目与上次运行到此端口的项目不一致,自动清理uni-id保存的token信息(仅开发调试时生效)\"),H.removeStorageSync(\"uni_id_token\"),H.removeStorageSync(\"uniIdToken\"),H.removeStorageSync(\"uni_id_token_expired\"))}var ot=class extends V{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\"]=B.sign(n,this.config.clientSecret);const o=K();s[\"x-client-info\"]=encodeURIComponent(JSON.stringify(o));const{token:r}=tt();return s[\"x-client-token\"]=r,{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:o,onUploadProgress:r}){return new Promise(((i,a)=>{const c=this.adapter.uploadFile({url:e,formData:t,name:n,filePath:s,fileType:o,success(e){e&&e.statusCode<400?i(e):a(new M({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))},fail(e){a(new M({code:e.code||\"UPLOAD_FAILED\",message:e.message||e.errMsg||\"文件上传失败\"}))}});\"function\"==typeof r&&c&&\"function\"==typeof c.onProgressUpdate&&c.onProgressUpdate((e=>{r({loaded:e.totalBytesSent,total:e.totalBytesExpectedToSend})}))}))}uploadFile({filePath:e,cloudPath:t,fileType:n=\"image\",onUploadProgress:s}){if(!t)throw new M({code:\"CLOUDPATH_REQUIRED\",message:\"cloudPath不可为空\"});let o;return this.getOSSUploadOptionsFromPath({cloudPath:t}).then((t=>{const{url:r,formData:i,name:a}=t.result;o=t.result.fileUrl;const c={url:r,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:o}):s(new M({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 rt={init(e){const t=new ot(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 it({data:e}){let t;t=K();const n=JSON.parse(JSON.stringify(e||{}));if(Object.assign(n,{clientInfo:t}),!n.uniIdToken){const{token:e}=tt();e&&(n.uniIdToken=e)}return n}function at({name:e,data:t}){const{localAddress:n,localPort:s}=this,o={aliyun:\"aliyun\",tencent:\"tcb\"}[this.config.provider],r=this.config.spaceId,i=`http://${n}:${s}/system/check-function`,a=`http://${n}:${s}/cloudfunctions/${e}`;return new Promise(((t,n)=>{H.request({method:\"POST\",url:i,data:{name:e,platform:g,provider:o,spaceId:r},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=it.call(this,{data:t});H.request({method:\"POST\",url:a,data:{provider:o,platform:g,param:s},success:({statusCode:t,data:s}={})=>!t||t>=400?n(new M({code:s.code||\"SYS_ERR\",message:s.message||\"request:fail\"})):e({result:s}),fail(e){n(new M({code:e.code||e.errCode||\"SYS_ERR\",message:e.message||e.errMsg||\"request:fail\"}))}})}))}))}const ct=[{rule:/fc_function_not_found|FUNCTION_NOT_FOUND/,content:\",云函数[{functionName}]在云端不存在,请检查此云函数名称是否正确以及该云函数是否已上传到服务空间\",mode:\"append\"}];var ut=/[\\\\^$.*+?()[\\]{}|]/g,lt=RegExp(ut.source);function ht(e,t,n){return e.replace(new RegExp((s=t)&<.test(s)?s.replace(ut,\"\\\\$&\"):s,\"g\"),n);var s}function dt({functionName:e,result:t,logPvd:n}){if(this.config.debugLog&&t&&t.requestId){const s=JSON.stringify({spaceId:this.config.spaceId,functionName:e,requestId:t.requestId});console.log(`[${n}-request]${s}[/${n}-request]`)}}function ft(e){const t=e.callFunction,n=function(n){const s=n.name;n.data=it.call(e,{data:n.data});const o={aliyun:\"aliyun\",tencent:\"tcb\",tcb:\"tcb\"}[this.config.provider];return t.call(this,n).then((e=>(e.errCode=0,dt.call(this,{functionName:s,result:e,logPvd:o}),Promise.resolve(e))),(e=>(dt.call(this,{functionName:s,result:e,logPvd:o}),e&&e.message&&(e.message=function({message:e=\"\",extraInfo:t={},formatter:n=[]}={}){for(let s=0;s(console.warn(\"当前返回结果为Promise类型,不可直接访问其result属性,详情请参考:https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise\"),{})}),s}}const gt=Symbol(\"CLIENT_DB_INTERNAL\");function pt(e,t){return e.then=\"DoNotReturnProxyWithAFunctionNamedThen\",e._internalType=gt,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 mt(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 yt=[\"db.Geo\",\"db.command\",\"command.aggregate\"];function _t(e,t){return yt.indexOf(`${e}.${t}`)>-1}function wt(e){switch(u(e)){case\"array\":return e.map((e=>wt(e)));case\"object\":return e._internalType===gt||Object.keys(e).forEach((t=>{e[t]=wt(e[t])})),e;case\"regexp\":return{$regexp:{source:e.source,flags:e.flags}};case\"date\":return{$date:e.toISOString()};default:return e}}function kt(e){return e&&e.content&&e.content.$method}class Tt{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:wt(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 isAggregate(){let e=this;for(;e;){const t=kt(e),n=kt(e.prevStage);if(\"aggregate\"===t&&\"collection\"===n||\"pipeline\"===t)return!0;e=e.prevStage}return!1}get isCommand(){let e=this;for(;e;){if(\"command\"===kt(e))return!0;e=e.prevStage}return!1}get isAggregateCommand(){let e=this;for(;e;){const t=kt(e),n=kt(e.prevStage);if(\"aggregate\"===t&&\"command\"===n)return!0;e=e.prevStage}return!1}get count(){if(!this.isAggregate)return function(){return this._send(\"count\",Array.from(arguments))};const e=this;return function(){return St({$method:\"count\",$param:wt(Array.from(arguments))},e,this._database)}}get remove(){if(!this.isCommand)return function(){return this._send(\"remove\",Array.from(arguments))};const e=this;return function(){return St({$method:\"remove\",$param:wt(Array.from(arguments))},e,this._database)}}get(){return this._send(\"get\",Array.from(arguments))}add(){return this._send(\"add\",Array.from(arguments))}update(){return this._send(\"update\",Array.from(arguments))}end(){return this._send(\"end\",Array.from(arguments))}get set(){if(!this.isCommand)return function(){throw new Error(\"JQL禁止使用set方法\")};const e=this;return function(){return St({$method:\"set\",$param:wt(Array.from(arguments))},e,this._database)}}_send(e,t){const n=this.getAction(),s=this.getCommand();if(s.$db.push({$method:e,$param:wt(t)}),d){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 St(e,t,n){return pt(new Tt(e,t,n),{get(e,t){let s=\"db\";return e&&e.content&&(s=e.content.$method),_t(s,t)?St({$method:t},e,n):function(){return St({$method:t,$param:wt(Array.from(arguments))},e,n)}}})}function vt({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 At extends class{constructor({uniClient:e={}}={}){this._uniClient=e,this._authCallBacks={},this._dbCallBacks={},e.isDefault&&(this._dbCallBacks=k(\"_globalUniCloudDatabaseCallback\")),this.auth=mt(this._authCallBacks),Object.assign(this,mt(this._dbCallBacks)),this.env=pt({},{get:(e,t)=>({$env:t})}),this.Geo=pt({},{get:(e,t)=>vt({path:[\"Geo\"],method:t})}),this.serverDate=vt({path:[],method:\"serverDate\"}),this.RegExp=vt({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 o(e,t){if(n&&s)for(let n=0;nP(I(\"database\",\"complete\"),e))).then((()=>(o(null,e),N(O,{type:R,content:e}),Promise.reject(e))))}const a=P(I(\"database\",\"invoke\")),u=this._uniClient;return a.then((()=>u.callFunction({name:\"DCloud-clientDB\",type:c,data:{action:e,command:t,multiCommand:n}}))).then((e=>{const{code:t,message:n,token:s,tokenExpired:r,systemInfo:a=[]}=e.result;if(a)for(let e=0;e(console.warn(s),t)})}}return function(e){return P(I(\"database\",\"success\"),e).then((()=>P(I(\"database\",\"complete\"),e))).then((()=>(o(e,null),N(O,{type:R,content:e}),Promise.resolve(e))))}(e)}),(e=>{/fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e.message)&&console.warn(\"clientDB未初始化,请在web控制台保存一次schema以开启clientDB\");return i(new M({code:e.code||\"SYSTEM_ERROR\",message:e.message,requestId:e.requestId}))}))}}function Pt(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 pt(new e(t),{get:(e,t)=>_t(\"db\",t)?St({$method:t},null,e):function(){return St({$method:t,$param:wt(Array.from(arguments))},null,e)}})}(At,{uniClient:e});return this._database=n,n}}const It=\"token无效,跳转登录页面\",bt=\"token过期,跳转登录页面\",Ot={TOKEN_INVALID_TOKEN_EXPIRED:bt,TOKEN_INVALID_INVALID_CLIENTID:It,TOKEN_INVALID:It,TOKEN_INVALID_WRONG_TOKEN:It,TOKEN_INVALID_ANONYMOUS_USER:It},Ct={\"uni-id-token-expired\":bt,\"uni-id-check-token-failed\":It,\"uni-id-token-not-exist\":It,\"uni-id-check-device-feature-failed\":It};function Et(e,t){let n=\"\";return n=e?`${e}/${t}`:t,n.replace(/^\\//,\"\")}function Rt(e=[],t=\"\"){const n=[],s=[];return e.forEach((e=>{!0===e.needLogin?n.push(Et(t,e.path)):!1===e.needLogin&&s.push(Et(t,e.path))})),{needLoginPage:n,notNeedLoginPage:s}}function Ut(e=\"\",t={}){if(!e)return!1;if(!(t&&t.list&&t.list.length))return!1;const n=t.list,s=e.split(\"?\")[0].replace(/^\\//,\"\");return n.some((e=>e.pagePath===s))}const xt=!!t.uniIdRouter;const{loginPage:Lt,routerNeedLogin:Dt,resToLogin:qt,needLoginPage:Nt,notNeedLoginPage:Ft,loginPageInTabBar:Mt}=function({pages:e=[],subPackages:n=[],uniIdRouter:s={},tabBar:o={}}=t){const{loginPage:r,needLogin:i=[],resToLogin:a=!0}=s,{needLoginPage:c,notNeedLoginPage:u}=Rt(e),{needLoginPage:l,notNeedLoginPage:h}=function(e=[]){const t=[],n=[];return e.forEach((e=>{const{root:s,pages:o=[]}=e,{needLoginPage:r,notNeedLoginPage:i}=Rt(o,s);t.push(...r),n.push(...i)})),{needLoginPage:t,notNeedLoginPage:n}}(n);return{loginPage:r,routerNeedLogin:i,resToLogin:a,needLoginPage:[...c,...l],notNeedLoginPage:[...u,...h],loginPageInTabBar:Ut(r,o)}}();function $t(e){const t=function(e){const t=getCurrentPages(),n=t[t.length-1].route,s=e.charAt(0),o=e.split(\"?\")[0];if(\"/\"===s)return o;const r=o.replace(/^\\//,\"\").split(\"/\"),i=n.split(\"/\");i.pop();for(let e=0;e-1)&&(Nt.indexOf(t)>-1||Dt.some((t=>function(e,t){return new RegExp(t).test(e)}(e,t))))}function jt(e,t){return\"/\"!==e.charAt(0)&&(e=\"/\"+e),t?e.indexOf(\"?\")>-1?e+`&uniIdRedirectUrl=${encodeURIComponent(t)}`:e+`?uniIdRedirectUrl=${encodeURIComponent(t)}`:e}function Kt(){const e=[\"navigateTo\",\"redirectTo\",\"reLaunch\",\"switchTab\"];for(let t=0;t0)return setTimeout((()=>{N(C,o)}),0),e.url=\"\",!1;if(!Lt)return e;const t=jt(Lt,o.uniIdRedirectUrl);if(Mt){if(\"navigateTo\"===n||\"redirectTo\"===n)return setTimeout((()=>{uni.switchTab({url:t})})),!1}else if(\"switchTab\"===n)return setTimeout((()=>{uni.navigateTo({url:t})})),!1;e.url=t}return e}})}}function Bt(){this.onResponse((e=>{const{type:t,content:n}=e;let s=!1;switch(t){case\"cloudobject\":s=function(e){const{errCode:t}=e;return t in Ct}(n);break;case\"clientdb\":s=function(e){const{errCode:t}=e;return t in Ot}(n)}s&&function(e={}){const t=L(C),n=getCurrentPages(),s=n[n.length-1],o=s&&s.$page&&s.$page.fullPath;if(t.length>0)return N(C,Object.assign({uniIdRedirectUrl:o},e));Lt&&uni.navigateTo({url:jt(Lt,o)})}(n)}))}function Ht(e){e.onNeedLogin=function(e){D(C,e)},e.offNeedLogin=function(e){q(C,e)},xt&&(k(\"uni-cloud-status\").needLoginInit||(k(\"uni-cloud-status\").needLoginInit=!0,function t(){const n=getCurrentPages();n&&n[0]?Kt.call(e):setTimeout((()=>{t()}),30)}(),qt&&Bt.call(e)))}function Wt(e){!function(e){e.onResponse=function(e){D(O,e)},e.offResponse=function(e){q(O,e)}}(e),Ht(e),function(e){e.onRefreshToken=function(e){D(E,e)},e.offRefreshToken=function(e){q(E,e)}}(e)}let zt;const Vt=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",Jt=/^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;function Yt(){const e=tt().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(zt(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}zt=\"function\"!=typeof atob?function(e){if(e=String(e).replace(/[\\t\\n\\f\\r ]+/g,\"\"),!Jt.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,o=\"\",r=0;r>16&255):64===s?String.fromCharCode(t>>16&255,t>>8&255):String.fromCharCode(t>>16&255,t>>8&255,255&t);return o}:atob;var Xt=s((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0});const n=\"chooseAndUploadFile:ok\",s=\"chooseAndUploadFile:fail\";function o(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 r(e,t,{onChooseFile:s,onUploadProgress:o}){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,o){(t=Object.assign({},t)).errMsg=n;const r=t.tempFiles,i=r.length;let a=0;return new Promise((n=>{for(;a=i)return void(!r.find((e=>!e.url&&!e.errMsg))&&n(t));const u=r[s];e.uploadFile({filePath:u.path,cloudPath:u.cloudPath,fileType:u.fileType,onUploadProgress(e){e.index=s,e.tempFile=u,e.tempFilePath=u.path,o&&o(e)}}).then((e=>{u.url=e.fileID,s{u.errMsg=e.errMsg||e.message,s{uni.chooseImage({count:t,sizeType:n,sourceType:r,extension:i,success(t){e(o(t,\"image\"))},fail(e){a({errMsg:e.errMsg.replace(\"chooseImage:fail\",s)})}})}))}(t),t):\"video\"===t.type?r(e,function(e){const{camera:t,compressed:n,maxDuration:r,sourceType:i=[\"album\",\"camera\"],extension:a}=e;return new Promise(((e,c)=>{uni.chooseVideo({camera:t,compressed:n,maxDuration:r,sourceType:i,extension:a,success(t){const{tempFilePath:n,duration:s,size:r,height:i,width:a}=t;e(o({errMsg:\"chooseVideo:ok\",tempFilePaths:[n],tempFiles:[{name:t.tempFile&&t.tempFile.name||\"\",path:n,size:r,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):r(e,function(e){const{count:t,extension:n}=e;return new Promise(((e,r)=>{let i=uni.chooseFile;if(\"undefined\"!=typeof wx&&\"function\"==typeof wx.chooseMessageFile&&(i=wx.chooseMessageFile),\"function\"!=typeof i)return r({errMsg:s+\" 请指定 type 类型,该平台仅支持选择 image 或 video。\"});i({type:\"all\",count:t,extension:n,success(t){e(o(t))},fail(e){r({errMsg:e.errMsg.replace(\"chooseFile:fail\",s)})}})}))}(t),t)}}})),Gt=n(Xt);const Qt=\"manual\";function Zt(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===Qt)return;let n=!1;const s=[];for(let o=2;o{this.mixinDatacomLoading=!1;const{data:s,count:o}=n.result;this.getcount&&(this.mixinDatacomPage.count=o),this.mixinDatacomHasMore=s.length{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 o=t.collection||this.collection;n=Array.isArray(o)?n.collection(...o):n.collection(o);const r=t.where||this.where;r&&Object.keys(r).length&&(n=n.where(r));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 l=t.orderby||this.orderby;l&&(n=n.orderBy(l));const h=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,g=void 0!==t.gettree?t.gettree:this.gettree,p=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 g&&(m.getTree=y),p&&(m.getTreePath=y),n=n.skip(d*(h-1)).limit(d).get(m),n}}}}function en(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:{title:\"加载中...\",mask:!0},errorOptions:{type:\"modal\",retry:!1}},n);const{customUI:s,loadingOptions:o,errorOptions:r}=n,i=!s;return new Proxy({},{get:(n,s)=>async function n(...c){let u;i&&uni.showLoading({title:o.title,mask:o.mask});try{u=await e.callFunction({name:t,type:a,data:{method:s,params:c}})}catch(e){u={result:e}}const{errCode:l,errMsg:h,newToken:d}=u.result||{};if(i&&uni.hideLoading(),d&&d.token&&d.tokenExpired&&(nt(d),N(E,{...d})),l){if(i)if(\"toast\"===r.type)uni.showToast({title:h,icon:\"none\"});else{if(\"modal\"!==r.type)throw new Error(`Invalid errorOptions.type: ${r.type}`);{const{confirm:e}=await async function({title:e,content:t,showCancel:n,cancelText:s,confirmText:o}={}){return new Promise(((r,i)=>{uni.showModal({title:e,content:t,showCancel:n,cancelText:s,confirmText:o,success(e){r(e)},fail(){r({confirm:!1,cancel:!0})}})}))}({title:\"提示\",content:h,showCancel:r.retry,cancelText:\"取消\",confirmText:r.retry?\"重试\":\"确定\"});if(r.retry&&e)return n(...c)}}const e=new M({code:l,message:h,requestId:u.requestId});throw e.detail=u.result,N(O,{type:x,content:e}),e}return N(O,{type:x,content:u.result}),u.result}})}}async function tn(e,t){const n=`http://${e}:${t}/system/ping`;try{const e=await(s={url:n,timeout:500},new Promise(((e,t)=>{H.request({...s,success(t){e(t)},fail(e){t(e)}})})));return!(!e.data||0!==e.data.code)}catch(e){return!1}var s}function nn(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(!d)return Promise.resolve();if(\"app\"===g&&\"ios\"===uni.getSystemInfoSync().osName){const{osName:e,osVersion:t}=uni.getSystemInfoSync();\"ios\"===e&&function(e){if(!e||\"string\"!=typeof e)return 0;const t=e.match(/^(\\d+)./);return t&&t[1]?parseInt(t[1]):0}(t)>=14&&console.warn(\"iOS 14及以上版本连接uniCloud本地调试服务需要允许客户端查找并连接到本地网络上的设备(仅开发模式生效,发行模式会连接uniCloud云端服务)\")}if(d&&e.debugInfo){const{address:t,servePort:n}=e.debugInfo;return async function(e,t){let n;for(let s=0;s{if(!d)return Promise.resolve();const s=console[\"app\"===g?\"error\":\"warn\"];if(t)e.localAddress=t,e.localPort=n;else if(e.debugInfo){let t=\"\";\"remote\"===e.debugInfo.initialLaunchType?(e.debugInfo.forceRemote=!0,t=\"当前客户端和HBuilderX不在同一局域网下(或其他网络原因无法连接HBuilderX),uniCloud本地调试服务不对当前客户端生效。\\n- 如果不使用uniCloud本地调试服务,请直接忽略此信息。\\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。\\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\"):t=\"无法连接uniCloud本地调试服务,请检查当前客户端是否与主机在同一局域网下。\\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。\\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\",\"web\"===g&&(t+=\"\\n- 部分浏览器开启节流模式之后访问本地地址受限,请检查是否启用了节流模式\"),0===g.indexOf(\"mp-\")&&(t+=\"\\n- 小程序中如何使用uniCloud,请参考:https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp\"),s(t)}})).then((()=>{st(),e.isReady=!0,e.initUniCloudStatus=\"fulfilled\"})).catch((t=>{console.error(t),e.initUniCloudStatus=\"rejected\"}))}let sn=new class{init(e){let t={};const n=d&&(\"web\"===g&&navigator.userAgent.indexOf(\"HBuilderX\")>0||\"app\"===g);switch(e.provider){case\"tcb\":case\"tencent\":t=et.init(Object.assign(e,{debugLog:n}));break;case\"aliyun\":t=J.init(Object.assign(e,{debugLog:n}));break;case\"private\":t=rt.init(Object.assign(e,{debugLog:n}));break;default:throw new Error(\"未提供正确的provider参数\")}const s=p;d&&s&&!s.code&&(t.debugInfo=s),nn(t),t.reInit=function(){nn(this)},ft(t),function(e){const t=e.uploadFile;e.uploadFile=function(e){return t.call(this,e)}}(t),Pt(t),function(e){e.getCurrentUserInfo=Yt,e.chooseAndUploadFile=Gt.initChooseAndUploadFile(e),Object.assign(e,{get mixinDatacom(){return Zt(e)}}),e.importObject=en(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]=F(t[e],e).bind(t)})),t.init=this.init,t}};(()=>{{const e=m;let t={};if(1===e.length)t=e[0],sn=sn.init(t),sn.isDefault=!0;else{const t=[\"auth\",\"callFunction\",\"uploadFile\",\"deleteFile\",\"getTempFileURL\",\"downloadFile\",\"database\",\"getCurrentUSerInfo\",\"importObject\"];let n;n=e&&e.length>0?\"应用有多个服务空间,请通过uniCloud.init方法指定要使用的服务空间\":y?\"应用未关联服务空间,请在uniCloud目录右键关联服务空间\":\"uni-app cli项目内使用uniCloud需要使用HBuilderX的运行菜单运行项目,且需要在uniCloud目录关联服务空间\",t.forEach((e=>{sn[e]=function(){return console.error(n),Promise.reject(new M({code:\"SYS_ERR\",message:n}))}}))}Object.assign(sn,{get mixinDatacom(){return Zt(sn)}}),Wt(sn),sn.addInterceptor=v,sn.removeInterceptor=A,d&&\"web\"===g&&(window.uniCloud=sn)}})();var on=sn;export{on 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;","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","/*!\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} 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';\nconst domain = 'https://fx.anxincloud.cn';\n\nconst devApi = 'https://121.36.37.70:8204';\nconst devDomain = 'https://121.36.37.70:8204';\n\nconst online = true; //是否线上模式\n\nexport default {\n domain: online ? domain : devDomain,\n api: online ? api : devApi\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","export default {\n \"id\": \"2852637\",\n \"name\": \"uniui图标库\",\n \"font_family\": \"uniicons\",\n \"css_prefix_text\": \"uniui-\",\n \"description\": \"\",\n \"glyphs\": [\n {\n \"icon_id\": \"25027049\",\n \"name\": \"yanse\",\n \"font_class\": \"color\",\n \"unicode\": \"e6cf\",\n \"unicode_decimal\": 59087\n },\n {\n \"icon_id\": \"25027048\",\n \"name\": \"wallet\",\n \"font_class\": \"wallet\",\n \"unicode\": \"e6b1\",\n \"unicode_decimal\": 59057\n },\n {\n \"icon_id\": \"25015720\",\n \"name\": \"settings-filled\",\n \"font_class\": \"settings-filled\",\n \"unicode\": \"e6ce\",\n \"unicode_decimal\": 59086\n },\n {\n \"icon_id\": \"25015434\",\n \"name\": \"shimingrenzheng-filled\",\n \"font_class\": \"auth-filled\",\n \"unicode\": \"e6cc\",\n \"unicode_decimal\": 59084\n },\n {\n \"icon_id\": \"24934246\",\n \"name\": \"shop-filled\",\n \"font_class\": \"shop-filled\",\n \"unicode\": \"e6cd\",\n \"unicode_decimal\": 59085\n },\n {\n \"icon_id\": \"24934159\",\n \"name\": \"staff-filled-01\",\n \"font_class\": \"staff-filled\",\n \"unicode\": \"e6cb\",\n \"unicode_decimal\": 59083\n },\n {\n \"icon_id\": \"24932461\",\n \"name\": \"VIP-filled\",\n \"font_class\": \"vip-filled\",\n \"unicode\": \"e6c6\",\n \"unicode_decimal\": 59078\n },\n {\n \"icon_id\": \"24932462\",\n \"name\": \"plus_circle_fill\",\n \"font_class\": \"plus-filled\",\n \"unicode\": \"e6c7\",\n \"unicode_decimal\": 59079\n },\n {\n \"icon_id\": \"24932463\",\n \"name\": \"folder_add-filled\",\n \"font_class\": \"folder-add-filled\",\n \"unicode\": \"e6c8\",\n \"unicode_decimal\": 59080\n },\n {\n \"icon_id\": \"24932464\",\n \"name\": \"yanse-filled\",\n \"font_class\": \"color-filled\",\n \"unicode\": \"e6c9\",\n \"unicode_decimal\": 59081\n },\n {\n \"icon_id\": \"24932465\",\n \"name\": \"tune-filled\",\n \"font_class\": \"tune-filled\",\n \"unicode\": \"e6ca\",\n \"unicode_decimal\": 59082\n },\n {\n \"icon_id\": \"24932455\",\n \"name\": \"a-rilidaka-filled\",\n \"font_class\": \"calendar-filled\",\n \"unicode\": \"e6c0\",\n \"unicode_decimal\": 59072\n },\n {\n \"icon_id\": \"24932456\",\n \"name\": \"notification-filled\",\n \"font_class\": \"notification-filled\",\n \"unicode\": \"e6c1\",\n \"unicode_decimal\": 59073\n },\n {\n \"icon_id\": \"24932457\",\n \"name\": \"wallet-filled\",\n \"font_class\": \"wallet-filled\",\n \"unicode\": \"e6c2\",\n \"unicode_decimal\": 59074\n },\n {\n \"icon_id\": \"24932458\",\n \"name\": \"paihangbang-filled\",\n \"font_class\": \"medal-filled\",\n \"unicode\": \"e6c3\",\n \"unicode_decimal\": 59075\n },\n {\n \"icon_id\": \"24932459\",\n \"name\": \"gift-filled\",\n \"font_class\": \"gift-filled\",\n \"unicode\": \"e6c4\",\n \"unicode_decimal\": 59076\n },\n {\n \"icon_id\": \"24932460\",\n \"name\": \"fire-filled\",\n \"font_class\": \"fire-filled\",\n \"unicode\": \"e6c5\",\n \"unicode_decimal\": 59077\n },\n {\n \"icon_id\": \"24928001\",\n \"name\": \"refreshempty\",\n \"font_class\": \"refreshempty\",\n \"unicode\": \"e6bf\",\n \"unicode_decimal\": 59071\n },\n {\n \"icon_id\": \"24926853\",\n \"name\": \"location-ellipse\",\n \"font_class\": \"location-filled\",\n \"unicode\": \"e6af\",\n \"unicode_decimal\": 59055\n },\n {\n \"icon_id\": \"24926735\",\n \"name\": \"person-filled\",\n \"font_class\": \"person-filled\",\n \"unicode\": \"e69d\",\n \"unicode_decimal\": 59037\n },\n {\n \"icon_id\": \"24926703\",\n \"name\": \"personadd-filled\",\n \"font_class\": \"personadd-filled\",\n \"unicode\": \"e698\",\n \"unicode_decimal\": 59032\n },\n {\n \"icon_id\": \"24923351\",\n \"name\": \"back\",\n \"font_class\": \"back\",\n \"unicode\": \"e6b9\",\n \"unicode_decimal\": 59065\n },\n {\n \"icon_id\": \"24923352\",\n \"name\": \"forward\",\n \"font_class\": \"forward\",\n \"unicode\": \"e6ba\",\n \"unicode_decimal\": 59066\n },\n {\n \"icon_id\": \"24923353\",\n \"name\": \"arrowthinright\",\n \"font_class\": \"arrow-right\",\n \"unicode\": \"e6bb\",\n \"unicode_decimal\": 59067\n },\n\t\t{\n\t\t \"icon_id\": \"24923353\",\n\t\t \"name\": \"arrowthinright\",\n\t\t \"font_class\": \"arrowthinright\",\n\t\t \"unicode\": \"e6bb\",\n\t\t \"unicode_decimal\": 59067\n\t\t},\n {\n \"icon_id\": \"24923354\",\n \"name\": \"arrowthinleft\",\n \"font_class\": \"arrow-left\",\n \"unicode\": \"e6bc\",\n \"unicode_decimal\": 59068\n },\n\t\t{\n\t\t \"icon_id\": \"24923354\",\n\t\t \"name\": \"arrowthinleft\",\n\t\t \"font_class\": \"arrowthinleft\",\n\t\t \"unicode\": \"e6bc\",\n\t\t \"unicode_decimal\": 59068\n\t\t},\n {\n \"icon_id\": \"24923355\",\n \"name\": \"arrowthinup\",\n \"font_class\": \"arrow-up\",\n \"unicode\": \"e6bd\",\n \"unicode_decimal\": 59069\n },\n\t\t{\n\t\t \"icon_id\": \"24923355\",\n\t\t \"name\": \"arrowthinup\",\n\t\t \"font_class\": \"arrowthinup\",\n\t\t \"unicode\": \"e6bd\",\n\t\t \"unicode_decimal\": 59069\n\t\t},\n {\n \"icon_id\": \"24923356\",\n \"name\": \"arrowthindown\",\n \"font_class\": \"arrow-down\",\n \"unicode\": \"e6be\",\n \"unicode_decimal\": 59070\n },{\n \"icon_id\": \"24923356\",\n \"name\": \"arrowthindown\",\n \"font_class\": \"arrowthindown\",\n \"unicode\": \"e6be\",\n \"unicode_decimal\": 59070\n },\n {\n \"icon_id\": \"24923349\",\n \"name\": \"arrowdown\",\n \"font_class\": \"bottom\",\n \"unicode\": \"e6b8\",\n \"unicode_decimal\": 59064\n },{\n \"icon_id\": \"24923349\",\n \"name\": \"arrowdown\",\n \"font_class\": \"arrowdown\",\n \"unicode\": \"e6b8\",\n \"unicode_decimal\": 59064\n },\n {\n \"icon_id\": \"24923346\",\n \"name\": \"arrowright\",\n \"font_class\": \"right\",\n \"unicode\": \"e6b5\",\n \"unicode_decimal\": 59061\n },\n\t\t{\n\t\t \"icon_id\": \"24923346\",\n\t\t \"name\": \"arrowright\",\n\t\t \"font_class\": \"arrowright\",\n\t\t \"unicode\": \"e6b5\",\n\t\t \"unicode_decimal\": 59061\n\t\t},\n {\n \"icon_id\": \"24923347\",\n \"name\": \"arrowup\",\n \"font_class\": \"top\",\n \"unicode\": \"e6b6\",\n \"unicode_decimal\": 59062\n },\n\t\t{\n\t\t \"icon_id\": \"24923347\",\n\t\t \"name\": \"arrowup\",\n\t\t \"font_class\": \"arrowup\",\n\t\t \"unicode\": \"e6b6\",\n\t\t \"unicode_decimal\": 59062\n\t\t},\n {\n \"icon_id\": \"24923348\",\n \"name\": \"arrowleft\",\n \"font_class\": \"left\",\n \"unicode\": \"e6b7\",\n \"unicode_decimal\": 59063\n },\n\t\t{\n\t\t \"icon_id\": \"24923348\",\n\t\t \"name\": \"arrowleft\",\n\t\t \"font_class\": \"arrowleft\",\n\t\t \"unicode\": \"e6b7\",\n\t\t \"unicode_decimal\": 59063\n\t\t},\n {\n \"icon_id\": \"24923334\",\n \"name\": \"eye\",\n \"font_class\": \"eye\",\n \"unicode\": \"e651\",\n \"unicode_decimal\": 58961\n },\n {\n \"icon_id\": \"24923335\",\n \"name\": \"eye-filled\",\n \"font_class\": \"eye-filled\",\n \"unicode\": \"e66a\",\n \"unicode_decimal\": 58986\n },\n {\n \"icon_id\": \"24923336\",\n \"name\": \"eye-slash\",\n \"font_class\": \"eye-slash\",\n \"unicode\": \"e6b3\",\n \"unicode_decimal\": 59059\n },\n {\n \"icon_id\": \"24923337\",\n \"name\": \"eye-slash-filled\",\n \"font_class\": \"eye-slash-filled\",\n \"unicode\": \"e6b4\",\n \"unicode_decimal\": 59060\n },\n {\n \"icon_id\": \"24923305\",\n \"name\": \"info-filled\",\n \"font_class\": \"info-filled\",\n \"unicode\": \"e649\",\n \"unicode_decimal\": 58953\n },\n {\n \"icon_id\": \"24923299\",\n \"name\": \"reload-01\",\n \"font_class\": \"reload\",\n \"unicode\": \"e6b2\",\n \"unicode_decimal\": 59058\n },\n {\n \"icon_id\": \"24923195\",\n \"name\": \"mic_slash_fill\",\n \"font_class\": \"micoff-filled\",\n \"unicode\": \"e6b0\",\n \"unicode_decimal\": 59056\n },\n {\n \"icon_id\": \"24923165\",\n \"name\": \"map-pin-ellipse\",\n \"font_class\": \"map-pin-ellipse\",\n \"unicode\": \"e6ac\",\n \"unicode_decimal\": 59052\n },\n {\n \"icon_id\": \"24923166\",\n \"name\": \"map-pin\",\n \"font_class\": \"map-pin\",\n \"unicode\": \"e6ad\",\n \"unicode_decimal\": 59053\n },\n {\n \"icon_id\": \"24923167\",\n \"name\": \"location\",\n \"font_class\": \"location\",\n \"unicode\": \"e6ae\",\n \"unicode_decimal\": 59054\n },\n {\n \"icon_id\": \"24923064\",\n \"name\": \"starhalf\",\n \"font_class\": \"starhalf\",\n \"unicode\": \"e683\",\n \"unicode_decimal\": 59011\n },\n {\n \"icon_id\": \"24923065\",\n \"name\": \"star\",\n \"font_class\": \"star\",\n \"unicode\": \"e688\",\n \"unicode_decimal\": 59016\n },\n {\n \"icon_id\": \"24923066\",\n \"name\": \"star-filled\",\n \"font_class\": \"star-filled\",\n \"unicode\": \"e68f\",\n \"unicode_decimal\": 59023\n },\n {\n \"icon_id\": \"24899646\",\n \"name\": \"a-rilidaka\",\n \"font_class\": \"calendar\",\n \"unicode\": \"e6a0\",\n \"unicode_decimal\": 59040\n },\n {\n \"icon_id\": \"24899647\",\n \"name\": \"fire\",\n \"font_class\": \"fire\",\n \"unicode\": \"e6a1\",\n \"unicode_decimal\": 59041\n },\n {\n \"icon_id\": \"24899648\",\n \"name\": \"paihangbang\",\n \"font_class\": \"medal\",\n \"unicode\": \"e6a2\",\n \"unicode_decimal\": 59042\n },\n {\n \"icon_id\": \"24899649\",\n \"name\": \"font\",\n \"font_class\": \"font\",\n \"unicode\": \"e6a3\",\n \"unicode_decimal\": 59043\n },\n {\n \"icon_id\": \"24899650\",\n \"name\": \"gift\",\n \"font_class\": \"gift\",\n \"unicode\": \"e6a4\",\n \"unicode_decimal\": 59044\n },\n {\n \"icon_id\": \"24899651\",\n \"name\": \"link\",\n \"font_class\": \"link\",\n \"unicode\": \"e6a5\",\n \"unicode_decimal\": 59045\n },\n {\n \"icon_id\": \"24899652\",\n \"name\": \"notification\",\n \"font_class\": \"notification\",\n \"unicode\": \"e6a6\",\n \"unicode_decimal\": 59046\n },\n {\n \"icon_id\": \"24899653\",\n \"name\": \"staff\",\n \"font_class\": \"staff\",\n \"unicode\": \"e6a7\",\n \"unicode_decimal\": 59047\n },\n {\n \"icon_id\": \"24899654\",\n \"name\": \"VIP\",\n \"font_class\": \"vip\",\n \"unicode\": \"e6a8\",\n \"unicode_decimal\": 59048\n },\n {\n \"icon_id\": \"24899655\",\n \"name\": \"folder_add\",\n \"font_class\": \"folder-add\",\n \"unicode\": \"e6a9\",\n \"unicode_decimal\": 59049\n },\n {\n \"icon_id\": \"24899656\",\n \"name\": \"tune\",\n \"font_class\": \"tune\",\n \"unicode\": \"e6aa\",\n \"unicode_decimal\": 59050\n },\n {\n \"icon_id\": \"24899657\",\n \"name\": \"shimingrenzheng\",\n \"font_class\": \"auth\",\n \"unicode\": \"e6ab\",\n \"unicode_decimal\": 59051\n },\n {\n \"icon_id\": \"24899565\",\n \"name\": \"person\",\n \"font_class\": \"person\",\n \"unicode\": \"e699\",\n \"unicode_decimal\": 59033\n },\n {\n \"icon_id\": \"24899566\",\n \"name\": \"email-filled\",\n \"font_class\": \"email-filled\",\n \"unicode\": \"e69a\",\n \"unicode_decimal\": 59034\n },\n {\n \"icon_id\": \"24899567\",\n \"name\": \"phone-filled\",\n \"font_class\": \"phone-filled\",\n \"unicode\": \"e69b\",\n \"unicode_decimal\": 59035\n },\n {\n \"icon_id\": \"24899568\",\n \"name\": \"phone\",\n \"font_class\": \"phone\",\n \"unicode\": \"e69c\",\n \"unicode_decimal\": 59036\n },\n {\n \"icon_id\": \"24899570\",\n \"name\": \"email\",\n \"font_class\": \"email\",\n \"unicode\": \"e69e\",\n \"unicode_decimal\": 59038\n },\n {\n \"icon_id\": \"24899571\",\n \"name\": \"personadd\",\n \"font_class\": \"personadd\",\n \"unicode\": \"e69f\",\n \"unicode_decimal\": 59039\n },\n {\n \"icon_id\": \"24899558\",\n \"name\": \"chatboxes-filled\",\n \"font_class\": \"chatboxes-filled\",\n \"unicode\": \"e692\",\n \"unicode_decimal\": 59026\n },\n {\n \"icon_id\": \"24899559\",\n \"name\": \"contact\",\n \"font_class\": \"contact\",\n \"unicode\": \"e693\",\n \"unicode_decimal\": 59027\n },\n {\n \"icon_id\": \"24899560\",\n \"name\": \"chatbubble-filled\",\n \"font_class\": \"chatbubble-filled\",\n \"unicode\": \"e694\",\n \"unicode_decimal\": 59028\n },\n {\n \"icon_id\": \"24899561\",\n \"name\": \"contact-filled\",\n \"font_class\": \"contact-filled\",\n \"unicode\": \"e695\",\n \"unicode_decimal\": 59029\n },\n {\n \"icon_id\": \"24899562\",\n \"name\": \"chatboxes\",\n \"font_class\": \"chatboxes\",\n \"unicode\": \"e696\",\n \"unicode_decimal\": 59030\n },\n {\n \"icon_id\": \"24899563\",\n \"name\": \"chatbubble\",\n \"font_class\": \"chatbubble\",\n \"unicode\": \"e697\",\n \"unicode_decimal\": 59031\n },\n {\n \"icon_id\": \"24881290\",\n \"name\": \"upload-filled\",\n \"font_class\": \"upload-filled\",\n \"unicode\": \"e68e\",\n \"unicode_decimal\": 59022\n },\n {\n \"icon_id\": \"24881292\",\n \"name\": \"upload\",\n \"font_class\": \"upload\",\n \"unicode\": \"e690\",\n \"unicode_decimal\": 59024\n },\n {\n \"icon_id\": \"24881293\",\n \"name\": \"weixin\",\n \"font_class\": \"weixin\",\n \"unicode\": \"e691\",\n \"unicode_decimal\": 59025\n },\n {\n \"icon_id\": \"24881274\",\n \"name\": \"compose\",\n \"font_class\": \"compose\",\n \"unicode\": \"e67f\",\n \"unicode_decimal\": 59007\n },\n {\n \"icon_id\": \"24881275\",\n \"name\": \"qq\",\n \"font_class\": \"qq\",\n \"unicode\": \"e680\",\n \"unicode_decimal\": 59008\n },\n {\n \"icon_id\": \"24881276\",\n \"name\": \"download-filled\",\n \"font_class\": \"download-filled\",\n \"unicode\": \"e681\",\n \"unicode_decimal\": 59009\n },\n {\n \"icon_id\": \"24881277\",\n \"name\": \"pengyouquan\",\n \"font_class\": \"pyq\",\n \"unicode\": \"e682\",\n \"unicode_decimal\": 59010\n },\n {\n \"icon_id\": \"24881279\",\n \"name\": \"sound\",\n \"font_class\": \"sound\",\n \"unicode\": \"e684\",\n \"unicode_decimal\": 59012\n },\n {\n \"icon_id\": \"24881280\",\n \"name\": \"trash-filled\",\n \"font_class\": \"trash-filled\",\n \"unicode\": \"e685\",\n \"unicode_decimal\": 59013\n },\n {\n \"icon_id\": \"24881281\",\n \"name\": \"sound-filled\",\n \"font_class\": \"sound-filled\",\n \"unicode\": \"e686\",\n \"unicode_decimal\": 59014\n },\n {\n \"icon_id\": \"24881282\",\n \"name\": \"trash\",\n \"font_class\": \"trash\",\n \"unicode\": \"e687\",\n \"unicode_decimal\": 59015\n },\n {\n \"icon_id\": \"24881284\",\n \"name\": \"videocam-filled\",\n \"font_class\": \"videocam-filled\",\n \"unicode\": \"e689\",\n \"unicode_decimal\": 59017\n },\n {\n \"icon_id\": \"24881285\",\n \"name\": \"spinner-cycle\",\n \"font_class\": \"spinner-cycle\",\n \"unicode\": \"e68a\",\n \"unicode_decimal\": 59018\n },\n {\n \"icon_id\": \"24881286\",\n \"name\": \"weibo\",\n \"font_class\": \"weibo\",\n \"unicode\": \"e68b\",\n \"unicode_decimal\": 59019\n },\n {\n \"icon_id\": \"24881288\",\n \"name\": \"videocam\",\n \"font_class\": \"videocam\",\n \"unicode\": \"e68c\",\n \"unicode_decimal\": 59020\n },\n {\n \"icon_id\": \"24881289\",\n \"name\": \"download\",\n \"font_class\": \"download\",\n \"unicode\": \"e68d\",\n \"unicode_decimal\": 59021\n },\n {\n \"icon_id\": \"24879601\",\n \"name\": \"help\",\n \"font_class\": \"help\",\n \"unicode\": \"e679\",\n \"unicode_decimal\": 59001\n },\n {\n \"icon_id\": \"24879602\",\n \"name\": \"navigate-filled\",\n \"font_class\": \"navigate-filled\",\n \"unicode\": \"e67a\",\n \"unicode_decimal\": 59002\n },\n {\n \"icon_id\": \"24879603\",\n \"name\": \"plusempty\",\n \"font_class\": \"plusempty\",\n \"unicode\": \"e67b\",\n \"unicode_decimal\": 59003\n },\n {\n \"icon_id\": \"24879604\",\n \"name\": \"smallcircle\",\n \"font_class\": \"smallcircle\",\n \"unicode\": \"e67c\",\n \"unicode_decimal\": 59004\n },\n {\n \"icon_id\": \"24879605\",\n \"name\": \"minus-filled\",\n \"font_class\": \"minus-filled\",\n \"unicode\": \"e67d\",\n \"unicode_decimal\": 59005\n },\n {\n \"icon_id\": \"24879606\",\n \"name\": \"micoff\",\n \"font_class\": \"micoff\",\n \"unicode\": \"e67e\",\n \"unicode_decimal\": 59006\n },\n {\n \"icon_id\": \"24879588\",\n \"name\": \"closeempty\",\n \"font_class\": \"closeempty\",\n \"unicode\": \"e66c\",\n \"unicode_decimal\": 58988\n },\n {\n \"icon_id\": \"24879589\",\n \"name\": \"clear\",\n \"font_class\": \"clear\",\n \"unicode\": \"e66d\",\n \"unicode_decimal\": 58989\n },\n {\n \"icon_id\": \"24879590\",\n \"name\": \"navigate\",\n \"font_class\": \"navigate\",\n \"unicode\": \"e66e\",\n \"unicode_decimal\": 58990\n },\n {\n \"icon_id\": \"24879591\",\n \"name\": \"minus\",\n \"font_class\": \"minus\",\n \"unicode\": \"e66f\",\n \"unicode_decimal\": 58991\n },\n {\n \"icon_id\": \"24879592\",\n \"name\": \"image\",\n \"font_class\": \"image\",\n \"unicode\": \"e670\",\n \"unicode_decimal\": 58992\n },\n {\n \"icon_id\": \"24879593\",\n \"name\": \"mic\",\n \"font_class\": \"mic\",\n \"unicode\": \"e671\",\n \"unicode_decimal\": 58993\n },\n {\n \"icon_id\": \"24879594\",\n \"name\": \"paperplane\",\n \"font_class\": \"paperplane\",\n \"unicode\": \"e672\",\n \"unicode_decimal\": 58994\n },\n {\n \"icon_id\": \"24879595\",\n \"name\": \"close\",\n \"font_class\": \"close\",\n \"unicode\": \"e673\",\n \"unicode_decimal\": 58995\n },\n {\n \"icon_id\": \"24879596\",\n \"name\": \"help-filled\",\n \"font_class\": \"help-filled\",\n \"unicode\": \"e674\",\n \"unicode_decimal\": 58996\n },\n {\n \"icon_id\": \"24879597\",\n \"name\": \"plus-filled\",\n \"font_class\": \"paperplane-filled\",\n \"unicode\": \"e675\",\n \"unicode_decimal\": 58997\n },\n {\n \"icon_id\": \"24879598\",\n \"name\": \"plus\",\n \"font_class\": \"plus\",\n \"unicode\": \"e676\",\n \"unicode_decimal\": 58998\n },\n {\n \"icon_id\": \"24879599\",\n \"name\": \"mic-filled\",\n \"font_class\": \"mic-filled\",\n \"unicode\": \"e677\",\n \"unicode_decimal\": 58999\n },\n {\n \"icon_id\": \"24879600\",\n \"name\": \"image-filled\",\n \"font_class\": \"image-filled\",\n \"unicode\": \"e678\",\n \"unicode_decimal\": 59000\n },\n {\n \"icon_id\": \"24855900\",\n \"name\": \"locked-filled\",\n \"font_class\": \"locked-filled\",\n \"unicode\": \"e668\",\n \"unicode_decimal\": 58984\n },\n {\n \"icon_id\": \"24855901\",\n \"name\": \"info\",\n \"font_class\": \"info\",\n \"unicode\": \"e669\",\n \"unicode_decimal\": 58985\n },\n {\n \"icon_id\": \"24855903\",\n \"name\": \"locked\",\n \"font_class\": \"locked\",\n \"unicode\": \"e66b\",\n \"unicode_decimal\": 58987\n },\n {\n \"icon_id\": \"24855884\",\n \"name\": \"camera-filled\",\n \"font_class\": \"camera-filled\",\n \"unicode\": \"e658\",\n \"unicode_decimal\": 58968\n },\n {\n \"icon_id\": \"24855885\",\n \"name\": \"chat-filled\",\n \"font_class\": \"chat-filled\",\n \"unicode\": \"e659\",\n \"unicode_decimal\": 58969\n },\n {\n \"icon_id\": \"24855886\",\n \"name\": \"camera\",\n \"font_class\": \"camera\",\n \"unicode\": \"e65a\",\n \"unicode_decimal\": 58970\n },\n {\n \"icon_id\": \"24855887\",\n \"name\": \"circle\",\n \"font_class\": \"circle\",\n \"unicode\": \"e65b\",\n \"unicode_decimal\": 58971\n },\n {\n \"icon_id\": \"24855888\",\n \"name\": \"checkmarkempty\",\n \"font_class\": \"checkmarkempty\",\n \"unicode\": \"e65c\",\n \"unicode_decimal\": 58972\n },\n {\n \"icon_id\": \"24855889\",\n \"name\": \"chat\",\n \"font_class\": \"chat\",\n \"unicode\": \"e65d\",\n \"unicode_decimal\": 58973\n },\n {\n \"icon_id\": \"24855890\",\n \"name\": \"circle-filled\",\n \"font_class\": \"circle-filled\",\n \"unicode\": \"e65e\",\n \"unicode_decimal\": 58974\n },\n {\n \"icon_id\": \"24855891\",\n \"name\": \"flag\",\n \"font_class\": \"flag\",\n \"unicode\": \"e65f\",\n \"unicode_decimal\": 58975\n },\n {\n \"icon_id\": \"24855892\",\n \"name\": \"flag-filled\",\n \"font_class\": \"flag-filled\",\n \"unicode\": \"e660\",\n \"unicode_decimal\": 58976\n },\n {\n \"icon_id\": \"24855893\",\n \"name\": \"gear-filled\",\n \"font_class\": \"gear-filled\",\n \"unicode\": \"e661\",\n \"unicode_decimal\": 58977\n },\n {\n \"icon_id\": \"24855894\",\n \"name\": \"home\",\n \"font_class\": \"home\",\n \"unicode\": \"e662\",\n \"unicode_decimal\": 58978\n },\n {\n \"icon_id\": \"24855895\",\n \"name\": \"home-filled\",\n \"font_class\": \"home-filled\",\n \"unicode\": \"e663\",\n \"unicode_decimal\": 58979\n },\n {\n \"icon_id\": \"24855896\",\n \"name\": \"gear\",\n \"font_class\": \"gear\",\n \"unicode\": \"e664\",\n \"unicode_decimal\": 58980\n },\n {\n \"icon_id\": \"24855897\",\n \"name\": \"smallcircle-filled\",\n \"font_class\": \"smallcircle-filled\",\n \"unicode\": \"e665\",\n \"unicode_decimal\": 58981\n },\n {\n \"icon_id\": \"24855898\",\n \"name\": \"map-filled\",\n \"font_class\": \"map-filled\",\n \"unicode\": \"e666\",\n \"unicode_decimal\": 58982\n },\n {\n \"icon_id\": \"24855899\",\n \"name\": \"map\",\n \"font_class\": \"map\",\n \"unicode\": \"e667\",\n \"unicode_decimal\": 58983\n },\n {\n \"icon_id\": \"24855825\",\n \"name\": \"refresh-filled\",\n \"font_class\": \"refresh-filled\",\n \"unicode\": \"e656\",\n \"unicode_decimal\": 58966\n },\n {\n \"icon_id\": \"24855826\",\n \"name\": \"refresh\",\n \"font_class\": \"refresh\",\n \"unicode\": \"e657\",\n \"unicode_decimal\": 58967\n },\n {\n \"icon_id\": \"24855808\",\n \"name\": \"cloud-upload\",\n \"font_class\": \"cloud-upload\",\n \"unicode\": \"e645\",\n \"unicode_decimal\": 58949\n },\n {\n \"icon_id\": \"24855809\",\n \"name\": \"cloud-download-filled\",\n \"font_class\": \"cloud-download-filled\",\n \"unicode\": \"e646\",\n \"unicode_decimal\": 58950\n },\n {\n \"icon_id\": \"24855810\",\n \"name\": \"cloud-download\",\n \"font_class\": \"cloud-download\",\n \"unicode\": \"e647\",\n \"unicode_decimal\": 58951\n },\n {\n \"icon_id\": \"24855811\",\n \"name\": \"cloud-upload-filled\",\n \"font_class\": \"cloud-upload-filled\",\n \"unicode\": \"e648\",\n \"unicode_decimal\": 58952\n },\n {\n \"icon_id\": \"24855813\",\n \"name\": \"redo\",\n \"font_class\": \"redo\",\n \"unicode\": \"e64a\",\n \"unicode_decimal\": 58954\n },\n {\n \"icon_id\": \"24855814\",\n \"name\": \"images-filled\",\n \"font_class\": \"images-filled\",\n \"unicode\": \"e64b\",\n \"unicode_decimal\": 58955\n },\n {\n \"icon_id\": \"24855815\",\n \"name\": \"undo-filled\",\n \"font_class\": \"undo-filled\",\n \"unicode\": \"e64c\",\n \"unicode_decimal\": 58956\n },\n {\n \"icon_id\": \"24855816\",\n \"name\": \"more\",\n \"font_class\": \"more\",\n \"unicode\": \"e64d\",\n \"unicode_decimal\": 58957\n },\n {\n \"icon_id\": \"24855817\",\n \"name\": \"more-filled\",\n \"font_class\": \"more-filled\",\n \"unicode\": \"e64e\",\n \"unicode_decimal\": 58958\n },\n {\n \"icon_id\": \"24855818\",\n \"name\": \"undo\",\n \"font_class\": \"undo\",\n \"unicode\": \"e64f\",\n \"unicode_decimal\": 58959\n },\n {\n \"icon_id\": \"24855819\",\n \"name\": \"images\",\n \"font_class\": \"images\",\n \"unicode\": \"e650\",\n \"unicode_decimal\": 58960\n },\n {\n \"icon_id\": \"24855821\",\n \"name\": \"paperclip\",\n \"font_class\": \"paperclip\",\n \"unicode\": \"e652\",\n \"unicode_decimal\": 58962\n },\n {\n \"icon_id\": \"24855822\",\n \"name\": \"settings\",\n \"font_class\": \"settings\",\n \"unicode\": \"e653\",\n \"unicode_decimal\": 58963\n },\n {\n \"icon_id\": \"24855823\",\n \"name\": \"search\",\n \"font_class\": \"search\",\n \"unicode\": \"e654\",\n \"unicode_decimal\": 58964\n },\n {\n \"icon_id\": \"24855824\",\n \"name\": \"redo-filled\",\n \"font_class\": \"redo-filled\",\n \"unicode\": \"e655\",\n \"unicode_decimal\": 58965\n },\n {\n \"icon_id\": \"24841702\",\n \"name\": \"list\",\n \"font_class\": \"list\",\n \"unicode\": \"e644\",\n \"unicode_decimal\": 58948\n },\n {\n \"icon_id\": \"24841489\",\n \"name\": \"mail-open-filled\",\n \"font_class\": \"mail-open-filled\",\n \"unicode\": \"e63a\",\n \"unicode_decimal\": 58938\n },\n {\n \"icon_id\": \"24841491\",\n \"name\": \"hand-thumbsdown-filled\",\n \"font_class\": \"hand-down-filled\",\n \"unicode\": \"e63c\",\n \"unicode_decimal\": 58940\n },\n {\n \"icon_id\": \"24841492\",\n \"name\": \"hand-thumbsdown\",\n \"font_class\": \"hand-down\",\n \"unicode\": \"e63d\",\n \"unicode_decimal\": 58941\n },\n {\n \"icon_id\": \"24841493\",\n \"name\": \"hand-thumbsup-filled\",\n \"font_class\": \"hand-up-filled\",\n \"unicode\": \"e63e\",\n \"unicode_decimal\": 58942\n },\n {\n \"icon_id\": \"24841494\",\n \"name\": \"hand-thumbsup\",\n \"font_class\": \"hand-up\",\n \"unicode\": \"e63f\",\n \"unicode_decimal\": 58943\n },\n {\n \"icon_id\": \"24841496\",\n \"name\": \"heart-filled\",\n \"font_class\": \"heart-filled\",\n \"unicode\": \"e641\",\n \"unicode_decimal\": 58945\n },\n {\n \"icon_id\": \"24841498\",\n \"name\": \"mail-open\",\n \"font_class\": \"mail-open\",\n \"unicode\": \"e643\",\n \"unicode_decimal\": 58947\n },\n {\n \"icon_id\": \"24841488\",\n \"name\": \"heart\",\n \"font_class\": \"heart\",\n \"unicode\": \"e639\",\n \"unicode_decimal\": 58937\n },\n {\n \"icon_id\": \"24839963\",\n \"name\": \"loop\",\n \"font_class\": \"loop\",\n \"unicode\": \"e633\",\n \"unicode_decimal\": 58931\n },\n {\n \"icon_id\": \"24839866\",\n \"name\": \"pulldown\",\n \"font_class\": \"pulldown\",\n \"unicode\": \"e632\",\n \"unicode_decimal\": 58930\n },\n {\n \"icon_id\": \"24813798\",\n \"name\": \"scan\",\n \"font_class\": \"scan\",\n \"unicode\": \"e62a\",\n \"unicode_decimal\": 58922\n },\n {\n \"icon_id\": \"24813786\",\n \"name\": \"bars\",\n \"font_class\": \"bars\",\n \"unicode\": \"e627\",\n \"unicode_decimal\": 58919\n },\n {\n \"icon_id\": \"24813788\",\n \"name\": \"cart-filled\",\n \"font_class\": \"cart-filled\",\n \"unicode\": \"e629\",\n \"unicode_decimal\": 58921\n },\n {\n \"icon_id\": \"24813790\",\n \"name\": \"checkbox\",\n \"font_class\": \"checkbox\",\n \"unicode\": \"e62b\",\n \"unicode_decimal\": 58923\n },\n {\n \"icon_id\": \"24813791\",\n \"name\": \"checkbox-filled\",\n \"font_class\": \"checkbox-filled\",\n \"unicode\": \"e62c\",\n \"unicode_decimal\": 58924\n },\n {\n \"icon_id\": \"24813794\",\n \"name\": \"shop\",\n \"font_class\": \"shop\",\n \"unicode\": \"e62f\",\n \"unicode_decimal\": 58927\n },\n {\n \"icon_id\": \"24813795\",\n \"name\": \"headphones\",\n \"font_class\": \"headphones\",\n \"unicode\": \"e630\",\n \"unicode_decimal\": 58928\n },\n {\n \"icon_id\": \"24813796\",\n \"name\": \"cart\",\n \"font_class\": \"cart\",\n \"unicode\": \"e631\",\n \"unicode_decimal\": 58929\n }\n ]\n}\n","'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","'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 {\n constructor(options = {}) {\n // 请求的根路径\n this.baseUrl = options.baseUrl || ''\n // 请求的 url 地址\n this.url = options.url || ''\n // 请求方式\n this.method = 'GET'\n // 请求的参数对象\n this.data = null\n // header 请求头\n this.header = options.header || {}\n this.beforeRequest = null\n this.afterRequest = null\n }\n\n get(url, data = {}) {\n this.method = 'GET'\n this.url = this.baseUrl + url\n this.data = data\n return this._()\n }\n\n post(url, data = {}) {\n this.method = 'POST'\n this.url = this.baseUrl + url\n this.data = data\n return this._()\n }\n\n put(url, data = {}) {\n this.method = 'PUT'\n this.url = this.baseUrl + url\n this.data = data\n return this._()\n }\n\n delete(url, data = {}) {\n this.method = 'DELETE'\n this.url = this.baseUrl + url\n this.data = data\n return this._()\n }\n\n _() {\n // 清空 header 对象\n this.header = {}\n // 请求之前做一些事\n this.beforeRequest && typeof this.beforeRequest === 'function' && this.beforeRequest(this)\n // 发起请求\n return new Promise((resolve, reject) => {\n let weixin = wx\n // 适配 uniapp\n if ('undefined' !== typeof uni) {\n weixin = uni\n }\n weixin.request({\n url: this.url,\n method: this.method,\n data: this.data,\n header: this.header,\n success: (res) => { resolve(res) },\n fail: (err) => { reject(err) },\n complete: (res) => {\n // 请求完成以后做一些事情\n this.afterRequest && typeof this.afterRequest === 'function' && this.afterRequest(res)\n }\n })\n })\n }\n}\n\nexport const $http = new Request()","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 = \"/static/login/banner.jpg\";","module.exports = \"/static/login/title.png\";","/*!\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 ''\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)) + \">\") : \"\") +\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. 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.