From 0a2e094f4a4bb40afe52c0425bf308bda836a17e Mon Sep 17 00:00:00 2001 From: qiaocl <3189782663@qq.com> Date: Fri, 13 May 2022 18:13:20 +0800 Subject: [PATCH] banner --- BLEPages/adult/F01PRO.vue | 6 +- assets/common.scss | 2 +- .../mark-slide-list/mark-slide-list.vue | 655 ++++--- components/signup/signup.vue | 246 +-- components/target/firstweight.vue | 2 +- components/target/manuaRecord.vue | 2 +- components/target/targetWeight.vue | 2 +- config.js | 4 +- pageTwo/me/detail.vue | 13 +- pageTwo/zixun/detail.vue | 88 + pages.json | 7 + pages/index/index.vue | 11 +- tools/model.js | 666 +++---- .../mp-weixin/BLEpages/adult/F01PRO.js.map | 2 +- .../.sourcemap/mp-weixin/common/vendor.js.map | 2 +- .../mp-weixin/components/drawer/drawer.js.map | 2 +- .../mark-slide-list/mark-slide-list.js.map | 2 +- .../ren-calendar/ren-calendar.js.map | 2 +- .../mp-weixin/components/signup/signup.js.map | 2 +- .../components/target/firstweight.js.map | 2 +- .../components/target/manuaRecord.js.map | 2 +- .../components/target/targetWeight.js.map | 2 +- .../mp-weixin/components/userLogin.js.map | 2 +- .../mp-weixin/pageTwo/compk/pkdetail.js.map | 2 +- .../mp-weixin/pageTwo/login/detail.js.map | 2 +- .../mp-weixin/pageTwo/login/login.js.map | 2 +- .../mp-weixin/pageTwo/login/userinfo.js.map | 2 +- .../mp-weixin/pageTwo/me/adduser.js.map | 2 +- .../mp-weixin/pageTwo/me/detail.js.map | 2 +- .../mp-weixin/pageTwo/me/feedBack.js.map | 2 +- .../mp-weixin/pageTwo/me/history.js.map | 2 +- .../mp-weixin/pageTwo/me/info.js.map | 2 +- .../mp-weixin/pageTwo/me/manage.js.map | 2 +- .../mp-weixin/pageTwo/survey/survey.js.map | 2 +- .../mp-weixin/pageTwo/zixun/detail.js.map | 1 + .../mp-weixin/pages/index/active.js.map | 2 +- .../mp-weixin/pages/index/index.js.map | 2 +- .../.sourcemap/mp-weixin/pages/me/me.js.map | 2 +- .../mp-weixin/pages/search/devType.js.map | 2 +- .../mp-weixin/pages/target/target.js.map | 2 +- .../components/qiun-data-charts.js.map | 2 +- .../dist/dev/mp-weixin/BLEPages/adult/F01B.js | 24 +- .../dev/mp-weixin/BLEPages/adult/F01PRO.js | 30 +- .../dev/mp-weixin/BLEPages/adult/H01pro.js | 24 +- .../dist/dev/mp-weixin/BLEPages/adult/H09B.js | 24 +- .../dev/mp-weixin/BLEPages/adult/PCD01pro.js | 24 +- .../dev/mp-weixin/BLEPages/adult/PCL01.js | 24 +- unpackage/dist/dev/mp-weixin/app.json | 3 +- unpackage/dist/dev/mp-weixin/common/main.wxss | 2 +- unpackage/dist/dev/mp-weixin/common/vendor.js | 1617 +++++++++-------- .../dev/mp-weixin/components/drawer/drawer.js | 28 +- .../mark-slide-list/mark-slide-list.js | 35 +- .../mark-slide-list/mark-slide-list.wxml | 2 +- .../components/ren-calendar/ren-calendar.js | 28 +- .../dev/mp-weixin/components/signup/signup.js | 28 +- .../components/target/firstweight.js | 28 +- .../components/target/firstweight.wxml | 2 +- .../components/target/manuaRecord.js | 28 +- .../components/target/manuaRecord.wxml | 2 +- .../components/target/targetWeight.js | 28 +- .../components/target/targetWeight.wxml | 2 +- .../u-parse/components/wxParseAudio.js | 20 +- .../u-parse/components/wxParseImg.js | 20 +- .../u-parse/components/wxParseTemplate0.js | 22 +- .../u-parse/components/wxParseTemplate1.js | 22 +- .../u-parse/components/wxParseTemplate10.js | 22 +- .../u-parse/components/wxParseTemplate11.js | 22 +- .../u-parse/components/wxParseTemplate2.js | 22 +- .../u-parse/components/wxParseTemplate3.js | 22 +- .../u-parse/components/wxParseTemplate4.js | 22 +- .../u-parse/components/wxParseTemplate5.js | 22 +- .../u-parse/components/wxParseTemplate6.js | 22 +- .../u-parse/components/wxParseTemplate7.js | 22 +- .../u-parse/components/wxParseTemplate8.js | 22 +- .../u-parse/components/wxParseTemplate9.js | 22 +- .../u-parse/components/wxParseVideo.js | 20 +- .../mp-weixin/components/u-parse/u-parse.js | 24 +- .../dev/mp-weixin/components/userLogin.js | 28 +- .../dev/mp-weixin/pageTwo/compk/pkdetail.js | 284 +-- .../dev/mp-weixin/pageTwo/login/detail.js | 36 +- .../dist/dev/mp-weixin/pageTwo/login/login.js | 32 +- .../dev/mp-weixin/pageTwo/login/userinfo.js | 32 +- .../dist/dev/mp-weixin/pageTwo/me/adduser.js | 32 +- .../dist/dev/mp-weixin/pageTwo/me/detail.js | 39 +- .../dist/dev/mp-weixin/pageTwo/me/detail.wxml | 2 +- .../dist/dev/mp-weixin/pageTwo/me/feedBack.js | 32 +- .../dist/dev/mp-weixin/pageTwo/me/history.js | 34 +- .../dist/dev/mp-weixin/pageTwo/me/info.js | 32 +- .../dist/dev/mp-weixin/pageTwo/me/manage.js | 32 +- .../dev/mp-weixin/pageTwo/survey/survey.js | 32 +- .../dev/mp-weixin/pageTwo/zixun/detail.js | 252 +++ .../dev/mp-weixin/pageTwo/zixun/detail.json | 7 + .../dev/mp-weixin/pageTwo/zixun/detail.wxml | 1 + .../dev/mp-weixin/pageTwo/zixun/detail.wxss | 225 +++ .../dist/dev/mp-weixin/pages/compk/compk.js | 28 +- .../dist/dev/mp-weixin/pages/index/active.js | 34 +- .../dist/dev/mp-weixin/pages/index/index.js | 21 +- .../dist/dev/mp-weixin/pages/index/index.wxml | 2 +- unpackage/dist/dev/mp-weixin/pages/me/me.js | 34 +- .../dev/mp-weixin/pages/search/devType.js | 32 +- .../dist/dev/mp-weixin/pages/target/target.js | 34 +- .../dist/dev/mp-weixin/project.config.json | 85 +- .../components/qiun-data-charts.js | 34 +- 103 files changed, 3083 insertions(+), 2443 deletions(-) create mode 100644 pageTwo/zixun/detail.vue create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pageTwo/zixun/detail.js.map create mode 100644 unpackage/dist/dev/mp-weixin/pageTwo/zixun/detail.js create mode 100644 unpackage/dist/dev/mp-weixin/pageTwo/zixun/detail.json create mode 100644 unpackage/dist/dev/mp-weixin/pageTwo/zixun/detail.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pageTwo/zixun/detail.wxss diff --git a/BLEPages/adult/F01PRO.vue b/BLEPages/adult/F01PRO.vue index 71d807d..1ec065c 100644 --- a/BLEPages/adult/F01PRO.vue +++ b/BLEPages/adult/F01PRO.vue @@ -296,6 +296,7 @@ uni.onBLECharacteristicValueChange((characteristic) => { let bleData = plugin.parseBleData(characteristic.value) let dw0 = "kg" + let dw1 = "kg" let data1 = {} let data2 = {} if (bleData.status == 0) { @@ -318,6 +319,7 @@ let dw = payload.substring(13, 14) if (dw == "1") { dw0 = "jin" + dw1 = "斤" } if (num == "1") { data = data / 10 @@ -329,10 +331,10 @@ data = data / 1000 } if (typeInfo == "01") { - that.textW = "您的实时体重是:" + data + that.textW = "您的实时体重是:" + data + dw1 } if (typeInfo == "02") { - that.textW = "您的体重是:" + data + that.textW = "您的体重是:" + data + dw1 that.weight = data + dw0 } } diff --git a/assets/common.scss b/assets/common.scss index c44a3f8..0f08e7b 100644 --- a/assets/common.scss +++ b/assets/common.scss @@ -374,7 +374,7 @@ } .right { - width: 50%; + width: 60%; height: 40px; line-height: 40px; text-align: right; diff --git a/components/mark-slide-list/mark-slide-list.vue b/components/mark-slide-list/mark-slide-list.vue index dd3f311..244f3e1 100644 --- a/components/mark-slide-list/mark-slide-list.vue +++ b/components/mark-slide-list/mark-slide-list.vue @@ -1,351 +1,348 @@ diff --git a/components/signup/signup.vue b/components/signup/signup.vue index d3ce04a..671c226 100644 --- a/components/signup/signup.vue +++ b/components/signup/signup.vue @@ -1,133 +1,133 @@ diff --git a/pages.json b/pages.json index c21cb5d..a44721b 100644 --- a/pages.json +++ b/pages.json @@ -137,6 +137,13 @@ "navigationBarBackgroundColor": "#F9FAFC" } + }, + { + "path": "zixun/detail", + "style": { + "navigationBarTitleText": "详情", + "navigationBarBackgroundColor": "#F9FAFC" + } } ] diff --git a/pages/index/index.vue b/pages/index/index.vue index 8a91011..5beb3a8 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -134,7 +134,7 @@ 此测量数据仅供参考,不可代替医学专业测试! - + 提醒设置 @@ -276,6 +276,7 @@ let that = this that.$model.GetTplList({}).then(res => { if (res.code == 0) { + console.log("消息模板列表", res.data) res.data.forEach(item => { that.tmplIdList.push(item.id) }) @@ -286,6 +287,7 @@ GetSubscribeInfo() { let that = this that.$model.GetSubscribeInfo({}).then(res => { + console.log("消息模板状态", res.data.type) if (res.code == 0) { that.isShowEle = res.data.type } @@ -334,11 +336,8 @@ }, // 轮播 getBannerList() { - this.$model.GetAdBannerList({ - page: 1, - pagesize: 10, - }).then(res => { - this.fimages = res.data.items + this.$model.getBannerList({}).then(res => { + this.fimages = res.data }) }, // 上称测量 diff --git a/tools/model.js b/tools/model.js index da19e0e..656d57f 100644 --- a/tools/model.js +++ b/tools/model.js @@ -1,336 +1,346 @@ import http from './https.js' export default { - onlogin(param) { // 登录 - return http.post("/api/wxopen/onlogin", param).then(res => { - return res - }) - }, - getSendCode(param) { // 验证码 - return http.get("/api/wxopen/sendcode", param).then(res => { - return res - }) - }, - getRegister(param) { // 手机号进行注册 - return http.post("/api/wxopen/deregister", param).then(res => { - return res - }) - }, - getregister(param) { // 微信授权登录 - return http.post('/api/wxopen/register', param).then(res => { - return res - }) - }, - getWxOpenPhone(param) { // 解密手机号 - return http.post('/api/wxopen/deuserphone', param).then(res => { - return res - }) - }, - getDecryptdata(param) { // 解密用户资料 - return http.post("/api/wxopen/deuserinfo", param).then(res => { - return res - }) - }, - getConfig(param) { // 配置详情 - return http.post("/api/wxopen/config/get", param).then(res => { - return res - }) - }, - getoutlogin(param) { // 退出登录 - return http.get("/api/wxopen/outlogin", param).then(res => { - return res - }) - }, - submitadvice(param) { // 意见反馈 - return http.post("/api/wxopen/submitadvice", param).then(res => { - return res - }) - }, - // - getUserInfo(param) { //获取用户信息 - return http.post("/api/adult/info", param).then(res => { - if (res.code == 0) { - res.data.name = res.data.nickname - res.data.id = res.data.familyid - // res.data.firstresulttime = res.data.firstresulttime.substring(0, 10) + onlogin(param) { // 登录 + return http.post("/api/wxopen/onlogin", param).then(res => { + return res + }) + }, + getSendCode(param) { // 验证码 + return http.get("/api/wxopen/sendcode", param).then(res => { + return res + }) + }, + getRegister(param) { // 手机号进行注册 + return http.post("/api/wxopen/deregister", param).then(res => { + return res + }) + }, + getregister(param) { // 微信授权登录 + return http.post('/api/wxopen/register', param).then(res => { + return res + }) + }, + getWxOpenPhone(param) { // 解密手机号 + return http.post('/api/wxopen/deuserphone', param).then(res => { + return res + }) + }, + getDecryptdata(param) { // 解密用户资料 + return http.post("/api/wxopen/deuserinfo", param).then(res => { + return res + }) + }, + getConfig(param) { // 配置详情 + return http.post("/api/wxopen/config/get", param).then(res => { + return res + }) + }, + getoutlogin(param) { // 退出登录 + return http.get("/api/wxopen/outlogin", param).then(res => { + return res + }) + }, + submitadvice(param) { // 意见反馈 + return http.post("/api/wxopen/submitadvice", param).then(res => { + return res + }) + }, + // + getUserInfo(param) { //获取用户信息 + return http.post("/api/adult/info", param).then(res => { + if (res.code == 0) { + res.data.name = res.data.nickname + res.data.id = res.data.familyid + // res.data.firstresulttime = res.data.firstresulttime.substring(0, 10) + } + return res + }) + }, + getResult(param) { //获取成人测量信息 + return http.post("/api/adult/measureinfo", param).then(res => { + return res + }) + }, + getfirstweight(param) { //修改初始体重 + return http.post("/api/adult/submitfirstweight", param).then(res => { + return res + }) + }, + setTarget(param) { //设置目标体重 + return http.post("/api/family/settarget", param).then(res => { + return res + }) + }, + getbodylist(param) { //测评列表 + return http.post("/api/adult/getbodylist", param).then(res => { + if (res.code == 0) { + let box = res.data + let k = 1 + for (var n = 0; n < box.length; n++) { + for (var i = 0; i < box[n].qalist.length; i++) { + let info = box[n].qalist[i] + box[n].qalist[i] = { + Id: info.id, + title: info.title, + data: [{ + id: info.id, + val: k++, + value: info.nonevalue, + valId: box[n].id, + name: '没有', + }, + { + id: info.id, + val: k++, + value: info.littlevalue, + valId: box[n].id, + name: '很少', + }, + { + id: info.id, + val: k++, + value: info.somevalue, + valId: box[n].id, + name: '有时', + }, + { + id: info.id, + val: k++, + value: info.oftenvalue, + valId: box[n].id, + name: '经常', + }, + { + id: info.id, + val: k++, + value: info.alwaysvalue, + valId: box[n].id, + name: '总是', + } + ] + } - return res - }) - }, - getResult(param) { //获取成人测量信息 - return http.post("/api/adult/measureinfo", param).then(res => { - return res - }) - }, - getfirstweight(param) { //修改初始体重 - return http.post("/api/adult/submitfirstweight", param).then(res => { - return res - }) - }, - setTarget(param) { //设置目标体重 - return http.post("/api/family/settarget", param).then(res => { - return res - }) - }, - getbodylist(param) { //测评列表 - return http.post("/api/adult/getbodylist", param).then(res => { - if (res.code == 0) { - let box = res.data - let k = 1 - for (var n = 0; n < box.length; n++) { - for (var i = 0; i < box[n].qalist.length; i++) { - let info = box[n].qalist[i] - box[n].qalist[i] = { - Id: info.id, - title: info.title, - data: [{ - id: info.id, - val: k++, - value: info.nonevalue, - valId: box[n].id, - name: '没有', - }, - { - id: info.id, - val: k++, - value: info.littlevalue, - valId: box[n].id, - name: '很少', - }, - { - id: info.id, - val: k++, - value: info.somevalue, - valId: box[n].id, - name: '有时', - }, - { - id: info.id, - val: k++, - value: info.oftenvalue, - valId: box[n].id, - name: '经常', - }, - { - id: info.id, - val: k++, - value: info.alwaysvalue, - valId: box[n].id, - name: '总是', - } - ] + } + } + res.data = box + } + return res + }) + }, + getbodyinfo(param) { //体质测评结果 + return http.post("/api/adult/getbodyinfo", param).then(res => { + return res + }) + }, + getbodyresultinfo(param) { //体质测评计算 + return http.post("/api/adult/getbodyresultinfo", param).then(res => { + return res + }) + }, + // + getFamilyList(param) { // 获取家庭成员列表 + return http.post('/api/family/getlist', param).then(res => { + if (res.data) { + for (let i = 0; i < res.data.length; i++) { + res.data[i].familyid = res.data[i].id + res.data[i].type = res.data[i].type == 1 ? "成人" : res.data[i].type == 2 ? "儿童" : "婴儿" + } + } + return res.data + }) + }, + getsubmit(param) { //家庭成员信息修改 + return http.post('/api/family/submit', param).then(res => { + return res + }) + }, + getdelete(param) { //删除家庭成员 + return http.get('/api/family/delete', param).then(res => { + return res + }) + }, - } - } - } - res.data = box - } - return res - }) - }, - getbodyinfo(param) { //体质测评结果 - return http.post("/api/adult/getbodyinfo", param).then(res => { - return res - }) - }, - getbodyresultinfo(param) { //体质测评计算 - return http.post("/api/adult/getbodyresultinfo", param).then(res => { - return res - }) - }, - // - getFamilyList(param) { // 获取家庭成员列表 - return http.post('/api/family/getlist', param).then(res => { - if (res.data) { - for (let i = 0; i < res.data.length; i++) { - res.data[i].familyid = res.data[i].id - res.data[i].type = res.data[i].type == 1 ? "成人" : res.data[i].type == 2 ? "儿童" : "婴儿" - } - } - return res.data - }) - }, - getsubmit(param) { //家庭成员信息修改 - return http.post('/api/family/submit', param).then(res => { - return res - }) - }, - getdelete(param) { //删除家庭成员 - return http.get('/api/family/delete', param).then(res => { - return res - }) - }, + getdetail(param) { //家庭成员详情 + return http.get('/api/family/detail', param).then(res => { + return res + }) + }, + getHistoryList(param) { //获取指定家庭成员历史记录 + return http.post('/api/family/gethistorylist', param).then(res => { + return res + }) + }, + getaddlist(param) { //手动添加记录列表 + return http.post('/api/family/getaddlist', param).then(res => { + return res + }) + }, + // + getinsertmeasure(param) { //手动记录 + return http.post('/api/result/insertmeasure', param).then(res => { + return res + }) + }, + getmeasure(param) { //新增蓝牙测量记录 + return http.post('/api/result/measure', param).then(res => { + return res + }) + }, + getmeasuredata(param) { //新增蓝牙测量记录,适用于f01pro + return http.post('/api/result/measuredata', param).then(res => { + return res + }) + }, + getmeasurefunit(param) { //新增蓝牙测量记录,身高带单位 + return http.post('/api/result/measureofunit', param).then(res => { + return res + }) + }, + gethistorydelete(param) { //删除历史记录 + return http.post("/api/result/delete", param).then(res => { + return res + }) + }, + getTrendList(param) { //趋势 + return http.post("/api/result/trendlist", param).then(res => { + if (res.code == 0) { + let list = res.data + let cidata = { + weight: { + categories: [], + series: [{ + color: "#ff9f40", + name: "体重", + data: [], + }] + }, + bmi: { + categories: [], + series: [{ + name: "bmi", + color: "#5ba7ff", + data: [], + }] + }, + muscle: { + categories: [], + series: [{ + color: "#ff7f91", + name: "肌肉", + data: [], + }] + }, + fat_r: { + categories: [], + series: [{ + color: "#3fcba7", + name: "脂肪", + data: [], + }] + } + } - getdetail(param) { //家庭成员详情 - return http.get('/api/family/detail', param).then(res => { - return res - }) - }, - getHistoryList(param) { //获取指定家庭成员历史记录 - return http.post('/api/family/gethistorylist', param).then(res => { - return res - }) - }, - getaddlist(param) { //手动添加记录列表 - return http.post('/api/family/getaddlist', param).then(res => { - return res - }) - }, - // - getinsertmeasure(param) { //手动记录 - return http.post('/api/result/insertmeasure', param).then(res => { - return res - }) - }, - getmeasure(param) { //新增蓝牙测量记录 - return http.post('/api/result/measure', param).then(res => { - return res - }) - }, - getmeasuredata(param) { //新增蓝牙测量记录,适用于f01pro - return http.post('/api/result/measuredata', param).then(res => { - return res - }) - }, - getmeasurefunit(param) { //新增蓝牙测量记录,身高带单位 - return http.post('/api/result/measureofunit', param).then(res => { - return res - }) - }, - gethistorydelete(param) { //删除历史记录 - return http.post("/api/result/delete", param).then(res => { - return res - }) - }, - getTrendList(param) { //趋势 - return http.post("/api/result/trendlist", param).then(res => { - if (res.code == 0) { - let list = res.data - let cidata = { - weight: { - categories: [], - series: [{ - color: "#ff9f40", - name: "体重", - data: [], - }] - }, - bmi: { - categories: [], - series: [{ - name: "bmi", - color: "#5ba7ff", - data: [], - }] - }, - muscle: { - categories: [], - series: [{ - color: "#ff7f91", - name: "肌肉", - data: [], - }] - }, - fat_r: { - categories: [], - series: [{ - color: "#3fcba7", - name: "脂肪", - data: [], - }] - } - } + for (var i = 0; i < list.length; i++) { + cidata.weight.categories.push(list[i].time); + cidata.bmi.categories.push(list[i].time); + cidata.muscle.categories.push(list[i].time); + cidata.fat_r.categories.push(list[i].time); + cidata.weight.series.forEach(item => { + item.data.push(list[i].weight) + }) + cidata.bmi.series.forEach(item => { + item.data.push(list[i].bmi) + }) + cidata.muscle.series.forEach(item => { + item.data.push(list[i].muscle) + }) + cidata.fat_r.series.forEach(item => { + item.data.push(list[i].fat_r) + }) + } + res.data = cidata + } + return res.data + }) + }, + //对比列表 + GetTrendList(param) { + return http.post("/api/result/trendlist", param).then(res => { + if (res.code == 0) { + let pkList = { + list: [], + Dlist: [] + } + for (var i = 0; i < res.data.length; i++) { + pkList.list.push(res.data[i]) + if (!pkList.Dlist.includes(res.data[i].createtime)) { //includes 检测数组是否有某个值 + pkList.Dlist.push(res.data[i].createtime); + } + } + res.data.pkList = pkList + } + return res.data + }) + }, + getresultdiff(param) { //记录对比 + return http.post("/api/result/resultdiff", param).then(res => { + return res + }) + }, - for (var i = 0; i < list.length; i++) { - cidata.weight.categories.push(list[i].time); - cidata.bmi.categories.push(list[i].time); - cidata.muscle.categories.push(list[i].time); - cidata.fat_r.categories.push(list[i].time); - cidata.weight.series.forEach(item => { - item.data.push(list[i].weight) - }) - cidata.bmi.series.forEach(item => { - item.data.push(list[i].bmi) - }) - cidata.muscle.series.forEach(item => { - item.data.push(list[i].muscle) - }) - cidata.fat_r.series.forEach(item => { - item.data.push(list[i].fat_r) - }) - } - res.data = cidata - } - return res.data - }) - }, - //对比列表 - GetTrendList(param) { - return http.post("/api/result/trendlist", param).then(res => { - if (res.code == 0) { - let pkList = { - list: [], - Dlist: [] - } - for (var i = 0; i < res.data.length; i++) { - pkList.list.push(res.data[i]) - if (!pkList.Dlist.includes(res.data[i].createtime)) { //includes 检测数组是否有某个值 - pkList.Dlist.push(res.data[i].createtime); - } - } - res.data.pkList = pkList - } - return res.data - }) - }, - getresultdiff(param) { //记录对比 - return http.post("/api/result/resultdiff", param).then(res => { - return res - }) - }, - - // - getdevactive(param) { //设备激活 - return http.post('/api/device/active', param).then(res => { - return res - }) - }, - getdevstatus(param) { //检查设备状态 - return http.get('/api/device/checkdevstatus', param).then(res => { - return res - }) - }, - getdevdetail(param) { //设备详情 - return http.post('/api/device/detail', param).then(res => { - return res - }) - }, - // - GetTplList(param) { //获取消息模板列表 - return http.get('/api/message/gettplList', param).then(res => { - return res - }) - }, - GetSubscribe(param) { //消息订阅 - return http.post('/api/message/subscribe', param).then(res => { - return res - - }) - }, - GetSubscribeInfo(param) { //获取订阅状态 - return http.get('/api/message/getsubscribeinfo', param).then(res => { - return res - }) - }, - Getunsubscribe(param) { //取消订阅 - return http.post('/api/message/unsubscribe', param).then(res => { - return res - }) - }, - // 协议 - GetAdListDetail(param) { - return http.get('/api/zx/infodetail', param).then(res => { - return res - }) - }, + // + getdevactive(param) { //设备激活 + return http.post('/api/device/active', param).then(res => { + return res + }) + }, + getdevstatus(param) { //检查设备状态 + return http.get('/api/device/checkdevstatus', param).then(res => { + return res + }) + }, + getdevdetail(param) { //设备详情 + return http.post('/api/device/detail', param).then(res => { + return res + }) + }, + // + GetTplList(param) { //获取消息模板列表 + return http.get('/api/message/gettplList', param).then(res => { + return res + }) + }, + GetSubscribe(param) { //消息订阅 + return http.post('/api/message/subscribe', param).then(res => { + return res + }) + }, + GetSubscribeInfo(param) { //获取订阅状态 + return http.get('/api/message/getsubscribeinfo', param).then(res => { + return res + }) + }, + Getunsubscribe(param) { //取消订阅 + return http.post('/api/message/unsubscribe', param).then(res => { + return res + }) + }, + // 协议 + GetAdListDetail(param) { + return http.get('/api/zx/infodetail', param).then(res => { + return res + }) + }, + // banner + getBannerList(param) { //取消订阅 + return http.post('/api/banner/getlist', param).then(res => { + return res + }) + }, + getBannerDetail(param) { //banner详情 + return http.post('/api/banner/detail', param).then(res => { + return res + }) + }, } diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/BLEpages/adult/F01PRO.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/BLEpages/adult/F01PRO.js.map index 6f72f9f..bee7246 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/BLEpages/adult/F01PRO.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/BLEpages/adult/F01PRO.js.map @@ -1 +1 @@ -{"version":3,"sources":["uni-app:///main.js",null,"webpack:///D:/MyWork/mywork/小程序/每日一称/成人版小程序/adultDeviceApp/BLEPages/adult/F01PRO.vue?59a8","webpack:///D:/MyWork/mywork/小程序/每日一称/成人版小程序/adultDeviceApp/BLEPages/adult/F01PRO.vue?6781","webpack:///D:/MyWork/mywork/小程序/每日一称/成人版小程序/adultDeviceApp/BLEPages/adult/F01PRO.vue?e2a1","uni-app:///BLEPages/adult/F01PRO.vue"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":";;;;;;;;;;kDAAA;AACA;AACA,kG,6FAFmBA,EAAE,CAACC,iCAAH,GAAuCC,mBAAvC;AAGnBC,UAAU,CAACC,eAAD,CAAV,C;;;;;;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAA+H;AAC/H;AAC0D;AACL;;;AAGrD;AAC+N;AAC/N,gBAAgB,6NAAU;AAC1B,EAAE,4EAAM;AACR,EAAE,6FAAM;AACR,EAAE,sGAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,iGAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACtBf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAA+4B,CAAgB,g2BAAG,EAAC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACsBn6B,+C;;;AAGA;AACA,+C;AACA;AACA,MADA,kBACA;AACA;AACA,eADA;AAEA,eAFA;AAGA,gBAHA;AAIA,gBAJA;AAKA,YALA;AAMA,iBANA;AAOA,kBAPA;AAQA,mBARA;AASA,gBATA;AAUA,iBAVA;AAWA,kBAXA;AAYA,kBAZA;AAaA,mBAbA;AAcA,qBAdA;AAeA,qBAfA;AAgBA,gBAhBA;AAiBA,gBAjBA;AAkBA,mBAlBA;;AAoBA,GAtBA;AAuBA;AACA,6EADA;AAEA,QAFA,kBAEA;AACA;AACA,KAJA,GAvBA;;AA6BA;AACA;AACA;AACA,2CADA,CACA;AACA;AACA;AACA;AACA;AACA;AACA,GAtCA;AAuCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAPA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA,KAdA,EAvCA;;AAuDA,QAvDA,kBAuDA,OAvDA,EAuDA;AACA;AACA;AACA;AACA,2BADA;AAEA,oCAFA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAFA;AAGA,GA7EA;AA8EA;AACA;AACA,wBAFA,kCAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SALA;AAMA;AACA;AACA;AACA,SATA;;AAWA,KAhBA;AAiBA;AACA,8BAlBA,wCAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAVA;AAWA,KA/BA;AAgCA;AACA,iCAjCA,2CAiCA;AACA;AACA;AACA,iCADA;AAEA,qBAFA,EAEA;AACA;AACA;AACA;AACA,SANA;AAOA;AACA;AACA;AACA,SAVA;;AAYA,KA/CA;AAgDA;;;AAGA,0BAnDA,oCAmDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAHA,CAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAFA,MAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SA1BA;AA2BA,OA5BA;AA6BA;AACA,KApFA;AAqFA,gBArFA,0BAqFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OATA,EASA,KATA;AAUA,KAjGA;AAkGA;;;AAGA,iCArGA,2CAqGA;AACA;AACA;AACA;AACA,SAHA;;AAKA,KA3GA;AA4GA;AACA,uBA7GA,iCA6GA;AACA;AACA;AACA,+BADA;AAEA;AACA;AACA;AACA;AACA,SANA;AAOA;AACA;AACA;AACA,SAVA;;AAYA,KA3HA;AA4HA;;;AAGA,wBA/HA,kCA+HA;AACA;AACA;AACA;AACA,+BADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAfA;AAgBA;AACA;AACA,SAlBA;;AAoBA,KAtJA;AAuJA;;;AAGA,+BA1JA,uCA0JA,QA1JA,EA0JA,SA1JA,EA0JA;AACA;AACA;AACA;AACA,0BADA;AAEA,4BAFA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,qCADA,CACA;AACA,aAFA,MAEA;AACA,qCADA,CACA;AACA,aAFA,MAEA;AACA,qCADA,CACA;AACA;AACA;AACA;AACA;AACA,8BADA;AAEA,gCAFA;AAGA,wCAHA;AAIA,uBAJA;;AAMA;AACA,8BADA;AAEA,gCAFA;AAGA,wCAHA;AAIA,uBAJA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aATA,MASA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBADA,CADA;AAGA;AACA,sBADA,IACA,EAJA;AAKA;AACA,sBADA,IACA,EANA;AAOA;AACA,sBADA,CAPA;AASA;AACA,sBADA,GACA,EADA,CATA;AAWA;AACA,sBADA,IACA,EAZA;;AAcA;AACA;AACA;AACA;AACA,sBADA,IACA,EAFA;AAGA;AACA,sBADA,IACA,EAJA;AAKA;AACA,sBADA,GACA,EADA;AAEA,sBAPA;AAQA;AACA,sBADA,IACA,EATA;AAUA;AACA,sBADA,IACA,EAXA;;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WA1GA;AA2GA,SA5IA;AA6IA;AACA;AACA,SA/IA;;AAiJA,KA9SA;AA+SA;AACA,oBAhTA,4BAgTA,IAhTA,EAgTA;AACA;AACA;AACA;AACA;AACA;AACA,wCADA;;AAGA;AACA,wCADA;AAEA,wCAFA;AAGA,gEAHA;AAIA,8BAJA;;AAMA;AACA,SAXA,MAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCADA;;AAGA,SANA,EAMA,GANA;AAOA,OAxBA;AAyBA,KA5UA;AA6UA;;;AAGA,yBAhVA,mCAgVA;AACA;AACA;AACA;AACA;AACA,SAHA;;AAKA,KAvVA;AAwVA,cAxVA,wBAwVA;AACA;AACA;AACA,2CAHA,CAGA;AACA;AACA;AACA,KA9VA;AA+VA;;;AAGA,sBAlWA,gCAkWA;AACA;AACA;AACA,+BADA;AAEA;AACA;AACA,SAJA;;AAMA,KA1WA,EA9EA,E","file":"BLEPages/adult/F01PRO.js","sourcesContent":["import 'uni-pages';wx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './BLEPages/adult/F01PRO.vue'\ncreatePage(Page)","import { render, staticRenderFns, recyclableRender, components } from \"./F01PRO.vue?vue&type=template&id=4a952e43&scoped=true&\"\nvar renderjs\nimport script from \"./F01PRO.vue?vue&type=script&lang=js&\"\nexport * from \"./F01PRO.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4a952e43\",\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"BLEPages/adult/F01PRO.vue\"\nexport default component.exports","export * from \"-!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--16-0!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./F01PRO.vue?vue&type=template&id=4a952e43&scoped=true&\"","var components\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./F01PRO.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./F01PRO.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n\r\n\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["uni-app:///main.js","webpack:///D:/MyWork/mywork/小程序/每日一称/成人版小程序/adultDeviceApp/BLEPages/adult/F01PRO.vue?40cc","webpack:///D:/MyWork/mywork/小程序/每日一称/成人版小程序/adultDeviceApp/BLEPages/adult/F01PRO.vue?59a8","webpack:///D:/MyWork/mywork/小程序/每日一称/成人版小程序/adultDeviceApp/BLEPages/adult/F01PRO.vue?6781","webpack:///D:/MyWork/mywork/小程序/每日一称/成人版小程序/adultDeviceApp/BLEPages/adult/F01PRO.vue?e2a1","uni-app:///BLEPages/adult/F01PRO.vue"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":";;;;;;;;;;kDAAA;AACA;AACA,kG,6FAFmBA,EAAE,CAACC,iCAAH,GAAuCC,mBAAvC;AAGnBC,UAAU,CAACC,eAAD,CAAV,C;;;;;;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAA+H;AAC/H;AAC0D;AACL;;;AAGrD;AAC+N;AAC/N,gBAAgB,6NAAU;AAC1B,EAAE,4EAAM;AACR,EAAE,6FAAM;AACR,EAAE,sGAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,iGAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACtBf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAA+4B,CAAgB,g2BAAG,EAAC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACsBn6B,+C;;;AAGA;AACA,+C;AACA;AACA,MADA,kBACA;AACA;AACA,eADA;AAEA,eAFA;AAGA,gBAHA;AAIA,gBAJA;AAKA,YALA;AAMA,iBANA;AAOA,kBAPA;AAQA,mBARA;AASA,gBATA;AAUA,iBAVA;AAWA,kBAXA;AAYA,kBAZA;AAaA,mBAbA;AAcA,qBAdA;AAeA,qBAfA;AAgBA,gBAhBA;AAiBA,gBAjBA;AAkBA,mBAlBA;;AAoBA,GAtBA;AAuBA;AACA,6EADA;AAEA,QAFA,kBAEA;AACA;AACA,KAJA,GAvBA;;AA6BA;AACA;AACA;AACA,2CADA,CACA;AACA;AACA;AACA;AACA;AACA;AACA,GAtCA;AAuCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAPA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA,KAdA,EAvCA;;AAuDA,QAvDA,kBAuDA,OAvDA,EAuDA;AACA;AACA;AACA;AACA,2BADA;AAEA,oCAFA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAFA;AAGA,GA7EA;AA8EA;AACA;AACA,wBAFA,kCAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SALA;AAMA;AACA;AACA;AACA,SATA;;AAWA,KAhBA;AAiBA;AACA,8BAlBA,wCAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAVA;AAWA,KA/BA;AAgCA;AACA,iCAjCA,2CAiCA;AACA;AACA;AACA,iCADA;AAEA,qBAFA,EAEA;AACA;AACA;AACA;AACA,SANA;AAOA;AACA;AACA;AACA,SAVA;;AAYA,KA/CA;AAgDA;;;AAGA,0BAnDA,oCAmDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAHA,CAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAFA,MAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SA1BA;AA2BA,OA5BA;AA6BA;AACA,KApFA;AAqFA,gBArFA,0BAqFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OATA,EASA,KATA;AAUA,KAjGA;AAkGA;;;AAGA,iCArGA,2CAqGA;AACA;AACA;AACA;AACA,SAHA;;AAKA,KA3GA;AA4GA;AACA,uBA7GA,iCA6GA;AACA;AACA;AACA,+BADA;AAEA;AACA;AACA;AACA;AACA,SANA;AAOA;AACA;AACA;AACA,SAVA;;AAYA,KA3HA;AA4HA;;;AAGA,wBA/HA,kCA+HA;AACA;AACA;AACA;AACA,+BADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAfA;AAgBA;AACA;AACA,SAlBA;;AAoBA,KAtJA;AAuJA;;;AAGA,+BA1JA,uCA0JA,QA1JA,EA0JA,SA1JA,EA0JA;AACA;AACA;AACA;AACA,0BADA;AAEA,4BAFA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,qCADA,CACA;AACA,aAFA,MAEA;AACA,qCADA,CACA;AACA,aAFA,MAEA;AACA,qCADA,CACA;AACA;AACA;AACA;AACA;AACA,8BADA;AAEA,gCAFA;AAGA,wCAHA;AAIA,uBAJA;;AAMA;AACA,8BADA;AAEA,gCAFA;AAGA,wCAHA;AAIA,uBAJA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aATA,MASA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBADA,CADA;AAGA;AACA,sBADA,IACA,EAJA;AAKA;AACA,sBADA,IACA,EANA;AAOA;AACA,sBADA,CAPA;AASA;AACA,sBADA,GACA,EADA,CATA;AAWA;AACA,sBADA,IACA,EAZA;;AAcA;AACA;AACA;AACA;AACA,sBADA,IACA,EAFA;AAGA;AACA,sBADA,IACA,EAJA;AAKA;AACA,sBADA,GACA,EADA;AAEA,sBAPA;AAQA;AACA,sBADA,IACA,EATA;AAUA;AACA,sBADA,IACA,EAXA;;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WA5GA;AA6GA,SA9IA;AA+IA;AACA;AACA,SAjJA;;AAmJA,KAhTA;AAiTA;AACA,oBAlTA,4BAkTA,IAlTA,EAkTA;AACA;AACA;AACA;AACA;AACA;AACA,wCADA;;AAGA;AACA,wCADA;AAEA,wCAFA;AAGA,gEAHA;AAIA,8BAJA;;AAMA;AACA,SAXA,MAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCADA;;AAGA,SANA,EAMA,GANA;AAOA,OAxBA;AAyBA,KA9UA;AA+UA;;;AAGA,yBAlVA,mCAkVA;AACA;AACA;AACA;AACA;AACA,SAHA;;AAKA,KAzVA;AA0VA,cA1VA,wBA0VA;AACA;AACA;AACA,2CAHA,CAGA;AACA;AACA;AACA,KAhWA;AAiWA;;;AAGA,sBApWA,gCAoWA;AACA;AACA;AACA,+BADA;AAEA;AACA;AACA,SAJA;;AAMA,KA5WA,EA9EA,E","file":"BLEPages/adult/F01PRO.js","sourcesContent":["import 'uni-pages';wx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './BLEPages/adult/F01PRO.vue'\ncreatePage(Page)","import { render, staticRenderFns, recyclableRender, components } from \"./F01PRO.vue?vue&type=template&id=4a952e43&scoped=true&\"\nvar renderjs\nimport script from \"./F01PRO.vue?vue&type=script&lang=js&\"\nexport * from \"./F01PRO.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4a952e43\",\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"BLEPages/adult/F01PRO.vue\"\nexport default component.exports","export * from \"-!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--16-0!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./F01PRO.vue?vue&type=template&id=4a952e43&scoped=true&\"","var components\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./F01PRO.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./F01PRO.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n\r\n\n"],"sourceRoot":""} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map index bf8e342..d33ded8 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/@dcloudio/uni-mp-weixin/dist/index.js?543d","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js?f0c5","webpack:///D:/MyWork/mywork/小程序/每日一称/成人版小程序/adultDeviceApp/uni.scss?9629","webpack:///D:/MyWork/mywork/小程序/每日一称/成人版小程序/adultDeviceApp/assets/common.scss?c03c","webpack:///D:/MyWork/mywork/小程序/每日一称/成人版小程序/adultDeviceApp/assets/iconfont-weapp-icon.css?2b51","webpack:///D:/MyWork/mywork/小程序/每日一称/成人版小程序/adultDeviceApp/assets/iconfont.css?5aa0","uni-app:///store/index.js","uni-app:///store/actions.js","uni-app:///tools/model.js","uni-app:///tools/https.js","uni-app:///tools/tools.js",null,"uni-app:///config.js","uni-app:///tools/data4.js","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js?a9ff","webpack:///./node_modules/@babel/runtime/regenerator/index.js?a34a","webpack:///./node_modules/regenerator-runtime/runtime-module.js?bbdd","webpack:///./node_modules/regenerator-runtime/runtime.js?96cf","uni-app:///pages.json","uni-app:///uni_modules/qiun-data-charts/js_sdk/u-charts.js","uni-app:///uni_modules/qiun-data-charts/js_sdk/config-ucharts.js","uni-app:///components/u-parse/libs/html2json.js","uni-app:///components/u-parse/libs/wxDiscode.js","uni-app:///components/u-parse/libs/htmlparser.js","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js?66fd","webpack:///./node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js?37dc","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vuex3/dist/vuex.common.js?26cb"],"names":["realAtob","b64","b64re","atob","str","String","replace","test","Error","slice","length","bitmap","result","r1","r2","i","indexOf","charAt","fromCharCode","b64DecodeUnicode","decodeURIComponent","split","map","c","charCodeAt","toString","join","getCurrentUserInfo","token","wx","getStorageSync","tokenArr","uid","role","permission","tokenExpired","userInfo","JSON","parse","error","message","exp","iat","uniIdMixin","Vue","prototype","uniIDHasRole","roleId","uniIDHasPermission","permissionId","uniIDTokenValid","Date","now","_toString","Object","hasOwnProperty","isFn","fn","isStr","isPlainObject","obj","call","hasOwn","key","noop","cached","cache","create","cachedFn","hit","camelizeRE","camelize","_","toUpperCase","HOOKS","globalInterceptors","scopedInterceptors","mergeHook","parentVal","childVal","res","concat","Array","isArray","dedupeHooks","hooks","push","removeHook","hook","index","splice","mergeInterceptorHook","interceptor","option","keys","forEach","removeInterceptorHook","addInterceptor","method","removeInterceptor","wrapperHook","data","isPromise","then","queue","promise","Promise","resolve","callback","wrapperOptions","options","name","oldCallback","callbackInterceptor","wrapperReturnValue","returnValue","returnValueHooks","getApiInterceptorHooks","scopedInterceptor","invokeApi","api","params","invoke","promiseInterceptor","reject","SYNC_API_RE","CONTEXT_API_RE","CONTEXT_API_RE_EXC","ASYNC_API","CALLBACK_API_RE","isContextApi","isSyncApi","isCallbackApi","handlePromise","catch","err","shouldPromise","finally","constructor","value","reason","promisify","promiseApi","success","fail","complete","assign","EPS","BASE_DEVICE_WIDTH","isIOS","deviceWidth","deviceDPR","checkDeviceWidth","getSystemInfoSync","platform","pixelRatio","windowWidth","upx2px","number","newDeviceWidth","Number","Math","floor","getLocale","app","getApp","allowDefault","$vm","$locale","language","setLocale","locale","oldLocale","onLocaleChangeCallbacks","onLocaleChange","global","interceptors","baseApi","freeze","__proto__","findExistsPageIndex","url","pages","getCurrentPages","len","page","$page","fullPath","redirectTo","fromArgs","exists","delta","args","existsPageIndex","previewImage","currentIndex","parseInt","current","isNaN","urls","filter","item","indicator","loop","UUID_KEY","deviceId","addUuid","random","setStorage","addSafeAreaInsets","safeArea","safeAreaInsets","top","left","right","bottom","windowHeight","getSystemInfo","protocols","todos","canIUses","CALLBACKS","processCallback","methodName","processReturnValue","processArgs","argsOption","keepFromArgs","toArgs","keyOption","console","warn","keepReturnValue","wrapper","protocol","arg1","arg2","apply","todoApis","TODOS","createTodoApi","todoApi","errMsg","providers","oauth","share","payment","getProvider","service","provider","extraApi","getEmitter","Emitter","getUniEmitter","ctx","$on","arguments","$off","$once","$emit","eventApi","MPPage","Page","MPComponent","Component","customizeRE","customize","initTriggerEvent","mpInstance","oldTriggerEvent","triggerEvent","newTriggerEvent","event","_triggerEvent","initHook","isComponent","oldHook","__$wrappered","after","PAGE_EVENT_HOOKS","initMocks","vm","mocks","$mp","mpType","mock","hasHook","vueOptions","default","extendOptions","super","mixins","find","mixin","initHooks","mpOptions","__call_hook","initVueComponent","VueComponent","extend","initSlots","vueSlots","$slots","slotName","$scopedSlots","initVueIds","vueIds","_$vueId","_$vuePid","initData","context","methods","e","process","VUE_APP_DEBUG","stringify","__lifecycle_hooks__","PROP_TYPES","Boolean","createObserver","observer","newVal","oldVal","initBehaviors","initBehavior","vueBehaviors","behaviors","vueExtends","extends","vueMixins","vueProps","props","behavior","type","properties","initProperties","vueMixin","parsePropType","defaultValue","file","isBehavior","vueId","generic","scopedSlotsCompiler","setData","opts","wrapper$1","mp","stopPropagation","preventDefault","target","detail","markerId","getExtraValue","dataPathsArray","dataPathArray","dataPath","propPath","valuePath","vFor","isInteger","substr","__get_value","vForItem","vForKey","processEventExtra","extra","extraObj","__args__","getObjByArray","arr","element","processEventArgs","isCustom","isCustomMPEvent","currentTarget","dataset","comType","ret","arg","ONCE","CUSTOM","isMatchEventType","eventType","optType","getContextVm","$parent","$options","$scope","handleEvent","eventOpts","eventOpt","eventsArray","isOnce","eventArray","handlerCtx","handler","once","messages","initI18nMessages","isEnableLocale","localeKeys","__uniConfig","locales","curMessages","userMessages","i18n","t","i18nMixin","beforeCreate","unwatch","watchLocale","$forceUpdate","$$t","values","setLocale$1","getLocale$1","initAppLocale","appVm","state","observable","localeWatchers","$watchLocale","defineProperty","get","set","v","watch","eventChannels","eventChannelStack","getEventChannel","id","eventChannel","shift","initEventChannel","getOpenerEventChannel","callHook","__id__","__eventChannel__","initScopedSlotsParams","center","parents","$hasScopedSlotsParams","has","$getScopedSlotsParams","object","$setScopedSlotsParams","propsData","destroyed","parseBaseApp","initRefs","store","$store","mpHost","$i18n","_i18n","appOptions","onLaunch","canIUse","globalData","_isMounted","findVmByVueId","vuePid","$children","childVm","parentVm","Behavior","isPage","route","initRelation","selectAllComponents","selector","$refs","components","component","ref","vueGeneric","scopedComponent","forComponents","handleLink","parent","parseApp","createApp","App","encodeReserveRE","encodeReserveReplacer","commaRE","encode","encodeURIComponent","stringifyQuery","encodeStr","val","undefined","val2","x","parseBaseComponent","vueComponentOptions","multipleSlots","addGlobalClass","componentOptions","__file","lifetimes","attached","$mount","ready","detached","$destroy","pageLifetimes","show","hide","resize","size","__l","__e","externalClasses","wxsCallMethods","callMethod","parseComponent","hooks$1","parseBasePage","vuePageOptions","pageOptions","onLoad","query","copyQuery","is","parsePage","createPage","createComponent","createSubpackageApp","onShow","onAppShow","onHide","onAppHide","getLaunchOptionsSync","createPlugin","canIUseApi","apiName","uni","Proxy","uni$1","use","Vuex","Store","user","headimg","nickname","targetweight","firstweight","weight","birthday","height","age","sex","familyid","mage","firstresulttime","MeasureResult","isedit","isDrawe","isConnected","isBluetoothTyle","configBox","familayList","historyList","Banner","Trend","TrendPk","isTarget","isFirst","isRecord","isLogin","isLogout","appTheme","mutations","toggleColor","color","changeUser","newData","setStorageSync","changeUserLogin","changehistoryList","changeMeasureResult","changeEdit","changeTarget","changeFirst","changeRecord","changeDrawe","changeFamilay","changeBluetooth","changeConnected","changeTrend","changeTrendPk","changeBanner","changeConfig","changeLogout","devTypeList","modules","actions","getUserInfo","account","commit","model","getResult","log","code","gethistoryList","getHistoryList","items","GetBodyTrendList","cidata","getFamilyList","pagenum","pagesize","rows","appid","config","getConfig","themecolor","onlogin","param","http","post","getSendCode","getRegister","getregister","getWxOpenPhone","getDecryptdata","getoutlogin","submitadvice","getfirstweight","setTarget","getbodylist","box","k","n","qalist","info","Id","title","nonevalue","valId","littlevalue","somevalue","oftenvalue","alwaysvalue","getbodyinfo","getbodyresultinfo","getsubmit","getdelete","getdetail","getaddlist","getinsertmeasure","getmeasure","getmeasuredata","getmeasurefunit","gethistorydelete","getTrendList","list","categories","series","bmi","muscle","fat_r","time","GetTrendList","pkList","Dlist","includes","createtime","getresultdiff","getdevactive","getdevstatus","getdevdetail","GetTplList","GetSubscribe","GetSubscribeInfo","Getunsubscribe","GetAdListDetail","baseUrl","host","httpRequest","httpDefaultOpts","header","showLoading","request","hideLoading","clearStorageSync","statusCode","tools","msg","response","str2hex","hex2str","ab2hex","inArray","getAge","getTime","getDate","getMonth","GetDateStr","handlePages","getBluetoothAdapter","showToast","icon","buffer","hexArr","Uint8Array","bit","decoder","TextDecoder","uint8","decode","encoder","TextEncoder","showModal","content","showCancel","modalSuccess","openSetting","settingdata","authSetting","openBluetoothAdapter","duration","date","year","getFullYear","month","day","AddDayCount","dd","setDate","y","m","d","todate","r","match","returnStr","yearNow","monthNow","dayNow","largeMonths","lastMonth","isLeapYear","daysOFMonth","Y","M","D","dates","months","substring","abs","accountInfo","getAccountInfoSync","miniProgram","appId","module","exports","showCon","dw","fvalue","svalue","fevaluation","sevaluation","vs","num","desc","level","slist","scope","leftval","infoList","listStr","j","text","minvalue","maxvalue","globalThis","window","self","__esModule","path","require","s","lib","o","Base","mixIn","init","$super","clone","WordArray","words","sigBytes","clamp","ceil","a","enc","Hex","u","Latin1","h","Utf8","escape","unescape","l","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","_process","blockSize","max","_minBufferSize","min","_doProcessBlock","Hasher","cfg","_doReset","update","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","sin","MD5","_hash","f","p","g","w","S","T","A","P","I","b","E","O","C","HmacMD5","_hasher","_oKey","_iKey","toLowerCase","_globalUniCloudObj","reduce","isReady","initUniCloud","defineProperties","requestId","LOCALE","PLATFORM","OS","APPID","DEVICEID","CLIENT_SDK_VERSION","sign","sort","wrappedRequest","uploadFile","removeStorageSync","en","fr","es","ja","U","endpoint","requestUrl","envType","accessTokenKey","spaceId","adapter","_getAccessTokenPromise","_getAccessTokenPromiseStatus","accessToken","requestWrapped","hasAccessToken","getAccessToken","rebuildRequest","clientSecret","timestamp","dataType","requestAuth","setupRequest","setAccessToken","functionTarget","functionArgs","formData","filePath","fileType","onUploadProgress","onProgressUpdate","loaded","totalBytesSent","total","totalBytesExpectedToSend","cloudPath","trim","getOSSUploadOptionsFromPath","env","filename","cdnDomain","ossPath","OSSAccessKeyId","accessKeyId","Signature","signature","policy","success_action_status","fileName","uploadFileToOSS","reportOSSUpload","fileID","fileList","tempFileURL","signInAnonymously","authorize","getLoginState","auth","customAuth","location","R","local","none","session","q","L","F","N","$","isMatch","genAdapter","runtime","WEB","WX_MP","B","K","root","tcbObject","H","localStorage","sessionStorage","W","_storage","_persistence","primaryStorage","persistence","accessTokenExpireKey","refreshTokenKey","anonymousUuidKey","loginTypeKey","userInfoKey","getItem","setItem","removeItem","version","z","J","V","X","G","_listeners","_listens","Q","on","Z","fire","ee","off","te","ne","se","re","oe","ie","ANONYMOUS","WECHAT","WECHAT_PUBLIC","WECHAT_OPEN","EMAIL","USERNAME","NULL","ae","ce","ue","headers","append","he","seqId","le","_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","de","fe","pe","_request","setLocalUserInfo","ge","_envId","setUserInfo","ticket","signInWithRedirect","oldPassword","newPassword","newEmail","username","users","wxOpenId","wxPublicId","hasPrimaryUid","nickName","gender","avatarUrl","province","country","city","me","credential","refreshToken","loginType","ye","updatePersistence","uuid","_setAnonymousUUID","refresh","_clearAnonymousUUID","_e","refreshUserInfo","we","email","password","ke","Se","_onAnonymousConverted","bind","_onLoginTypeChanged","signIn","_anonymousAuthProvider","linkAndRetrieveDataWithTicket","hasLoginState","isRegistered","ve","authorization","fileId","cosFileId","Te","Ae","fileid_list","delete_list","Pe","fileid","max_age","maxAge","file_list","download_list","Ie","download_url","encodeURI","be","function_name","request_data","response_data","Ee","Oe","Ce","authObj","requestClient","Ue","xe","De","Re","clear","qe","useAdapters","Le","Fe","Ne","$e","Me","je","fileUrl","Be","Ke","clientInfo","uniIdToken","He","localAddress","localPort","aliyun","tencent","_originCallFunction","errCode","We","rule","mode","ze","Je","RegExp","source","Ve","Ye","functionName","logPvd","useDebugFunction","Xe","callFunction","extraInfo","formatter","debugInfo","forceRemote","Ge","Symbol","Qe","_internalType","__ob__","Ze","et","tt","nt","$regexp","flags","$date","toISOString","st","prevStage","udb","_database","$db","reverse","$method","$param","toJSON","_send","from","getAction","getCommand","_callCloudFunction","command","useAggregate","rt","ot","$newDb","it","multiCommand","queryList","setResult","dataList","_uniClient","systemInfo","_callback","_callbackAuth","affectedDocs","uniClient","_authCallBacks","_dbCallBacks","isDefault","$env","Geo","serverDate","at","database","ct","ut","ht","lt","dt","tempFiles","lastIndexOf","tempFilePaths","onChooseFile","tempFile","tempFilePath","initChooseAndUploadFile","count","sizeType","sourceType","extension","chooseImage","camera","compressed","maxDuration","chooseVideo","width","chooseFile","chooseMessageFile","ft","pt","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","gt","mt","initUniCloudStatus","setTimeout","address","servePort","port","initialLaunchType","yt","debugFunction","navigator","userAgent","reInit","chooseAndUploadFile","mixinDatacom","uniCloud","_t","yAxisWidth","yAxisSplit","xAxisHeight","xAxisLineHeight","legendHeight","yAxisTitleWidth","padding","rotate","columePadding","fontSize","fontColor","dataPointShape","linearColor","pieChartLinePadding","pieChartTextPadding","xAxisTextPadding","titleColor","titleFontSize","subtitleColor","subtitleFontSize","toolTipPadding","toolTipBackground","toolTipOpacity","toolTipLineHeight","radarLabelTextMargin","gaugeLabelTextMargin","varArgs","TypeError","deepAssign","obj1","obj2","util","toFixed","isFloat","approximatelyEqual","num1","num2","isSameSign","isSameXCoordinateArea","p1","p2","isCollision","end","start","flag","getH5Offset","changedTouches","offsetX","offsetY","lonlat2mercator","longitude","latitude","mercator","tan","PI","mercator2lonlat","lonlat","atan","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","validDistance","uevent","trigger","scrollOption","position","xAxis","scrollPosition","isInAngleRange","angle","startAngle","endAngle","adjust","calRotateTranslate","xv","yv","transX","sqrt","transY","createCurveControlPoints","points","isNotMiddlePoint","isNotMiddlePointX","pAx","pAy","pBx","pBy","last","ctrA","ctrB","convertCoordinateOrigin","avoidCollision","fixPieSeries","pieSeriesArr","_pieSeries_","oldseries","fillSeries","linearIndex","pointShape","legendShape","fillCustomColor","linearType","customColor","newcolor","chazhi","getDataRange","minData","maxData","range","minRange","maxRange","measureText","setFontSize","dataCombine","dataCombineStack","getTouches","touches","clientX","pix","pageY","offsetTop","getSeriesDataItem","group","newSeries","indexIsArr","tempSeries","filterSeries","tmpindex","style","disableLegend","getMaxTextListLength","lengthList","getRadarCoordinateSeries","eachAngle","CoordinateSeries","getToolTipData","seriesData","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","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","findRoseChartCurrentIndex","pieData","getRoseDataPoints","_series_","rose","_start_","_rose_proportion_","findPieChartCurrentIndex","getPieDataPoints","_proportion_","pow","splitPoints","eachSeries","newPoints","connectNulls","calLegendData","wholeWidth","wholeHeight","widthArr","heightArr","legend","margin","shapeWidth","shapeRight","lineHeight","legendList","widthCount","widthCountArr","currentRow","itemWidth","itemGap","legendWidth","float","maxHeight","maxLength","lineNum","temp","maxWidth","calCategoriesData","categoriesTextLenth","maxTextLength","rotateLabel","getXAxisTextList","sorted","subitem","rangeSpan","eachRange","splitNumber","calXAxisData","ranges","rangesFormat","xAxisScaleValues","getXAxisPoints","textLength","disabled","getRadarDataPoints","radarOption","radar","each","listItem","proportion","cos","_radius_","getFunnelDataPoints","minRadius","dataArr","radiusLength","getArcbarDataPoints","arcbarOption","totalAngle","getGaugeAxisPoints","tempStartAngle","_startAngle_","_endAngle_","getGaugeDataPoints","gaugeOption","pointer","_oldAngle_","oldAngle","oldData","getPieTextMaxLength","textSize","fixColumeData","columnLen","seriesGap","categoryGap","mix","column","fixColumeMeterData","border","fixColumeStackData","indexn","spacingValid","dataCount","enableScroll","itemCount","startX","endX","getCandleDataPoints","validHeight","cPoints","indexs","point","getDataPoints","validWidth","xranges","xminRange","xmaxRange","pop","getStackDataPoints","seriesIndex","stackSeries","value0","height0","heightc","y0","getYAxisTextList","stack","yData","dataRange","yAxis","calYAxisData","columnstyle","YLength","rangesArr","rangesFormatArr","yAxisWidthArr","tofix","unit","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","drawGaugeLabel","centerPosition","labelOffset","splitAngle","splitLine","totalNumber","endNumber","startNumber","nowAngle","nowNumber","pos","labelText","labelColor","drawRadarLabel","posRelativeCanvas","drawPieText","lineRadius","textObjectCollection","lastTextObject","seriesConvert","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","bgStartX","bgEndX","bgWidth","drawToolTipHorizentalLine","yAxisLabel","tStartLeft","tStartRight","drawToolTipSplitArea","activeBgColor","activeBgOpacity","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","drawCandleDataPoints","seriesMA","candleOption","average","candle","upLine","downLine","leftSpace","rightSpace","splitPointList","startPoint","ctrlPoint","bezierCurveTo","drawAreaDataPoints","areaOption","opacity","addLine","gradient","firstPoint","lastPoint","lineType","drawScatterDataPoints","scatterOption","scatter","drawBubbleDataPoints","bubbleOption","bubble","drawLineDataPoints","lineOption","line","drawMixDataPoints","columnIndex","columnLength","addPoint","drawToolTipBridge","horizentalLine","drawXAxis","scrollShow","scrollY","scrollScreenWidth","scrollTotalWidth","scrollWidth","scrollLeft","setLineCap","scrollBackgroundColor","scrollColor","disableGrid","gridEval","maxXAxisListLength","labelCount","ratio","newCategories","cgLength","xAxisFontSize","_xAxisTextAngle_","xitem","scrollHeight","_calRotateTranslate","axisLine","axisLineColor","drawYAxisGrid","xAxiseachSpacing","TotalWidth","drawYAxis","fillEndY","textAlign","tmpstrat","gapwidth","showTitle","titleOffsetX","titleOffsetY","drawLegend","legendArea","backgroundColor","itemList","listIndex","hiddenColor","fontTrans","drawPieDataPoints","pieOption","activeOpacity","activeRadius","offsetAngle","labelWidth","ringWidth","customRadius","centerColor","pie","ring","_pieTextMaxLength_","lineJoin","fillcolor","createCircularGradient","createRadialGradient","innerPieWidth","valid","drawRoseDataPoints","roseOption","drawArcbarDataPoints","arcbar","centerX","centerY","drawGaugeDataPoints","fixRadius","childNumber","childWidth","gauge","innerRadius","pieRadius","childAngle","proc","pointerRadius","gradient3","eachCategories","childendX","drawRadarDataPoints","gridCount","coordinateAngle","xr","yr","_loop","startPos","radarDataPoints","normalInt","iter","collisionNew","isIn","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","getWordCloudPoint","tHeight","tWidth","breaknum","Spin","isSpin","areav","drawWordCloudDataPoints","wordOption","autoColors","word","wordCloudData","strokeText","drawFunnelDataPoints","funnelOption","activeWidth","labelAlign","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","_calYAxisData","maxTitleHeight","rightIndex","leftIndex","_calCategoriesData","categoriesData","scrollAlign","offsetLeft","totalWidth","screenWidth","currentOffset","startTouchX","lastMoveTime","clearRect","_drawLineDataPoints","enableMarkLine","_drawScatterDataPoints","_drawBubbleDataPoints","_drawMixDataPoints","_drawColumnDataPoints","_drawAreaDataPoints","arcbarData","gaugeData","_drawCandleDataPoints","uChartsEvent","events","addEventListener","listener","delEventListener","_len","_key","uCharts","canvas2d","config$$1","tempWidth","tempHeight","strokeStyle","lineWidth","lineCap","font","fillStyle","updateData","_getXAxisPoints0","zoom","centerLeft","MaxLeft","stopAnimation","getCurrentDataIndex","_touches$","getLegendDataIndex","touchLegend","showToolTip","_getToolTipData","_getMixToolTipData","scrollStart","scroll","Limit","touchMoveLimit","currMoveTime","_distance","scrollEnd","_scrollOption","formatDateTime","returnType","setTime","getHours","minute","getMinutes","second","getSeconds","category","makeMap","block","inline","closeSelf","removeDOCTYPE","html","isDocument","$1","trimHtml","getScreenInfo","screen","html2json","customHandler","imageProp","wxDiscode","strDiscode","bufArray","results","nodes","imageUrls","Node","tag","node","$screen","attrs","unary","tagType","attr","pre","classStr","styleStr","imgUrl","src","urlToHttpUrl","domain","href","styleAttrs","face","chars","strNumDiscode","strGreeceDiscode","strcharacterDiscode","strOtherDiscode","startTag","endTag","empty","fillAttrs","HTMLParser","parseEndTag","tagName","parseStartTag","rest","genAttr","matches","escaped","isObject","defaultDelimiters","BaseFormatter","_caches","delimiters","tokens","compile","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","format","startDelimiter","endDelimiter","char","sub","isClosed","compiled","LOCALE_ZH_HANS","LOCALE_ZH_HANT","LOCALE_EN","LOCALE_FR","LOCALE_ES","defaultFormatter","include","parts","part","startsWith","normalizeLocale","lang","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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B;AACApf,EAAE,CAAC0f,YAAH,GAAkBA,YAAlB;;AAEA,IAAIK,KAAK,GAAGF,GAAZ,C;;AAEeE,K;;;;;;;;;;;;;AC9hEf;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;;;;;;;;;;;;AClHA;AACA,OAAO,KAAU,EAAE,kBAKd;;;;;;;;;;;;ACNL;AACA,OAAO,KAAU,EAAE,kBAKd;;;;;;;;;;;;ACNL;AACA,OAAO,KAAU,EAAE,kBAKd;;;;;;;;;;;;ACNL;AACA,OAAO,KAAU,EAAE,kBAKd;;;;;;;;;;;;;kICNL;AACA;AACA,mF;AACAhf,aAAIif,GAAJ,CAAQC,aAAR,E;AACe,IAAIA,cAAKC,KAAT,CAAe;AAC5B;AACA5H,OAAK,EAAE;AACL6H,QAAI,EAAE;AACJC,aAAO,EAAE,IADL;AAEJlb,UAAI,EAAE,EAFF;AAGJmb,cAAQ,EAAE,EAHN;AAIJC,kBAAY,EAAE,CAJV,EAIa;AACjBC,iBAAW,EAAE,CALT,EAKY;AAChBC,YAAM,EAAE,CANJ;AAOJC,cAAQ,EAAE,EAPN;AAQJC,YAAM,EAAE,CARJ;AASJC,SAAG,EAAE,GATD;AAUJC,SAAG,EAAE,CAVD;AAW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ACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kBAAkB;AACnD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;sGChtBe,EAAC,SAAQ,gBAAT,E;;;;;;;;;;;;ACAf;;;;;;;;;;;;;;;;;;;;AAoBA,IAAIvK,MAAM,GAAG;AACXwV,SAAO,EAAE,iBADE;AAEX4T,YAAU,EAAE,EAFD;AAGXC,YAAU,EAAE,CAHD;AAIXC,aAAW,EAAE,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A;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,wEAAwE;AACxE;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;;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;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,wGAAW;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,wGAAW;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,wGAAW;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,wGAAW;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;AACA,SAAS;AACT;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;;;;;;;;;;;;;;4nFCh6LnB,IAAM19D,OAAO,GAAGD,KAAK,CAACC,OAAtB;AACA,IAAMk+D,QAAQ,GAAG,SAAXA,QAAW,CAAC1kD,GAAD,UAASA,GAAG,KAAK,IAAR,IAAgB,OAAOA,GAAP,KAAe,QAAxC,EAAjB;AACA,IAAM2kD,iBAAiB,GAAG,CAAC,GAAD,EAAM,GAAN,CAA1B,C;AACMC,a;AACF,2BAAc;AACV,SAAKC,OAAL,GAAelgE,MAAM,CAACa,MAAP,CAAc,IAAd,CAAf;AACH,G;AACW3B,W,EAASsX,M,EAAwC,KAAhC2pD,UAAgC,uEAAnBH,iBAAmB;AACzD,UAAI,CAACxpD,MAAL,EAAa;AACT,eAAO,CAACtX,OAAD,CAAP;AACH;AACD,UAAIkhE,MAAM,GAAG,KAAKF,OAAL,CAAahhE,OAAb,CAAb;AACA,UAAI,CAACkhE,MAAL,EAAa;AACTA,cAAM,GAAGphE,KAAK,CAACE,OAAD,EAAUihE,UAAV,CAAd;AACA,aAAKD,OAAL,CAAahhE,OAAb,IAAwBkhE,MAAxB;AACH;AACD,aAAOC,OAAO,CAACD,MAAD,EAAS5pD,MAAT,CAAd;AACH,K;;AAEL,IAAM8pD,mBAAmB,GAAG,UAA5B;AACA,IAAMC,oBAAoB,GAAG,UAA7B;AACA,SAASvhE,KAAT,CAAewhE,MAAf,QAAuD,qCAA/BC,cAA+B,YAAfC,YAAe;AACnD,MAAMN,MAAM,GAAG,EAAf;AACA,MAAItuB,QAAQ,GAAG,CAAf;AACA,MAAI7kB,IAAI,GAAG,EAAX;AACA,SAAO6kB,QAAQ,GAAG0uB,MAAM,CAACpjE,MAAzB,EAAiC;AAC7B,QAAIujE,IAAI,GAAGH,MAAM,CAAC1uB,QAAQ,EAAT,CAAjB;AACA,QAAI6uB,IAAI,KAAKF,cAAb,EAA6B;AACzB,UAAIxzC,IAAJ,EAAU;AACNmzC,cAAM,CAACp+D,IAAP,CAAY,EAAEuP,IAAI,EAAE,MAAR,EAAgBlM,KAAK,EAAE4nB,IAAvB,EAAZ;AACH;AACDA,UAAI,GAAG,EAAP;AACA,UAAI2zC,GAAG,GAAG,EAAV;AACAD,UAAI,GAAGH,MAAM,CAAC1uB,QAAQ,EAAT,CAAb;AACA,aAAO6uB,IAAI,KAAKrlD,SAAT,IAAsBqlD,IAAI,KAAKD,YAAtC,EAAoD;AAChDE,WAAG,IAAID,IAAP;AACAA,YAAI,GAAGH,MAAM,CAAC1uB,QAAQ,EAAT,CAAb;AACH;AACD,UAAM+uB,QAAQ,GAAGF,IAAI,KAAKD,YAA1B;AACA,UAAMnvD,IAAI,GAAG+uD,mBAAmB,CAACrjE,IAApB,CAAyB2jE,GAAzB;AACP,YADO;AAEPC,cAAQ,IAAIN,oBAAoB,CAACtjE,IAArB,CAA0B2jE,GAA1B,CAAZ;AACI,aADJ;AAEI,eAJV;AAKAR,YAAM,CAACp+D,IAAP,CAAY,EAAEqD,KAAK,EAAEu7D,GAAT,EAAcrvD,IAAI,EAAJA,IAAd,EAAZ;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AAxBA,SAyBK;AACD0b,YAAI,IAAI0zC,IAAR;AACH;AACJ;AACD1zC,MAAI,IAAImzC,MAAM,CAACp+D,IAAP,CAAY,EAAEuP,IAAI,EAAE,MAAR,EAAgBlM,KAAK,EAAE4nB,IAAvB,EAAZ,CAAR;AACA,SAAOmzC,MAAP;AACH;AACD,SAASC,OAAT,CAAiBD,MAAjB,EAAyB5pD,MAAzB,EAAiC;AAC7B,MAAMsqD,QAAQ,GAAG,EAAjB;AACA,MAAI3+D,KAAK,GAAG,CAAZ;AACA,MAAM6gC,IAAI,GAAGnhC,OAAO,CAAC2U,MAAD,CAAP;AACP,QADO;AAEPupD,UAAQ,CAACvpD,MAAD,CAAR;AACI,SADJ;AAEI,WAJV;AAKA,MAAIwsB,IAAI,KAAK,SAAb,EAAwB;AACpB,WAAO89B,QAAP;AACH;AACD,SAAO3+D,KAAK,GAAGi+D,MAAM,CAAChjE,MAAtB,EAA8B;AAC1B,QAAMkB,KAAK,GAAG8hE,MAAM,CAACj+D,KAAD,CAApB;AACA,YAAQ7D,KAAK,CAACiT,IAAd;AACI,WAAK,MAAL;AACIuvD,gBAAQ,CAAC9+D,IAAT,CAAc1D,KAAK,CAAC+G,KAApB;AACA;AACJ,WAAK,MAAL;AACIy7D,gBAAQ,CAAC9+D,IAAT,CAAcwU,MAAM,CAAC1N,QAAQ,CAACxK,KAAK,CAAC+G,KAAP,EAAc,EAAd,CAAT,CAApB;AACA;AACJ,WAAK,OAAL;AACI,YAAI29B,IAAI,KAAK,OAAb,EAAsB;AAClB89B,kBAAQ,CAAC9+D,IAAT,CAAcwU,MAAM,CAAClY,KAAK,CAAC+G,KAAP,CAApB;AACH,SAFD;AAGK;AACD,cAAI8K,IAAJ,EAA2C;AACvCnF,mBAAO,CAACC,IAAR,0BAA+B3M,KAAK,CAACiT,IAArC,oCAAmEyxB,IAAnE;AACH;AACJ;AACD;AACJ,WAAK,SAAL;AACI,YAAI7yB,IAAJ,EAA2C;AACvCnF,iBAAO,CAACC,IAAR;AACH;AACD,cArBR;;AAuBA9I,SAAK;AACR;AACD,SAAO2+D,QAAP;AACH;;AAED,IAAMC,cAAc,GAAG,SAAvB,C;AACA,IAAMC,cAAc,GAAG,SAAvB,C;AACA,IAAMC,SAAS,GAAG,IAAlB,C;AACA,IAAMC,SAAS,GAAG,IAAlB,C;AACA,IAAMC,SAAS,GAAG,IAAlB,C;AACA,IAAMlhE,cAAc,GAAGD,MAAM,CAACT,SAAP,CAAiBU,cAAxC;AACA,IAAMO,MAAM,GAAG,SAATA,MAAS,CAAC6a,GAAD,EAAM5a,GAAN,UAAcR,cAAc,CAACM,IAAf,CAAoB8a,GAApB,EAAyB5a,GAAzB,CAAd,EAAf;AACA,IAAM2gE,gBAAgB,GAAG,IAAInB,aAAJ,EAAzB;AACA,SAASoB,OAAT,CAAiBvkE,GAAjB,EAAsBwkE,KAAtB,EAA6B;AACzB,SAAO,CAAC,CAACA,KAAK,CAACxyD,IAAN,CAAW,UAACyyD,IAAD,UAAUzkE,GAAG,CAACY,OAAJ,CAAY6jE,IAAZ,MAAsB,CAAC,CAAjC,EAAX,CAAT;AACH;AACD,SAASC,UAAT,CAAoB1kE,GAApB,EAAyBwkE,KAAzB,EAAgC;AAC5B,SAAOA,KAAK,CAACxyD,IAAN,CAAW,UAACyyD,IAAD,UAAUzkE,GAAG,CAACY,OAAJ,CAAY6jE,IAAZ,MAAsB,CAAhC,EAAX,CAAP;AACH;AACD,SAASE,eAAT,CAAyBp6D,MAAzB,EAAiCmO,QAAjC,EAA2C;AACvC,MAAI,CAACnO,MAAL,EAAa;AACT;AACH;AACDA,QAAM,GAAGA,MAAM,CAAC2tB,IAAP,GAAch4B,OAAd,CAAsB,IAAtB,EAA4B,GAA5B,CAAT;AACA,MAAIwY,QAAQ,IAAIA,QAAQ,CAACnO,MAAD,CAAxB,EAAkC;AAC9B,WAAOA,MAAP;AACH;AACDA,QAAM,GAAGA,MAAM,CAACqqB,WAAP,EAAT;AACA,MAAIrqB,MAAM,CAAC3J,OAAP,CAAe,IAAf,MAAyB,CAA7B,EAAgC;AAC5B,QAAI2J,MAAM,CAAC3J,OAAP,CAAe,OAAf,IAA0B,CAAC,CAA/B,EAAkC;AAC9B,aAAOqjE,cAAP;AACH;AACD,QAAI15D,MAAM,CAAC3J,OAAP,CAAe,OAAf,IAA0B,CAAC,CAA/B,EAAkC;AAC9B,aAAOsjE,cAAP;AACH;AACD,QAAIK,OAAO,CAACh6D,MAAD,EAAS,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,MAAtB,CAAT,CAAX,EAAoD;AAChD,aAAO25D,cAAP;AACH;AACD,WAAOD,cAAP;AACH;AACD,MAAMW,IAAI,GAAGF,UAAU,CAACn6D,MAAD,EAAS,CAAC45D,SAAD,EAAYC,SAAZ,EAAuBC,SAAvB,CAAT,CAAvB;AACA,MAAIO,IAAJ,EAAU;AACN,WAAOA,IAAP;AACH;AACJ,C;AACKC,I;AACF,uBAAsE,KAAxDt6D,MAAwD,SAAxDA,MAAwD,CAAhDu6D,cAAgD,SAAhDA,cAAgD,CAAhCpsD,QAAgC,SAAhCA,QAAgC,CAAtBqsD,OAAsB,SAAtBA,OAAsB,CAAbC,QAAa,SAAbA,QAAa;AAClE,SAAKz6D,MAAL,GAAc45D,SAAd;AACA,SAAKW,cAAL,GAAsBX,SAAtB;AACA,SAAK/hE,OAAL,GAAe,EAAf;AACA,SAAKsW,QAAL,GAAgB,EAAhB;AACA,SAAKusD,QAAL,GAAgB,EAAhB;AACA,QAAIH,cAAJ,EAAoB;AAChB,WAAKA,cAAL,GAAsBA,cAAtB;AACH;AACD,SAAKE,QAAL,GAAgBA,QAAQ,IAAIV,gBAA5B;AACA,SAAK5rD,QAAL,GAAgBA,QAAQ,IAAI,EAA5B;AACA,SAAKpO,SAAL,CAAeC,MAAM,IAAI45D,SAAzB;AACA,QAAIY,OAAJ,EAAa;AACT,WAAKxrD,WAAL,CAAiBwrD,OAAjB;AACH;AACJ,G;AACSx6D,U,EAAQ;AACd,UAAMC,SAAS,GAAG,KAAKD,MAAvB;AACA,WAAKA,MAAL,GAAco6D,eAAe,CAACp6D,MAAD,EAAS,KAAKmO,QAAd,CAAf,IAA0C,KAAKosD,cAA7D;AACA,UAAI,CAAC,KAAKpsD,QAAL,CAAc,KAAKnO,MAAnB,CAAL,EAAiC;AAC7B;AACA,aAAKmO,QAAL,CAAc,KAAKnO,MAAnB,IAA6B,EAA7B;AACH;AACD,WAAKnI,OAAL,GAAe,KAAKsW,QAAL,CAAc,KAAKnO,MAAnB,CAAf;AACA;AACA,UAAIC,SAAS,KAAK,KAAKD,MAAvB,EAA+B;AAC3B,aAAK06D,QAAL,CAAct/D,OAAd,CAAsB,UAACo/D,OAAD,EAAa;AAC/BA,iBAAO,CAAC,KAAI,CAACx6D,MAAN,EAAcC,SAAd,CAAP;AACH,SAFD;AAGH;AACJ,K;AACW;AACR,aAAO,KAAKD,MAAZ;AACH,K;AACWlH,M,EAAI;AACZ,UAAMgC,KAAK,GAAG,KAAK4/D,QAAL,CAAc//D,IAAd,CAAmB7B,EAAnB,IAAyB,CAAvC;AACA,aAAO,YAAM;AACT,cAAI,CAAC4hE,QAAL,CAAc3/D,MAAd,CAAqBD,KAArB,EAA4B,CAA5B;AACH,OAFD;AAGH,K;AACGkF,U,EAAQnI,O,EAA0B,KAAjB8iE,QAAiB,uEAAN,IAAM;AAClC,UAAMlsD,WAAW,GAAG,KAAKN,QAAL,CAAcnO,MAAd,CAApB;AACA,UAAIyO,WAAJ,EAAiB;AACb,YAAIksD,QAAJ,EAAc;AACVhiE,gBAAM,CAAC4F,MAAP,CAAckQ,WAAd,EAA2B5W,OAA3B;AACH,SAFD;AAGK;AACDc,gBAAM,CAACwC,IAAP,CAAYtD,OAAZ,EAAqBuD,OAArB,CAA6B,UAAChC,GAAD,EAAS;AAClC,gBAAI,CAACD,MAAM,CAACsV,WAAD,EAAcrV,GAAd,CAAX,EAA+B;AAC3BqV,yBAAW,CAACrV,GAAD,CAAX,GAAmBvB,OAAO,CAACuB,GAAD,CAA1B;AACH;AACJ,WAJD;AAKH;AACJ,OAXD;AAYK;AACD,aAAK+U,QAAL,CAAcnO,MAAd,IAAwBnI,OAAxB;AACH;AACJ,K;AACCA,W,EAASsX,M,EAAQ2pD,U,EAAY;AAC3B,aAAO,KAAK2B,QAAL,CAAcG,WAAd,CAA0B/iE,OAA1B,EAAmCsX,MAAnC,EAA2C2pD,UAA3C,EAAuD/hE,IAAvD,CAA4D,EAA5D,CAAP;AACH,K;AACCqC,O,EAAK4G,M,EAAQmP,M,EAAQ;AACnB,UAAItX,OAAO,GAAG,KAAKA,OAAnB;AACA,UAAI,OAAOmI,MAAP,KAAkB,QAAtB,EAAgC;AAC5BA,cAAM,GAAGo6D,eAAe,CAACp6D,MAAD,EAAS,KAAKmO,QAAd,CAAxB;AACAnO,cAAM,KAAKnI,OAAO,GAAG,KAAKsW,QAAL,CAAcnO,MAAd,CAAf,CAAN;AACH,OAHD;AAIK;AACDmP,cAAM,GAAGnP,MAAT;AACH;AACD,UAAI,CAAC7G,MAAM,CAACtB,OAAD,EAAUuB,GAAV,CAAX,EAA2B;AACvBuK,eAAO,CAACC,IAAR,iDAAsDxK,GAAtD;AACA,eAAOA,GAAP;AACH;AACD,aAAO,KAAKqhE,QAAL,CAAcG,WAAd,CAA0B/iE,OAAO,CAACuB,GAAD,CAAjC,EAAwC+V,MAAxC,EAAgDpY,IAAhD,CAAqD,EAArD,CAAP;AACH,K;;;AAGL,SAAS8jE,cAAT,CAAwBtrD,KAAxB,EAA+BZ,IAA/B,EAAqC;AACjC;AACA,MAAIY,KAAK,CAACI,YAAV,EAAwB;AACpB;AACAJ,SAAK,CAACI,YAAN,CAAmB,UAACmrD,SAAD,EAAe;AAC9BnsD,UAAI,CAAC5O,SAAL,CAAe+6D,SAAf;AACH,KAFD;AAGH,GALD;AAMK;AACDvrD,SAAK,CAAC2zB,MAAN,CAAa,oBAAM3zB,KAAK,CAAC1P,OAAZ,EAAb,EAAkC,UAACi7D,SAAD,EAAe;AAC7CnsD,UAAI,CAAC5O,SAAL,CAAe+6D,SAAf;AACH,KAFD;AAGH;AACJ;AACD,SAASC,gBAAT,GAA4B;AACxB,MAAI,OAAOhkD,GAAP,KAAe,WAAf,IAA8BA,GAAG,CAACvX,SAAtC,EAAiD;AAC7C,WAAOuX,GAAG,CAACvX,SAAJ,EAAP;AACH;AACD;AACA,MAAI,OAAOY,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,CAACZ,SAA5C,EAAuD;AACnD,WAAOY,MAAM,CAACZ,SAAP,EAAP;AACH;AACD,SAAOo6D,SAAP;AACH;AACD,SAASoB,WAAT,CAAqBh7D,MAArB,EAAqE,KAAxCmO,QAAwC,uEAA7B,EAA6B,KAAzBosD,cAAyB,uDAATC,OAAS;AACjE;AACA,MAAI,OAAOx6D,MAAP,KAAkB,QAAtB,EAAgC;AACP;AACjBmO,YADiB;AAEjBnO,UAFiB,CADO,CAC3BA,MAD2B,YACnBmO,QADmB;;AAK/B;AACD,MAAI,OAAOnO,MAAP,KAAkB,QAAtB,EAAgC;AAC5B;AACAA,UAAM,GAAG+6D,gBAAgB,EAAzB;AACH;AACD,MAAI,OAAOR,cAAP,KAA0B,QAA9B,EAAwC;AACpCA,kBAAc;AACT,WAAOhsD,WAAP,KAAuB,WAAvB,IAAsCA,WAAW,CAACgsD,cAAnD;AACIX,aAFR;AAGH;AACD,MAAMjrD,IAAI,GAAG,IAAI2rD,IAAJ,CAAS;AAClBt6D,UAAM,EAANA,MADkB;AAElBu6D,kBAAc,EAAdA,cAFkB;AAGlBpsD,YAAQ,EAARA,QAHkB;AAIlBqsD,WAAO,EAAPA,OAJkB,EAAT,CAAb;;AAMA,MAAI5rD,EAAC,GAAG,WAACxV,GAAD,EAAM+V,MAAN,EAAiB;AACrB,QAAI,OAAOzP,MAAP,KAAkB,UAAtB,EAAkC;AAC9B;AACA;AACAkP,QAAC,GAAG,WAAUxV,GAAV,EAAe+V,MAAf,EAAuB;AACvB,eAAOR,IAAI,CAACC,CAAL,CAAOxV,GAAP,EAAY+V,MAAZ,CAAP;AACH,OAFD;AAGH,KAND;AAOK;AACD,UAAI8rD,kBAAkB,GAAG,KAAzB;AACArsD,QAAC,GAAG,WAAUxV,GAAV,EAAe+V,MAAf,EAAuB;AACvB,YAAMI,KAAK,GAAG7P,MAAM,GAAGE,GAAvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAI2P,KAAJ,EAAW;AACP;AACAA,eAAK,CAAC1P,OAAN;AACA,cAAI,CAACo7D,kBAAL,EAAyB;AACrBA,8BAAkB,GAAG,IAArB;AACAJ,0BAAc,CAACtrD,KAAD,EAAQZ,IAAR,CAAd;AACH;AACJ;AACD,eAAOA,IAAI,CAACC,CAAL,CAAOxV,GAAP,EAAY+V,MAAZ,CAAP;AACH,OAxBD;AAyBH;AACD,WAAOP,EAAC,CAACxV,GAAD,EAAM+V,MAAN,CAAR;AACH,GArCD;AAsCA,SAAO;AACHR,QAAI,EAAJA,IADG;AAEHya,KAFG,aAEDvxB,OAFC,EAEQsX,MAFR,EAEgB2pD,UAFhB,EAE4B;AAC3B,aAAOnqD,IAAI,CAACya,CAAL,CAAOvxB,OAAP,EAAgBsX,MAAhB,EAAwB2pD,UAAxB,CAAP;AACH,KAJE;AAKHlqD,KALG,aAKDxV,GALC,EAKI+V,MALJ,EAKY;AACX,aAAOP,EAAC,CAACxV,GAAD,EAAM+V,MAAN,CAAR;AACH,KAPE;AAQH+rD,OARG,eAQCl7D,MARD,EAQSnI,OART,EAQmC,KAAjB8iE,QAAiB,uEAAN,IAAM;AAClC,aAAOhsD,IAAI,CAACusD,GAAL,CAASl7D,MAAT,EAAiBnI,OAAjB,EAA0B8iE,QAA1B,CAAP;AACH,KAVE;AAWH3qD,SAXG,iBAWGlX,EAXH,EAWO;AACN,aAAO6V,IAAI,CAACK,WAAL,CAAiBlW,EAAjB,CAAP;AACH,KAbE;AAcH0G,aAdG,uBAcS;AACR,aAAOmP,IAAI,CAACnP,SAAL,EAAP;AACH,KAhBE;AAiBHO,aAjBG,qBAiBO+6D,SAjBP,EAiBkB;AACjB,aAAOnsD,IAAI,CAAC5O,SAAL,CAAe+6D,SAAf,CAAP;AACH,KAnBE,EAAP;;AAqBH;;AAED,IAAMK,QAAQ,GAAG,SAAXA,QAAW,CAACnnD,GAAD,UAAS,OAAOA,GAAP,KAAe,QAAxB,EAAjB,C;AACA,IAAIymD,QAAJ;AACA,SAASW,WAAT,CAAqBC,OAArB,EAA8BvC,UAA9B,EAA0C;AACtC,MAAI,CAAC2B,QAAL,EAAe;AACXA,YAAQ,GAAG,IAAI7B,aAAJ,EAAX;AACH;AACD,SAAO0C,WAAW,CAACD,OAAD,EAAU,UAACA,OAAD,EAAUjiE,GAAV,EAAkB;AAC1C,QAAM4E,KAAK,GAAGq9D,OAAO,CAACjiE,GAAD,CAArB;AACA,QAAI+hE,QAAQ,CAACn9D,KAAD,CAAZ,EAAqB;AACjB,UAAIu9D,SAAS,CAACv9D,KAAD,EAAQ86D,UAAR,CAAb,EAAkC;AAC9B,eAAO,IAAP;AACH;AACJ,KAJD;AAKK;AACD,aAAOsC,WAAW,CAACp9D,KAAD,EAAQ86D,UAAR,CAAlB;AACH;AACJ,GAViB,CAAlB;AAWH;AACD,SAAS0C,aAAT,CAAuBH,OAAvB,EAAgClsD,MAAhC,EAAwC2pD,UAAxC,EAAoD;AAChD,MAAI,CAAC2B,QAAL,EAAe;AACXA,YAAQ,GAAG,IAAI7B,aAAJ,EAAX;AACH;AACD0C,aAAW,CAACD,OAAD,EAAU,UAACA,OAAD,EAAUjiE,GAAV,EAAkB;AACnC,QAAM4E,KAAK,GAAGq9D,OAAO,CAACjiE,GAAD,CAArB;AACA,QAAI+hE,QAAQ,CAACn9D,KAAD,CAAZ,EAAqB;AACjB,UAAIu9D,SAAS,CAACv9D,KAAD,EAAQ86D,UAAR,CAAb,EAAkC;AAC9BuC,eAAO,CAACjiE,GAAD,CAAP,GAAeqiE,UAAU,CAACz9D,KAAD,EAAQmR,MAAR,EAAgB2pD,UAAhB,CAAzB;AACH;AACJ,KAJD;AAKK;AACD0C,mBAAa,CAACx9D,KAAD,EAAQmR,MAAR,EAAgB2pD,UAAhB,CAAb;AACH;AACJ,GAVU,CAAX;AAWA,SAAOuC,OAAP;AACH;AACD,SAASK,kBAAT,CAA4BC,OAA5B,SAAuE,KAAhC37D,MAAgC,SAAhCA,MAAgC,CAAxBwO,OAAwB,SAAxBA,OAAwB,CAAfsqD,UAAe,SAAfA,UAAe;AACnE,MAAI,CAACyC,SAAS,CAACI,OAAD,EAAU7C,UAAV,CAAd,EAAqC;AACjC,WAAO6C,OAAP;AACH;AACD,MAAI,CAAClB,QAAL,EAAe;AACXA,YAAQ,GAAG,IAAI7B,aAAJ,EAAX;AACH;AACD,MAAMgD,YAAY,GAAG,EAArB;AACAjjE,QAAM,CAACwC,IAAP,CAAYqT,OAAZ,EAAqBpT,OAArB,CAA6B,UAACgB,IAAD,EAAU;AACnC,QAAIA,IAAI,KAAK4D,MAAb,EAAqB;AACjB47D,kBAAY,CAACjhE,IAAb,CAAkB;AACdqF,cAAM,EAAE5D,IADM;AAEd+S,cAAM,EAAEX,OAAO,CAACpS,IAAD,CAFD,EAAlB;;AAIH;AACJ,GAPD;AAQAw/D,cAAY,CAACtZ,OAAb,CAAqB,EAAEtiD,MAAM,EAANA,MAAF,EAAUmP,MAAM,EAAEX,OAAO,CAACxO,MAAD,CAAzB,EAArB;AACA,MAAI;AACA,WAAOtI,IAAI,CAACsR,SAAL,CAAe6yD,cAAc,CAACnkE,IAAI,CAACC,KAAL,CAAWgkE,OAAX,CAAD,EAAsBC,YAAtB,EAAoC9C,UAApC,CAA7B,EAA8E,IAA9E,EAAoF,CAApF,CAAP;AACH;AACD,SAAOjwD,CAAP,EAAU,CAAG;AACb,SAAO8yD,OAAP;AACH;AACD,SAASJ,SAAT,CAAmBv9D,KAAnB,EAA0B86D,UAA1B,EAAsC;AAClC,SAAO96D,KAAK,CAAC3H,OAAN,CAAcyiE,UAAU,CAAC,CAAD,CAAxB,IAA+B,CAAC,CAAvC;AACH;AACD,SAAS2C,UAAT,CAAoBz9D,KAApB,EAA2BmR,MAA3B,EAAmC2pD,UAAnC,EAA+C;AAC3C,SAAO2B,QAAQ,CAACG,WAAT,CAAqB58D,KAArB,EAA4BmR,MAA5B,EAAoC2pD,UAApC,EAAgD/hE,IAAhD,CAAqD,EAArD,CAAP;AACH;AACD,SAAS+kE,YAAT,CAAsBT,OAAtB,EAA+BjiE,GAA/B,EAAoCwiE,YAApC,EAAkD9C,UAAlD,EAA8D;AAC1D,MAAM96D,KAAK,GAAGq9D,OAAO,CAACjiE,GAAD,CAArB;AACA,MAAI+hE,QAAQ,CAACn9D,KAAD,CAAZ,EAAqB;AACjB;AACA,QAAIu9D,SAAS,CAACv9D,KAAD,EAAQ86D,UAAR,CAAb,EAAkC;AAC9BuC,aAAO,CAACjiE,GAAD,CAAP,GAAeqiE,UAAU,CAACz9D,KAAD,EAAQ49D,YAAY,CAAC,CAAD,CAAZ,CAAgBzsD,MAAxB,EAAgC2pD,UAAhC,CAAzB;AACA,UAAI8C,YAAY,CAAC7lE,MAAb,GAAsB,CAA1B,EAA6B;AACzB;AACA,YAAMgmE,YAAY,GAAIV,OAAO,CAACjiE,GAAG,GAAG,SAAP,CAAP,GAA2B,EAAjD;AACAwiE,oBAAY,CAACxgE,OAAb,CAAqB,UAAC4gE,UAAD,EAAgB;AACjCD,sBAAY,CAACC,UAAU,CAACh8D,MAAZ,CAAZ,GAAkCy7D,UAAU,CAACz9D,KAAD,EAAQg+D,UAAU,CAAC7sD,MAAnB,EAA2B2pD,UAA3B,CAA5C;AACH,SAFD;AAGH;AACJ;AACJ,GAZD;AAaK;AACD+C,kBAAc,CAAC79D,KAAD,EAAQ49D,YAAR,EAAsB9C,UAAtB,CAAd;AACH;AACJ;AACD,SAAS+C,cAAT,CAAwBR,OAAxB,EAAiCO,YAAjC,EAA+C9C,UAA/C,EAA2D;AACvDwC,aAAW,CAACD,OAAD,EAAU,UAACA,OAAD,EAAUjiE,GAAV,EAAkB;AACnC0iE,gBAAY,CAACT,OAAD,EAAUjiE,GAAV,EAAewiE,YAAf,EAA6B9C,UAA7B,CAAZ;AACH,GAFU,CAAX;AAGA,SAAOuC,OAAP;AACH;AACD,SAASC,WAAT,CAAqBD,OAArB,EAA8BY,IAA9B,EAAoC;AAChC,MAAIzhE,OAAO,CAAC6gE,OAAD,CAAX,EAAsB;AAClB,SAAK,IAAIjlE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGilE,OAAO,CAACtlE,MAA5B,EAAoCK,CAAC,EAArC,EAAyC;AACrC,UAAI6lE,IAAI,CAACZ,OAAD,EAAUjlE,CAAV,CAAR,EAAsB;AAClB,eAAO,IAAP;AACH;AACJ;AACJ,GAND;AAOK,MAAIsiE,QAAQ,CAAC2C,OAAD,CAAZ,EAAuB;AACxB,SAAK,IAAMjiE,GAAX,IAAkBiiE,OAAlB,EAA2B;AACvB,UAAIY,IAAI,CAACZ,OAAD,EAAUjiE,GAAV,CAAR,EAAwB;AACpB,eAAO,IAAP;AACH;AACJ;AACJ;AACD,SAAO,KAAP;AACH;;AAED,SAAS8iE,aAAT,CAAuB1tD,OAAvB,EAAgC;AAC5B,SAAO,UAACxO,MAAD,EAAY;AACf,QAAI,CAACA,MAAL,EAAa;AACT,aAAOA,MAAP;AACH;AACDA,UAAM,GAAGo6D,eAAe,CAACp6D,MAAD,CAAf,IAA2BA,MAApC;AACA,WAAOm8D,kBAAkB,CAACn8D,MAAD,CAAlB,CAA2ByH,IAA3B,CAAgC,UAACzH,MAAD,UAAYwO,OAAO,CAACnY,OAAR,CAAgB2J,MAAhB,IAA0B,CAAC,CAAvC,EAAhC,CAAP;AACH,GAND;AAOH;AACD,SAASm8D,kBAAT,CAA4Bn8D,MAA5B,EAAoC;AAChC,MAAMo8D,KAAK,GAAG,EAAd;AACA,MAAMrD,MAAM,GAAG/4D,MAAM,CAACtJ,KAAP,CAAa,GAAb,CAAf;AACA,SAAOqiE,MAAM,CAAChjE,MAAd,EAAsB;AAClBqmE,SAAK,CAACzhE,IAAN,CAAWo+D,MAAM,CAAChiE,IAAP,CAAY,GAAZ,CAAX;AACAgiE,UAAM,CAACxf,GAAP;AACH;AACD,SAAO6iB,KAAP;AACH,C;;;;;;;;;;;;;;;;;;;;;;;;ACncD;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB,EAAE;AACjD;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,8BAA8B,yBAAyB,EAAE;AACzD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,aAAoB;AACtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,IAAqC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,KAAqC;AAClD;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,KAAqC;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C,uBAAuB,2CAA2C;AAClE,KAAK;AACL;AACA,wBAAwB,0CAA0C;AAClE;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,4BAA4B,EAAE;AACxD;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,4BAA4B;AAC5D,SAAS,IAAqC;AAC9C;AACA;AACA,GAAG,GAAG,yBAAyB;AAC/B;;AAEA;AACA,4CAA4C,mBAAmB,EAAE;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,IAAqC;AAC5C;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;AACA,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW;AACX;AACA;AACA;AACA,OAAO,KAAqC;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,YAAY;AACZ;AACA;AACA;AACA,OAAO,KAAqC;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,YAAY;AACZ;AACA;AACA;AACA,OAAO,KAAqC;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAqC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,YAAY;AACZ;AACA;AACA;AACA,OAAO,KAAqC;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA,CAAC,EAAE;;AAEH;AACA;AACA,iCAAiC,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB;AAC1F,iBAAiB,iBAAiB,QAAQ,mBAAmB,GAAG,mBAAmB,GAAG,mBAAmB;AACzG,WAAW,aAAa;AACxB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU,qBAAqB,EAAE,EAAE;AACjE,2CAA2C,UAAU,0BAA0B,EAAE,EAAE;AACnF;;AAEA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA,OAAO,KAAqC;AAC5C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gCAAgC;AAChC,0BAA0B,iFAAiF,aAAa;AACxH,oCAAoC,+DAA+D,cAAc;AACjH,oDAAoD,6EAA6E,YAAY;AAC7I,sCAAsC,yEAAyE,aAAa;AAC5H,gDAAgD,yEAAyE,YAAY;AACrI,sCAAsC;AACtC,kCAAkC;AAClC,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sDAAsD;AACtD,oDAAoD;AACpD,sDAAsD;AACtD;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA","file":"common/vendor.js","sourcesContent":["import Vue from 'vue';\r\nimport { initVueI18n } from '@dcloudio/uni-i18n';\r\n\r\nlet realAtob;\r\n\r\nconst b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\r\n\r\nif (typeof atob !== 'function') {\r\n realAtob = function (str) {\r\n str = String(str).replace(/[\\t\\n\\f\\r ]+/g, '');\r\n if (!b64re.test(str)) { throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\") }\r\n\r\n // Adding the padding if missing, for semplicity\r\n str += '=='.slice(2 - (str.length & 3));\r\n var bitmap; var result = ''; var r1; var r2; var i = 0;\r\n for (; i < str.length;) {\r\n bitmap = b64.indexOf(str.charAt(i++)) << 18 | b64.indexOf(str.charAt(i++)) << 12 |\r\n (r1 = b64.indexOf(str.charAt(i++))) << 6 | (r2 = b64.indexOf(str.charAt(i++)));\r\n\r\n result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255)\r\n : r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255)\r\n : String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);\r\n }\r\n return result\r\n };\r\n} else {\r\n // 注意atob只能在全局对象上调用,例如:`const Base64 = {atob};Base64.atob('xxxx')`是错误的用法\r\n realAtob = atob;\r\n}\r\n\r\nfunction b64DecodeUnicode (str) {\r\n return decodeURIComponent(realAtob(str).split('').map(function (c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\r\n }).join(''))\r\n}\r\n\r\nfunction getCurrentUserInfo () {\r\n const token = ( wx).getStorageSync('uni_id_token') || '';\r\n const tokenArr = token.split('.');\r\n if (!token || tokenArr.length !== 3) {\r\n return {\r\n uid: null,\r\n role: [],\r\n permission: [],\r\n tokenExpired: 0\r\n }\r\n }\r\n let userInfo;\r\n try {\r\n userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));\r\n } catch (error) {\r\n throw new Error('获取当前用户信息出错,详细错误信息为:' + error.message)\r\n }\r\n userInfo.tokenExpired = userInfo.exp * 1000;\r\n delete userInfo.exp;\r\n delete userInfo.iat;\r\n return userInfo\r\n}\r\n\r\nfunction uniIdMixin (Vue) {\r\n Vue.prototype.uniIDHasRole = function (roleId) {\r\n const {\r\n role\r\n } = getCurrentUserInfo();\r\n return role.indexOf(roleId) > -1\r\n };\r\n Vue.prototype.uniIDHasPermission = function (permissionId) {\r\n const {\r\n permission\r\n } = getCurrentUserInfo();\r\n return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1\r\n };\r\n Vue.prototype.uniIDTokenValid = function () {\r\n const {\r\n tokenExpired\r\n } = getCurrentUserInfo();\r\n return tokenExpired > Date.now()\r\n };\r\n}\r\n\r\nconst _toString = Object.prototype.toString;\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\nfunction isFn (fn) {\r\n return typeof fn === 'function'\r\n}\r\n\r\nfunction isStr (str) {\r\n return typeof str === 'string'\r\n}\r\n\r\nfunction isPlainObject (obj) {\r\n return _toString.call(obj) === '[object Object]'\r\n}\r\n\r\nfunction hasOwn (obj, key) {\r\n return hasOwnProperty.call(obj, key)\r\n}\r\n\r\nfunction noop () {}\r\n\r\n/**\r\n * Create a cached version of a pure function.\r\n */\r\nfunction cached (fn) {\r\n const cache = Object.create(null);\r\n return function cachedFn (str) {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str))\r\n }\r\n}\r\n\r\n/**\r\n * Camelize a hyphen-delimited string.\r\n */\r\nconst camelizeRE = /-(\\w)/g;\r\nconst camelize = cached((str) => {\r\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\r\n});\r\n\r\nconst HOOKS = [\r\n 'invoke',\r\n 'success',\r\n 'fail',\r\n 'complete',\r\n 'returnValue'\r\n];\r\n\r\nconst globalInterceptors = {};\r\nconst scopedInterceptors = {};\r\n\r\nfunction mergeHook (parentVal, childVal) {\r\n const res = childVal\r\n ? parentVal\r\n ? parentVal.concat(childVal)\r\n : Array.isArray(childVal)\r\n ? childVal : [childVal]\r\n : parentVal;\r\n return res\r\n ? dedupeHooks(res)\r\n : res\r\n}\r\n\r\nfunction dedupeHooks (hooks) {\r\n const res = [];\r\n for (let i = 0; i < hooks.length; i++) {\r\n if (res.indexOf(hooks[i]) === -1) {\r\n res.push(hooks[i]);\r\n }\r\n }\r\n return res\r\n}\r\n\r\nfunction removeHook (hooks, hook) {\r\n const index = hooks.indexOf(hook);\r\n if (index !== -1) {\r\n hooks.splice(index, 1);\r\n }\r\n}\r\n\r\nfunction mergeInterceptorHook (interceptor, option) {\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n interceptor[hook] = mergeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction removeInterceptorHook (interceptor, option) {\r\n if (!interceptor || !option) {\r\n return\r\n }\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n removeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction addInterceptor (method, option) {\r\n if (typeof method === 'string' && isPlainObject(option)) {\r\n mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option);\r\n } else if (isPlainObject(method)) {\r\n mergeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction removeInterceptor (method, option) {\r\n if (typeof method === 'string') {\r\n if (isPlainObject(option)) {\r\n removeInterceptorHook(scopedInterceptors[method], option);\r\n } else {\r\n delete scopedInterceptors[method];\r\n }\r\n } else if (isPlainObject(method)) {\r\n removeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction wrapperHook (hook) {\r\n return function (data) {\r\n return hook(data) || data\r\n }\r\n}\r\n\r\nfunction isPromise (obj) {\r\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\r\n}\r\n\r\nfunction queue (hooks, data) {\r\n let promise = false;\r\n for (let i = 0; i < hooks.length; i++) {\r\n const hook = hooks[i];\r\n if (promise) {\r\n promise = Promise.resolve(wrapperHook(hook));\r\n } else {\r\n const res = hook(data);\r\n if (isPromise(res)) {\r\n promise = Promise.resolve(res);\r\n }\r\n if (res === false) {\r\n return {\r\n then () { }\r\n }\r\n }\r\n }\r\n }\r\n return promise || {\r\n then (callback) {\r\n return callback(data)\r\n }\r\n }\r\n}\r\n\r\nfunction wrapperOptions (interceptor, options = {}) {\r\n ['success', 'fail', 'complete'].forEach(name => {\r\n if (Array.isArray(interceptor[name])) {\r\n const oldCallback = options[name];\r\n options[name] = function callbackInterceptor (res) {\r\n queue(interceptor[name], res).then((res) => {\r\n /* eslint-disable no-mixed-operators */\r\n return isFn(oldCallback) && oldCallback(res) || res\r\n });\r\n };\r\n }\r\n });\r\n return options\r\n}\r\n\r\nfunction wrapperReturnValue (method, returnValue) {\r\n const returnValueHooks = [];\r\n if (Array.isArray(globalInterceptors.returnValue)) {\r\n returnValueHooks.push(...globalInterceptors.returnValue);\r\n }\r\n const interceptor = scopedInterceptors[method];\r\n if (interceptor && Array.isArray(interceptor.returnValue)) {\r\n returnValueHooks.push(...interceptor.returnValue);\r\n }\r\n returnValueHooks.forEach(hook => {\r\n returnValue = hook(returnValue) || returnValue;\r\n });\r\n return returnValue\r\n}\r\n\r\nfunction getApiInterceptorHooks (method) {\r\n const interceptor = Object.create(null);\r\n Object.keys(globalInterceptors).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = globalInterceptors[hook].slice();\r\n }\r\n });\r\n const scopedInterceptor = scopedInterceptors[method];\r\n if (scopedInterceptor) {\r\n Object.keys(scopedInterceptor).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);\r\n }\r\n });\r\n }\r\n return interceptor\r\n}\r\n\r\nfunction invokeApi (method, api, options, ...params) {\r\n const interceptor = getApiInterceptorHooks(method);\r\n if (interceptor && Object.keys(interceptor).length) {\r\n if (Array.isArray(interceptor.invoke)) {\r\n const res = queue(interceptor.invoke, options);\r\n return res.then((options) => {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n })\r\n } else {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n }\r\n }\r\n return api(options, ...params)\r\n}\r\n\r\nconst promiseInterceptor = {\r\n returnValue (res) {\r\n if (!isPromise(res)) {\r\n return res\r\n }\r\n return new Promise((resolve, reject) => {\r\n res.then(res => {\r\n if (res[0]) {\r\n reject(res[0]);\r\n } else {\r\n resolve(res[1]);\r\n }\r\n });\r\n })\r\n }\r\n};\r\n\r\nconst SYNC_API_RE =\r\n /^\\$|Window$|WindowStyle$|sendHostEvent|sendNativeEvent|restoreGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getLocale|setLocale/;\r\n\r\nconst CONTEXT_API_RE = /^create|Manager$/;\r\n\r\n// Context例外情况\r\nconst CONTEXT_API_RE_EXC = ['createBLEConnection'];\r\n\r\n// 同步例外情况\r\nconst ASYNC_API = ['createBLEConnection'];\r\n\r\nconst CALLBACK_API_RE = /^on|^off/;\r\n\r\nfunction isContextApi (name) {\r\n return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1\r\n}\r\nfunction isSyncApi (name) {\r\n return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1\r\n}\r\n\r\nfunction isCallbackApi (name) {\r\n return CALLBACK_API_RE.test(name) && name !== 'onPush'\r\n}\r\n\r\nfunction handlePromise (promise) {\r\n return promise.then(data => {\r\n return [null, data]\r\n })\r\n .catch(err => [err])\r\n}\r\n\r\nfunction shouldPromise (name) {\r\n if (\r\n isContextApi(name) ||\r\n isSyncApi(name) ||\r\n isCallbackApi(name)\r\n ) {\r\n return false\r\n }\r\n return true\r\n}\r\n\r\n/* eslint-disable no-extend-native */\r\nif (!Promise.prototype.finally) {\r\n Promise.prototype.finally = function (callback) {\r\n const promise = this.constructor;\r\n return this.then(\r\n value => promise.resolve(callback()).then(() => value),\r\n reason => promise.resolve(callback()).then(() => {\r\n throw reason\r\n })\r\n )\r\n };\r\n}\r\n\r\nfunction promisify (name, api) {\r\n if (!shouldPromise(name)) {\r\n return api\r\n }\r\n return function promiseApi (options = {}, ...params) {\r\n if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {\r\n return wrapperReturnValue(name, invokeApi(name, api, options, ...params))\r\n }\r\n return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\r\n invokeApi(name, api, Object.assign({}, options, {\r\n success: resolve,\r\n fail: reject\r\n }), ...params);\r\n })))\r\n }\r\n}\r\n\r\nconst EPS = 1e-4;\r\nconst BASE_DEVICE_WIDTH = 750;\r\nlet isIOS = false;\r\nlet deviceWidth = 0;\r\nlet deviceDPR = 0;\r\n\r\nfunction checkDeviceWidth () {\r\n const {\r\n platform,\r\n pixelRatio,\r\n windowWidth\r\n } = wx.getSystemInfoSync(); // uni=>wx runtime 编译目标是 uni 对象,内部不允许直接使用 uni\r\n\r\n deviceWidth = windowWidth;\r\n deviceDPR = pixelRatio;\r\n isIOS = platform === 'ios';\r\n}\r\n\r\nfunction upx2px (number, newDeviceWidth) {\r\n if (deviceWidth === 0) {\r\n checkDeviceWidth();\r\n }\r\n\r\n number = Number(number);\r\n if (number === 0) {\r\n return 0\r\n }\r\n let result = (number / BASE_DEVICE_WIDTH) * (newDeviceWidth || deviceWidth);\r\n if (result < 0) {\r\n result = -result;\r\n }\r\n result = Math.floor(result + EPS);\r\n if (result === 0) {\r\n if (deviceDPR === 1 || !isIOS) {\r\n result = 1;\r\n } else {\r\n result = 0.5;\r\n }\r\n }\r\n return number < 0 ? -result : result\r\n}\r\n\r\nfunction getLocale () {\r\n // 优先使用 $locale\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n if (app && app.$vm) {\r\n return app.$vm.$locale\r\n }\r\n return wx.getSystemInfoSync().language || 'zh-Hans'\r\n}\r\n\r\nfunction setLocale (locale) {\r\n const app = getApp();\r\n if (!app) {\r\n return false\r\n }\r\n const oldLocale = app.$vm.$locale;\r\n if (oldLocale !== locale) {\r\n app.$vm.$locale = locale;\r\n onLocaleChangeCallbacks.forEach((fn) => fn({\r\n locale\r\n }));\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nconst onLocaleChangeCallbacks = [];\r\nfunction onLocaleChange (fn) {\r\n if (onLocaleChangeCallbacks.indexOf(fn) === -1) {\r\n onLocaleChangeCallbacks.push(fn);\r\n }\r\n}\r\n\r\nif (typeof global !== 'undefined') {\r\n global.getLocale = getLocale;\r\n}\r\n\r\nconst interceptors = {\r\n promiseInterceptor\r\n};\r\n\r\nvar baseApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n upx2px: upx2px,\r\n getLocale: getLocale,\r\n setLocale: setLocale,\r\n onLocaleChange: onLocaleChange,\r\n addInterceptor: addInterceptor,\r\n removeInterceptor: removeInterceptor,\r\n interceptors: interceptors\r\n});\r\n\r\nfunction findExistsPageIndex (url) {\r\n const pages = getCurrentPages();\r\n let len = pages.length;\r\n while (len--) {\r\n const page = pages[len];\r\n if (page.$page && page.$page.fullPath === url) {\r\n return len\r\n }\r\n }\r\n return -1\r\n}\r\n\r\nvar redirectTo = {\r\n name (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.delta) {\r\n return 'navigateBack'\r\n }\r\n return 'redirectTo'\r\n },\r\n args (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.url) {\r\n const existsPageIndex = findExistsPageIndex(fromArgs.url);\r\n if (existsPageIndex !== -1) {\r\n const delta = getCurrentPages().length - 1 - existsPageIndex;\r\n if (delta > 0) {\r\n fromArgs.delta = delta;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nvar previewImage = {\r\n args (fromArgs) {\r\n let currentIndex = parseInt(fromArgs.current);\r\n if (isNaN(currentIndex)) {\r\n return\r\n }\r\n const urls = fromArgs.urls;\r\n if (!Array.isArray(urls)) {\r\n return\r\n }\r\n const len = urls.length;\r\n if (!len) {\r\n return\r\n }\r\n if (currentIndex < 0) {\r\n currentIndex = 0;\r\n } else if (currentIndex >= len) {\r\n currentIndex = len - 1;\r\n }\r\n if (currentIndex > 0) {\r\n fromArgs.current = urls[currentIndex];\r\n fromArgs.urls = urls.filter(\r\n (item, index) => index < currentIndex ? item !== urls[currentIndex] : true\r\n );\r\n } else {\r\n fromArgs.current = urls[0];\r\n }\r\n return {\r\n indicator: false,\r\n loop: false\r\n }\r\n }\r\n};\r\n\r\nconst UUID_KEY = '__DC_STAT_UUID';\r\nlet deviceId;\r\nfunction addUuid (result) {\r\n deviceId = deviceId || wx.getStorageSync(UUID_KEY);\r\n if (!deviceId) {\r\n deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7);\r\n wx.setStorage({\r\n key: UUID_KEY,\r\n data: deviceId\r\n });\r\n }\r\n result.deviceId = deviceId;\r\n}\r\n\r\nfunction addSafeAreaInsets (result) {\r\n if (result.safeArea) {\r\n const safeArea = result.safeArea;\r\n result.safeAreaInsets = {\r\n top: safeArea.top,\r\n left: safeArea.left,\r\n right: result.windowWidth - safeArea.right,\r\n bottom: result.windowHeight - safeArea.bottom\r\n };\r\n }\r\n}\r\n\r\nvar getSystemInfo = {\r\n returnValue: function (result) {\r\n addUuid(result);\r\n addSafeAreaInsets(result);\r\n }\r\n};\r\n\r\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};\r\nconst todos = [\r\n 'vibrate',\r\n 'preloadPage',\r\n 'unPreloadPage',\r\n 'loadSubPackage'\r\n];\r\nconst canIUses = [];\r\n\r\nconst CALLBACKS = ['success', 'fail', 'cancel', 'complete'];\r\n\r\nfunction processCallback (methodName, method, returnValue) {\r\n return function (res) {\r\n return method(processReturnValue(methodName, res, returnValue))\r\n }\r\n}\r\n\r\nfunction processArgs (methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {\r\n if (isPlainObject(fromArgs)) { // 一般 api 的参数解析\r\n const toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值\r\n if (isFn(argsOption)) {\r\n argsOption = argsOption(fromArgs, toArgs) || {};\r\n }\r\n for (const key in fromArgs) {\r\n if (hasOwn(argsOption, key)) {\r\n let keyOption = argsOption[key];\r\n if (isFn(keyOption)) {\r\n keyOption = keyOption(fromArgs[key], fromArgs, toArgs);\r\n }\r\n if (!keyOption) { // 不支持的参数\r\n console.warn(`The '${methodName}' method of platform '微信小程序' does not support option '${key}'`);\r\n } else if (isStr(keyOption)) { // 重写参数 key\r\n toArgs[keyOption] = fromArgs[key];\r\n } else if (isPlainObject(keyOption)) { // {name:newName,value:value}可重新指定参数 key:value\r\n toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;\r\n }\r\n } else if (CALLBACKS.indexOf(key) !== -1) {\r\n if (isFn(fromArgs[key])) {\r\n toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);\r\n }\r\n } else {\r\n if (!keepFromArgs) {\r\n toArgs[key] = fromArgs[key];\r\n }\r\n }\r\n }\r\n return toArgs\r\n } else if (isFn(fromArgs)) {\r\n fromArgs = processCallback(methodName, fromArgs, returnValue);\r\n }\r\n return fromArgs\r\n}\r\n\r\nfunction processReturnValue (methodName, res, returnValue, keepReturnValue = false) {\r\n if (isFn(protocols.returnValue)) { // 处理通用 returnValue\r\n res = protocols.returnValue(methodName, res);\r\n }\r\n return processArgs(methodName, res, returnValue, {}, keepReturnValue)\r\n}\r\n\r\nfunction wrapper (methodName, method) {\r\n if (hasOwn(protocols, methodName)) {\r\n const protocol = protocols[methodName];\r\n if (!protocol) { // 暂不支持的 api\r\n return function () {\r\n console.error(`Platform '微信小程序' does not support '${methodName}'.`);\r\n }\r\n }\r\n return function (arg1, arg2) { // 目前 api 最多两个参数\r\n let options = protocol;\r\n if (isFn(protocol)) {\r\n options = protocol(arg1);\r\n }\r\n\r\n arg1 = processArgs(methodName, arg1, options.args, options.returnValue);\r\n\r\n const args = [arg1];\r\n if (typeof arg2 !== 'undefined') {\r\n args.push(arg2);\r\n }\r\n if (isFn(options.name)) {\r\n methodName = options.name(arg1);\r\n } else if (isStr(options.name)) {\r\n methodName = options.name;\r\n }\r\n const returnValue = wx[methodName].apply(wx, args);\r\n if (isSyncApi(methodName)) { // 同步 api\r\n return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName))\r\n }\r\n return returnValue\r\n }\r\n }\r\n return method\r\n}\r\n\r\nconst todoApis = Object.create(null);\r\n\r\nconst TODOS = [\r\n 'onTabBarMidButtonTap',\r\n 'subscribePush',\r\n 'unsubscribePush',\r\n 'onPush',\r\n 'offPush',\r\n 'share'\r\n];\r\n\r\nfunction createTodoApi (name) {\r\n return function todoApi ({\r\n fail,\r\n complete\r\n }) {\r\n const res = {\r\n errMsg: `${name}:fail method '${name}' not supported`\r\n };\r\n isFn(fail) && fail(res);\r\n isFn(complete) && complete(res);\r\n }\r\n}\r\n\r\nTODOS.forEach(function (name) {\r\n todoApis[name] = createTodoApi(name);\r\n});\r\n\r\nvar providers = {\r\n oauth: ['weixin'],\r\n share: ['weixin'],\r\n payment: ['wxpay'],\r\n push: ['weixin']\r\n};\r\n\r\nfunction getProvider ({\r\n service,\r\n success,\r\n fail,\r\n complete\r\n}) {\r\n let res = false;\r\n if (providers[service]) {\r\n res = {\r\n errMsg: 'getProvider:ok',\r\n service,\r\n provider: providers[service]\r\n };\r\n isFn(success) && success(res);\r\n } else {\r\n res = {\r\n errMsg: 'getProvider:fail service not found'\r\n };\r\n isFn(fail) && fail(res);\r\n }\r\n isFn(complete) && complete(res);\r\n}\r\n\r\nvar extraApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n getProvider: getProvider\r\n});\r\n\r\nconst getEmitter = (function () {\r\n let Emitter;\r\n return function getUniEmitter () {\r\n if (!Emitter) {\r\n Emitter = new Vue();\r\n }\r\n return Emitter\r\n }\r\n})();\r\n\r\nfunction apply (ctx, method, args) {\r\n return ctx[method].apply(ctx, args)\r\n}\r\n\r\nfunction $on () {\r\n return apply(getEmitter(), '$on', [...arguments])\r\n}\r\nfunction $off () {\r\n return apply(getEmitter(), '$off', [...arguments])\r\n}\r\nfunction $once () {\r\n return apply(getEmitter(), '$once', [...arguments])\r\n}\r\nfunction $emit () {\r\n return apply(getEmitter(), '$emit', [...arguments])\r\n}\r\n\r\nvar eventApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n $on: $on,\r\n $off: $off,\r\n $once: $once,\r\n $emit: $emit\r\n});\r\n\r\nvar api = /*#__PURE__*/Object.freeze({\r\n __proto__: null\r\n});\r\n\r\nconst MPPage = Page;\r\nconst MPComponent = Component;\r\n\r\nconst customizeRE = /:/g;\r\n\r\nconst customize = cached((str) => {\r\n return camelize(str.replace(customizeRE, '-'))\r\n});\r\n\r\nfunction initTriggerEvent (mpInstance) {\r\n const oldTriggerEvent = mpInstance.triggerEvent;\r\n const newTriggerEvent = function (event, ...args) {\r\n return oldTriggerEvent.apply(mpInstance, [customize(event), ...args])\r\n };\r\n try {\r\n // 京东小程序 triggerEvent 为只读\r\n mpInstance.triggerEvent = newTriggerEvent;\r\n } catch (error) {\r\n mpInstance._triggerEvent = newTriggerEvent;\r\n }\r\n}\r\n\r\nfunction initHook (name, options, isComponent) {\r\n const oldHook = options[name];\r\n if (!oldHook) {\r\n options[name] = function () {\r\n initTriggerEvent(this);\r\n };\r\n } else {\r\n options[name] = function (...args) {\r\n initTriggerEvent(this);\r\n return oldHook.apply(this, args)\r\n };\r\n }\r\n}\r\nif (!MPPage.__$wrappered) {\r\n MPPage.__$wrappered = true;\r\n Page = function (options = {}) {\r\n initHook('onLoad', options);\r\n return MPPage(options)\r\n };\r\n Page.after = MPPage.after;\r\n\r\n Component = function (options = {}) {\r\n initHook('created', options);\r\n return MPComponent(options)\r\n };\r\n}\r\n\r\nconst PAGE_EVENT_HOOKS = [\r\n 'onPullDownRefresh',\r\n 'onReachBottom',\r\n 'onAddToFavorites',\r\n 'onShareTimeline',\r\n 'onShareAppMessage',\r\n 'onPageScroll',\r\n 'onResize',\r\n 'onTabItemTap'\r\n];\r\n\r\nfunction initMocks (vm, mocks) {\r\n const mpInstance = vm.$mp[vm.mpType];\r\n mocks.forEach(mock => {\r\n if (hasOwn(mpInstance, mock)) {\r\n vm[mock] = mpInstance[mock];\r\n }\r\n });\r\n}\r\n\r\nfunction hasHook (hook, vueOptions) {\r\n if (!vueOptions) {\r\n return true\r\n }\r\n\r\n if (Vue.options && Array.isArray(Vue.options[hook])) {\r\n return true\r\n }\r\n\r\n vueOptions = vueOptions.default || vueOptions;\r\n\r\n if (isFn(vueOptions)) {\r\n if (isFn(vueOptions.extendOptions[hook])) {\r\n return true\r\n }\r\n if (vueOptions.super &&\r\n vueOptions.super.options &&\r\n Array.isArray(vueOptions.super.options[hook])) {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n if (isFn(vueOptions[hook])) {\r\n return true\r\n }\r\n const mixins = vueOptions.mixins;\r\n if (Array.isArray(mixins)) {\r\n return !!mixins.find(mixin => hasHook(hook, mixin))\r\n }\r\n}\r\n\r\nfunction initHooks (mpOptions, hooks, vueOptions) {\r\n hooks.forEach(hook => {\r\n if (hasHook(hook, vueOptions)) {\r\n mpOptions[hook] = function (args) {\r\n return this.$vm && this.$vm.__call_hook(hook, args)\r\n };\r\n }\r\n });\r\n}\r\n\r\nfunction initVueComponent (Vue, vueOptions) {\r\n vueOptions = vueOptions.default || vueOptions;\r\n let VueComponent;\r\n if (isFn(vueOptions)) {\r\n VueComponent = vueOptions;\r\n } else {\r\n VueComponent = Vue.extend(vueOptions);\r\n }\r\n vueOptions = VueComponent.options;\r\n return [VueComponent, vueOptions]\r\n}\r\n\r\nfunction initSlots (vm, vueSlots) {\r\n if (Array.isArray(vueSlots) && vueSlots.length) {\r\n const $slots = Object.create(null);\r\n vueSlots.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n vm.$scopedSlots = vm.$slots = $slots;\r\n }\r\n}\r\n\r\nfunction initVueIds (vueIds, mpInstance) {\r\n vueIds = (vueIds || '').split(',');\r\n const len = vueIds.length;\r\n\r\n if (len === 1) {\r\n mpInstance._$vueId = vueIds[0];\r\n } else if (len === 2) {\r\n mpInstance._$vueId = vueIds[0];\r\n mpInstance._$vuePid = vueIds[1];\r\n }\r\n}\r\n\r\nfunction initData (vueOptions, context) {\r\n let data = vueOptions.data || {};\r\n const methods = vueOptions.methods || {};\r\n\r\n if (typeof data === 'function') {\r\n try {\r\n data = data.call(context); // 支持 Vue.prototype 上挂的数据\r\n } catch (e) {\r\n if (process.env.VUE_APP_DEBUG) {\r\n console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);\r\n }\r\n }\r\n } else {\r\n try {\r\n // 对 data 格式化\r\n data = JSON.parse(JSON.stringify(data));\r\n } catch (e) {}\r\n }\r\n\r\n if (!isPlainObject(data)) {\r\n data = {};\r\n }\r\n\r\n Object.keys(methods).forEach(methodName => {\r\n if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) {\r\n data[methodName] = methods[methodName];\r\n }\r\n });\r\n\r\n return data\r\n}\r\n\r\nconst PROP_TYPES = [String, Number, Boolean, Object, Array, null];\r\n\r\nfunction createObserver (name) {\r\n return function observer (newVal, oldVal) {\r\n if (this.$vm) {\r\n this.$vm[name] = newVal; // 为了触发其他非 render watcher\r\n }\r\n }\r\n}\r\n\r\nfunction initBehaviors (vueOptions, initBehavior) {\r\n const vueBehaviors = vueOptions.behaviors;\r\n const vueExtends = vueOptions.extends;\r\n const vueMixins = vueOptions.mixins;\r\n\r\n let vueProps = vueOptions.props;\r\n\r\n if (!vueProps) {\r\n vueOptions.props = vueProps = [];\r\n }\r\n\r\n const behaviors = [];\r\n if (Array.isArray(vueBehaviors)) {\r\n vueBehaviors.forEach(behavior => {\r\n behaviors.push(behavior.replace('uni://', `${\"wx\"}://`));\r\n if (behavior === 'uni://form-field') {\r\n if (Array.isArray(vueProps)) {\r\n vueProps.push('name');\r\n vueProps.push('value');\r\n } else {\r\n vueProps.name = {\r\n type: String,\r\n default: ''\r\n };\r\n vueProps.value = {\r\n type: [String, Number, Boolean, Array, Object, Date],\r\n default: ''\r\n };\r\n }\r\n }\r\n });\r\n }\r\n if (isPlainObject(vueExtends) && vueExtends.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueExtends.props, true)\r\n })\r\n );\r\n }\r\n if (Array.isArray(vueMixins)) {\r\n vueMixins.forEach(vueMixin => {\r\n if (isPlainObject(vueMixin) && vueMixin.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueMixin.props, true)\r\n })\r\n );\r\n }\r\n });\r\n }\r\n return behaviors\r\n}\r\n\r\nfunction parsePropType (key, type, defaultValue, file) {\r\n // [String]=>String\r\n if (Array.isArray(type) && type.length === 1) {\r\n return type[0]\r\n }\r\n return type\r\n}\r\n\r\nfunction initProperties (props, isBehavior = false, file = '') {\r\n const properties = {};\r\n if (!isBehavior) {\r\n properties.vueId = {\r\n type: String,\r\n value: ''\r\n };\r\n // 用于字节跳动小程序模拟抽象节点\r\n properties.generic = {\r\n type: Object,\r\n value: null\r\n };\r\n // scopedSlotsCompiler auto\r\n properties.scopedSlotsCompiler = {\r\n type: String,\r\n value: ''\r\n };\r\n properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots\r\n type: null,\r\n value: [],\r\n observer: function (newVal, oldVal) {\r\n const $slots = Object.create(null);\r\n newVal.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n this.setData({\r\n $slots\r\n });\r\n }\r\n };\r\n }\r\n if (Array.isArray(props)) { // ['title']\r\n props.forEach(key => {\r\n properties[key] = {\r\n type: null,\r\n observer: createObserver(key)\r\n };\r\n });\r\n } else if (isPlainObject(props)) { // {title:{type:String,default:''},content:String}\r\n Object.keys(props).forEach(key => {\r\n const opts = props[key];\r\n if (isPlainObject(opts)) { // title:{type:String,default:''}\r\n let value = opts.default;\r\n if (isFn(value)) {\r\n value = value();\r\n }\r\n\r\n opts.type = parsePropType(key, opts.type);\r\n\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null,\r\n value,\r\n observer: createObserver(key)\r\n };\r\n } else { // content:String\r\n const type = parsePropType(key, opts);\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(type) !== -1 ? type : null,\r\n observer: createObserver(key)\r\n };\r\n }\r\n });\r\n }\r\n return properties\r\n}\r\n\r\nfunction wrapper$1 (event) {\r\n // TODO 又得兼容 mpvue 的 mp 对象\r\n try {\r\n event.mp = JSON.parse(JSON.stringify(event));\r\n } catch (e) {}\r\n\r\n event.stopPropagation = noop;\r\n event.preventDefault = noop;\r\n\r\n event.target = event.target || {};\r\n\r\n if (!hasOwn(event, 'detail')) {\r\n event.detail = {};\r\n }\r\n\r\n if (hasOwn(event, 'markerId')) {\r\n event.detail = typeof event.detail === 'object' ? event.detail : {};\r\n event.detail.markerId = event.markerId;\r\n }\r\n\r\n if (isPlainObject(event.detail)) {\r\n event.target = Object.assign({}, event.target, event.detail);\r\n }\r\n\r\n return event\r\n}\r\n\r\nfunction getExtraValue (vm, dataPathsArray) {\r\n let context = vm;\r\n dataPathsArray.forEach(dataPathArray => {\r\n const dataPath = dataPathArray[0];\r\n const value = dataPathArray[2];\r\n if (dataPath || typeof value !== 'undefined') { // ['','',index,'disable']\r\n const propPath = dataPathArray[1];\r\n const valuePath = dataPathArray[3];\r\n\r\n let vFor;\r\n if (Number.isInteger(dataPath)) {\r\n vFor = dataPath;\r\n } else if (!dataPath) {\r\n vFor = context;\r\n } else if (typeof dataPath === 'string' && dataPath) {\r\n if (dataPath.indexOf('#s#') === 0) {\r\n vFor = dataPath.substr(3);\r\n } else {\r\n vFor = vm.__get_value(dataPath, context);\r\n }\r\n }\r\n\r\n if (Number.isInteger(vFor)) {\r\n context = value;\r\n } else if (!propPath) {\r\n context = vFor[value];\r\n } else {\r\n if (Array.isArray(vFor)) {\r\n context = vFor.find(vForItem => {\r\n return vm.__get_value(propPath, vForItem) === value\r\n });\r\n } else if (isPlainObject(vFor)) {\r\n context = Object.keys(vFor).find(vForKey => {\r\n return vm.__get_value(propPath, vFor[vForKey]) === value\r\n });\r\n } else {\r\n console.error('v-for 暂不支持循环数据:', vFor);\r\n }\r\n }\r\n\r\n if (valuePath) {\r\n context = vm.__get_value(valuePath, context);\r\n }\r\n }\r\n });\r\n return context\r\n}\r\n\r\nfunction processEventExtra (vm, extra, event) {\r\n const extraObj = {};\r\n\r\n if (Array.isArray(extra) && extra.length) {\r\n /**\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *'test'\r\n */\r\n extra.forEach((dataPath, index) => {\r\n if (typeof dataPath === 'string') {\r\n if (!dataPath) { // model,prop.sync\r\n extraObj['$' + index] = vm;\r\n } else {\r\n if (dataPath === '$event') { // $event\r\n extraObj['$' + index] = event;\r\n } else if (dataPath === 'arguments') {\r\n if (event.detail && event.detail.__args__) {\r\n extraObj['$' + index] = event.detail.__args__;\r\n } else {\r\n extraObj['$' + index] = [event];\r\n }\r\n } else if (dataPath.indexOf('$event.') === 0) { // $event.target.value\r\n extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event);\r\n } else {\r\n extraObj['$' + index] = vm.__get_value(dataPath);\r\n }\r\n }\r\n } else {\r\n extraObj['$' + index] = getExtraValue(vm, dataPath);\r\n }\r\n });\r\n }\r\n\r\n return extraObj\r\n}\r\n\r\nfunction getObjByArray (arr) {\r\n const obj = {};\r\n for (let i = 1; i < arr.length; i++) {\r\n const element = arr[i];\r\n obj[element[0]] = element[1];\r\n }\r\n return obj\r\n}\r\n\r\nfunction processEventArgs (vm, event, args = [], extra = [], isCustom, methodName) {\r\n let isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象\r\n if (isCustom) { // 自定义事件\r\n isCustomMPEvent = event.currentTarget &&\r\n event.currentTarget.dataset &&\r\n event.currentTarget.dataset.comType === 'wx';\r\n if (!args.length) { // 无参数,直接传入 event 或 detail 数组\r\n if (isCustomMPEvent) {\r\n return [event]\r\n }\r\n return event.detail.__args__ || event.detail\r\n }\r\n }\r\n\r\n const extraObj = processEventExtra(vm, extra, event);\r\n\r\n const ret = [];\r\n args.forEach(arg => {\r\n if (arg === '$event') {\r\n if (methodName === '__set_model' && !isCustom) { // input v-model value\r\n ret.push(event.target.value);\r\n } else {\r\n if (isCustom && !isCustomMPEvent) {\r\n ret.push(event.detail.__args__[0]);\r\n } else { // wxcomponent 组件或内置组件\r\n ret.push(event);\r\n }\r\n }\r\n } else {\r\n if (Array.isArray(arg) && arg[0] === 'o') {\r\n ret.push(getObjByArray(arg));\r\n } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) {\r\n ret.push(extraObj[arg]);\r\n } else {\r\n ret.push(arg);\r\n }\r\n }\r\n });\r\n\r\n return ret\r\n}\r\n\r\nconst ONCE = '~';\r\nconst CUSTOM = '^';\r\n\r\nfunction isMatchEventType (eventType, optType) {\r\n return (eventType === optType) ||\r\n (\r\n optType === 'regionchange' &&\r\n (\r\n eventType === 'begin' ||\r\n eventType === 'end'\r\n )\r\n )\r\n}\r\n\r\nfunction getContextVm (vm) {\r\n let $parent = vm.$parent;\r\n // 父组件是 scoped slots 或者其他自定义组件时继续查找\r\n while ($parent && $parent.$parent && ($parent.$options.generic || $parent.$parent.$options.generic || $parent.$scope._$vuePid)) {\r\n $parent = $parent.$parent;\r\n }\r\n return $parent && $parent.$parent\r\n}\r\n\r\nfunction handleEvent (event) {\r\n event = wrapper$1(event);\r\n\r\n // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]]\r\n const dataset = (event.currentTarget || event.target).dataset;\r\n if (!dataset) {\r\n return console.warn('事件信息不存在')\r\n }\r\n const eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰\r\n if (!eventOpts) {\r\n return console.warn('事件信息不存在')\r\n }\r\n\r\n // [['handle',[1,2,a]],['handle1',[1,2,a]]]\r\n const eventType = event.type;\r\n\r\n const ret = [];\r\n\r\n eventOpts.forEach(eventOpt => {\r\n let type = eventOpt[0];\r\n const eventsArray = eventOpt[1];\r\n\r\n const isCustom = type.charAt(0) === CUSTOM;\r\n type = isCustom ? type.slice(1) : type;\r\n const isOnce = type.charAt(0) === ONCE;\r\n type = isOnce ? type.slice(1) : type;\r\n\r\n if (eventsArray && isMatchEventType(eventType, type)) {\r\n eventsArray.forEach(eventArray => {\r\n const methodName = eventArray[0];\r\n if (methodName) {\r\n let handlerCtx = this.$vm;\r\n if (handlerCtx.$options.generic) { // mp-weixin,mp-toutiao 抽象节点模拟 scoped slots\r\n handlerCtx = getContextVm(handlerCtx) || handlerCtx;\r\n }\r\n if (methodName === '$emit') {\r\n handlerCtx.$emit.apply(handlerCtx,\r\n processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n ));\r\n return\r\n }\r\n const handler = handlerCtx[methodName];\r\n if (!isFn(handler)) {\r\n throw new Error(` _vm.${methodName} is not a function`)\r\n }\r\n if (isOnce) {\r\n if (handler.once) {\r\n return\r\n }\r\n handler.once = true;\r\n }\r\n let params = processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n );\r\n params = Array.isArray(params) ? params : [];\r\n // 参数尾部增加原始事件对象用于复杂表达式内获取额外数据\r\n if (/=\\s*\\S+\\.eventParams\\s*\\|\\|\\s*\\S+\\[['\"]event-params['\"]\\]/.test(handler.toString())) {\r\n // eslint-disable-next-line no-sparse-arrays\r\n params = params.concat([, , , , , , , , , , event]);\r\n }\r\n ret.push(handler.apply(handlerCtx, params));\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (\r\n eventType === 'input' &&\r\n ret.length === 1 &&\r\n typeof ret[0] !== 'undefined'\r\n ) {\r\n return ret[0]\r\n }\r\n}\r\n\r\nconst messages = {};\r\n\r\nlet locale;\r\n\r\n{\r\n locale = wx.getSystemInfoSync().language;\r\n}\r\n\r\nfunction initI18nMessages () {\r\n if (!isEnableLocale()) {\r\n return\r\n }\r\n const localeKeys = Object.keys(__uniConfig.locales);\r\n if (localeKeys.length) {\r\n localeKeys.forEach((locale) => {\r\n const curMessages = messages[locale];\r\n const userMessages = __uniConfig.locales[locale];\r\n if (curMessages) {\r\n Object.assign(curMessages, userMessages);\r\n } else {\r\n messages[locale] = userMessages;\r\n }\r\n });\r\n }\r\n}\r\n\r\ninitI18nMessages();\r\n\r\nconst i18n = initVueI18n(\r\n locale,\r\n {}\r\n);\r\nconst t = i18n.t;\r\nconst i18nMixin = (i18n.mixin = {\r\n beforeCreate () {\r\n const unwatch = i18n.i18n.watchLocale(() => {\r\n this.$forceUpdate();\r\n });\r\n this.$once('hook:beforeDestroy', function () {\r\n unwatch();\r\n });\r\n },\r\n methods: {\r\n $$t (key, values) {\r\n return t(key, values)\r\n }\r\n }\r\n});\r\nconst setLocale$1 = i18n.setLocale;\r\nconst getLocale$1 = i18n.getLocale;\r\n\r\nfunction initAppLocale (Vue, appVm, locale) {\r\n const state = Vue.observable({\r\n locale: locale || i18n.getLocale()\r\n });\r\n const localeWatchers = [];\r\n appVm.$watchLocale = fn => {\r\n localeWatchers.push(fn);\r\n };\r\n Object.defineProperty(appVm, '$locale', {\r\n get () {\r\n return state.locale\r\n },\r\n set (v) {\r\n state.locale = v;\r\n localeWatchers.forEach(watch => watch(v));\r\n }\r\n });\r\n}\r\n\r\nfunction isEnableLocale () {\r\n return typeof __uniConfig !== 'undefined' && __uniConfig.locales && !!Object.keys(__uniConfig.locales).length\r\n}\r\n\r\n// export function initI18n() {\r\n// const localeKeys = Object.keys(__uniConfig.locales || {})\r\n// if (localeKeys.length) {\r\n// localeKeys.forEach((locale) =>\r\n// i18n.add(locale, __uniConfig.locales[locale])\r\n// )\r\n// }\r\n// }\r\n\r\nconst eventChannels = {};\r\n\r\nconst eventChannelStack = [];\r\n\r\nfunction getEventChannel (id) {\r\n if (id) {\r\n const eventChannel = eventChannels[id];\r\n delete eventChannels[id];\r\n return eventChannel\r\n }\r\n return eventChannelStack.shift()\r\n}\r\n\r\nconst hooks = [\r\n 'onShow',\r\n 'onHide',\r\n 'onError',\r\n 'onPageNotFound',\r\n 'onThemeChange',\r\n 'onUnhandledRejection'\r\n];\r\n\r\nfunction initEventChannel () {\r\n Vue.prototype.getOpenerEventChannel = function () {\r\n // 微信小程序使用自身getOpenerEventChannel\r\n {\r\n return this.$scope.getOpenerEventChannel()\r\n }\r\n };\r\n const callHook = Vue.prototype.__call_hook;\r\n Vue.prototype.__call_hook = function (hook, args) {\r\n if (hook === 'onLoad' && args && args.__id__) {\r\n this.__eventChannel__ = getEventChannel(args.__id__);\r\n delete args.__id__;\r\n }\r\n return callHook.call(this, hook, args)\r\n };\r\n}\r\n\r\nfunction initScopedSlotsParams () {\r\n const center = {};\r\n const parents = {};\r\n\r\n Vue.prototype.$hasScopedSlotsParams = function (vueId) {\r\n const has = center[vueId];\r\n if (!has) {\r\n parents[vueId] = this;\r\n this.$on('hook:destroyed', () => {\r\n delete parents[vueId];\r\n });\r\n }\r\n return has\r\n };\r\n\r\n Vue.prototype.$getScopedSlotsParams = function (vueId, name, key) {\r\n const data = center[vueId];\r\n if (data) {\r\n const object = data[name] || {};\r\n return key ? object[key] : object\r\n } else {\r\n parents[vueId] = this;\r\n this.$on('hook:destroyed', () => {\r\n delete parents[vueId];\r\n });\r\n }\r\n };\r\n\r\n Vue.prototype.$setScopedSlotsParams = function (name, value) {\r\n const vueIds = this.$options.propsData.vueId;\r\n if (vueIds) {\r\n const vueId = vueIds.split(',')[0];\r\n const object = center[vueId] = center[vueId] || {};\r\n object[name] = value;\r\n if (parents[vueId]) {\r\n parents[vueId].$forceUpdate();\r\n }\r\n }\r\n };\r\n\r\n Vue.mixin({\r\n destroyed () {\r\n const propsData = this.$options.propsData;\r\n const vueId = propsData && propsData.vueId;\r\n if (vueId) {\r\n delete center[vueId];\r\n delete parents[vueId];\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction parseBaseApp (vm, {\r\n mocks,\r\n initRefs\r\n}) {\r\n initEventChannel();\r\n {\r\n initScopedSlotsParams();\r\n }\r\n if (vm.$options.store) {\r\n Vue.prototype.$store = vm.$options.store;\r\n }\r\n uniIdMixin(Vue);\r\n\r\n Vue.prototype.mpHost = \"mp-weixin\";\r\n\r\n Vue.mixin({\r\n beforeCreate () {\r\n if (!this.$options.mpType) {\r\n return\r\n }\r\n\r\n this.mpType = this.$options.mpType;\r\n\r\n this.$mp = {\r\n data: {},\r\n [this.mpType]: this.$options.mpInstance\r\n };\r\n\r\n this.$scope = this.$options.mpInstance;\r\n\r\n delete this.$options.mpType;\r\n delete this.$options.mpInstance;\r\n if (this.mpType === 'page' && typeof getApp === 'function') { // hack vue-i18n\r\n const app = getApp();\r\n if (app.$vm && app.$vm.$i18n) {\r\n this._i18n = app.$vm.$i18n;\r\n }\r\n }\r\n if (this.mpType !== 'app') {\r\n initRefs(this);\r\n initMocks(this, mocks);\r\n }\r\n }\r\n });\r\n\r\n const appOptions = {\r\n onLaunch (args) {\r\n if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前\r\n return\r\n }\r\n {\r\n if (wx.canIUse && !wx.canIUse('nextTick')) { // 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断\r\n console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上');\r\n }\r\n }\r\n\r\n this.$vm = vm;\r\n\r\n this.$vm.$mp = {\r\n app: this\r\n };\r\n\r\n this.$vm.$scope = this;\r\n // vm 上也挂载 globalData\r\n this.$vm.globalData = this.globalData;\r\n\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted', args);\r\n\r\n this.$vm.__call_hook('onLaunch', args);\r\n }\r\n };\r\n\r\n // 兼容旧版本 globalData\r\n appOptions.globalData = vm.$options.globalData || {};\r\n // 将 methods 中的方法挂在 getApp() 中\r\n const methods = vm.$options.methods;\r\n if (methods) {\r\n Object.keys(methods).forEach(name => {\r\n appOptions[name] = methods[name];\r\n });\r\n }\r\n\r\n initAppLocale(Vue, vm, wx.getSystemInfoSync().language || 'zh-Hans');\r\n\r\n initHooks(appOptions, hooks);\r\n\r\n return appOptions\r\n}\r\n\r\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\r\n\r\nfunction findVmByVueId (vm, vuePid) {\r\n const $children = vm.$children;\r\n // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n const childVm = $children[i];\r\n if (childVm.$scope._$vueId === vuePid) {\r\n return childVm\r\n }\r\n }\r\n // 反向递归查找\r\n let parentVm;\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n parentVm = findVmByVueId($children[i], vuePid);\r\n if (parentVm) {\r\n return parentVm\r\n }\r\n }\r\n}\r\n\r\nfunction initBehavior (options) {\r\n return Behavior(options)\r\n}\r\n\r\nfunction isPage () {\r\n return !!this.route\r\n}\r\n\r\nfunction initRelation (detail) {\r\n this.triggerEvent('__l', detail);\r\n}\r\n\r\nfunction selectAllComponents (mpInstance, selector, $refs) {\r\n const components = mpInstance.selectAllComponents(selector);\r\n components.forEach(component => {\r\n const ref = component.dataset.ref;\r\n $refs[ref] = component.$vm || component;\r\n {\r\n if (component.dataset.vueGeneric === 'scoped') {\r\n component.selectAllComponents('.scoped-ref').forEach(scopedComponent => {\r\n selectAllComponents(scopedComponent, selector, $refs);\r\n });\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction initRefs (vm) {\r\n const mpInstance = vm.$scope;\r\n Object.defineProperty(vm, '$refs', {\r\n get () {\r\n const $refs = {};\r\n selectAllComponents(mpInstance, '.vue-ref', $refs);\r\n // TODO 暂不考虑 for 中的 scoped\r\n const forComponents = mpInstance.selectAllComponents('.vue-ref-in-for');\r\n forComponents.forEach(component => {\r\n const ref = component.dataset.ref;\r\n if (!$refs[ref]) {\r\n $refs[ref] = [];\r\n }\r\n $refs[ref].push(component.$vm || component);\r\n });\r\n return $refs\r\n }\r\n });\r\n}\r\n\r\nfunction handleLink (event) {\r\n const {\r\n vuePid,\r\n vueOptions\r\n } = event.detail || event.value; // detail 是微信,value 是百度(dipatch)\r\n\r\n let parentVm;\r\n\r\n if (vuePid) {\r\n parentVm = findVmByVueId(this.$vm, vuePid);\r\n }\r\n\r\n if (!parentVm) {\r\n parentVm = this.$vm;\r\n }\r\n\r\n vueOptions.parent = parentVm;\r\n}\r\n\r\nfunction parseApp (vm) {\r\n return parseBaseApp(vm, {\r\n mocks,\r\n initRefs\r\n })\r\n}\r\n\r\nfunction createApp (vm) {\r\n App(parseApp(vm));\r\n return vm\r\n}\r\n\r\nconst encodeReserveRE = /[!'()*]/g;\r\nconst encodeReserveReplacer = c => '%' + c.charCodeAt(0).toString(16);\r\nconst commaRE = /%2C/g;\r\n\r\n// fixed encodeURIComponent which is more conformant to RFC3986:\r\n// - escapes [!'()*]\r\n// - preserve commas\r\nconst encode = str => encodeURIComponent(str)\r\n .replace(encodeReserveRE, encodeReserveReplacer)\r\n .replace(commaRE, ',');\r\n\r\nfunction stringifyQuery (obj, encodeStr = encode) {\r\n const res = obj ? Object.keys(obj).map(key => {\r\n const val = obj[key];\r\n\r\n if (val === undefined) {\r\n return ''\r\n }\r\n\r\n if (val === null) {\r\n return encodeStr(key)\r\n }\r\n\r\n if (Array.isArray(val)) {\r\n const result = [];\r\n val.forEach(val2 => {\r\n if (val2 === undefined) {\r\n return\r\n }\r\n if (val2 === null) {\r\n result.push(encodeStr(key));\r\n } else {\r\n result.push(encodeStr(key) + '=' + encodeStr(val2));\r\n }\r\n });\r\n return result.join('&')\r\n }\r\n\r\n return encodeStr(key) + '=' + encodeStr(val)\r\n }).filter(x => x.length > 0).join('&') : null;\r\n return res ? `?${res}` : ''\r\n}\r\n\r\nfunction parseBaseComponent (vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n} = {}) {\r\n const [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);\r\n\r\n const options = {\r\n multipleSlots: true,\r\n addGlobalClass: true,\r\n ...(vueOptions.options || {})\r\n };\r\n\r\n {\r\n // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项\r\n if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) {\r\n Object.assign(options, vueOptions['mp-weixin'].options);\r\n }\r\n }\r\n\r\n const componentOptions = {\r\n options,\r\n data: initData(vueOptions, Vue.prototype),\r\n behaviors: initBehaviors(vueOptions, initBehavior),\r\n properties: initProperties(vueOptions.props, false, vueOptions.__file),\r\n lifetimes: {\r\n attached () {\r\n const properties = this.properties;\r\n\r\n const options = {\r\n mpType: isPage.call(this) ? 'page' : 'component',\r\n mpInstance: this,\r\n propsData: properties\r\n };\r\n\r\n initVueIds(properties.vueId, this);\r\n\r\n // 处理父子关系\r\n initRelation.call(this, {\r\n vuePid: this._$vuePid,\r\n vueOptions: options\r\n });\r\n\r\n // 初始化 vue 实例\r\n this.$vm = new VueComponent(options);\r\n\r\n // 处理$slots,$scopedSlots(暂不支持动态变化$slots)\r\n initSlots(this.$vm, properties.vueSlots);\r\n\r\n // 触发首次 setData\r\n this.$vm.$mount();\r\n },\r\n ready () {\r\n // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发\r\n // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800\r\n if (this.$vm) {\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted');\r\n this.$vm.__call_hook('onReady');\r\n }\r\n },\r\n detached () {\r\n this.$vm && this.$vm.$destroy();\r\n }\r\n },\r\n pageLifetimes: {\r\n show (args) {\r\n this.$vm && this.$vm.__call_hook('onPageShow', args);\r\n },\r\n hide () {\r\n this.$vm && this.$vm.__call_hook('onPageHide');\r\n },\r\n resize (size) {\r\n this.$vm && this.$vm.__call_hook('onPageResize', size);\r\n }\r\n },\r\n methods: {\r\n __l: handleLink,\r\n __e: handleEvent\r\n }\r\n };\r\n // externalClasses\r\n if (vueOptions.externalClasses) {\r\n componentOptions.externalClasses = vueOptions.externalClasses;\r\n }\r\n\r\n if (Array.isArray(vueOptions.wxsCallMethods)) {\r\n vueOptions.wxsCallMethods.forEach(callMethod => {\r\n componentOptions.methods[callMethod] = function (args) {\r\n return this.$vm[callMethod](args)\r\n };\r\n });\r\n }\r\n\r\n if (isPage) {\r\n return componentOptions\r\n }\r\n return [componentOptions, VueComponent]\r\n}\r\n\r\nfunction parseComponent (vueComponentOptions) {\r\n return parseBaseComponent(vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n })\r\n}\r\n\r\nconst hooks$1 = [\r\n 'onShow',\r\n 'onHide',\r\n 'onUnload'\r\n];\r\n\r\nhooks$1.push(...PAGE_EVENT_HOOKS);\r\n\r\nfunction parseBasePage (vuePageOptions, {\r\n isPage,\r\n initRelation\r\n}) {\r\n const pageOptions = parseComponent(vuePageOptions);\r\n\r\n initHooks(pageOptions.methods, hooks$1, vuePageOptions);\r\n\r\n pageOptions.methods.onLoad = function (query) {\r\n this.options = query;\r\n const copyQuery = Object.assign({}, query);\r\n delete copyQuery.__id__;\r\n this.$page = {\r\n fullPath: '/' + (this.route || this.is) + stringifyQuery(copyQuery)\r\n };\r\n this.$vm.$mp.query = query; // 兼容 mpvue\r\n this.$vm.__call_hook('onLoad', query);\r\n };\r\n\r\n return pageOptions\r\n}\r\n\r\nfunction parsePage (vuePageOptions) {\r\n return parseBasePage(vuePageOptions, {\r\n isPage,\r\n initRelation\r\n })\r\n}\r\n\r\nfunction createPage (vuePageOptions) {\r\n {\r\n return Component(parsePage(vuePageOptions))\r\n }\r\n}\r\n\r\nfunction createComponent (vueOptions) {\r\n {\r\n return Component(parseComponent(vueOptions))\r\n }\r\n}\r\n\r\nfunction createSubpackageApp (vm) {\r\n const appOptions = parseApp(vm);\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n vm.$scope = app;\r\n const globalData = app.globalData;\r\n if (globalData) {\r\n Object.keys(appOptions.globalData).forEach(name => {\r\n if (!hasOwn(globalData, name)) {\r\n globalData[name] = appOptions.globalData[name];\r\n }\r\n });\r\n }\r\n Object.keys(appOptions).forEach(name => {\r\n if (!hasOwn(app, name)) {\r\n app[name] = appOptions[name];\r\n }\r\n });\r\n if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n wx.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\nfunction createPlugin (vm) {\r\n const appOptions = parseApp(vm);\r\n if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n wx.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\ntodos.forEach(todoApi => {\r\n protocols[todoApi] = false;\r\n});\r\n\r\ncanIUses.forEach(canIUseApi => {\r\n const apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name\r\n : canIUseApi;\r\n if (!wx.canIUse(apiName)) {\r\n protocols[canIUseApi] = false;\r\n }\r\n});\r\n\r\nlet uni = {};\r\n\r\nif (typeof Proxy !== 'undefined' && \"mp-weixin\" !== 'app-plus') {\r\n uni = new Proxy({}, {\r\n get (target, name) {\r\n if (hasOwn(target, name)) {\r\n return target[name]\r\n }\r\n if (baseApi[name]) {\r\n return baseApi[name]\r\n }\r\n if (api[name]) {\r\n return promisify(name, api[name])\r\n }\r\n {\r\n if (extraApi[name]) {\r\n return promisify(name, extraApi[name])\r\n }\r\n if (todoApis[name]) {\r\n return promisify(name, todoApis[name])\r\n }\r\n }\r\n if (eventApi[name]) {\r\n return eventApi[name]\r\n }\r\n if (!hasOwn(wx, name) && !hasOwn(protocols, name)) {\r\n return\r\n }\r\n return promisify(name, wrapper(name, wx[name]))\r\n },\r\n set (target, name, value) {\r\n target[name] = value;\r\n return true\r\n }\r\n });\r\n} else {\r\n Object.keys(baseApi).forEach(name => {\r\n uni[name] = baseApi[name];\r\n });\r\n\r\n {\r\n Object.keys(todoApis).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n Object.keys(extraApi).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n }\r\n\r\n Object.keys(eventApi).forEach(name => {\r\n uni[name] = eventApi[name];\r\n });\r\n\r\n Object.keys(api).forEach(name => {\r\n uni[name] = promisify(name, api[name]);\r\n });\r\n\r\n Object.keys(wx).forEach(name => {\r\n if (hasOwn(wx, name) || hasOwn(protocols, name)) {\r\n uni[name] = promisify(name, wrapper(name, wx[name]));\r\n }\r\n });\r\n}\r\n\r\nwx.createApp = createApp;\r\nwx.createPage = createPage;\r\nwx.createComponent = createComponent;\r\nwx.createSubpackageApp = createSubpackageApp;\r\nwx.createPlugin = createPlugin;\r\n\r\nvar uni$1 = uni;\r\n\r\nexport default uni$1;\r\nexport { createApp, createComponent, createPage, createPlugin, createSubpackageApp };\r\n","/* 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","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1652344852329\n var cssReload = require(\"D:/360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n ","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1652344852488\n var cssReload = require(\"D:/360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n ","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1652344694459\n var cssReload = require(\"D:/360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n ","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1652344694423\n var cssReload = require(\"D:/360Downloads/Software/HBuilderX.3.3.13.20220314/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n ","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport actions from './actions.js'\r\nVue.use(Vuex)\r\nexport default new Vuex.Store({\r\n // state: 存储基本数据\r\n state: {\r\n user: {\r\n headimg: null,\r\n name: \"\",\r\n nickname: \"\",\r\n targetweight: 0, //目标体重\r\n firstweight: 0, //初始体重\r\n weight: 0,\r\n birthday: \"\",\r\n height: 0,\r\n age: \"0\",\r\n sex: 0,\r\n familyid: 0,\r\n mage: \"\",\r\n firstresulttime: \"\"\r\n },\r\n MeasureResult: {},\r\n isedit: false,\r\n isDrawe: false,\r\n isConnected: false,\r\n isBluetoothTyle: false,\r\n configBox: {},\r\n familayList: [],\r\n historyList: [],\r\n Banner: [],\r\n Trend: {},\r\n TrendPk: {},\r\n isTarget: false,\r\n isFirst: false,\r\n isRecord: false,\r\n isLogin: false,\r\n isLogout: true,\r\n appTheme: '#00c6c6',\r\n },\r\n // mutations: Store中更改state数据状态的唯一方法(必须是同步函数)\r\n mutations: {\r\n toggleColor(state, color) { //你可以传入一个颜色参数(需要上面公共css中含有,如果不传入默认为粉色)\r\n state.appTheme = color\r\n },\r\n /* 用户信息 */\r\n changeUser(state, newData) {\r\n if (newData.familyid) {\r\n uni.setStorageSync('familyid', newData.familyid);\r\n }\r\n Object.assign(state.user, newData)\r\n },\r\n //登录弹框\r\n changeUserLogin(state, newData) {\r\n state.isLogin = newData\r\n },\r\n //历史记录\r\n changehistoryList(state, newData) {\r\n state.historyList = newData\r\n },\r\n // 获取称重数据\r\n changeMeasureResult(state, newData) {\r\n state.MeasureResult = newData\r\n },\r\n // 信息弹框\r\n changeEdit(state, newData) {\r\n state.isedit = newData\r\n },\r\n // 目标体重\r\n changeTarget(state, newData) {\r\n state.isTarget = newData\r\n },\r\n // 初始体重\r\n changeFirst(state, newData) {\r\n state.isFirst = newData\r\n },\r\n // 手动记录\r\n changeRecord(state, newData) {\r\n state.isRecord = newData\r\n },\r\n // 左侧菜单弹框\r\n changeDrawe(state, newData) {\r\n state.isDrawe = newData\r\n },\r\n //获取家庭成员\r\n changeFamilay(state, newData) {\r\n state.familayList = newData\r\n },\r\n //蓝牙状态\r\n changeBluetooth(state, newData) {\r\n state.isBluetoothTyle = newData\r\n },\r\n // 蓝牙连接状态\r\n changeConnected(state, newData) {\r\n state.isConnected = newData\r\n },\r\n //趋势\r\n changeTrend(state, newData) {\r\n state.Trend = newData\r\n },\r\n //对比\r\n changeTrendPk(state, newData) {\r\n state.TrendPk = newData\r\n },\r\n // banner\r\n changeBanner(state, newData) {\r\n state.Banner = newData\r\n },\r\n //配置详情\r\n changeConfig(state, newData) {\r\n state.configBox = newData\r\n },\r\n // 退出登录\r\n changeLogout(state, newData) {\r\n if (newData == false) {\r\n state.user = {\r\n headimg: null,\r\n nickname: \"\",\r\n name: \"\",\r\n targetweight: 0, //目标体重\r\n firstweight: 0, //初始体重\r\n weight: 0,\r\n birthday: \"\",\r\n height: 0,\r\n age: 0,\r\n sex: 0,\r\n familyid: 0,\r\n firstresulttime: \"\"\r\n }\r\n state.Trend = null\r\n state.historyList = null\r\n state.devTypeList = null\r\n }\r\n state.isLogout = newData\r\n },\r\n\r\n },\r\n // 模块化vuex\r\n modules: {},\r\n actions\r\n})\r\n","import model from \"../tools/model.js\"\r\nimport tools from '@/tools/tools.js'\r\nimport config from '@/config.js'\r\n// Action 包含异步操作(请求API方法)、回调函数提交mutaions更改state数据状态,使之可以异步\r\nexport default {\r\n // 用户信息\r\n getUserInfo({\r\n commit\r\n },\r\n account) {\r\n return model.getUserInfo(account).then(res => {\r\n commit('changeUser', res.data)\r\n if (!res.data.height || !res.data.mage || !res.data.birthday) {\r\n uni.redirectTo({\r\n url: `/pageTwo/login/userinfo`\r\n })\r\n return\r\n }\r\n });\r\n },\r\n // 获取称重结果\r\n getResult({\r\n commit\r\n }, account) {\r\n return model.getResult(account).then((res) => {\r\n console.log(\"报告\", res)\r\n if (res.code == 0) {\r\n commit('changeMeasureResult', res.data)\r\n } else {\r\n commit('changeMeasureResult', null)\r\n }\r\n return res.data\r\n })\r\n },\r\n // 获取历史记录\r\n gethistoryList({\r\n commit\r\n }, account) {\r\n return model.getHistoryList(account).then((res) => {\r\n if (res.data && res.data.items) {\r\n commit('changehistoryList', res.data.items)\r\n } else {\r\n commit('changehistoryList', null)\r\n }\r\n return res\r\n })\r\n },\r\n //趋势\r\n GetBodyTrendList({\r\n commit\r\n }, account) {\r\n return model.GetBodyTrendList(account).then((res) => {\r\n if (res) {\r\n commit('changeTrend', res.cidata)\r\n }\r\n return res\r\n })\r\n },\r\n // 更新家庭成员\r\n getFamilyList({\r\n commit\r\n }) {\r\n return model.getFamilyList({\r\n pagenum: 20,\r\n pagesize: 1\r\n }).then((res) => {\r\n commit('changeFamilay', res)\r\n return res\r\n })\r\n },\r\n // 获取历史记录\r\n gethistoryList({\r\n commit\r\n }, account) {\r\n return model.getHistoryList(account).then((res) => {\r\n if (res.data && res.data.rows) {\r\n commit('changehistoryList', res.data.rows)\r\n } else {\r\n commit('changehistoryList', null)\r\n }\r\n return res\r\n })\r\n },\r\n\r\n // 配置详情\r\n getConfig({\r\n commit\r\n }, account) {\r\n account.appid = config.appid\r\n return model.getConfig(account).then((res) => {\r\n console.log(\"配置详情\", res)\r\n if (res.code == 0) {\r\n commit(\"changeConfig\", res.data)\r\n commit(\"toggleColor\", res.data.themecolor)\r\n }\r\n })\r\n }\r\n}\r\n","import http from './https.js'\r\nexport default {\r\n onlogin(param) { // 登录\r\n return http.post(\"/api/wxopen/onlogin\", param).then(res => {\r\n return res\r\n })\r\n },\r\n getSendCode(param) { // 验证码\r\n return http.get(\"/api/wxopen/sendcode\", param).then(res => {\r\n return res\r\n })\r\n },\r\n getRegister(param) { // 手机号进行注册\r\n return http.post(\"/api/wxopen/deregister\", param).then(res => {\r\n return res\r\n })\r\n },\r\n getregister(param) { // 微信授权登录\r\n return http.post('/api/wxopen/register', param).then(res => {\r\n return res\r\n })\r\n },\r\n getWxOpenPhone(param) { // 解密手机号\r\n return http.post('/api/wxopen/deuserphone', param).then(res => {\r\n return res\r\n })\r\n },\r\n getDecryptdata(param) { // 解密用户资料\r\n return http.post(\"/api/wxopen/deuserinfo\", param).then(res => {\r\n return res\r\n })\r\n },\r\n getConfig(param) { // 配置详情\r\n return http.post(\"/api/wxopen/config/get\", param).then(res => {\r\n return res\r\n })\r\n },\r\n getoutlogin(param) { // 退出登录\r\n return http.get(\"/api/wxopen/outlogin\", param).then(res => {\r\n return res\r\n })\r\n },\r\n submitadvice(param) { // 意见反馈\r\n return http.post(\"/api/wxopen/submitadvice\", param).then(res => {\r\n return res\r\n })\r\n },\r\n // \r\n getUserInfo(param) { //获取用户信息\r\n return http.post(\"/api/adult/info\", param).then(res => {\r\n if (res.code == 0) {\r\n res.data.name = res.data.nickname\r\n res.data.id = res.data.familyid\r\n // res.data.firstresulttime = res.data.firstresulttime.substring(0, 10)\r\n }\r\n return res\r\n })\r\n },\r\n getResult(param) { //获取成人测量信息\r\n return http.post(\"/api/adult/measureinfo\", param).then(res => {\r\n return res\r\n })\r\n },\r\n getfirstweight(param) { //修改初始体重\r\n return http.post(\"/api/adult/submitfirstweight\", param).then(res => {\r\n return res\r\n })\r\n },\r\n setTarget(param) { //设置目标体重\r\n return http.post(\"/api/family/settarget\", param).then(res => {\r\n return res\r\n })\r\n },\r\n getbodylist(param) { //测评列表\r\n return http.post(\"/api/adult/getbodylist\", param).then(res => {\r\n if (res.code == 0) {\r\n let box = res.data\r\n let k = 1\r\n for (var n = 0; n < box.length; n++) {\r\n for (var i = 0; i < box[n].qalist.length; i++) {\r\n let info = box[n].qalist[i]\r\n box[n].qalist[i] = {\r\n Id: info.id,\r\n title: info.title,\r\n data: [{\r\n id: info.id,\r\n val: k++,\r\n value: info.nonevalue,\r\n valId: box[n].id,\r\n name: '没有',\r\n },\r\n {\r\n id: info.id,\r\n val: k++,\r\n value: info.littlevalue,\r\n valId: box[n].id,\r\n name: '很少',\r\n },\r\n {\r\n id: info.id,\r\n val: k++,\r\n value: info.somevalue,\r\n valId: box[n].id,\r\n name: '有时',\r\n },\r\n {\r\n id: info.id,\r\n val: k++,\r\n value: info.oftenvalue,\r\n valId: box[n].id,\r\n name: '经常',\r\n },\r\n {\r\n id: info.id,\r\n val: k++,\r\n value: info.alwaysvalue,\r\n valId: box[n].id,\r\n name: '总是',\r\n }\r\n ]\r\n\r\n }\r\n }\r\n }\r\n res.data = box\r\n }\r\n return res\r\n })\r\n },\r\n getbodyinfo(param) { //体质测评结果\r\n return http.post(\"/api/adult/getbodyinfo\", param).then(res => {\r\n return res\r\n })\r\n },\r\n getbodyresultinfo(param) { //体质测评计算\r\n return http.post(\"/api/adult/getbodyresultinfo\", param).then(res => {\r\n return res\r\n })\r\n },\r\n // \r\n getFamilyList(param) { // 获取家庭成员列表\r\n return http.post('/api/family/getlist', param).then(res => {\r\n if (res.data) {\r\n for (let i = 0; i < res.data.length; i++) {\r\n res.data[i].familyid = res.data[i].id\r\n res.data[i].type = res.data[i].type == 1 ? \"成人\" : res.data[i].type == 2 ? \"儿童\" : \"婴儿\"\r\n }\r\n }\r\n return res.data\r\n })\r\n },\r\n getsubmit(param) { //家庭成员信息修改\r\n return http.post('/api/family/submit', param).then(res => {\r\n return res\r\n })\r\n },\r\n getdelete(param) { //删除家庭成员\r\n return http.get('/api/family/delete', param).then(res => {\r\n return res\r\n })\r\n },\r\n\r\n getdetail(param) { //家庭成员详情\r\n return http.get('/api/family/detail', param).then(res => {\r\n return res\r\n })\r\n },\r\n getHistoryList(param) { //获取指定家庭成员历史记录\r\n return http.post('/api/family/gethistorylist', param).then(res => {\r\n return res\r\n })\r\n },\r\n getaddlist(param) { //手动添加记录列表\r\n return http.post('/api/family/getaddlist', param).then(res => {\r\n return res\r\n })\r\n },\r\n // \r\n getinsertmeasure(param) { //手动记录\r\n return http.post('/api/result/insertmeasure', param).then(res => {\r\n return res\r\n })\r\n },\r\n getmeasure(param) { //新增蓝牙测量记录\r\n return http.post('/api/result/measure', param).then(res => {\r\n return res\r\n })\r\n },\r\n getmeasuredata(param) { //新增蓝牙测量记录,适用于f01pro\r\n return http.post('/api/result/measuredata', param).then(res => {\r\n return res\r\n })\r\n },\r\n getmeasurefunit(param) { //新增蓝牙测量记录,身高带单位\r\n return http.post('/api/result/measureofunit', param).then(res => {\r\n return res\r\n })\r\n },\r\n gethistorydelete(param) { //删除历史记录\r\n return http.post(\"/api/result/delete\", param).then(res => {\r\n return res\r\n })\r\n },\r\n getTrendList(param) { //趋势\r\n return http.post(\"/api/result/trendlist\", param).then(res => {\r\n if (res.code == 0) {\r\n let list = res.data\r\n let cidata = {\r\n weight: {\r\n categories: [],\r\n series: [{\r\n color: \"#ff9f40\",\r\n name: \"体重\",\r\n data: [],\r\n }]\r\n },\r\n bmi: {\r\n categories: [],\r\n series: [{\r\n name: \"bmi\",\r\n color: \"#5ba7ff\",\r\n data: [],\r\n }]\r\n },\r\n muscle: {\r\n categories: [],\r\n series: [{\r\n color: \"#ff7f91\",\r\n name: \"肌肉\",\r\n data: [],\r\n }]\r\n },\r\n fat_r: {\r\n categories: [],\r\n series: [{\r\n color: \"#3fcba7\",\r\n name: \"脂肪\",\r\n data: [],\r\n }]\r\n }\r\n }\r\n\r\n for (var i = 0; i < list.length; i++) {\r\n cidata.weight.categories.push(list[i].time);\r\n cidata.bmi.categories.push(list[i].time);\r\n cidata.muscle.categories.push(list[i].time);\r\n cidata.fat_r.categories.push(list[i].time);\r\n cidata.weight.series.forEach(item => {\r\n item.data.push(list[i].weight)\r\n })\r\n cidata.bmi.series.forEach(item => {\r\n item.data.push(list[i].bmi)\r\n })\r\n cidata.muscle.series.forEach(item => {\r\n item.data.push(list[i].muscle)\r\n })\r\n cidata.fat_r.series.forEach(item => {\r\n item.data.push(list[i].fat_r)\r\n })\r\n }\r\n res.data = cidata\r\n }\r\n return res.data\r\n })\r\n },\r\n //对比列表\r\n GetTrendList(param) {\r\n return http.post(\"/api/result/trendlist\", param).then(res => {\r\n if (res.code == 0) {\r\n let pkList = {\r\n list: [],\r\n Dlist: []\r\n }\r\n for (var i = 0; i < res.data.length; i++) {\r\n pkList.list.push(res.data[i])\r\n if (!pkList.Dlist.includes(res.data[i].createtime)) { //includes 检测数组是否有某个值\r\n pkList.Dlist.push(res.data[i].createtime);\r\n }\r\n }\r\n res.data.pkList = pkList\r\n }\r\n return res.data\r\n })\r\n },\r\n getresultdiff(param) { //记录对比\r\n return http.post(\"/api/result/resultdiff\", param).then(res => {\r\n return res\r\n })\r\n },\r\n\r\n // \r\n getdevactive(param) { //设备激活\r\n return http.post('/api/device/active', param).then(res => {\r\n return res\r\n })\r\n },\r\n getdevstatus(param) { //检查设备状态\r\n return http.get('/api/device/checkdevstatus', param).then(res => {\r\n return res\r\n })\r\n },\r\n getdevdetail(param) { //设备详情\r\n return http.post('/api/device/detail', param).then(res => {\r\n return res\r\n })\r\n },\r\n //\r\n GetTplList(param) { //获取消息模板列表\r\n return http.get('/api/message/gettplList', param).then(res => {\r\n return res\r\n })\r\n },\r\n GetSubscribe(param) { //消息订阅\r\n return http.post('/api/message/subscribe', param).then(res => {\r\n return res\r\n\r\n })\r\n },\r\n GetSubscribeInfo(param) { //获取订阅状态\r\n return http.get('/api/message/getsubscribeinfo', param).then(res => {\r\n return res\r\n })\r\n },\r\n Getunsubscribe(param) { //取消订阅\r\n return http.post('/api/message/unsubscribe', param).then(res => {\r\n return res\r\n })\r\n },\r\n // 协议\r\n GetAdListDetail(param) {\r\n return http.get('/api/zx/infodetail', param).then(res => {\r\n return res\r\n })\r\n },\r\n\r\n}\r\n","import tools from '@/tools/tools.js'\r\nimport store from '../store'\r\nimport config from '@/config.js'\r\n\r\nlet baseUrl = config.host\r\nconst httpRequest = (url, method = \"get\", data) => {\r\n\tlet httpDefaultOpts = {\r\n\t\turl: baseUrl + url,\r\n\t\tdata: data,\r\n\t\tmethod: method,\r\n\t\theader: {\r\n\t\t\t'Authorization': \"Bearer \" + uni.getStorageSync('token'),\r\n\t\t\t'X-Authorization': \"Bearer \" + uni.getStorageSync('refreshtoken'),\r\n\t\t\t'X-Requested-With': 'XMLHttpRequest',\r\n\t\t\t'content-type': 'application/json;charset=UTF-8',\r\n\t\t},\r\n\t}\r\n\tlet promise = new Promise(function(resolve, reject) {\r\n\t\tif (httpDefaultOpts.url.indexOf(\"/api/device/detail\") == -1) {\r\n\t\t\tuni.showLoading({\r\n\t\t\t\ttitle: '加载中...'\r\n\t\t\t})\r\n\t\t}\r\n\t\tuni.request(httpDefaultOpts).then(\r\n\t\t\t(res) => {\r\n\t\t\t\tuni.hideLoading()\r\n\t\t\t\tif (res[1].data.code == 401) {\r\n\t\t\t\t\tuni.clearStorageSync()\r\n\t\t\t\t\tuni.setStorageSync('token', \"\")\r\n\t\t\t\t\tstore.commit(\"changeLogout\", false);\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\tif (res[1].statusCode != 200) {\r\n\t\t\t\t\ttools.msg(res[1].data.message)\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\tresolve(res[1].data)\r\n\t\t\t}\r\n\t\t).catch(\r\n\t\t\t(response) => {\r\n\t\t\t\tuni.hideLoading()\r\n\t\t\t\treject(response)\r\n\t\t\t}\r\n\t\t)\r\n\t})\r\n\treturn promise\r\n\r\n};\r\nconst get = (url, data) => {\r\n\tdata.appid = config.appid\r\n\treturn httpRequest(url, 'get', data)\r\n}\r\n\r\nconst post = (url, data) => {\r\n\tdata.appid = config.appid\r\n\treturn httpRequest(url, 'post', data)\r\n}\r\nexport default {\r\n\tbaseUrl,\r\n\tget,\r\n\tpost\r\n}\r\n","import $store from '@/store'\r\nexport default {\r\n msg,\r\n str2hex,\r\n hex2str,\r\n ab2hex,\r\n inArray,\r\n getAge,\r\n getTime,\r\n getDate,\r\n getMonth,\r\n GetDateStr,\r\n handlePages,\r\n getBluetoothAdapter\r\n}\r\n\r\nfunction inArray(arr, key, val) {\r\n if (!arr || !arr.length || typeof arr != 'object' || !Array.isArray(arr)) {\r\n return -1\r\n }\r\n for (let i = 0; i < arr.length; i++) {\r\n if (!key) {\r\n if (arr[i] == val) {\r\n return i\r\n }\r\n } else if (arr[i][key] === val) {\r\n return i\r\n }\r\n }\r\n return -1;\r\n}\r\n\r\nfunction msg(str) {\r\n uni.showToast({\r\n title: str,\r\n icon: 'none'\r\n })\r\n}\r\n\r\nfunction ab2hex(buffer, split) {\r\n var hexArr = Array.prototype.map.call(\r\n new Uint8Array(buffer),\r\n function(bit) {\r\n return ('00' + bit.toString(16)).slice(-2)\r\n }\r\n )\r\n return hexArr.join(split);\r\n}\r\n\r\nfunction hex2str(arr) {\r\n let decoder = new TextDecoder('utf8')\r\n let uint8 = new Uint8Array(arr)\r\n let res = decoder.decode(uint8)\r\n return res\r\n}\r\n\r\nfunction str2hex(str) {\r\n let encoder = new TextEncoder('utf8')\r\n return encoder.encode(str)\r\n}\r\n\r\nfunction getBluetoothAdapter(err) {\r\n if (err.errMsg == \"openBluetoothAdapter:fail auth denied\" || err.errMsg ===\r\n \"openBluetoothAdapter:fail auth deny\" ||\r\n err.errMsg === \"openBluetoothAdapter:fail authorize no response\"\r\n ) {\r\n uni.showModal({\r\n title: \"提示\",\r\n content: \"需要您授权使用手机蓝牙\",\r\n showCancel: false,\r\n success(modalSuccess) {\r\n uni.openSetting({\r\n success(settingdata) {\r\n if (settingdata.authSetting[\"scope.bluetooth\"]) {\r\n uni.openBluetoothAdapter({\r\n success: e => {\r\n uni.showToast({\r\n title: \"获取权限成功,请继续去测量\",\r\n icon: \"none\"\r\n })\r\n $store.commit(\"changeBluetooth\", true);\r\n },\r\n fail: err => {\r\n uni.showToast({\r\n title: \"请打开手机蓝牙\",\r\n icon: \"none\",\r\n duration: 1000,\r\n })\r\n console.log('初始化蓝牙失败:' + err.errMsg);\r\n }\r\n });\r\n } else {\r\n uni.showToast({\r\n title: \"获取权限失败,将无法使用手机蓝牙进行测量\",\r\n icon: \"none\"\r\n })\r\n }\r\n }\r\n })\r\n }\r\n })\r\n } else {\r\n uni.showToast({\r\n title: \"请打开手机蓝牙\",\r\n icon: \"none\",\r\n duration: 1000,\r\n })\r\n }\r\n}\r\n\r\nfunction getDate(type) {\r\n const date = new Date();\r\n let year = date.getFullYear();\r\n let month = date.getMonth() + 1;\r\n let day = date.getDate();\r\n month = month > 9 ? month : '0' + month;;\r\n day = day > 9 ? day : '0' + day;\r\n if (type === 'tow') {\r\n year = year - 2;\r\n return `${year}-${month}-${day}`;\r\n }\r\n if (type === 'start') {\r\n year = year;\r\n return `${year}-${month}-${day}`;\r\n }\r\n if (type === 'end') {\r\n year = year + 60;\r\n return `${year}-${month}-${day}`;\r\n }\r\n if (type == \"m\") {\r\n if (month == \"01\" || month == \"03\" || month == \"05\" || month == \"07\" || month == \"08\" || month == \"10\" ||\r\n month == \"12\") {\r\n return year + \"/\" + month + \"/01\" + \"~\" + year + \"/\" + month + \"/31\";\r\n } else if (month == \"02\") {\r\n if ((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0)) {\r\n return year + \"/\" + month + \"/01\" + \"~\" + year + \"/\" + month + \"/29\";\r\n } else {\r\n return year + \"/\" + month + \"/01\" + \"~\" + year + \"/\" + month + \"/28\";\r\n };\r\n } else {\r\n return year + \"/\" + month + \"/01\" + \"~\" + year + \"/\" + month + \"/30\";\r\n };\r\n }\r\n}\r\n\r\nfunction GetDateStr(AddDayCount) {\r\n var dd = new Date();\r\n dd.setDate(dd.getDate() + AddDayCount); //获取AddDayCount天后的日期\r\n var y = dd.getFullYear();\r\n var m = (dd.getMonth() + 1) < 10 ? \"0\" + (dd.getMonth() + 1) : (dd.getMonth() + 1); //获取当前月份的日期,不足10补0\r\n var d = dd.getDate() < 10 ? \"0\" + dd.getDate() : dd.getDate(); //获取当前几号,不足10补0\r\n return y + \"-\" + m + \"-\" + d;\r\n}\r\n\r\n// 获取当前日期\r\nfunction getTime() {\r\n var date = new Date()\r\n var todate =\r\n ((date.getMonth() + 1) < 10 ? ('0' + (date.getMonth() + 1)) : date.getMonth() +\r\n 1) + '月' + (date.getDate() < 10 ? ('0' + date.getDate()) : date.getDate() + '日')\r\n return todate\r\n}\r\n// 根据出生日期获取年龄\r\nfunction getAge(str) {\r\n var r = str.match(/^(\\d{1,4})(-|\\/)(\\d{1,2})\\2(\\d{1,2})/);\r\n if (r == null) return false;\r\n\r\n var d = new Date(r[1], r[3] - 1, r[4]);\r\n var returnStr = \"输入的日期格式错误!\";\r\n\r\n if (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]) {\r\n\r\n var date = new Date();\r\n var yearNow = date.getFullYear();\r\n var monthNow = date.getMonth() + 1;\r\n var dayNow = date.getDate();\r\n\r\n var largeMonths = [1, 3, 5, 7, 8, 10, 12], //大月, 用于计算天,只在年月都为零时,天数有效\r\n lastMonth = monthNow - 1 > 0 ? monthNow - 1 : 12, // 上一个月的月份\r\n isLeapYear = false, // 是否是闰年\r\n daysOFMonth = 0; // 当前日期的上一个月多少天\r\n\r\n if ((yearNow % 4 === 0 && yearNow % 100 !== 0) || yearNow % 400 === 0) { // 是否闰年, 用于计算天,只在年月都为零时,天数有效\r\n isLeapYear = true;\r\n }\r\n\r\n if (largeMonths.indexOf(lastMonth) > -1) {\r\n daysOFMonth = 31;\r\n } else if (lastMonth === 2) {\r\n if (isLeapYear) {\r\n daysOFMonth = 29;\r\n } else {\r\n daysOFMonth = 28;\r\n }\r\n } else {\r\n daysOFMonth = 30;\r\n }\r\n\r\n var Y = yearNow - parseInt(r[1]);\r\n var M = monthNow - parseInt(r[3]);\r\n var D = dayNow - parseInt(r[4]);\r\n if (D < 0) {\r\n D = D + daysOFMonth; //借一个月\r\n M--;\r\n }\r\n if (M < 0) { // 借一年 12个月\r\n Y--;\r\n M = M + 12; //\r\n }\r\n\r\n if (Y < 0) {\r\n returnStr = \"出生日期有误!\";\r\n\r\n } else if (Y === 0) {\r\n if (M === 0) {\r\n returnStr = D + \"天\";\r\n } else {\r\n returnStr = M + \"个月\";\r\n }\r\n } else {\r\n if (M === 0) {\r\n returnStr = Y + \"岁\";\r\n } else {\r\n returnStr = Y + \"岁\" + M + \"个月\";\r\n }\r\n }\r\n }\r\n return returnStr;\r\n}\r\n\r\nfunction getMonth(dates, months) {\r\n var d = new Date(dates.substring(0, 10));\r\n let year = d.getFullYear();\r\n var month = d.getMonth() + 1;\r\n if (Math.abs(months) > 12) {\r\n months = months % 12;\r\n };\r\n if (months != 0) {\r\n if (month + months > 12) {\r\n year++;\r\n month = (month + months) % 12;\r\n } else if (month + months < 1) {\r\n year--;\r\n month = 12 + month + months;\r\n } else {\r\n month = month + months;\r\n };\r\n };\r\n month = month < 10 ? \"0\" + month : month;\r\n var date = d.getDate();\r\n if (month == \"01\" || month == \"03\" || month == \"05\" || month == \"07\" || month == \"08\" || month == \"10\" ||\r\n month == \"12\") {\r\n return year + \"/\" + month + \"/01\" + \"~\" + year + \"/\" + month + \"/31\";\r\n } else if (month == \"02\") {\r\n if ((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0)) {\r\n return year + '/' + month + \"/01\" + \"~\" + year + \"/\" + year + \"/\" + month + \"/29\";\r\n } else {\r\n return year + '/' + month + \"/01\" + \"~\" + year + \"/\" + month + \"/28\";\r\n };\r\n } else {\r\n return year + '/' + month + \"/01\" + \"~\" + year + \"/\" + month + \"/30\";\r\n };\r\n};\r\n// 页面跳转\r\nfunction handlePages(type, deviceId) {\r\n if (type == 1) {\r\n uni.redirectTo({\r\n url: \"/BLEPages/adult/PCD01pro?deviceId=\" + deviceId\r\n })\r\n return\r\n }\r\n if (type == 4 || type == 16) {\r\n uni.redirectTo({\r\n url: \"/BLEPages/adult/PCL01?deviceId=\" + deviceId\r\n })\r\n return\r\n }\r\n if (type == 7) {\r\n uni.redirectTo({\r\n url: \"/BLEPages/adult/F01PRO?deviceId=\" + deviceId\r\n })\r\n return\r\n }\r\n if (type == 8) {\r\n uni.redirectTo({\r\n url: \"/BLEPages/adult/H01pro?deviceId=\" + deviceId\r\n })\r\n return\r\n }\r\n\r\n if (type == 14) {\r\n uni.redirectTo({\r\n url: \"/BLEPages/adult/F01B?deviceId=\" + deviceId\r\n })\r\n return\r\n }\r\n if (type == 21) {\r\n uni.redirectTo({\r\n url: \"/BLEPages/adult/H09B?deviceId=\" + deviceId\r\n })\r\n return\r\n }\r\n}\r\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","const accountInfo = wx.getAccountInfoSync();\r\nconst appid = accountInfo.miniProgram.appId\r\nuni.setStorageSync('appid', appid)\r\nlet host = \"\"\r\nif (process.env.NODE_ENV === 'development') {\r\n console.log(\"开发环境\")\r\n // host = \"https://ttybapi.pcxbc.com\"\r\n host = \"https://ybapi.pcxbc.com\"\r\n} else {\r\n console.log(\"生产环境\")\r\n host = \"https://ybapi.pcxbc.com\"\r\n}\r\nconsole.log(\"appid\", appid)\r\nmodule.exports = {\r\n appid,\r\n host,\r\n};\r\n","let data = [{\r\n title: '体重',\r\n showCon: false,\r\n key: 'weight',\r\n dw: 'kg',\r\n fvalue: null,\r\n svalue: null,\r\n fevaluation: null,\r\n sevaluation: null,\r\n vs: 0,\r\n num: 0,\r\n color: \"#ff4239\",\r\n desc: \"反映和衡量一个人健康状况的重要标志之一\",\r\n },\r\n {\r\n title: 'BMI',\r\n color: \"#ff4239\",\r\n showCon: false,\r\n key: 'bmi',\r\n level: \"bmilevel\",\r\n dw: '',\r\n slist: [],\r\n fvalue: null,\r\n svalue: null,\r\n fevaluation: null,\r\n sevaluation: null,\r\n vs: 0,\r\n num: 0,\r\n desc: 'BMI是身体质量指数,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。',\r\n }, {\r\n title: '脂肪率',\r\n showCon: false,\r\n color: \"#ff4239\",\r\n key: 'fat_r',\r\n level: \"fat_rlevel\",\r\n dw: '%',\r\n slist: [],\r\n fvalue: null,\r\n svalue: null,\r\n fevaluation: null,\r\n sevaluation: null,\r\n vs: 0,\r\n num: 0,\r\n desc: '体脂率是指身体成分中,脂肪组织所占的比率。测量体脂率比单纯的只测量体重更能反映我们身体的脂肪水平(肥胖程度)。',\r\n },\r\n // \r\n {\r\n title: '脂肪量',\r\n key: 'fat_w',\r\n color: \"#ff4239\",\r\n scope: '',\r\n showCon: false,\r\n level: \"fat_wlevel\",\r\n dw: 'kg',\r\n leftval: 0,\r\n desc: '人体脂肪的重量',\r\n fvalue: null,\r\n svalue: null,\r\n fevaluation: null,\r\n sevaluation: null,\r\n vs: 0,\r\n num: 0,\r\n },\r\n {\r\n title: '肌肉率',\r\n key: 'muscle',\r\n showCon: false,\r\n color: \"#ff4239\",\r\n level: \"musclelevel\",\r\n dw: '%',\r\n slist: [],\r\n leftval: 0,\r\n fvalue: null,\r\n svalue: null,\r\n fevaluation: null,\r\n sevaluation: null,\r\n vs: 0,\r\n num: 0,\r\n desc: '根据人体肌肉总量和人体体重、身高等相结合得到的人体的一个比例值,这个值的范围决定一个人的身体健康状况以及力量的多少。',\r\n },\r\n {\r\n title: '肌肉量',\r\n color: \"#ff4239\",\r\n key: 'muscleval',\r\n level: \"musclelevel\",\r\n showCon: false,\r\n dw: 'kg',\r\n slist: [],\r\n fvalue: null,\r\n svalue: null,\r\n fevaluation: null,\r\n sevaluation: null,\r\n vs: 0,\r\n num: 0,\r\n desc: '肌肉量=实际体重*肌肉率',\r\n },\r\n {\r\n title: '水分',\r\n key: 'water',\r\n color: \"#ff4239\",\r\n level: \"waterlevel\",\r\n showCon: false,\r\n dw: '%',\r\n desc: '指人体内水分比例。',\r\n slist: [],\r\n fvalue: null,\r\n svalue: null,\r\n fevaluation: null,\r\n sevaluation: null,\r\n vs: 0,\r\n num: 0,\r\n },\r\n {\r\n title: '蛋白量',\r\n color: \"#ff4239\",\r\n level: \"proteinlevel\",\r\n key: 'proteinval',\r\n showCon: false,\r\n dw: 'kg',\r\n desc: '蛋白量=实际体重*蛋白率',\r\n slist: [],\r\n fvalue: null,\r\n svalue: null,\r\n fevaluation: null,\r\n sevaluation: null,\r\n vs: 0,\r\n num: 0,\r\n },\r\n {\r\n title: '骨重',\r\n color: \"#ff4239\",\r\n key: 'bone',\r\n showCon: false,\r\n level: \"bonelevel\",\r\n dw: '',\r\n slist: [],\r\n fvalue: null,\r\n svalue: null,\r\n fevaluation: null,\r\n sevaluation: null,\r\n vs: 0,\r\n num: 0,\r\n desc: '单位体积内,骨组织、骨矿物质(钙、磷等)和骨基质(骨胶原、蛋白率、无机盐等等)]含量,骨量代表它们骨骼健康的情况。',\r\n },\r\n {\r\n title: '蛋白率',\r\n color: \"#ff4239\",\r\n key: 'protein',\r\n level: \"proteinlevel\",\r\n showCon: false,\r\n dw: '%',\r\n desc: '人体内蛋白率含量。',\r\n slist: [],\r\n fvalue: null,\r\n svalue: null,\r\n fevaluation: null,\r\n sevaluation: null,\r\n vs: 0,\r\n num: 0,\r\n },\r\n {\r\n title: '基础代谢',\r\n key: 'kcal',\r\n color: \"#ff4239\",\r\n level: \"kcallevel\",\r\n showCon: false,\r\n dw: 'kcal',\r\n slist: [],\r\n fvalue: null,\r\n svalue: null,\r\n fevaluation: null,\r\n sevaluation: null,\r\n vs: 0,\r\n num: 0,\r\n desc: '指人体在清醒而又极端安静的状态下,不受肌肉活动、环境温度、食物及精神紧张等影响时的能量代谢率',\r\n },\r\n // \r\n\r\n {\r\n title: '内脏指数',\r\n color: \"#ff4239\",\r\n key: 'visceral',\r\n showCon: false,\r\n level: \"viscerallevel\",\r\n dw: '',\r\n desc: '内脏脂肪指数',\r\n slist: [],\r\n fvalue: null,\r\n svalue: null,\r\n fevaluation: null,\r\n sevaluation: null,\r\n vs: 0,\r\n num: 0,\r\n },\r\n {\r\n title: '皮下脂肪',\r\n key: 'sfr',\r\n color: \"#ff4239\",\r\n showCon: false,\r\n level: \"sfrlevel\",\r\n dw: '%',\r\n desc: '皮下脂脂肪就是贮存于皮下的脂肪组织,人体的脂肪大约有2/3贮存在皮下组织',\r\n slist: [],\r\n fvalue: null,\r\n svalue: null,\r\n fevaluation: null,\r\n sevaluation: null,\r\n vs: 0,\r\n num: 0,\r\n },\r\n {\r\n title: '肥胖等级',\r\n key: 'fatlevel',\r\n level: \"fatlevel\",\r\n showCon: false,\r\n leftval: 0,\r\n fvalue: null,\r\n svalue: null,\r\n fevaluation: null,\r\n sevaluation: null,\r\n vs: 0,\r\n num: 0,\r\n desc: '肥胖的程度,表现实际体重与理想体重的差距。肥胖等级是判定肥胖症的一个指标。',\r\n },\r\n // \r\n {\r\n title: '去脂体重',\r\n key: 'lbm',\r\n showCon: false,\r\n dw: 'kg',\r\n fvalue: null,\r\n svalue: null,\r\n fevaluation: null,\r\n sevaluation: null,\r\n vs: 0,\r\n num: 0,\r\n },\r\n {\r\n title: '体龄',\r\n key: 'bodyage',\r\n showCon: false,\r\n dw: '岁',\r\n fvalue: null,\r\n svalue: null,\r\n fevaluation: null,\r\n sevaluation: null,\r\n vs: 0,\r\n num: 0,\r\n },\r\n {\r\n title: '体型',\r\n key: 'body',\r\n level: \"bodylevel\",\r\n showCon: false,\r\n fvalue: null,\r\n svalue: null,\r\n fevaluation: null,\r\n sevaluation: null,\r\n vs: 0,\r\n num: 0,\r\n },\r\n]\r\n\r\nfunction infoList(str) {\r\n let listStr = [...data];\r\n let leftval = 0\r\n if (!str) return\r\n for (var i = 0; i < listStr.length; i++) {\r\n listStr[i].fvalue = str[listStr[i].key];\r\n listStr[i].fevaluation = str[listStr[i].level];\r\n if (str.list && str.list.length) {\r\n for (var k = 0; k < str.list.length; k++) {\r\n if (listStr[i].key == str.list[k].name) {\r\n listStr[i].slist = str.list[k].list\r\n listStr[i].color = str.list[k].color\r\n listStr[i].fvalue = str.list[k].value\r\n listStr[i].fevaluation = str.list[k].level\r\n }\r\n }\r\n for (let j in listStr[i].slist) {\r\n if (listStr[i].fevaluation == listStr[i].slist[j].text) {\r\n listStr[i].leftval = (listStr[i].fvalue - listStr[i].slist[j].minvalue) / (listStr[i].slist[j]\r\n .maxvalue - listStr[i].slist[j].minvalue) * 4.2\r\n }\r\n }\r\n } else {\r\n listStr[i].slist = null\r\n }\r\n }\r\n return listStr\r\n}\r\n\r\nexport default {\r\n data,\r\n infoList,\r\n}\r\n","import{initVueI18n as e}from\"@dcloudio/uni-i18n\";\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}function n(e,t,n){return e(n={path:t,exports:{},require:function(e,t){return function(){throw new Error(\"Dynamic requires are not currently supported by @rollup/plugin-commonjs\")}(null==t&&n.path)}},n.exports),n.exports}var s=n((function(e,t){var n;e.exports=(n=n||function(e,t){var n=Object.create||function(){function e(){}return function(t){var n;return e.prototype=t,n=new e,e.prototype=null,n}}(),s={},r=s.lib={},o=r.Base={extend:function(e){var t=n(this);return e&&t.mixIn(e),t.hasOwnProperty(\"init\")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty(\"toString\")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},i=r.WordArray=o.extend({init:function(e,n){e=this.words=e||[],this.sigBytes=n!=t?n:4*e.length},toString:function(e){return(e||c).stringify(this)},concat:function(e){var t=this.words,n=e.words,s=this.sigBytes,r=e.sigBytes;if(this.clamp(),s%4)for(var o=0;o>>2]>>>24-o%4*8&255;t[s+o>>>2]|=i<<24-(s+o)%4*8}else for(o=0;o>>2]=n[o>>>2];return this.sigBytes+=r,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=o.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var n,s=[],r=function(t){t=t;var n=987654321,s=4294967295;return function(){var r=((n=36969*(65535&n)+(n>>16)&s)<<16)+(t=18e3*(65535&t)+(t>>16)&s)&s;return r/=4294967296,(r+=.5)*(e.random()>.5?1:-1)}},o=0;o>>2]>>>24-r%4*8&255;s.push((o>>>4).toString(16)),s.push((15&o).toString(16))}return s.join(\"\")},parse:function(e){for(var t=e.length,n=[],s=0;s>>3]|=parseInt(e.substr(s,2),16)<<24-s%8*4;return new i.init(n,t/2)}},u=a.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,s=[],r=0;r>>2]>>>24-r%4*8&255;s.push(String.fromCharCode(o))}return s.join(\"\")},parse:function(e){for(var t=e.length,n=[],s=0;s>>2]|=(255&e.charCodeAt(s))<<24-s%4*8;return new i.init(n,t)}},h=a.Utf8={stringify:function(e){try{return decodeURIComponent(escape(u.stringify(e)))}catch(e){throw new Error(\"Malformed UTF-8 data\")}},parse:function(e){return u.parse(unescape(encodeURIComponent(e)))}},l=r.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new i.init,this._nDataBytes=0},_append:function(e){\"string\"==typeof e&&(e=h.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,s=n.words,r=n.sigBytes,o=this.blockSize,a=r/(4*o),c=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*o,u=e.min(4*c,r);if(c){for(var h=0;h>>24)|4278255360&(r<<24|r>>>8)}var o=this._hash.words,i=e[t+0],c=e[t+1],f=e[t+2],p=e[t+3],g=e[t+4],m=e[t+5],y=e[t+6],_=e[t+7],w=e[t+8],k=e[t+9],S=e[t+10],v=e[t+11],T=e[t+12],A=e[t+13],P=e[t+14],I=e[t+15],b=o[0],E=o[1],O=o[2],C=o[3];b=u(b,E,O,C,i,7,a[0]),C=u(C,b,E,O,c,12,a[1]),O=u(O,C,b,E,f,17,a[2]),E=u(E,O,C,b,p,22,a[3]),b=u(b,E,O,C,g,7,a[4]),C=u(C,b,E,O,m,12,a[5]),O=u(O,C,b,E,y,17,a[6]),E=u(E,O,C,b,_,22,a[7]),b=u(b,E,O,C,w,7,a[8]),C=u(C,b,E,O,k,12,a[9]),O=u(O,C,b,E,S,17,a[10]),E=u(E,O,C,b,v,22,a[11]),b=u(b,E,O,C,T,7,a[12]),C=u(C,b,E,O,A,12,a[13]),O=u(O,C,b,E,P,17,a[14]),b=h(b,E=u(E,O,C,b,I,22,a[15]),O,C,c,5,a[16]),C=h(C,b,E,O,y,9,a[17]),O=h(O,C,b,E,v,14,a[18]),E=h(E,O,C,b,i,20,a[19]),b=h(b,E,O,C,m,5,a[20]),C=h(C,b,E,O,S,9,a[21]),O=h(O,C,b,E,I,14,a[22]),E=h(E,O,C,b,g,20,a[23]),b=h(b,E,O,C,k,5,a[24]),C=h(C,b,E,O,P,9,a[25]),O=h(O,C,b,E,p,14,a[26]),E=h(E,O,C,b,w,20,a[27]),b=h(b,E,O,C,A,5,a[28]),C=h(C,b,E,O,f,9,a[29]),O=h(O,C,b,E,_,14,a[30]),b=l(b,E=h(E,O,C,b,T,20,a[31]),O,C,m,4,a[32]),C=l(C,b,E,O,w,11,a[33]),O=l(O,C,b,E,v,16,a[34]),E=l(E,O,C,b,P,23,a[35]),b=l(b,E,O,C,c,4,a[36]),C=l(C,b,E,O,g,11,a[37]),O=l(O,C,b,E,_,16,a[38]),E=l(E,O,C,b,S,23,a[39]),b=l(b,E,O,C,A,4,a[40]),C=l(C,b,E,O,i,11,a[41]),O=l(O,C,b,E,p,16,a[42]),E=l(E,O,C,b,y,23,a[43]),b=l(b,E,O,C,k,4,a[44]),C=l(C,b,E,O,T,11,a[45]),O=l(O,C,b,E,I,16,a[46]),b=d(b,E=l(E,O,C,b,f,23,a[47]),O,C,i,6,a[48]),C=d(C,b,E,O,_,10,a[49]),O=d(O,C,b,E,P,15,a[50]),E=d(E,O,C,b,m,21,a[51]),b=d(b,E,O,C,T,6,a[52]),C=d(C,b,E,O,p,10,a[53]),O=d(O,C,b,E,S,15,a[54]),E=d(E,O,C,b,c,21,a[55]),b=d(b,E,O,C,w,6,a[56]),C=d(C,b,E,O,I,10,a[57]),O=d(O,C,b,E,y,15,a[58]),E=d(E,O,C,b,A,21,a[59]),b=d(b,E,O,C,g,6,a[60]),C=d(C,b,E,O,v,10,a[61]),O=d(O,C,b,E,f,15,a[62]),E=d(E,O,C,b,k,21,a[63]),o[0]=o[0]+b|0,o[1]=o[1]+E|0,o[2]=o[2]+O|0,o[3]=o[3]+C|0},_doFinalize:function(){var t=this._data,n=t.words,s=8*this._nDataBytes,r=8*t.sigBytes;n[r>>>5]|=128<<24-r%32;var o=e.floor(s/4294967296),i=s;n[15+(r+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),n[14+(r+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),t.sigBytes=4*(n.length+1),this._process();for(var a=this._hash,c=a.words,u=0;u<4;u++){var h=c[u];c[u]=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8)}return a},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});function u(e,t,n,s,r,o,i){var a=e+(t&n|~t&s)+r+i;return(a<>>32-o)+t}function h(e,t,n,s,r,o,i){var a=e+(t&s|n&~s)+r+i;return(a<>>32-o)+t}function l(e,t,n,s,r,o,i){var a=e+(t^n^s)+r+i;return(a<>>32-o)+t}function d(e,t,n,s,r,o,i){var a=e+(n^(t|~s))+r+i;return(a<>>32-o)+t}t.MD5=o._createHelper(c),t.HmacMD5=o._createHmacHelper(c)}(Math),n.MD5)})),n((function(e,t){var n,r,o;e.exports=(r=(n=s).lib.Base,o=n.enc.Utf8,void(n.algo.HMAC=r.extend({init:function(e,t){e=this._hasher=new e.init,\"string\"==typeof t&&(t=o.parse(t));var n=e.blockSize,s=4*n;t.sigBytes>s&&(t=e.finalize(t)),t.clamp();for(var r=this._oKey=t.clone(),i=this._iKey=t.clone(),a=r.words,c=i.words,u=0;u{y.indexOf(n)>-1&&function(e,t,n){let s=_[e][t];s||(s=_[e][t]=[]),-1===s.indexOf(n)&&\"function\"==typeof n&&s.push(n)}(e,n,t[n])}))}function k(e,t){_[e]||(_[e]={}),i(t)?Object.keys(t).forEach((n=>{y.indexOf(n)>-1&&function(e,t,n){const s=_[e][t];if(!s)return;const r=s.indexOf(n);r>-1&&s.splice(r,1)}(e,n,t[n])})):delete _[e]}function S(e,t){return e&&0!==e.length?e.reduce(((e,n)=>e.then((()=>n(t)))),Promise.resolve()):Promise.resolve()}function v(e,t){return _[e]&&_[e][t]||[]}function T(e,t){return t?function(n){const s=\"callFunction\"===t&&\"DCloud-clientDB\"===(n&&n.name);let r;r=this.isReady?Promise.resolve():this.initUniCloud,n=n||{};const o=r.then((()=>s?Promise.resolve():S(v(t,\"invoke\"),n))).then((()=>e.call(this,n))).then((e=>s?Promise.resolve(e):S(v(t,\"success\"),e).then((()=>S(v(t,\"complete\"),e))).then((()=>Promise.resolve(e)))),(e=>s?Promise.reject(e):S(v(t,\"fail\"),e).then((()=>S(v(t,\"complete\"),e))).then((()=>Promise.reject(e)))));if(!(n.success||n.fail||n.complete))return o;o.then((e=>{n.success&&n.success(e),n.complete&&n.complete(e)}),(e=>{n.fail&&n.fail(e),n.complete&&n.complete(e)}))}:function(t){if(!((t=t||{}).success||t.fail||t.complete))return e.call(this,t);e.call(this,t).then((e=>{t.success&&t.success(e),t.complete&&t.complete(e)}),(e=>{t.fail&&t.fail(e),t.complete&&t.complete(e)}))}}class A extends Error{constructor(e){super(e.message),this.errMsg=e.message||\"\",Object.defineProperties(this,{code:{get:()=>e.code},requestId:{get:()=>e.requestId},message:{get(){return this.errMsg},set(e){this.errMsg=e}}})}}let P;function I(){const e=uni.getLocale&&uni.getLocale()||\"en\";if(P)return{...P,LOCALE:e};const{deviceId:t,platform:n}=uni.getSystemInfoSync();return P={PLATFORM:h,OS:n,APPID:p,DEVICEID:t,CLIENT_SDK_VERSION:\"1.0.21\"},{...P,LOCALE:e}}var b={sign:function(e,t){let n=\"\";return Object.keys(e).sort().forEach((function(t){e[t]&&(n=n+\"&\"+t+\"=\"+e[t])})),n=n.slice(1),r(n,t).toString()},wrappedRequest:function(e,t){return new Promise(((n,s)=>{t(Object.assign(e,{complete(e){e||(e={}),u&&\"h5\"===h&&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 A({code:\"SYS_ERR\",message:e.errMsg||\"request:fail\",requestId:t}));const r=e.data;if(r.error)return s(new A({code:r.error.code,message:r.error.message,requestId:t}));r.result=r.data,r.requestId=t,delete r.data,n(r)}}))}))}};var E={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()},O={\"uniCloud.init.paramRequired\":\"{param} required\",\"uniCloud.uploadFile.fileError\":\"filePath should be instance of File\"};const{t:C}=e({\"zh-Hans\":{\"uniCloud.init.paramRequired\":\"缺少参数:{param}\",\"uniCloud.uploadFile.fileError\":\"filePath应为File对象\"},\"zh-Hant\":{\"uniCloud.init.paramRequired\":\"缺少参数:{param}\",\"uniCloud.uploadFile.fileError\":\"filePath应为File对象\"},en:O,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:O},\"zh-Hans\");var U=class{constructor(e){[\"spaceId\",\"clientSecret\"].forEach((t=>{if(!Object.prototype.hasOwnProperty.call(e,t))throw new Error(C(\"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=E,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 A({code:\"AUTH_FAILED\",message:\"获取accessToken失败\"})))}))),(e=>(this._getAccessTokenPromiseStatus=\"rejected\",Promise.reject(e)))),this._getAccessTokenPromise}authorize(){this.getAccessToken()}callFunction(e){const t={method:\"serverless.function.runtime.invoke\",params:JSON.stringify({functionTarget:e.name,functionArgs:e.data||{}})};return this.request(this.setupRequest(t))}getOSSUploadOptionsFromPath(e){const t={method:\"serverless.file.resource.generateProximalSign\",params:JSON.stringify(e)};return this.request(this.setupRequest(t))}uploadFileToOSS({url:e,formData:t,name:n,filePath:s,fileType:r,onUploadProgress:o}){return new Promise(((i,a)=>{const c=this.adapter.uploadFile({url:e,formData:t,name:n,filePath:s,fileType:r,header:{\"X-OSS-server-side-encrpytion\":\"AES256\"},success(e){e&&e.statusCode<400?i(e):a(new A({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))},fail(e){a(new A({code:e.code||\"UPLOAD_FAILED\",message:e.message||e.errMsg||\"文件上传失败\"}))}});\"function\"==typeof o&&c&&\"function\"==typeof c.onProgressUpdate&&c.onProgressUpdate((e=>{o({loaded:e.totalBytesSent,total:e.totalBytesExpectedToSend})}))}))}reportOSSUpload(e){const t={method:\"serverless.file.resource.report\",params:JSON.stringify(e)};return this.request(this.setupRequest(t))}uploadFile({filePath:e,cloudPath:t,fileType:n=\"image\",onUploadProgress:s,config:r}){if(\"string\"!==o(t))throw new A({code:\"INVALID_PARAM\",message:\"cloudPath必须为字符串类型\"});if(!(t=t.trim()))throw new A({code:\"CLOUDPATH_REQUIRED\",message:\"cloudPath不可为空\"});if(/:\\/\\//.test(t))throw new A({code:\"INVALID_PARAM\",message:\"cloudPath不合法\"});const i=r&&r.envType||this.config.envType;let a,c;return this.getOSSUploadOptionsFromPath({env:i,filename:t}).then((t=>{const r=t.result;a=r.id,c=\"https://\"+r.cdnDomain+\"/\"+r.ossPath;const o={url:\"https://\"+r.host,formData:{\"Cache-Control\":\"max-age=2592000\",\"Content-Disposition\":\"attachment\",OSSAccessKeyId:r.accessKeyId,Signature:r.signature,host:r.host,id:a,key:r.ossPath,policy:r.policy,success_action_status:200},fileName:\"file\",name:\"file\",filePath:e,fileType:n};return this.uploadFileToOSS(Object.assign({},o,{onUploadProgress:s}))})).then((()=>this.reportOSSUpload({id:a}))).then((t=>new Promise(((n,s)=>{t.success?n({success:!0,filePath:e,fileID:c}):s(new A({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 A({code:\"INVALID_PARAM\",message:\"fileList的元素必须是非空的字符串\"})),t({fileList:e.map((e=>({fileID:e,tempFileURL:e})))})}))}};var x={init(e){const t=new U(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 D=\"undefined\"!=typeof location&&\"http:\"===location.protocol?\"http:\":\"https:\";var R;!function(e){e.local=\"local\",e.none=\"none\",e.session=\"session\"}(R||(R={}));var q=function(){};const L=()=>{let e;if(!Promise){e=()=>{},e.promise={};const t=()=>{throw new Error('Your Node runtime does support ES6 Promises. Set \"global.Promise\" to your preferred implementation of promises.')};return Object.defineProperty(e.promise,\"then\",{get:t}),Object.defineProperty(e.promise,\"catch\",{get:t}),e}const t=new Promise(((t,n)=>{e=(e,s)=>e?n(e):t(s)}));return e.promise=t,e};function F(e){return void 0===e}function N(e){return\"[object Null]\"===Object.prototype.toString.call(e)}var $;function M(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\"}($||($={}));const j={adapter:null,runtime:void 0},B=[\"anonymousUuidKey\"];class K extends q{constructor(){super(),j.adapter.root.tcbObject||(j.adapter.root.tcbObject={})}setItem(e,t){j.adapter.root.tcbObject[e]=t}getItem(e){return j.adapter.root.tcbObject[e]}removeItem(e){delete j.adapter.root.tcbObject[e]}clear(){delete j.adapter.root.tcbObject}}function H(e,t){switch(e){case\"local\":return t.localStorage||new K;case\"none\":return new K;default:return t.sessionStorage||new K}}class W{constructor(e){if(!this._storage){this._persistence=j.adapter.primaryStorage||e.persistence,this._storage=H(this._persistence,j.adapter);const t=`access_token_${e.env}`,n=`access_token_expire_${e.env}`,s=`refresh_token_${e.env}`,r=`anonymous_uuid_${e.env}`,o=`login_type_${e.env}`,i=`user_info_${e.env}`;this.keys={accessTokenKey:t,accessTokenExpireKey:n,refreshTokenKey:s,anonymousUuidKey:r,loginTypeKey:o,userInfoKey:i}}}updatePersistence(e){if(e===this._persistence)return;const t=\"local\"===this._persistence;this._persistence=e;const n=H(e,j.adapter);for(const e in this.keys){const s=this.keys[e];if(t&&B.includes(e))continue;const r=this._storage.getItem(s);F(r)||N(r)||(n.setItem(s,r),this._storage.removeItem(s))}this._storage=n}setStore(e,t,n){if(!this._storage)return;const s={version:n||\"localCachev1\",content:t},r=JSON.stringify(s);try{this._storage.setItem(e,r)}catch(e){throw e}}getStore(e,t){try{if(!this._storage)return}catch(e){return\"\"}t=t||\"localCachev1\";const n=this._storage.getItem(e);if(!n)return\"\";if(n.indexOf(t)>=0){return JSON.parse(n).content}return\"\"}removeStore(e){this._storage.removeItem(e)}}const z={},J={};function V(e){return z[e]}class Y{constructor(e,t){this.data=t||null,this.name=e}}class X extends Y{constructor(e,t){super(\"error\",{error:e,data:t}),this.error=e}}const G=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 X)return console.error(e.error),this;const n=\"string\"==typeof e?new Y(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 Q(e,t){G.on(e,t)}function Z(e,t={}){G.fire(e,t)}function ee(e,t){G.off(e,t)}const te=\"loginStateChanged\",ne=\"loginStateExpire\",se=\"loginTypeChanged\",re=\"anonymousConverted\",oe=\"refreshAccessToken\";var ie;!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\"}(ie||(ie={}));const ae=[\"auth.getJwt\",\"auth.logout\",\"auth.signInWithTicket\",\"auth.signInAnonymously\",\"auth.signIn\",\"auth.fetchAccessTokenWithRefreshToken\",\"auth.signUpWithEmailAndPassword\",\"auth.activateEndUserMail\",\"auth.sendPasswordResetEmail\",\"auth.resetPasswordWithToken\",\"auth.isUsernameRegistered\"],ce={\"X-SDK-Version\":\"1.3.5\"};function ue(e,t,n){const s=e[t];e[t]=function(t){const r={},o={};n.forEach((n=>{const{data:s,headers:i}=n.call(e,t);Object.assign(r,s),Object.assign(o,i)}));const i=t.data;return i&&(()=>{var e;if(e=i,\"[object FormData]\"!==Object.prototype.toString.call(e))t.data={...i,...r};else for(const e in r)i.append(e,r[e])})(),t.headers={...t.headers||{},...o},s.call(e,t)}}function he(){const e=Math.random().toString(16).slice(2);return{data:{seqId:e},headers:{...ce,\"x-seqid\":e}}}class le{constructor(e={}){var t;this.config=e,this._reqClass=new j.adapter.reqClass({timeout:this.config.timeout,timeoutMsg:`请求在${this.config.timeout/1e3}s内未完成,已中断`,restrictedMethods:[\"post\"]}),this._cache=V(this.config.env),this._localCache=(t=this.config.env,J[t]),ue(this._reqClass,\"post\",[he]),ue(this._reqClass,\"upload\",[he]),ue(this._reqClass,\"download\",[he])}async post(e){return await this._reqClass.post(e)}async upload(e){return await this._reqClass.upload(e)}async download(e){return await this._reqClass.download(e)}async refreshAccessToken(){let e,t;this._refreshAccessTokenPromise||(this._refreshAccessTokenPromise=this._refreshAccessToken());try{e=await this._refreshAccessTokenPromise}catch(e){t=e}if(this._refreshAccessTokenPromise=null,this._shouldRefreshAccessTokenHook=null,t)throw t;return e}async _refreshAccessToken(){const{accessTokenKey:e,accessTokenExpireKey:t,refreshTokenKey:n,loginTypeKey:s,anonymousUuidKey:r}=this._cache.keys;this._cache.removeStore(e),this._cache.removeStore(t);let o=this._cache.getStore(n);if(!o)throw new Error(\"未登录CloudBase\");const i={refresh_token:o},a=await this.request(\"auth.fetchAccessTokenWithRefreshToken\",i);if(a.data.code){const{code:e}=a.data;if(\"SIGN_PARAM_INVALID\"===e||\"REFRESH_TOKEN_EXPIRED\"===e||\"INVALID_REFRESH_TOKEN\"===e){if(this._cache.getStore(s)===ie.ANONYMOUS&&\"INVALID_REFRESH_TOKEN\"===e){const e=this._cache.getStore(r),t=this._cache.getStore(n),s=await this.send(\"auth.signInAnonymously\",{anonymous_uuid:e,refresh_token:t});return this.setRefreshToken(s.refresh_token),this._refreshAccessToken()}Z(ne),this._cache.removeStore(n)}throw new Error(`刷新access token失败:${a.data.code}`)}if(a.data.access_token)return Z(oe),this._cache.setStore(e,a.data.access_token),this._cache.setStore(t,a.data.access_token_expire+Date.now()),{accessToken:a.data.access_token,accessTokenExpire:a.data.access_token_expire};a.data.refresh_token&&(this._cache.removeStore(n),this._cache.setStore(n,a.data.refresh_token),this._refreshAccessToken())}async getAccessToken(){const{accessTokenKey:e,accessTokenExpireKey:t,refreshTokenKey:n}=this._cache.keys;if(!this._cache.getStore(n))throw new Error(\"refresh token不存在,登录状态异常\");let s=this._cache.getStore(e),r=this._cache.getStore(t),o=!0;return this._shouldRefreshAccessTokenHook&&!await this._shouldRefreshAccessTokenHook(s,r)&&(o=!1),(!s||!r||r{e.wxOpenId&&e.wxPublicId&&(t=!0)})),{users:n,hasPrimaryUid:t}}setPrimaryUid(e){return this._request.send(\"auth.setPrimaryUid\",{uid:e})}unlink(e){return this._request.send(\"auth.unlink\",{platform:e})}async update(e){const{nickName:t,gender:n,avatarUrl:s,province:r,country:o,city:i}=e,{data:a}=await this._request.send(\"auth.updateUserInfo\",{nickName:t,gender:n,avatarUrl:s,province:r,country:o,city:i});this.setLocalUserInfo(a)}async refresh(){const{data:e}=await this._request.send(\"auth.getUserInfo\",{});return this.setLocalUserInfo(e),e}setUserInfo(){const{userInfoKey:e}=this._cache.keys,t=this._cache.getStore(e);[\"uid\",\"loginType\",\"openid\",\"wxOpenId\",\"wxPublicId\",\"unionId\",\"qqMiniOpenId\",\"email\",\"hasPassword\",\"customUserId\",\"nickName\",\"gender\",\"avatarUrl\"].forEach((e=>{this[e]=t[e]})),this.location={country:t.country,province:t.province,city:t.city}}setLocalUserInfo(e){const{userInfoKey:t}=this._cache.keys;this._cache.setStore(t,e),this.setUserInfo()}}class me{constructor(e){if(!e)throw new Error(\"envId is not defined\");this._cache=V(e);const{refreshTokenKey:t,accessTokenKey:n,accessTokenExpireKey:s}=this._cache.keys,r=this._cache.getStore(t),o=this._cache.getStore(n),i=this._cache.getStore(s);this.credential={refreshToken:r,accessToken:o,accessTokenExpire:i},this.user=new ge(e)}get isAnonymousAuth(){return this.loginType===ie.ANONYMOUS}get isCustomAuth(){return this.loginType===ie.CUSTOM}get isWeixinAuth(){return this.loginType===ie.WECHAT||this.loginType===ie.WECHAT_OPEN||this.loginType===ie.WECHAT_PUBLIC}get loginType(){return this._cache.getStore(this._cache.keys.loginTypeKey)}}class ye extends pe{async signIn(){this._cache.updatePersistence(\"local\");const{anonymousUuidKey:e,refreshTokenKey:t}=this._cache.keys,n=this._cache.getStore(e)||void 0,s=this._cache.getStore(t)||void 0,r=await this._request.send(\"auth.signInAnonymously\",{anonymous_uuid:n,refresh_token:s});if(r.uuid&&r.refresh_token){this._setAnonymousUUID(r.uuid),this.setRefreshToken(r.refresh_token),await this._request.refreshAccessToken(),Z(te),Z(se,{env:this.config.env,loginType:ie.ANONYMOUS,persistence:\"local\"});const e=new me(this.config.env);return await e.user.refresh(),e}throw new Error(\"匿名登录失败\")}async linkAndRetrieveDataWithTicket(e){const{anonymousUuidKey:t,refreshTokenKey:n}=this._cache.keys,s=this._cache.getStore(t),r=this._cache.getStore(n),o=await this._request.send(\"auth.linkAndRetrieveDataWithTicket\",{anonymous_uuid:s,refresh_token:r,ticket:e});if(o.refresh_token)return this._clearAnonymousUUID(),this.setRefreshToken(o.refresh_token),await this._request.refreshAccessToken(),Z(re,{env:this.config.env}),Z(se,{loginType:ie.CUSTOM,persistence:\"local\"}),{credential:{refreshToken:o.refresh_token}};throw new Error(\"匿名转化失败\")}_setAnonymousUUID(e){const{anonymousUuidKey:t,loginTypeKey:n}=this._cache.keys;this._cache.removeStore(t),this._cache.setStore(t,e),this._cache.setStore(n,ie.ANONYMOUS)}_clearAnonymousUUID(){this._cache.removeStore(this._cache.keys.anonymousUuidKey)}}class _e extends pe{async signIn(e){if(\"string\"!=typeof e)throw new Error(\"ticket must be a string\");const{refreshTokenKey:t}=this._cache.keys,n=await this._request.send(\"auth.signInWithTicket\",{ticket:e,refresh_token:this._cache.getStore(t)||\"\"});if(n.refresh_token)return this.setRefreshToken(n.refresh_token),await this._request.refreshAccessToken(),Z(te),Z(se,{env:this.config.env,loginType:ie.CUSTOM,persistence:this.config.persistence}),await this.refreshUserInfo(),new me(this.config.env);throw new Error(\"自定义登录失败\")}}class we extends pe{async signIn(e,t){if(\"string\"!=typeof e)throw new Error(\"email must be a string\");const{refreshTokenKey:n}=this._cache.keys,s=await this._request.send(\"auth.signIn\",{loginType:\"EMAIL\",email:e,password:t,refresh_token:this._cache.getStore(n)||\"\"}),{refresh_token:r,access_token:o,access_token_expire:i}=s;if(r)return this.setRefreshToken(r),o&&i?this.setAccessToken(o,i):await this._request.refreshAccessToken(),await this.refreshUserInfo(),Z(te),Z(se,{env:this.config.env,loginType:ie.EMAIL,persistence:this.config.persistence}),new me(this.config.env);throw s.code?new Error(`邮箱登录失败: [${s.code}] ${s.message}`):new Error(\"邮箱登录失败\")}async activate(e){return this._request.send(\"auth.activateEndUserMail\",{token:e})}async resetPasswordWithToken(e,t){return this._request.send(\"auth.resetPasswordWithToken\",{token:e,newPassword:t})}}class ke extends pe{async signIn(e,t){if(\"string\"!=typeof e)throw new Error(\"username must be a string\");\"string\"!=typeof t&&(t=\"\",console.warn(\"password is empty\"));const{refreshTokenKey:n}=this._cache.keys,s=await this._request.send(\"auth.signIn\",{loginType:ie.USERNAME,username:e,password:t,refresh_token:this._cache.getStore(n)||\"\"}),{refresh_token:r,access_token_expire:o,access_token:i}=s;if(r)return this.setRefreshToken(r),i&&o?this.setAccessToken(i,o):await this._request.refreshAccessToken(),await this.refreshUserInfo(),Z(te),Z(se,{env:this.config.env,loginType:ie.USERNAME,persistence:this.config.persistence}),new me(this.config.env);throw s.code?new Error(`用户名密码登录失败: [${s.code}] ${s.message}`):new Error(\"用户名密码登录失败\")}}class Se{constructor(e){this.config=e,this._cache=V(e.env),this._request=fe(e.env),this._onAnonymousConverted=this._onAnonymousConverted.bind(this),this._onLoginTypeChanged=this._onLoginTypeChanged.bind(this),Q(se,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 ye(this.config)}customAuthProvider(){return new _e(this.config)}emailAuthProvider(){return new we(this.config)}usernameAuthProvider(){return new ke(this.config)}async signInAnonymously(){return new ye(this.config).signIn()}async signInWithEmailAndPassword(e,t){return new we(this.config).signIn(e,t)}signInWithUsernameAndPassword(e,t){return new ke(this.config).signIn(e,t)}async linkAndRetrieveDataWithTicket(e){this._anonymousAuthProvider||(this._anonymousAuthProvider=new ye(this.config)),Q(re,this._onAnonymousConverted);return await this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e)}async signOut(){if(this.loginType===ie.ANONYMOUS)throw new Error(\"匿名用户不支持登出操作\");const{refreshTokenKey:e,accessTokenKey:t,accessTokenExpireKey:n}=this._cache.keys,s=this._cache.getStore(e);if(!s)return;const r=await this._request.send(\"auth.logout\",{refresh_token:s});return this._cache.removeStore(e),this._cache.removeStore(t),this._cache.removeStore(n),Z(te),Z(se,{env:this.config.env,loginType:ie.NULL,persistence:this.config.persistence}),r}async signUpWithEmailAndPassword(e,t){return this._request.send(\"auth.signUpWithEmailAndPassword\",{email:e,password:t})}async sendPasswordResetEmail(e){return this._request.send(\"auth.sendPasswordResetEmail\",{email:e})}onLoginStateChanged(e){Q(te,(()=>{const t=this.hasLoginState();e.call(this,t)}));const t=this.hasLoginState();e.call(this,t)}onLoginStateExpired(e){Q(ne,e.bind(this))}onAccessTokenRefreshed(e){Q(oe,e.bind(this))}onAnonymousConverted(e){Q(re,e.bind(this))}onLoginTypeChanged(e){Q(se,(()=>{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 me(this.config.env):null}async isUsernameRegistered(e){if(\"string\"!=typeof e)throw new Error(\"username must be a string\");const{data:t}=await this._request.send(\"auth.isUsernameRegistered\",{username:e});return t&&t.isRegistered}getLoginState(){return Promise.resolve(this.hasLoginState())}async signInWithTicket(e){return new _e(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 ve=function(e,t){t=t||L();const n=fe(this.config.env),{cloudPath:s,filePath:r,onUploadProgress:o,fileType:i=\"image\"}=e;return n.send(\"storage.getUploadMetadata\",{path:s}).then((e=>{const{data:{url:a,authorization:c,token:u,fileId:h,cosFileId:l},requestId:d}=e,f={key:s,signature:c,\"x-cos-meta-fileid\":l,success_action_status:\"201\",\"x-cos-security-token\":u};n.upload({url:a,data:f,file:r,name:s,fileType:i,onUploadProgress:o}).then((e=>{201===e.statusCode?t(null,{fileID:h,requestId:d}):t(new Error(`STORAGE_REQUEST_FAIL: ${e.data}`))})).catch((e=>{t(e)}))})).catch((e=>{t(e)})),t.promise},Te=function(e,t){t=t||L();const n=fe(this.config.env),{cloudPath:s}=e;return n.send(\"storage.getUploadMetadata\",{path:s}).then((e=>{t(null,e)})).catch((e=>{t(e)})),t.promise},Ae=function({fileList:e},t){if(t=t||L(),!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 fe(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},Pe=function({fileList:e},t){t=t||L(),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 fe(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},Ie=async function({fileID:e},t){const n=(await Pe.call(this,{fileList:[{fileID:e,maxAge:600}]})).fileList[0];if(\"SUCCESS\"!==n.code)return t?t(n):new Promise((e=>{e(n)}));const s=fe(this.config.env);let r=n.download_url;if(r=encodeURI(r),!t)return s.download({url:r});t(await s.download({url:r}))},be=function({name:e,data:t,query:n,parse:s,search:r},o){const i=o||L();let a;try{a=t?JSON.stringify(t):\"\"}catch(e){return Promise.reject(e)}if(!e)return Promise.reject(new Error(\"函数名不能为空\"));const c={inQuery:n,parse:s,search:r,function_name:e,request_data:a};return fe(this.config.env).send(\"functions.invokeFunction\",c).then((e=>{if(e.code)i(null,e);else{let t=e.data.response_data;if(s)i(null,{result:t,requestId:e.requestId});else try{t=JSON.parse(e.data.response_data),i(null,{result:t,requestId:e.requestId})}catch(e){i(new Error(\"response data must be json\"))}}return i.promise})).catch((e=>{i(e)})),i.promise},Ee={timeout:15e3,persistence:\"session\"},Oe={};class Ce{constructor(e){this.config=e||this.config,this.authObj=void 0}init(e){switch(j.adapter||(this.requestClient=new j.adapter.reqClass({timeout:e.timeout||5e3,timeoutMsg:`请求在${(e.timeout||5e3)/1e3}s内未完成,已中断`})),this.config={...Ee,...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 Ce(this.config)}auth({persistence:e}={}){if(this.authObj)return this.authObj;const t=e||j.adapter.primaryStorage||Ee.persistence;var n;return t!==this.config.persistence&&(this.config.persistence=t),function(e){const{env:t}=e;z[t]=new W(e),J[t]=new W({...e,persistence:\"local\"})}(this.config),n=this.config,de[n.env]=new le(n),this.authObj=new Se(this.config),this.authObj}on(e,t){return Q.apply(this,[e,t])}off(e,t){return ee.apply(this,[e,t])}callFunction(e,t){return be.apply(this,[e,t])}deleteFile(e,t){return Ae.apply(this,[e,t])}getTempFileURL(e,t){return Pe.apply(this,[e,t])}downloadFile(e,t){return Ie.apply(this,[e,t])}uploadFile(e,t){return ve.apply(this,[e,t])}getUploadMetadata(e,t){return Te.apply(this,[e,t])}registerExtension(e){Oe[e.name]=e}async invokeExtension(e,t){const n=Oe[e];if(!n)throw Error(`扩展${e} 必须先注册`);return await n.invoke(t,this)}useAdapters(e){const{adapter:t,runtime:n}=M(e)||{};t&&(j.adapter=t),n&&(j.runtime=n)}}var Ue=new Ce;function xe(e,t,n){void 0===n&&(n={});var s=/\\?/.test(t),r=\"\";for(var o in n)\"\"===r?!s&&(t+=\"?\"):r+=\"&\",r+=o+\"=\"+encodeURIComponent(n[o]);return/^http(s)?:\\/\\//.test(t+=r)?t:\"\"+e+t}class De{post(e){const{url:t,data:n,headers:s}=e;return new Promise(((e,r)=>{E.request({url:xe(\"https:\",t),data:n,method:\"POST\",header:s,success(t){e(t)},fail(e){r(e)}})}))}upload(e){return new Promise(((t,n)=>{const{url:s,file:r,data:o,headers:i,fileType:a}=e,c=E.uploadFile({url:xe(\"https:\",s),name:\"file\",formData:Object.assign({},o),filePath:r,fileType:a,header:i,success(e){const n={statusCode:e.statusCode,data:e.data||{}};200===e.statusCode&&o.success_action_status&&(n.statusCode=parseInt(o.success_action_status,10)),t(n)},fail(e){u&&\"mp-alipay\"===h&&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 Re={setItem(e,t){E.setStorageSync(e,t)},getItem:e=>E.getStorageSync(e),removeItem(e){E.removeStorageSync(e)},clear(){E.clearStorageSync()}};var qe={genAdapter:function(){return{root:{},reqClass:De,localStorage:Re,primaryStorage:\"local\"}},isMatch:function(){return!0},runtime:\"uni_app\"};Ue.useAdapters(qe);const Le=Ue,Fe=Le.init;Le.init=function(e){e.env=e.spaceId;const t=Fe.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]=T(t[e]).bind(t)})),t},t.customAuth=t.auth,t};var Ne=Le;function $e(){return{token:E.getStorageSync(\"uni_id_token\")||E.getStorageSync(\"uniIdToken\"),tokenExpired:E.getStorageSync(\"uni_id_token_expired\")}}function Me(){if(!u||\"h5\"!==h)return;uni.getStorageSync(\"__LAST_DCLOUD_APPID\")!==p&&(uni.setStorageSync(\"__LAST_DCLOUD_APPID\",p),console.warn(\"检测到当前项目与上次运行到此端口的项目不一致,自动清理uni-id保存的token信息(仅开发调试时生效)\"),E.removeStorageSync(\"uni_id_token\"),E.removeStorageSync(\"uniIdToken\"),E.removeStorageSync(\"uni_id_token_expired\"))}var je=class extends U{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 r=I();s[\"x-client-info\"]=JSON.stringify(r);const{token:o}=$e();return s[\"x-client-token\"]=o,{url:this.config.requestUrl,method:\"POST\",data:n,dataType:\"json\",header:JSON.parse(JSON.stringify(s))}}uploadFileToOSS({url:e,formData:t,name:n,filePath:s,fileType:r,onUploadProgress:o}){return new Promise(((i,a)=>{const c=this.adapter.uploadFile({url:e,formData:t,name:n,filePath:s,fileType:r,success(e){e&&e.statusCode<400?i(e):a(new A({code:\"UPLOAD_FAILED\",message:\"文件上传失败\"}))},fail(e){a(new A({code:e.code||\"UPLOAD_FAILED\",message:e.message||e.errMsg||\"文件上传失败\"}))}});\"function\"==typeof o&&c&&\"function\"==typeof c.onProgressUpdate&&c.onProgressUpdate((e=>{o({loaded:e.totalBytesSent,total:e.totalBytesExpectedToSend})}))}))}uploadFile({filePath:e,cloudPath:t,fileType:n=\"image\",onUploadProgress:s}){if(!t)throw new A({code:\"CLOUDPATH_REQUIRED\",message:\"cloudPath不可为空\"});let r;return this.getOSSUploadOptionsFromPath({cloudPath:t}).then((t=>{const{url:o,formData:i,name:a}=t.result;r=t.result.fileUrl;const c={url:o,formData:i,name:a,filePath:e,fileType:n};return this.uploadFileToOSS(Object.assign({},c,{onUploadProgress:s}))})).then((()=>this.reportOSSUpload({cloudPath:t}))).then((t=>new Promise(((n,s)=>{t.success?n({success:!0,filePath:e,fileID:r}):s(new A({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 Be={init(e){const t=new je(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 Ke({data:e}){let t;t=I();const n=JSON.parse(JSON.stringify(e||{}));if(Object.assign(n,{clientInfo:t}),!n.uniIdToken){const{token:e}=$e();e&&(n.uniIdToken=e)}return n}function He({name:e,data:t}){const{localAddress:n,localPort:s}=this,r={aliyun:\"aliyun\",tencent:\"tcb\"}[this.config.provider],o=this.config.spaceId,i=`http://${n}:${s}/system/check-function`,a=`http://${n}:${s}/cloudfunctions/${e}`;return new Promise(((t,n)=>{E.request({method:\"POST\",url:i,data:{name:e,platform:h,provider:r,spaceId:o},timeout:3e3,success(e){t(e)},fail(){t({data:{code:\"NETWORK_ERROR\",message:\"连接本地调试服务失败,请检查客户端是否和主机在同一局域网下,自动切换为已部署的云函数。\"}})}})})).then((({data:e}={})=>{const{code:t,message:n}=e||{};return{code:0===t?0:t||\"SYS_ERR\",message:n||\"SYS_ERR\"}})).then((({code:n,message:s})=>{if(0!==n){switch(n){case\"MODULE_ENCRYPTED\":console.error(`此云函数(${e})依赖加密公共模块不可本地调试,自动切换为云端已部署的云函数`);break;case\"FUNCTION_ENCRYPTED\":console.error(`此云函数(${e})已加密不可本地调试,自动切换为云端已部署的云函数`);break;case\"ACTION_ENCRYPTED\":console.error(s||\"需要访问加密的uni-clientDB-action,自动切换为云端环境\");break;case\"NETWORK_ERROR\":{const e=\"连接本地调试服务失败,请检查客户端是否和主机在同一局域网下\";throw console.error(e),new Error(e)}case\"SWITCH_TO_CLOUD\":break;default:{const e=`检测本地调试服务出现错误:${s},请检查网络环境或重启客户端再试`;throw console.error(e),new Error(e)}}return this._originCallFunction({name:e,data:t})}return new Promise(((e,n)=>{const s=Ke.call(this,{data:t});E.request({method:\"POST\",url:a,data:{provider:r,platform:h,param:s},success:({statusCode:t,data:s}={})=>!t||t>=400?n(new A({code:s.code||\"SYS_ERR\",message:s.message||\"request:fail\"})):e({result:s}),fail(e){n(new A({code:e.code||e.errCode||\"SYS_ERR\",message:e.message||e.errMsg||\"request:fail\"}))}})}))}))}const We=[{rule:/fc_function_not_found|FUNCTION_NOT_FOUND/,content:\",云函数[{functionName}]在云端不存在,请检查此云函数名称是否正确以及该云函数是否已上传到服务空间\",mode:\"append\"}];var ze=/[\\\\^$.*+?()[\\]{}|]/g,Je=RegExp(ze.source);function Ve(e,t,n){return e.replace(new RegExp((s=t)&&Je.test(s)?s.replace(ze,\"\\\\$&\"):s,\"g\"),n);var s}function Ye({functionName:e,result:t,logPvd:n}){if(this.config.useDebugFunction&&t&&t.requestId){const s=JSON.stringify({spaceId:this.config.spaceId,functionName:e,requestId:t.requestId});console.log(`[${n}-request]${s}[/${n}-request]`)}}function Xe(e){const t=e.callFunction,n=function(n){const s=n.name;n.data=Ke.call(e,{data:n.data});const r={aliyun:\"aliyun\",tencent:\"tcb\"}[this.config.provider];return t.call(this,n).then((e=>(Ye.call(this,{functionName:s,result:e,logPvd:r}),Promise.resolve(e))),(e=>(Ye.call(this,{functionName:s,result:e,logPvd:r}),e&&e.message&&(e.message=function({message:e=\"\",extraInfo:t={},formatter:n=[]}={}){for(let s=0;s(console.warn(\"当前返回结果为Promise类型,不可直接访问其result属性,详情请参考:https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise\"),{})}),s}}const Ge=Symbol(\"CLIENT_DB_INTERNAL\");function Qe(e,t){return e.then=\"DoNotReturnProxyWithAFunctionNamedThen\",e._internalType=Ge,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 Ze(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 et=[\"db.Geo\",\"db.command\",\"command.aggregate\"];function tt(e,t){return et.indexOf(`${e}.${t}`)>-1}function nt(e){switch(o(e)){case\"array\":return e.map((e=>nt(e)));case\"object\":return e._internalType===Ge||Object.keys(e).forEach((t=>{e[t]=nt(e[t])})),e;case\"regexp\":return{$regexp:{source:e.source,flags:e.flags}};case\"date\":return{$date:e.toISOString()};default:return e}}class st{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:nt(e.$param)})))}}getAction(){const e=this.toJSON().$db.find((e=>\"action\"===e.$method));return e&&e.$param&&e.$param[0]}getCommand(){return{$db:this.toJSON().$db.filter((e=>\"action\"!==e.$method))}}get useAggregate(){let e=this,t=!1;for(;e.prevStage;){e=e.prevStage;const n=e.content.$method;if(\"aggregate\"===n||\"pipeline\"===n){t=!0;break}}return t}get count(){if(!this.useAggregate)return function(){return this._send(\"count\",Array.from(arguments))};const e=this;return function(){return rt({$method:\"count\",$param:nt(Array.from(arguments))},e,this._database)}}get(){return this._send(\"get\",Array.from(arguments))}add(){return this._send(\"add\",Array.from(arguments))}remove(){return this._send(\"remove\",Array.from(arguments))}update(){return this._send(\"update\",Array.from(arguments))}end(){return this._send(\"end\",Array.from(arguments))}set(){throw new Error(\"clientDB禁止使用set方法\")}_send(e,t){const n=this.getAction(),s=this.getCommand();if(s.$db.push({$method:e,$param:nt(t)}),u){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 rt(e,t,n){return Qe(new st(e,t,n),{get(e,t){let s=\"db\";return e&&e.content&&(s=e.content.$method),tt(s,t)?rt({$method:t},e,n):function(){return rt({$method:t,$param:nt(Array.from(arguments))},e,n)}}})}function ot({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 it extends class{constructor({uniClient:e={}}={}){this._uniClient=e,this._authCallBacks={},this._dbCallBacks={},e.isDefault&&(this._dbCallBacks=m(\"_globalUniCloudDatabaseCallback\")),this.auth=Ze(this._authCallBacks),Object.assign(this,Ze(this._dbCallBacks)),this.env=Qe({},{get:(e,t)=>({$env:t})}),this.Geo=Qe({},{get:(e,t)=>ot({path:[\"Geo\"],method:t})}),this.serverDate=ot({path:[],method:\"serverDate\"}),this.RegExp=ot({path:[],method:\"RegExp\"})}getCloudEnv(e){if(\"string\"!=typeof e||!e.trim())throw new Error(\"getCloudEnv参数错误\");return{$env:e.replace(\"$cloudEnv_\",\"\")}}_callback(e,t){const n=this._dbCallBacks;n[e]&&n[e].forEach((e=>{e(...t)}))}_callbackAuth(e,t){const n=this._authCallBacks;n[e]&&n[e].forEach((e=>{e(...t)}))}multiSend(){const e=Array.from(arguments),t=e.map((e=>{const t=e.getAction(),n=e.getCommand();if(\"getTemp\"!==n.$db[n.$db.length-1].$method)throw new Error(\"multiSend只支持子命令内使用getTemp\");return{action:t,command:n}}));return this._callCloudFunction({multiCommand:t,queryList:e})}}{_callCloudFunction({action:e,command:t,multiCommand:n,queryList:s}){function r(e,t){if(n&&s)for(let n=0;ni.callFunction({name:\"DCloud-clientDB\",data:{action:e,command:t,multiCommand:n}}))).then((e=>{const{code:t,message:n,token:s,tokenExpired:o,systemInfo:i=[]}=e.result;if(i)for(let e=0;e(console.warn(\"affectedDocs不再推荐使用,请使用inserted/deleted/updated/data.length替代\"),c)}),S(v(\"database\",\"success\"),e).then((()=>S(v(\"database\",\"complete\"),e))).then((()=>(r(e,null),Promise.resolve(e))))}),(e=>{const t=new a(e.message,e.code||\"SYSTEM_ERROR\");return this._callback(\"error\",[t]),/fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e.message)&&console.warn(\"clientDB未初始化,请在web控制台保存一次schema以开启clientDB\"),S(v(\"database\",\"fail\"),e).then((()=>S(v(\"database\",\"complete\"),e))).then((()=>(r(null,e),Promise.reject(e))))}))}}function at(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 Qe(new e(t),{get:(e,t)=>tt(\"db\",t)?rt({$method:t},null,e):function(){return rt({$method:t,$param:nt(Array.from(arguments))},null,e)}})}(it,{uniClient:e});return this._database=n,n}}let ct;const ut=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",ht=/^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;function lt(){const e=$e().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(ct(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}ct=\"function\"!=typeof atob?function(e){if(e=String(e).replace(/[\\t\\n\\f\\r ]+/g,\"\"),!ht.test(e))throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\");var t;e+=\"==\".slice(2-(3&e.length));for(var n,s,r=\"\",o=0;o>16&255):64===s?String.fromCharCode(t>>16&255,t>>8&255):String.fromCharCode(t>>16&255,t>>8&255,255&t);return r}:atob;var dt=t(n((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0});const n=\"chooseAndUploadFile:ok\",s=\"chooseAndUploadFile:fail\";function r(e,t){return e.tempFiles.forEach(((e,n)=>{e.name||(e.name=e.path.substring(e.path.lastIndexOf(\"/\")+1)),t&&(e.fileType=t),e.cloudPath=Date.now()+\"_\"+n+e.name.substring(e.name.lastIndexOf(\".\"))})),e.tempFilePaths||(e.tempFilePaths=e.tempFiles.map((e=>e.path))),e}function o(e,t,{onChooseFile:s,onUploadProgress:r}){return t.then((e=>{if(s){const t=s(e);if(void 0!==t)return Promise.resolve(t).then((t=>void 0===t?e:t))}return e})).then((t=>!1===t?{errMsg:n,tempFilePaths:[],tempFiles:[]}:function(e,t,s=5,r){(t=Object.assign({},t)).errMsg=n;const o=t.tempFiles,i=o.length;let a=0;return new Promise((n=>{for(;a=i)return void(!o.find((e=>!e.url&&!e.errMsg))&&n(t));const u=o[s];e.uploadFile({filePath:u.path,cloudPath:u.cloudPath,fileType:u.fileType,onUploadProgress(e){e.index=s,e.tempFile=u,e.tempFilePath=u.path,r&&r(e)}}).then((e=>{u.url=e.fileID,s{u.errMsg=e.errMsg||e.message,s{uni.chooseImage({count:t,sizeType:n,sourceType:o,extension:i,success(t){e(r(t,\"image\"))},fail(e){a({errMsg:e.errMsg.replace(\"chooseImage:fail\",s)})}})}))}(t),t):\"video\"===t.type?o(e,function(e){const{camera:t,compressed:n,maxDuration:o,sourceType:i=[\"album\",\"camera\"],extension:a}=e;return new Promise(((e,c)=>{uni.chooseVideo({camera:t,compressed:n,maxDuration:o,sourceType:i,extension:a,success(t){const{tempFilePath:n,duration:s,size:o,height:i,width:a}=t;e(r({errMsg:\"chooseVideo:ok\",tempFilePaths:[n],tempFiles:[{name:t.tempFile&&t.tempFile.name||\"\",path:n,size:o,type:t.tempFile&&t.tempFile.type||\"\",width:a,height:i,duration:s,fileType:\"video\",cloudPath:\"\"}]},\"video\"))},fail(e){c({errMsg:e.errMsg.replace(\"chooseVideo:fail\",s)})}})}))}(t),t):o(e,function(e){const{count:t,extension:n}=e;return new Promise(((e,o)=>{let i=uni.chooseFile;if(\"undefined\"!=typeof wx&&\"function\"==typeof wx.chooseMessageFile&&(i=wx.chooseMessageFile),\"function\"!=typeof i)return o({errMsg:s+\" 请指定 type 类型,该平台仅支持选择 image 或 video。\"});i({type:\"all\",count:t,extension:n,success(t){e(r(t))},fail(e){o({errMsg:e.errMsg.replace(\"chooseFile:fail\",s)})}})}))}(t),t)}}})));const ft=\"manual\";function pt(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===ft)return;let n=!1;const s=[];for(let r=2;r{this.mixinDatacomLoading=!1;const{data:s,count:r}=n.result;this.getcount&&(this.mixinDatacomPage.count=r),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 r=t.collection||this.collection;n=Array.isArray(r)?n.collection(...r):n.collection(r);const o=t.where||this.where;o&&Object.keys(o).length&&(n=n.where(o));const i=t.field||this.field;i&&(n=n.field(i));const a=t.foreignKey||this.foreignKey;a&&(n=n.foreignKey(a));const c=t.groupby||this.groupby;c&&(n=n.groupBy(c));const u=t.groupField||this.groupField;u&&(n=n.groupField(u));!0===(void 0!==t.distinct?t.distinct:this.distinct)&&(n=n.distinct());const h=t.orderby||this.orderby;h&&(n=n.orderBy(h));const l=void 0!==t.pageCurrent?t.pageCurrent:this.mixinDatacomPage.current,d=void 0!==t.pageSize?t.pageSize:this.mixinDatacomPage.size,f=void 0!==t.getcount?t.getcount:this.getcount,p=void 0!==t.gettree?t.gettree:this.gettree,g=void 0!==t.gettreepath?t.gettreepath:this.gettreepath,m={getCount:f},y={limitLevel:void 0!==t.limitlevel?t.limitlevel:this.limitlevel,startWith:void 0!==t.startwith?t.startwith:this.startwith};return p&&(m.getTree=y),g&&(m.getTreePath=y),n=n.skip(d*(l-1)).limit(d).get(m),n}}}}async function gt(e,t){const n=`http://${e}:${t}/system/ping`;try{const e=await(s={url:n,timeout:500},new Promise(((e,t)=>{E.request({...s,success(t){e(t)},fail(e){t(e)}})})));return!(!e.data||0!==e.data.code)}catch(e){return!1}var s}function mt(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(!u)return Promise.resolve();if(u&&e.debugInfo){const{address:t,servePort:n}=e.debugInfo;return async function(e,t){let n;for(let s=0;s{if(!u)return Promise.resolve();if(t)e.localAddress=t,e.localPort=n;else if(e.debugInfo){const t=console[\"app-plus\"===h?\"error\":\"warn\"];let n=\"\";\"remote\"===e.debugInfo.initialLaunchType?(e.debugInfo.forceRemote=!0,n=\"当前客户端和HBuilderX不在同一局域网下(或其他网络原因无法连接HBuilderX),uniCloud本地调试服务不对当前客户端生效。\\n- 如果不使用uniCloud本地调试服务,请直接忽略此信息。\\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。\\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\"):n=\"无法连接uniCloud本地调试服务,请检查当前客户端是否与主机在同一局域网下。\\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。\\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\",\"h5\"===h&&(n+=\"\\n- 部分浏览器开启节流模式之后访问本地地址受限,请检查是否启用了节流模式\"),t(n)}})).then((()=>{Me(),e.isReady=!0,e.initUniCloudStatus=\"fulfilled\"})).catch((t=>{console.error(t),e.initUniCloudStatus=\"rejected\"}))}let yt=new class{init(e){let t={};const n=!1!==e.debugFunction&&u&&(\"h5\"===h&&navigator.userAgent.indexOf(\"HBuilderX\")>0||\"app-plus\"===h);switch(e.provider){case\"tencent\":t=Ne.init(Object.assign(e,{useDebugFunction:n}));break;case\"aliyun\":t=x.init(Object.assign(e,{useDebugFunction:n}));break;case\"private\":t=Be.init(Object.assign(e,{useDebugFunction:n}));break;default:throw new Error(\"未提供正确的provider参数\")}const s=l;u&&s&&!s.code&&(t.debugInfo=s),mt(t),t.reInit=function(){mt(this)},Xe(t),function(e){const t=e.uploadFile;e.uploadFile=function(e){return t.call(this,e)}}(t),at(t),function(e){e.getCurrentUserInfo=lt,e.chooseAndUploadFile=dt.initChooseAndUploadFile(e),Object.assign(e,{get mixinDatacom(){return pt(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]=T(t[e],e).bind(t)})),t.init=this.init,t}};(()=>{{const e=d;let t={};if(1===e.length)t=e[0],yt=yt.init(t),yt.isDefault=!0;else{const t=[\"auth\",\"callFunction\",\"uploadFile\",\"deleteFile\",\"getTempFileURL\",\"downloadFile\",\"database\",\"getCurrentUSerInfo\"];let n;n=e&&e.length>0?\"应用有多个服务空间,请通过uniCloud.init方法指定要使用的服务空间\":f?\"应用未关联服务空间,请在uniCloud目录右键关联服务空间\":\"uni-app cli项目内使用uniCloud需要使用HBuilderX的运行菜单运行项目,且需要在uniCloud目录关联服务空间\",t.forEach((e=>{yt[e]=function(){return console.error(n),Promise.reject(new A({code:\"SYS_ERR\",message:n}))}}))}Object.assign(yt,{get mixinDatacom(){return pt(yt)}}),yt.addInterceptor=w,yt.removeInterceptor=k,u&&\"h5\"===h&&(window.uniCloud=yt)}})();var _t=yt;export{_t as default};\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","export default {\"appid\":\"__UNI__1EBB7E8\"}","/*\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'use strict';\r\n\r\nvar config = {\r\n version: 'v2.1.5-20210517',\r\n yAxisWidth: 15,\r\n yAxisSplit: 5,\r\n xAxisHeight: 22,\r\n xAxisLineHeight: 22,\r\n legendHeight: 15,\r\n yAxisTitleWidth: 15,\r\n padding: [10, 10, 10, 10],\r\n pixelRatio: 1,\r\n rotate: false,\r\n columePadding: 3,\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 xAxisTextPadding: 3,\r\n titleColor: '#333333',\r\n titleFontSize: 20,\r\n subtitleColor: '#999999',\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 gaugeLabelTextMargin: 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// 经纬度转墨卡托\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\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 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 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 calRotateTranslate(x, y, h) {\r\n var xv = x;\r\n var yv = h - y;\r\n var transX = xv + (h - yv - xv) / Math.sqrt(2);\r\n transX *= -1;\r\n var transY = (h - yv) * (Math.sqrt(2) - 1) - (h - yv - xv) / Math.sqrt(2);\r\n return {\r\n transX: transX,\r\n transY: transY\r\n };\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\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 item.legendShape = \"rect\";\r\n break;\r\n case 'area':\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 points = calPoints[0][index];\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 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 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) {\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 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\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\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 let itemWidth = shapeWidth + shapeRight + measureText(item.name || '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 categoriesTextLenth = categories.map(function(item) {\r\n return measureText(item, opts.xAxis.fontSize * opts.pix || config.fontSize, context);\r\n });\r\n var maxTextLength = Math.max.apply(this, categoriesTextLenth);\r\n\r\n if (opts.xAxis.rotateLabel == true && 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 return result;\r\n}\r\n\r\nfunction getXAxisTextList(series, opts, config) {\r\n var index = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1;\r\n var data = dataCombine(series);\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 var result = {\r\n angle: 0,\r\n xAxisHeight: config.xAxisHeight\r\n };\r\n result.ranges = getXAxisTextList(series, opts, config);\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.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 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 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 = 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 (index > 0) {\r\n item.width -= 2 * 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 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') && dataCount > 1 && opts.xAxis.boundaryGap == 'justify') {\r\n dataCount -= 1;\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 + index * eachSpacing);\r\n });\r\n if (opts.xAxis.boundaryGap !== 'justify') {\r\n if (opts.enableScroll === true) {\r\n xAxisPoints.push(startX + 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 += Math.round(eachSpacing / 2);\r\n }\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 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\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 //为了兼容v1.9.0之前的项目\r\n // if (index > -1) {\r\n // if (typeof opts.yAxis.data[index].min === 'number') {\r\n // minData = Math.min(opts.yAxis.data[index].min, minData);\r\n // }\r\n // if (typeof opts.yAxis.data[index].max === 'number') {\r\n // maxData = Math.max(opts.yAxis.data[index].max, maxData);\r\n // }\r\n // } else {\r\n // if (typeof opts.yAxis.min === 'number') {\r\n // minData = Math.min(opts.yAxis.min, minData);\r\n // }\r\n // if (typeof opts.yAxis.max === 'number') {\r\n // maxData = Math.max(opts.yAxis.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 = yData.min === undefined ? dataRange.minRange : yData.min;\r\n var maxRange = yData.max === undefined ? 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.formatter){\r\n yData.formatter = (val) => {return val.toFixed(yData.tofix) + (yData.unit || '')}\r\n }\r\n rangesArr[i] = getYAxisTextList(newSeries[i], opts, config, columnstyle.type, yData, i);\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) {\r\n items = yData.formatter(Number(items));\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.yAxis.formatter){\r\n opts.yAxis.formatter = (val) => {return val.toFixed(opts.yAxis.tofix ) + (opts.yAxis.unit || '')}\r\n }\r\n rangesArr[0] = getYAxisTextList(series, opts, config, columnstyle.type, {});\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) {\r\n item = opts.yAxis.formatter(Number(item));\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 }\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(Number(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) : 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\n\r\nfunction drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context) {\r\n radius -= gaugeOption.width / 2 + gaugeOption.labelOffset * opts.pix;\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) : 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\n\r\nfunction drawRadarLabel(angleList, radius, centerPosition, opts, config, context) {\r\n var radarOption = opts.extra.radar || {};\r\n radius += config.radarLabelTextMargin * opts.pix;\r\n angleList.forEach(function(angle, index) {\r\n var pos = {\r\n x: radius * Math.cos(angle),\r\n y: radius * 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,series) {\r\n var text = item.formatter ? item.formatter(item,index,series) : util.toFixed(item._proportion_.toFixed(4) * 100) + '%';\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 };\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 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, 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 yAxisIndex: 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 = opts.yAxis.formatter ? opts.yAxis.formatter(Number(item.value)) : item.value;\r\n context.setFontSize(config.fontSize);\r\n let textWidth = measureText(labelText, config.fontSize, context);\r\n let yAxisWidth = opts.chartData.yAxisData.yAxisWidth[0].width;\r\n let bgStartX = opts.area[3] - textWidth - config.toolTipPadding * 2;\r\n let bgEndX = opts.area[3];\r\n let bgWidth = bgEndX - bgStartX;\r\n let textX = bgEndX - 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, textY - 0.5 * config.fontSize - config.toolTipPadding, 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('right');\r\n context.setFillStyle(item.labelFontColor);\r\n context.fillText(String(labelText), textX, textY + 0.5 * config.fontSize);\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 }, opts.extra.column);\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 - eachSpacing / 2, startY, eachSpacing, endY - startY);\r\n context.closePath();\r\n context.fill();\r\n context.setFillStyle(\"#FFFFFF\");\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 == '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 if (r0 + r2 > height) {\r\n r0 = height;\r\n r2 = 0;\r\n r1 = height;\r\n r3 = 0;\r\n }\r\n if (r0 + r2 > width / 2) {\r\n r0 = width / 2;\r\n r2 = 0;\r\n r1 = width / 2;\r\n r3 = 0;\r\n }\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 - 2, item.y);\r\n context.lineTo(startX + item.width - 2, 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 - 2, 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 if (seriesIndex == 0) {\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 context.setFillStyle(columnOption.meterFillColor);\r\n var startX = item.x - item.width / 2;\r\n var height = opts.height - item.y - opts.area[2];\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 if (columnOption.meterBorder > 0) {\r\n context.beginPath();\r\n context.setStrokeStyle(eachSeries.color);\r\n context.setLineWidth(columnOption.meterBorder * opts.pix);\r\n context.moveTo(startX + columnOption.meterBorder * 0.5, item.y + height);\r\n context.lineTo(startX + columnOption.meterBorder * 0.5, item.y + columnOption.meterBorder * 0.5);\r\n context.lineTo(startX + item.width - columnOption.meterBorder * 0.5, item.y + columnOption.meterBorder * 0.5);\r\n context.lineTo(startX + item.width - columnOption.meterBorder * 0.5, item.y + height);\r\n context.stroke();\r\n }\r\n }\r\n };\r\n } else {\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 context.setFillStyle(item.color || eachSeries.color);\r\n var startX = item.x - item.width / 2;\r\n var height = opts.height - item.y - opts.area[2];\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 }\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 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\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 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 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 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 if (r0 + r2 > height) {\r\n r0 = height;\r\n r2 = 0;\r\n r1 = height;\r\n r3 = 0;\r\n }\r\n if (r0 + r2 > width / 2) {\r\n r0 = width / 2;\r\n r2 = 0;\r\n r1 = width / 2;\r\n r3 = 0;\r\n }\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 - 2, item.y);\r\n context.lineTo(startX + item.width - 2, 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.setFillStyle(hexToRgb(eachSeries.color, 0.2));\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\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 == '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 == '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 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) : 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(Number(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 offset = -textWidth;\r\n if (boundaryGap == 'center') {\r\n offset += eachSpacing / 2;\r\n }\r\n var _calRotateTranslate = calRotateTranslate(xAxisPoints[index] + eachSpacing / 2, startY + xAxisFontSize / 2 + 5, opts.height),\r\n transX = _calRotateTranslate.transX,\r\n transY = _calRotateTranslate.transY;\r\n\r\n context.rotate(-1 * config._xAxisTextAngle_);\r\n context.translate(transX, transY);\r\n context.fillText(String(xitem), xAxisPoints[index] + offset, startY + xAxisFontSize + 5);\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 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 var points = [];\r\n for (let i = 0; i <= opts.yAxis.splitNumber; i++) {\r\n points.push(opts.area[0] + eachSpacing * i);\r\n }\r\n let tStartLeft = opts.area[3];\r\n let tStartRight = opts.width - opts.area[1];\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 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] ? points[index] : endY;\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 {\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 }\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 {\r\n context.moveTo(tStartRight, opts.height - opts.area[2]);\r\n context.lineTo(tStartRight, 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 {\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 }\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 context.beginPath();\r\n context.setFontSize(fontSize);\r\n context.setFillStyle(item.show ? opts.legend.fontColor : opts.legend.hiddenColor);\r\n context.fillText(item.name, 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(item.name, fontSize, context) + itemGap;\r\n item.area[2] = startX;\r\n } else {\r\n item.area[2] = startX + measureText(item.name, 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 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 var valid = false;\r\n for (var i = 0, len = series.length; i < len; i++) {\r\n if (series[i].data > 0) {\r\n valid = true;\r\n break;\r\n }\r\n }\r\n if (valid) {\r\n drawPieText(series, opts, config, context, radius, centerPosition);\r\n }\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 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 var valid = false;\r\n for (var i = 0, len = series.length; i < len; i++) {\r\n if (series[i].data > 0) {\r\n valid = true;\r\n break;\r\n }\r\n }\r\n if (valid) {\r\n drawPieText(series, opts, config, context, radius, centerPosition);\r\n }\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 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 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('round');\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('round');\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 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 = getArcbarDataPoints(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 opacity: 0.2,\r\n gridCount: 3,\r\n border:false,\r\n borderWidth:2\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 // 画分割线\r\n context.beginPath();\r\n context.setLineWidth(1 * opts.pix);\r\n context.setStrokeStyle(radarOption.gridColor);\r\n coordinateAngle.forEach(function(angle) {\r\n var pos = convertCoordinateOrigin(radius * Math.cos(angle), radius * Math.sin(angle), centerPosition);\r\n context.moveTo(centerPosition.x, centerPosition.y);\r\n context.lineTo(pos.x, pos.y);\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 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 context.setFillStyle(hexToRgb(eachSeries.color, radarOption.opacity));\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 // draw label text\r\n drawRadarLabel(coordinateAngle, radius, centerPosition, opts, config, context);\r\n return {\r\n center: centerPosition,\r\n radius: radius,\r\n angleList: coordinateAngle\r\n };\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 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\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 if (opts.dataLabel == true) {\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 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\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 let startX, endX, startY, fontSize;\r\n let text = item.formatter ? item.formatter(item,i,series) : util.toFixed(item._proportion_ * 100) + '%';\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, 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\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 === 'rose' || type === 'funnel') {\r\n series = fixPieSeries(series, opts, config);\r\n }\r\n var categories = opts.categories;\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 === 'area' || opts.type === 'mix' || opts.type === 'candle' || opts.type === 'scatter' || opts.type === 'bubble' ) {\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 {\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') {\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') {\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 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 = {\r\n currentOffset: offsetLeft,\r\n startTouchX: offsetLeft,\r\n distance: 0,\r\n lastMoveTime: 0\r\n };\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 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 '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 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 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 = JSON.parse(JSON.stringify(config));\r\n config$$1.color = opts.color ? opts.color : config$$1.color;\r\n config$$1.yAxisTitleWidth = opts.yAxis.disabled !== true && opts.yAxis.title ? config$$1.yAxisTitleWidth : 0;\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 config$$1.yAxisSplit = opts.yAxis.splitNumber ? opts.yAxis.splitNumber : config.yAxisSplit;\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.xAxisLineHeight = config.xAxisLineHeight * opts.pix;\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 config$$1.columePadding = config.columePadding * opts.pix;\r\n //this.context = opts.context ? opts.context : uni.createCanvasContext(opts.canvasId, opts.$this);\r\n //v2.0版本后需要自行获取context并传入opts进行初始化,这么做是为了确保uCharts可以跨更多端使用,并保证了自定义组件this实例不被循环嵌套。如果您觉得不便请取消上面注释,采用v1.0版本的方式使用,对此给您带来的不便敬请谅解!\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 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: offsetLeft,\r\n distance: 0,\r\n lastMoveTime: 0\r\n };\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);\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 {\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 === '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 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 }\r\n};\r\n\r\nif (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n module.exports = uCharts;\r\n //export default uCharts;//建议使用nodejs的module导出方式,如报错请使用export方式导出\r\n}\r\n","/*\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\tvar date = new Date();\r\n\tdate.setTime(timeStamp * 1000);\r\n\tvar y = date.getFullYear();\r\n\tvar m = date.getMonth() + 1;\r\n\tm = m < 10 ? ('0' + m) : m;\r\n\tvar d = date.getDate();\r\n\td = d < 10 ? ('0' + d) : d;\r\n\tvar h = date.getHours();\r\n\th = h < 10 ? ('0' + h) : h;\r\n\tvar minute = date.getMinutes();\r\n\tvar second = date.getSeconds();\r\n\tminute = minute < 10 ? ('0' + minute) : minute;\r\n\tsecond = second < 10 ? ('0' + second) : second;\r\n\tif (returnType == 'full') {\r\n\t\treturn y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;\r\n\t}\r\n\tif (returnType == 'y-m-d') {\r\n\t\treturn y + '-' + m + '-' + d;\r\n\t}\r\n\tif (returnType == 'h:m') {\r\n\t\treturn h + ':' + minute;\r\n\t}\r\n\tif (returnType == 'h:m:s') {\r\n\t\treturn h + ':' + minute + ':' + second;\r\n\t}\r\n\treturn [y, m, d, h, minute, second];\r\n}\r\n\r\nmodule.exports = {\r\n\t//demotype为自定义图表类型,一般不需要自定义图表类型,只需要改根节点上对应的类型即可\r\n\t\"type\": [\"pie\", \"ring\", \"rose\", \"word\", \"funnel\", \"map\", \"arcbar\", \"line\", \"column\", \"area\", \"radar\", \"gauge\",\r\n\t\t\"candle\", \"mix\", \"tline\", \"tarea\", \"scatter\", \"bubble\", \"demotype\"\r\n\t],\r\n\t\"range\": [\"饼状图\", \"圆环图\", \"玫瑰图\", \"词云图\", \"漏斗图\", \"地图\", \"圆弧进度条\", \"折线图\", \"柱状图\", \"区域图\", \"雷达图\", \"仪表盘\", \"K线图\", \"混合图\",\r\n\t\t\"时间轴折线\", \"时间轴区域\", \"散点图\", \"气泡图\", \"自定义类型\"\r\n\t],\r\n\t//增加自定义图表类型,如果需要categories,请在这里加入您的图表类型,例如最后的\"demotype\"\r\n\t//自定义类型时需要注意\"tline\",\"tarea\",\"scatter\",\"bubble\"等时间轴(矢量x轴)类图表,没有categories,不需要加入categories\r\n\t\"categories\": [\"line\", \"column\", \"area\", \"radar\", \"gauge\", \"candle\", \"mix\", \"demotype\"],\r\n\t//instance为实例变量承载属性,不要删除\r\n\t\"instance\": {},\r\n\t//option为opts及eopts承载属性,不要删除\r\n\t\"option\": {},\r\n\t//下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换\r\n\t\"formatter\": {\r\n\t\t\"yAxisDemo1\": function(val) {\r\n\t\t\treturn val + '元'\r\n\t\t},\r\n\t\t\"yAxisDemo2\": function(val) {\r\n\t\t\treturn val.toFixed(2)\r\n\t\t},\r\n\t\t\"xAxisDemo1\": function(val) {\r\n\t\t\treturn val + '年'\r\n\t\t},\r\n\t\t\"xAxisDemo2\": function(val) {\r\n\t\t\treturn formatDateTime(val, 'h:m')\r\n\t\t},\r\n\t\t\"seriesDemo1\": function(val) {\r\n\t\t\treturn val + '元'\r\n\t\t},\r\n\t\t\"tooltipDemo1\": function(item, category, index, opts) {\r\n\t\t\tif (index == 0) {\r\n\t\t\t\treturn '随便用' + item.data + '年'\r\n\t\t\t} else {\r\n\t\t\t\treturn '其他我没改' + item.data + '天'\r\n\t\t\t}\r\n\t\t},\r\n\t\t\"pieDemo\": function(val, index, series) {\r\n\t\t\tif (index !== undefined) {\r\n\t\t\t\treturn series[index].name + ':' + series[index].data + '元'\r\n\t\t\t}\r\n\t\t},\r\n\t},\r\n\t//这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type=\"demotype\" 后,组件会调用这个花括号里的option,如果组件上还存在opts参数,会将demotype与opts中option合并后渲染图表。\r\n\t\"demotype\": {\r\n\t\t//我这里把曲线图当做了自定义图表类型,您可以根据需要随意指定类型或配置\r\n\t\t\"type\": \"line\",\r\n\t\t\"color\": color,\r\n\t\t\"padding\": [15, 10, 0, 15],\r\n\t\t\"xAxis\": {\r\n\t\t\t\"disableGrid\": true,\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n\t\t\t\"gridType\": \"dash\",\r\n\t\t\t\"dashLength\": 2,\r\n\t\t},\r\n\t\t\"legend\": {},\r\n\t\t\"extra\": {\r\n\t\t\t\"line\": {\r\n\t\t\t\t\"type\": \"curve\",\r\n\t\t\t\t\"width\": 2\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t//下面是自定义配置,请添加项目所需的通用配置\r\n\t\"pie\": {\r\n\t\t\"type\": \"pie\",\r\n\t\t\"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\t\t\"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\t\t\t\"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\t\t\"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\t\t\t\"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\t\t\"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\t\t\"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\t\t\"color\": color,\r\n\t\t\"padding\": [0, 0, 0, 0],\r\n\t\t\"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\t\t\"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\t\t\"color\": color,\r\n\t\t\"padding\": [15, 10, 0, 15],\r\n\t\t\"xAxis\": {\r\n\t\t\t\"disableGrid\": true,\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n\t\t\t\"gridType\": \"dash\",\r\n\t\t\t\"dashLength\": 2,\r\n\t\t},\r\n\t\t\"legend\": {},\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\t\"tline\": {\r\n\t\t\"type\": \"line\",\r\n\t\t\"color\": color,\r\n\t\t\"padding\": [15, 10, 0, 15],\r\n\t\t\"xAxis\": {\r\n\t\t\t\"disableGrid\": false,\r\n\t\t\t\"boundaryGap\": \"justify\",\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n\t\t\t\"gridType\": \"dash\",\r\n\t\t\t\"dashLength\": 2,\r\n\t\t\t\"data\": [{\r\n\t\t\t\t\"min\": 0,\r\n\t\t\t\t\"max\": 80\r\n\t\t\t}]\r\n\t\t},\r\n\t\t\"legend\": {},\r\n\t\t\"extra\": {\r\n\t\t\t\"line\": {\r\n\t\t\t\t\"type\": \"curve\",\r\n\t\t\t\t\"width\": 2\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t\"tarea\": {\r\n\t\t\"type\": \"area\",\r\n\t\t\"color\": color,\r\n\t\t\"padding\": [0, 15, 15, 5],\r\n\t\t\"xAxis\": {\r\n\t\t\t\"disableGrid\": true,\r\n\t\t\t\"boundaryGap\": \"justify\",\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n\t\t\t\"gridType\": \"dash\",\r\n\t\t\t\"dashLength\": 2,\r\n\t\t\t\"data\": [{\r\n\t\t\t\t\"min\": 0,\r\n\t\t\t\t\"max\": 80\r\n\t\t\t}]\r\n\t\t},\r\n\t\t\"legend\": {},\r\n\t\t\"extra\": {\r\n\t\t\t\"area\": {\r\n\t\t\t\t\"type\": \"curve\",\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\": true\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t\"column\": {\r\n\t\t\"type\": \"column\",\r\n\t\t\"color\": color,\r\n\t\t\"padding\": [15, 15, 0, 5],\r\n\t\t\"xAxis\": {\r\n\t\t\t\"disableGrid\": true,\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n\t\t\t\"gridType\": \"dash\",\r\n\t\t\t\"disableGrid\": true,\r\n\t\t\t\"gridColor\": '#ffffff',\r\n\t\t\t\"data\": [{\r\n\t\t\t\t\"tofix\": 1,\r\n\t\t\t\t\"min\": 0\r\n\t\t\t}],\r\n\t\t},\r\n\t\t\"legend\": {},\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\": 20,\r\n\t\t\t\t\"seriesGap\": 5,\r\n\t\t\t\t\"meterFillColor\": \"#FFFFFF\",\r\n\t\t\t\t\"activeBgColor\": \"#000000\",\r\n\t\t\t\t\"activeBgOpacity\": 0.5,\r\n\t\t\t\t\"barBorderCircle\": true,\r\n\t\t\t\t\"linearType\": \"opacity\",\r\n\t\t\t\t// \"customColor\": \"#ff9f40\",\r\n\t\t\t\t\"linearOpacity\": 1,\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\t\"area\": {\r\n\t\t\"type\": \"area\",\r\n\t\t\"color\": color,\r\n\t\t\"padding\": [20, 15, 5, 10],\r\n\t\t\"xAxis\": {\r\n\t\t\t\"disableGrid\": true,\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n\t\t\t\"gridType\": \"dash\",\r\n\t\t\t\"disableGrid\": true,\r\n\t\t\t\"gridColor\": '#ffffff',\r\n\t\t\t\"data\": [{\r\n\t\t\t\t\"tofix\": 1,\r\n\t\t\t\t\"min\": 0\r\n\t\t\t}],\r\n\t\t},\r\n\t\t\"legend\": {\r\n\t\t\t\"show\": false,\r\n\t\t},\r\n\t\t\"extra\": {\r\n\t\t\t\"area\": {\r\n\t\t\t\t\"type\": \"curve\",\r\n\t\t\t\t\"opacity\": 0.2,\r\n\t\t\t\t\"addLine\": true,\r\n\t\t\t\t\"width\": 1,\r\n\t\t\t\t\"gradient\": true\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\t\t\"legend\": {\r\n\t\t\t\"show\": true,\r\n\t\t\t\"position\": \"right\",\r\n\t\t\t\"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\"legend\": {},\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\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\t\t\t\"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\"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\t\t\"dataLabel\": false,\r\n\t\t\"xAxis\": {\r\n\t\t\t\"disableGrid\": false,\r\n\t\t\t\"gridType\": \"dash\",\r\n\t\t\t\"splitNumber\": 5,\r\n\t\t\t\"boundaryGap\": \"justify\",\r\n\t\t\t\"min\": 0\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n\t\t\t\"disableGrid\": false,\r\n\t\t\t\"gridType\": \"dash\",\r\n\t\t},\r\n\t\t\"legend\": {},\r\n\t\t\"extra\": {\r\n\t\t\t\"scatter\": {},\r\n\t\t}\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\t\t\"xAxis\": {\r\n\t\t\t\"disableGrid\": false,\r\n\t\t\t\"gridType\": \"dash\",\r\n\t\t\t\"splitNumber\": 5,\r\n\t\t\t\"boundaryGap\": \"justify\",\r\n\t\t\t\"min\": 0,\r\n\t\t\t\"max\": 250\r\n\t\t},\r\n\t\t\"yAxis\": {\r\n\t\t\t\"disableGrid\": false,\r\n\t\t\t\"gridType\": \"dash\",\r\n\t\t\t\"data\": [{\r\n\t\t\t\t\"min\": 0,\r\n\t\t\t\t\"max\": 150\r\n\t\t\t}]\r\n\t\t},\r\n\t\t\"legend\": {},\r\n\t\t\"extra\": {\r\n\t\t\t\"bubble\": {\r\n\t\t\t\t\"border\": 2,\r\n\t\t\t\t\"opacity\": 0.5,\r\n\t\t\t},\r\n\t\t}\r\n\t}\r\n}\r\n","/**\r\n * html2Json 改造来自: https://github.com/Jxck/html2json\r\n *\r\n *\r\n * author: Di (微信小程序开发工程师)\r\n * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com)\r\n * 垂直微信小程序开发交流社区\r\n *\r\n * github地址: https://github.com/icindy/wxParse\r\n *\r\n * for: 微信小程序富文本解析\r\n * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184\r\n */\r\n\r\nimport wxDiscode from './wxDiscode';\r\nimport HTMLParser from './htmlparser';\r\n\r\nfunction makeMap(str) {\r\n const obj = {};\r\n const items = str.split(',');\r\n for (let i = 0; i < items.length; i += 1) obj[items[i]] = true;\r\n return obj;\r\n}\r\n\r\n// Block Elements - HTML 5\r\nconst block = makeMap('br,code,address,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video');\r\n\r\n// Inline Elements - HTML 5\r\nconst inline = makeMap('a,abbr,acronym,applet,b,basefont,bdo,big,button,cite,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var');\r\n\r\n// Elements that you can, intentionally, leave open\r\n// (and which close themselves)\r\nconst closeSelf = makeMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr');\r\n\r\nfunction removeDOCTYPE(html) {\r\n const isDocument = /([^]*)<\\/body>/.test(html);\r\n return isDocument ? RegExp.$1 : html;\r\n}\r\n\r\nfunction trimHtml(html) {\r\n return html\r\n .replace(//gi, '')\r\n .replace(/\\/\\*.*?\\*\\//gi, '')\r\n .replace(/[ ]+/gi, '')\r\n .replace(//gi, '');\r\n}\r\n\r\nfunction getScreenInfo() {\r\n const screen = {};\r\n wx.getSystemInfo({\r\n success: (res) => {\r\n screen.width = res.windowWidth;\r\n screen.height = res.windowHeight;\r\n },\r\n });\r\n return screen;\r\n}\r\n\r\nfunction html2json(html, customHandler, imageProp, host) {\r\n // 处理字符串\r\n html = removeDOCTYPE(html);\r\n html = trimHtml(html);\r\n html = wxDiscode.strDiscode(html);\r\n // 生成node节点\r\n const bufArray = [];\r\n const results = {\r\n nodes: [],\r\n imageUrls: [],\r\n };\r\n\r\n\tconst screen = getScreenInfo();\r\n function Node(tag) {\r\n this.node = 'element';\r\n this.tag = tag;\r\n\t\t\r\n\t\tthis.$screen = screen;\r\n }\r\n\r\n HTMLParser(html, {\r\n start(tag, attrs, unary) {\r\n // node for this element\r\n const node = new Node(tag);\r\n\r\n if (bufArray.length !== 0) {\r\n const parent = bufArray[0];\r\n if (parent.nodes === undefined) {\r\n parent.nodes = [];\r\n }\r\n }\r\n\r\n if (block[tag]) {\r\n node.tagType = 'block';\r\n } else if (inline[tag]) {\r\n node.tagType = 'inline';\r\n } else if (closeSelf[tag]) {\r\n node.tagType = 'closeSelf';\r\n }\r\n\r\n node.attr = attrs.reduce((pre, attr) => {\r\n const { name } = attr;\r\n let { value } = attr;\r\n if (name === 'class') {\r\n node.classStr = value;\r\n }\r\n // has multi attibutes\r\n // make it array of attribute\r\n if (name === 'style') {\r\n node.styleStr = value;\r\n }\r\n if (value.match(/ /)) {\r\n value = value.split(' ');\r\n }\r\n\r\n // if attr already exists\r\n // merge it\r\n if (pre[name]) {\r\n if (Array.isArray(pre[name])) {\r\n // already array, push to last\r\n pre[name].push(value);\r\n } else {\r\n // single value, make it array\r\n pre[name] = [pre[name], value];\r\n }\r\n } else {\r\n // not exist, put it\r\n pre[name] = value;\r\n }\r\n\r\n return pre;\r\n }, {});\r\n\r\n // 优化样式相关属性\r\n if (node.classStr) {\r\n node.classStr += ` ${node.tag}`;\r\n } else {\r\n node.classStr = node.tag;\r\n }\r\n if (node.tagType === 'inline') {\r\n node.classStr += ' inline';\r\n }\r\n\r\n // 对img添加额外数据\r\n if (node.tag === 'img') {\r\n let imgUrl = node.attr.src;\r\n imgUrl = wxDiscode.urlToHttpUrl(imgUrl, imageProp.domain);\r\n Object.assign(node.attr, imageProp, {\r\n src: imgUrl || '',\r\n });\r\n if (imgUrl) {\r\n results.imageUrls.push(imgUrl);\r\n }\r\n }\r\n\r\n // 处理a标签属性\r\n if (node.tag === 'a') {\r\n node.attr.href = node.attr.href || '';\r\n }\r\n\r\n // 处理font标签样式属性\r\n if (node.tag === 'font') {\r\n const fontSize = [\r\n 'x-small',\r\n 'small',\r\n 'medium',\r\n 'large',\r\n 'x-large',\r\n 'xx-large',\r\n '-webkit-xxx-large',\r\n ];\r\n const styleAttrs = {\r\n color: 'color',\r\n face: 'font-family',\r\n size: 'font-size',\r\n };\r\n if (!node.styleStr) node.styleStr = '';\r\n Object.keys(styleAttrs).forEach((key) => {\r\n if (node.attr[key]) {\r\n const value = key === 'size' ? fontSize[node.attr[key] - 1] : node.attr[key];\r\n node.styleStr += `${styleAttrs[key]}: ${value};`;\r\n }\r\n });\r\n }\r\n\r\n // 临时记录source资源\r\n if (node.tag === 'source') {\r\n results.source = node.attr.src;\r\n }\r\n\r\n if (customHandler.start) {\r\n customHandler.start(node, results);\r\n }\r\n\r\n if (unary) {\r\n // if this tag doesn't have end tag\r\n // like \r\n // add to parents\r\n const parent = bufArray[0] || results;\r\n if (parent.nodes === undefined) {\r\n parent.nodes = [];\r\n }\r\n parent.nodes.push(node);\r\n } else {\r\n bufArray.unshift(node);\r\n }\r\n },\r\n end(tag) {\r\n // merge into parent tag\r\n const node = bufArray.shift();\r\n if (node.tag !== tag) {\r\n console.error('invalid state: mismatch end tag');\r\n }\r\n\r\n // 当有缓存source资源时于于video补上src资源\r\n if (node.tag === 'video' && results.source) {\r\n node.attr.src = results.source;\r\n delete results.source;\r\n }\r\n\r\n if (customHandler.end) {\r\n customHandler.end(node, results);\r\n }\r\n\r\n if (bufArray.length === 0) {\r\n results.nodes.push(node);\r\n } else {\r\n const parent = bufArray[0];\r\n if (!parent.nodes) {\r\n parent.nodes = [];\r\n }\r\n parent.nodes.push(node);\r\n }\r\n },\r\n chars(text) {\r\n if (!text.trim()) return;\r\n\r\n const node = {\r\n node: 'text',\r\n text,\r\n };\r\n\r\n if (customHandler.chars) {\r\n customHandler.chars(node, results);\r\n }\r\n\r\n if (bufArray.length === 0) {\r\n results.nodes.push(node);\r\n } else {\r\n const parent = bufArray[0];\r\n if (parent.nodes === undefined) {\r\n parent.nodes = [];\r\n }\r\n parent.nodes.push(node);\r\n }\r\n },\r\n });\r\n\r\n return results;\r\n}\r\n\r\nexport default html2json;\r\n","// HTML 支持的数学符号\r\nfunction strNumDiscode(str) {\r\n str = str.replace(/∀/g, '∀');\r\n str = str.replace(/∂/g, '∂');\r\n str = str.replace(/∃/g, '∃');\r\n str = str.replace(/∅/g, '∅');\r\n str = str.replace(/∇/g, '∇');\r\n str = str.replace(/∈/g, '∈');\r\n str = str.replace(/∉/g, '∉');\r\n str = str.replace(/∋/g, '∋');\r\n str = str.replace(/∏/g, '∏');\r\n str = str.replace(/∑/g, '∑');\r\n str = str.replace(/−/g, '−');\r\n str = str.replace(/∗/g, '∗');\r\n str = str.replace(/√/g, '√');\r\n str = str.replace(/∝/g, '∝');\r\n str = str.replace(/∞/g, '∞');\r\n str = str.replace(/∠/g, '∠');\r\n str = str.replace(/∧/g, '∧');\r\n str = str.replace(/∨/g, '∨');\r\n str = str.replace(/∩/g, '∩');\r\n str = str.replace(/∪/g, '∪');\r\n str = str.replace(/∫/g, '∫');\r\n str = str.replace(/∴/g, '∴');\r\n str = str.replace(/∼/g, '∼');\r\n str = str.replace(/≅/g, '≅');\r\n str = str.replace(/≈/g, '≈');\r\n str = str.replace(/≠/g, '≠');\r\n str = str.replace(/≤/g, '≤');\r\n str = str.replace(/≥/g, '≥');\r\n str = str.replace(/⊂/g, '⊂');\r\n str = str.replace(/⊃/g, '⊃');\r\n str = str.replace(/⊄/g, '⊄');\r\n str = str.replace(/⊆/g, '⊆');\r\n str = str.replace(/⊇/g, '⊇');\r\n str = str.replace(/⊕/g, '⊕');\r\n str = str.replace(/⊗/g, '⊗');\r\n str = str.replace(/⊥/g, '⊥');\r\n str = str.replace(/⋅/g, '⋅');\r\n return str;\r\n}\r\n\r\n// HTML 支持的希腊字母\r\nfunction strGreeceDiscode(str) {\r\n str = str.replace(/Α/g, 'Α');\r\n str = str.replace(/Β/g, 'Β');\r\n str = str.replace(/Γ/g, 'Γ');\r\n str = str.replace(/Δ/g, 'Δ');\r\n str = str.replace(/Ε/g, 'Ε');\r\n str = str.replace(/Ζ/g, 'Ζ');\r\n str = str.replace(/Η/g, 'Η');\r\n str = str.replace(/Θ/g, 'Θ');\r\n str = str.replace(/Ι/g, 'Ι');\r\n str = str.replace(/Κ/g, 'Κ');\r\n str = str.replace(/Λ/g, 'Λ');\r\n str = str.replace(/Μ/g, 'Μ');\r\n str = str.replace(/Ν/g, 'Ν');\r\n str = str.replace(/Ξ/g, 'Ν');\r\n str = str.replace(/Ο/g, 'Ο');\r\n str = str.replace(/Π/g, 'Π');\r\n str = str.replace(/Ρ/g, 'Ρ');\r\n str = str.replace(/Σ/g, 'Σ');\r\n str = str.replace(/Τ/g, 'Τ');\r\n str = str.replace(/Υ/g, 'Υ');\r\n str = str.replace(/Φ/g, 'Φ');\r\n str = str.replace(/Χ/g, 'Χ');\r\n str = str.replace(/Ψ/g, 'Ψ');\r\n str = str.replace(/Ω/g, 'Ω');\r\n\r\n str = str.replace(/α/g, 'α');\r\n str = str.replace(/β/g, 'β');\r\n str = str.replace(/γ/g, 'γ');\r\n str = str.replace(/δ/g, 'δ');\r\n str = str.replace(/ε/g, 'ε');\r\n str = str.replace(/ζ/g, 'ζ');\r\n str = str.replace(/η/g, 'η');\r\n str = str.replace(/θ/g, 'θ');\r\n str = str.replace(/ι/g, 'ι');\r\n str = str.replace(/κ/g, 'κ');\r\n str = str.replace(/λ/g, 'λ');\r\n str = str.replace(/μ/g, 'μ');\r\n str = str.replace(/ν/g, 'ν');\r\n str = str.replace(/ξ/g, 'ξ');\r\n str = str.replace(/ο/g, 'ο');\r\n str = str.replace(/π/g, 'π');\r\n str = str.replace(/ρ/g, 'ρ');\r\n str = str.replace(/ς/g, 'ς');\r\n str = str.replace(/σ/g, 'σ');\r\n str = str.replace(/τ/g, 'τ');\r\n str = str.replace(/υ/g, 'υ');\r\n str = str.replace(/φ/g, 'φ');\r\n str = str.replace(/χ/g, 'χ');\r\n str = str.replace(/ψ/g, 'ψ');\r\n str = str.replace(/ω/g, 'ω');\r\n str = str.replace(/ϑ/g, 'ϑ');\r\n str = str.replace(/ϒ/g, 'ϒ');\r\n str = str.replace(/ϖ/g, 'ϖ');\r\n str = str.replace(/·/g, '·');\r\n return str;\r\n}\r\n\r\nfunction strcharacterDiscode(str) {\r\n // 加入常用解析\r\n str = str.replace(/ /g, ' ');\r\n str = str.replace(/ /g, ' ');\r\n str = str.replace(/ /g, ' ');\r\n str = str.replace(/"/g, \"'\");\r\n str = str.replace(/&/g, '&');\r\n str = str.replace(/</g, '<');\r\n str = str.replace(/>/g, '>');\r\n str = str.replace(/•/g, '•');\r\n\r\n return str;\r\n}\r\n\r\n// HTML 支持的其他实体\r\nfunction strOtherDiscode(str) {\r\n str = str.replace(/Œ/g, 'Œ');\r\n str = str.replace(/œ/g, 'œ');\r\n str = str.replace(/Š/g, 'Š');\r\n str = str.replace(/š/g, 'š');\r\n str = str.replace(/Ÿ/g, 'Ÿ');\r\n str = str.replace(/ƒ/g, 'ƒ');\r\n str = str.replace(/ˆ/g, 'ˆ');\r\n str = str.replace(/˜/g, '˜');\r\n str = str.replace(/ /g, '');\r\n str = str.replace(/ /g, '');\r\n str = str.replace(/ /g, '');\r\n str = str.replace(/‌/g, '');\r\n str = str.replace(/‍/g, '');\r\n str = str.replace(/‎/g, '');\r\n str = str.replace(/‏/g, '');\r\n str = str.replace(/–/g, '–');\r\n str = str.replace(/—/g, '—');\r\n str = str.replace(/‘/g, '‘');\r\n str = str.replace(/’/g, '’');\r\n str = str.replace(/‚/g, '‚');\r\n str = str.replace(/“/g, '“');\r\n str = str.replace(/”/g, '”');\r\n str = str.replace(/„/g, '„');\r\n str = str.replace(/†/g, '†');\r\n str = str.replace(/‡/g, '‡');\r\n str = str.replace(/•/g, '•');\r\n str = str.replace(/…/g, '…');\r\n str = str.replace(/‰/g, '‰');\r\n str = str.replace(/′/g, '′');\r\n str = str.replace(/″/g, '″');\r\n str = str.replace(/‹/g, '‹');\r\n str = str.replace(/›/g, '›');\r\n str = str.replace(/‾/g, '‾');\r\n str = str.replace(/€/g, '€');\r\n str = str.replace(/™/g, '™');\r\n\r\n str = str.replace(/←/g, '←');\r\n str = str.replace(/↑/g, '↑');\r\n str = str.replace(/→/g, '→');\r\n str = str.replace(/↓/g, '↓');\r\n str = str.replace(/↔/g, '↔');\r\n str = str.replace(/↵/g, '↵');\r\n str = str.replace(/⌈/g, '⌈');\r\n str = str.replace(/⌉/g, '⌉');\r\n\r\n str = str.replace(/⌊/g, '⌊');\r\n str = str.replace(/⌋/g, '⌋');\r\n str = str.replace(/◊/g, '◊');\r\n str = str.replace(/♠/g, '♠');\r\n str = str.replace(/♣/g, '♣');\r\n str = str.replace(/♥/g, '♥');\r\n\r\n str = str.replace(/♦/g, '♦');\r\n str = str.replace(/'/g, \"'\");\r\n return str;\r\n}\r\n\r\nfunction strDiscode(str) {\r\n str = strNumDiscode(str);\r\n str = strGreeceDiscode(str);\r\n str = strcharacterDiscode(str);\r\n str = strOtherDiscode(str);\r\n return str;\r\n}\r\n\r\nfunction urlToHttpUrl(url, domain) {\r\n if (/^\\/\\//.test(url)) {\r\n return `https:${url}`;\r\n } else if (/^\\//.test(url)) {\r\n return `https://${domain}${url}`;\r\n }\r\n return url;\r\n}\r\n\r\nexport default {\r\n strDiscode,\r\n urlToHttpUrl,\r\n};\r\n","/**\r\n *\r\n * htmlParser改造自: https://github.com/blowsie/Pure-JavaScript-HTML5-Parser\r\n *\r\n * author: Di (微信小程序开发工程师)\r\n * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com)\r\n * 垂直微信小程序开发交流社区\r\n *\r\n * github地址: https://github.com/icindy/wxParse\r\n *\r\n * for: 微信小程序富文本解析\r\n * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184\r\n */\r\n// Regular Expressions for parsing tags and attributes\r\n\r\nconst startTag = /^<([-A-Za-z0-9_]+)((?:\\s+[a-zA-Z0-9_:][-a-zA-Z0-9_:.]*(?:\\s*=\\s*(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>\\s]+))?)*)\\s*(\\/?)>/;\r\nconst endTag = /^<\\/([-A-Za-z0-9_]+)[^>]*>/;\r\nconst attr = /([a-zA-Z0-9_:][-a-zA-Z0-9_:.]*)(?:\\s*=\\s*(?:(?:\"((?:\\\\.|[^\"])*)\")|(?:'((?:\\\\.|[^'])*)')|([^>\\s]+)))?/g;\r\n\r\nfunction makeMap(str) {\r\n const obj = {};\r\n const items = str.split(',');\r\n for (let i = 0; i < items.length; i += 1) obj[items[i]] = true;\r\n return obj;\r\n}\r\n\r\n// Empty Elements - HTML 5\r\nconst empty = makeMap('area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr');\r\n\r\n// Block Elements - HTML 5\r\nconst block = makeMap('address,code,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video');\r\n\r\n// Inline Elements - HTML 5\r\nconst inline = makeMap('a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var');\r\n\r\n// Elements that you can, intentionally, leave open\r\n// (and which close themselves)\r\nconst closeSelf = makeMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr');\r\n\r\n// Attributes that have their values filled in disabled=\"disabled\"\r\nconst fillAttrs = makeMap('checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected');\r\n\r\nfunction HTMLParser(html, handler) {\r\n let index;\r\n let chars;\r\n let match;\r\n let last = html;\r\n const stack = [];\r\n\r\n stack.last = () => stack[stack.length - 1];\r\n\r\n function parseEndTag(tag, tagName) {\r\n // If no tag name is provided, clean shop\r\n let pos;\r\n if (!tagName) {\r\n pos = 0;\r\n } else {\r\n // Find the closest opened tag of the same type\r\n tagName = tagName.toLowerCase();\r\n for (pos = stack.length - 1; pos >= 0; pos -= 1) {\r\n if (stack[pos] === tagName) break;\r\n }\r\n }\r\n if (pos >= 0) {\r\n // Close all the open elements, up the stack\r\n for (let i = stack.length - 1; i >= pos; i -= 1) {\r\n if (handler.end) handler.end(stack[i]);\r\n }\r\n\r\n // Remove the open elements from the stack\r\n stack.length = pos;\r\n }\r\n }\r\n\r\n function parseStartTag(tag, tagName, rest, unary) {\r\n tagName = tagName.toLowerCase();\r\n\r\n if (block[tagName]) {\r\n while (stack.last() && inline[stack.last()]) {\r\n parseEndTag('', stack.last());\r\n }\r\n }\r\n\r\n if (closeSelf[tagName] && stack.last() === tagName) {\r\n parseEndTag('', tagName);\r\n }\r\n\r\n unary = empty[tagName] || !!unary;\r\n\r\n if (!unary) stack.push(tagName);\r\n\r\n if (handler.start) {\r\n const attrs = [];\r\n\r\n rest.replace(attr, function genAttr(matches, name) {\r\n const value = arguments[2] || arguments[3] || arguments[4] || (fillAttrs[name] ? name : '');\r\n\r\n attrs.push({\r\n name,\r\n value,\r\n escaped: value.replace(/(^|[^\\\\])\"/g, '$1\\\\\"'), // \"\r\n });\r\n });\r\n\r\n if (handler.start) {\r\n handler.start(tagName, attrs, unary);\r\n }\r\n }\r\n }\r\n\r\n while (html) {\r\n chars = true;\r\n\r\n if (html.indexOf('= 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.