Commit a2408fc3f7c6a304e2d8d3e1764203fd73472b84
1 parent
55e8938704
Exists in
master
init
Showing
50 changed files
with
10182 additions
and
0 deletions
Show diff stats
App.vue
... | ... | @@ -0,0 +1,17 @@ |
1 | +<script> | |
2 | + export default { | |
3 | + onLaunch: function() { | |
4 | + console.log('App Launch') | |
5 | + }, | |
6 | + onShow: function() { | |
7 | + console.log('App Show') | |
8 | + }, | |
9 | + onHide: function() { | |
10 | + console.log('App Hide') | |
11 | + } | |
12 | + } | |
13 | +</script> | |
14 | + | |
15 | +<style> | |
16 | + /*每个页面公共css */ | |
17 | +</style> | ... | ... |
main.js
manifest.json
... | ... | @@ -0,0 +1,75 @@ |
1 | +{ | |
2 | + "name" : "gulu-vue", | |
3 | + "appid" : "", | |
4 | + "description" : "", | |
5 | + "versionName" : "1.0.0", | |
6 | + "versionCode" : "100", | |
7 | + "transformPx" : false, | |
8 | + /* 5+App特有相关 */ | |
9 | + "app-plus" : { | |
10 | + "usingComponents" : true, | |
11 | + "nvueCompiler" : "uni-app", | |
12 | + "compilerVersion" : 3, | |
13 | + "splashscreen" : { | |
14 | + "alwaysShowBeforeRender" : true, | |
15 | + "waiting" : true, | |
16 | + "autoclose" : true, | |
17 | + "delay" : 0 | |
18 | + }, | |
19 | + /* 模块配置 */ | |
20 | + "modules" : {}, | |
21 | + /* 应用发布信息 */ | |
22 | + "distribute" : { | |
23 | + /* android打包配置 */ | |
24 | + "android" : { | |
25 | + "permissions" : [ | |
26 | + "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", | |
27 | + "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", | |
28 | + "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>", | |
29 | + "<uses-permission android:name=\"android.permission.VIBRATE\"/>", | |
30 | + "<uses-permission android:name=\"android.permission.READ_LOGS\"/>", | |
31 | + "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", | |
32 | + "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", | |
33 | + "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>", | |
34 | + "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", | |
35 | + "<uses-permission android:name=\"android.permission.CAMERA\"/>", | |
36 | + "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>", | |
37 | + "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", | |
38 | + "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>", | |
39 | + "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", | |
40 | + "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", | |
41 | + "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", | |
42 | + "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>", | |
43 | + "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", | |
44 | + "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>", | |
45 | + "<uses-feature android:name=\"android.hardware.camera\"/>", | |
46 | + "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>", | |
47 | + "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" | |
48 | + ] | |
49 | + }, | |
50 | + /* ios打包配置 */ | |
51 | + "ios" : {}, | |
52 | + /* SDK配置 */ | |
53 | + "sdkConfigs" : {} | |
54 | + } | |
55 | + }, | |
56 | + /* 快应用特有相关 */ | |
57 | + "quickapp" : {}, | |
58 | + /* 小程序特有相关 */ | |
59 | + "mp-weixin" : { | |
60 | + "appid" : "", | |
61 | + "setting" : { | |
62 | + "urlCheck" : false | |
63 | + }, | |
64 | + "usingComponents" : true | |
65 | + }, | |
66 | + "mp-alipay" : { | |
67 | + "usingComponents" : true | |
68 | + }, | |
69 | + "mp-baidu" : { | |
70 | + "usingComponents" : true | |
71 | + }, | |
72 | + "mp-toutiao" : { | |
73 | + "usingComponents" : true | |
74 | + } | |
75 | +} | ... | ... |
pages.json
... | ... | @@ -0,0 +1,53 @@ |
1 | +{ | |
2 | + "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages | |
3 | + { | |
4 | + "path": "pages/index/index", | |
5 | + "style": { | |
6 | + "navigationBarTitleText": "商城一览" | |
7 | + } | |
8 | + }, | |
9 | + { | |
10 | + "path": "pages/cart/cart", | |
11 | + "style": { | |
12 | + "navigationBarTitleText": "购物车" | |
13 | + } | |
14 | + }, | |
15 | + { | |
16 | + "path": "pages/user/user", | |
17 | + "style": { | |
18 | + "navigationBarTitleText": "我的" | |
19 | + } | |
20 | + } | |
21 | + ], | |
22 | + "globalStyle": { | |
23 | + "navigationBarTextStyle": "black", | |
24 | + "navigationBarTitleText": "uni-app", | |
25 | + "navigationBarBackgroundColor": "#F8F8F8", | |
26 | + "backgroundColor": "#F8F8F8" | |
27 | + }, | |
28 | + "tabBar": { | |
29 | + "color": "#C0C4CC", | |
30 | + "selectedColor": "#fa436a", | |
31 | + "borderStyle": "black", | |
32 | + "backgroundColor": "#ffffff", | |
33 | + "list": [{ | |
34 | + "pagePath": "pages/index/index", | |
35 | + "iconPath": "static/tab-home.png", | |
36 | + "selectedIconPath": "static/tab-home-current.png", | |
37 | + "text": "首页" | |
38 | + }, | |
39 | + { | |
40 | + "pagePath": "pages/cart/cart", | |
41 | + "iconPath": "static/tab-cart.png", | |
42 | + "selectedIconPath": "static/tab-cart-current.png", | |
43 | + "text": "购物车" | |
44 | + }, | |
45 | + { | |
46 | + "pagePath": "pages/user/user", | |
47 | + "iconPath": "static/tab-my.png", | |
48 | + "selectedIconPath": "static/tab-my-current.png", | |
49 | + "text": "我的" | |
50 | + } | |
51 | + ] | |
52 | + } | |
53 | +} | ... | ... |
pages/cart/cart.vue
... | ... | @@ -0,0 +1,52 @@ |
1 | +<template> | |
2 | + <view class="content"> | |
3 | + <image class="logo" src="/static/logo.png"></image> | |
4 | + <view class="text-area"> | |
5 | + <text class="title">{{title}}</text> | |
6 | + </view> | |
7 | + </view> | |
8 | +</template> | |
9 | + | |
10 | +<script> | |
11 | + export default { | |
12 | + data() { | |
13 | + return { | |
14 | + title: 'Hello' | |
15 | + } | |
16 | + }, | |
17 | + onLoad() { | |
18 | + | |
19 | + }, | |
20 | + methods: { | |
21 | + | |
22 | + } | |
23 | + } | |
24 | +</script> | |
25 | + | |
26 | +<style> | |
27 | + .content { | |
28 | + display: flex; | |
29 | + flex-direction: column; | |
30 | + align-items: center; | |
31 | + justify-content: center; | |
32 | + } | |
33 | + | |
34 | + .logo { | |
35 | + height: 200rpx; | |
36 | + width: 200rpx; | |
37 | + margin-top: 200rpx; | |
38 | + margin-left: auto; | |
39 | + margin-right: auto; | |
40 | + margin-bottom: 50rpx; | |
41 | + } | |
42 | + | |
43 | + .text-area { | |
44 | + display: flex; | |
45 | + justify-content: center; | |
46 | + } | |
47 | + | |
48 | + .title { | |
49 | + font-size: 36rpx; | |
50 | + color: #8f8f94; | |
51 | + } | |
52 | +</style> | ... | ... |
pages/index/index.vue
... | ... | @@ -0,0 +1,56 @@ |
1 | +<template> | |
2 | + <view class="content"> | |
3 | + <view class="searchBar"> | |
4 | + <icon class="searchIcon" type="search" size="21"></icon> | |
5 | + <input class="searchIpt" placeholder="请输入搜索内容" confirm-type="search"/> | |
6 | + </view> | |
7 | + <view class="screenBar"></view> | |
8 | + <view class=""></view> | |
9 | + </view> | |
10 | +</template> | |
11 | + | |
12 | +<script> | |
13 | + export default { | |
14 | + data() { | |
15 | + return { | |
16 | + title: 'Hello' | |
17 | + } | |
18 | + }, | |
19 | + onLoad() { | |
20 | + | |
21 | + }, | |
22 | + methods: { | |
23 | + | |
24 | + } | |
25 | + } | |
26 | +</script> | |
27 | + | |
28 | +<style> | |
29 | + .content { | |
30 | + display: flex; | |
31 | + flex-direction: column; | |
32 | + align-items: center; | |
33 | + justify-content: center; | |
34 | + } | |
35 | + | |
36 | + .searchBar { | |
37 | + width: calc(100% - 16rpx * 2); | |
38 | + display: flex; | |
39 | + justify-content: center; | |
40 | + align-items: center; | |
41 | + box-sizing: border-box; | |
42 | + margin: 16rpx 16rpx; | |
43 | + padding: 0rpx 16rpx; | |
44 | + background-color: #F8F8F8; | |
45 | + } | |
46 | + | |
47 | + .searchIpt { | |
48 | + height: 64rpx; | |
49 | + width: 100%; | |
50 | + padding: 16rpx; | |
51 | + font-size: 28rpx; | |
52 | + box-sizing: border-box; | |
53 | + } | |
54 | + | |
55 | + | |
56 | +</style> | ... | ... |
pages/user/user.vue
... | ... | @@ -0,0 +1,52 @@ |
1 | +<template> | |
2 | + <view class="content"> | |
3 | + <image class="logo" src="/static/logo.png"></image> | |
4 | + <view class="text-area"> | |
5 | + <text class="title">{{title}}</text> | |
6 | + </view> | |
7 | + </view> | |
8 | +</template> | |
9 | + | |
10 | +<script> | |
11 | + export default { | |
12 | + data() { | |
13 | + return { | |
14 | + title: 'Hello' | |
15 | + } | |
16 | + }, | |
17 | + onLoad() { | |
18 | + | |
19 | + }, | |
20 | + methods: { | |
21 | + | |
22 | + } | |
23 | + } | |
24 | +</script> | |
25 | + | |
26 | +<style> | |
27 | + .content { | |
28 | + display: flex; | |
29 | + flex-direction: column; | |
30 | + align-items: center; | |
31 | + justify-content: center; | |
32 | + } | |
33 | + | |
34 | + .logo { | |
35 | + height: 200rpx; | |
36 | + width: 200rpx; | |
37 | + margin-top: 200rpx; | |
38 | + margin-left: auto; | |
39 | + margin-right: auto; | |
40 | + margin-bottom: 50rpx; | |
41 | + } | |
42 | + | |
43 | + .text-area { | |
44 | + display: flex; | |
45 | + justify-content: center; | |
46 | + } | |
47 | + | |
48 | + .title { | |
49 | + font-size: 36rpx; | |
50 | + color: #8f8f94; | |
51 | + } | |
52 | +</style> | ... | ... |
static/logo.png
3.93 KB
static/tab-cart-current.png
2.89 KB
static/tab-cart.png
2.85 KB
static/tab-home-current.png
3.97 KB
static/tab-home.png
3.87 KB
static/tab-my-current.png
1.31 KB
static/tab-my.png
2.89 KB
uni.scss
... | ... | @@ -0,0 +1,76 @@ |
1 | +/** | |
2 | + * 这里是uni-app内置的常用样式变量 | |
3 | + * | |
4 | + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 | |
5 | + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App | |
6 | + * | |
7 | + */ | |
8 | + | |
9 | +/** | |
10 | + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 | |
11 | + * | |
12 | + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 | |
13 | + */ | |
14 | + | |
15 | +/* 颜色变量 */ | |
16 | + | |
17 | +/* 行为相关颜色 */ | |
18 | +$uni-color-primary: #007aff; | |
19 | +$uni-color-success: #4cd964; | |
20 | +$uni-color-warning: #f0ad4e; | |
21 | +$uni-color-error: #dd524d; | |
22 | + | |
23 | +/* 文字基本颜色 */ | |
24 | +$uni-text-color:#333;//基本色 | |
25 | +$uni-text-color-inverse:#fff;//反色 | |
26 | +$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息 | |
27 | +$uni-text-color-placeholder: #808080; | |
28 | +$uni-text-color-disable:#c0c0c0; | |
29 | + | |
30 | +/* 背景颜色 */ | |
31 | +$uni-bg-color:#ffffff; | |
32 | +$uni-bg-color-grey:#f8f8f8; | |
33 | +$uni-bg-color-hover:#f1f1f1;//点击状态颜色 | |
34 | +$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色 | |
35 | + | |
36 | +/* 边框颜色 */ | |
37 | +$uni-border-color:#c8c7cc; | |
38 | + | |
39 | +/* 尺寸变量 */ | |
40 | + | |
41 | +/* 文字尺寸 */ | |
42 | +$uni-font-size-sm:24rpx; | |
43 | +$uni-font-size-base:28rpx; | |
44 | +$uni-font-size-lg:32rpx; | |
45 | + | |
46 | +/* 图片尺寸 */ | |
47 | +$uni-img-size-sm:40rpx; | |
48 | +$uni-img-size-base:52rpx; | |
49 | +$uni-img-size-lg:80rpx; | |
50 | + | |
51 | +/* Border Radius */ | |
52 | +$uni-border-radius-sm: 4rpx; | |
53 | +$uni-border-radius-base: 6rpx; | |
54 | +$uni-border-radius-lg: 12rpx; | |
55 | +$uni-border-radius-circle: 50%; | |
56 | + | |
57 | +/* 水平间距 */ | |
58 | +$uni-spacing-row-sm: 10px; | |
59 | +$uni-spacing-row-base: 20rpx; | |
60 | +$uni-spacing-row-lg: 30rpx; | |
61 | + | |
62 | +/* 垂直间距 */ | |
63 | +$uni-spacing-col-sm: 8rpx; | |
64 | +$uni-spacing-col-base: 16rpx; | |
65 | +$uni-spacing-col-lg: 24rpx; | |
66 | + | |
67 | +/* 透明度 */ | |
68 | +$uni-opacity-disabled: 0.3; // 组件禁用态的透明度 | |
69 | + | |
70 | +/* 文章场景相关 */ | |
71 | +$uni-color-title: #2C405A; // 文章标题颜色 | |
72 | +$uni-font-size-title:40rpx; | |
73 | +$uni-color-subtitle: #555555; // 二级标题颜色 | |
74 | +$uni-font-size-subtitle:36rpx; | |
75 | +$uni-color-paragraph: #3F536E; // 文章段落颜色 | |
76 | +$uni-font-size-paragraph:30rpx; | |
0 | 77 | \ No newline at end of file | ... | ... |
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
... | ... | @@ -0,0 +1 @@ |
1 | +{"version":3,"sources":["webpack:///C:/Users/Administrator/Desktop/gulu-vue/main.js","webpack:///C:/Users/Administrator/Desktop/gulu-vue/App.vue?888e","webpack:///C:/Users/Administrator/Desktop/gulu-vue/App.vue?3262","webpack:///C:/Users/Administrator/Desktop/gulu-vue/App.vue","webpack:///C:/Users/Administrator/Desktop/gulu-vue/App.vue?9752","webpack:///C:/Users/Administrator/Desktop/gulu-vue/App.vue?593a"],"names":["Vue","config","productionTip","App","mpType","app","$mount","onLaunch","console","log","onShow","onHide"],"mappings":";;;;;;;;;iDAAA,wCAAmB,iDAA4B;AAC/C,uE;;AAEAA,aAAIC,MAAJ,CAAWC,aAAX,GAA2B,KAA3B;;AAEAC,aAAIC,MAAJ,GAAa,KAAb;;AAEA,IAAMC,GAAG,GAAG,IAAIL,YAAJ;AACLG,YADK,EAAZ;;AAGA,UAAAE,GAAG,EAACC,MAAJ,G;;;;;;;;;;;;;;;;;;;;ACVA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACuD;AACL;AACa;;;AAG/D;AACqK;AACrK,gBAAgB,+KAAU;AAC1B,EAAE,yEAAM;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACe,gF;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAA6lB,CAAgB,unBAAG,EAAC,C;;;;;;;;;;;;ACClmB;AACdC,UAAQ,EAAE,oBAAW;AACpBC,WAAO,CAACC,GAAR,CAAY,YAAZ;AACA,GAHa;AAIdC,QAAM,EAAE,kBAAW;AAClBF,WAAO,CAACC,GAAR,CAAY,UAAZ;AACA,GANa;AAOdE,QAAM,EAAE,kBAAW;AAClBH,WAAO,CAACC,GAAR,CAAY,UAAZ;AACA,GATa,E;;;;;;;;;;;ACDf;AAAA;AAAA;AAAA;AAA+2B,CAAgB,g3BAAG,EAAC,C;;;;;;;;;;ACAn4B;AACA,OAAO,KAAU,EAAE,kBAKd","file":"common/main.js","sourcesContent":["import 'uni-pages';import '@dcloudio/uni-stat';import Vue from 'vue'\r\nimport App from './App'\r\n\r\nVue.config.productionTip = false\r\n\r\nApp.mpType = 'app'\r\n\r\nconst app = new Vue({\r\n ...App\r\n})\r\napp.$mount()","var render, staticRenderFns, recyclableRender, components\nvar renderjs\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!D:\\\\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 null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"C:/Users/Administrator/Desktop/gulu-vue/App.vue\"\nexport default component.exports","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=script&lang=js&\"","\nexport default {\n\tonLaunch: function() {\n\t\tconsole.log('App Launch')\n\t},\n\tonShow: function() {\n\t\tconsole.log('App Show')\n\t},\n\tonHide: function() {\n\t\tconsole.log('App Hide')\n\t}\n}\n","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=style&index=0&lang=css&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1587797864420\n var cssReload = require(\"D:/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 "],"sourceRoot":""} | |
0 | 2 | \ No newline at end of file | ... | ... |
unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
... | ... | @@ -0,0 +1 @@ |
1 | +{"version":3,"sources":["webpack:///webpack/bootstrap"],"names":[],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA","file":"common/runtime.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"common/runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""} | |
0 | 2 | \ No newline at end of file | ... | ... |
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
... | ... | @@ -0,0 +1 @@ |
1 | +{"version":3,"sources":["webpack:///./node_modules/@dcloudio/uni-mp-weixin/dist/index.js","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/@dcloudio/uni-stat/dist/index.js","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages.json","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js"],"names":["_toString","Object","prototype","toString","hasOwnProperty","isFn","fn","isStr","str","isPlainObject","obj","call","hasOwn","key","noop","cached","cache","create","cachedFn","hit","camelizeRE","camelize","replace","_","c","toUpperCase","HOOKS","globalInterceptors","scopedInterceptors","mergeHook","parentVal","childVal","res","concat","Array","isArray","dedupeHooks","hooks","i","length","indexOf","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","slice","scopedInterceptor","invokeApi","api","params","invoke","promiseInterceptor","catch","SYNC_API_RE","CONTEXT_API_RE","CONTEXT_API_RE_EXC","ASYNC_API","CALLBACK_API_RE","isContextApi","test","isSyncApi","isCallbackApi","handlePromise","err","shouldPromise","finally","constructor","value","reason","promisify","promiseApi","success","fail","complete","reject","assign","EPS","BASE_DEVICE_WIDTH","isIOS","deviceWidth","deviceDPR","checkDeviceWidth","wx","getSystemInfoSync","platform","pixelRatio","windowWidth","upx2px","number","newDeviceWidth","Number","result","Math","floor","interceptors","baseApi","freeze","__proto__","previewImage","args","fromArgs","currentIndex","parseInt","current","isNaN","urls","len","filter","item","indicator","loop","addSafeAreaInsets","safeArea","safeAreaInsets","top","left","right","bottom","windowHeight","protocols","getSystemInfo","todos","canIUses","CALLBACKS","processCallback","methodName","processReturnValue","processArgs","argsOption","keepFromArgs","toArgs","keyOption","console","warn","keepReturnValue","wrapper","protocol","error","arg1","arg2","apply","todoApis","TODOS","createTodoApi","todoApi","errMsg","providers","oauth","share","payment","getProvider","service","provider","extraApi","getEmitter","getUniEmitter","Emitter","Vue","ctx","$on","arguments","$off","$once","$emit","eventApi","MPPage","Page","MPComponent","Component","customizeRE","customize","initTriggerEvent","mpInstance","canIUse","oldTriggerEvent","triggerEvent","event","initHook","oldHook","PAGE_EVENT_HOOKS","initMocks","vm","mocks","$mp","mpType","mock","hasHook","vueOptions","default","extendOptions","super","mixins","find","mixin","initHooks","mpOptions","$vm","__call_hook","initVueComponent","VueComponent","extend","initSlots","vueSlots","$slots","slotName","$scopedSlots","initVueIds","vueIds","split","_$vueId","_$vuePid","initData","context","methods","e","process","VUE_APP_DEBUG","JSON","parse","stringify","__lifecycle_hooks__","PROP_TYPES","String","Boolean","createObserver","observer","newVal","oldVal","initBehaviors","initBehavior","vueBehaviors","behaviors","vueExtends","extends","vueMixins","vueProps","props","behavior","type","Date","properties","initProperties","vueMixin","parsePropType","defaultValue","file","isBehavior","vueId","setData","opts","wrapper$1","mp","stopPropagation","preventDefault","target","detail","markerId","getExtraValue","dataPathsArray","dataPathArray","dataPath","propPath","valuePath","vFor","__get_value","isInteger","vForItem","vForKey","processEventExtra","extra","extraObj","getObjByArray","arr","element","processEventArgs","isCustom","isCustomMPEvent","currentTarget","dataset","comType","__args__","ret","arg","ONCE","CUSTOM","isMatchEventType","eventType","optType","handleEvent","eventOpts","eventOpt","eventsArray","charAt","isOnce","eventArray","handlerCtx","$options","generic","$parent","handler","Error","once","parseBaseApp","initRefs","store","$store","mpHost","beforeCreate","$scope","appOptions","onLaunch","app","globalData","_isMounted","findVmByVueId","vuePid","$children","childVm","parentVm","Behavior","isPage","route","initRelation","defineProperty","get","$refs","components","selectAllComponents","component","ref","forComponents","handleLink","parent","parseApp","createApp","App","parseBaseComponent","vueComponentOptions","multipleSlots","addGlobalClass","componentOptions","__file","lifetimes","attached","propsData","$mount","ready","detached","$destroy","pageLifetimes","show","hide","resize","size","__l","__e","wxsCallMethods","callMethod","parseComponent","hooks$1","parseBasePage","vuePageOptions","pageOptions","onLoad","query","parsePage","createPage","createComponent","canIUseApi","apiName","uni","Proxy","set","uni$1","STAT_VERSION","version","STAT_URL","STAT_H5_URL","PAGE_PVER_TIME","APP_PVER_TIME","OPERATING_TIME","UUID_KEY","UUID_VALUE","getUuid","uuid","getPlatformName","plus","runtime","getDCloudId","getStorageSync","now","random","setStorageSync","getSgin","statData","sortArr","sort","sgin","sginStr","sign","substr","getSplicing","getTime","platformList","getPackName","packName","getAccountInfoSync","miniProgram","appId","getVersion","getChannel","platformName","channel","getScene","scene","getLaunchOptionsSync","First__Visit__Time__KEY","Last__Visit__Time__KEY","getFirstVisitTime","timeStorge","time","removeStorageSync","getLastVisitTime","PAGE_RESIDENCE_TIME","First_Page_residence_time","Last_Page_residence_time","setPageResidenceTime","getPageResidenceTime","TOTAL__VISIT__COUNT","getTotalVisitCount","count","GetEncodeURIComponentOptions","prop","encodeURIComponent","Set__First__Time","Set__Last__Time","getFirstTime","getLastTime","getResidenceTime","residenceTime","overtime","getRoute","pages","getCurrentPages","page","_self","is","getPageRoute","self","_query","getPageTypes","calibration","eventName","PagesJson","require","statConfig","resultOptions","Util","_retry","_platform","_navigationBarTitle","config","report","lt","_operatingTime","_reportingRequestData","__prevent_triggering","__licationHide","__licationShow","_lastPageRoute","ut","mpn","ak","appid","usv","v","ch","cn","pn","ct","t","tt","p","brand","md","model","sv","system","mpsdk","SDKVersion","mpv","lang","language","pr","ww","wh","sw","screenWidth","sh","screenHeight","path","sc","_sendReportRequest","_sendHideRequest","urlref","urlref_ts","routepath","titleNView","titleText","navigationBarTitleText","_sendPageRequest","url","_sendEventRequest","fvts","lvts","tvc","getProperty","getNetworkInfo","opt","request","e_n","e_v","getNetworkType","net","networkType","getLocation","wgtinfo","geocode","address","country","province","city","lat","latitude","lng","longitude","title","ttn","ttpj","ttc","requestData","uniStatData","firstArr","contentArr","lastArr","rd","elm","newData","optionsData","requests","imageRequest","setTimeout","_sendRequest","image","Image","src","Stat","instance","addInterceptorInit","interceptLogin","interceptShare","interceptRequestPayment","_login","_share","_payment","_pageShow","_applicationShow","_pageHide","_applicationHide","em","info","emVal","message","stack","stat","getInstance","isHide","lifecycle","onReady","load","onShareAppMessage","oldShareAppMessage","onShow","onHide","onUnload","onError","main"],"mappings":"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ACA;;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;AACA;AACA;AACA;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;AACA;AACA,GAAG;AACH;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;;AAEA;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,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU,IAAqC;AACpD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,8BAA8B;AAC9B,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,sCAAsC;AACtC,8C;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,YAAY,KAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,0CAA0C,2BAA2B,EAAE;AACvE,KAAK;AACL;AACA,0CAA0C,4BAA4B,EAAE;AACxE,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,YAAY,gFAAW;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,gFAAW;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,gFAAW;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;AACH;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,gFAAW;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;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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,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;;;;;;sGCh3BW,EAAC,SAAQ,EAAC,qBAAoB,EAAC,0BAAyB,MAA1B,EAArB,EAAuD,mBAAkB,EAAC,0BAAyB,KAA1B,EAAzE,EAA0G,mBAAkB,EAAC,0BAAyB,IAA1B,EAA5H,EAAT,EAAsK,eAAc,EAAC,0BAAyB,OAA1B,EAAkC,0BAAyB,SAA3D,EAAqE,gCAA+B,SAApG,EAA8G,mBAAkB,SAAhI,EAApL,E;;;;;;;;;;;sGAAA,EAAC,SAAQ,EAAT,E;;;;;;;;;;;;;;;;ACAf;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","file":"common/vendor.js","sourcesContent":["import Vue from 'vue';\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.then(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 res.then(res => {\r\n return res[1]\r\n }).catch(res => {\r\n return res[0]\r\n })\r\n }\r\n};\r\n\r\nconst SYNC_API_RE =\r\n /^\\$|sendNativeEvent|restoreGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;\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 return 1\r\n } else {\r\n return 0.5\r\n }\r\n }\r\n return number < 0 ? -result : result\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 addInterceptor: addInterceptor,\r\n removeInterceptor: removeInterceptor,\r\n interceptors: interceptors\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\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\nconst protocols = {\r\n previewImage,\r\n getSystemInfo: {\r\n returnValue: addSafeAreaInsets\r\n },\r\n getSystemInfoSync: {\r\n returnValue: addSafeAreaInsets\r\n }\r\n};\r\nconst todos = [\r\n 'vibrate'\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(`微信小程序 ${methodName}暂不支持${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 toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);\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(`微信小程序 暂不支持${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 const returnValue = wx[options.name || 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:暂不支持 ${name} 方法`\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 + ']不存在'\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 if (typeof getUniEmitter === 'function') {\r\n /* eslint-disable no-undef */\r\n return getUniEmitter\r\n }\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 {\r\n if (!wx.canIUse('nextTick')) {\r\n return\r\n }\r\n }\r\n const oldTriggerEvent = mpInstance.triggerEvent;\r\n mpInstance.triggerEvent = function (event, ...args) {\r\n return oldTriggerEvent.apply(mpInstance, [customize(event), ...args])\r\n };\r\n}\r\n\r\nfunction initHook (name, options) {\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\n\r\nPage = function (options = {}) {\r\n initHook('onLoad', options);\r\n return MPPage(options)\r\n};\r\n\r\nComponent = function (options = {}) {\r\n initHook('created', options);\r\n return MPComponent(options)\r\n};\r\n\r\nconst PAGE_EVENT_HOOKS = [\r\n 'onPullDownRefresh',\r\n 'onReachBottom',\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 vueOptions = VueComponent.extendOptions;\r\n } else {\r\n VueComponent = Vue.extend(vueOptions);\r\n }\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 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') || !event.detail) {\r\n event.detail = {};\r\n }\r\n\r\n if (!('markerId' in event.detail) && 'markerId' in event) {\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 const vFor = dataPath ? vm.__get_value(dataPath, context) : context;\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.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 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 (\r\n handlerCtx.$options.generic &&\r\n handlerCtx.$parent &&\r\n handlerCtx.$parent.$parent\r\n ) { // mp-weixin,mp-toutiao 抽象节点模拟 scoped slots\r\n handlerCtx = handlerCtx.$parent.$parent;\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 ret.push(handler.apply(handlerCtx, 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 }\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 hooks = [\r\n 'onShow',\r\n 'onHide',\r\n 'onError',\r\n 'onPageNotFound'\r\n];\r\n\r\nfunction parseBaseApp (vm, {\r\n mocks,\r\n initRefs\r\n}) {\r\n if (vm.$options.store) {\r\n Vue.prototype.$store = vm.$options.store;\r\n }\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\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('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 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 initRefs (vm) {\r\n const mpInstance = vm.$scope;\r\n Object.defineProperty(vm, '$refs', {\r\n get () {\r\n const $refs = {};\r\n const components = mpInstance.selectAllComponents('.vue-ref');\r\n components.forEach(component => {\r\n const ref = component.dataset.ref;\r\n $refs[ref] = component.$vm || component;\r\n });\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\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\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 (args) {\r\n this.$vm.$mp.query = args; // 兼容 mpvue\r\n this.$vm.__call_hook('onLoad', args);\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\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 (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\n\r\nvar uni$1 = uni;\r\n\r\nexport default uni$1;\r\nexport { createApp, createComponent, createPage };\r\n","/*!\n * Vue.js v2.6.11\n * (c) 2014-2020 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n {\n if(vm.$scope && vm.$scope.is){\n return vm.$scope.is\n }\n }\n if (vm.$root === vm) {\n return '<Root>'\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\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 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 // fixed by xxxxxx (nvue vuex)\n /* eslint-disable no-undef */\n if(typeof SharedObject !== 'undefined'){\n this.id = SharedObject.uid++;\n } else {\n this.id = uid++;\n }\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 = typeof SharedObject !== 'undefined' ? SharedObject : {};\nDep.SharedObject.target = null;\nDep.SharedObject.targetStack = [];\n\nfunction pushTarget (target) {\n Dep.SharedObject.targetStack.push(target);\n Dep.SharedObject.target = target;\n}\n\nfunction popTarget () {\n Dep.SharedObject.targetStack.pop();\n Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1];\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)\r\nfunction extractPropertiesFromVNodeData(data, Ctor, res, context) {\r\n var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties;\r\n if (isUndef(propOptions)) {\r\n return res\r\n }\n var externalClasses = Ctor.options.mpOptions.externalClasses || [];\r\n var attrs = data.attrs;\n var props = data.props;\r\n if (isDef(attrs) || isDef(props)) {\r\n for (var key in propOptions) {\r\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 }\r\n }\r\n }\r\n return res\r\n}\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag,\n context// fixed by xxxxxx\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, {}, context)\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, res, context)\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (Array.isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive$$1(vm, key, result[key]);\n }\n });\n toggleObserving(true);\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject)\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n // #6574 in case the inject object is observed...\n if (key === '__ob__') { continue }\n var provideKey = inject[key].from;\n var source = vm;\n while (source) {\n if (source._provided && hasOwn(source._provided, provideKey)) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (!source) {\n if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = typeof provideDefault === 'function'\n ? provideDefault.call(vm)\n : provideDefault;\n } else if (process.env.NODE_ENV !== 'production') {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n }\n return result\n }\n}\n\n/* */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n if (!children || !children.length) {\n return {}\n }\n var slots = {};\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data && data.slot != null\n ) {\n var name = data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n } else {\n slot.push(child);\n }\n } else {\n // fixed by xxxxxx 临时 hack 掉 uni-app 中的异步 name slot page\n if(child.asyncMeta && child.asyncMeta.data && child.asyncMeta.data.slot === 'page'){\n (slots['page'] || (slots['page'] = [])).push(child);\n }else{\n (slots.default || (slots.default = [])).push(child);\n }\n }\n }\n // ignore slots that contains only whitespace\n for (var name$1 in slots) {\n if (slots[name$1].every(isWhitespace)) {\n delete slots[name$1];\n }\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\n/* */\n\nfunction normalizeScopedSlots (\n slots,\n normalSlots,\n prevSlots\n) {\n var res;\n var hasNormalSlots = Object.keys(normalSlots).length > 0;\n var isStable = slots ? !!slots.$stable : !hasNormalSlots;\n var key = slots && slots.$key;\n if (!slots) {\n res = {};\n } else if (slots._normalized) {\n // fast path 1: child component re-render only, parent did not change\n return slots._normalized\n } else if (\n isStable &&\n prevSlots &&\n prevSlots !== emptyObject &&\n key === prevSlots.$key &&\n !hasNormalSlots &&\n !prevSlots.$hasNormal\n ) {\n // fast path 2: stable scoped slots w/ no normal slots to proxy,\n // only need to normalize once\n return prevSlots\n } else {\n res = {};\n for (var key$1 in slots) {\n if (slots[key$1] && key$1[0] !== '$') {\n res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\n }\n }\n }\n // expose normal slots on scopedSlots\n for (var key$2 in normalSlots) {\n if (!(key$2 in res)) {\n res[key$2] = proxyNormalSlot(normalSlots, key$2);\n }\n }\n // avoriaz seems to mock a non-extensible $scopedSlots object\n // and when that is passed down this would cause an error\n if (slots && Object.isExtensible(slots)) {\n (slots)._normalized = res;\n }\n def(res, '$stable', isStable);\n def(res, '$key', key);\n def(res, '$hasNormal', hasNormalSlots);\n return res\n}\n\nfunction normalizeScopedSlot(normalSlots, key, fn) {\n var normalized = function () {\n var res = arguments.length ? fn.apply(null, arguments) : fn({});\n res = res && typeof res === 'object' && !Array.isArray(res)\n ? [res] // single vnode\n : normalizeChildren(res);\n return res && (\n res.length === 0 ||\n (res.length === 1 && res[0].isComment) // #9658\n ) ? undefined\n : res\n };\n // this is a slot using the new v-slot syntax without scope. although it is\n // compiled as a scoped slot, render fn users would expect it to be present\n // on this.$slots because the usage is semantically a normal slot.\n if (fn.proxy) {\n Object.defineProperty(normalSlots, key, {\n get: normalized,\n enumerable: true,\n configurable: true\n });\n }\n return normalized\n}\n\nfunction proxyNormalSlot(slots, key) {\n return function () { return slots[key]; }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i, i, i); // fixed by xxxxxx\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i, i, i); // fixed by xxxxxx\n }\n } else if (isObject(val)) {\n if (hasSymbol && val[Symbol.iterator]) {\n ret = [];\n var iterator = val[Symbol.iterator]();\n var result = iterator.next();\n while (!result.done) {\n ret.push(render(result.value, ret.length, i++, i)); // fixed by xxxxxx\n result = iterator.next();\n }\n } else {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i, i); // fixed by xxxxxx\n }\n }\n }\n if (!isDef(ret)) {\n ret = [];\n }\n (ret)._isVList = true;\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n name,\n fallback,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) { // scoped slot\n props = props || {};\n if (bindObject) {\n if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n warn(\n 'slot v-bind without argument expects an Object',\n this\n );\n }\n props = extend(extend({}, bindObject), props);\n }\n // fixed by xxxxxx app-plus scopedSlot\n nodes = scopedSlotFn(props, this, props._i) || fallback;\n } else {\n nodes = this.$slots[name] || fallback;\n }\n\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes)\n } else {\n return nodes\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\nfunction isKeyNotMatch (expect, actual) {\n if (Array.isArray(expect)) {\n return expect.indexOf(actual) === -1\n } else {\n return expect !== actual\n }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInKeyCode,\n eventKeyName,\n builtInKeyName\n) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName)\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key\n }\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n var camelizedKey = camelize(key);\n var hyphenatedKey = hyphenate(key);\n if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(\n this._renderProxy,\n null,\n this // for render fns generated for functional component templates\n );\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res,\n // the following are added in 2.6\n hasDynamicKeys,\n contentHashKey\n) {\n res = res || { $stable: !hasDynamicKeys };\n for (var i = 0; i < fns.length; i++) {\n var slot = fns[i];\n if (Array.isArray(slot)) {\n resolveScopedSlots(slot, res, hasDynamicKeys);\n } else if (slot) {\n // marker for reverse proxying v-slot without scope on this.$slots\n if (slot.proxy) {\n slot.fn.proxy = true;\n }\n res[slot.key] = slot.fn;\n }\n }\n if (contentHashKey) {\n (res).$key = contentHashKey;\n }\n return res\n}\n\n/* */\n\nfunction bindDynamicKeys (baseObj, values) {\n for (var i = 0; i < values.length; i += 2) {\n var key = values[i];\n if (typeof key === 'string' && key) {\n baseObj[values[i]] = values[i + 1];\n } else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {\n // null is a special value for explicitly removing a binding\n warn(\n (\"Invalid value for dynamic directive argument (expected string or null): \" + key),\n this\n );\n }\n }\n return baseObj\n}\n\n// helper to dynamically append modifier runtime markers to event names.\n// ensure only append when value is already string, otherwise it will be cast\n// to string and cause the type check to miss.\nfunction prependModifier (value, symbol) {\n return typeof value === 'string' ? symbol + value : value\n}\n\n/* */\n\nfunction installRenderHelpers (target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n target._d = bindDynamicKeys;\n target._p = prependModifier;\n}\n\n/* */\n\nfunction FunctionalRenderContext (\n data,\n props,\n children,\n parent,\n Ctor\n) {\n var this$1 = this;\n\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n // $flow-disable-line\n contextVm._original = parent;\n } else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // $flow-disable-line\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () {\n if (!this$1.$slots) {\n normalizeScopedSlots(\n data.scopedSlots,\n this$1.$slots = resolveSlots(children, parent)\n );\n }\n return this$1.$slots\n };\n\n Object.defineProperty(this, 'scopedSlots', ({\n enumerable: true,\n get: function get () {\n return normalizeScopedSlots(data.scopedSlots, this.slots())\n }\n }));\n\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\n }\n\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n if (vnode && !Array.isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode\n };\n } else {\n this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n contextVm,\n children\n) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n\n var renderContext = new FunctionalRenderContext(\n data,\n props,\n children,\n contextVm,\n Ctor\n );\n\n var vnode = options.render.call(null, renderContext._c, renderContext);\n\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)\n } else if (Array.isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n }\n return res\n }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n if (process.env.NODE_ENV !== 'production') {\n (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;\n }\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n/* */\n\n/* */\n\n/* */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (vnode, hydrating) {\n if (\n vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive\n ) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n } else {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n callHook(componentInstance, 'onServiceCreated');\n callHook(componentInstance, 'onServiceAttached');\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag, context); // fixed by xxxxxx\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n vnode, // we know it's MountedComponentVNode but flow doesn't\n parent // activeInstance in lifecycle state\n) {\n var options = {\n _isComponent: true,\n _parentVnode: vnode,\n parent: parent\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n var existing = hooks[key];\n var toMerge = componentVNodeHooks[key];\n if (existing !== toMerge && !(existing && existing._merged)) {\n hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\n }\n }\n}\n\nfunction mergeHook$1 (f1, f2) {\n var merged = function (a, b) {\n // flow complains about extra args which is why we use any\n f1(a, b);\n f2(a, b);\n };\n merged._merged = true;\n return merged\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input'\n ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n var existing = on[event];\n var callback = data.model.callback;\n if (isDef(existing)) {\n if (\n Array.isArray(existing)\n ? existing.indexOf(callback) === -1\n : existing !== callback\n ) {\n on[event] = [callback].concat(existing);\n }\n } else {\n on[event] = callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (process.env.NODE_ENV !== 'production' &&\n isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n ) {\n {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n if (process.env.NODE_ENV !== 'production' && isDef(data) && isDef(data.nativeOn)) {\n warn(\n (\"The .native modifier for v-on is only valid on components but it was used on <\" + tag + \">.\"),\n context\n );\n }\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (Array.isArray(vnode)) {\n return vnode\n } else if (isDef(vnode)) {\n if (isDef(ns)) { applyNS(vnode, ns); }\n if (isDef(data)) { registerDeepBindings(data); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && (\n isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n }\n}\n\nvar currentRenderingInstance = null;\n\nfunction renderMixin (Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var _parentVnode = ref._parentVnode;\n\n if (_parentVnode) {\n vm.$scopedSlots = normalizeScopedSlots(\n _parentVnode.data.scopedSlots,\n vm.$slots,\n vm.$scopedSlots\n );\n }\n\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n // There's no need to maintain a stack because all render fns are called\n // separately from one another. Nested component's render fns are called\n // when parent component is patched.\n currentRenderingInstance = vm;\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n } catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n } finally {\n currentRenderingInstance = null;\n }\n // if the returned array contains only a single node, allow it\n if (Array.isArray(vnode) && vnode.length === 1) {\n vnode = vnode[0];\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (\n comp.__esModule ||\n (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n ) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n var owner = currentRenderingInstance;\n if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n // already pending\n factory.owners.push(owner);\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (owner && !isDef(factory.owners)) {\n var owners = factory.owners = [owner];\n var sync = true;\n var timerLoading = null;\n var timerTimeout = null\n\n ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });\n\n var forceRender = function (renderCompleted) {\n for (var i = 0, l = owners.length; i < l; i++) {\n (owners[i]).$forceUpdate();\n }\n\n if (renderCompleted) {\n owners.length = 0;\n if (timerLoading !== null) {\n clearTimeout(timerLoading);\n timerLoading = null;\n }\n if (timerTimeout !== null) {\n clearTimeout(timerTimeout);\n timerTimeout = null;\n }\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender(true);\n } else {\n owners.length = 0;\n }\n });\n\n var reject = once(function (reason) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender(true);\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (isPromise(res)) {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isPromise(res.component)) {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n timerLoading = setTimeout(function () {\n timerLoading = null;\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender(false);\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n timerTimeout = setTimeout(function () {\n timerTimeout = null;\n if (isUndef(factory.resolved)) {\n reject(\n process.env.NODE_ENV !== 'production'\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn) {\n target.$on(event, fn);\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction createOnceHandler (event, fn) {\n var _target = target;\n return function onceHandler () {\n var res = fn.apply(null, arguments);\n if (res !== null) {\n _target.$off(event, onceHandler);\n }\n }\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\n target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n vm.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\n vm.$off(event[i$1], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (!fn) {\n vm._events[event] = null;\n return vm\n }\n // specific handler\n var cb;\n var i = cbs.length;\n while (i--) {\n cb = cbs[i];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i, 1);\n break\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (process.env.NODE_ENV !== 'production') {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n var info = \"event handler for \\\"\" + event + \"\\\"\";\n for (var i = 0, l = cbs.length; i < l; i++) {\n invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n }\n }\n return vm\n };\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction setActiveInstance(vm) {\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n return function () {\n activeInstance = prevActiveInstance;\n }\n}\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var restoreActiveInstance = setActiveInstance(vm);\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n restoreActiveInstance();\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren.\n\n // check if there are dynamic scopedSlots (hand-written or compiled but with\n // dynamic slot names). Static scoped slots compiled from template has the\n // \"$stable\" marker.\n var newScopedSlots = parentVnode.data.scopedSlots;\n var oldScopedSlots = vm.$scopedSlots;\n var hasDynamicScopedSlot = !!(\n (newScopedSlots && !newScopedSlots.$stable) ||\n (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)\n );\n\n // Any static slot children from the parent may have changed during parent's\n // update. Dynamic scoped slots may also have changed. In such cases, a forced\n // update is necessary to ensure correctness.\n var needsForceUpdate = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n hasDynamicScopedSlot\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = parentVnode.data.attrs || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n \n // fixed by xxxxxx update properties(mp runtime)\n vm._$updateProperties && vm._$updateProperties(vm);\n \n // update listeners\n listeners = listeners || emptyObject;\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n\n // resolve slots + force update if has children\n if (needsForceUpdate) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n var info = hook + \" hook\";\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n invokeWithErrorHandling(handlers[i], vm, null, vm, info);\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n popTarget();\n}\n\n/* */\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (process.env.NODE_ENV !== 'production') {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n// Async edge case #6566 requires saving the timestamp when event listeners are\n// attached. However, calling performance.now() has a perf overhead especially\n// if the page has thousands of event listeners. Instead, we take a timestamp\n// every time the scheduler flushes and use that for all event listeners\n// attached during that flush.\nvar currentFlushTimestamp = 0;\n\n// Async edge case fix requires storing an event listener's attach timestamp.\nvar getNow = Date.now;\n\n// Determine what event timestamp the browser is using. Annoyingly, the\n// timestamp can either be hi-res (relative to page load) or low-res\n// (relative to UNIX epoch), so in order to compare time we have to use the\n// same timestamp type when saving the flush timestamp.\n// All IE versions use low-res event timestamps, and have problematic clock\n// implementations (#9632)\nif (inBrowser && !isIE) {\n var performance = window.performance;\n if (\n performance &&\n typeof performance.now === 'function' &&\n getNow() > document.createEvent('Event').timeStamp\n ) {\n // if the event timestamp, although evaluated AFTER the Date.now(), is\n // smaller than it, it means the event is using a hi-res timestamp,\n // and we need to use the hi-res version for event listener timestamps as\n // well.\n getNow = function () { return performance.now(); };\n }\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n currentFlushTimestamp = getNow();\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n if (watcher.before) {\n watcher.before();\n }\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n flushSchedulerQueue();\n return\n }\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\n\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options,\n isRenderWatcher\n) {\n this.vm = vm;\n if (isRenderWatcher) {\n vm._watcher = this;\n }\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n this.before = options.before;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$2; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = process.env.NODE_ENV !== 'production'\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = noop;\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var i = this.deps.length;\n while (i--) {\n var dep = this.deps[i];\n if (!this.newDepIds.has(dep.id)) {\n dep.removeSub(this);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var i = this.deps.length;\n while (i--) {\n this.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this.deps[i].removeSub(this);\n }\n this.active = false;\n }\n};\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn(\n (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive$$1(props, key, value, function () {\n if (!isRoot && !isUpdatingChildComponent) {\n {\n if(vm.mpHost === 'mp-baidu'){//百度 observer 在 setData callback 之后触发,直接忽略该 warn\n return\n }\n //fixed by xxxxxx __next_tick_pending,uni://form-field 时不告警\n if(\n key === 'value' && \n Array.isArray(vm.$options.behaviors) &&\n vm.$options.behaviors.indexOf('uni://form-field') !== -1\n ){\n return\n }\n if(vm._getFormData){\n return\n }\n var $parent = vm.$parent;\n while($parent){\n if($parent.__next_tick_pending){\n return \n }\n $parent = $parent.$parent;\n }\n }\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive$$1(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n toggleObserving(true);\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n process.env.NODE_ENV !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n } finally {\n popTarget();\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n // $flow-disable-line\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (process.env.NODE_ENV !== 'production' && getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (process.env.NODE_ENV !== 'production') {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : createGetterInvoker(userDef);\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : createGetterInvoker(userDef.get)\n : noop;\n sharedPropertyDefinition.set = userDef.set || noop;\n }\n if (process.env.NODE_ENV !== 'production' &&\n sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.SharedObject.target) {// fixed by xxxxxx\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction createGetterInvoker(fn) {\n return function computedGetter () {\n return fn.call(this, this)\n }\n}\n\nfunction initMethods (vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof methods[key] !== 'function') {\n warn(\n \"Method \\\"\" + key + \"\\\" has type \\\"\" + (typeof methods[key]) + \"\\\" in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n expOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (process.env.NODE_ENV !== 'production') {\n dataDef.set = function () {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n try {\n cb.call(vm, watcher.value);\n } catch (error) {\n handleError(error, vm, (\"callback for immediate watcher \\\"\" + (watcher.expression) + \"\\\"\"));\n }\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$3++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n startTag = \"vue-perf-start:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n !vm._$fallback && initInjections(vm); // resolve injections before data/props \n initState(vm);\n !vm._$fallback && initProvide(vm); // resolve provide after data/props\n !vm._$fallback && callHook(vm, 'created'); \n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = latest[key];\n }\n }\n return modified\n}\n\nfunction Vue (options) {\n if (process.env.NODE_ENV !== 'production' &&\n !(this instanceof Vue)\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (process.env.NODE_ENV !== 'production' && name) {\n validateComponentName(name);\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\n\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache;\n var keys = keepAliveInstance.keys;\n var _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var cachedNode = cache[key];\n if (cachedNode) {\n var name = getComponentName(cachedNode.componentOptions);\n if (name && !filter(name)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n}\n\nfunction pruneCacheEntry (\n cache,\n key,\n keys,\n current\n) {\n var cached$$1 = cache[key];\n if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n cached$$1.componentInstance.$destroy();\n }\n cache[key] = null;\n remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n\n created: function created () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n\n destroyed: function destroyed () {\n for (var key in this.cache) {\n pruneCacheEntry(this.cache, key, this.keys);\n }\n },\n\n mounted: function mounted () {\n var this$1 = this;\n\n this.$watch('include', function (val) {\n pruneCache(this$1, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(this$1, function (name) { return !matches(val, name); });\n });\n },\n\n render: function render () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n var ref = this;\n var include = ref.include;\n var exclude = ref.exclude;\n if (\n // not included\n (include && (!name || !matches(include, name))) ||\n // excluded\n (exclude && name && matches(exclude, name))\n ) {\n return vnode\n }\n\n var ref$1 = this;\n var cache = ref$1.cache;\n var keys = ref$1.keys;\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove(keys, key);\n keys.push(key);\n } else {\n cache[key] = vnode;\n keys.push(key);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n }\n\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0])\n }\n};\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n};\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (process.env.NODE_ENV !== 'production') {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive$$1\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n // 2.6 explicit observable API\n Vue.observable = function (obj) {\n observe(obj);\n return obj\n };\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n});\n\nVue.version = '2.6.11';\n\n/**\n * https://raw.githubusercontent.com/Tencent/westore/master/packages/westore/utils/diff.js\n */\nvar ARRAYTYPE = '[object Array]';\nvar OBJECTTYPE = '[object Object]';\n// const FUNCTIONTYPE = '[object Function]'\n\nfunction diff(current, pre) {\n var result = {};\n syncKeys(current, pre);\n _diff(current, pre, '', result);\n return result\n}\n\nfunction syncKeys(current, pre) {\n if (current === pre) { return }\n var rootCurrentType = type(current);\n var rootPreType = type(pre);\n if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n if(Object.keys(current).length >= Object.keys(pre).length){\n for (var key in pre) {\n var currentValue = current[key];\n if (currentValue === undefined) {\n current[key] = null;\n } else {\n syncKeys(currentValue, pre[key]);\n }\n }\n }\n } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n if (current.length >= pre.length) {\n pre.forEach(function (item, index) {\n syncKeys(current[index], item);\n });\n }\n }\n}\n\nfunction _diff(current, pre, path, result) {\n if (current === pre) { return }\n var rootCurrentType = type(current);\n var rootPreType = type(pre);\n if (rootCurrentType == OBJECTTYPE) {\n if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n setResult(result, path, current);\n } else {\n var loop = function ( key ) {\n var currentValue = current[key];\n var preValue = pre[key];\n var currentType = type(currentValue);\n var preType = type(preValue);\n if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n if (currentValue != pre[key]) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n }\n } else if (currentType == ARRAYTYPE) {\n if (preType != ARRAYTYPE) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n } else {\n if (currentValue.length < preValue.length) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n } else {\n currentValue.forEach(function (item, index) {\n _diff(item, preValue[index], (path == '' ? '' : path + \".\") + key + '[' + index + ']', result);\n });\n }\n }\n } else if (currentType == OBJECTTYPE) {\n if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n } else {\n for (var subKey in currentValue) {\n _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + \".\") + key + '.' + subKey, result);\n }\n }\n }\n };\n\n for (var key in current) loop( key );\n }\n } else if (rootCurrentType == ARRAYTYPE) {\n if (rootPreType != ARRAYTYPE) {\n setResult(result, path, current);\n } else {\n if (current.length < pre.length) {\n setResult(result, path, current);\n } else {\n current.forEach(function (item, index) {\n _diff(item, pre[index], path + '[' + index + ']', result);\n });\n }\n }\n } else {\n setResult(result, path, current);\n }\n}\n\nfunction setResult(result, k, v) {\n // if (type(v) != FUNCTIONTYPE) {\n result[k] = v;\n // }\n}\n\nfunction type(obj) {\n return Object.prototype.toString.call(obj)\n}\n\n/* */\r\n\r\nfunction flushCallbacks$1(vm) {\r\n if (vm.__next_tick_callbacks && vm.__next_tick_callbacks.length) {\r\n if (process.env.VUE_APP_DEBUG) {\r\n var mpInstance = vm.$scope;\r\n console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +\r\n ']:flushCallbacks[' + vm.__next_tick_callbacks.length + ']');\r\n }\r\n var copies = vm.__next_tick_callbacks.slice(0);\r\n vm.__next_tick_callbacks.length = 0;\r\n for (var i = 0; i < copies.length; i++) {\r\n copies[i]();\r\n }\r\n }\r\n}\r\n\r\nfunction hasRenderWatcher(vm) {\r\n return queue.find(function (watcher) { return vm._watcher === watcher; })\r\n}\r\n\r\nfunction nextTick$1(vm, cb) {\r\n //1.nextTick 之前 已 setData 且 setData 还未回调完成\r\n //2.nextTick 之前存在 render watcher\r\n if (!vm.__next_tick_pending && !hasRenderWatcher(vm)) {\n if(process.env.VUE_APP_DEBUG){\n var mpInstance = vm.$scope;\n console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +\n ']:nextVueTick');\n }\r\n return nextTick(cb, vm)\r\n }else{\n if(process.env.VUE_APP_DEBUG){\n var mpInstance$1 = vm.$scope;\n console.log('[' + (+new Date) + '][' + (mpInstance$1.is || mpInstance$1.route) + '][' + vm._uid +\n ']:nextMPTick');\n }\n }\r\n var _resolve;\r\n if (!vm.__next_tick_callbacks) {\r\n vm.__next_tick_callbacks = [];\r\n }\r\n vm.__next_tick_callbacks.push(function () {\r\n if (cb) {\r\n try {\r\n cb.call(vm);\r\n } catch (e) {\r\n handleError(e, vm, 'nextTick');\r\n }\r\n } else if (_resolve) {\r\n _resolve(vm);\r\n }\r\n });\r\n // $flow-disable-line\r\n if (!cb && typeof Promise !== 'undefined') {\r\n return new Promise(function (resolve) {\r\n _resolve = resolve;\r\n })\r\n }\r\n}\n\n/* */\r\n\r\nfunction cloneWithData(vm) {\r\n // 确保当前 vm 所有数据被同步\r\n var ret = Object.create(null);\r\n var dataKeys = [].concat(\r\n Object.keys(vm._data || {}),\r\n Object.keys(vm._computedWatchers || {}));\r\n\r\n dataKeys.reduce(function(ret, key) {\r\n ret[key] = vm[key];\r\n return ret\r\n }, ret);\r\n //TODO 需要把无用数据处理掉,比如 list=>l0 则 list 需要移除,否则多传输一份数据\r\n Object.assign(ret, vm.$mp.data || {});\r\n if (\r\n Array.isArray(vm.$options.behaviors) &&\r\n vm.$options.behaviors.indexOf('uni://form-field') !== -1\r\n ) { //form-field\r\n ret['name'] = vm.name;\r\n ret['value'] = vm.value;\r\n }\r\n\r\n return JSON.parse(JSON.stringify(ret))\r\n}\r\n\r\nvar patch = function(oldVnode, vnode) {\n var this$1 = this;\n\r\n if (vnode === null) { //destroy\r\n return\r\n }\r\n if (this.mpType === 'page' || this.mpType === 'component') {\r\n var mpInstance = this.$scope;\r\n var data = Object.create(null);\r\n try {\r\n data = cloneWithData(this);\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n data.__webviewId__ = mpInstance.data.__webviewId__;\r\n var mpData = Object.create(null);\r\n Object.keys(data).forEach(function (key) { //仅同步 data 中有的数据\r\n mpData[key] = mpInstance.data[key];\r\n });\r\n var diffData = this.$shouldDiffData === false ? data : diff(data, mpData);\r\n if (Object.keys(diffData).length) {\r\n if (process.env.VUE_APP_DEBUG) {\r\n console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + this._uid +\r\n ']差量更新',\r\n JSON.stringify(diffData));\r\n }\r\n this.__next_tick_pending = true;\r\n mpInstance.setData(diffData, function () {\r\n this$1.__next_tick_pending = false;\r\n flushCallbacks$1(this$1);\r\n });\r\n } else {\r\n flushCallbacks$1(this);\r\n }\r\n }\r\n};\n\n/* */\n\nfunction createEmptyRender() {\n\n}\n\nfunction mountComponent$1(\n vm,\n el,\n hydrating\n) {\n if (!vm.mpType) {//main.js 中的 new Vue\n return vm\n }\n if (vm.mpType === 'app') {\n vm.$options.render = createEmptyRender;\n }\n if (!vm.$options.render) {\n vm.$options.render = createEmptyRender;\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n \n !vm._$fallback && callHook(vm, 'beforeMount');\n\n var updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, {\n before: function before() {\n if (vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'beforeUpdate');\n }\n }\n }, true /* isRenderWatcher */);\n hydrating = false;\n return vm\n}\n\n/* */\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/* */\r\n\r\nvar MP_METHODS = ['createSelectorQuery', 'createIntersectionObserver', 'selectAllComponents', 'selectComponent'];\r\n\r\nfunction getTarget(obj, path) {\r\n var parts = path.split('.');\r\n var key = parts[0];\r\n if (key.indexOf('__$n') === 0) { //number index\r\n key = parseInt(key.replace('__$n', ''));\r\n }\r\n if (parts.length === 1) {\r\n return obj[key]\r\n }\r\n return getTarget(obj[key], parts.slice(1).join('.'))\r\n}\r\n\r\nfunction internalMixin(Vue) {\r\n\r\n Vue.config.errorHandler = function(err) {\n console.error(err);\n /* eslint-disable no-undef */\r\n var app = getApp();\r\n if (app && app.onError) {\r\n app.onError(err);\r\n }\r\n };\r\n\r\n var oldEmit = Vue.prototype.$emit;\r\n\r\n Vue.prototype.$emit = function(event) {\r\n if (this.$scope && event) {\r\n this.$scope['triggerEvent'](event, {\r\n __args__: toArray(arguments, 1)\r\n });\r\n }\r\n return oldEmit.apply(this, arguments)\r\n };\r\n\r\n Vue.prototype.$nextTick = function(fn) {\r\n return nextTick$1(this, fn)\r\n };\r\n\r\n MP_METHODS.forEach(function (method) {\r\n Vue.prototype[method] = function(args) {\r\n if (this.$scope && this.$scope[method]) {\r\n return this.$scope[method](args)\r\n }\r\n // mp-alipay\r\n if (typeof my === 'undefined') {\r\n return\r\n }\r\n if (method === 'createSelectorQuery') {\r\n /* eslint-disable no-undef */\r\n return my.createSelectorQuery(args)\r\n } else if (method === 'createIntersectionObserver') {\r\n /* eslint-disable no-undef */\r\n return my.createIntersectionObserver(args)\r\n }\r\n // TODO mp-alipay 暂不支持 selectAllComponents,selectComponent\r\n };\r\n });\r\n\r\n Vue.prototype.__init_provide = initProvide;\r\n\r\n Vue.prototype.__init_injections = initInjections;\r\n\r\n Vue.prototype.__call_hook = function(hook, args) {\r\n var vm = this;\r\n // #7573 disable dep collection when invoking lifecycle hooks\r\n pushTarget();\r\n var handlers = vm.$options[hook];\r\n var info = hook + \" hook\";\r\n var ret;\r\n if (handlers) {\r\n for (var i = 0, j = handlers.length; i < j; i++) {\r\n ret = invokeWithErrorHandling(handlers[i], vm, args ? [args] : null, vm, info);\r\n }\r\n }\r\n if (vm._hasHookEvent) {\r\n vm.$emit('hook:' + hook, args);\r\n }\r\n popTarget();\r\n return ret\r\n };\r\n\r\n Vue.prototype.__set_model = function(target, key, value, modifiers) {\r\n if (Array.isArray(modifiers)) {\r\n if (modifiers.indexOf('trim') !== -1) {\r\n value = value.trim();\r\n }\r\n if (modifiers.indexOf('number') !== -1) {\r\n value = this._n(value);\r\n }\r\n }\r\n if (!target) {\r\n target = this;\r\n }\r\n target[key] = value;\r\n };\r\n\r\n Vue.prototype.__set_sync = function(target, key, value) {\r\n if (!target) {\r\n target = this;\r\n }\r\n target[key] = value;\r\n };\r\n\r\n Vue.prototype.__get_orig = function(item) {\r\n if (isPlainObject(item)) {\r\n return item['$orig'] || item\r\n }\r\n return item\r\n };\r\n\r\n Vue.prototype.__get_value = function(dataPath, target) {\r\n return getTarget(target || this, dataPath)\r\n };\r\n\r\n\r\n Vue.prototype.__get_class = function(dynamicClass, staticClass) {\r\n return renderClass(staticClass, dynamicClass)\r\n };\r\n\r\n Vue.prototype.__get_style = function(dynamicStyle, staticStyle) {\r\n if (!dynamicStyle && !staticStyle) {\r\n return ''\r\n }\r\n var dynamicStyleObj = normalizeStyleBinding(dynamicStyle);\r\n var styleObj = staticStyle ? extend(staticStyle, dynamicStyleObj) : dynamicStyleObj;\r\n return Object.keys(styleObj).map(function (name) { return ((hyphenate(name)) + \":\" + (styleObj[name])); }).join(';')\r\n };\r\n\r\n Vue.prototype.__map = function(val, iteratee) {\r\n //TODO 暂不考虑 string,number\r\n var ret, i, l, keys, key;\r\n if (Array.isArray(val)) {\r\n ret = new Array(val.length);\r\n for (i = 0, l = val.length; i < l; i++) {\r\n ret[i] = iteratee(val[i], i);\r\n }\r\n return ret\r\n } else if (isObject(val)) {\r\n keys = Object.keys(val);\r\n ret = Object.create(null);\r\n for (i = 0, l = keys.length; i < l; i++) {\r\n key = keys[i];\r\n ret[key] = iteratee(val[key], key, i);\r\n }\r\n return ret\r\n }\r\n return []\r\n };\r\n\r\n}\n\n/* */\r\n\r\nvar LIFECYCLE_HOOKS$1 = [\r\n //App\r\n 'onLaunch',\r\n 'onShow',\r\n 'onHide',\r\n 'onUniNViewMessage',\n 'onError',\r\n //Page\r\n 'onLoad',\r\n // 'onShow',\r\n 'onReady',\r\n // 'onHide',\r\n 'onUnload',\r\n 'onPullDownRefresh',\r\n 'onReachBottom',\r\n 'onTabItemTap',\r\n 'onShareAppMessage',\n 'onResize',\r\n 'onPageScroll',\r\n 'onNavigationBarButtonTap',\r\n 'onBackPress',\r\n 'onNavigationBarSearchInputChanged',\r\n 'onNavigationBarSearchInputConfirmed',\r\n 'onNavigationBarSearchInputClicked',\r\n //Component\r\n // 'onReady', // 兼容旧版本,应该移除该事件\r\n 'onPageShow',\r\n 'onPageHide',\r\n 'onPageResize'\r\n];\r\nfunction lifecycleMixin$1(Vue) {\r\n\r\n //fixed vue-class-component\r\n var oldExtend = Vue.extend;\r\n Vue.extend = function(extendOptions) {\r\n extendOptions = extendOptions || {};\r\n\r\n var methods = extendOptions.methods;\r\n if (methods) {\r\n Object.keys(methods).forEach(function (methodName) {\r\n if (LIFECYCLE_HOOKS$1.indexOf(methodName)!==-1) {\r\n extendOptions[methodName] = methods[methodName];\r\n delete methods[methodName];\r\n }\r\n });\r\n }\r\n\r\n return oldExtend.call(this, extendOptions)\r\n };\r\n\r\n var strategies = Vue.config.optionMergeStrategies;\r\n var mergeHook = strategies.created;\r\n LIFECYCLE_HOOKS$1.forEach(function (hook) {\r\n strategies[hook] = mergeHook;\r\n });\r\n\r\n Vue.prototype.__lifecycle_hooks__ = LIFECYCLE_HOOKS$1;\r\n}\n\n/* */\r\n\n// install platform patch function\r\nVue.prototype.__patch__ = patch;\r\n\r\n// public mount method\r\nVue.prototype.$mount = function(\r\n el ,\r\n hydrating \r\n) {\r\n return mountComponent$1(this, el, hydrating)\r\n};\r\n\r\nlifecycleMixin$1(Vue);\r\ninternalMixin(Vue);\n\n/* */\n\nexport default Vue;\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","import { version } from '../package.json';\r\n\r\nconst STAT_VERSION = version;\r\nconst STAT_URL = 'https://tongji.dcloud.io/uni/stat';\r\nconst STAT_H5_URL = 'https://tongji.dcloud.io/uni/stat.gif'; \r\nconst PAGE_PVER_TIME = 1800;\r\nconst APP_PVER_TIME = 300;\r\nconst OPERATING_TIME = 10;\r\n\r\nconst UUID_KEY = '__DC_STAT_UUID';\r\nconst UUID_VALUE = '__DC_UUID_VALUE';\r\n\r\nfunction getUuid() {\r\n let uuid = '';\r\n if (getPlatformName() === 'n') {\r\n try {\r\n uuid = plus.runtime.getDCloudId();\r\n } catch (e) {\r\n uuid = '';\r\n }\r\n return uuid\r\n }\r\n\r\n try {\r\n uuid = uni.getStorageSync(UUID_KEY);\r\n } catch (e) {\r\n uuid = UUID_VALUE;\r\n }\r\n\r\n if (!uuid) {\r\n uuid = Date.now() + '' + Math.floor(Math.random() * 1e7);\r\n try {\r\n uni.setStorageSync(UUID_KEY, uuid);\r\n } catch (e) {\r\n uni.setStorageSync(UUID_KEY, UUID_VALUE);\r\n }\r\n }\r\n return uuid;\r\n}\r\n\r\nconst getSgin = (statData) => {\r\n let arr = Object.keys(statData);\r\n let sortArr = arr.sort();\r\n let sgin = {};\r\n let sginStr = '';\r\n for (var i in sortArr) {\r\n sgin[sortArr[i]] = statData[sortArr[i]];\r\n sginStr += sortArr[i] + '=' + statData[sortArr[i]] + '&';\r\n }\r\n // const options = sginStr.substr(0, sginStr.length - 1)\r\n // sginStr = sginStr.substr(0, sginStr.length - 1) + '&key=' + STAT_KEY;\r\n // const si = crypto.createHash('md5').update(sginStr).digest('hex');\r\n return {\r\n sign: '',\r\n options: sginStr.substr(0, sginStr.length - 1)\r\n };\r\n};\r\n\r\nconst getSplicing = (data) => {\r\n let str = '';\r\n for (var i in data) {\r\n str += i + '=' + data[i] + '&';\r\n }\r\n return str.substr(0, str.length - 1)\r\n};\r\n\r\nconst getTime = () => {\r\n return parseInt(new Date().getTime() / 1000);\r\n};\r\n\r\nconst getPlatformName = () => {\r\n const platformList = {\r\n 'app-plus': 'n',\r\n 'h5': 'h5',\r\n 'mp-weixin': 'wx',\r\n 'mp-alipay': 'ali',\r\n 'mp-baidu': 'bd',\r\n 'mp-toutiao': 'tt',\r\n 'mp-qq': 'qq'\r\n };\r\n return platformList[process.env.VUE_APP_PLATFORM];\r\n};\r\n\r\nconst getPackName = () => {\r\n let packName = '';\r\n if (getPlatformName() === 'wx' || getPlatformName() === 'qq') {\r\n // 兼容微信小程序低版本基础库\r\n if(uni.canIUse('getAccountInfoSync')){\r\n packName = uni.getAccountInfoSync().miniProgram.appId || '';\r\n }\r\n }\r\n return packName\r\n};\r\n\r\nconst getVersion = () => {\r\n return getPlatformName() === 'n' ? plus.runtime.version : '';\r\n};\r\n\r\nconst getChannel = () => {\r\n const platformName = getPlatformName();\r\n let channel = '';\r\n if (platformName === 'n') {\r\n channel = plus.runtime.channel;\r\n }\r\n return channel;\r\n};\r\n\r\nconst getScene = (options) => {\r\n const platformName = getPlatformName();\r\n let scene = '';\r\n if (options) {\r\n return options;\r\n }\r\n if (platformName === 'wx') {\r\n scene = uni.getLaunchOptionsSync().scene;\r\n }\r\n return scene;\r\n};\r\nconst First__Visit__Time__KEY = 'First__Visit__Time';\r\nconst Last__Visit__Time__KEY = 'Last__Visit__Time';\r\n\r\nconst getFirstVisitTime = () => {\r\n const timeStorge = uni.getStorageSync(First__Visit__Time__KEY);\r\n let time = 0;\r\n if (timeStorge) {\r\n time = timeStorge;\r\n } else {\r\n time = getTime();\r\n uni.setStorageSync(First__Visit__Time__KEY, time);\r\n uni.removeStorageSync(Last__Visit__Time__KEY);\r\n }\r\n return time;\r\n};\r\n\r\nconst getLastVisitTime = () => {\r\n const timeStorge = uni.getStorageSync(Last__Visit__Time__KEY);\r\n let time = 0;\r\n if (timeStorge) {\r\n time = timeStorge;\r\n } else {\r\n time = '';\r\n }\r\n uni.setStorageSync(Last__Visit__Time__KEY, getTime());\r\n return time;\r\n};\r\n\r\n\r\nconst PAGE_RESIDENCE_TIME = '__page__residence__time';\r\nlet First_Page_residence_time = 0;\r\nlet Last_Page_residence_time = 0;\r\n\r\n\r\nconst setPageResidenceTime = () => {\r\n First_Page_residence_time = getTime();\r\n if (getPlatformName() === 'n') {\r\n uni.setStorageSync(PAGE_RESIDENCE_TIME, getTime());\r\n }\r\n return First_Page_residence_time\r\n};\r\n\r\nconst getPageResidenceTime = () => {\r\n Last_Page_residence_time = getTime();\r\n if (getPlatformName() === 'n') {\r\n First_Page_residence_time = uni.getStorageSync(PAGE_RESIDENCE_TIME);\r\n }\r\n return Last_Page_residence_time - First_Page_residence_time\r\n};\r\nconst TOTAL__VISIT__COUNT = 'Total__Visit__Count';\r\nconst getTotalVisitCount = () => {\r\n const timeStorge = uni.getStorageSync(TOTAL__VISIT__COUNT);\r\n let count = 1;\r\n if (timeStorge) {\r\n count = timeStorge;\r\n count++;\r\n }\r\n uni.setStorageSync(TOTAL__VISIT__COUNT, count);\r\n return count;\r\n};\r\n\r\nconst GetEncodeURIComponentOptions = (statData) => {\r\n let data = {};\r\n for (let prop in statData) {\r\n data[prop] = encodeURIComponent(statData[prop]);\r\n }\r\n return data;\r\n};\r\n\r\nlet Set__First__Time = 0;\r\nlet Set__Last__Time = 0;\r\n\r\nconst getFirstTime = () => {\r\n let time = new Date().getTime();\r\n Set__First__Time = time;\r\n Set__Last__Time = 0;\r\n return time;\r\n};\r\n\r\n\r\nconst getLastTime = () => {\r\n let time = new Date().getTime();\r\n Set__Last__Time = time;\r\n return time;\r\n};\r\n\r\n\r\nconst getResidenceTime = (type) => {\r\n let residenceTime = 0;\r\n if (Set__First__Time !== 0) {\r\n residenceTime = Set__Last__Time - Set__First__Time;\r\n }\r\n\r\n residenceTime = parseInt(residenceTime / 1000);\r\n residenceTime = residenceTime < 1 ? 1 : residenceTime;\r\n if (type === 'app') {\r\n let overtime = residenceTime > APP_PVER_TIME ? true : false;\r\n return {\r\n residenceTime,\r\n overtime\r\n };\r\n }\r\n if (type === 'page') {\r\n let overtime = residenceTime > PAGE_PVER_TIME ? true : false;\r\n return {\r\n residenceTime,\r\n overtime\r\n };\r\n }\r\n\r\n return {\r\n residenceTime\r\n };\r\n\r\n};\r\n\r\nconst getRoute = () => {\r\n var pages = getCurrentPages();\r\n var page = pages[pages.length - 1];\r\n let _self = page.$vm;\r\n\r\n if (getPlatformName() === 'bd') {\r\n return _self.$mp && _self.$mp.page.is;\r\n } else {\r\n return (_self.$scope && _self.$scope.route) || (_self.$mp && _self.$mp.page.route);\r\n }\r\n};\r\n\r\nconst getPageRoute = (self) => {\r\n var pages = getCurrentPages();\r\n var page = pages[pages.length - 1];\r\n let _self = page.$vm;\r\n let query = self._query;\r\n let str = query && JSON.stringify(query) !== '{}' ? '?' + JSON.stringify(query) : '';\r\n // clear\r\n self._query = '';\r\n if (getPlatformName() === 'bd') {\r\n return _self.$mp && _self.$mp.page.is + str;\r\n } else {\r\n return (_self.$scope && _self.$scope.route + str )|| (_self.$mp && _self.$mp.page.route + str);\r\n }\r\n};\r\n\r\nconst getPageTypes = (self) => {\r\n if (self.mpType === 'page' || (self.$mp && self.$mp.mpType === 'page') || self.$options.mpType === 'page') {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nconst calibration = (eventName, options) => {\r\n // login 、 share 、pay_success 、pay_fail 、register 、title\r\n if(!eventName){\r\n console.error(`uni.report 缺少 [eventName] 参数`);\r\n return true\r\n }\r\n if (typeof eventName !== 'string') {\r\n console.error(`uni.report [eventName] 参数类型错误,只能为 String 类型`);\r\n return true\r\n }\r\n if (eventName.length > 255) {\r\n console.error(`uni.report [eventName] 参数长度不能大于 255`);\r\n return true\r\n }\r\n\r\n if (typeof options !== 'string' && typeof options !== 'object') {\r\n console.error(`uni.report [options] 参数类型错误,只能为 String 或 Object 类型`);\r\n return true\r\n }\r\n\r\n if (typeof options === 'string' && options.length > 255) {\r\n console.error(`uni.report [options] 参数长度不能大于 255`);\r\n return true\r\n }\r\n\r\n if (eventName === 'title' && typeof options !== 'string') {\r\n console.error('uni.report [eventName] 参数为 title 时,[options] 参数只能为 String 类型');\r\n return true\r\n }\r\n};\r\n\r\nconst PagesJson = require('uni-pages?{\"type\":\"style\"}').default;\r\nconst statConfig = require('uni-stat-config').default || require('uni-stat-config');\r\n\r\nconst resultOptions = uni.getSystemInfoSync();\r\n\r\nclass Util {\r\n constructor() {\r\n this.self = '';\r\n this._retry = 0;\r\n this._platform = '';\r\n this._query = {};\r\n this._navigationBarTitle = {\r\n config: '',\r\n page: '',\r\n report: '',\r\n lt: ''\r\n };\r\n this._operatingTime = 0;\r\n this._reportingRequestData = {\r\n '1': [],\r\n '11': []\r\n };\r\n this.__prevent_triggering = false;\r\n\r\n this.__licationHide = false;\r\n this.__licationShow = false;\r\n this._lastPageRoute = '';\r\n this.statData = {\r\n uuid: getUuid(),\r\n ut: getPlatformName(),\r\n mpn: getPackName(),\r\n ak: statConfig.appid,\r\n usv: STAT_VERSION,\r\n v: getVersion(),\r\n ch: getChannel(),\r\n cn: '',\r\n pn: '',\r\n ct: '',\r\n t: getTime(),\r\n tt: '',\r\n p: resultOptions.platform === 'android' ? 'a' : 'i',\r\n brand: resultOptions.brand || '',\r\n md: resultOptions.model,\r\n sv: resultOptions.system.replace(/(Android|iOS)\\s/, ''),\r\n mpsdk: resultOptions.SDKVersion || '',\r\n mpv: resultOptions.version || '',\r\n lang: resultOptions.language,\r\n pr: resultOptions.pixelRatio,\r\n ww: resultOptions.windowWidth,\r\n wh: resultOptions.windowHeight,\r\n sw: resultOptions.screenWidth,\r\n sh: resultOptions.screenHeight\r\n };\r\n\r\n }\r\n\r\n _applicationShow() {\r\n if (this.__licationHide) {\r\n getLastTime();\r\n const time = getResidenceTime('app');\r\n if (time.overtime) {\r\n let options = {\r\n path: this._lastPageRoute,\r\n scene: this.statData.sc\r\n };\r\n this._sendReportRequest(options);\r\n }\r\n this.__licationHide = false;\r\n }\r\n }\r\n\r\n _applicationHide(self, type) {\r\n\r\n this.__licationHide = true;\r\n getLastTime();\r\n const time = getResidenceTime();\r\n getFirstTime();\r\n const route = getPageRoute(this);\r\n this._sendHideRequest({\r\n urlref: route,\r\n urlref_ts: time.residenceTime\r\n }, type);\r\n }\r\n\r\n _pageShow() {\r\n const route = getPageRoute(this);\r\n const routepath = getRoute();\r\n this._navigationBarTitle.config = PagesJson &&\r\n PagesJson.pages[routepath] &&\r\n PagesJson.pages[routepath].titleNView &&\r\n PagesJson.pages[routepath].titleNView.titleText ||\r\n PagesJson &&\r\n PagesJson.pages[routepath] &&\r\n PagesJson.pages[routepath].navigationBarTitleText || '';\r\n\r\n if (this.__licationShow) {\r\n getFirstTime();\r\n this.__licationShow = false;\r\n // console.log('这是 onLauch 之后执行的第一次 pageShow ,为下次记录时间做准备');\r\n this._lastPageRoute = route;\r\n return;\r\n }\r\n\r\n getLastTime();\r\n this._lastPageRoute = route;\r\n const time = getResidenceTime('page');\r\n if (time.overtime) {\r\n let options = {\r\n path: this._lastPageRoute,\r\n scene: this.statData.sc\r\n };\r\n this._sendReportRequest(options);\r\n }\r\n getFirstTime();\r\n }\r\n\r\n _pageHide() {\r\n if (!this.__licationHide) {\r\n getLastTime();\r\n const time = getResidenceTime('page');\r\n this._sendPageRequest({\r\n url: this._lastPageRoute,\r\n urlref: this._lastPageRoute,\r\n urlref_ts: time.residenceTime\r\n });\r\n this._navigationBarTitle = {\r\n config: '',\r\n page: '',\r\n report: '',\r\n lt: ''\r\n };\r\n return;\r\n }\r\n }\r\n\r\n _login() {\r\n this._sendEventRequest({\r\n key: 'login'\r\n }, 0);\r\n }\r\n\r\n _share() {\r\n this._sendEventRequest({\r\n key: 'share'\r\n }, 0);\r\n }\r\n _payment(key) {\r\n this._sendEventRequest({\r\n key\r\n }, 0);\r\n }\r\n _sendReportRequest(options) {\r\n\r\n this._navigationBarTitle.lt = '1';\r\n let query = options.query && JSON.stringify(options.query) !== '{}' ? '?' + JSON.stringify(options.query) : '';\r\n this.statData.lt = '1';\r\n this.statData.url = (options.path + query) || '';\r\n this.statData.t = getTime();\r\n this.statData.sc = getScene(options.scene);\r\n this.statData.fvts = getFirstVisitTime();\r\n this.statData.lvts = getLastVisitTime();\r\n this.statData.tvc = getTotalVisitCount();\r\n if (getPlatformName() === 'n') {\r\n this.getProperty();\r\n } else {\r\n this.getNetworkInfo();\r\n }\r\n }\r\n\r\n _sendPageRequest(opt) {\r\n let {\r\n url,\r\n urlref,\r\n urlref_ts\r\n } = opt;\r\n this._navigationBarTitle.lt = '11';\r\n let options = {\r\n ak: this.statData.ak,\r\n uuid: this.statData.uuid,\r\n lt: '11',\r\n ut: this.statData.ut,\r\n url,\r\n tt: this.statData.tt,\r\n urlref,\r\n urlref_ts,\r\n ch: this.statData.ch,\r\n usv: this.statData.usv,\r\n t: getTime(),\r\n p: this.statData.p\r\n };\r\n this.request(options);\r\n }\r\n\r\n _sendHideRequest(opt, type) {\r\n let {\r\n urlref,\r\n urlref_ts\r\n } = opt;\r\n let options = {\r\n ak: this.statData.ak,\r\n uuid: this.statData.uuid,\r\n lt: '3',\r\n ut: this.statData.ut,\r\n urlref,\r\n urlref_ts,\r\n ch: this.statData.ch,\r\n usv: this.statData.usv,\r\n t: getTime(),\r\n p: this.statData.p\r\n };\r\n this.request(options, type);\r\n }\r\n _sendEventRequest({\r\n key = '',\r\n value = \"\"\r\n } = {}) {\r\n const route = this._lastPageRoute;\r\n let options = {\r\n ak: this.statData.ak,\r\n uuid: this.statData.uuid,\r\n lt: '21',\r\n ut: this.statData.ut,\r\n url: route,\r\n ch: this.statData.ch,\r\n e_n: key,\r\n e_v: typeof(value) === 'object' ? JSON.stringify(value) : value.toString(),\r\n usv: this.statData.usv,\r\n t: getTime(),\r\n p: this.statData.p\r\n };\r\n this.request(options);\r\n }\r\n\r\n getNetworkInfo() {\r\n uni.getNetworkType({\r\n success: (result) => {\r\n this.statData.net = result.networkType;\r\n this.getLocation();\r\n }\r\n });\r\n }\r\n\r\n getProperty() {\r\n plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {\r\n this.statData.v = wgtinfo.version || '';\r\n this.getNetworkInfo();\r\n });\r\n }\r\n\r\n getLocation() {\r\n if (statConfig.getLocation) {\r\n uni.getLocation({\r\n type: 'wgs84',\r\n geocode: true,\r\n success: (result) => {\r\n if (result.address) {\r\n this.statData.cn = result.address.country;\r\n this.statData.pn = result.address.province;\r\n this.statData.ct = result.address.city;\r\n }\r\n\r\n this.statData.lat = result.latitude;\r\n this.statData.lng = result.longitude;\r\n this.request(this.statData);\r\n }\r\n });\r\n } else {\r\n this.statData.lat = 0;\r\n this.statData.lng = 0;\r\n this.request(this.statData);\r\n }\r\n }\r\n\r\n request(data, type) {\r\n let time = getTime();\r\n const title = this._navigationBarTitle;\r\n data.ttn = title.page;\r\n data.ttpj = title.config;\r\n data.ttc = title.report;\r\n\r\n let requestData = this._reportingRequestData;\r\n if (getPlatformName() === 'n') {\r\n requestData = uni.getStorageSync('__UNI__STAT__DATA') || {};\r\n }\r\n if (!requestData[data.lt]) {\r\n requestData[data.lt] = [];\r\n }\r\n requestData[data.lt].push(data);\r\n\r\n if (getPlatformName() === 'n') {\r\n uni.setStorageSync('__UNI__STAT__DATA', requestData);\r\n }\r\n if (getPageResidenceTime() < OPERATING_TIME && !type) {\r\n return\r\n }\r\n let uniStatData = this._reportingRequestData;\r\n if (getPlatformName() === 'n') {\r\n uniStatData = uni.getStorageSync('__UNI__STAT__DATA');\r\n }\r\n // 时间超过,重新获取时间戳\r\n setPageResidenceTime();\r\n let firstArr = [];\r\n let contentArr = [];\r\n let lastArr = [];\r\n\r\n for (let i in uniStatData) {\r\n const rd = uniStatData[i];\r\n rd.forEach((elm) => {\r\n const newData = getSplicing(elm);\r\n if (i === 0) {\r\n firstArr.push(newData);\r\n } else if (i === 3) {\r\n lastArr.push(newData);\r\n } else {\r\n contentArr.push(newData);\r\n }\r\n });\r\n }\r\n\r\n firstArr.push(...contentArr, ...lastArr);\r\n let optionsData = {\r\n usv: STAT_VERSION, //统计 SDK 版本号\r\n t: time, //发送请求时的时间戮\r\n requests: JSON.stringify(firstArr),\r\n };\r\n\r\n this._reportingRequestData = {};\r\n if (getPlatformName() === 'n') {\r\n uni.removeStorageSync('__UNI__STAT__DATA');\r\n }\r\n\r\n if (data.ut === 'h5') {\r\n this.imageRequest(optionsData);\r\n return\r\n }\r\n\r\n if (getPlatformName() === 'n' && this.statData.p === 'a') {\r\n setTimeout(() => {\r\n this._sendRequest(optionsData);\r\n }, 200);\r\n return\r\n }\r\n this._sendRequest(optionsData);\r\n }\r\n _sendRequest(optionsData) {\r\n uni.request({\r\n url: STAT_URL,\r\n method: 'POST',\r\n // header: {\r\n // 'content-type': 'application/json' // 默认值\r\n // },\r\n data: optionsData,\r\n success: () => {\r\n // if (process.env.NODE_ENV === 'development') {\r\n // console.log('stat request success');\r\n // }\r\n },\r\n fail: (e) => {\r\n if (++this._retry < 3) {\r\n setTimeout(() => {\r\n this._sendRequest(optionsData);\r\n }, 1000);\r\n }\r\n }\r\n });\r\n }\r\n /**\r\n * h5 请求\r\n */\r\n imageRequest(data) {\r\n let image = new Image();\r\n let options = getSgin(GetEncodeURIComponentOptions(data)).options;\r\n image.src = STAT_H5_URL + '?' + options;\r\n }\r\n\r\n sendEvent(key, value) {\r\n // 校验 type 参数\r\n if (calibration(key, value)) return\r\n\r\n if (key === 'title') {\r\n this._navigationBarTitle.report = value;\r\n return\r\n }\r\n this._sendEventRequest({\r\n key,\r\n value: typeof(value) === 'object' ? JSON.stringify(value) : value\r\n }, 1);\r\n }\r\n}\r\n\r\n\r\nclass Stat extends Util {\r\n static getInstance() {\r\n if (!this.instance) {\r\n this.instance = new Stat();\r\n }\r\n return this.instance;\r\n }\r\n constructor() {\r\n super();\r\n this.instance = null;\r\n // 注册拦截器\r\n if (typeof uni.addInterceptor === 'function' && process.env.NODE_ENV !== 'development') {\r\n this.addInterceptorInit();\r\n this.interceptLogin();\r\n this.interceptShare(true);\r\n this.interceptRequestPayment();\r\n }\r\n }\r\n\r\n addInterceptorInit() {\r\n let self = this;\r\n uni.addInterceptor('setNavigationBarTitle', {\r\n invoke(args) {\r\n self._navigationBarTitle.page = args.title;\r\n }\r\n });\r\n }\r\n\r\n interceptLogin() {\r\n let self = this;\r\n uni.addInterceptor('login', {\r\n complete() {\r\n self._login();\r\n }\r\n });\r\n }\r\n\r\n interceptShare(type) {\r\n let self = this;\r\n if (!type) {\r\n self._share();\r\n return\r\n }\r\n uni.addInterceptor('share', {\r\n success() {\r\n self._share();\r\n },\r\n fail() {\r\n self._share();\r\n }\r\n });\r\n }\r\n\r\n interceptRequestPayment() {\r\n let self = this;\r\n uni.addInterceptor('requestPayment', {\r\n success() {\r\n self._payment('pay_success');\r\n },\r\n fail() {\r\n self._payment('pay_fail');\r\n }\r\n });\r\n }\r\n\r\n report(options, self) {\r\n this.self = self;\r\n // if (process.env.NODE_ENV === 'development') {\r\n // console.log('report init');\r\n // }\r\n setPageResidenceTime();\r\n this.__licationShow = true;\r\n this._sendReportRequest(options, true);\r\n }\r\n\r\n load(options, self) {\r\n if (!self.$scope && !self.$mp) {\r\n const page = getCurrentPages();\r\n self.$scope = page[page.length - 1];\r\n }\r\n this.self = self;\r\n this._query = options;\r\n }\r\n\r\n show(self) {\r\n this.self = self;\r\n if (getPageTypes(self)) {\r\n this._pageShow(self);\r\n } else {\r\n this._applicationShow(self);\r\n }\r\n }\r\n\r\n ready(self) {\r\n // this.self = self;\r\n // if (getPageTypes(self)) {\r\n // this._pageShow(self);\r\n // }\r\n }\r\n hide(self) {\r\n this.self = self;\r\n if (getPageTypes(self)) {\r\n this._pageHide(self);\r\n } else {\r\n this._applicationHide(self, true);\r\n }\r\n }\r\n error(em) {\r\n if (this._platform === 'devtools') {\r\n if (process.env.NODE_ENV === 'development') {\r\n console.info('当前运行环境为开发者工具,不上报数据。');\r\n }\r\n // return;\r\n }\r\n let emVal = '';\r\n if (!em.message) {\r\n emVal = JSON.stringify(em);\r\n } else {\r\n emVal = em.stack;\r\n }\r\n let options = {\r\n ak: this.statData.ak,\r\n uuid: this.statData.uuid,\r\n lt: '31',\r\n ut: this.statData.ut,\r\n ch: this.statData.ch,\r\n mpsdk: this.statData.mpsdk,\r\n mpv: this.statData.mpv,\r\n v: this.statData.v,\r\n em: emVal,\r\n usv: this.statData.usv,\r\n t: getTime(),\r\n p: this.statData.p\r\n };\r\n this.request(options);\r\n }\r\n}\r\n\r\nconst stat = Stat.getInstance();\r\nlet isHide = false;\r\nconst lifecycle = {\r\n onLaunch(options) {\r\n stat.report(options, this);\r\n },\r\n onReady() {\r\n stat.ready(this);\r\n },\r\n onLoad(options) {\r\n stat.load(options, this);\r\n // 重写分享,获取分享上报事件\r\n if (this.$scope && this.$scope.onShareAppMessage) {\r\n let oldShareAppMessage = this.$scope.onShareAppMessage;\r\n this.$scope.onShareAppMessage = function(options) {\r\n stat.interceptShare(false);\r\n return oldShareAppMessage.call(this, options)\r\n };\r\n }\r\n },\r\n onShow() {\r\n isHide = false;\r\n stat.show(this);\r\n },\r\n onHide() {\r\n isHide = true;\r\n stat.hide(this);\r\n },\r\n onUnload() {\r\n if (isHide) {\r\n isHide = false;\r\n return\r\n }\r\n stat.hide(this);\r\n },\r\n onError(e) {\r\n stat.error(e);\r\n }\r\n};\r\n\r\nfunction main() {\r\n if (process.env.NODE_ENV === 'development') {\r\n uni.report = function(type, options) {};\r\n }else{\r\n const Vue = require('vue');\r\n (Vue.default || Vue).mixin(lifecycle);\r\n uni.report = function(type, options) {\r\n stat.sendEvent(type, options);\r\n };\r\n }\r\n}\r\n\r\nmain();\r\n","export default {\"appid\":\"\"}","/* 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"],"sourceRoot":""} | |
0 | 2 | \ No newline at end of file | ... | ... |
unpackage/dist/dev/.sourcemap/mp-weixin/pages/cart/cart.js.map
... | ... | @@ -0,0 +1 @@ |
1 | +{"version":3,"sources":["webpack:///C:/Users/Administrator/Desktop/gulu-vue/main.js","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?f7b9","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?b2d1","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?13ac","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?fa41","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?0969","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?8f1f"],"names":["createPage","Page","data","title","onLoad","methods"],"mappings":";;;;;;;;;;kDAAA,wCAAmB;AACnB;AACA,yF;AACAA,UAAU,CAACC,aAAD,CAAV,C;;;;;;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiH;AACjH;AACwD;AACL;AACa;;;AAGhE;AACqK;AACrK,gBAAgB,+KAAU;AAC1B,EAAE,0EAAM;AACR,EAAE,+EAAM;AACR,EAAE,wFAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,mFAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;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;AAA8lB,CAAgB,wnBAAG,EAAC,C;;;;;;;;;;;;wFCAlnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACdC,MADc,kBACP;AACN,WAAO;AACNC,WAAK,EAAE,OADD,EAAP;;AAGA,GALa;AAMdC,QANc,oBAML;;AAER,GARa;AASdC,SAAO,EAAE,EATK,E;;;;;;;;;;;;ACVf;AAAA;AAAA;AAAA;AAAg3B,CAAgB,i3BAAG,EAAC,C;;;;;;;;;;;ACAp4B;AACA,OAAO,KAAU,EAAE,kBAKd","file":"pages/cart/cart.js","sourcesContent":["import 'uni-pages';import '@dcloudio/uni-stat';\nimport Vue from 'vue'\nimport Page from './pages/cart/cart.vue'\ncreatePage(Page)","import { render, staticRenderFns, recyclableRender, components } from \"./cart.vue?vue&type=template&id=2e8f6dbb&\"\nvar renderjs\nimport script from \"./cart.vue?vue&type=script&lang=js&\"\nexport * from \"./cart.vue?vue&type=script&lang=js&\"\nimport style0 from \"./cart.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!D:\\\\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 null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue\"\nexport default component.exports","export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\templateLoader.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--16-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\template.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-uni-app-loader\\\\page-meta.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./cart.vue?vue&type=template&id=2e8f6dbb&\"","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 \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./cart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./cart.vue?vue&type=script&lang=js&\"","//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttitle: 'Hello'\n\t\t}\n\t},\n\tonLoad() {\n\n\t},\n\tmethods: {\n\n\t}\n}\n","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./cart.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./cart.vue?vue&type=style&index=0&lang=css&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1587797864423\n var cssReload = require(\"D:/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 "],"sourceRoot":""} | |
0 | 2 | \ No newline at end of file | ... | ... |
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
... | ... | @@ -0,0 +1 @@ |
1 | +{"version":3,"sources":["webpack:///C:/Users/Administrator/Desktop/gulu-vue/main.js","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?d486","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?527c","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?fc76","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?bfc3","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?9173","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?e11c"],"names":["createPage","Page","data","title","onLoad","methods"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;kDAAA,wCAAmB;AACnB;AACA,4F;AACAA,UAAU,CAACC,cAAD,CAAV,C;;;;;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkH;AAClH;AACyD;AACL;AACa;;;AAGjE;AACqK;AACrK,gBAAgB,+KAAU;AAC1B,EAAE,2EAAM;AACR,EAAE,gFAAM;AACR,EAAE,yFAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,oFAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;ACvBf;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+lB,CAAgB,ynBAAG,EAAC,C;;;;;;;;;;;wFCAnnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACdC,MADc,kBACP;AACN,WAAO;AACNC,WAAK,EAAE,OADD,EAAP;;AAGA,GALa;AAMdC,QANc,oBAML;;AAER,GARa;AASdC,SAAO,EAAE,EATK,E;;;;;;;;;;;ACZf;AAAA;AAAA;AAAA;AAAi3B,CAAgB,k3BAAG,EAAC,C;;;;;;;;;;ACAr4B;AACA,OAAO,KAAU,EAAE,kBAKd","file":"pages/index/index.js","sourcesContent":["import 'uni-pages';import '@dcloudio/uni-stat';\nimport Vue from 'vue'\nimport Page from './pages/index/index.vue'\ncreatePage(Page)","import { render, staticRenderFns, recyclableRender, components } from \"./index.vue?vue&type=template&id=74c52b3e&\"\nvar renderjs\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!D:\\\\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 null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue\"\nexport default component.exports","export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\templateLoader.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--16-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\template.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-uni-app-loader\\\\page-meta.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./index.vue?vue&type=template&id=74c52b3e&\"","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 \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./index.vue?vue&type=script&lang=js&\"","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttitle: 'Hello'\n\t\t}\n\t},\n\tonLoad() {\n\n\t},\n\tmethods: {\n\n\t}\n}\n","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./index.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./index.vue?vue&type=style&index=0&lang=css&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1587797864412\n var cssReload = require(\"D:/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 "],"sourceRoot":""} | |
0 | 2 | \ No newline at end of file | ... | ... |
unpackage/dist/dev/.sourcemap/mp-weixin/pages/user/user.js.map
... | ... | @@ -0,0 +1 @@ |
1 | +{"version":3,"sources":["webpack:///C:/Users/Administrator/Desktop/gulu-vue/main.js","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?effd","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?94bd","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?36f8","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?b440","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?97d3","webpack:///C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?17b1"],"names":["createPage","Page","data","title","onLoad","methods"],"mappings":";;;;;;;;;;kDAAA,wCAAmB;AACnB;AACA,yF;AACAA,UAAU,CAACC,aAAD,CAAV,C;;;;;;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiH;AACjH;AACwD;AACL;AACa;;;AAGhE;AACqK;AACrK,gBAAgB,+KAAU;AAC1B,EAAE,0EAAM;AACR,EAAE,+EAAM;AACR,EAAE,wFAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,mFAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;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;AAA8lB,CAAgB,wnBAAG,EAAC,C;;;;;;;;;;;;wFCAlnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACdC,MADc,kBACP;AACN,WAAO;AACNC,WAAK,EAAE,OADD,EAAP;;AAGA,GALa;AAMdC,QANc,oBAML;;AAER,GARa;AASdC,SAAO,EAAE,EATK,E;;;;;;;;;;;;ACVf;AAAA;AAAA;AAAA;AAAg3B,CAAgB,i3BAAG,EAAC,C;;;;;;;;;;;ACAp4B;AACA,OAAO,KAAU,EAAE,kBAKd","file":"pages/user/user.js","sourcesContent":["import 'uni-pages';import '@dcloudio/uni-stat';\nimport Vue from 'vue'\nimport Page from './pages/user/user.vue'\ncreatePage(Page)","import { render, staticRenderFns, recyclableRender, components } from \"./user.vue?vue&type=template&id=14649eca&\"\nvar renderjs\nimport script from \"./user.vue?vue&type=script&lang=js&\"\nexport * from \"./user.vue?vue&type=script&lang=js&\"\nimport style0 from \"./user.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!D:\\\\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 null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue\"\nexport default component.exports","export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\templateLoader.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--16-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\template.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-uni-app-loader\\\\page-meta.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./user.vue?vue&type=template&id=14649eca&\"","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 \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./user.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./user.vue?vue&type=script&lang=js&\"","//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttitle: 'Hello'\n\t\t}\n\t},\n\tonLoad() {\n\n\t},\n\tmethods: {\n\n\t}\n}\n","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./user.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./user.vue?vue&type=style&index=0&lang=css&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1587797864426\n var cssReload = require(\"D:/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 "],"sourceRoot":""} | |
0 | 2 | \ No newline at end of file | ... | ... |
unpackage/dist/dev/mp-weixin/app.js
unpackage/dist/dev/mp-weixin/app.json
... | ... | @@ -0,0 +1,42 @@ |
1 | +{ | |
2 | + "pages": [ | |
3 | + "pages/index/index", | |
4 | + "pages/cart/cart", | |
5 | + "pages/user/user" | |
6 | + ], | |
7 | + "subPackages": [], | |
8 | + "window": { | |
9 | + "navigationBarTextStyle": "black", | |
10 | + "navigationBarTitleText": "uni-app", | |
11 | + "navigationBarBackgroundColor": "#F8F8F8", | |
12 | + "backgroundColor": "#F8F8F8" | |
13 | + }, | |
14 | + "tabBar": { | |
15 | + "color": "#C0C4CC", | |
16 | + "selectedColor": "#fa436a", | |
17 | + "borderStyle": "black", | |
18 | + "backgroundColor": "#ffffff", | |
19 | + "list": [ | |
20 | + { | |
21 | + "pagePath": "pages/index/index", | |
22 | + "iconPath": "static/tab-home.png", | |
23 | + "selectedIconPath": "static/tab-home-current.png", | |
24 | + "text": "首页" | |
25 | + }, | |
26 | + { | |
27 | + "pagePath": "pages/cart/cart", | |
28 | + "iconPath": "static/tab-cart.png", | |
29 | + "selectedIconPath": "static/tab-cart-current.png", | |
30 | + "text": "购物车" | |
31 | + }, | |
32 | + { | |
33 | + "pagePath": "pages/user/user", | |
34 | + "iconPath": "static/tab-my.png", | |
35 | + "selectedIconPath": "static/tab-my-current.png", | |
36 | + "text": "我的" | |
37 | + } | |
38 | + ] | |
39 | + }, | |
40 | + "usingComponents": {}, | |
41 | + "sitemapLocation": "sitemap7.json" | |
42 | +} | |
0 | 43 | \ No newline at end of file | ... | ... |
unpackage/dist/dev/mp-weixin/app.wxss
... | ... | @@ -0,0 +1 @@ |
1 | +@import './common/main.wxss'; | ... | ... |
unpackage/dist/dev/mp-weixin/common/main.js
... | ... | @@ -0,0 +1,135 @@ |
1 | +(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["common/main"],[ | |
2 | +/* 0 */ | |
3 | +/*!*******************************************************!*\ | |
4 | + !*** C:/Users/Administrator/Desktop/gulu-vue/main.js ***! | |
5 | + \*******************************************************/ | |
6 | +/*! no static exports found */ | |
7 | +/***/ (function(module, exports, __webpack_require__) { | |
8 | + | |
9 | +"use strict"; | |
10 | +/* WEBPACK VAR INJECTION */(function(createApp) {__webpack_require__(/*! uni-pages */ 4);__webpack_require__(/*! @dcloudio/uni-stat */ 5);var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2)); | |
11 | +var _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 9));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;} | |
12 | + | |
13 | +_vue.default.config.productionTip = false; | |
14 | + | |
15 | +_App.default.mpType = 'app'; | |
16 | + | |
17 | +var app = new _vue.default(_objectSpread({}, | |
18 | +_App.default)); | |
19 | + | |
20 | +createApp(app).$mount(); | |
21 | +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["createApp"])) | |
22 | + | |
23 | +/***/ }), | |
24 | +/* 1 */, | |
25 | +/* 2 */, | |
26 | +/* 3 */, | |
27 | +/* 4 */, | |
28 | +/* 5 */, | |
29 | +/* 6 */, | |
30 | +/* 7 */, | |
31 | +/* 8 */, | |
32 | +/* 9 */ | |
33 | +/*!*******************************************************!*\ | |
34 | + !*** C:/Users/Administrator/Desktop/gulu-vue/App.vue ***! | |
35 | + \*******************************************************/ | |
36 | +/*! no static exports found */ | |
37 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
38 | + | |
39 | +"use strict"; | |
40 | +__webpack_require__.r(__webpack_exports__); | |
41 | +/* harmony import */ var _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue?vue&type=script&lang=js& */ 10); | |
42 | +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); | |
43 | +/* harmony import */ var _App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./App.vue?vue&type=style&index=0&lang=css& */ 12); | |
44 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 14); | |
45 | +var render, staticRenderFns, recyclableRender, components | |
46 | +var renderjs | |
47 | + | |
48 | + | |
49 | + | |
50 | + | |
51 | + | |
52 | +/* normalize component */ | |
53 | + | |
54 | +var component = Object(_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( | |
55 | + _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"], | |
56 | + render, | |
57 | + staticRenderFns, | |
58 | + false, | |
59 | + null, | |
60 | + null, | |
61 | + null, | |
62 | + false, | |
63 | + components, | |
64 | + renderjs | |
65 | +) | |
66 | + | |
67 | +component.options.__file = "C:/Users/Administrator/Desktop/gulu-vue/App.vue" | |
68 | +/* harmony default export */ __webpack_exports__["default"] = (component.exports); | |
69 | + | |
70 | +/***/ }), | |
71 | +/* 10 */ | |
72 | +/*!********************************************************************************!*\ | |
73 | + !*** C:/Users/Administrator/Desktop/gulu-vue/App.vue?vue&type=script&lang=js& ***! | |
74 | + \********************************************************************************/ | |
75 | +/*! no static exports found */ | |
76 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
77 | + | |
78 | +"use strict"; | |
79 | +__webpack_require__.r(__webpack_exports__); | |
80 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js& */ 11); | |
81 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__); | |
82 | +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); | |
83 | + /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); | |
84 | + | |
85 | +/***/ }), | |
86 | +/* 11 */ | |
87 | +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ | |
88 | + !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/App.vue?vue&type=script&lang=js& ***! | |
89 | + \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ | |
90 | +/*! no static exports found */ | |
91 | +/***/ (function(module, exports, __webpack_require__) { | |
92 | + | |
93 | +"use strict"; | |
94 | +Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default = | |
95 | +{ | |
96 | + onLaunch: function onLaunch() { | |
97 | + console.log('App Launch'); | |
98 | + }, | |
99 | + onShow: function onShow() { | |
100 | + console.log('App Show'); | |
101 | + }, | |
102 | + onHide: function onHide() { | |
103 | + console.log('App Hide'); | |
104 | + } };exports.default = _default; | |
105 | + | |
106 | +/***/ }), | |
107 | +/* 12 */ | |
108 | +/*!****************************************************************************************!*\ | |
109 | + !*** C:/Users/Administrator/Desktop/gulu-vue/App.vue?vue&type=style&index=0&lang=css& ***! | |
110 | + \****************************************************************************************/ | |
111 | +/*! no static exports found */ | |
112 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
113 | + | |
114 | +"use strict"; | |
115 | +__webpack_require__.r(__webpack_exports__); | |
116 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=css& */ 13); | |
117 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); | |
118 | +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); | |
119 | + /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); | |
120 | + | |
121 | +/***/ }), | |
122 | +/* 13 */ | |
123 | +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ | |
124 | + !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/App.vue?vue&type=style&index=0&lang=css& ***! | |
125 | + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ | |
126 | +/*! no static exports found */ | |
127 | +/***/ (function(module, exports, __webpack_require__) { | |
128 | + | |
129 | +// extracted by mini-css-extract-plugin | |
130 | + if(false) { var cssReload; } | |
131 | + | |
132 | + | |
133 | +/***/ }) | |
134 | +],[[0,"common/runtime","common/vendor"]]]); | |
135 | +//# sourceMappingURL=../../.sourcemap/mp-weixin/common/main.js.map | |
0 | 136 | \ No newline at end of file | ... | ... |
unpackage/dist/dev/mp-weixin/common/main.wxss
unpackage/dist/dev/mp-weixin/common/runtime.js
... | ... | @@ -0,0 +1,157 @@ |
1 | + | |
2 | + !function(){try{var a=Function("return this")();a&&!a.Math&&(Object.assign(a,{isFinite:isFinite,Array:Array,Date:Date,Error:Error,Function:Function,Math:Math,Object:Object,RegExp:RegExp,String:String,TypeError:TypeError,setTimeout:setTimeout,clearTimeout:clearTimeout,setInterval:setInterval,clearInterval:clearInterval}),"undefined"!=typeof Reflect&&(a.Reflect=Reflect))}catch(a){}}(); | |
3 | + /******/ (function(modules) { // webpackBootstrap | |
4 | +/******/ // install a JSONP callback for chunk loading | |
5 | +/******/ function webpackJsonpCallback(data) { | |
6 | +/******/ var chunkIds = data[0]; | |
7 | +/******/ var moreModules = data[1]; | |
8 | +/******/ var executeModules = data[2]; | |
9 | +/******/ | |
10 | +/******/ // add "moreModules" to the modules object, | |
11 | +/******/ // then flag all "chunkIds" as loaded and fire callback | |
12 | +/******/ var moduleId, chunkId, i = 0, resolves = []; | |
13 | +/******/ for(;i < chunkIds.length; i++) { | |
14 | +/******/ chunkId = chunkIds[i]; | |
15 | +/******/ if(installedChunks[chunkId]) { | |
16 | +/******/ resolves.push(installedChunks[chunkId][0]); | |
17 | +/******/ } | |
18 | +/******/ installedChunks[chunkId] = 0; | |
19 | +/******/ } | |
20 | +/******/ for(moduleId in moreModules) { | |
21 | +/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { | |
22 | +/******/ modules[moduleId] = moreModules[moduleId]; | |
23 | +/******/ } | |
24 | +/******/ } | |
25 | +/******/ if(parentJsonpFunction) parentJsonpFunction(data); | |
26 | +/******/ | |
27 | +/******/ while(resolves.length) { | |
28 | +/******/ resolves.shift()(); | |
29 | +/******/ } | |
30 | +/******/ | |
31 | +/******/ // add entry modules from loaded chunk to deferred list | |
32 | +/******/ deferredModules.push.apply(deferredModules, executeModules || []); | |
33 | +/******/ | |
34 | +/******/ // run deferred modules when all chunks ready | |
35 | +/******/ return checkDeferredModules(); | |
36 | +/******/ }; | |
37 | +/******/ function checkDeferredModules() { | |
38 | +/******/ var result; | |
39 | +/******/ for(var i = 0; i < deferredModules.length; i++) { | |
40 | +/******/ var deferredModule = deferredModules[i]; | |
41 | +/******/ var fulfilled = true; | |
42 | +/******/ for(var j = 1; j < deferredModule.length; j++) { | |
43 | +/******/ var depId = deferredModule[j]; | |
44 | +/******/ if(installedChunks[depId] !== 0) fulfilled = false; | |
45 | +/******/ } | |
46 | +/******/ if(fulfilled) { | |
47 | +/******/ deferredModules.splice(i--, 1); | |
48 | +/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]); | |
49 | +/******/ } | |
50 | +/******/ } | |
51 | +/******/ return result; | |
52 | +/******/ } | |
53 | +/******/ | |
54 | +/******/ // The module cache | |
55 | +/******/ var installedModules = {}; | |
56 | +/******/ | |
57 | +/******/ // object to store loaded and loading chunks | |
58 | +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched | |
59 | +/******/ // Promise = chunk loading, 0 = chunk loaded | |
60 | +/******/ var installedChunks = { | |
61 | +/******/ "common/runtime": 0 | |
62 | +/******/ }; | |
63 | +/******/ | |
64 | +/******/ var deferredModules = []; | |
65 | +/******/ | |
66 | +/******/ // The require function | |
67 | +/******/ function __webpack_require__(moduleId) { | |
68 | +/******/ | |
69 | +/******/ // Check if module is in cache | |
70 | +/******/ if(installedModules[moduleId]) { | |
71 | +/******/ return installedModules[moduleId].exports; | |
72 | +/******/ } | |
73 | +/******/ // Create a new module (and put it into the cache) | |
74 | +/******/ var module = installedModules[moduleId] = { | |
75 | +/******/ i: moduleId, | |
76 | +/******/ l: false, | |
77 | +/******/ exports: {} | |
78 | +/******/ }; | |
79 | +/******/ | |
80 | +/******/ // Execute the module function | |
81 | +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); | |
82 | +/******/ | |
83 | +/******/ // Flag the module as loaded | |
84 | +/******/ module.l = true; | |
85 | +/******/ | |
86 | +/******/ // Return the exports of the module | |
87 | +/******/ return module.exports; | |
88 | +/******/ } | |
89 | +/******/ | |
90 | +/******/ | |
91 | +/******/ // expose the modules object (__webpack_modules__) | |
92 | +/******/ __webpack_require__.m = modules; | |
93 | +/******/ | |
94 | +/******/ // expose the module cache | |
95 | +/******/ __webpack_require__.c = installedModules; | |
96 | +/******/ | |
97 | +/******/ // define getter function for harmony exports | |
98 | +/******/ __webpack_require__.d = function(exports, name, getter) { | |
99 | +/******/ if(!__webpack_require__.o(exports, name)) { | |
100 | +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); | |
101 | +/******/ } | |
102 | +/******/ }; | |
103 | +/******/ | |
104 | +/******/ // define __esModule on exports | |
105 | +/******/ __webpack_require__.r = function(exports) { | |
106 | +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { | |
107 | +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | |
108 | +/******/ } | |
109 | +/******/ Object.defineProperty(exports, '__esModule', { value: true }); | |
110 | +/******/ }; | |
111 | +/******/ | |
112 | +/******/ // create a fake namespace object | |
113 | +/******/ // mode & 1: value is a module id, require it | |
114 | +/******/ // mode & 2: merge all properties of value into the ns | |
115 | +/******/ // mode & 4: return value when already ns object | |
116 | +/******/ // mode & 8|1: behave like require | |
117 | +/******/ __webpack_require__.t = function(value, mode) { | |
118 | +/******/ if(mode & 1) value = __webpack_require__(value); | |
119 | +/******/ if(mode & 8) return value; | |
120 | +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; | |
121 | +/******/ var ns = Object.create(null); | |
122 | +/******/ __webpack_require__.r(ns); | |
123 | +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); | |
124 | +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); | |
125 | +/******/ return ns; | |
126 | +/******/ }; | |
127 | +/******/ | |
128 | +/******/ // getDefaultExport function for compatibility with non-harmony modules | |
129 | +/******/ __webpack_require__.n = function(module) { | |
130 | +/******/ var getter = module && module.__esModule ? | |
131 | +/******/ function getDefault() { return module['default']; } : | |
132 | +/******/ function getModuleExports() { return module; }; | |
133 | +/******/ __webpack_require__.d(getter, 'a', getter); | |
134 | +/******/ return getter; | |
135 | +/******/ }; | |
136 | +/******/ | |
137 | +/******/ // Object.prototype.hasOwnProperty.call | |
138 | +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; | |
139 | +/******/ | |
140 | +/******/ // __webpack_public_path__ | |
141 | +/******/ __webpack_require__.p = "/"; | |
142 | +/******/ | |
143 | +/******/ var jsonpArray = global["webpackJsonp"] = global["webpackJsonp"] || []; | |
144 | +/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); | |
145 | +/******/ jsonpArray.push = webpackJsonpCallback; | |
146 | +/******/ jsonpArray = jsonpArray.slice(); | |
147 | +/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); | |
148 | +/******/ var parentJsonpFunction = oldJsonpFunction; | |
149 | +/******/ | |
150 | +/******/ | |
151 | +/******/ // run deferred modules from other chunks | |
152 | +/******/ checkDeferredModules(); | |
153 | +/******/ }) | |
154 | +/************************************************************************/ | |
155 | +/******/ ([]); | |
156 | +//# sourceMappingURL=../../.sourcemap/mp-weixin/common/runtime.js.map | |
157 | + | |
0 | 158 | \ No newline at end of file | ... | ... |
unpackage/dist/dev/mp-weixin/common/vendor.js
Changes suppressed. Click to show
... | ... | @@ -0,0 +1,8682 @@ |
1 | +(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["common/vendor"],[ | |
2 | +/* 0 */, | |
3 | +/* 1 */ | |
4 | +/*!************************************************************!*\ | |
5 | + !*** ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js ***! | |
6 | + \************************************************************/ | |
7 | +/*! no static exports found */ | |
8 | +/***/ (function(module, exports, __webpack_require__) { | |
9 | + | |
10 | +"use strict"; | |
11 | +Object.defineProperty(exports, "__esModule", { value: true });exports.createApp = createApp;exports.createComponent = createComponent;exports.createPage = createPage;exports.default = void 0;var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _slicedToArray(arr, i) {return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();}function _nonIterableRest() {throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _iterableToArrayLimit(arr, i) {if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"] != null) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}function _arrayWithHoles(arr) {if (Array.isArray(arr)) return arr;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}function _toConsumableArray(arr) {return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();}function _nonIterableSpread() {throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(n);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _iterableToArray(iter) {if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);}function _arrayWithoutHoles(arr) {if (Array.isArray(arr)) return _arrayLikeToArray(arr);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;} | |
12 | + | |
13 | +var _toString = Object.prototype.toString; | |
14 | +var hasOwnProperty = Object.prototype.hasOwnProperty; | |
15 | + | |
16 | +function isFn(fn) { | |
17 | + return typeof fn === 'function'; | |
18 | +} | |
19 | + | |
20 | +function isStr(str) { | |
21 | + return typeof str === 'string'; | |
22 | +} | |
23 | + | |
24 | +function isPlainObject(obj) { | |
25 | + return _toString.call(obj) === '[object Object]'; | |
26 | +} | |
27 | + | |
28 | +function hasOwn(obj, key) { | |
29 | + return hasOwnProperty.call(obj, key); | |
30 | +} | |
31 | + | |
32 | +function noop() {} | |
33 | + | |
34 | +/** | |
35 | + * Create a cached version of a pure function. | |
36 | + */ | |
37 | +function cached(fn) { | |
38 | + var cache = Object.create(null); | |
39 | + return function cachedFn(str) { | |
40 | + var hit = cache[str]; | |
41 | + return hit || (cache[str] = fn(str)); | |
42 | + }; | |
43 | +} | |
44 | + | |
45 | +/** | |
46 | + * Camelize a hyphen-delimited string. | |
47 | + */ | |
48 | +var camelizeRE = /-(\w)/g; | |
49 | +var camelize = cached(function (str) { | |
50 | + return str.replace(camelizeRE, function (_, c) {return c ? c.toUpperCase() : '';}); | |
51 | +}); | |
52 | + | |
53 | +var HOOKS = [ | |
54 | +'invoke', | |
55 | +'success', | |
56 | +'fail', | |
57 | +'complete', | |
58 | +'returnValue']; | |
59 | + | |
60 | + | |
61 | +var globalInterceptors = {}; | |
62 | +var scopedInterceptors = {}; | |
63 | + | |
64 | +function mergeHook(parentVal, childVal) { | |
65 | + var res = childVal ? | |
66 | + parentVal ? | |
67 | + parentVal.concat(childVal) : | |
68 | + Array.isArray(childVal) ? | |
69 | + childVal : [childVal] : | |
70 | + parentVal; | |
71 | + return res ? | |
72 | + dedupeHooks(res) : | |
73 | + res; | |
74 | +} | |
75 | + | |
76 | +function dedupeHooks(hooks) { | |
77 | + var res = []; | |
78 | + for (var i = 0; i < hooks.length; i++) { | |
79 | + if (res.indexOf(hooks[i]) === -1) { | |
80 | + res.push(hooks[i]); | |
81 | + } | |
82 | + } | |
83 | + return res; | |
84 | +} | |
85 | + | |
86 | +function removeHook(hooks, hook) { | |
87 | + var index = hooks.indexOf(hook); | |
88 | + if (index !== -1) { | |
89 | + hooks.splice(index, 1); | |
90 | + } | |
91 | +} | |
92 | + | |
93 | +function mergeInterceptorHook(interceptor, option) { | |
94 | + Object.keys(option).forEach(function (hook) { | |
95 | + if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) { | |
96 | + interceptor[hook] = mergeHook(interceptor[hook], option[hook]); | |
97 | + } | |
98 | + }); | |
99 | +} | |
100 | + | |
101 | +function removeInterceptorHook(interceptor, option) { | |
102 | + if (!interceptor || !option) { | |
103 | + return; | |
104 | + } | |
105 | + Object.keys(option).forEach(function (hook) { | |
106 | + if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) { | |
107 | + removeHook(interceptor[hook], option[hook]); | |
108 | + } | |
109 | + }); | |
110 | +} | |
111 | + | |
112 | +function addInterceptor(method, option) { | |
113 | + if (typeof method === 'string' && isPlainObject(option)) { | |
114 | + mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option); | |
115 | + } else if (isPlainObject(method)) { | |
116 | + mergeInterceptorHook(globalInterceptors, method); | |
117 | + } | |
118 | +} | |
119 | + | |
120 | +function removeInterceptor(method, option) { | |
121 | + if (typeof method === 'string') { | |
122 | + if (isPlainObject(option)) { | |
123 | + removeInterceptorHook(scopedInterceptors[method], option); | |
124 | + } else { | |
125 | + delete scopedInterceptors[method]; | |
126 | + } | |
127 | + } else if (isPlainObject(method)) { | |
128 | + removeInterceptorHook(globalInterceptors, method); | |
129 | + } | |
130 | +} | |
131 | + | |
132 | +function wrapperHook(hook) { | |
133 | + return function (data) { | |
134 | + return hook(data) || data; | |
135 | + }; | |
136 | +} | |
137 | + | |
138 | +function isPromise(obj) { | |
139 | + return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'; | |
140 | +} | |
141 | + | |
142 | +function queue(hooks, data) { | |
143 | + var promise = false; | |
144 | + for (var i = 0; i < hooks.length; i++) { | |
145 | + var hook = hooks[i]; | |
146 | + if (promise) { | |
147 | + promise = Promise.then(wrapperHook(hook)); | |
148 | + } else { | |
149 | + var res = hook(data); | |
150 | + if (isPromise(res)) { | |
151 | + promise = Promise.resolve(res); | |
152 | + } | |
153 | + if (res === false) { | |
154 | + return { | |
155 | + then: function then() {} }; | |
156 | + | |
157 | + } | |
158 | + } | |
159 | + } | |
160 | + return promise || { | |
161 | + then: function then(callback) { | |
162 | + return callback(data); | |
163 | + } }; | |
164 | + | |
165 | +} | |
166 | + | |
167 | +function wrapperOptions(interceptor) {var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | |
168 | + ['success', 'fail', 'complete'].forEach(function (name) { | |
169 | + if (Array.isArray(interceptor[name])) { | |
170 | + var oldCallback = options[name]; | |
171 | + options[name] = function callbackInterceptor(res) { | |
172 | + queue(interceptor[name], res).then(function (res) { | |
173 | + /* eslint-disable no-mixed-operators */ | |
174 | + return isFn(oldCallback) && oldCallback(res) || res; | |
175 | + }); | |
176 | + }; | |
177 | + } | |
178 | + }); | |
179 | + return options; | |
180 | +} | |
181 | + | |
182 | +function wrapperReturnValue(method, returnValue) { | |
183 | + var returnValueHooks = []; | |
184 | + if (Array.isArray(globalInterceptors.returnValue)) { | |
185 | + returnValueHooks.push.apply(returnValueHooks, _toConsumableArray(globalInterceptors.returnValue)); | |
186 | + } | |
187 | + var interceptor = scopedInterceptors[method]; | |
188 | + if (interceptor && Array.isArray(interceptor.returnValue)) { | |
189 | + returnValueHooks.push.apply(returnValueHooks, _toConsumableArray(interceptor.returnValue)); | |
190 | + } | |
191 | + returnValueHooks.forEach(function (hook) { | |
192 | + returnValue = hook(returnValue) || returnValue; | |
193 | + }); | |
194 | + return returnValue; | |
195 | +} | |
196 | + | |
197 | +function getApiInterceptorHooks(method) { | |
198 | + var interceptor = Object.create(null); | |
199 | + Object.keys(globalInterceptors).forEach(function (hook) { | |
200 | + if (hook !== 'returnValue') { | |
201 | + interceptor[hook] = globalInterceptors[hook].slice(); | |
202 | + } | |
203 | + }); | |
204 | + var scopedInterceptor = scopedInterceptors[method]; | |
205 | + if (scopedInterceptor) { | |
206 | + Object.keys(scopedInterceptor).forEach(function (hook) { | |
207 | + if (hook !== 'returnValue') { | |
208 | + interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]); | |
209 | + } | |
210 | + }); | |
211 | + } | |
212 | + return interceptor; | |
213 | +} | |
214 | + | |
215 | +function invokeApi(method, api, options) {for (var _len = arguments.length, params = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {params[_key - 3] = arguments[_key];} | |
216 | + var interceptor = getApiInterceptorHooks(method); | |
217 | + if (interceptor && Object.keys(interceptor).length) { | |
218 | + if (Array.isArray(interceptor.invoke)) { | |
219 | + var res = queue(interceptor.invoke, options); | |
220 | + return res.then(function (options) { | |
221 | + return api.apply(void 0, [wrapperOptions(interceptor, options)].concat(params)); | |
222 | + }); | |
223 | + } else { | |
224 | + return api.apply(void 0, [wrapperOptions(interceptor, options)].concat(params)); | |
225 | + } | |
226 | + } | |
227 | + return api.apply(void 0, [options].concat(params)); | |
228 | +} | |
229 | + | |
230 | +var promiseInterceptor = { | |
231 | + returnValue: function returnValue(res) { | |
232 | + if (!isPromise(res)) { | |
233 | + return res; | |
234 | + } | |
235 | + return res.then(function (res) { | |
236 | + return res[1]; | |
237 | + }).catch(function (res) { | |
238 | + return res[0]; | |
239 | + }); | |
240 | + } }; | |
241 | + | |
242 | + | |
243 | +var SYNC_API_RE = | |
244 | +/^\$|sendNativeEvent|restoreGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/; | |
245 | + | |
246 | +var CONTEXT_API_RE = /^create|Manager$/; | |
247 | + | |
248 | +// Context例外情况 | |
249 | +var CONTEXT_API_RE_EXC = ['createBLEConnection']; | |
250 | + | |
251 | +// 同步例外情况 | |
252 | +var ASYNC_API = ['createBLEConnection']; | |
253 | + | |
254 | +var CALLBACK_API_RE = /^on|^off/; | |
255 | + | |
256 | +function isContextApi(name) { | |
257 | + return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1; | |
258 | +} | |
259 | +function isSyncApi(name) { | |
260 | + return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1; | |
261 | +} | |
262 | + | |
263 | +function isCallbackApi(name) { | |
264 | + return CALLBACK_API_RE.test(name) && name !== 'onPush'; | |
265 | +} | |
266 | + | |
267 | +function handlePromise(promise) { | |
268 | + return promise.then(function (data) { | |
269 | + return [null, data]; | |
270 | + }). | |
271 | + catch(function (err) {return [err];}); | |
272 | +} | |
273 | + | |
274 | +function shouldPromise(name) { | |
275 | + if ( | |
276 | + isContextApi(name) || | |
277 | + isSyncApi(name) || | |
278 | + isCallbackApi(name)) | |
279 | + { | |
280 | + return false; | |
281 | + } | |
282 | + return true; | |
283 | +} | |
284 | + | |
285 | +/* eslint-disable no-extend-native */ | |
286 | +if (!Promise.prototype.finally) { | |
287 | + Promise.prototype.finally = function (callback) { | |
288 | + var promise = this.constructor; | |
289 | + return this.then( | |
290 | + function (value) {return promise.resolve(callback()).then(function () {return value;});}, | |
291 | + function (reason) {return promise.resolve(callback()).then(function () { | |
292 | + throw reason; | |
293 | + });}); | |
294 | + | |
295 | + }; | |
296 | +} | |
297 | + | |
298 | +function promisify(name, api) { | |
299 | + if (!shouldPromise(name)) { | |
300 | + return api; | |
301 | + } | |
302 | + return function promiseApi() {var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {params[_key2 - 1] = arguments[_key2];} | |
303 | + if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) { | |
304 | + return wrapperReturnValue(name, invokeApi.apply(void 0, [name, api, options].concat(params))); | |
305 | + } | |
306 | + return wrapperReturnValue(name, handlePromise(new Promise(function (resolve, reject) { | |
307 | + invokeApi.apply(void 0, [name, api, Object.assign({}, options, { | |
308 | + success: resolve, | |
309 | + fail: reject })].concat( | |
310 | + params)); | |
311 | + }))); | |
312 | + }; | |
313 | +} | |
314 | + | |
315 | +var EPS = 1e-4; | |
316 | +var BASE_DEVICE_WIDTH = 750; | |
317 | +var isIOS = false; | |
318 | +var deviceWidth = 0; | |
319 | +var deviceDPR = 0; | |
320 | + | |
321 | +function checkDeviceWidth() {var _wx$getSystemInfoSync = | |
322 | + | |
323 | + | |
324 | + | |
325 | + | |
326 | + wx.getSystemInfoSync(),platform = _wx$getSystemInfoSync.platform,pixelRatio = _wx$getSystemInfoSync.pixelRatio,windowWidth = _wx$getSystemInfoSync.windowWidth; // uni=>wx runtime 编译目标是 uni 对象,内部不允许直接使用 uni | |
327 | + | |
328 | + deviceWidth = windowWidth; | |
329 | + deviceDPR = pixelRatio; | |
330 | + isIOS = platform === 'ios'; | |
331 | +} | |
332 | + | |
333 | +function upx2px(number, newDeviceWidth) { | |
334 | + if (deviceWidth === 0) { | |
335 | + checkDeviceWidth(); | |
336 | + } | |
337 | + | |
338 | + number = Number(number); | |
339 | + if (number === 0) { | |
340 | + return 0; | |
341 | + } | |
342 | + var result = number / BASE_DEVICE_WIDTH * (newDeviceWidth || deviceWidth); | |
343 | + if (result < 0) { | |
344 | + result = -result; | |
345 | + } | |
346 | + result = Math.floor(result + EPS); | |
347 | + if (result === 0) { | |
348 | + if (deviceDPR === 1 || !isIOS) { | |
349 | + return 1; | |
350 | + } else { | |
351 | + return 0.5; | |
352 | + } | |
353 | + } | |
354 | + return number < 0 ? -result : result; | |
355 | +} | |
356 | + | |
357 | +var interceptors = { | |
358 | + promiseInterceptor: promiseInterceptor }; | |
359 | + | |
360 | + | |
361 | +var baseApi = /*#__PURE__*/Object.freeze({ | |
362 | + __proto__: null, | |
363 | + upx2px: upx2px, | |
364 | + addInterceptor: addInterceptor, | |
365 | + removeInterceptor: removeInterceptor, | |
366 | + interceptors: interceptors }); | |
367 | + | |
368 | + | |
369 | +var previewImage = { | |
370 | + args: function args(fromArgs) { | |
371 | + var currentIndex = parseInt(fromArgs.current); | |
372 | + if (isNaN(currentIndex)) { | |
373 | + return; | |
374 | + } | |
375 | + var urls = fromArgs.urls; | |
376 | + if (!Array.isArray(urls)) { | |
377 | + return; | |
378 | + } | |
379 | + var len = urls.length; | |
380 | + if (!len) { | |
381 | + return; | |
382 | + } | |
383 | + if (currentIndex < 0) { | |
384 | + currentIndex = 0; | |
385 | + } else if (currentIndex >= len) { | |
386 | + currentIndex = len - 1; | |
387 | + } | |
388 | + if (currentIndex > 0) { | |
389 | + fromArgs.current = urls[currentIndex]; | |
390 | + fromArgs.urls = urls.filter( | |
391 | + function (item, index) {return index < currentIndex ? item !== urls[currentIndex] : true;}); | |
392 | + | |
393 | + } else { | |
394 | + fromArgs.current = urls[0]; | |
395 | + } | |
396 | + return { | |
397 | + indicator: false, | |
398 | + loop: false }; | |
399 | + | |
400 | + } }; | |
401 | + | |
402 | + | |
403 | +function addSafeAreaInsets(result) { | |
404 | + if (result.safeArea) { | |
405 | + var safeArea = result.safeArea; | |
406 | + result.safeAreaInsets = { | |
407 | + top: safeArea.top, | |
408 | + left: safeArea.left, | |
409 | + right: result.windowWidth - safeArea.right, | |
410 | + bottom: result.windowHeight - safeArea.bottom }; | |
411 | + | |
412 | + } | |
413 | +} | |
414 | +var protocols = { | |
415 | + previewImage: previewImage, | |
416 | + getSystemInfo: { | |
417 | + returnValue: addSafeAreaInsets }, | |
418 | + | |
419 | + getSystemInfoSync: { | |
420 | + returnValue: addSafeAreaInsets } }; | |
421 | + | |
422 | + | |
423 | +var todos = [ | |
424 | +'vibrate']; | |
425 | + | |
426 | +var canIUses = []; | |
427 | + | |
428 | +var CALLBACKS = ['success', 'fail', 'cancel', 'complete']; | |
429 | + | |
430 | +function processCallback(methodName, method, returnValue) { | |
431 | + return function (res) { | |
432 | + return method(processReturnValue(methodName, res, returnValue)); | |
433 | + }; | |
434 | +} | |
435 | + | |
436 | +function processArgs(methodName, fromArgs) {var argsOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};var returnValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};var keepFromArgs = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; | |
437 | + if (isPlainObject(fromArgs)) {// 一般 api 的参数解析 | |
438 | + var toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值 | |
439 | + if (isFn(argsOption)) { | |
440 | + argsOption = argsOption(fromArgs, toArgs) || {}; | |
441 | + } | |
442 | + for (var key in fromArgs) { | |
443 | + if (hasOwn(argsOption, key)) { | |
444 | + var keyOption = argsOption[key]; | |
445 | + if (isFn(keyOption)) { | |
446 | + keyOption = keyOption(fromArgs[key], fromArgs, toArgs); | |
447 | + } | |
448 | + if (!keyOption) {// 不支持的参数 | |
449 | + console.warn("\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F ".concat(methodName, "\u6682\u4E0D\u652F\u6301").concat(key)); | |
450 | + } else if (isStr(keyOption)) {// 重写参数 key | |
451 | + toArgs[keyOption] = fromArgs[key]; | |
452 | + } else if (isPlainObject(keyOption)) {// {name:newName,value:value}可重新指定参数 key:value | |
453 | + toArgs[keyOption.name ? keyOption.name : key] = keyOption.value; | |
454 | + } | |
455 | + } else if (CALLBACKS.indexOf(key) !== -1) { | |
456 | + toArgs[key] = processCallback(methodName, fromArgs[key], returnValue); | |
457 | + } else { | |
458 | + if (!keepFromArgs) { | |
459 | + toArgs[key] = fromArgs[key]; | |
460 | + } | |
461 | + } | |
462 | + } | |
463 | + return toArgs; | |
464 | + } else if (isFn(fromArgs)) { | |
465 | + fromArgs = processCallback(methodName, fromArgs, returnValue); | |
466 | + } | |
467 | + return fromArgs; | |
468 | +} | |
469 | + | |
470 | +function processReturnValue(methodName, res, returnValue) {var keepReturnValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; | |
471 | + if (isFn(protocols.returnValue)) {// 处理通用 returnValue | |
472 | + res = protocols.returnValue(methodName, res); | |
473 | + } | |
474 | + return processArgs(methodName, res, returnValue, {}, keepReturnValue); | |
475 | +} | |
476 | + | |
477 | +function wrapper(methodName, method) { | |
478 | + if (hasOwn(protocols, methodName)) { | |
479 | + var protocol = protocols[methodName]; | |
480 | + if (!protocol) {// 暂不支持的 api | |
481 | + return function () { | |
482 | + console.error("\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F \u6682\u4E0D\u652F\u6301".concat(methodName)); | |
483 | + }; | |
484 | + } | |
485 | + return function (arg1, arg2) {// 目前 api 最多两个参数 | |
486 | + var options = protocol; | |
487 | + if (isFn(protocol)) { | |
488 | + options = protocol(arg1); | |
489 | + } | |
490 | + | |
491 | + arg1 = processArgs(methodName, arg1, options.args, options.returnValue); | |
492 | + | |
493 | + var args = [arg1]; | |
494 | + if (typeof arg2 !== 'undefined') { | |
495 | + args.push(arg2); | |
496 | + } | |
497 | + var returnValue = wx[options.name || methodName].apply(wx, args); | |
498 | + if (isSyncApi(methodName)) {// 同步 api | |
499 | + return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName)); | |
500 | + } | |
501 | + return returnValue; | |
502 | + }; | |
503 | + } | |
504 | + return method; | |
505 | +} | |
506 | + | |
507 | +var todoApis = Object.create(null); | |
508 | + | |
509 | +var TODOS = [ | |
510 | +'onTabBarMidButtonTap', | |
511 | +'subscribePush', | |
512 | +'unsubscribePush', | |
513 | +'onPush', | |
514 | +'offPush', | |
515 | +'share']; | |
516 | + | |
517 | + | |
518 | +function createTodoApi(name) { | |
519 | + return function todoApi(_ref) | |
520 | + | |
521 | + | |
522 | + {var fail = _ref.fail,complete = _ref.complete; | |
523 | + var res = { | |
524 | + errMsg: "".concat(name, ":fail:\u6682\u4E0D\u652F\u6301 ").concat(name, " \u65B9\u6CD5") }; | |
525 | + | |
526 | + isFn(fail) && fail(res); | |
527 | + isFn(complete) && complete(res); | |
528 | + }; | |
529 | +} | |
530 | + | |
531 | +TODOS.forEach(function (name) { | |
532 | + todoApis[name] = createTodoApi(name); | |
533 | +}); | |
534 | + | |
535 | +var providers = { | |
536 | + oauth: ['weixin'], | |
537 | + share: ['weixin'], | |
538 | + payment: ['wxpay'], | |
539 | + push: ['weixin'] }; | |
540 | + | |
541 | + | |
542 | +function getProvider(_ref2) | |
543 | + | |
544 | + | |
545 | + | |
546 | + | |
547 | +{var service = _ref2.service,success = _ref2.success,fail = _ref2.fail,complete = _ref2.complete; | |
548 | + var res = false; | |
549 | + if (providers[service]) { | |
550 | + res = { | |
551 | + errMsg: 'getProvider:ok', | |
552 | + service: service, | |
553 | + provider: providers[service] }; | |
554 | + | |
555 | + isFn(success) && success(res); | |
556 | + } else { | |
557 | + res = { | |
558 | + errMsg: 'getProvider:fail:服务[' + service + ']不存在' }; | |
559 | + | |
560 | + isFn(fail) && fail(res); | |
561 | + } | |
562 | + isFn(complete) && complete(res); | |
563 | +} | |
564 | + | |
565 | +var extraApi = /*#__PURE__*/Object.freeze({ | |
566 | + __proto__: null, | |
567 | + getProvider: getProvider }); | |
568 | + | |
569 | + | |
570 | +var getEmitter = function () { | |
571 | + if (typeof getUniEmitter === 'function') { | |
572 | + /* eslint-disable no-undef */ | |
573 | + return getUniEmitter; | |
574 | + } | |
575 | + var Emitter; | |
576 | + return function getUniEmitter() { | |
577 | + if (!Emitter) { | |
578 | + Emitter = new _vue.default(); | |
579 | + } | |
580 | + return Emitter; | |
581 | + }; | |
582 | +}(); | |
583 | + | |
584 | +function apply(ctx, method, args) { | |
585 | + return ctx[method].apply(ctx, args); | |
586 | +} | |
587 | + | |
588 | +function $on() { | |
589 | + return apply(getEmitter(), '$on', Array.prototype.slice.call(arguments)); | |
590 | +} | |
591 | +function $off() { | |
592 | + return apply(getEmitter(), '$off', Array.prototype.slice.call(arguments)); | |
593 | +} | |
594 | +function $once() { | |
595 | + return apply(getEmitter(), '$once', Array.prototype.slice.call(arguments)); | |
596 | +} | |
597 | +function $emit() { | |
598 | + return apply(getEmitter(), '$emit', Array.prototype.slice.call(arguments)); | |
599 | +} | |
600 | + | |
601 | +var eventApi = /*#__PURE__*/Object.freeze({ | |
602 | + __proto__: null, | |
603 | + $on: $on, | |
604 | + $off: $off, | |
605 | + $once: $once, | |
606 | + $emit: $emit }); | |
607 | + | |
608 | + | |
609 | +var api = /*#__PURE__*/Object.freeze({ | |
610 | + __proto__: null }); | |
611 | + | |
612 | + | |
613 | +var MPPage = Page; | |
614 | +var MPComponent = Component; | |
615 | + | |
616 | +var customizeRE = /:/g; | |
617 | + | |
618 | +var customize = cached(function (str) { | |
619 | + return camelize(str.replace(customizeRE, '-')); | |
620 | +}); | |
621 | + | |
622 | +function initTriggerEvent(mpInstance) { | |
623 | + { | |
624 | + if (!wx.canIUse('nextTick')) { | |
625 | + return; | |
626 | + } | |
627 | + } | |
628 | + var oldTriggerEvent = mpInstance.triggerEvent; | |
629 | + mpInstance.triggerEvent = function (event) {for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {args[_key3 - 1] = arguments[_key3];} | |
630 | + return oldTriggerEvent.apply(mpInstance, [customize(event)].concat(args)); | |
631 | + }; | |
632 | +} | |
633 | + | |
634 | +function initHook(name, options) { | |
635 | + var oldHook = options[name]; | |
636 | + if (!oldHook) { | |
637 | + options[name] = function () { | |
638 | + initTriggerEvent(this); | |
639 | + }; | |
640 | + } else { | |
641 | + options[name] = function () { | |
642 | + initTriggerEvent(this);for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {args[_key4] = arguments[_key4];} | |
643 | + return oldHook.apply(this, args); | |
644 | + }; | |
645 | + } | |
646 | +} | |
647 | + | |
648 | +Page = function Page() {var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | |
649 | + initHook('onLoad', options); | |
650 | + return MPPage(options); | |
651 | +}; | |
652 | + | |
653 | +Component = function Component() {var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | |
654 | + initHook('created', options); | |
655 | + return MPComponent(options); | |
656 | +}; | |
657 | + | |
658 | +var PAGE_EVENT_HOOKS = [ | |
659 | +'onPullDownRefresh', | |
660 | +'onReachBottom', | |
661 | +'onShareAppMessage', | |
662 | +'onPageScroll', | |
663 | +'onResize', | |
664 | +'onTabItemTap']; | |
665 | + | |
666 | + | |
667 | +function initMocks(vm, mocks) { | |
668 | + var mpInstance = vm.$mp[vm.mpType]; | |
669 | + mocks.forEach(function (mock) { | |
670 | + if (hasOwn(mpInstance, mock)) { | |
671 | + vm[mock] = mpInstance[mock]; | |
672 | + } | |
673 | + }); | |
674 | +} | |
675 | + | |
676 | +function hasHook(hook, vueOptions) { | |
677 | + if (!vueOptions) { | |
678 | + return true; | |
679 | + } | |
680 | + | |
681 | + if (_vue.default.options && Array.isArray(_vue.default.options[hook])) { | |
682 | + return true; | |
683 | + } | |
684 | + | |
685 | + vueOptions = vueOptions.default || vueOptions; | |
686 | + | |
687 | + if (isFn(vueOptions)) { | |
688 | + if (isFn(vueOptions.extendOptions[hook])) { | |
689 | + return true; | |
690 | + } | |
691 | + if (vueOptions.super && | |
692 | + vueOptions.super.options && | |
693 | + Array.isArray(vueOptions.super.options[hook])) { | |
694 | + return true; | |
695 | + } | |
696 | + return false; | |
697 | + } | |
698 | + | |
699 | + if (isFn(vueOptions[hook])) { | |
700 | + return true; | |
701 | + } | |
702 | + var mixins = vueOptions.mixins; | |
703 | + if (Array.isArray(mixins)) { | |
704 | + return !!mixins.find(function (mixin) {return hasHook(hook, mixin);}); | |
705 | + } | |
706 | +} | |
707 | + | |
708 | +function initHooks(mpOptions, hooks, vueOptions) { | |
709 | + hooks.forEach(function (hook) { | |
710 | + if (hasHook(hook, vueOptions)) { | |
711 | + mpOptions[hook] = function (args) { | |
712 | + return this.$vm && this.$vm.__call_hook(hook, args); | |
713 | + }; | |
714 | + } | |
715 | + }); | |
716 | +} | |
717 | + | |
718 | +function initVueComponent(Vue, vueOptions) { | |
719 | + vueOptions = vueOptions.default || vueOptions; | |
720 | + var VueComponent; | |
721 | + if (isFn(vueOptions)) { | |
722 | + VueComponent = vueOptions; | |
723 | + vueOptions = VueComponent.extendOptions; | |
724 | + } else { | |
725 | + VueComponent = Vue.extend(vueOptions); | |
726 | + } | |
727 | + return [VueComponent, vueOptions]; | |
728 | +} | |
729 | + | |
730 | +function initSlots(vm, vueSlots) { | |
731 | + if (Array.isArray(vueSlots) && vueSlots.length) { | |
732 | + var $slots = Object.create(null); | |
733 | + vueSlots.forEach(function (slotName) { | |
734 | + $slots[slotName] = true; | |
735 | + }); | |
736 | + vm.$scopedSlots = vm.$slots = $slots; | |
737 | + } | |
738 | +} | |
739 | + | |
740 | +function initVueIds(vueIds, mpInstance) { | |
741 | + vueIds = (vueIds || '').split(','); | |
742 | + var len = vueIds.length; | |
743 | + | |
744 | + if (len === 1) { | |
745 | + mpInstance._$vueId = vueIds[0]; | |
746 | + } else if (len === 2) { | |
747 | + mpInstance._$vueId = vueIds[0]; | |
748 | + mpInstance._$vuePid = vueIds[1]; | |
749 | + } | |
750 | +} | |
751 | + | |
752 | +function initData(vueOptions, context) { | |
753 | + var data = vueOptions.data || {}; | |
754 | + var methods = vueOptions.methods || {}; | |
755 | + | |
756 | + if (typeof data === 'function') { | |
757 | + try { | |
758 | + data = data.call(context); // 支持 Vue.prototype 上挂的数据 | |
759 | + } catch (e) { | |
760 | + if (Object({"VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) { | |
761 | + console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data); | |
762 | + } | |
763 | + } | |
764 | + } else { | |
765 | + try { | |
766 | + // 对 data 格式化 | |
767 | + data = JSON.parse(JSON.stringify(data)); | |
768 | + } catch (e) {} | |
769 | + } | |
770 | + | |
771 | + if (!isPlainObject(data)) { | |
772 | + data = {}; | |
773 | + } | |
774 | + | |
775 | + Object.keys(methods).forEach(function (methodName) { | |
776 | + if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) { | |
777 | + data[methodName] = methods[methodName]; | |
778 | + } | |
779 | + }); | |
780 | + | |
781 | + return data; | |
782 | +} | |
783 | + | |
784 | +var PROP_TYPES = [String, Number, Boolean, Object, Array, null]; | |
785 | + | |
786 | +function createObserver(name) { | |
787 | + return function observer(newVal, oldVal) { | |
788 | + if (this.$vm) { | |
789 | + this.$vm[name] = newVal; // 为了触发其他非 render watcher | |
790 | + } | |
791 | + }; | |
792 | +} | |
793 | + | |
794 | +function initBehaviors(vueOptions, initBehavior) { | |
795 | + var vueBehaviors = vueOptions.behaviors; | |
796 | + var vueExtends = vueOptions.extends; | |
797 | + var vueMixins = vueOptions.mixins; | |
798 | + | |
799 | + var vueProps = vueOptions.props; | |
800 | + | |
801 | + if (!vueProps) { | |
802 | + vueOptions.props = vueProps = []; | |
803 | + } | |
804 | + | |
805 | + var behaviors = []; | |
806 | + if (Array.isArray(vueBehaviors)) { | |
807 | + vueBehaviors.forEach(function (behavior) { | |
808 | + behaviors.push(behavior.replace('uni://', "wx".concat("://"))); | |
809 | + if (behavior === 'uni://form-field') { | |
810 | + if (Array.isArray(vueProps)) { | |
811 | + vueProps.push('name'); | |
812 | + vueProps.push('value'); | |
813 | + } else { | |
814 | + vueProps.name = { | |
815 | + type: String, | |
816 | + default: '' }; | |
817 | + | |
818 | + vueProps.value = { | |
819 | + type: [String, Number, Boolean, Array, Object, Date], | |
820 | + default: '' }; | |
821 | + | |
822 | + } | |
823 | + } | |
824 | + }); | |
825 | + } | |
826 | + if (isPlainObject(vueExtends) && vueExtends.props) { | |
827 | + behaviors.push( | |
828 | + initBehavior({ | |
829 | + properties: initProperties(vueExtends.props, true) })); | |
830 | + | |
831 | + | |
832 | + } | |
833 | + if (Array.isArray(vueMixins)) { | |
834 | + vueMixins.forEach(function (vueMixin) { | |
835 | + if (isPlainObject(vueMixin) && vueMixin.props) { | |
836 | + behaviors.push( | |
837 | + initBehavior({ | |
838 | + properties: initProperties(vueMixin.props, true) })); | |
839 | + | |
840 | + | |
841 | + } | |
842 | + }); | |
843 | + } | |
844 | + return behaviors; | |
845 | +} | |
846 | + | |
847 | +function parsePropType(key, type, defaultValue, file) { | |
848 | + // [String]=>String | |
849 | + if (Array.isArray(type) && type.length === 1) { | |
850 | + return type[0]; | |
851 | + } | |
852 | + return type; | |
853 | +} | |
854 | + | |
855 | +function initProperties(props) {var isBehavior = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;var file = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; | |
856 | + var properties = {}; | |
857 | + if (!isBehavior) { | |
858 | + properties.vueId = { | |
859 | + type: String, | |
860 | + value: '' }; | |
861 | + | |
862 | + properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots | |
863 | + type: null, | |
864 | + value: [], | |
865 | + observer: function observer(newVal, oldVal) { | |
866 | + var $slots = Object.create(null); | |
867 | + newVal.forEach(function (slotName) { | |
868 | + $slots[slotName] = true; | |
869 | + }); | |
870 | + this.setData({ | |
871 | + $slots: $slots }); | |
872 | + | |
873 | + } }; | |
874 | + | |
875 | + } | |
876 | + if (Array.isArray(props)) {// ['title'] | |
877 | + props.forEach(function (key) { | |
878 | + properties[key] = { | |
879 | + type: null, | |
880 | + observer: createObserver(key) }; | |
881 | + | |
882 | + }); | |
883 | + } else if (isPlainObject(props)) {// {title:{type:String,default:''},content:String} | |
884 | + Object.keys(props).forEach(function (key) { | |
885 | + var opts = props[key]; | |
886 | + if (isPlainObject(opts)) {// title:{type:String,default:''} | |
887 | + var value = opts.default; | |
888 | + if (isFn(value)) { | |
889 | + value = value(); | |
890 | + } | |
891 | + | |
892 | + opts.type = parsePropType(key, opts.type); | |
893 | + | |
894 | + properties[key] = { | |
895 | + type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null, | |
896 | + value: value, | |
897 | + observer: createObserver(key) }; | |
898 | + | |
899 | + } else {// content:String | |
900 | + var type = parsePropType(key, opts); | |
901 | + properties[key] = { | |
902 | + type: PROP_TYPES.indexOf(type) !== -1 ? type : null, | |
903 | + observer: createObserver(key) }; | |
904 | + | |
905 | + } | |
906 | + }); | |
907 | + } | |
908 | + return properties; | |
909 | +} | |
910 | + | |
911 | +function wrapper$1(event) { | |
912 | + // TODO 又得兼容 mpvue 的 mp 对象 | |
913 | + try { | |
914 | + event.mp = JSON.parse(JSON.stringify(event)); | |
915 | + } catch (e) {} | |
916 | + | |
917 | + event.stopPropagation = noop; | |
918 | + event.preventDefault = noop; | |
919 | + | |
920 | + event.target = event.target || {}; | |
921 | + | |
922 | + if (!hasOwn(event, 'detail') || !event.detail) { | |
923 | + event.detail = {}; | |
924 | + } | |
925 | + | |
926 | + if (!('markerId' in event.detail) && 'markerId' in event) { | |
927 | + event.detail.markerId = event.markerId; | |
928 | + } | |
929 | + | |
930 | + if (isPlainObject(event.detail)) { | |
931 | + event.target = Object.assign({}, event.target, event.detail); | |
932 | + } | |
933 | + | |
934 | + return event; | |
935 | +} | |
936 | + | |
937 | +function getExtraValue(vm, dataPathsArray) { | |
938 | + var context = vm; | |
939 | + dataPathsArray.forEach(function (dataPathArray) { | |
940 | + var dataPath = dataPathArray[0]; | |
941 | + var value = dataPathArray[2]; | |
942 | + if (dataPath || typeof value !== 'undefined') {// ['','',index,'disable'] | |
943 | + var propPath = dataPathArray[1]; | |
944 | + var valuePath = dataPathArray[3]; | |
945 | + | |
946 | + var vFor = dataPath ? vm.__get_value(dataPath, context) : context; | |
947 | + | |
948 | + if (Number.isInteger(vFor)) { | |
949 | + context = value; | |
950 | + } else if (!propPath) { | |
951 | + context = vFor[value]; | |
952 | + } else { | |
953 | + if (Array.isArray(vFor)) { | |
954 | + context = vFor.find(function (vForItem) { | |
955 | + return vm.__get_value(propPath, vForItem) === value; | |
956 | + }); | |
957 | + } else if (isPlainObject(vFor)) { | |
958 | + context = Object.keys(vFor).find(function (vForKey) { | |
959 | + return vm.__get_value(propPath, vFor[vForKey]) === value; | |
960 | + }); | |
961 | + } else { | |
962 | + console.error('v-for 暂不支持循环数据:', vFor); | |
963 | + } | |
964 | + } | |
965 | + | |
966 | + if (valuePath) { | |
967 | + context = vm.__get_value(valuePath, context); | |
968 | + } | |
969 | + } | |
970 | + }); | |
971 | + return context; | |
972 | +} | |
973 | + | |
974 | +function processEventExtra(vm, extra, event) { | |
975 | + var extraObj = {}; | |
976 | + | |
977 | + if (Array.isArray(extra) && extra.length) { | |
978 | + /** | |
979 | + *[ | |
980 | + * ['data.items', 'data.id', item.data.id], | |
981 | + * ['metas', 'id', meta.id] | |
982 | + *], | |
983 | + *[ | |
984 | + * ['data.items', 'data.id', item.data.id], | |
985 | + * ['metas', 'id', meta.id] | |
986 | + *], | |
987 | + *'test' | |
988 | + */ | |
989 | + extra.forEach(function (dataPath, index) { | |
990 | + if (typeof dataPath === 'string') { | |
991 | + if (!dataPath) {// model,prop.sync | |
992 | + extraObj['$' + index] = vm; | |
993 | + } else { | |
994 | + if (dataPath === '$event') {// $event | |
995 | + extraObj['$' + index] = event; | |
996 | + } else if (dataPath.indexOf('$event.') === 0) {// $event.target.value | |
997 | + extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event); | |
998 | + } else { | |
999 | + extraObj['$' + index] = vm.__get_value(dataPath); | |
1000 | + } | |
1001 | + } | |
1002 | + } else { | |
1003 | + extraObj['$' + index] = getExtraValue(vm, dataPath); | |
1004 | + } | |
1005 | + }); | |
1006 | + } | |
1007 | + | |
1008 | + return extraObj; | |
1009 | +} | |
1010 | + | |
1011 | +function getObjByArray(arr) { | |
1012 | + var obj = {}; | |
1013 | + for (var i = 1; i < arr.length; i++) { | |
1014 | + var element = arr[i]; | |
1015 | + obj[element[0]] = element[1]; | |
1016 | + } | |
1017 | + return obj; | |
1018 | +} | |
1019 | + | |
1020 | +function processEventArgs(vm, event) {var args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];var extra = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];var isCustom = arguments.length > 4 ? arguments[4] : undefined;var methodName = arguments.length > 5 ? arguments[5] : undefined; | |
1021 | + var isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象 | |
1022 | + if (isCustom) {// 自定义事件 | |
1023 | + isCustomMPEvent = event.currentTarget && | |
1024 | + event.currentTarget.dataset && | |
1025 | + event.currentTarget.dataset.comType === 'wx'; | |
1026 | + if (!args.length) {// 无参数,直接传入 event 或 detail 数组 | |
1027 | + if (isCustomMPEvent) { | |
1028 | + return [event]; | |
1029 | + } | |
1030 | + return event.detail.__args__ || event.detail; | |
1031 | + } | |
1032 | + } | |
1033 | + | |
1034 | + var extraObj = processEventExtra(vm, extra, event); | |
1035 | + | |
1036 | + var ret = []; | |
1037 | + args.forEach(function (arg) { | |
1038 | + if (arg === '$event') { | |
1039 | + if (methodName === '__set_model' && !isCustom) {// input v-model value | |
1040 | + ret.push(event.target.value); | |
1041 | + } else { | |
1042 | + if (isCustom && !isCustomMPEvent) { | |
1043 | + ret.push(event.detail.__args__[0]); | |
1044 | + } else {// wxcomponent 组件或内置组件 | |
1045 | + ret.push(event); | |
1046 | + } | |
1047 | + } | |
1048 | + } else { | |
1049 | + if (Array.isArray(arg) && arg[0] === 'o') { | |
1050 | + ret.push(getObjByArray(arg)); | |
1051 | + } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) { | |
1052 | + ret.push(extraObj[arg]); | |
1053 | + } else { | |
1054 | + ret.push(arg); | |
1055 | + } | |
1056 | + } | |
1057 | + }); | |
1058 | + | |
1059 | + return ret; | |
1060 | +} | |
1061 | + | |
1062 | +var ONCE = '~'; | |
1063 | +var CUSTOM = '^'; | |
1064 | + | |
1065 | +function isMatchEventType(eventType, optType) { | |
1066 | + return eventType === optType || | |
1067 | + | |
1068 | + optType === 'regionchange' && ( | |
1069 | + | |
1070 | + eventType === 'begin' || | |
1071 | + eventType === 'end'); | |
1072 | + | |
1073 | + | |
1074 | +} | |
1075 | + | |
1076 | +function handleEvent(event) {var _this = this; | |
1077 | + event = wrapper$1(event); | |
1078 | + | |
1079 | + // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]] | |
1080 | + var dataset = (event.currentTarget || event.target).dataset; | |
1081 | + if (!dataset) { | |
1082 | + return console.warn('事件信息不存在'); | |
1083 | + } | |
1084 | + var eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰 | |
1085 | + if (!eventOpts) { | |
1086 | + return console.warn('事件信息不存在'); | |
1087 | + } | |
1088 | + | |
1089 | + // [['handle',[1,2,a]],['handle1',[1,2,a]]] | |
1090 | + var eventType = event.type; | |
1091 | + | |
1092 | + var ret = []; | |
1093 | + | |
1094 | + eventOpts.forEach(function (eventOpt) { | |
1095 | + var type = eventOpt[0]; | |
1096 | + var eventsArray = eventOpt[1]; | |
1097 | + | |
1098 | + var isCustom = type.charAt(0) === CUSTOM; | |
1099 | + type = isCustom ? type.slice(1) : type; | |
1100 | + var isOnce = type.charAt(0) === ONCE; | |
1101 | + type = isOnce ? type.slice(1) : type; | |
1102 | + | |
1103 | + if (eventsArray && isMatchEventType(eventType, type)) { | |
1104 | + eventsArray.forEach(function (eventArray) { | |
1105 | + var methodName = eventArray[0]; | |
1106 | + if (methodName) { | |
1107 | + var handlerCtx = _this.$vm; | |
1108 | + if ( | |
1109 | + handlerCtx.$options.generic && | |
1110 | + handlerCtx.$parent && | |
1111 | + handlerCtx.$parent.$parent) | |
1112 | + {// mp-weixin,mp-toutiao 抽象节点模拟 scoped slots | |
1113 | + handlerCtx = handlerCtx.$parent.$parent; | |
1114 | + } | |
1115 | + if (methodName === '$emit') { | |
1116 | + handlerCtx.$emit.apply(handlerCtx, | |
1117 | + processEventArgs( | |
1118 | + _this.$vm, | |
1119 | + event, | |
1120 | + eventArray[1], | |
1121 | + eventArray[2], | |
1122 | + isCustom, | |
1123 | + methodName)); | |
1124 | + | |
1125 | + return; | |
1126 | + } | |
1127 | + var handler = handlerCtx[methodName]; | |
1128 | + if (!isFn(handler)) { | |
1129 | + throw new Error(" _vm.".concat(methodName, " is not a function")); | |
1130 | + } | |
1131 | + if (isOnce) { | |
1132 | + if (handler.once) { | |
1133 | + return; | |
1134 | + } | |
1135 | + handler.once = true; | |
1136 | + } | |
1137 | + ret.push(handler.apply(handlerCtx, processEventArgs( | |
1138 | + _this.$vm, | |
1139 | + event, | |
1140 | + eventArray[1], | |
1141 | + eventArray[2], | |
1142 | + isCustom, | |
1143 | + methodName))); | |
1144 | + | |
1145 | + } | |
1146 | + }); | |
1147 | + } | |
1148 | + }); | |
1149 | + | |
1150 | + if ( | |
1151 | + eventType === 'input' && | |
1152 | + ret.length === 1 && | |
1153 | + typeof ret[0] !== 'undefined') | |
1154 | + { | |
1155 | + return ret[0]; | |
1156 | + } | |
1157 | +} | |
1158 | + | |
1159 | +var hooks = [ | |
1160 | +'onShow', | |
1161 | +'onHide', | |
1162 | +'onError', | |
1163 | +'onPageNotFound']; | |
1164 | + | |
1165 | + | |
1166 | +function parseBaseApp(vm, _ref3) | |
1167 | + | |
1168 | + | |
1169 | +{var mocks = _ref3.mocks,initRefs = _ref3.initRefs; | |
1170 | + if (vm.$options.store) { | |
1171 | + _vue.default.prototype.$store = vm.$options.store; | |
1172 | + } | |
1173 | + | |
1174 | + _vue.default.prototype.mpHost = "mp-weixin"; | |
1175 | + | |
1176 | + _vue.default.mixin({ | |
1177 | + beforeCreate: function beforeCreate() { | |
1178 | + if (!this.$options.mpType) { | |
1179 | + return; | |
1180 | + } | |
1181 | + | |
1182 | + this.mpType = this.$options.mpType; | |
1183 | + | |
1184 | + this.$mp = _defineProperty({ | |
1185 | + data: {} }, | |
1186 | + this.mpType, this.$options.mpInstance); | |
1187 | + | |
1188 | + | |
1189 | + this.$scope = this.$options.mpInstance; | |
1190 | + | |
1191 | + delete this.$options.mpType; | |
1192 | + delete this.$options.mpInstance; | |
1193 | + | |
1194 | + if (this.mpType !== 'app') { | |
1195 | + initRefs(this); | |
1196 | + initMocks(this, mocks); | |
1197 | + } | |
1198 | + } }); | |
1199 | + | |
1200 | + | |
1201 | + var appOptions = { | |
1202 | + onLaunch: function onLaunch(args) { | |
1203 | + if (this.$vm) {// 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前 | |
1204 | + return; | |
1205 | + } | |
1206 | + { | |
1207 | + if (!wx.canIUse('nextTick')) {// 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断 | |
1208 | + console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上'); | |
1209 | + } | |
1210 | + } | |
1211 | + | |
1212 | + this.$vm = vm; | |
1213 | + | |
1214 | + this.$vm.$mp = { | |
1215 | + app: this }; | |
1216 | + | |
1217 | + | |
1218 | + this.$vm.$scope = this; | |
1219 | + // vm 上也挂载 globalData | |
1220 | + this.$vm.globalData = this.globalData; | |
1221 | + | |
1222 | + this.$vm._isMounted = true; | |
1223 | + this.$vm.__call_hook('mounted', args); | |
1224 | + | |
1225 | + this.$vm.__call_hook('onLaunch', args); | |
1226 | + } }; | |
1227 | + | |
1228 | + | |
1229 | + // 兼容旧版本 globalData | |
1230 | + appOptions.globalData = vm.$options.globalData || {}; | |
1231 | + // 将 methods 中的方法挂在 getApp() 中 | |
1232 | + var methods = vm.$options.methods; | |
1233 | + if (methods) { | |
1234 | + Object.keys(methods).forEach(function (name) { | |
1235 | + appOptions[name] = methods[name]; | |
1236 | + }); | |
1237 | + } | |
1238 | + | |
1239 | + initHooks(appOptions, hooks); | |
1240 | + | |
1241 | + return appOptions; | |
1242 | +} | |
1243 | + | |
1244 | +var mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__']; | |
1245 | + | |
1246 | +function findVmByVueId(vm, vuePid) { | |
1247 | + var $children = vm.$children; | |
1248 | + // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200) | |
1249 | + for (var i = $children.length - 1; i >= 0; i--) { | |
1250 | + var childVm = $children[i]; | |
1251 | + if (childVm.$scope._$vueId === vuePid) { | |
1252 | + return childVm; | |
1253 | + } | |
1254 | + } | |
1255 | + // 反向递归查找 | |
1256 | + var parentVm; | |
1257 | + for (var _i = $children.length - 1; _i >= 0; _i--) { | |
1258 | + parentVm = findVmByVueId($children[_i], vuePid); | |
1259 | + if (parentVm) { | |
1260 | + return parentVm; | |
1261 | + } | |
1262 | + } | |
1263 | +} | |
1264 | + | |
1265 | +function initBehavior(options) { | |
1266 | + return Behavior(options); | |
1267 | +} | |
1268 | + | |
1269 | +function isPage() { | |
1270 | + return !!this.route; | |
1271 | +} | |
1272 | + | |
1273 | +function initRelation(detail) { | |
1274 | + this.triggerEvent('__l', detail); | |
1275 | +} | |
1276 | + | |
1277 | +function initRefs(vm) { | |
1278 | + var mpInstance = vm.$scope; | |
1279 | + Object.defineProperty(vm, '$refs', { | |
1280 | + get: function get() { | |
1281 | + var $refs = {}; | |
1282 | + var components = mpInstance.selectAllComponents('.vue-ref'); | |
1283 | + components.forEach(function (component) { | |
1284 | + var ref = component.dataset.ref; | |
1285 | + $refs[ref] = component.$vm || component; | |
1286 | + }); | |
1287 | + var forComponents = mpInstance.selectAllComponents('.vue-ref-in-for'); | |
1288 | + forComponents.forEach(function (component) { | |
1289 | + var ref = component.dataset.ref; | |
1290 | + if (!$refs[ref]) { | |
1291 | + $refs[ref] = []; | |
1292 | + } | |
1293 | + $refs[ref].push(component.$vm || component); | |
1294 | + }); | |
1295 | + return $refs; | |
1296 | + } }); | |
1297 | + | |
1298 | +} | |
1299 | + | |
1300 | +function handleLink(event) {var _ref4 = | |
1301 | + | |
1302 | + | |
1303 | + | |
1304 | + event.detail || event.value,vuePid = _ref4.vuePid,vueOptions = _ref4.vueOptions; // detail 是微信,value 是百度(dipatch) | |
1305 | + | |
1306 | + var parentVm; | |
1307 | + | |
1308 | + if (vuePid) { | |
1309 | + parentVm = findVmByVueId(this.$vm, vuePid); | |
1310 | + } | |
1311 | + | |
1312 | + if (!parentVm) { | |
1313 | + parentVm = this.$vm; | |
1314 | + } | |
1315 | + | |
1316 | + vueOptions.parent = parentVm; | |
1317 | +} | |
1318 | + | |
1319 | +function parseApp(vm) { | |
1320 | + return parseBaseApp(vm, { | |
1321 | + mocks: mocks, | |
1322 | + initRefs: initRefs }); | |
1323 | + | |
1324 | +} | |
1325 | + | |
1326 | +function createApp(vm) { | |
1327 | + App(parseApp(vm)); | |
1328 | + return vm; | |
1329 | +} | |
1330 | + | |
1331 | +function parseBaseComponent(vueComponentOptions) | |
1332 | + | |
1333 | + | |
1334 | +{var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},isPage = _ref5.isPage,initRelation = _ref5.initRelation;var _initVueComponent = | |
1335 | + initVueComponent(_vue.default, vueComponentOptions),_initVueComponent2 = _slicedToArray(_initVueComponent, 2),VueComponent = _initVueComponent2[0],vueOptions = _initVueComponent2[1]; | |
1336 | + | |
1337 | + var options = _objectSpread({ | |
1338 | + multipleSlots: true, | |
1339 | + addGlobalClass: true }, | |
1340 | + vueOptions.options || {}); | |
1341 | + | |
1342 | + | |
1343 | + { | |
1344 | + // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项 | |
1345 | + if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) { | |
1346 | + Object.assign(options, vueOptions['mp-weixin'].options); | |
1347 | + } | |
1348 | + } | |
1349 | + | |
1350 | + var componentOptions = { | |
1351 | + options: options, | |
1352 | + data: initData(vueOptions, _vue.default.prototype), | |
1353 | + behaviors: initBehaviors(vueOptions, initBehavior), | |
1354 | + properties: initProperties(vueOptions.props, false, vueOptions.__file), | |
1355 | + lifetimes: { | |
1356 | + attached: function attached() { | |
1357 | + var properties = this.properties; | |
1358 | + | |
1359 | + var options = { | |
1360 | + mpType: isPage.call(this) ? 'page' : 'component', | |
1361 | + mpInstance: this, | |
1362 | + propsData: properties }; | |
1363 | + | |
1364 | + | |
1365 | + initVueIds(properties.vueId, this); | |
1366 | + | |
1367 | + // 处理父子关系 | |
1368 | + initRelation.call(this, { | |
1369 | + vuePid: this._$vuePid, | |
1370 | + vueOptions: options }); | |
1371 | + | |
1372 | + | |
1373 | + // 初始化 vue 实例 | |
1374 | + this.$vm = new VueComponent(options); | |
1375 | + | |
1376 | + // 处理$slots,$scopedSlots(暂不支持动态变化$slots) | |
1377 | + initSlots(this.$vm, properties.vueSlots); | |
1378 | + | |
1379 | + // 触发首次 setData | |
1380 | + this.$vm.$mount(); | |
1381 | + }, | |
1382 | + ready: function ready() { | |
1383 | + // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发 | |
1384 | + // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800 | |
1385 | + if (this.$vm) { | |
1386 | + this.$vm._isMounted = true; | |
1387 | + this.$vm.__call_hook('mounted'); | |
1388 | + this.$vm.__call_hook('onReady'); | |
1389 | + } | |
1390 | + }, | |
1391 | + detached: function detached() { | |
1392 | + this.$vm && this.$vm.$destroy(); | |
1393 | + } }, | |
1394 | + | |
1395 | + pageLifetimes: { | |
1396 | + show: function show(args) { | |
1397 | + this.$vm && this.$vm.__call_hook('onPageShow', args); | |
1398 | + }, | |
1399 | + hide: function hide() { | |
1400 | + this.$vm && this.$vm.__call_hook('onPageHide'); | |
1401 | + }, | |
1402 | + resize: function resize(size) { | |
1403 | + this.$vm && this.$vm.__call_hook('onPageResize', size); | |
1404 | + } }, | |
1405 | + | |
1406 | + methods: { | |
1407 | + __l: handleLink, | |
1408 | + __e: handleEvent } }; | |
1409 | + | |
1410 | + | |
1411 | + | |
1412 | + if (Array.isArray(vueOptions.wxsCallMethods)) { | |
1413 | + vueOptions.wxsCallMethods.forEach(function (callMethod) { | |
1414 | + componentOptions.methods[callMethod] = function (args) { | |
1415 | + return this.$vm[callMethod](args); | |
1416 | + }; | |
1417 | + }); | |
1418 | + } | |
1419 | + | |
1420 | + if (isPage) { | |
1421 | + return componentOptions; | |
1422 | + } | |
1423 | + return [componentOptions, VueComponent]; | |
1424 | +} | |
1425 | + | |
1426 | +function parseComponent(vueComponentOptions) { | |
1427 | + return parseBaseComponent(vueComponentOptions, { | |
1428 | + isPage: isPage, | |
1429 | + initRelation: initRelation }); | |
1430 | + | |
1431 | +} | |
1432 | + | |
1433 | +var hooks$1 = [ | |
1434 | +'onShow', | |
1435 | +'onHide', | |
1436 | +'onUnload']; | |
1437 | + | |
1438 | + | |
1439 | +hooks$1.push.apply(hooks$1, PAGE_EVENT_HOOKS); | |
1440 | + | |
1441 | +function parseBasePage(vuePageOptions, _ref6) | |
1442 | + | |
1443 | + | |
1444 | +{var isPage = _ref6.isPage,initRelation = _ref6.initRelation; | |
1445 | + var pageOptions = parseComponent(vuePageOptions); | |
1446 | + | |
1447 | + initHooks(pageOptions.methods, hooks$1, vuePageOptions); | |
1448 | + | |
1449 | + pageOptions.methods.onLoad = function (args) { | |
1450 | + this.$vm.$mp.query = args; // 兼容 mpvue | |
1451 | + this.$vm.__call_hook('onLoad', args); | |
1452 | + }; | |
1453 | + | |
1454 | + return pageOptions; | |
1455 | +} | |
1456 | + | |
1457 | +function parsePage(vuePageOptions) { | |
1458 | + return parseBasePage(vuePageOptions, { | |
1459 | + isPage: isPage, | |
1460 | + initRelation: initRelation }); | |
1461 | + | |
1462 | +} | |
1463 | + | |
1464 | +function createPage(vuePageOptions) { | |
1465 | + { | |
1466 | + return Component(parsePage(vuePageOptions)); | |
1467 | + } | |
1468 | +} | |
1469 | + | |
1470 | +function createComponent(vueOptions) { | |
1471 | + { | |
1472 | + return Component(parseComponent(vueOptions)); | |
1473 | + } | |
1474 | +} | |
1475 | + | |
1476 | +todos.forEach(function (todoApi) { | |
1477 | + protocols[todoApi] = false; | |
1478 | +}); | |
1479 | + | |
1480 | +canIUses.forEach(function (canIUseApi) { | |
1481 | + var apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name : | |
1482 | + canIUseApi; | |
1483 | + if (!wx.canIUse(apiName)) { | |
1484 | + protocols[canIUseApi] = false; | |
1485 | + } | |
1486 | +}); | |
1487 | + | |
1488 | +var uni = {}; | |
1489 | + | |
1490 | +if (typeof Proxy !== 'undefined' && "mp-weixin" !== 'app-plus') { | |
1491 | + uni = new Proxy({}, { | |
1492 | + get: function get(target, name) { | |
1493 | + if (target[name]) { | |
1494 | + return target[name]; | |
1495 | + } | |
1496 | + if (baseApi[name]) { | |
1497 | + return baseApi[name]; | |
1498 | + } | |
1499 | + if (api[name]) { | |
1500 | + return promisify(name, api[name]); | |
1501 | + } | |
1502 | + { | |
1503 | + if (extraApi[name]) { | |
1504 | + return promisify(name, extraApi[name]); | |
1505 | + } | |
1506 | + if (todoApis[name]) { | |
1507 | + return promisify(name, todoApis[name]); | |
1508 | + } | |
1509 | + } | |
1510 | + if (eventApi[name]) { | |
1511 | + return eventApi[name]; | |
1512 | + } | |
1513 | + if (!hasOwn(wx, name) && !hasOwn(protocols, name)) { | |
1514 | + return; | |
1515 | + } | |
1516 | + return promisify(name, wrapper(name, wx[name])); | |
1517 | + }, | |
1518 | + set: function set(target, name, value) { | |
1519 | + target[name] = value; | |
1520 | + return true; | |
1521 | + } }); | |
1522 | + | |
1523 | +} else { | |
1524 | + Object.keys(baseApi).forEach(function (name) { | |
1525 | + uni[name] = baseApi[name]; | |
1526 | + }); | |
1527 | + | |
1528 | + { | |
1529 | + Object.keys(todoApis).forEach(function (name) { | |
1530 | + uni[name] = promisify(name, todoApis[name]); | |
1531 | + }); | |
1532 | + Object.keys(extraApi).forEach(function (name) { | |
1533 | + uni[name] = promisify(name, todoApis[name]); | |
1534 | + }); | |
1535 | + } | |
1536 | + | |
1537 | + Object.keys(eventApi).forEach(function (name) { | |
1538 | + uni[name] = eventApi[name]; | |
1539 | + }); | |
1540 | + | |
1541 | + Object.keys(api).forEach(function (name) { | |
1542 | + uni[name] = promisify(name, api[name]); | |
1543 | + }); | |
1544 | + | |
1545 | + Object.keys(wx).forEach(function (name) { | |
1546 | + if (hasOwn(wx, name) || hasOwn(protocols, name)) { | |
1547 | + uni[name] = promisify(name, wrapper(name, wx[name])); | |
1548 | + } | |
1549 | + }); | |
1550 | +} | |
1551 | + | |
1552 | +wx.createApp = createApp; | |
1553 | +wx.createPage = createPage; | |
1554 | +wx.createComponent = createComponent; | |
1555 | + | |
1556 | +var uni$1 = uni;var _default = | |
1557 | + | |
1558 | +uni$1;exports.default = _default; | |
1559 | + | |
1560 | +/***/ }), | |
1561 | +/* 2 */ | |
1562 | +/*!******************************************************************************************!*\ | |
1563 | + !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js ***! | |
1564 | + \******************************************************************************************/ | |
1565 | +/*! exports provided: default */ | |
1566 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
1567 | + | |
1568 | +"use strict"; | |
1569 | +__webpack_require__.r(__webpack_exports__); | |
1570 | +/* WEBPACK VAR INJECTION */(function(global) {/*! | |
1571 | + * Vue.js v2.6.11 | |
1572 | + * (c) 2014-2020 Evan You | |
1573 | + * Released under the MIT License. | |
1574 | + */ | |
1575 | +/* */ | |
1576 | + | |
1577 | +var emptyObject = Object.freeze({}); | |
1578 | + | |
1579 | +// These helpers produce better VM code in JS engines due to their | |
1580 | +// explicitness and function inlining. | |
1581 | +function isUndef (v) { | |
1582 | + return v === undefined || v === null | |
1583 | +} | |
1584 | + | |
1585 | +function isDef (v) { | |
1586 | + return v !== undefined && v !== null | |
1587 | +} | |
1588 | + | |
1589 | +function isTrue (v) { | |
1590 | + return v === true | |
1591 | +} | |
1592 | + | |
1593 | +function isFalse (v) { | |
1594 | + return v === false | |
1595 | +} | |
1596 | + | |
1597 | +/** | |
1598 | + * Check if value is primitive. | |
1599 | + */ | |
1600 | +function isPrimitive (value) { | |
1601 | + return ( | |
1602 | + typeof value === 'string' || | |
1603 | + typeof value === 'number' || | |
1604 | + // $flow-disable-line | |
1605 | + typeof value === 'symbol' || | |
1606 | + typeof value === 'boolean' | |
1607 | + ) | |
1608 | +} | |
1609 | + | |
1610 | +/** | |
1611 | + * Quick object check - this is primarily used to tell | |
1612 | + * Objects from primitive values when we know the value | |
1613 | + * is a JSON-compliant type. | |
1614 | + */ | |
1615 | +function isObject (obj) { | |
1616 | + return obj !== null && typeof obj === 'object' | |
1617 | +} | |
1618 | + | |
1619 | +/** | |
1620 | + * Get the raw type string of a value, e.g., [object Object]. | |
1621 | + */ | |
1622 | +var _toString = Object.prototype.toString; | |
1623 | + | |
1624 | +function toRawType (value) { | |
1625 | + return _toString.call(value).slice(8, -1) | |
1626 | +} | |
1627 | + | |
1628 | +/** | |
1629 | + * Strict object type check. Only returns true | |
1630 | + * for plain JavaScript objects. | |
1631 | + */ | |
1632 | +function isPlainObject (obj) { | |
1633 | + return _toString.call(obj) === '[object Object]' | |
1634 | +} | |
1635 | + | |
1636 | +function isRegExp (v) { | |
1637 | + return _toString.call(v) === '[object RegExp]' | |
1638 | +} | |
1639 | + | |
1640 | +/** | |
1641 | + * Check if val is a valid array index. | |
1642 | + */ | |
1643 | +function isValidArrayIndex (val) { | |
1644 | + var n = parseFloat(String(val)); | |
1645 | + return n >= 0 && Math.floor(n) === n && isFinite(val) | |
1646 | +} | |
1647 | + | |
1648 | +function isPromise (val) { | |
1649 | + return ( | |
1650 | + isDef(val) && | |
1651 | + typeof val.then === 'function' && | |
1652 | + typeof val.catch === 'function' | |
1653 | + ) | |
1654 | +} | |
1655 | + | |
1656 | +/** | |
1657 | + * Convert a value to a string that is actually rendered. | |
1658 | + */ | |
1659 | +function toString (val) { | |
1660 | + return val == null | |
1661 | + ? '' | |
1662 | + : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString) | |
1663 | + ? JSON.stringify(val, null, 2) | |
1664 | + : String(val) | |
1665 | +} | |
1666 | + | |
1667 | +/** | |
1668 | + * Convert an input value to a number for persistence. | |
1669 | + * If the conversion fails, return original string. | |
1670 | + */ | |
1671 | +function toNumber (val) { | |
1672 | + var n = parseFloat(val); | |
1673 | + return isNaN(n) ? val : n | |
1674 | +} | |
1675 | + | |
1676 | +/** | |
1677 | + * Make a map and return a function for checking if a key | |
1678 | + * is in that map. | |
1679 | + */ | |
1680 | +function makeMap ( | |
1681 | + str, | |
1682 | + expectsLowerCase | |
1683 | +) { | |
1684 | + var map = Object.create(null); | |
1685 | + var list = str.split(','); | |
1686 | + for (var i = 0; i < list.length; i++) { | |
1687 | + map[list[i]] = true; | |
1688 | + } | |
1689 | + return expectsLowerCase | |
1690 | + ? function (val) { return map[val.toLowerCase()]; } | |
1691 | + : function (val) { return map[val]; } | |
1692 | +} | |
1693 | + | |
1694 | +/** | |
1695 | + * Check if a tag is a built-in tag. | |
1696 | + */ | |
1697 | +var isBuiltInTag = makeMap('slot,component', true); | |
1698 | + | |
1699 | +/** | |
1700 | + * Check if an attribute is a reserved attribute. | |
1701 | + */ | |
1702 | +var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is'); | |
1703 | + | |
1704 | +/** | |
1705 | + * Remove an item from an array. | |
1706 | + */ | |
1707 | +function remove (arr, item) { | |
1708 | + if (arr.length) { | |
1709 | + var index = arr.indexOf(item); | |
1710 | + if (index > -1) { | |
1711 | + return arr.splice(index, 1) | |
1712 | + } | |
1713 | + } | |
1714 | +} | |
1715 | + | |
1716 | +/** | |
1717 | + * Check whether an object has the property. | |
1718 | + */ | |
1719 | +var hasOwnProperty = Object.prototype.hasOwnProperty; | |
1720 | +function hasOwn (obj, key) { | |
1721 | + return hasOwnProperty.call(obj, key) | |
1722 | +} | |
1723 | + | |
1724 | +/** | |
1725 | + * Create a cached version of a pure function. | |
1726 | + */ | |
1727 | +function cached (fn) { | |
1728 | + var cache = Object.create(null); | |
1729 | + return (function cachedFn (str) { | |
1730 | + var hit = cache[str]; | |
1731 | + return hit || (cache[str] = fn(str)) | |
1732 | + }) | |
1733 | +} | |
1734 | + | |
1735 | +/** | |
1736 | + * Camelize a hyphen-delimited string. | |
1737 | + */ | |
1738 | +var camelizeRE = /-(\w)/g; | |
1739 | +var camelize = cached(function (str) { | |
1740 | + return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }) | |
1741 | +}); | |
1742 | + | |
1743 | +/** | |
1744 | + * Capitalize a string. | |
1745 | + */ | |
1746 | +var capitalize = cached(function (str) { | |
1747 | + return str.charAt(0).toUpperCase() + str.slice(1) | |
1748 | +}); | |
1749 | + | |
1750 | +/** | |
1751 | + * Hyphenate a camelCase string. | |
1752 | + */ | |
1753 | +var hyphenateRE = /\B([A-Z])/g; | |
1754 | +var hyphenate = cached(function (str) { | |
1755 | + return str.replace(hyphenateRE, '-$1').toLowerCase() | |
1756 | +}); | |
1757 | + | |
1758 | +/** | |
1759 | + * Simple bind polyfill for environments that do not support it, | |
1760 | + * e.g., PhantomJS 1.x. Technically, we don't need this anymore | |
1761 | + * since native bind is now performant enough in most browsers. | |
1762 | + * But removing it would mean breaking code that was able to run in | |
1763 | + * PhantomJS 1.x, so this must be kept for backward compatibility. | |
1764 | + */ | |
1765 | + | |
1766 | +/* istanbul ignore next */ | |
1767 | +function polyfillBind (fn, ctx) { | |
1768 | + function boundFn (a) { | |
1769 | + var l = arguments.length; | |
1770 | + return l | |
1771 | + ? l > 1 | |
1772 | + ? fn.apply(ctx, arguments) | |
1773 | + : fn.call(ctx, a) | |
1774 | + : fn.call(ctx) | |
1775 | + } | |
1776 | + | |
1777 | + boundFn._length = fn.length; | |
1778 | + return boundFn | |
1779 | +} | |
1780 | + | |
1781 | +function nativeBind (fn, ctx) { | |
1782 | + return fn.bind(ctx) | |
1783 | +} | |
1784 | + | |
1785 | +var bind = Function.prototype.bind | |
1786 | + ? nativeBind | |
1787 | + : polyfillBind; | |
1788 | + | |
1789 | +/** | |
1790 | + * Convert an Array-like object to a real Array. | |
1791 | + */ | |
1792 | +function toArray (list, start) { | |
1793 | + start = start || 0; | |
1794 | + var i = list.length - start; | |
1795 | + var ret = new Array(i); | |
1796 | + while (i--) { | |
1797 | + ret[i] = list[i + start]; | |
1798 | + } | |
1799 | + return ret | |
1800 | +} | |
1801 | + | |
1802 | +/** | |
1803 | + * Mix properties into target object. | |
1804 | + */ | |
1805 | +function extend (to, _from) { | |
1806 | + for (var key in _from) { | |
1807 | + to[key] = _from[key]; | |
1808 | + } | |
1809 | + return to | |
1810 | +} | |
1811 | + | |
1812 | +/** | |
1813 | + * Merge an Array of Objects into a single Object. | |
1814 | + */ | |
1815 | +function toObject (arr) { | |
1816 | + var res = {}; | |
1817 | + for (var i = 0; i < arr.length; i++) { | |
1818 | + if (arr[i]) { | |
1819 | + extend(res, arr[i]); | |
1820 | + } | |
1821 | + } | |
1822 | + return res | |
1823 | +} | |
1824 | + | |
1825 | +/* eslint-disable no-unused-vars */ | |
1826 | + | |
1827 | +/** | |
1828 | + * Perform no operation. | |
1829 | + * Stubbing args to make Flow happy without leaving useless transpiled code | |
1830 | + * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/). | |
1831 | + */ | |
1832 | +function noop (a, b, c) {} | |
1833 | + | |
1834 | +/** | |
1835 | + * Always return false. | |
1836 | + */ | |
1837 | +var no = function (a, b, c) { return false; }; | |
1838 | + | |
1839 | +/* eslint-enable no-unused-vars */ | |
1840 | + | |
1841 | +/** | |
1842 | + * Return the same value. | |
1843 | + */ | |
1844 | +var identity = function (_) { return _; }; | |
1845 | + | |
1846 | +/** | |
1847 | + * Check if two values are loosely equal - that is, | |
1848 | + * if they are plain objects, do they have the same shape? | |
1849 | + */ | |
1850 | +function looseEqual (a, b) { | |
1851 | + if (a === b) { return true } | |
1852 | + var isObjectA = isObject(a); | |
1853 | + var isObjectB = isObject(b); | |
1854 | + if (isObjectA && isObjectB) { | |
1855 | + try { | |
1856 | + var isArrayA = Array.isArray(a); | |
1857 | + var isArrayB = Array.isArray(b); | |
1858 | + if (isArrayA && isArrayB) { | |
1859 | + return a.length === b.length && a.every(function (e, i) { | |
1860 | + return looseEqual(e, b[i]) | |
1861 | + }) | |
1862 | + } else if (a instanceof Date && b instanceof Date) { | |
1863 | + return a.getTime() === b.getTime() | |
1864 | + } else if (!isArrayA && !isArrayB) { | |
1865 | + var keysA = Object.keys(a); | |
1866 | + var keysB = Object.keys(b); | |
1867 | + return keysA.length === keysB.length && keysA.every(function (key) { | |
1868 | + return looseEqual(a[key], b[key]) | |
1869 | + }) | |
1870 | + } else { | |
1871 | + /* istanbul ignore next */ | |
1872 | + return false | |
1873 | + } | |
1874 | + } catch (e) { | |
1875 | + /* istanbul ignore next */ | |
1876 | + return false | |
1877 | + } | |
1878 | + } else if (!isObjectA && !isObjectB) { | |
1879 | + return String(a) === String(b) | |
1880 | + } else { | |
1881 | + return false | |
1882 | + } | |
1883 | +} | |
1884 | + | |
1885 | +/** | |
1886 | + * Return the first index at which a loosely equal value can be | |
1887 | + * found in the array (if value is a plain object, the array must | |
1888 | + * contain an object of the same shape), or -1 if it is not present. | |
1889 | + */ | |
1890 | +function looseIndexOf (arr, val) { | |
1891 | + for (var i = 0; i < arr.length; i++) { | |
1892 | + if (looseEqual(arr[i], val)) { return i } | |
1893 | + } | |
1894 | + return -1 | |
1895 | +} | |
1896 | + | |
1897 | +/** | |
1898 | + * Ensure a function is called only once. | |
1899 | + */ | |
1900 | +function once (fn) { | |
1901 | + var called = false; | |
1902 | + return function () { | |
1903 | + if (!called) { | |
1904 | + called = true; | |
1905 | + fn.apply(this, arguments); | |
1906 | + } | |
1907 | + } | |
1908 | +} | |
1909 | + | |
1910 | +var ASSET_TYPES = [ | |
1911 | + 'component', | |
1912 | + 'directive', | |
1913 | + 'filter' | |
1914 | +]; | |
1915 | + | |
1916 | +var LIFECYCLE_HOOKS = [ | |
1917 | + 'beforeCreate', | |
1918 | + 'created', | |
1919 | + 'beforeMount', | |
1920 | + 'mounted', | |
1921 | + 'beforeUpdate', | |
1922 | + 'updated', | |
1923 | + 'beforeDestroy', | |
1924 | + 'destroyed', | |
1925 | + 'activated', | |
1926 | + 'deactivated', | |
1927 | + 'errorCaptured', | |
1928 | + 'serverPrefetch' | |
1929 | +]; | |
1930 | + | |
1931 | +/* */ | |
1932 | + | |
1933 | + | |
1934 | + | |
1935 | +var config = ({ | |
1936 | + /** | |
1937 | + * Option merge strategies (used in core/util/options) | |
1938 | + */ | |
1939 | + // $flow-disable-line | |
1940 | + optionMergeStrategies: Object.create(null), | |
1941 | + | |
1942 | + /** | |
1943 | + * Whether to suppress warnings. | |
1944 | + */ | |
1945 | + silent: false, | |
1946 | + | |
1947 | + /** | |
1948 | + * Show production mode tip message on boot? | |
1949 | + */ | |
1950 | + productionTip: "development" !== 'production', | |
1951 | + | |
1952 | + /** | |
1953 | + * Whether to enable devtools | |
1954 | + */ | |
1955 | + devtools: "development" !== 'production', | |
1956 | + | |
1957 | + /** | |
1958 | + * Whether to record perf | |
1959 | + */ | |
1960 | + performance: false, | |
1961 | + | |
1962 | + /** | |
1963 | + * Error handler for watcher errors | |
1964 | + */ | |
1965 | + errorHandler: null, | |
1966 | + | |
1967 | + /** | |
1968 | + * Warn handler for watcher warns | |
1969 | + */ | |
1970 | + warnHandler: null, | |
1971 | + | |
1972 | + /** | |
1973 | + * Ignore certain custom elements | |
1974 | + */ | |
1975 | + ignoredElements: [], | |
1976 | + | |
1977 | + /** | |
1978 | + * Custom user key aliases for v-on | |
1979 | + */ | |
1980 | + // $flow-disable-line | |
1981 | + keyCodes: Object.create(null), | |
1982 | + | |
1983 | + /** | |
1984 | + * Check if a tag is reserved so that it cannot be registered as a | |
1985 | + * component. This is platform-dependent and may be overwritten. | |
1986 | + */ | |
1987 | + isReservedTag: no, | |
1988 | + | |
1989 | + /** | |
1990 | + * Check if an attribute is reserved so that it cannot be used as a component | |
1991 | + * prop. This is platform-dependent and may be overwritten. | |
1992 | + */ | |
1993 | + isReservedAttr: no, | |
1994 | + | |
1995 | + /** | |
1996 | + * Check if a tag is an unknown element. | |
1997 | + * Platform-dependent. | |
1998 | + */ | |
1999 | + isUnknownElement: no, | |
2000 | + | |
2001 | + /** | |
2002 | + * Get the namespace of an element | |
2003 | + */ | |
2004 | + getTagNamespace: noop, | |
2005 | + | |
2006 | + /** | |
2007 | + * Parse the real tag name for the specific platform. | |
2008 | + */ | |
2009 | + parsePlatformTagName: identity, | |
2010 | + | |
2011 | + /** | |
2012 | + * Check if an attribute must be bound using property, e.g. value | |
2013 | + * Platform-dependent. | |
2014 | + */ | |
2015 | + mustUseProp: no, | |
2016 | + | |
2017 | + /** | |
2018 | + * Perform updates asynchronously. Intended to be used by Vue Test Utils | |
2019 | + * This will significantly reduce performance if set to false. | |
2020 | + */ | |
2021 | + async: true, | |
2022 | + | |
2023 | + /** | |
2024 | + * Exposed for legacy reasons | |
2025 | + */ | |
2026 | + _lifecycleHooks: LIFECYCLE_HOOKS | |
2027 | +}); | |
2028 | + | |
2029 | +/* */ | |
2030 | + | |
2031 | +/** | |
2032 | + * unicode letters used for parsing html tags, component names and property paths. | |
2033 | + * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname | |
2034 | + * skipping \u10000-\uEFFFF due to it freezing up PhantomJS | |
2035 | + */ | |
2036 | +var 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/; | |
2037 | + | |
2038 | +/** | |
2039 | + * Check if a string starts with $ or _ | |
2040 | + */ | |
2041 | +function isReserved (str) { | |
2042 | + var c = (str + '').charCodeAt(0); | |
2043 | + return c === 0x24 || c === 0x5F | |
2044 | +} | |
2045 | + | |
2046 | +/** | |
2047 | + * Define a property. | |
2048 | + */ | |
2049 | +function def (obj, key, val, enumerable) { | |
2050 | + Object.defineProperty(obj, key, { | |
2051 | + value: val, | |
2052 | + enumerable: !!enumerable, | |
2053 | + writable: true, | |
2054 | + configurable: true | |
2055 | + }); | |
2056 | +} | |
2057 | + | |
2058 | +/** | |
2059 | + * Parse simple path. | |
2060 | + */ | |
2061 | +var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]")); | |
2062 | +function parsePath (path) { | |
2063 | + if (bailRE.test(path)) { | |
2064 | + return | |
2065 | + } | |
2066 | + var segments = path.split('.'); | |
2067 | + return function (obj) { | |
2068 | + for (var i = 0; i < segments.length; i++) { | |
2069 | + if (!obj) { return } | |
2070 | + obj = obj[segments[i]]; | |
2071 | + } | |
2072 | + return obj | |
2073 | + } | |
2074 | +} | |
2075 | + | |
2076 | +/* */ | |
2077 | + | |
2078 | +// can we use __proto__? | |
2079 | +var hasProto = '__proto__' in {}; | |
2080 | + | |
2081 | +// Browser environment sniffing | |
2082 | +var inBrowser = typeof window !== 'undefined'; | |
2083 | +var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform; | |
2084 | +var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase(); | |
2085 | +var UA = inBrowser && window.navigator.userAgent.toLowerCase(); | |
2086 | +var isIE = UA && /msie|trident/.test(UA); | |
2087 | +var isIE9 = UA && UA.indexOf('msie 9.0') > 0; | |
2088 | +var isEdge = UA && UA.indexOf('edge/') > 0; | |
2089 | +var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android'); | |
2090 | +var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios'); | |
2091 | +var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge; | |
2092 | +var isPhantomJS = UA && /phantomjs/.test(UA); | |
2093 | +var isFF = UA && UA.match(/firefox\/(\d+)/); | |
2094 | + | |
2095 | +// Firefox has a "watch" function on Object.prototype... | |
2096 | +var nativeWatch = ({}).watch; | |
2097 | +if (inBrowser) { | |
2098 | + try { | |
2099 | + var opts = {}; | |
2100 | + Object.defineProperty(opts, 'passive', ({ | |
2101 | + get: function get () { | |
2102 | + } | |
2103 | + })); // https://github.com/facebook/flow/issues/285 | |
2104 | + window.addEventListener('test-passive', null, opts); | |
2105 | + } catch (e) {} | |
2106 | +} | |
2107 | + | |
2108 | +// this needs to be lazy-evaled because vue may be required before | |
2109 | +// vue-server-renderer can set VUE_ENV | |
2110 | +var _isServer; | |
2111 | +var isServerRendering = function () { | |
2112 | + if (_isServer === undefined) { | |
2113 | + /* istanbul ignore if */ | |
2114 | + if (!inBrowser && !inWeex && typeof global !== 'undefined') { | |
2115 | + // detect presence of vue-server-renderer and avoid | |
2116 | + // Webpack shimming the process | |
2117 | + _isServer = global['process'] && global['process'].env.VUE_ENV === 'server'; | |
2118 | + } else { | |
2119 | + _isServer = false; | |
2120 | + } | |
2121 | + } | |
2122 | + return _isServer | |
2123 | +}; | |
2124 | + | |
2125 | +// detect devtools | |
2126 | +var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; | |
2127 | + | |
2128 | +/* istanbul ignore next */ | |
2129 | +function isNative (Ctor) { | |
2130 | + return typeof Ctor === 'function' && /native code/.test(Ctor.toString()) | |
2131 | +} | |
2132 | + | |
2133 | +var hasSymbol = | |
2134 | + typeof Symbol !== 'undefined' && isNative(Symbol) && | |
2135 | + typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys); | |
2136 | + | |
2137 | +var _Set; | |
2138 | +/* istanbul ignore if */ // $flow-disable-line | |
2139 | +if (typeof Set !== 'undefined' && isNative(Set)) { | |
2140 | + // use native Set when available. | |
2141 | + _Set = Set; | |
2142 | +} else { | |
2143 | + // a non-standard Set polyfill that only works with primitive keys. | |
2144 | + _Set = /*@__PURE__*/(function () { | |
2145 | + function Set () { | |
2146 | + this.set = Object.create(null); | |
2147 | + } | |
2148 | + Set.prototype.has = function has (key) { | |
2149 | + return this.set[key] === true | |
2150 | + }; | |
2151 | + Set.prototype.add = function add (key) { | |
2152 | + this.set[key] = true; | |
2153 | + }; | |
2154 | + Set.prototype.clear = function clear () { | |
2155 | + this.set = Object.create(null); | |
2156 | + }; | |
2157 | + | |
2158 | + return Set; | |
2159 | + }()); | |
2160 | +} | |
2161 | + | |
2162 | +/* */ | |
2163 | + | |
2164 | +var warn = noop; | |
2165 | +var tip = noop; | |
2166 | +var generateComponentTrace = (noop); // work around flow check | |
2167 | +var formatComponentName = (noop); | |
2168 | + | |
2169 | +if (true) { | |
2170 | + var hasConsole = typeof console !== 'undefined'; | |
2171 | + var classifyRE = /(?:^|[-_])(\w)/g; | |
2172 | + var classify = function (str) { return str | |
2173 | + .replace(classifyRE, function (c) { return c.toUpperCase(); }) | |
2174 | + .replace(/[-_]/g, ''); }; | |
2175 | + | |
2176 | + warn = function (msg, vm) { | |
2177 | + var trace = vm ? generateComponentTrace(vm) : ''; | |
2178 | + | |
2179 | + if (config.warnHandler) { | |
2180 | + config.warnHandler.call(null, msg, vm, trace); | |
2181 | + } else if (hasConsole && (!config.silent)) { | |
2182 | + console.error(("[Vue warn]: " + msg + trace)); | |
2183 | + } | |
2184 | + }; | |
2185 | + | |
2186 | + tip = function (msg, vm) { | |
2187 | + if (hasConsole && (!config.silent)) { | |
2188 | + console.warn("[Vue tip]: " + msg + ( | |
2189 | + vm ? generateComponentTrace(vm) : '' | |
2190 | + )); | |
2191 | + } | |
2192 | + }; | |
2193 | + | |
2194 | + formatComponentName = function (vm, includeFile) { | |
2195 | + { | |
2196 | + if(vm.$scope && vm.$scope.is){ | |
2197 | + return vm.$scope.is | |
2198 | + } | |
2199 | + } | |
2200 | + if (vm.$root === vm) { | |
2201 | + return '<Root>' | |
2202 | + } | |
2203 | + var options = typeof vm === 'function' && vm.cid != null | |
2204 | + ? vm.options | |
2205 | + : vm._isVue | |
2206 | + ? vm.$options || vm.constructor.options | |
2207 | + : vm; | |
2208 | + var name = options.name || options._componentTag; | |
2209 | + var file = options.__file; | |
2210 | + if (!name && file) { | |
2211 | + var match = file.match(/([^/\\]+)\.vue$/); | |
2212 | + name = match && match[1]; | |
2213 | + } | |
2214 | + | |
2215 | + return ( | |
2216 | + (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") + | |
2217 | + (file && includeFile !== false ? (" at " + file) : '') | |
2218 | + ) | |
2219 | + }; | |
2220 | + | |
2221 | + var repeat = function (str, n) { | |
2222 | + var res = ''; | |
2223 | + while (n) { | |
2224 | + if (n % 2 === 1) { res += str; } | |
2225 | + if (n > 1) { str += str; } | |
2226 | + n >>= 1; | |
2227 | + } | |
2228 | + return res | |
2229 | + }; | |
2230 | + | |
2231 | + generateComponentTrace = function (vm) { | |
2232 | + if (vm._isVue && vm.$parent) { | |
2233 | + var tree = []; | |
2234 | + var currentRecursiveSequence = 0; | |
2235 | + while (vm) { | |
2236 | + if (tree.length > 0) { | |
2237 | + var last = tree[tree.length - 1]; | |
2238 | + if (last.constructor === vm.constructor) { | |
2239 | + currentRecursiveSequence++; | |
2240 | + vm = vm.$parent; | |
2241 | + continue | |
2242 | + } else if (currentRecursiveSequence > 0) { | |
2243 | + tree[tree.length - 1] = [last, currentRecursiveSequence]; | |
2244 | + currentRecursiveSequence = 0; | |
2245 | + } | |
2246 | + } | |
2247 | + tree.push(vm); | |
2248 | + vm = vm.$parent; | |
2249 | + } | |
2250 | + return '\n\nfound in\n\n' + tree | |
2251 | + .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm) | |
2252 | + ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)") | |
2253 | + : formatComponentName(vm))); }) | |
2254 | + .join('\n') | |
2255 | + } else { | |
2256 | + return ("\n\n(found in " + (formatComponentName(vm)) + ")") | |
2257 | + } | |
2258 | + }; | |
2259 | +} | |
2260 | + | |
2261 | +/* */ | |
2262 | + | |
2263 | +var uid = 0; | |
2264 | + | |
2265 | +/** | |
2266 | + * A dep is an observable that can have multiple | |
2267 | + * directives subscribing to it. | |
2268 | + */ | |
2269 | +var Dep = function Dep () { | |
2270 | + // fixed by xxxxxx (nvue vuex) | |
2271 | + /* eslint-disable no-undef */ | |
2272 | + if(typeof SharedObject !== 'undefined'){ | |
2273 | + this.id = SharedObject.uid++; | |
2274 | + } else { | |
2275 | + this.id = uid++; | |
2276 | + } | |
2277 | + this.subs = []; | |
2278 | +}; | |
2279 | + | |
2280 | +Dep.prototype.addSub = function addSub (sub) { | |
2281 | + this.subs.push(sub); | |
2282 | +}; | |
2283 | + | |
2284 | +Dep.prototype.removeSub = function removeSub (sub) { | |
2285 | + remove(this.subs, sub); | |
2286 | +}; | |
2287 | + | |
2288 | +Dep.prototype.depend = function depend () { | |
2289 | + if (Dep.SharedObject.target) { | |
2290 | + Dep.SharedObject.target.addDep(this); | |
2291 | + } | |
2292 | +}; | |
2293 | + | |
2294 | +Dep.prototype.notify = function notify () { | |
2295 | + // stabilize the subscriber list first | |
2296 | + var subs = this.subs.slice(); | |
2297 | + if ( true && !config.async) { | |
2298 | + // subs aren't sorted in scheduler if not running async | |
2299 | + // we need to sort them now to make sure they fire in correct | |
2300 | + // order | |
2301 | + subs.sort(function (a, b) { return a.id - b.id; }); | |
2302 | + } | |
2303 | + for (var i = 0, l = subs.length; i < l; i++) { | |
2304 | + subs[i].update(); | |
2305 | + } | |
2306 | +}; | |
2307 | + | |
2308 | +// The current target watcher being evaluated. | |
2309 | +// This is globally unique because only one watcher | |
2310 | +// can be evaluated at a time. | |
2311 | +// fixed by xxxxxx (nvue shared vuex) | |
2312 | +/* eslint-disable no-undef */ | |
2313 | +Dep.SharedObject = typeof SharedObject !== 'undefined' ? SharedObject : {}; | |
2314 | +Dep.SharedObject.target = null; | |
2315 | +Dep.SharedObject.targetStack = []; | |
2316 | + | |
2317 | +function pushTarget (target) { | |
2318 | + Dep.SharedObject.targetStack.push(target); | |
2319 | + Dep.SharedObject.target = target; | |
2320 | +} | |
2321 | + | |
2322 | +function popTarget () { | |
2323 | + Dep.SharedObject.targetStack.pop(); | |
2324 | + Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1]; | |
2325 | +} | |
2326 | + | |
2327 | +/* */ | |
2328 | + | |
2329 | +var VNode = function VNode ( | |
2330 | + tag, | |
2331 | + data, | |
2332 | + children, | |
2333 | + text, | |
2334 | + elm, | |
2335 | + context, | |
2336 | + componentOptions, | |
2337 | + asyncFactory | |
2338 | +) { | |
2339 | + this.tag = tag; | |
2340 | + this.data = data; | |
2341 | + this.children = children; | |
2342 | + this.text = text; | |
2343 | + this.elm = elm; | |
2344 | + this.ns = undefined; | |
2345 | + this.context = context; | |
2346 | + this.fnContext = undefined; | |
2347 | + this.fnOptions = undefined; | |
2348 | + this.fnScopeId = undefined; | |
2349 | + this.key = data && data.key; | |
2350 | + this.componentOptions = componentOptions; | |
2351 | + this.componentInstance = undefined; | |
2352 | + this.parent = undefined; | |
2353 | + this.raw = false; | |
2354 | + this.isStatic = false; | |
2355 | + this.isRootInsert = true; | |
2356 | + this.isComment = false; | |
2357 | + this.isCloned = false; | |
2358 | + this.isOnce = false; | |
2359 | + this.asyncFactory = asyncFactory; | |
2360 | + this.asyncMeta = undefined; | |
2361 | + this.isAsyncPlaceholder = false; | |
2362 | +}; | |
2363 | + | |
2364 | +var prototypeAccessors = { child: { configurable: true } }; | |
2365 | + | |
2366 | +// DEPRECATED: alias for componentInstance for backwards compat. | |
2367 | +/* istanbul ignore next */ | |
2368 | +prototypeAccessors.child.get = function () { | |
2369 | + return this.componentInstance | |
2370 | +}; | |
2371 | + | |
2372 | +Object.defineProperties( VNode.prototype, prototypeAccessors ); | |
2373 | + | |
2374 | +var createEmptyVNode = function (text) { | |
2375 | + if ( text === void 0 ) text = ''; | |
2376 | + | |
2377 | + var node = new VNode(); | |
2378 | + node.text = text; | |
2379 | + node.isComment = true; | |
2380 | + return node | |
2381 | +}; | |
2382 | + | |
2383 | +function createTextVNode (val) { | |
2384 | + return new VNode(undefined, undefined, undefined, String(val)) | |
2385 | +} | |
2386 | + | |
2387 | +// optimized shallow clone | |
2388 | +// used for static nodes and slot nodes because they may be reused across | |
2389 | +// multiple renders, cloning them avoids errors when DOM manipulations rely | |
2390 | +// on their elm reference. | |
2391 | +function cloneVNode (vnode) { | |
2392 | + var cloned = new VNode( | |
2393 | + vnode.tag, | |
2394 | + vnode.data, | |
2395 | + // #7975 | |
2396 | + // clone children array to avoid mutating original in case of cloning | |
2397 | + // a child. | |
2398 | + vnode.children && vnode.children.slice(), | |
2399 | + vnode.text, | |
2400 | + vnode.elm, | |
2401 | + vnode.context, | |
2402 | + vnode.componentOptions, | |
2403 | + vnode.asyncFactory | |
2404 | + ); | |
2405 | + cloned.ns = vnode.ns; | |
2406 | + cloned.isStatic = vnode.isStatic; | |
2407 | + cloned.key = vnode.key; | |
2408 | + cloned.isComment = vnode.isComment; | |
2409 | + cloned.fnContext = vnode.fnContext; | |
2410 | + cloned.fnOptions = vnode.fnOptions; | |
2411 | + cloned.fnScopeId = vnode.fnScopeId; | |
2412 | + cloned.asyncMeta = vnode.asyncMeta; | |
2413 | + cloned.isCloned = true; | |
2414 | + return cloned | |
2415 | +} | |
2416 | + | |
2417 | +/* | |
2418 | + * not type checking this file because flow doesn't play well with | |
2419 | + * dynamically accessing methods on Array prototype | |
2420 | + */ | |
2421 | + | |
2422 | +var arrayProto = Array.prototype; | |
2423 | +var arrayMethods = Object.create(arrayProto); | |
2424 | + | |
2425 | +var methodsToPatch = [ | |
2426 | + 'push', | |
2427 | + 'pop', | |
2428 | + 'shift', | |
2429 | + 'unshift', | |
2430 | + 'splice', | |
2431 | + 'sort', | |
2432 | + 'reverse' | |
2433 | +]; | |
2434 | + | |
2435 | +/** | |
2436 | + * Intercept mutating methods and emit events | |
2437 | + */ | |
2438 | +methodsToPatch.forEach(function (method) { | |
2439 | + // cache original method | |
2440 | + var original = arrayProto[method]; | |
2441 | + def(arrayMethods, method, function mutator () { | |
2442 | + var args = [], len = arguments.length; | |
2443 | + while ( len-- ) args[ len ] = arguments[ len ]; | |
2444 | + | |
2445 | + var result = original.apply(this, args); | |
2446 | + var ob = this.__ob__; | |
2447 | + var inserted; | |
2448 | + switch (method) { | |
2449 | + case 'push': | |
2450 | + case 'unshift': | |
2451 | + inserted = args; | |
2452 | + break | |
2453 | + case 'splice': | |
2454 | + inserted = args.slice(2); | |
2455 | + break | |
2456 | + } | |
2457 | + if (inserted) { ob.observeArray(inserted); } | |
2458 | + // notify change | |
2459 | + ob.dep.notify(); | |
2460 | + return result | |
2461 | + }); | |
2462 | +}); | |
2463 | + | |
2464 | +/* */ | |
2465 | + | |
2466 | +var arrayKeys = Object.getOwnPropertyNames(arrayMethods); | |
2467 | + | |
2468 | +/** | |
2469 | + * In some cases we may want to disable observation inside a component's | |
2470 | + * update computation. | |
2471 | + */ | |
2472 | +var shouldObserve = true; | |
2473 | + | |
2474 | +function toggleObserving (value) { | |
2475 | + shouldObserve = value; | |
2476 | +} | |
2477 | + | |
2478 | +/** | |
2479 | + * Observer class that is attached to each observed | |
2480 | + * object. Once attached, the observer converts the target | |
2481 | + * object's property keys into getter/setters that | |
2482 | + * collect dependencies and dispatch updates. | |
2483 | + */ | |
2484 | +var Observer = function Observer (value) { | |
2485 | + this.value = value; | |
2486 | + this.dep = new Dep(); | |
2487 | + this.vmCount = 0; | |
2488 | + def(value, '__ob__', this); | |
2489 | + if (Array.isArray(value)) { | |
2490 | + if (hasProto) { | |
2491 | + {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑 | |
2492 | + if(value.push !== value.__proto__.push){ | |
2493 | + copyAugment(value, arrayMethods, arrayKeys); | |
2494 | + } else { | |
2495 | + protoAugment(value, arrayMethods); | |
2496 | + } | |
2497 | + } | |
2498 | + } else { | |
2499 | + copyAugment(value, arrayMethods, arrayKeys); | |
2500 | + } | |
2501 | + this.observeArray(value); | |
2502 | + } else { | |
2503 | + this.walk(value); | |
2504 | + } | |
2505 | +}; | |
2506 | + | |
2507 | +/** | |
2508 | + * Walk through all properties and convert them into | |
2509 | + * getter/setters. This method should only be called when | |
2510 | + * value type is Object. | |
2511 | + */ | |
2512 | +Observer.prototype.walk = function walk (obj) { | |
2513 | + var keys = Object.keys(obj); | |
2514 | + for (var i = 0; i < keys.length; i++) { | |
2515 | + defineReactive$$1(obj, keys[i]); | |
2516 | + } | |
2517 | +}; | |
2518 | + | |
2519 | +/** | |
2520 | + * Observe a list of Array items. | |
2521 | + */ | |
2522 | +Observer.prototype.observeArray = function observeArray (items) { | |
2523 | + for (var i = 0, l = items.length; i < l; i++) { | |
2524 | + observe(items[i]); | |
2525 | + } | |
2526 | +}; | |
2527 | + | |
2528 | +// helpers | |
2529 | + | |
2530 | +/** | |
2531 | + * Augment a target Object or Array by intercepting | |
2532 | + * the prototype chain using __proto__ | |
2533 | + */ | |
2534 | +function protoAugment (target, src) { | |
2535 | + /* eslint-disable no-proto */ | |
2536 | + target.__proto__ = src; | |
2537 | + /* eslint-enable no-proto */ | |
2538 | +} | |
2539 | + | |
2540 | +/** | |
2541 | + * Augment a target Object or Array by defining | |
2542 | + * hidden properties. | |
2543 | + */ | |
2544 | +/* istanbul ignore next */ | |
2545 | +function copyAugment (target, src, keys) { | |
2546 | + for (var i = 0, l = keys.length; i < l; i++) { | |
2547 | + var key = keys[i]; | |
2548 | + def(target, key, src[key]); | |
2549 | + } | |
2550 | +} | |
2551 | + | |
2552 | +/** | |
2553 | + * Attempt to create an observer instance for a value, | |
2554 | + * returns the new observer if successfully observed, | |
2555 | + * or the existing observer if the value already has one. | |
2556 | + */ | |
2557 | +function observe (value, asRootData) { | |
2558 | + if (!isObject(value) || value instanceof VNode) { | |
2559 | + return | |
2560 | + } | |
2561 | + var ob; | |
2562 | + if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) { | |
2563 | + ob = value.__ob__; | |
2564 | + } else if ( | |
2565 | + shouldObserve && | |
2566 | + !isServerRendering() && | |
2567 | + (Array.isArray(value) || isPlainObject(value)) && | |
2568 | + Object.isExtensible(value) && | |
2569 | + !value._isVue | |
2570 | + ) { | |
2571 | + ob = new Observer(value); | |
2572 | + } | |
2573 | + if (asRootData && ob) { | |
2574 | + ob.vmCount++; | |
2575 | + } | |
2576 | + return ob | |
2577 | +} | |
2578 | + | |
2579 | +/** | |
2580 | + * Define a reactive property on an Object. | |
2581 | + */ | |
2582 | +function defineReactive$$1 ( | |
2583 | + obj, | |
2584 | + key, | |
2585 | + val, | |
2586 | + customSetter, | |
2587 | + shallow | |
2588 | +) { | |
2589 | + var dep = new Dep(); | |
2590 | + | |
2591 | + var property = Object.getOwnPropertyDescriptor(obj, key); | |
2592 | + if (property && property.configurable === false) { | |
2593 | + return | |
2594 | + } | |
2595 | + | |
2596 | + // cater for pre-defined getter/setters | |
2597 | + var getter = property && property.get; | |
2598 | + var setter = property && property.set; | |
2599 | + if ((!getter || setter) && arguments.length === 2) { | |
2600 | + val = obj[key]; | |
2601 | + } | |
2602 | + | |
2603 | + var childOb = !shallow && observe(val); | |
2604 | + Object.defineProperty(obj, key, { | |
2605 | + enumerable: true, | |
2606 | + configurable: true, | |
2607 | + get: function reactiveGetter () { | |
2608 | + var value = getter ? getter.call(obj) : val; | |
2609 | + if (Dep.SharedObject.target) { // fixed by xxxxxx | |
2610 | + dep.depend(); | |
2611 | + if (childOb) { | |
2612 | + childOb.dep.depend(); | |
2613 | + if (Array.isArray(value)) { | |
2614 | + dependArray(value); | |
2615 | + } | |
2616 | + } | |
2617 | + } | |
2618 | + return value | |
2619 | + }, | |
2620 | + set: function reactiveSetter (newVal) { | |
2621 | + var value = getter ? getter.call(obj) : val; | |
2622 | + /* eslint-disable no-self-compare */ | |
2623 | + if (newVal === value || (newVal !== newVal && value !== value)) { | |
2624 | + return | |
2625 | + } | |
2626 | + /* eslint-enable no-self-compare */ | |
2627 | + if ( true && customSetter) { | |
2628 | + customSetter(); | |
2629 | + } | |
2630 | + // #7981: for accessor properties without setter | |
2631 | + if (getter && !setter) { return } | |
2632 | + if (setter) { | |
2633 | + setter.call(obj, newVal); | |
2634 | + } else { | |
2635 | + val = newVal; | |
2636 | + } | |
2637 | + childOb = !shallow && observe(newVal); | |
2638 | + dep.notify(); | |
2639 | + } | |
2640 | + }); | |
2641 | +} | |
2642 | + | |
2643 | +/** | |
2644 | + * Set a property on an object. Adds the new property and | |
2645 | + * triggers change notification if the property doesn't | |
2646 | + * already exist. | |
2647 | + */ | |
2648 | +function set (target, key, val) { | |
2649 | + if ( true && | |
2650 | + (isUndef(target) || isPrimitive(target)) | |
2651 | + ) { | |
2652 | + warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target)))); | |
2653 | + } | |
2654 | + if (Array.isArray(target) && isValidArrayIndex(key)) { | |
2655 | + target.length = Math.max(target.length, key); | |
2656 | + target.splice(key, 1, val); | |
2657 | + return val | |
2658 | + } | |
2659 | + if (key in target && !(key in Object.prototype)) { | |
2660 | + target[key] = val; | |
2661 | + return val | |
2662 | + } | |
2663 | + var ob = (target).__ob__; | |
2664 | + if (target._isVue || (ob && ob.vmCount)) { | |
2665 | + true && warn( | |
2666 | + 'Avoid adding reactive properties to a Vue instance or its root $data ' + | |
2667 | + 'at runtime - declare it upfront in the data option.' | |
2668 | + ); | |
2669 | + return val | |
2670 | + } | |
2671 | + if (!ob) { | |
2672 | + target[key] = val; | |
2673 | + return val | |
2674 | + } | |
2675 | + defineReactive$$1(ob.value, key, val); | |
2676 | + ob.dep.notify(); | |
2677 | + return val | |
2678 | +} | |
2679 | + | |
2680 | +/** | |
2681 | + * Delete a property and trigger change if necessary. | |
2682 | + */ | |
2683 | +function del (target, key) { | |
2684 | + if ( true && | |
2685 | + (isUndef(target) || isPrimitive(target)) | |
2686 | + ) { | |
2687 | + warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target)))); | |
2688 | + } | |
2689 | + if (Array.isArray(target) && isValidArrayIndex(key)) { | |
2690 | + target.splice(key, 1); | |
2691 | + return | |
2692 | + } | |
2693 | + var ob = (target).__ob__; | |
2694 | + if (target._isVue || (ob && ob.vmCount)) { | |
2695 | + true && warn( | |
2696 | + 'Avoid deleting properties on a Vue instance or its root $data ' + | |
2697 | + '- just set it to null.' | |
2698 | + ); | |
2699 | + return | |
2700 | + } | |
2701 | + if (!hasOwn(target, key)) { | |
2702 | + return | |
2703 | + } | |
2704 | + delete target[key]; | |
2705 | + if (!ob) { | |
2706 | + return | |
2707 | + } | |
2708 | + ob.dep.notify(); | |
2709 | +} | |
2710 | + | |
2711 | +/** | |
2712 | + * Collect dependencies on array elements when the array is touched, since | |
2713 | + * we cannot intercept array element access like property getters. | |
2714 | + */ | |
2715 | +function dependArray (value) { | |
2716 | + for (var e = (void 0), i = 0, l = value.length; i < l; i++) { | |
2717 | + e = value[i]; | |
2718 | + e && e.__ob__ && e.__ob__.dep.depend(); | |
2719 | + if (Array.isArray(e)) { | |
2720 | + dependArray(e); | |
2721 | + } | |
2722 | + } | |
2723 | +} | |
2724 | + | |
2725 | +/* */ | |
2726 | + | |
2727 | +/** | |
2728 | + * Option overwriting strategies are functions that handle | |
2729 | + * how to merge a parent option value and a child option | |
2730 | + * value into the final value. | |
2731 | + */ | |
2732 | +var strats = config.optionMergeStrategies; | |
2733 | + | |
2734 | +/** | |
2735 | + * Options with restrictions | |
2736 | + */ | |
2737 | +if (true) { | |
2738 | + strats.el = strats.propsData = function (parent, child, vm, key) { | |
2739 | + if (!vm) { | |
2740 | + warn( | |
2741 | + "option \"" + key + "\" can only be used during instance " + | |
2742 | + 'creation with the `new` keyword.' | |
2743 | + ); | |
2744 | + } | |
2745 | + return defaultStrat(parent, child) | |
2746 | + }; | |
2747 | +} | |
2748 | + | |
2749 | +/** | |
2750 | + * Helper that recursively merges two data objects together. | |
2751 | + */ | |
2752 | +function mergeData (to, from) { | |
2753 | + if (!from) { return to } | |
2754 | + var key, toVal, fromVal; | |
2755 | + | |
2756 | + var keys = hasSymbol | |
2757 | + ? Reflect.ownKeys(from) | |
2758 | + : Object.keys(from); | |
2759 | + | |
2760 | + for (var i = 0; i < keys.length; i++) { | |
2761 | + key = keys[i]; | |
2762 | + // in case the object is already observed... | |
2763 | + if (key === '__ob__') { continue } | |
2764 | + toVal = to[key]; | |
2765 | + fromVal = from[key]; | |
2766 | + if (!hasOwn(to, key)) { | |
2767 | + set(to, key, fromVal); | |
2768 | + } else if ( | |
2769 | + toVal !== fromVal && | |
2770 | + isPlainObject(toVal) && | |
2771 | + isPlainObject(fromVal) | |
2772 | + ) { | |
2773 | + mergeData(toVal, fromVal); | |
2774 | + } | |
2775 | + } | |
2776 | + return to | |
2777 | +} | |
2778 | + | |
2779 | +/** | |
2780 | + * Data | |
2781 | + */ | |
2782 | +function mergeDataOrFn ( | |
2783 | + parentVal, | |
2784 | + childVal, | |
2785 | + vm | |
2786 | +) { | |
2787 | + if (!vm) { | |
2788 | + // in a Vue.extend merge, both should be functions | |
2789 | + if (!childVal) { | |
2790 | + return parentVal | |
2791 | + } | |
2792 | + if (!parentVal) { | |
2793 | + return childVal | |
2794 | + } | |
2795 | + // when parentVal & childVal are both present, | |
2796 | + // we need to return a function that returns the | |
2797 | + // merged result of both functions... no need to | |
2798 | + // check if parentVal is a function here because | |
2799 | + // it has to be a function to pass previous merges. | |
2800 | + return function mergedDataFn () { | |
2801 | + return mergeData( | |
2802 | + typeof childVal === 'function' ? childVal.call(this, this) : childVal, | |
2803 | + typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal | |
2804 | + ) | |
2805 | + } | |
2806 | + } else { | |
2807 | + return function mergedInstanceDataFn () { | |
2808 | + // instance merge | |
2809 | + var instanceData = typeof childVal === 'function' | |
2810 | + ? childVal.call(vm, vm) | |
2811 | + : childVal; | |
2812 | + var defaultData = typeof parentVal === 'function' | |
2813 | + ? parentVal.call(vm, vm) | |
2814 | + : parentVal; | |
2815 | + if (instanceData) { | |
2816 | + return mergeData(instanceData, defaultData) | |
2817 | + } else { | |
2818 | + return defaultData | |
2819 | + } | |
2820 | + } | |
2821 | + } | |
2822 | +} | |
2823 | + | |
2824 | +strats.data = function ( | |
2825 | + parentVal, | |
2826 | + childVal, | |
2827 | + vm | |
2828 | +) { | |
2829 | + if (!vm) { | |
2830 | + if (childVal && typeof childVal !== 'function') { | |
2831 | + true && warn( | |
2832 | + 'The "data" option should be a function ' + | |
2833 | + 'that returns a per-instance value in component ' + | |
2834 | + 'definitions.', | |
2835 | + vm | |
2836 | + ); | |
2837 | + | |
2838 | + return parentVal | |
2839 | + } | |
2840 | + return mergeDataOrFn(parentVal, childVal) | |
2841 | + } | |
2842 | + | |
2843 | + return mergeDataOrFn(parentVal, childVal, vm) | |
2844 | +}; | |
2845 | + | |
2846 | +/** | |
2847 | + * Hooks and props are merged as arrays. | |
2848 | + */ | |
2849 | +function mergeHook ( | |
2850 | + parentVal, | |
2851 | + childVal | |
2852 | +) { | |
2853 | + var res = childVal | |
2854 | + ? parentVal | |
2855 | + ? parentVal.concat(childVal) | |
2856 | + : Array.isArray(childVal) | |
2857 | + ? childVal | |
2858 | + : [childVal] | |
2859 | + : parentVal; | |
2860 | + return res | |
2861 | + ? dedupeHooks(res) | |
2862 | + : res | |
2863 | +} | |
2864 | + | |
2865 | +function dedupeHooks (hooks) { | |
2866 | + var res = []; | |
2867 | + for (var i = 0; i < hooks.length; i++) { | |
2868 | + if (res.indexOf(hooks[i]) === -1) { | |
2869 | + res.push(hooks[i]); | |
2870 | + } | |
2871 | + } | |
2872 | + return res | |
2873 | +} | |
2874 | + | |
2875 | +LIFECYCLE_HOOKS.forEach(function (hook) { | |
2876 | + strats[hook] = mergeHook; | |
2877 | +}); | |
2878 | + | |
2879 | +/** | |
2880 | + * Assets | |
2881 | + * | |
2882 | + * When a vm is present (instance creation), we need to do | |
2883 | + * a three-way merge between constructor options, instance | |
2884 | + * options and parent options. | |
2885 | + */ | |
2886 | +function mergeAssets ( | |
2887 | + parentVal, | |
2888 | + childVal, | |
2889 | + vm, | |
2890 | + key | |
2891 | +) { | |
2892 | + var res = Object.create(parentVal || null); | |
2893 | + if (childVal) { | |
2894 | + true && assertObjectType(key, childVal, vm); | |
2895 | + return extend(res, childVal) | |
2896 | + } else { | |
2897 | + return res | |
2898 | + } | |
2899 | +} | |
2900 | + | |
2901 | +ASSET_TYPES.forEach(function (type) { | |
2902 | + strats[type + 's'] = mergeAssets; | |
2903 | +}); | |
2904 | + | |
2905 | +/** | |
2906 | + * Watchers. | |
2907 | + * | |
2908 | + * Watchers hashes should not overwrite one | |
2909 | + * another, so we merge them as arrays. | |
2910 | + */ | |
2911 | +strats.watch = function ( | |
2912 | + parentVal, | |
2913 | + childVal, | |
2914 | + vm, | |
2915 | + key | |
2916 | +) { | |
2917 | + // work around Firefox's Object.prototype.watch... | |
2918 | + if (parentVal === nativeWatch) { parentVal = undefined; } | |
2919 | + if (childVal === nativeWatch) { childVal = undefined; } | |
2920 | + /* istanbul ignore if */ | |
2921 | + if (!childVal) { return Object.create(parentVal || null) } | |
2922 | + if (true) { | |
2923 | + assertObjectType(key, childVal, vm); | |
2924 | + } | |
2925 | + if (!parentVal) { return childVal } | |
2926 | + var ret = {}; | |
2927 | + extend(ret, parentVal); | |
2928 | + for (var key$1 in childVal) { | |
2929 | + var parent = ret[key$1]; | |
2930 | + var child = childVal[key$1]; | |
2931 | + if (parent && !Array.isArray(parent)) { | |
2932 | + parent = [parent]; | |
2933 | + } | |
2934 | + ret[key$1] = parent | |
2935 | + ? parent.concat(child) | |
2936 | + : Array.isArray(child) ? child : [child]; | |
2937 | + } | |
2938 | + return ret | |
2939 | +}; | |
2940 | + | |
2941 | +/** | |
2942 | + * Other object hashes. | |
2943 | + */ | |
2944 | +strats.props = | |
2945 | +strats.methods = | |
2946 | +strats.inject = | |
2947 | +strats.computed = function ( | |
2948 | + parentVal, | |
2949 | + childVal, | |
2950 | + vm, | |
2951 | + key | |
2952 | +) { | |
2953 | + if (childVal && "development" !== 'production') { | |
2954 | + assertObjectType(key, childVal, vm); | |
2955 | + } | |
2956 | + if (!parentVal) { return childVal } | |
2957 | + var ret = Object.create(null); | |
2958 | + extend(ret, parentVal); | |
2959 | + if (childVal) { extend(ret, childVal); } | |
2960 | + return ret | |
2961 | +}; | |
2962 | +strats.provide = mergeDataOrFn; | |
2963 | + | |
2964 | +/** | |
2965 | + * Default strategy. | |
2966 | + */ | |
2967 | +var defaultStrat = function (parentVal, childVal) { | |
2968 | + return childVal === undefined | |
2969 | + ? parentVal | |
2970 | + : childVal | |
2971 | +}; | |
2972 | + | |
2973 | +/** | |
2974 | + * Validate component names | |
2975 | + */ | |
2976 | +function checkComponents (options) { | |
2977 | + for (var key in options.components) { | |
2978 | + validateComponentName(key); | |
2979 | + } | |
2980 | +} | |
2981 | + | |
2982 | +function validateComponentName (name) { | |
2983 | + if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + (unicodeRegExp.source) + "]*$")).test(name)) { | |
2984 | + warn( | |
2985 | + 'Invalid component name: "' + name + '". Component names ' + | |
2986 | + 'should conform to valid custom element name in html5 specification.' | |
2987 | + ); | |
2988 | + } | |
2989 | + if (isBuiltInTag(name) || config.isReservedTag(name)) { | |
2990 | + warn( | |
2991 | + 'Do not use built-in or reserved HTML elements as component ' + | |
2992 | + 'id: ' + name | |
2993 | + ); | |
2994 | + } | |
2995 | +} | |
2996 | + | |
2997 | +/** | |
2998 | + * Ensure all props option syntax are normalized into the | |
2999 | + * Object-based format. | |
3000 | + */ | |
3001 | +function normalizeProps (options, vm) { | |
3002 | + var props = options.props; | |
3003 | + if (!props) { return } | |
3004 | + var res = {}; | |
3005 | + var i, val, name; | |
3006 | + if (Array.isArray(props)) { | |
3007 | + i = props.length; | |
3008 | + while (i--) { | |
3009 | + val = props[i]; | |
3010 | + if (typeof val === 'string') { | |
3011 | + name = camelize(val); | |
3012 | + res[name] = { type: null }; | |
3013 | + } else if (true) { | |
3014 | + warn('props must be strings when using array syntax.'); | |
3015 | + } | |
3016 | + } | |
3017 | + } else if (isPlainObject(props)) { | |
3018 | + for (var key in props) { | |
3019 | + val = props[key]; | |
3020 | + name = camelize(key); | |
3021 | + res[name] = isPlainObject(val) | |
3022 | + ? val | |
3023 | + : { type: val }; | |
3024 | + } | |
3025 | + } else if (true) { | |
3026 | + warn( | |
3027 | + "Invalid value for option \"props\": expected an Array or an Object, " + | |
3028 | + "but got " + (toRawType(props)) + ".", | |
3029 | + vm | |
3030 | + ); | |
3031 | + } | |
3032 | + options.props = res; | |
3033 | +} | |
3034 | + | |
3035 | +/** | |
3036 | + * Normalize all injections into Object-based format | |
3037 | + */ | |
3038 | +function normalizeInject (options, vm) { | |
3039 | + var inject = options.inject; | |
3040 | + if (!inject) { return } | |
3041 | + var normalized = options.inject = {}; | |
3042 | + if (Array.isArray(inject)) { | |
3043 | + for (var i = 0; i < inject.length; i++) { | |
3044 | + normalized[inject[i]] = { from: inject[i] }; | |
3045 | + } | |
3046 | + } else if (isPlainObject(inject)) { | |
3047 | + for (var key in inject) { | |
3048 | + var val = inject[key]; | |
3049 | + normalized[key] = isPlainObject(val) | |
3050 | + ? extend({ from: key }, val) | |
3051 | + : { from: val }; | |
3052 | + } | |
3053 | + } else if (true) { | |
3054 | + warn( | |
3055 | + "Invalid value for option \"inject\": expected an Array or an Object, " + | |
3056 | + "but got " + (toRawType(inject)) + ".", | |
3057 | + vm | |
3058 | + ); | |
3059 | + } | |
3060 | +} | |
3061 | + | |
3062 | +/** | |
3063 | + * Normalize raw function directives into object format. | |
3064 | + */ | |
3065 | +function normalizeDirectives (options) { | |
3066 | + var dirs = options.directives; | |
3067 | + if (dirs) { | |
3068 | + for (var key in dirs) { | |
3069 | + var def$$1 = dirs[key]; | |
3070 | + if (typeof def$$1 === 'function') { | |
3071 | + dirs[key] = { bind: def$$1, update: def$$1 }; | |
3072 | + } | |
3073 | + } | |
3074 | + } | |
3075 | +} | |
3076 | + | |
3077 | +function assertObjectType (name, value, vm) { | |
3078 | + if (!isPlainObject(value)) { | |
3079 | + warn( | |
3080 | + "Invalid value for option \"" + name + "\": expected an Object, " + | |
3081 | + "but got " + (toRawType(value)) + ".", | |
3082 | + vm | |
3083 | + ); | |
3084 | + } | |
3085 | +} | |
3086 | + | |
3087 | +/** | |
3088 | + * Merge two option objects into a new one. | |
3089 | + * Core utility used in both instantiation and inheritance. | |
3090 | + */ | |
3091 | +function mergeOptions ( | |
3092 | + parent, | |
3093 | + child, | |
3094 | + vm | |
3095 | +) { | |
3096 | + if (true) { | |
3097 | + checkComponents(child); | |
3098 | + } | |
3099 | + | |
3100 | + if (typeof child === 'function') { | |
3101 | + child = child.options; | |
3102 | + } | |
3103 | + | |
3104 | + normalizeProps(child, vm); | |
3105 | + normalizeInject(child, vm); | |
3106 | + normalizeDirectives(child); | |
3107 | + | |
3108 | + // Apply extends and mixins on the child options, | |
3109 | + // but only if it is a raw options object that isn't | |
3110 | + // the result of another mergeOptions call. | |
3111 | + // Only merged options has the _base property. | |
3112 | + if (!child._base) { | |
3113 | + if (child.extends) { | |
3114 | + parent = mergeOptions(parent, child.extends, vm); | |
3115 | + } | |
3116 | + if (child.mixins) { | |
3117 | + for (var i = 0, l = child.mixins.length; i < l; i++) { | |
3118 | + parent = mergeOptions(parent, child.mixins[i], vm); | |
3119 | + } | |
3120 | + } | |
3121 | + } | |
3122 | + | |
3123 | + var options = {}; | |
3124 | + var key; | |
3125 | + for (key in parent) { | |
3126 | + mergeField(key); | |
3127 | + } | |
3128 | + for (key in child) { | |
3129 | + if (!hasOwn(parent, key)) { | |
3130 | + mergeField(key); | |
3131 | + } | |
3132 | + } | |
3133 | + function mergeField (key) { | |
3134 | + var strat = strats[key] || defaultStrat; | |
3135 | + options[key] = strat(parent[key], child[key], vm, key); | |
3136 | + } | |
3137 | + return options | |
3138 | +} | |
3139 | + | |
3140 | +/** | |
3141 | + * Resolve an asset. | |
3142 | + * This function is used because child instances need access | |
3143 | + * to assets defined in its ancestor chain. | |
3144 | + */ | |
3145 | +function resolveAsset ( | |
3146 | + options, | |
3147 | + type, | |
3148 | + id, | |
3149 | + warnMissing | |
3150 | +) { | |
3151 | + /* istanbul ignore if */ | |
3152 | + if (typeof id !== 'string') { | |
3153 | + return | |
3154 | + } | |
3155 | + var assets = options[type]; | |
3156 | + // check local registration variations first | |
3157 | + if (hasOwn(assets, id)) { return assets[id] } | |
3158 | + var camelizedId = camelize(id); | |
3159 | + if (hasOwn(assets, camelizedId)) { return assets[camelizedId] } | |
3160 | + var PascalCaseId = capitalize(camelizedId); | |
3161 | + if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] } | |
3162 | + // fallback to prototype chain | |
3163 | + var res = assets[id] || assets[camelizedId] || assets[PascalCaseId]; | |
3164 | + if ( true && warnMissing && !res) { | |
3165 | + warn( | |
3166 | + 'Failed to resolve ' + type.slice(0, -1) + ': ' + id, | |
3167 | + options | |
3168 | + ); | |
3169 | + } | |
3170 | + return res | |
3171 | +} | |
3172 | + | |
3173 | +/* */ | |
3174 | + | |
3175 | + | |
3176 | + | |
3177 | +function validateProp ( | |
3178 | + key, | |
3179 | + propOptions, | |
3180 | + propsData, | |
3181 | + vm | |
3182 | +) { | |
3183 | + var prop = propOptions[key]; | |
3184 | + var absent = !hasOwn(propsData, key); | |
3185 | + var value = propsData[key]; | |
3186 | + // boolean casting | |
3187 | + var booleanIndex = getTypeIndex(Boolean, prop.type); | |
3188 | + if (booleanIndex > -1) { | |
3189 | + if (absent && !hasOwn(prop, 'default')) { | |
3190 | + value = false; | |
3191 | + } else if (value === '' || value === hyphenate(key)) { | |
3192 | + // only cast empty string / same name to boolean if | |
3193 | + // boolean has higher priority | |
3194 | + var stringIndex = getTypeIndex(String, prop.type); | |
3195 | + if (stringIndex < 0 || booleanIndex < stringIndex) { | |
3196 | + value = true; | |
3197 | + } | |
3198 | + } | |
3199 | + } | |
3200 | + // check default value | |
3201 | + if (value === undefined) { | |
3202 | + value = getPropDefaultValue(vm, prop, key); | |
3203 | + // since the default value is a fresh copy, | |
3204 | + // make sure to observe it. | |
3205 | + var prevShouldObserve = shouldObserve; | |
3206 | + toggleObserving(true); | |
3207 | + observe(value); | |
3208 | + toggleObserving(prevShouldObserve); | |
3209 | + } | |
3210 | + if ( | |
3211 | + true | |
3212 | + ) { | |
3213 | + assertProp(prop, key, value, vm, absent); | |
3214 | + } | |
3215 | + return value | |
3216 | +} | |
3217 | + | |
3218 | +/** | |
3219 | + * Get the default value of a prop. | |
3220 | + */ | |
3221 | +function getPropDefaultValue (vm, prop, key) { | |
3222 | + // no default, return undefined | |
3223 | + if (!hasOwn(prop, 'default')) { | |
3224 | + return undefined | |
3225 | + } | |
3226 | + var def = prop.default; | |
3227 | + // warn against non-factory defaults for Object & Array | |
3228 | + if ( true && isObject(def)) { | |
3229 | + warn( | |
3230 | + 'Invalid default value for prop "' + key + '": ' + | |
3231 | + 'Props with type Object/Array must use a factory function ' + | |
3232 | + 'to return the default value.', | |
3233 | + vm | |
3234 | + ); | |
3235 | + } | |
3236 | + // the raw prop value was also undefined from previous render, | |
3237 | + // return previous default value to avoid unnecessary watcher trigger | |
3238 | + if (vm && vm.$options.propsData && | |
3239 | + vm.$options.propsData[key] === undefined && | |
3240 | + vm._props[key] !== undefined | |
3241 | + ) { | |
3242 | + return vm._props[key] | |
3243 | + } | |
3244 | + // call factory function for non-Function types | |
3245 | + // a value is Function if its prototype is function even across different execution context | |
3246 | + return typeof def === 'function' && getType(prop.type) !== 'Function' | |
3247 | + ? def.call(vm) | |
3248 | + : def | |
3249 | +} | |
3250 | + | |
3251 | +/** | |
3252 | + * Assert whether a prop is valid. | |
3253 | + */ | |
3254 | +function assertProp ( | |
3255 | + prop, | |
3256 | + name, | |
3257 | + value, | |
3258 | + vm, | |
3259 | + absent | |
3260 | +) { | |
3261 | + if (prop.required && absent) { | |
3262 | + warn( | |
3263 | + 'Missing required prop: "' + name + '"', | |
3264 | + vm | |
3265 | + ); | |
3266 | + return | |
3267 | + } | |
3268 | + if (value == null && !prop.required) { | |
3269 | + return | |
3270 | + } | |
3271 | + var type = prop.type; | |
3272 | + var valid = !type || type === true; | |
3273 | + var expectedTypes = []; | |
3274 | + if (type) { | |
3275 | + if (!Array.isArray(type)) { | |
3276 | + type = [type]; | |
3277 | + } | |
3278 | + for (var i = 0; i < type.length && !valid; i++) { | |
3279 | + var assertedType = assertType(value, type[i]); | |
3280 | + expectedTypes.push(assertedType.expectedType || ''); | |
3281 | + valid = assertedType.valid; | |
3282 | + } | |
3283 | + } | |
3284 | + | |
3285 | + if (!valid) { | |
3286 | + warn( | |
3287 | + getInvalidTypeMessage(name, value, expectedTypes), | |
3288 | + vm | |
3289 | + ); | |
3290 | + return | |
3291 | + } | |
3292 | + var validator = prop.validator; | |
3293 | + if (validator) { | |
3294 | + if (!validator(value)) { | |
3295 | + warn( | |
3296 | + 'Invalid prop: custom validator check failed for prop "' + name + '".', | |
3297 | + vm | |
3298 | + ); | |
3299 | + } | |
3300 | + } | |
3301 | +} | |
3302 | + | |
3303 | +var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/; | |
3304 | + | |
3305 | +function assertType (value, type) { | |
3306 | + var valid; | |
3307 | + var expectedType = getType(type); | |
3308 | + if (simpleCheckRE.test(expectedType)) { | |
3309 | + var t = typeof value; | |
3310 | + valid = t === expectedType.toLowerCase(); | |
3311 | + // for primitive wrapper objects | |
3312 | + if (!valid && t === 'object') { | |
3313 | + valid = value instanceof type; | |
3314 | + } | |
3315 | + } else if (expectedType === 'Object') { | |
3316 | + valid = isPlainObject(value); | |
3317 | + } else if (expectedType === 'Array') { | |
3318 | + valid = Array.isArray(value); | |
3319 | + } else { | |
3320 | + valid = value instanceof type; | |
3321 | + } | |
3322 | + return { | |
3323 | + valid: valid, | |
3324 | + expectedType: expectedType | |
3325 | + } | |
3326 | +} | |
3327 | + | |
3328 | +/** | |
3329 | + * Use function string name to check built-in types, | |
3330 | + * because a simple equality check will fail when running | |
3331 | + * across different vms / iframes. | |
3332 | + */ | |
3333 | +function getType (fn) { | |
3334 | + var match = fn && fn.toString().match(/^\s*function (\w+)/); | |
3335 | + return match ? match[1] : '' | |
3336 | +} | |
3337 | + | |
3338 | +function isSameType (a, b) { | |
3339 | + return getType(a) === getType(b) | |
3340 | +} | |
3341 | + | |
3342 | +function getTypeIndex (type, expectedTypes) { | |
3343 | + if (!Array.isArray(expectedTypes)) { | |
3344 | + return isSameType(expectedTypes, type) ? 0 : -1 | |
3345 | + } | |
3346 | + for (var i = 0, len = expectedTypes.length; i < len; i++) { | |
3347 | + if (isSameType(expectedTypes[i], type)) { | |
3348 | + return i | |
3349 | + } | |
3350 | + } | |
3351 | + return -1 | |
3352 | +} | |
3353 | + | |
3354 | +function getInvalidTypeMessage (name, value, expectedTypes) { | |
3355 | + var message = "Invalid prop: type check failed for prop \"" + name + "\"." + | |
3356 | + " Expected " + (expectedTypes.map(capitalize).join(', ')); | |
3357 | + var expectedType = expectedTypes[0]; | |
3358 | + var receivedType = toRawType(value); | |
3359 | + var expectedValue = styleValue(value, expectedType); | |
3360 | + var receivedValue = styleValue(value, receivedType); | |
3361 | + // check if we need to specify expected value | |
3362 | + if (expectedTypes.length === 1 && | |
3363 | + isExplicable(expectedType) && | |
3364 | + !isBoolean(expectedType, receivedType)) { | |
3365 | + message += " with value " + expectedValue; | |
3366 | + } | |
3367 | + message += ", got " + receivedType + " "; | |
3368 | + // check if we need to specify received value | |
3369 | + if (isExplicable(receivedType)) { | |
3370 | + message += "with value " + receivedValue + "."; | |
3371 | + } | |
3372 | + return message | |
3373 | +} | |
3374 | + | |
3375 | +function styleValue (value, type) { | |
3376 | + if (type === 'String') { | |
3377 | + return ("\"" + value + "\"") | |
3378 | + } else if (type === 'Number') { | |
3379 | + return ("" + (Number(value))) | |
3380 | + } else { | |
3381 | + return ("" + value) | |
3382 | + } | |
3383 | +} | |
3384 | + | |
3385 | +function isExplicable (value) { | |
3386 | + var explicitTypes = ['string', 'number', 'boolean']; | |
3387 | + return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; }) | |
3388 | +} | |
3389 | + | |
3390 | +function isBoolean () { | |
3391 | + var args = [], len = arguments.length; | |
3392 | + while ( len-- ) args[ len ] = arguments[ len ]; | |
3393 | + | |
3394 | + return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; }) | |
3395 | +} | |
3396 | + | |
3397 | +/* */ | |
3398 | + | |
3399 | +function handleError (err, vm, info) { | |
3400 | + // Deactivate deps tracking while processing error handler to avoid possible infinite rendering. | |
3401 | + // See: https://github.com/vuejs/vuex/issues/1505 | |
3402 | + pushTarget(); | |
3403 | + try { | |
3404 | + if (vm) { | |
3405 | + var cur = vm; | |
3406 | + while ((cur = cur.$parent)) { | |
3407 | + var hooks = cur.$options.errorCaptured; | |
3408 | + if (hooks) { | |
3409 | + for (var i = 0; i < hooks.length; i++) { | |
3410 | + try { | |
3411 | + var capture = hooks[i].call(cur, err, vm, info) === false; | |
3412 | + if (capture) { return } | |
3413 | + } catch (e) { | |
3414 | + globalHandleError(e, cur, 'errorCaptured hook'); | |
3415 | + } | |
3416 | + } | |
3417 | + } | |
3418 | + } | |
3419 | + } | |
3420 | + globalHandleError(err, vm, info); | |
3421 | + } finally { | |
3422 | + popTarget(); | |
3423 | + } | |
3424 | +} | |
3425 | + | |
3426 | +function invokeWithErrorHandling ( | |
3427 | + handler, | |
3428 | + context, | |
3429 | + args, | |
3430 | + vm, | |
3431 | + info | |
3432 | +) { | |
3433 | + var res; | |
3434 | + try { | |
3435 | + res = args ? handler.apply(context, args) : handler.call(context); | |
3436 | + if (res && !res._isVue && isPromise(res) && !res._handled) { | |
3437 | + res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); }); | |
3438 | + // issue #9511 | |
3439 | + // avoid catch triggering multiple times when nested calls | |
3440 | + res._handled = true; | |
3441 | + } | |
3442 | + } catch (e) { | |
3443 | + handleError(e, vm, info); | |
3444 | + } | |
3445 | + return res | |
3446 | +} | |
3447 | + | |
3448 | +function globalHandleError (err, vm, info) { | |
3449 | + if (config.errorHandler) { | |
3450 | + try { | |
3451 | + return config.errorHandler.call(null, err, vm, info) | |
3452 | + } catch (e) { | |
3453 | + // if the user intentionally throws the original error in the handler, | |
3454 | + // do not log it twice | |
3455 | + if (e !== err) { | |
3456 | + logError(e, null, 'config.errorHandler'); | |
3457 | + } | |
3458 | + } | |
3459 | + } | |
3460 | + logError(err, vm, info); | |
3461 | +} | |
3462 | + | |
3463 | +function logError (err, vm, info) { | |
3464 | + if (true) { | |
3465 | + warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm); | |
3466 | + } | |
3467 | + /* istanbul ignore else */ | |
3468 | + if ((inBrowser || inWeex) && typeof console !== 'undefined') { | |
3469 | + console.error(err); | |
3470 | + } else { | |
3471 | + throw err | |
3472 | + } | |
3473 | +} | |
3474 | + | |
3475 | +/* */ | |
3476 | + | |
3477 | +var callbacks = []; | |
3478 | +var pending = false; | |
3479 | + | |
3480 | +function flushCallbacks () { | |
3481 | + pending = false; | |
3482 | + var copies = callbacks.slice(0); | |
3483 | + callbacks.length = 0; | |
3484 | + for (var i = 0; i < copies.length; i++) { | |
3485 | + copies[i](); | |
3486 | + } | |
3487 | +} | |
3488 | + | |
3489 | +// Here we have async deferring wrappers using microtasks. | |
3490 | +// In 2.5 we used (macro) tasks (in combination with microtasks). | |
3491 | +// However, it has subtle problems when state is changed right before repaint | |
3492 | +// (e.g. #6813, out-in transitions). | |
3493 | +// Also, using (macro) tasks in event handler would cause some weird behaviors | |
3494 | +// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109). | |
3495 | +// So we now use microtasks everywhere, again. | |
3496 | +// A major drawback of this tradeoff is that there are some scenarios | |
3497 | +// where microtasks have too high a priority and fire in between supposedly | |
3498 | +// sequential events (e.g. #4521, #6690, which have workarounds) | |
3499 | +// or even between bubbling of the same event (#6566). | |
3500 | +var timerFunc; | |
3501 | + | |
3502 | +// The nextTick behavior leverages the microtask queue, which can be accessed | |
3503 | +// via either native Promise.then or MutationObserver. | |
3504 | +// MutationObserver has wider support, however it is seriously bugged in | |
3505 | +// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It | |
3506 | +// completely stops working after triggering a few times... so, if native | |
3507 | +// Promise is available, we will use it: | |
3508 | +/* istanbul ignore next, $flow-disable-line */ | |
3509 | +if (typeof Promise !== 'undefined' && isNative(Promise)) { | |
3510 | + var p = Promise.resolve(); | |
3511 | + timerFunc = function () { | |
3512 | + p.then(flushCallbacks); | |
3513 | + // In problematic UIWebViews, Promise.then doesn't completely break, but | |
3514 | + // it can get stuck in a weird state where callbacks are pushed into the | |
3515 | + // microtask queue but the queue isn't being flushed, until the browser | |
3516 | + // needs to do some other work, e.g. handle a timer. Therefore we can | |
3517 | + // "force" the microtask queue to be flushed by adding an empty timer. | |
3518 | + if (isIOS) { setTimeout(noop); } | |
3519 | + }; | |
3520 | +} else if (!isIE && typeof MutationObserver !== 'undefined' && ( | |
3521 | + isNative(MutationObserver) || | |
3522 | + // PhantomJS and iOS 7.x | |
3523 | + MutationObserver.toString() === '[object MutationObserverConstructor]' | |
3524 | +)) { | |
3525 | + // Use MutationObserver where native Promise is not available, | |
3526 | + // e.g. PhantomJS, iOS7, Android 4.4 | |
3527 | + // (#6466 MutationObserver is unreliable in IE11) | |
3528 | + var counter = 1; | |
3529 | + var observer = new MutationObserver(flushCallbacks); | |
3530 | + var textNode = document.createTextNode(String(counter)); | |
3531 | + observer.observe(textNode, { | |
3532 | + characterData: true | |
3533 | + }); | |
3534 | + timerFunc = function () { | |
3535 | + counter = (counter + 1) % 2; | |
3536 | + textNode.data = String(counter); | |
3537 | + }; | |
3538 | +} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) { | |
3539 | + // Fallback to setImmediate. | |
3540 | + // Technically it leverages the (macro) task queue, | |
3541 | + // but it is still a better choice than setTimeout. | |
3542 | + timerFunc = function () { | |
3543 | + setImmediate(flushCallbacks); | |
3544 | + }; | |
3545 | +} else { | |
3546 | + // Fallback to setTimeout. | |
3547 | + timerFunc = function () { | |
3548 | + setTimeout(flushCallbacks, 0); | |
3549 | + }; | |
3550 | +} | |
3551 | + | |
3552 | +function nextTick (cb, ctx) { | |
3553 | + var _resolve; | |
3554 | + callbacks.push(function () { | |
3555 | + if (cb) { | |
3556 | + try { | |
3557 | + cb.call(ctx); | |
3558 | + } catch (e) { | |
3559 | + handleError(e, ctx, 'nextTick'); | |
3560 | + } | |
3561 | + } else if (_resolve) { | |
3562 | + _resolve(ctx); | |
3563 | + } | |
3564 | + }); | |
3565 | + if (!pending) { | |
3566 | + pending = true; | |
3567 | + timerFunc(); | |
3568 | + } | |
3569 | + // $flow-disable-line | |
3570 | + if (!cb && typeof Promise !== 'undefined') { | |
3571 | + return new Promise(function (resolve) { | |
3572 | + _resolve = resolve; | |
3573 | + }) | |
3574 | + } | |
3575 | +} | |
3576 | + | |
3577 | +/* */ | |
3578 | + | |
3579 | +/* not type checking this file because flow doesn't play well with Proxy */ | |
3580 | + | |
3581 | +var initProxy; | |
3582 | + | |
3583 | +if (true) { | |
3584 | + var allowedGlobals = makeMap( | |
3585 | + 'Infinity,undefined,NaN,isFinite,isNaN,' + | |
3586 | + 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + | |
3587 | + 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' + | |
3588 | + 'require' // for Webpack/Browserify | |
3589 | + ); | |
3590 | + | |
3591 | + var warnNonPresent = function (target, key) { | |
3592 | + warn( | |
3593 | + "Property or method \"" + key + "\" is not defined on the instance but " + | |
3594 | + 'referenced during render. Make sure that this property is reactive, ' + | |
3595 | + 'either in the data option, or for class-based components, by ' + | |
3596 | + 'initializing the property. ' + | |
3597 | + 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', | |
3598 | + target | |
3599 | + ); | |
3600 | + }; | |
3601 | + | |
3602 | + var warnReservedPrefix = function (target, key) { | |
3603 | + warn( | |
3604 | + "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " + | |
3605 | + 'properties starting with "$" or "_" are not proxied in the Vue instance to ' + | |
3606 | + 'prevent conflicts with Vue internals. ' + | |
3607 | + 'See: https://vuejs.org/v2/api/#data', | |
3608 | + target | |
3609 | + ); | |
3610 | + }; | |
3611 | + | |
3612 | + var hasProxy = | |
3613 | + typeof Proxy !== 'undefined' && isNative(Proxy); | |
3614 | + | |
3615 | + if (hasProxy) { | |
3616 | + var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact'); | |
3617 | + config.keyCodes = new Proxy(config.keyCodes, { | |
3618 | + set: function set (target, key, value) { | |
3619 | + if (isBuiltInModifier(key)) { | |
3620 | + warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key)); | |
3621 | + return false | |
3622 | + } else { | |
3623 | + target[key] = value; | |
3624 | + return true | |
3625 | + } | |
3626 | + } | |
3627 | + }); | |
3628 | + } | |
3629 | + | |
3630 | + var hasHandler = { | |
3631 | + has: function has (target, key) { | |
3632 | + var has = key in target; | |
3633 | + var isAllowed = allowedGlobals(key) || | |
3634 | + (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data)); | |
3635 | + if (!has && !isAllowed) { | |
3636 | + if (key in target.$data) { warnReservedPrefix(target, key); } | |
3637 | + else { warnNonPresent(target, key); } | |
3638 | + } | |
3639 | + return has || !isAllowed | |
3640 | + } | |
3641 | + }; | |
3642 | + | |
3643 | + var getHandler = { | |
3644 | + get: function get (target, key) { | |
3645 | + if (typeof key === 'string' && !(key in target)) { | |
3646 | + if (key in target.$data) { warnReservedPrefix(target, key); } | |
3647 | + else { warnNonPresent(target, key); } | |
3648 | + } | |
3649 | + return target[key] | |
3650 | + } | |
3651 | + }; | |
3652 | + | |
3653 | + initProxy = function initProxy (vm) { | |
3654 | + if (hasProxy) { | |
3655 | + // determine which proxy handler to use | |
3656 | + var options = vm.$options; | |
3657 | + var handlers = options.render && options.render._withStripped | |
3658 | + ? getHandler | |
3659 | + : hasHandler; | |
3660 | + vm._renderProxy = new Proxy(vm, handlers); | |
3661 | + } else { | |
3662 | + vm._renderProxy = vm; | |
3663 | + } | |
3664 | + }; | |
3665 | +} | |
3666 | + | |
3667 | +/* */ | |
3668 | + | |
3669 | +var seenObjects = new _Set(); | |
3670 | + | |
3671 | +/** | |
3672 | + * Recursively traverse an object to evoke all converted | |
3673 | + * getters, so that every nested property inside the object | |
3674 | + * is collected as a "deep" dependency. | |
3675 | + */ | |
3676 | +function traverse (val) { | |
3677 | + _traverse(val, seenObjects); | |
3678 | + seenObjects.clear(); | |
3679 | +} | |
3680 | + | |
3681 | +function _traverse (val, seen) { | |
3682 | + var i, keys; | |
3683 | + var isA = Array.isArray(val); | |
3684 | + if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) { | |
3685 | + return | |
3686 | + } | |
3687 | + if (val.__ob__) { | |
3688 | + var depId = val.__ob__.dep.id; | |
3689 | + if (seen.has(depId)) { | |
3690 | + return | |
3691 | + } | |
3692 | + seen.add(depId); | |
3693 | + } | |
3694 | + if (isA) { | |
3695 | + i = val.length; | |
3696 | + while (i--) { _traverse(val[i], seen); } | |
3697 | + } else { | |
3698 | + keys = Object.keys(val); | |
3699 | + i = keys.length; | |
3700 | + while (i--) { _traverse(val[keys[i]], seen); } | |
3701 | + } | |
3702 | +} | |
3703 | + | |
3704 | +var mark; | |
3705 | +var measure; | |
3706 | + | |
3707 | +if (true) { | |
3708 | + var perf = inBrowser && window.performance; | |
3709 | + /* istanbul ignore if */ | |
3710 | + if ( | |
3711 | + perf && | |
3712 | + perf.mark && | |
3713 | + perf.measure && | |
3714 | + perf.clearMarks && | |
3715 | + perf.clearMeasures | |
3716 | + ) { | |
3717 | + mark = function (tag) { return perf.mark(tag); }; | |
3718 | + measure = function (name, startTag, endTag) { | |
3719 | + perf.measure(name, startTag, endTag); | |
3720 | + perf.clearMarks(startTag); | |
3721 | + perf.clearMarks(endTag); | |
3722 | + // perf.clearMeasures(name) | |
3723 | + }; | |
3724 | + } | |
3725 | +} | |
3726 | + | |
3727 | +/* */ | |
3728 | + | |
3729 | +var normalizeEvent = cached(function (name) { | |
3730 | + var passive = name.charAt(0) === '&'; | |
3731 | + name = passive ? name.slice(1) : name; | |
3732 | + var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first | |
3733 | + name = once$$1 ? name.slice(1) : name; | |
3734 | + var capture = name.charAt(0) === '!'; | |
3735 | + name = capture ? name.slice(1) : name; | |
3736 | + return { | |
3737 | + name: name, | |
3738 | + once: once$$1, | |
3739 | + capture: capture, | |
3740 | + passive: passive | |
3741 | + } | |
3742 | +}); | |
3743 | + | |
3744 | +function createFnInvoker (fns, vm) { | |
3745 | + function invoker () { | |
3746 | + var arguments$1 = arguments; | |
3747 | + | |
3748 | + var fns = invoker.fns; | |
3749 | + if (Array.isArray(fns)) { | |
3750 | + var cloned = fns.slice(); | |
3751 | + for (var i = 0; i < cloned.length; i++) { | |
3752 | + invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler"); | |
3753 | + } | |
3754 | + } else { | |
3755 | + // return handler return value for single handlers | |
3756 | + return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler") | |
3757 | + } | |
3758 | + } | |
3759 | + invoker.fns = fns; | |
3760 | + return invoker | |
3761 | +} | |
3762 | + | |
3763 | +function updateListeners ( | |
3764 | + on, | |
3765 | + oldOn, | |
3766 | + add, | |
3767 | + remove$$1, | |
3768 | + createOnceHandler, | |
3769 | + vm | |
3770 | +) { | |
3771 | + var name, def$$1, cur, old, event; | |
3772 | + for (name in on) { | |
3773 | + def$$1 = cur = on[name]; | |
3774 | + old = oldOn[name]; | |
3775 | + event = normalizeEvent(name); | |
3776 | + if (isUndef(cur)) { | |
3777 | + true && warn( | |
3778 | + "Invalid handler for event \"" + (event.name) + "\": got " + String(cur), | |
3779 | + vm | |
3780 | + ); | |
3781 | + } else if (isUndef(old)) { | |
3782 | + if (isUndef(cur.fns)) { | |
3783 | + cur = on[name] = createFnInvoker(cur, vm); | |
3784 | + } | |
3785 | + if (isTrue(event.once)) { | |
3786 | + cur = on[name] = createOnceHandler(event.name, cur, event.capture); | |
3787 | + } | |
3788 | + add(event.name, cur, event.capture, event.passive, event.params); | |
3789 | + } else if (cur !== old) { | |
3790 | + old.fns = cur; | |
3791 | + on[name] = old; | |
3792 | + } | |
3793 | + } | |
3794 | + for (name in oldOn) { | |
3795 | + if (isUndef(on[name])) { | |
3796 | + event = normalizeEvent(name); | |
3797 | + remove$$1(event.name, oldOn[name], event.capture); | |
3798 | + } | |
3799 | + } | |
3800 | +} | |
3801 | + | |
3802 | +/* */ | |
3803 | + | |
3804 | +/* */ | |
3805 | + | |
3806 | +// fixed by xxxxxx (mp properties) | |
3807 | +function extractPropertiesFromVNodeData(data, Ctor, res, context) { | |
3808 | + var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties; | |
3809 | + if (isUndef(propOptions)) { | |
3810 | + return res | |
3811 | + } | |
3812 | + var externalClasses = Ctor.options.mpOptions.externalClasses || []; | |
3813 | + var attrs = data.attrs; | |
3814 | + var props = data.props; | |
3815 | + if (isDef(attrs) || isDef(props)) { | |
3816 | + for (var key in propOptions) { | |
3817 | + var altKey = hyphenate(key); | |
3818 | + var result = checkProp(res, props, key, altKey, true) || | |
3819 | + checkProp(res, attrs, key, altKey, false); | |
3820 | + // externalClass | |
3821 | + if ( | |
3822 | + result && | |
3823 | + res[key] && | |
3824 | + externalClasses.indexOf(altKey) !== -1 && | |
3825 | + context[camelize(res[key])] | |
3826 | + ) { | |
3827 | + // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串) | |
3828 | + res[key] = context[camelize(res[key])]; | |
3829 | + } | |
3830 | + } | |
3831 | + } | |
3832 | + return res | |
3833 | +} | |
3834 | + | |
3835 | +function extractPropsFromVNodeData ( | |
3836 | + data, | |
3837 | + Ctor, | |
3838 | + tag, | |
3839 | + context// fixed by xxxxxx | |
3840 | +) { | |
3841 | + // we are only extracting raw values here. | |
3842 | + // validation and default values are handled in the child | |
3843 | + // component itself. | |
3844 | + var propOptions = Ctor.options.props; | |
3845 | + if (isUndef(propOptions)) { | |
3846 | + // fixed by xxxxxx | |
3847 | + return extractPropertiesFromVNodeData(data, Ctor, {}, context) | |
3848 | + } | |
3849 | + var res = {}; | |
3850 | + var attrs = data.attrs; | |
3851 | + var props = data.props; | |
3852 | + if (isDef(attrs) || isDef(props)) { | |
3853 | + for (var key in propOptions) { | |
3854 | + var altKey = hyphenate(key); | |
3855 | + if (true) { | |
3856 | + var keyInLowerCase = key.toLowerCase(); | |
3857 | + if ( | |
3858 | + key !== keyInLowerCase && | |
3859 | + attrs && hasOwn(attrs, keyInLowerCase) | |
3860 | + ) { | |
3861 | + tip( | |
3862 | + "Prop \"" + keyInLowerCase + "\" is passed to component " + | |
3863 | + (formatComponentName(tag || Ctor)) + ", but the declared prop name is" + | |
3864 | + " \"" + key + "\". " + | |
3865 | + "Note that HTML attributes are case-insensitive and camelCased " + | |
3866 | + "props need to use their kebab-case equivalents when using in-DOM " + | |
3867 | + "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"." | |
3868 | + ); | |
3869 | + } | |
3870 | + } | |
3871 | + checkProp(res, props, key, altKey, true) || | |
3872 | + checkProp(res, attrs, key, altKey, false); | |
3873 | + } | |
3874 | + } | |
3875 | + // fixed by xxxxxx | |
3876 | + return extractPropertiesFromVNodeData(data, Ctor, res, context) | |
3877 | +} | |
3878 | + | |
3879 | +function checkProp ( | |
3880 | + res, | |
3881 | + hash, | |
3882 | + key, | |
3883 | + altKey, | |
3884 | + preserve | |
3885 | +) { | |
3886 | + if (isDef(hash)) { | |
3887 | + if (hasOwn(hash, key)) { | |
3888 | + res[key] = hash[key]; | |
3889 | + if (!preserve) { | |
3890 | + delete hash[key]; | |
3891 | + } | |
3892 | + return true | |
3893 | + } else if (hasOwn(hash, altKey)) { | |
3894 | + res[key] = hash[altKey]; | |
3895 | + if (!preserve) { | |
3896 | + delete hash[altKey]; | |
3897 | + } | |
3898 | + return true | |
3899 | + } | |
3900 | + } | |
3901 | + return false | |
3902 | +} | |
3903 | + | |
3904 | +/* */ | |
3905 | + | |
3906 | +// The template compiler attempts to minimize the need for normalization by | |
3907 | +// statically analyzing the template at compile time. | |
3908 | +// | |
3909 | +// For plain HTML markup, normalization can be completely skipped because the | |
3910 | +// generated render function is guaranteed to return Array<VNode>. There are | |
3911 | +// two cases where extra normalization is needed: | |
3912 | + | |
3913 | +// 1. When the children contains components - because a functional component | |
3914 | +// may return an Array instead of a single root. In this case, just a simple | |
3915 | +// normalization is needed - if any child is an Array, we flatten the whole | |
3916 | +// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep | |
3917 | +// because functional components already normalize their own children. | |
3918 | +function simpleNormalizeChildren (children) { | |
3919 | + for (var i = 0; i < children.length; i++) { | |
3920 | + if (Array.isArray(children[i])) { | |
3921 | + return Array.prototype.concat.apply([], children) | |
3922 | + } | |
3923 | + } | |
3924 | + return children | |
3925 | +} | |
3926 | + | |
3927 | +// 2. When the children contains constructs that always generated nested Arrays, | |
3928 | +// e.g. <template>, <slot>, v-for, or when the children is provided by user | |
3929 | +// with hand-written render functions / JSX. In such cases a full normalization | |
3930 | +// is needed to cater to all possible types of children values. | |
3931 | +function normalizeChildren (children) { | |
3932 | + return isPrimitive(children) | |
3933 | + ? [createTextVNode(children)] | |
3934 | + : Array.isArray(children) | |
3935 | + ? normalizeArrayChildren(children) | |
3936 | + : undefined | |
3937 | +} | |
3938 | + | |
3939 | +function isTextNode (node) { | |
3940 | + return isDef(node) && isDef(node.text) && isFalse(node.isComment) | |
3941 | +} | |
3942 | + | |
3943 | +function normalizeArrayChildren (children, nestedIndex) { | |
3944 | + var res = []; | |
3945 | + var i, c, lastIndex, last; | |
3946 | + for (i = 0; i < children.length; i++) { | |
3947 | + c = children[i]; | |
3948 | + if (isUndef(c) || typeof c === 'boolean') { continue } | |
3949 | + lastIndex = res.length - 1; | |
3950 | + last = res[lastIndex]; | |
3951 | + // nested | |
3952 | + if (Array.isArray(c)) { | |
3953 | + if (c.length > 0) { | |
3954 | + c = normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i)); | |
3955 | + // merge adjacent text nodes | |
3956 | + if (isTextNode(c[0]) && isTextNode(last)) { | |
3957 | + res[lastIndex] = createTextVNode(last.text + (c[0]).text); | |
3958 | + c.shift(); | |
3959 | + } | |
3960 | + res.push.apply(res, c); | |
3961 | + } | |
3962 | + } else if (isPrimitive(c)) { | |
3963 | + if (isTextNode(last)) { | |
3964 | + // merge adjacent text nodes | |
3965 | + // this is necessary for SSR hydration because text nodes are | |
3966 | + // essentially merged when rendered to HTML strings | |
3967 | + res[lastIndex] = createTextVNode(last.text + c); | |
3968 | + } else if (c !== '') { | |
3969 | + // convert primitive to vnode | |
3970 | + res.push(createTextVNode(c)); | |
3971 | + } | |
3972 | + } else { | |
3973 | + if (isTextNode(c) && isTextNode(last)) { | |
3974 | + // merge adjacent text nodes | |
3975 | + res[lastIndex] = createTextVNode(last.text + c.text); | |
3976 | + } else { | |
3977 | + // default key for nested array children (likely generated by v-for) | |
3978 | + if (isTrue(children._isVList) && | |
3979 | + isDef(c.tag) && | |
3980 | + isUndef(c.key) && | |
3981 | + isDef(nestedIndex)) { | |
3982 | + c.key = "__vlist" + nestedIndex + "_" + i + "__"; | |
3983 | + } | |
3984 | + res.push(c); | |
3985 | + } | |
3986 | + } | |
3987 | + } | |
3988 | + return res | |
3989 | +} | |
3990 | + | |
3991 | +/* */ | |
3992 | + | |
3993 | +function initProvide (vm) { | |
3994 | + var provide = vm.$options.provide; | |
3995 | + if (provide) { | |
3996 | + vm._provided = typeof provide === 'function' | |
3997 | + ? provide.call(vm) | |
3998 | + : provide; | |
3999 | + } | |
4000 | +} | |
4001 | + | |
4002 | +function initInjections (vm) { | |
4003 | + var result = resolveInject(vm.$options.inject, vm); | |
4004 | + if (result) { | |
4005 | + toggleObserving(false); | |
4006 | + Object.keys(result).forEach(function (key) { | |
4007 | + /* istanbul ignore else */ | |
4008 | + if (true) { | |
4009 | + defineReactive$$1(vm, key, result[key], function () { | |
4010 | + warn( | |
4011 | + "Avoid mutating an injected value directly since the changes will be " + | |
4012 | + "overwritten whenever the provided component re-renders. " + | |
4013 | + "injection being mutated: \"" + key + "\"", | |
4014 | + vm | |
4015 | + ); | |
4016 | + }); | |
4017 | + } else {} | |
4018 | + }); | |
4019 | + toggleObserving(true); | |
4020 | + } | |
4021 | +} | |
4022 | + | |
4023 | +function resolveInject (inject, vm) { | |
4024 | + if (inject) { | |
4025 | + // inject is :any because flow is not smart enough to figure out cached | |
4026 | + var result = Object.create(null); | |
4027 | + var keys = hasSymbol | |
4028 | + ? Reflect.ownKeys(inject) | |
4029 | + : Object.keys(inject); | |
4030 | + | |
4031 | + for (var i = 0; i < keys.length; i++) { | |
4032 | + var key = keys[i]; | |
4033 | + // #6574 in case the inject object is observed... | |
4034 | + if (key === '__ob__') { continue } | |
4035 | + var provideKey = inject[key].from; | |
4036 | + var source = vm; | |
4037 | + while (source) { | |
4038 | + if (source._provided && hasOwn(source._provided, provideKey)) { | |
4039 | + result[key] = source._provided[provideKey]; | |
4040 | + break | |
4041 | + } | |
4042 | + source = source.$parent; | |
4043 | + } | |
4044 | + if (!source) { | |
4045 | + if ('default' in inject[key]) { | |
4046 | + var provideDefault = inject[key].default; | |
4047 | + result[key] = typeof provideDefault === 'function' | |
4048 | + ? provideDefault.call(vm) | |
4049 | + : provideDefault; | |
4050 | + } else if (true) { | |
4051 | + warn(("Injection \"" + key + "\" not found"), vm); | |
4052 | + } | |
4053 | + } | |
4054 | + } | |
4055 | + return result | |
4056 | + } | |
4057 | +} | |
4058 | + | |
4059 | +/* */ | |
4060 | + | |
4061 | + | |
4062 | + | |
4063 | +/** | |
4064 | + * Runtime helper for resolving raw children VNodes into a slot object. | |
4065 | + */ | |
4066 | +function resolveSlots ( | |
4067 | + children, | |
4068 | + context | |
4069 | +) { | |
4070 | + if (!children || !children.length) { | |
4071 | + return {} | |
4072 | + } | |
4073 | + var slots = {}; | |
4074 | + for (var i = 0, l = children.length; i < l; i++) { | |
4075 | + var child = children[i]; | |
4076 | + var data = child.data; | |
4077 | + // remove slot attribute if the node is resolved as a Vue slot node | |
4078 | + if (data && data.attrs && data.attrs.slot) { | |
4079 | + delete data.attrs.slot; | |
4080 | + } | |
4081 | + // named slots should only be respected if the vnode was rendered in the | |
4082 | + // same context. | |
4083 | + if ((child.context === context || child.fnContext === context) && | |
4084 | + data && data.slot != null | |
4085 | + ) { | |
4086 | + var name = data.slot; | |
4087 | + var slot = (slots[name] || (slots[name] = [])); | |
4088 | + if (child.tag === 'template') { | |
4089 | + slot.push.apply(slot, child.children || []); | |
4090 | + } else { | |
4091 | + slot.push(child); | |
4092 | + } | |
4093 | + } else { | |
4094 | + // fixed by xxxxxx 临时 hack 掉 uni-app 中的异步 name slot page | |
4095 | + if(child.asyncMeta && child.asyncMeta.data && child.asyncMeta.data.slot === 'page'){ | |
4096 | + (slots['page'] || (slots['page'] = [])).push(child); | |
4097 | + }else{ | |
4098 | + (slots.default || (slots.default = [])).push(child); | |
4099 | + } | |
4100 | + } | |
4101 | + } | |
4102 | + // ignore slots that contains only whitespace | |
4103 | + for (var name$1 in slots) { | |
4104 | + if (slots[name$1].every(isWhitespace)) { | |
4105 | + delete slots[name$1]; | |
4106 | + } | |
4107 | + } | |
4108 | + return slots | |
4109 | +} | |
4110 | + | |
4111 | +function isWhitespace (node) { | |
4112 | + return (node.isComment && !node.asyncFactory) || node.text === ' ' | |
4113 | +} | |
4114 | + | |
4115 | +/* */ | |
4116 | + | |
4117 | +function normalizeScopedSlots ( | |
4118 | + slots, | |
4119 | + normalSlots, | |
4120 | + prevSlots | |
4121 | +) { | |
4122 | + var res; | |
4123 | + var hasNormalSlots = Object.keys(normalSlots).length > 0; | |
4124 | + var isStable = slots ? !!slots.$stable : !hasNormalSlots; | |
4125 | + var key = slots && slots.$key; | |
4126 | + if (!slots) { | |
4127 | + res = {}; | |
4128 | + } else if (slots._normalized) { | |
4129 | + // fast path 1: child component re-render only, parent did not change | |
4130 | + return slots._normalized | |
4131 | + } else if ( | |
4132 | + isStable && | |
4133 | + prevSlots && | |
4134 | + prevSlots !== emptyObject && | |
4135 | + key === prevSlots.$key && | |
4136 | + !hasNormalSlots && | |
4137 | + !prevSlots.$hasNormal | |
4138 | + ) { | |
4139 | + // fast path 2: stable scoped slots w/ no normal slots to proxy, | |
4140 | + // only need to normalize once | |
4141 | + return prevSlots | |
4142 | + } else { | |
4143 | + res = {}; | |
4144 | + for (var key$1 in slots) { | |
4145 | + if (slots[key$1] && key$1[0] !== '$') { | |
4146 | + res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]); | |
4147 | + } | |
4148 | + } | |
4149 | + } | |
4150 | + // expose normal slots on scopedSlots | |
4151 | + for (var key$2 in normalSlots) { | |
4152 | + if (!(key$2 in res)) { | |
4153 | + res[key$2] = proxyNormalSlot(normalSlots, key$2); | |
4154 | + } | |
4155 | + } | |
4156 | + // avoriaz seems to mock a non-extensible $scopedSlots object | |
4157 | + // and when that is passed down this would cause an error | |
4158 | + if (slots && Object.isExtensible(slots)) { | |
4159 | + (slots)._normalized = res; | |
4160 | + } | |
4161 | + def(res, '$stable', isStable); | |
4162 | + def(res, '$key', key); | |
4163 | + def(res, '$hasNormal', hasNormalSlots); | |
4164 | + return res | |
4165 | +} | |
4166 | + | |
4167 | +function normalizeScopedSlot(normalSlots, key, fn) { | |
4168 | + var normalized = function () { | |
4169 | + var res = arguments.length ? fn.apply(null, arguments) : fn({}); | |
4170 | + res = res && typeof res === 'object' && !Array.isArray(res) | |
4171 | + ? [res] // single vnode | |
4172 | + : normalizeChildren(res); | |
4173 | + return res && ( | |
4174 | + res.length === 0 || | |
4175 | + (res.length === 1 && res[0].isComment) // #9658 | |
4176 | + ) ? undefined | |
4177 | + : res | |
4178 | + }; | |
4179 | + // this is a slot using the new v-slot syntax without scope. although it is | |
4180 | + // compiled as a scoped slot, render fn users would expect it to be present | |
4181 | + // on this.$slots because the usage is semantically a normal slot. | |
4182 | + if (fn.proxy) { | |
4183 | + Object.defineProperty(normalSlots, key, { | |
4184 | + get: normalized, | |
4185 | + enumerable: true, | |
4186 | + configurable: true | |
4187 | + }); | |
4188 | + } | |
4189 | + return normalized | |
4190 | +} | |
4191 | + | |
4192 | +function proxyNormalSlot(slots, key) { | |
4193 | + return function () { return slots[key]; } | |
4194 | +} | |
4195 | + | |
4196 | +/* */ | |
4197 | + | |
4198 | +/** | |
4199 | + * Runtime helper for rendering v-for lists. | |
4200 | + */ | |
4201 | +function renderList ( | |
4202 | + val, | |
4203 | + render | |
4204 | +) { | |
4205 | + var ret, i, l, keys, key; | |
4206 | + if (Array.isArray(val) || typeof val === 'string') { | |
4207 | + ret = new Array(val.length); | |
4208 | + for (i = 0, l = val.length; i < l; i++) { | |
4209 | + ret[i] = render(val[i], i, i, i); // fixed by xxxxxx | |
4210 | + } | |
4211 | + } else if (typeof val === 'number') { | |
4212 | + ret = new Array(val); | |
4213 | + for (i = 0; i < val; i++) { | |
4214 | + ret[i] = render(i + 1, i, i, i); // fixed by xxxxxx | |
4215 | + } | |
4216 | + } else if (isObject(val)) { | |
4217 | + if (hasSymbol && val[Symbol.iterator]) { | |
4218 | + ret = []; | |
4219 | + var iterator = val[Symbol.iterator](); | |
4220 | + var result = iterator.next(); | |
4221 | + while (!result.done) { | |
4222 | + ret.push(render(result.value, ret.length, i++, i)); // fixed by xxxxxx | |
4223 | + result = iterator.next(); | |
4224 | + } | |
4225 | + } else { | |
4226 | + keys = Object.keys(val); | |
4227 | + ret = new Array(keys.length); | |
4228 | + for (i = 0, l = keys.length; i < l; i++) { | |
4229 | + key = keys[i]; | |
4230 | + ret[i] = render(val[key], key, i, i); // fixed by xxxxxx | |
4231 | + } | |
4232 | + } | |
4233 | + } | |
4234 | + if (!isDef(ret)) { | |
4235 | + ret = []; | |
4236 | + } | |
4237 | + (ret)._isVList = true; | |
4238 | + return ret | |
4239 | +} | |
4240 | + | |
4241 | +/* */ | |
4242 | + | |
4243 | +/** | |
4244 | + * Runtime helper for rendering <slot> | |
4245 | + */ | |
4246 | +function renderSlot ( | |
4247 | + name, | |
4248 | + fallback, | |
4249 | + props, | |
4250 | + bindObject | |
4251 | +) { | |
4252 | + var scopedSlotFn = this.$scopedSlots[name]; | |
4253 | + var nodes; | |
4254 | + if (scopedSlotFn) { // scoped slot | |
4255 | + props = props || {}; | |
4256 | + if (bindObject) { | |
4257 | + if ( true && !isObject(bindObject)) { | |
4258 | + warn( | |
4259 | + 'slot v-bind without argument expects an Object', | |
4260 | + this | |
4261 | + ); | |
4262 | + } | |
4263 | + props = extend(extend({}, bindObject), props); | |
4264 | + } | |
4265 | + // fixed by xxxxxx app-plus scopedSlot | |
4266 | + nodes = scopedSlotFn(props, this, props._i) || fallback; | |
4267 | + } else { | |
4268 | + nodes = this.$slots[name] || fallback; | |
4269 | + } | |
4270 | + | |
4271 | + var target = props && props.slot; | |
4272 | + if (target) { | |
4273 | + return this.$createElement('template', { slot: target }, nodes) | |
4274 | + } else { | |
4275 | + return nodes | |
4276 | + } | |
4277 | +} | |
4278 | + | |
4279 | +/* */ | |
4280 | + | |
4281 | +/** | |
4282 | + * Runtime helper for resolving filters | |
4283 | + */ | |
4284 | +function resolveFilter (id) { | |
4285 | + return resolveAsset(this.$options, 'filters', id, true) || identity | |
4286 | +} | |
4287 | + | |
4288 | +/* */ | |
4289 | + | |
4290 | +function isKeyNotMatch (expect, actual) { | |
4291 | + if (Array.isArray(expect)) { | |
4292 | + return expect.indexOf(actual) === -1 | |
4293 | + } else { | |
4294 | + return expect !== actual | |
4295 | + } | |
4296 | +} | |
4297 | + | |
4298 | +/** | |
4299 | + * Runtime helper for checking keyCodes from config. | |
4300 | + * exposed as Vue.prototype._k | |
4301 | + * passing in eventKeyName as last argument separately for backwards compat | |
4302 | + */ | |
4303 | +function checkKeyCodes ( | |
4304 | + eventKeyCode, | |
4305 | + key, | |
4306 | + builtInKeyCode, | |
4307 | + eventKeyName, | |
4308 | + builtInKeyName | |
4309 | +) { | |
4310 | + var mappedKeyCode = config.keyCodes[key] || builtInKeyCode; | |
4311 | + if (builtInKeyName && eventKeyName && !config.keyCodes[key]) { | |
4312 | + return isKeyNotMatch(builtInKeyName, eventKeyName) | |
4313 | + } else if (mappedKeyCode) { | |
4314 | + return isKeyNotMatch(mappedKeyCode, eventKeyCode) | |
4315 | + } else if (eventKeyName) { | |
4316 | + return hyphenate(eventKeyName) !== key | |
4317 | + } | |
4318 | +} | |
4319 | + | |
4320 | +/* */ | |
4321 | + | |
4322 | +/** | |
4323 | + * Runtime helper for merging v-bind="object" into a VNode's data. | |
4324 | + */ | |
4325 | +function bindObjectProps ( | |
4326 | + data, | |
4327 | + tag, | |
4328 | + value, | |
4329 | + asProp, | |
4330 | + isSync | |
4331 | +) { | |
4332 | + if (value) { | |
4333 | + if (!isObject(value)) { | |
4334 | + true && warn( | |
4335 | + 'v-bind without argument expects an Object or Array value', | |
4336 | + this | |
4337 | + ); | |
4338 | + } else { | |
4339 | + if (Array.isArray(value)) { | |
4340 | + value = toObject(value); | |
4341 | + } | |
4342 | + var hash; | |
4343 | + var loop = function ( key ) { | |
4344 | + if ( | |
4345 | + key === 'class' || | |
4346 | + key === 'style' || | |
4347 | + isReservedAttribute(key) | |
4348 | + ) { | |
4349 | + hash = data; | |
4350 | + } else { | |
4351 | + var type = data.attrs && data.attrs.type; | |
4352 | + hash = asProp || config.mustUseProp(tag, type, key) | |
4353 | + ? data.domProps || (data.domProps = {}) | |
4354 | + : data.attrs || (data.attrs = {}); | |
4355 | + } | |
4356 | + var camelizedKey = camelize(key); | |
4357 | + var hyphenatedKey = hyphenate(key); | |
4358 | + if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) { | |
4359 | + hash[key] = value[key]; | |
4360 | + | |
4361 | + if (isSync) { | |
4362 | + var on = data.on || (data.on = {}); | |
4363 | + on[("update:" + key)] = function ($event) { | |
4364 | + value[key] = $event; | |
4365 | + }; | |
4366 | + } | |
4367 | + } | |
4368 | + }; | |
4369 | + | |
4370 | + for (var key in value) loop( key ); | |
4371 | + } | |
4372 | + } | |
4373 | + return data | |
4374 | +} | |
4375 | + | |
4376 | +/* */ | |
4377 | + | |
4378 | +/** | |
4379 | + * Runtime helper for rendering static trees. | |
4380 | + */ | |
4381 | +function renderStatic ( | |
4382 | + index, | |
4383 | + isInFor | |
4384 | +) { | |
4385 | + var cached = this._staticTrees || (this._staticTrees = []); | |
4386 | + var tree = cached[index]; | |
4387 | + // if has already-rendered static tree and not inside v-for, | |
4388 | + // we can reuse the same tree. | |
4389 | + if (tree && !isInFor) { | |
4390 | + return tree | |
4391 | + } | |
4392 | + // otherwise, render a fresh tree. | |
4393 | + tree = cached[index] = this.$options.staticRenderFns[index].call( | |
4394 | + this._renderProxy, | |
4395 | + null, | |
4396 | + this // for render fns generated for functional component templates | |
4397 | + ); | |
4398 | + markStatic(tree, ("__static__" + index), false); | |
4399 | + return tree | |
4400 | +} | |
4401 | + | |
4402 | +/** | |
4403 | + * Runtime helper for v-once. | |
4404 | + * Effectively it means marking the node as static with a unique key. | |
4405 | + */ | |
4406 | +function markOnce ( | |
4407 | + tree, | |
4408 | + index, | |
4409 | + key | |
4410 | +) { | |
4411 | + markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true); | |
4412 | + return tree | |
4413 | +} | |
4414 | + | |
4415 | +function markStatic ( | |
4416 | + tree, | |
4417 | + key, | |
4418 | + isOnce | |
4419 | +) { | |
4420 | + if (Array.isArray(tree)) { | |
4421 | + for (var i = 0; i < tree.length; i++) { | |
4422 | + if (tree[i] && typeof tree[i] !== 'string') { | |
4423 | + markStaticNode(tree[i], (key + "_" + i), isOnce); | |
4424 | + } | |
4425 | + } | |
4426 | + } else { | |
4427 | + markStaticNode(tree, key, isOnce); | |
4428 | + } | |
4429 | +} | |
4430 | + | |
4431 | +function markStaticNode (node, key, isOnce) { | |
4432 | + node.isStatic = true; | |
4433 | + node.key = key; | |
4434 | + node.isOnce = isOnce; | |
4435 | +} | |
4436 | + | |
4437 | +/* */ | |
4438 | + | |
4439 | +function bindObjectListeners (data, value) { | |
4440 | + if (value) { | |
4441 | + if (!isPlainObject(value)) { | |
4442 | + true && warn( | |
4443 | + 'v-on without argument expects an Object value', | |
4444 | + this | |
4445 | + ); | |
4446 | + } else { | |
4447 | + var on = data.on = data.on ? extend({}, data.on) : {}; | |
4448 | + for (var key in value) { | |
4449 | + var existing = on[key]; | |
4450 | + var ours = value[key]; | |
4451 | + on[key] = existing ? [].concat(existing, ours) : ours; | |
4452 | + } | |
4453 | + } | |
4454 | + } | |
4455 | + return data | |
4456 | +} | |
4457 | + | |
4458 | +/* */ | |
4459 | + | |
4460 | +function resolveScopedSlots ( | |
4461 | + fns, // see flow/vnode | |
4462 | + res, | |
4463 | + // the following are added in 2.6 | |
4464 | + hasDynamicKeys, | |
4465 | + contentHashKey | |
4466 | +) { | |
4467 | + res = res || { $stable: !hasDynamicKeys }; | |
4468 | + for (var i = 0; i < fns.length; i++) { | |
4469 | + var slot = fns[i]; | |
4470 | + if (Array.isArray(slot)) { | |
4471 | + resolveScopedSlots(slot, res, hasDynamicKeys); | |
4472 | + } else if (slot) { | |
4473 | + // marker for reverse proxying v-slot without scope on this.$slots | |
4474 | + if (slot.proxy) { | |
4475 | + slot.fn.proxy = true; | |
4476 | + } | |
4477 | + res[slot.key] = slot.fn; | |
4478 | + } | |
4479 | + } | |
4480 | + if (contentHashKey) { | |
4481 | + (res).$key = contentHashKey; | |
4482 | + } | |
4483 | + return res | |
4484 | +} | |
4485 | + | |
4486 | +/* */ | |
4487 | + | |
4488 | +function bindDynamicKeys (baseObj, values) { | |
4489 | + for (var i = 0; i < values.length; i += 2) { | |
4490 | + var key = values[i]; | |
4491 | + if (typeof key === 'string' && key) { | |
4492 | + baseObj[values[i]] = values[i + 1]; | |
4493 | + } else if ( true && key !== '' && key !== null) { | |
4494 | + // null is a special value for explicitly removing a binding | |
4495 | + warn( | |
4496 | + ("Invalid value for dynamic directive argument (expected string or null): " + key), | |
4497 | + this | |
4498 | + ); | |
4499 | + } | |
4500 | + } | |
4501 | + return baseObj | |
4502 | +} | |
4503 | + | |
4504 | +// helper to dynamically append modifier runtime markers to event names. | |
4505 | +// ensure only append when value is already string, otherwise it will be cast | |
4506 | +// to string and cause the type check to miss. | |
4507 | +function prependModifier (value, symbol) { | |
4508 | + return typeof value === 'string' ? symbol + value : value | |
4509 | +} | |
4510 | + | |
4511 | +/* */ | |
4512 | + | |
4513 | +function installRenderHelpers (target) { | |
4514 | + target._o = markOnce; | |
4515 | + target._n = toNumber; | |
4516 | + target._s = toString; | |
4517 | + target._l = renderList; | |
4518 | + target._t = renderSlot; | |
4519 | + target._q = looseEqual; | |
4520 | + target._i = looseIndexOf; | |
4521 | + target._m = renderStatic; | |
4522 | + target._f = resolveFilter; | |
4523 | + target._k = checkKeyCodes; | |
4524 | + target._b = bindObjectProps; | |
4525 | + target._v = createTextVNode; | |
4526 | + target._e = createEmptyVNode; | |
4527 | + target._u = resolveScopedSlots; | |
4528 | + target._g = bindObjectListeners; | |
4529 | + target._d = bindDynamicKeys; | |
4530 | + target._p = prependModifier; | |
4531 | +} | |
4532 | + | |
4533 | +/* */ | |
4534 | + | |
4535 | +function FunctionalRenderContext ( | |
4536 | + data, | |
4537 | + props, | |
4538 | + children, | |
4539 | + parent, | |
4540 | + Ctor | |
4541 | +) { | |
4542 | + var this$1 = this; | |
4543 | + | |
4544 | + var options = Ctor.options; | |
4545 | + // ensure the createElement function in functional components | |
4546 | + // gets a unique context - this is necessary for correct named slot check | |
4547 | + var contextVm; | |
4548 | + if (hasOwn(parent, '_uid')) { | |
4549 | + contextVm = Object.create(parent); | |
4550 | + // $flow-disable-line | |
4551 | + contextVm._original = parent; | |
4552 | + } else { | |
4553 | + // the context vm passed in is a functional context as well. | |
4554 | + // in this case we want to make sure we are able to get a hold to the | |
4555 | + // real context instance. | |
4556 | + contextVm = parent; | |
4557 | + // $flow-disable-line | |
4558 | + parent = parent._original; | |
4559 | + } | |
4560 | + var isCompiled = isTrue(options._compiled); | |
4561 | + var needNormalization = !isCompiled; | |
4562 | + | |
4563 | + this.data = data; | |
4564 | + this.props = props; | |
4565 | + this.children = children; | |
4566 | + this.parent = parent; | |
4567 | + this.listeners = data.on || emptyObject; | |
4568 | + this.injections = resolveInject(options.inject, parent); | |
4569 | + this.slots = function () { | |
4570 | + if (!this$1.$slots) { | |
4571 | + normalizeScopedSlots( | |
4572 | + data.scopedSlots, | |
4573 | + this$1.$slots = resolveSlots(children, parent) | |
4574 | + ); | |
4575 | + } | |
4576 | + return this$1.$slots | |
4577 | + }; | |
4578 | + | |
4579 | + Object.defineProperty(this, 'scopedSlots', ({ | |
4580 | + enumerable: true, | |
4581 | + get: function get () { | |
4582 | + return normalizeScopedSlots(data.scopedSlots, this.slots()) | |
4583 | + } | |
4584 | + })); | |
4585 | + | |
4586 | + // support for compiled functional template | |
4587 | + if (isCompiled) { | |
4588 | + // exposing $options for renderStatic() | |
4589 | + this.$options = options; | |
4590 | + // pre-resolve slots for renderSlot() | |
4591 | + this.$slots = this.slots(); | |
4592 | + this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots); | |
4593 | + } | |
4594 | + | |
4595 | + if (options._scopeId) { | |
4596 | + this._c = function (a, b, c, d) { | |
4597 | + var vnode = createElement(contextVm, a, b, c, d, needNormalization); | |
4598 | + if (vnode && !Array.isArray(vnode)) { | |
4599 | + vnode.fnScopeId = options._scopeId; | |
4600 | + vnode.fnContext = parent; | |
4601 | + } | |
4602 | + return vnode | |
4603 | + }; | |
4604 | + } else { | |
4605 | + this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); }; | |
4606 | + } | |
4607 | +} | |
4608 | + | |
4609 | +installRenderHelpers(FunctionalRenderContext.prototype); | |
4610 | + | |
4611 | +function createFunctionalComponent ( | |
4612 | + Ctor, | |
4613 | + propsData, | |
4614 | + data, | |
4615 | + contextVm, | |
4616 | + children | |
4617 | +) { | |
4618 | + var options = Ctor.options; | |
4619 | + var props = {}; | |
4620 | + var propOptions = options.props; | |
4621 | + if (isDef(propOptions)) { | |
4622 | + for (var key in propOptions) { | |
4623 | + props[key] = validateProp(key, propOptions, propsData || emptyObject); | |
4624 | + } | |
4625 | + } else { | |
4626 | + if (isDef(data.attrs)) { mergeProps(props, data.attrs); } | |
4627 | + if (isDef(data.props)) { mergeProps(props, data.props); } | |
4628 | + } | |
4629 | + | |
4630 | + var renderContext = new FunctionalRenderContext( | |
4631 | + data, | |
4632 | + props, | |
4633 | + children, | |
4634 | + contextVm, | |
4635 | + Ctor | |
4636 | + ); | |
4637 | + | |
4638 | + var vnode = options.render.call(null, renderContext._c, renderContext); | |
4639 | + | |
4640 | + if (vnode instanceof VNode) { | |
4641 | + return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext) | |
4642 | + } else if (Array.isArray(vnode)) { | |
4643 | + var vnodes = normalizeChildren(vnode) || []; | |
4644 | + var res = new Array(vnodes.length); | |
4645 | + for (var i = 0; i < vnodes.length; i++) { | |
4646 | + res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext); | |
4647 | + } | |
4648 | + return res | |
4649 | + } | |
4650 | +} | |
4651 | + | |
4652 | +function cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) { | |
4653 | + // #7817 clone node before setting fnContext, otherwise if the node is reused | |
4654 | + // (e.g. it was from a cached normal slot) the fnContext causes named slots | |
4655 | + // that should not be matched to match. | |
4656 | + var clone = cloneVNode(vnode); | |
4657 | + clone.fnContext = contextVm; | |
4658 | + clone.fnOptions = options; | |
4659 | + if (true) { | |
4660 | + (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext; | |
4661 | + } | |
4662 | + if (data.slot) { | |
4663 | + (clone.data || (clone.data = {})).slot = data.slot; | |
4664 | + } | |
4665 | + return clone | |
4666 | +} | |
4667 | + | |
4668 | +function mergeProps (to, from) { | |
4669 | + for (var key in from) { | |
4670 | + to[camelize(key)] = from[key]; | |
4671 | + } | |
4672 | +} | |
4673 | + | |
4674 | +/* */ | |
4675 | + | |
4676 | +/* */ | |
4677 | + | |
4678 | +/* */ | |
4679 | + | |
4680 | +/* */ | |
4681 | + | |
4682 | +// inline hooks to be invoked on component VNodes during patch | |
4683 | +var componentVNodeHooks = { | |
4684 | + init: function init (vnode, hydrating) { | |
4685 | + if ( | |
4686 | + vnode.componentInstance && | |
4687 | + !vnode.componentInstance._isDestroyed && | |
4688 | + vnode.data.keepAlive | |
4689 | + ) { | |
4690 | + // kept-alive components, treat as a patch | |
4691 | + var mountedNode = vnode; // work around flow | |
4692 | + componentVNodeHooks.prepatch(mountedNode, mountedNode); | |
4693 | + } else { | |
4694 | + var child = vnode.componentInstance = createComponentInstanceForVnode( | |
4695 | + vnode, | |
4696 | + activeInstance | |
4697 | + ); | |
4698 | + child.$mount(hydrating ? vnode.elm : undefined, hydrating); | |
4699 | + } | |
4700 | + }, | |
4701 | + | |
4702 | + prepatch: function prepatch (oldVnode, vnode) { | |
4703 | + var options = vnode.componentOptions; | |
4704 | + var child = vnode.componentInstance = oldVnode.componentInstance; | |
4705 | + updateChildComponent( | |
4706 | + child, | |
4707 | + options.propsData, // updated props | |
4708 | + options.listeners, // updated listeners | |
4709 | + vnode, // new parent vnode | |
4710 | + options.children // new children | |
4711 | + ); | |
4712 | + }, | |
4713 | + | |
4714 | + insert: function insert (vnode) { | |
4715 | + var context = vnode.context; | |
4716 | + var componentInstance = vnode.componentInstance; | |
4717 | + if (!componentInstance._isMounted) { | |
4718 | + callHook(componentInstance, 'onServiceCreated'); | |
4719 | + callHook(componentInstance, 'onServiceAttached'); | |
4720 | + componentInstance._isMounted = true; | |
4721 | + callHook(componentInstance, 'mounted'); | |
4722 | + } | |
4723 | + if (vnode.data.keepAlive) { | |
4724 | + if (context._isMounted) { | |
4725 | + // vue-router#1212 | |
4726 | + // During updates, a kept-alive component's child components may | |
4727 | + // change, so directly walking the tree here may call activated hooks | |
4728 | + // on incorrect children. Instead we push them into a queue which will | |
4729 | + // be processed after the whole patch process ended. | |
4730 | + queueActivatedComponent(componentInstance); | |
4731 | + } else { | |
4732 | + activateChildComponent(componentInstance, true /* direct */); | |
4733 | + } | |
4734 | + } | |
4735 | + }, | |
4736 | + | |
4737 | + destroy: function destroy (vnode) { | |
4738 | + var componentInstance = vnode.componentInstance; | |
4739 | + if (!componentInstance._isDestroyed) { | |
4740 | + if (!vnode.data.keepAlive) { | |
4741 | + componentInstance.$destroy(); | |
4742 | + } else { | |
4743 | + deactivateChildComponent(componentInstance, true /* direct */); | |
4744 | + } | |
4745 | + } | |
4746 | + } | |
4747 | +}; | |
4748 | + | |
4749 | +var hooksToMerge = Object.keys(componentVNodeHooks); | |
4750 | + | |
4751 | +function createComponent ( | |
4752 | + Ctor, | |
4753 | + data, | |
4754 | + context, | |
4755 | + children, | |
4756 | + tag | |
4757 | +) { | |
4758 | + if (isUndef(Ctor)) { | |
4759 | + return | |
4760 | + } | |
4761 | + | |
4762 | + var baseCtor = context.$options._base; | |
4763 | + | |
4764 | + // plain options object: turn it into a constructor | |
4765 | + if (isObject(Ctor)) { | |
4766 | + Ctor = baseCtor.extend(Ctor); | |
4767 | + } | |
4768 | + | |
4769 | + // if at this stage it's not a constructor or an async component factory, | |
4770 | + // reject. | |
4771 | + if (typeof Ctor !== 'function') { | |
4772 | + if (true) { | |
4773 | + warn(("Invalid Component definition: " + (String(Ctor))), context); | |
4774 | + } | |
4775 | + return | |
4776 | + } | |
4777 | + | |
4778 | + // async component | |
4779 | + var asyncFactory; | |
4780 | + if (isUndef(Ctor.cid)) { | |
4781 | + asyncFactory = Ctor; | |
4782 | + Ctor = resolveAsyncComponent(asyncFactory, baseCtor); | |
4783 | + if (Ctor === undefined) { | |
4784 | + // return a placeholder node for async component, which is rendered | |
4785 | + // as a comment node but preserves all the raw information for the node. | |
4786 | + // the information will be used for async server-rendering and hydration. | |
4787 | + return createAsyncPlaceholder( | |
4788 | + asyncFactory, | |
4789 | + data, | |
4790 | + context, | |
4791 | + children, | |
4792 | + tag | |
4793 | + ) | |
4794 | + } | |
4795 | + } | |
4796 | + | |
4797 | + data = data || {}; | |
4798 | + | |
4799 | + // resolve constructor options in case global mixins are applied after | |
4800 | + // component constructor creation | |
4801 | + resolveConstructorOptions(Ctor); | |
4802 | + | |
4803 | + // transform component v-model data into props & events | |
4804 | + if (isDef(data.model)) { | |
4805 | + transformModel(Ctor.options, data); | |
4806 | + } | |
4807 | + | |
4808 | + // extract props | |
4809 | + var propsData = extractPropsFromVNodeData(data, Ctor, tag, context); // fixed by xxxxxx | |
4810 | + | |
4811 | + // functional component | |
4812 | + if (isTrue(Ctor.options.functional)) { | |
4813 | + return createFunctionalComponent(Ctor, propsData, data, context, children) | |
4814 | + } | |
4815 | + | |
4816 | + // extract listeners, since these needs to be treated as | |
4817 | + // child component listeners instead of DOM listeners | |
4818 | + var listeners = data.on; | |
4819 | + // replace with listeners with .native modifier | |
4820 | + // so it gets processed during parent component patch. | |
4821 | + data.on = data.nativeOn; | |
4822 | + | |
4823 | + if (isTrue(Ctor.options.abstract)) { | |
4824 | + // abstract components do not keep anything | |
4825 | + // other than props & listeners & slot | |
4826 | + | |
4827 | + // work around flow | |
4828 | + var slot = data.slot; | |
4829 | + data = {}; | |
4830 | + if (slot) { | |
4831 | + data.slot = slot; | |
4832 | + } | |
4833 | + } | |
4834 | + | |
4835 | + // install component management hooks onto the placeholder node | |
4836 | + installComponentHooks(data); | |
4837 | + | |
4838 | + // return a placeholder vnode | |
4839 | + var name = Ctor.options.name || tag; | |
4840 | + var vnode = new VNode( | |
4841 | + ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')), | |
4842 | + data, undefined, undefined, undefined, context, | |
4843 | + { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children }, | |
4844 | + asyncFactory | |
4845 | + ); | |
4846 | + | |
4847 | + return vnode | |
4848 | +} | |
4849 | + | |
4850 | +function createComponentInstanceForVnode ( | |
4851 | + vnode, // we know it's MountedComponentVNode but flow doesn't | |
4852 | + parent // activeInstance in lifecycle state | |
4853 | +) { | |
4854 | + var options = { | |
4855 | + _isComponent: true, | |
4856 | + _parentVnode: vnode, | |
4857 | + parent: parent | |
4858 | + }; | |
4859 | + // check inline-template render functions | |
4860 | + var inlineTemplate = vnode.data.inlineTemplate; | |
4861 | + if (isDef(inlineTemplate)) { | |
4862 | + options.render = inlineTemplate.render; | |
4863 | + options.staticRenderFns = inlineTemplate.staticRenderFns; | |
4864 | + } | |
4865 | + return new vnode.componentOptions.Ctor(options) | |
4866 | +} | |
4867 | + | |
4868 | +function installComponentHooks (data) { | |
4869 | + var hooks = data.hook || (data.hook = {}); | |
4870 | + for (var i = 0; i < hooksToMerge.length; i++) { | |
4871 | + var key = hooksToMerge[i]; | |
4872 | + var existing = hooks[key]; | |
4873 | + var toMerge = componentVNodeHooks[key]; | |
4874 | + if (existing !== toMerge && !(existing && existing._merged)) { | |
4875 | + hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge; | |
4876 | + } | |
4877 | + } | |
4878 | +} | |
4879 | + | |
4880 | +function mergeHook$1 (f1, f2) { | |
4881 | + var merged = function (a, b) { | |
4882 | + // flow complains about extra args which is why we use any | |
4883 | + f1(a, b); | |
4884 | + f2(a, b); | |
4885 | + }; | |
4886 | + merged._merged = true; | |
4887 | + return merged | |
4888 | +} | |
4889 | + | |
4890 | +// transform component v-model info (value and callback) into | |
4891 | +// prop and event handler respectively. | |
4892 | +function transformModel (options, data) { | |
4893 | + var prop = (options.model && options.model.prop) || 'value'; | |
4894 | + var event = (options.model && options.model.event) || 'input' | |
4895 | + ;(data.attrs || (data.attrs = {}))[prop] = data.model.value; | |
4896 | + var on = data.on || (data.on = {}); | |
4897 | + var existing = on[event]; | |
4898 | + var callback = data.model.callback; | |
4899 | + if (isDef(existing)) { | |
4900 | + if ( | |
4901 | + Array.isArray(existing) | |
4902 | + ? existing.indexOf(callback) === -1 | |
4903 | + : existing !== callback | |
4904 | + ) { | |
4905 | + on[event] = [callback].concat(existing); | |
4906 | + } | |
4907 | + } else { | |
4908 | + on[event] = callback; | |
4909 | + } | |
4910 | +} | |
4911 | + | |
4912 | +/* */ | |
4913 | + | |
4914 | +var SIMPLE_NORMALIZE = 1; | |
4915 | +var ALWAYS_NORMALIZE = 2; | |
4916 | + | |
4917 | +// wrapper function for providing a more flexible interface | |
4918 | +// without getting yelled at by flow | |
4919 | +function createElement ( | |
4920 | + context, | |
4921 | + tag, | |
4922 | + data, | |
4923 | + children, | |
4924 | + normalizationType, | |
4925 | + alwaysNormalize | |
4926 | +) { | |
4927 | + if (Array.isArray(data) || isPrimitive(data)) { | |
4928 | + normalizationType = children; | |
4929 | + children = data; | |
4930 | + data = undefined; | |
4931 | + } | |
4932 | + if (isTrue(alwaysNormalize)) { | |
4933 | + normalizationType = ALWAYS_NORMALIZE; | |
4934 | + } | |
4935 | + return _createElement(context, tag, data, children, normalizationType) | |
4936 | +} | |
4937 | + | |
4938 | +function _createElement ( | |
4939 | + context, | |
4940 | + tag, | |
4941 | + data, | |
4942 | + children, | |
4943 | + normalizationType | |
4944 | +) { | |
4945 | + if (isDef(data) && isDef((data).__ob__)) { | |
4946 | + true && warn( | |
4947 | + "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" + | |
4948 | + 'Always create fresh vnode data objects in each render!', | |
4949 | + context | |
4950 | + ); | |
4951 | + return createEmptyVNode() | |
4952 | + } | |
4953 | + // object syntax in v-bind | |
4954 | + if (isDef(data) && isDef(data.is)) { | |
4955 | + tag = data.is; | |
4956 | + } | |
4957 | + if (!tag) { | |
4958 | + // in case of component :is set to falsy value | |
4959 | + return createEmptyVNode() | |
4960 | + } | |
4961 | + // warn against non-primitive key | |
4962 | + if ( true && | |
4963 | + isDef(data) && isDef(data.key) && !isPrimitive(data.key) | |
4964 | + ) { | |
4965 | + { | |
4966 | + warn( | |
4967 | + 'Avoid using non-primitive value as key, ' + | |
4968 | + 'use string/number value instead.', | |
4969 | + context | |
4970 | + ); | |
4971 | + } | |
4972 | + } | |
4973 | + // support single function children as default scoped slot | |
4974 | + if (Array.isArray(children) && | |
4975 | + typeof children[0] === 'function' | |
4976 | + ) { | |
4977 | + data = data || {}; | |
4978 | + data.scopedSlots = { default: children[0] }; | |
4979 | + children.length = 0; | |
4980 | + } | |
4981 | + if (normalizationType === ALWAYS_NORMALIZE) { | |
4982 | + children = normalizeChildren(children); | |
4983 | + } else if (normalizationType === SIMPLE_NORMALIZE) { | |
4984 | + children = simpleNormalizeChildren(children); | |
4985 | + } | |
4986 | + var vnode, ns; | |
4987 | + if (typeof tag === 'string') { | |
4988 | + var Ctor; | |
4989 | + ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag); | |
4990 | + if (config.isReservedTag(tag)) { | |
4991 | + // platform built-in elements | |
4992 | + if ( true && isDef(data) && isDef(data.nativeOn)) { | |
4993 | + warn( | |
4994 | + ("The .native modifier for v-on is only valid on components but it was used on <" + tag + ">."), | |
4995 | + context | |
4996 | + ); | |
4997 | + } | |
4998 | + vnode = new VNode( | |
4999 | + config.parsePlatformTagName(tag), data, children, | |
5000 | + undefined, undefined, context | |
5001 | + ); | |
5002 | + } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) { | |
5003 | + // component | |
5004 | + vnode = createComponent(Ctor, data, context, children, tag); | |
5005 | + } else { | |
5006 | + // unknown or unlisted namespaced elements | |
5007 | + // check at runtime because it may get assigned a namespace when its | |
5008 | + // parent normalizes children | |
5009 | + vnode = new VNode( | |
5010 | + tag, data, children, | |
5011 | + undefined, undefined, context | |
5012 | + ); | |
5013 | + } | |
5014 | + } else { | |
5015 | + // direct component options / constructor | |
5016 | + vnode = createComponent(tag, data, context, children); | |
5017 | + } | |
5018 | + if (Array.isArray(vnode)) { | |
5019 | + return vnode | |
5020 | + } else if (isDef(vnode)) { | |
5021 | + if (isDef(ns)) { applyNS(vnode, ns); } | |
5022 | + if (isDef(data)) { registerDeepBindings(data); } | |
5023 | + return vnode | |
5024 | + } else { | |
5025 | + return createEmptyVNode() | |
5026 | + } | |
5027 | +} | |
5028 | + | |
5029 | +function applyNS (vnode, ns, force) { | |
5030 | + vnode.ns = ns; | |
5031 | + if (vnode.tag === 'foreignObject') { | |
5032 | + // use default namespace inside foreignObject | |
5033 | + ns = undefined; | |
5034 | + force = true; | |
5035 | + } | |
5036 | + if (isDef(vnode.children)) { | |
5037 | + for (var i = 0, l = vnode.children.length; i < l; i++) { | |
5038 | + var child = vnode.children[i]; | |
5039 | + if (isDef(child.tag) && ( | |
5040 | + isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) { | |
5041 | + applyNS(child, ns, force); | |
5042 | + } | |
5043 | + } | |
5044 | + } | |
5045 | +} | |
5046 | + | |
5047 | +// ref #5318 | |
5048 | +// necessary to ensure parent re-render when deep bindings like :style and | |
5049 | +// :class are used on slot nodes | |
5050 | +function registerDeepBindings (data) { | |
5051 | + if (isObject(data.style)) { | |
5052 | + traverse(data.style); | |
5053 | + } | |
5054 | + if (isObject(data.class)) { | |
5055 | + traverse(data.class); | |
5056 | + } | |
5057 | +} | |
5058 | + | |
5059 | +/* */ | |
5060 | + | |
5061 | +function initRender (vm) { | |
5062 | + vm._vnode = null; // the root of the child tree | |
5063 | + vm._staticTrees = null; // v-once cached trees | |
5064 | + var options = vm.$options; | |
5065 | + var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree | |
5066 | + var renderContext = parentVnode && parentVnode.context; | |
5067 | + vm.$slots = resolveSlots(options._renderChildren, renderContext); | |
5068 | + vm.$scopedSlots = emptyObject; | |
5069 | + // bind the createElement fn to this instance | |
5070 | + // so that we get proper render context inside it. | |
5071 | + // args order: tag, data, children, normalizationType, alwaysNormalize | |
5072 | + // internal version is used by render functions compiled from templates | |
5073 | + vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); }; | |
5074 | + // normalization is always applied for the public version, used in | |
5075 | + // user-written render functions. | |
5076 | + vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); }; | |
5077 | + | |
5078 | + // $attrs & $listeners are exposed for easier HOC creation. | |
5079 | + // they need to be reactive so that HOCs using them are always updated | |
5080 | + var parentData = parentVnode && parentVnode.data; | |
5081 | + | |
5082 | + /* istanbul ignore else */ | |
5083 | + if (true) { | |
5084 | + defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () { | |
5085 | + !isUpdatingChildComponent && warn("$attrs is readonly.", vm); | |
5086 | + }, true); | |
5087 | + defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () { | |
5088 | + !isUpdatingChildComponent && warn("$listeners is readonly.", vm); | |
5089 | + }, true); | |
5090 | + } else {} | |
5091 | +} | |
5092 | + | |
5093 | +var currentRenderingInstance = null; | |
5094 | + | |
5095 | +function renderMixin (Vue) { | |
5096 | + // install runtime convenience helpers | |
5097 | + installRenderHelpers(Vue.prototype); | |
5098 | + | |
5099 | + Vue.prototype.$nextTick = function (fn) { | |
5100 | + return nextTick(fn, this) | |
5101 | + }; | |
5102 | + | |
5103 | + Vue.prototype._render = function () { | |
5104 | + var vm = this; | |
5105 | + var ref = vm.$options; | |
5106 | + var render = ref.render; | |
5107 | + var _parentVnode = ref._parentVnode; | |
5108 | + | |
5109 | + if (_parentVnode) { | |
5110 | + vm.$scopedSlots = normalizeScopedSlots( | |
5111 | + _parentVnode.data.scopedSlots, | |
5112 | + vm.$slots, | |
5113 | + vm.$scopedSlots | |
5114 | + ); | |
5115 | + } | |
5116 | + | |
5117 | + // set parent vnode. this allows render functions to have access | |
5118 | + // to the data on the placeholder node. | |
5119 | + vm.$vnode = _parentVnode; | |
5120 | + // render self | |
5121 | + var vnode; | |
5122 | + try { | |
5123 | + // There's no need to maintain a stack because all render fns are called | |
5124 | + // separately from one another. Nested component's render fns are called | |
5125 | + // when parent component is patched. | |
5126 | + currentRenderingInstance = vm; | |
5127 | + vnode = render.call(vm._renderProxy, vm.$createElement); | |
5128 | + } catch (e) { | |
5129 | + handleError(e, vm, "render"); | |
5130 | + // return error render result, | |
5131 | + // or previous vnode to prevent render error causing blank component | |
5132 | + /* istanbul ignore else */ | |
5133 | + if ( true && vm.$options.renderError) { | |
5134 | + try { | |
5135 | + vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e); | |
5136 | + } catch (e) { | |
5137 | + handleError(e, vm, "renderError"); | |
5138 | + vnode = vm._vnode; | |
5139 | + } | |
5140 | + } else { | |
5141 | + vnode = vm._vnode; | |
5142 | + } | |
5143 | + } finally { | |
5144 | + currentRenderingInstance = null; | |
5145 | + } | |
5146 | + // if the returned array contains only a single node, allow it | |
5147 | + if (Array.isArray(vnode) && vnode.length === 1) { | |
5148 | + vnode = vnode[0]; | |
5149 | + } | |
5150 | + // return empty vnode in case the render function errored out | |
5151 | + if (!(vnode instanceof VNode)) { | |
5152 | + if ( true && Array.isArray(vnode)) { | |
5153 | + warn( | |
5154 | + 'Multiple root nodes returned from render function. Render function ' + | |
5155 | + 'should return a single root node.', | |
5156 | + vm | |
5157 | + ); | |
5158 | + } | |
5159 | + vnode = createEmptyVNode(); | |
5160 | + } | |
5161 | + // set parent | |
5162 | + vnode.parent = _parentVnode; | |
5163 | + return vnode | |
5164 | + }; | |
5165 | +} | |
5166 | + | |
5167 | +/* */ | |
5168 | + | |
5169 | +function ensureCtor (comp, base) { | |
5170 | + if ( | |
5171 | + comp.__esModule || | |
5172 | + (hasSymbol && comp[Symbol.toStringTag] === 'Module') | |
5173 | + ) { | |
5174 | + comp = comp.default; | |
5175 | + } | |
5176 | + return isObject(comp) | |
5177 | + ? base.extend(comp) | |
5178 | + : comp | |
5179 | +} | |
5180 | + | |
5181 | +function createAsyncPlaceholder ( | |
5182 | + factory, | |
5183 | + data, | |
5184 | + context, | |
5185 | + children, | |
5186 | + tag | |
5187 | +) { | |
5188 | + var node = createEmptyVNode(); | |
5189 | + node.asyncFactory = factory; | |
5190 | + node.asyncMeta = { data: data, context: context, children: children, tag: tag }; | |
5191 | + return node | |
5192 | +} | |
5193 | + | |
5194 | +function resolveAsyncComponent ( | |
5195 | + factory, | |
5196 | + baseCtor | |
5197 | +) { | |
5198 | + if (isTrue(factory.error) && isDef(factory.errorComp)) { | |
5199 | + return factory.errorComp | |
5200 | + } | |
5201 | + | |
5202 | + if (isDef(factory.resolved)) { | |
5203 | + return factory.resolved | |
5204 | + } | |
5205 | + | |
5206 | + var owner = currentRenderingInstance; | |
5207 | + if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) { | |
5208 | + // already pending | |
5209 | + factory.owners.push(owner); | |
5210 | + } | |
5211 | + | |
5212 | + if (isTrue(factory.loading) && isDef(factory.loadingComp)) { | |
5213 | + return factory.loadingComp | |
5214 | + } | |
5215 | + | |
5216 | + if (owner && !isDef(factory.owners)) { | |
5217 | + var owners = factory.owners = [owner]; | |
5218 | + var sync = true; | |
5219 | + var timerLoading = null; | |
5220 | + var timerTimeout = null | |
5221 | + | |
5222 | + ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); }); | |
5223 | + | |
5224 | + var forceRender = function (renderCompleted) { | |
5225 | + for (var i = 0, l = owners.length; i < l; i++) { | |
5226 | + (owners[i]).$forceUpdate(); | |
5227 | + } | |
5228 | + | |
5229 | + if (renderCompleted) { | |
5230 | + owners.length = 0; | |
5231 | + if (timerLoading !== null) { | |
5232 | + clearTimeout(timerLoading); | |
5233 | + timerLoading = null; | |
5234 | + } | |
5235 | + if (timerTimeout !== null) { | |
5236 | + clearTimeout(timerTimeout); | |
5237 | + timerTimeout = null; | |
5238 | + } | |
5239 | + } | |
5240 | + }; | |
5241 | + | |
5242 | + var resolve = once(function (res) { | |
5243 | + // cache resolved | |
5244 | + factory.resolved = ensureCtor(res, baseCtor); | |
5245 | + // invoke callbacks only if this is not a synchronous resolve | |
5246 | + // (async resolves are shimmed as synchronous during SSR) | |
5247 | + if (!sync) { | |
5248 | + forceRender(true); | |
5249 | + } else { | |
5250 | + owners.length = 0; | |
5251 | + } | |
5252 | + }); | |
5253 | + | |
5254 | + var reject = once(function (reason) { | |
5255 | + true && warn( | |
5256 | + "Failed to resolve async component: " + (String(factory)) + | |
5257 | + (reason ? ("\nReason: " + reason) : '') | |
5258 | + ); | |
5259 | + if (isDef(factory.errorComp)) { | |
5260 | + factory.error = true; | |
5261 | + forceRender(true); | |
5262 | + } | |
5263 | + }); | |
5264 | + | |
5265 | + var res = factory(resolve, reject); | |
5266 | + | |
5267 | + if (isObject(res)) { | |
5268 | + if (isPromise(res)) { | |
5269 | + // () => Promise | |
5270 | + if (isUndef(factory.resolved)) { | |
5271 | + res.then(resolve, reject); | |
5272 | + } | |
5273 | + } else if (isPromise(res.component)) { | |
5274 | + res.component.then(resolve, reject); | |
5275 | + | |
5276 | + if (isDef(res.error)) { | |
5277 | + factory.errorComp = ensureCtor(res.error, baseCtor); | |
5278 | + } | |
5279 | + | |
5280 | + if (isDef(res.loading)) { | |
5281 | + factory.loadingComp = ensureCtor(res.loading, baseCtor); | |
5282 | + if (res.delay === 0) { | |
5283 | + factory.loading = true; | |
5284 | + } else { | |
5285 | + timerLoading = setTimeout(function () { | |
5286 | + timerLoading = null; | |
5287 | + if (isUndef(factory.resolved) && isUndef(factory.error)) { | |
5288 | + factory.loading = true; | |
5289 | + forceRender(false); | |
5290 | + } | |
5291 | + }, res.delay || 200); | |
5292 | + } | |
5293 | + } | |
5294 | + | |
5295 | + if (isDef(res.timeout)) { | |
5296 | + timerTimeout = setTimeout(function () { | |
5297 | + timerTimeout = null; | |
5298 | + if (isUndef(factory.resolved)) { | |
5299 | + reject( | |
5300 | + true | |
5301 | + ? ("timeout (" + (res.timeout) + "ms)") | |
5302 | + : undefined | |
5303 | + ); | |
5304 | + } | |
5305 | + }, res.timeout); | |
5306 | + } | |
5307 | + } | |
5308 | + } | |
5309 | + | |
5310 | + sync = false; | |
5311 | + // return in case resolved synchronously | |
5312 | + return factory.loading | |
5313 | + ? factory.loadingComp | |
5314 | + : factory.resolved | |
5315 | + } | |
5316 | +} | |
5317 | + | |
5318 | +/* */ | |
5319 | + | |
5320 | +function isAsyncPlaceholder (node) { | |
5321 | + return node.isComment && node.asyncFactory | |
5322 | +} | |
5323 | + | |
5324 | +/* */ | |
5325 | + | |
5326 | +function getFirstComponentChild (children) { | |
5327 | + if (Array.isArray(children)) { | |
5328 | + for (var i = 0; i < children.length; i++) { | |
5329 | + var c = children[i]; | |
5330 | + if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) { | |
5331 | + return c | |
5332 | + } | |
5333 | + } | |
5334 | + } | |
5335 | +} | |
5336 | + | |
5337 | +/* */ | |
5338 | + | |
5339 | +/* */ | |
5340 | + | |
5341 | +function initEvents (vm) { | |
5342 | + vm._events = Object.create(null); | |
5343 | + vm._hasHookEvent = false; | |
5344 | + // init parent attached events | |
5345 | + var listeners = vm.$options._parentListeners; | |
5346 | + if (listeners) { | |
5347 | + updateComponentListeners(vm, listeners); | |
5348 | + } | |
5349 | +} | |
5350 | + | |
5351 | +var target; | |
5352 | + | |
5353 | +function add (event, fn) { | |
5354 | + target.$on(event, fn); | |
5355 | +} | |
5356 | + | |
5357 | +function remove$1 (event, fn) { | |
5358 | + target.$off(event, fn); | |
5359 | +} | |
5360 | + | |
5361 | +function createOnceHandler (event, fn) { | |
5362 | + var _target = target; | |
5363 | + return function onceHandler () { | |
5364 | + var res = fn.apply(null, arguments); | |
5365 | + if (res !== null) { | |
5366 | + _target.$off(event, onceHandler); | |
5367 | + } | |
5368 | + } | |
5369 | +} | |
5370 | + | |
5371 | +function updateComponentListeners ( | |
5372 | + vm, | |
5373 | + listeners, | |
5374 | + oldListeners | |
5375 | +) { | |
5376 | + target = vm; | |
5377 | + updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm); | |
5378 | + target = undefined; | |
5379 | +} | |
5380 | + | |
5381 | +function eventsMixin (Vue) { | |
5382 | + var hookRE = /^hook:/; | |
5383 | + Vue.prototype.$on = function (event, fn) { | |
5384 | + var vm = this; | |
5385 | + if (Array.isArray(event)) { | |
5386 | + for (var i = 0, l = event.length; i < l; i++) { | |
5387 | + vm.$on(event[i], fn); | |
5388 | + } | |
5389 | + } else { | |
5390 | + (vm._events[event] || (vm._events[event] = [])).push(fn); | |
5391 | + // optimize hook:event cost by using a boolean flag marked at registration | |
5392 | + // instead of a hash lookup | |
5393 | + if (hookRE.test(event)) { | |
5394 | + vm._hasHookEvent = true; | |
5395 | + } | |
5396 | + } | |
5397 | + return vm | |
5398 | + }; | |
5399 | + | |
5400 | + Vue.prototype.$once = function (event, fn) { | |
5401 | + var vm = this; | |
5402 | + function on () { | |
5403 | + vm.$off(event, on); | |
5404 | + fn.apply(vm, arguments); | |
5405 | + } | |
5406 | + on.fn = fn; | |
5407 | + vm.$on(event, on); | |
5408 | + return vm | |
5409 | + }; | |
5410 | + | |
5411 | + Vue.prototype.$off = function (event, fn) { | |
5412 | + var vm = this; | |
5413 | + // all | |
5414 | + if (!arguments.length) { | |
5415 | + vm._events = Object.create(null); | |
5416 | + return vm | |
5417 | + } | |
5418 | + // array of events | |
5419 | + if (Array.isArray(event)) { | |
5420 | + for (var i$1 = 0, l = event.length; i$1 < l; i$1++) { | |
5421 | + vm.$off(event[i$1], fn); | |
5422 | + } | |
5423 | + return vm | |
5424 | + } | |
5425 | + // specific event | |
5426 | + var cbs = vm._events[event]; | |
5427 | + if (!cbs) { | |
5428 | + return vm | |
5429 | + } | |
5430 | + if (!fn) { | |
5431 | + vm._events[event] = null; | |
5432 | + return vm | |
5433 | + } | |
5434 | + // specific handler | |
5435 | + var cb; | |
5436 | + var i = cbs.length; | |
5437 | + while (i--) { | |
5438 | + cb = cbs[i]; | |
5439 | + if (cb === fn || cb.fn === fn) { | |
5440 | + cbs.splice(i, 1); | |
5441 | + break | |
5442 | + } | |
5443 | + } | |
5444 | + return vm | |
5445 | + }; | |
5446 | + | |
5447 | + Vue.prototype.$emit = function (event) { | |
5448 | + var vm = this; | |
5449 | + if (true) { | |
5450 | + var lowerCaseEvent = event.toLowerCase(); | |
5451 | + if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) { | |
5452 | + tip( | |
5453 | + "Event \"" + lowerCaseEvent + "\" is emitted in component " + | |
5454 | + (formatComponentName(vm)) + " but the handler is registered for \"" + event + "\". " + | |
5455 | + "Note that HTML attributes are case-insensitive and you cannot use " + | |
5456 | + "v-on to listen to camelCase events when using in-DOM templates. " + | |
5457 | + "You should probably use \"" + (hyphenate(event)) + "\" instead of \"" + event + "\"." | |
5458 | + ); | |
5459 | + } | |
5460 | + } | |
5461 | + var cbs = vm._events[event]; | |
5462 | + if (cbs) { | |
5463 | + cbs = cbs.length > 1 ? toArray(cbs) : cbs; | |
5464 | + var args = toArray(arguments, 1); | |
5465 | + var info = "event handler for \"" + event + "\""; | |
5466 | + for (var i = 0, l = cbs.length; i < l; i++) { | |
5467 | + invokeWithErrorHandling(cbs[i], vm, args, vm, info); | |
5468 | + } | |
5469 | + } | |
5470 | + return vm | |
5471 | + }; | |
5472 | +} | |
5473 | + | |
5474 | +/* */ | |
5475 | + | |
5476 | +var activeInstance = null; | |
5477 | +var isUpdatingChildComponent = false; | |
5478 | + | |
5479 | +function setActiveInstance(vm) { | |
5480 | + var prevActiveInstance = activeInstance; | |
5481 | + activeInstance = vm; | |
5482 | + return function () { | |
5483 | + activeInstance = prevActiveInstance; | |
5484 | + } | |
5485 | +} | |
5486 | + | |
5487 | +function initLifecycle (vm) { | |
5488 | + var options = vm.$options; | |
5489 | + | |
5490 | + // locate first non-abstract parent | |
5491 | + var parent = options.parent; | |
5492 | + if (parent && !options.abstract) { | |
5493 | + while (parent.$options.abstract && parent.$parent) { | |
5494 | + parent = parent.$parent; | |
5495 | + } | |
5496 | + parent.$children.push(vm); | |
5497 | + } | |
5498 | + | |
5499 | + vm.$parent = parent; | |
5500 | + vm.$root = parent ? parent.$root : vm; | |
5501 | + | |
5502 | + vm.$children = []; | |
5503 | + vm.$refs = {}; | |
5504 | + | |
5505 | + vm._watcher = null; | |
5506 | + vm._inactive = null; | |
5507 | + vm._directInactive = false; | |
5508 | + vm._isMounted = false; | |
5509 | + vm._isDestroyed = false; | |
5510 | + vm._isBeingDestroyed = false; | |
5511 | +} | |
5512 | + | |
5513 | +function lifecycleMixin (Vue) { | |
5514 | + Vue.prototype._update = function (vnode, hydrating) { | |
5515 | + var vm = this; | |
5516 | + var prevEl = vm.$el; | |
5517 | + var prevVnode = vm._vnode; | |
5518 | + var restoreActiveInstance = setActiveInstance(vm); | |
5519 | + vm._vnode = vnode; | |
5520 | + // Vue.prototype.__patch__ is injected in entry points | |
5521 | + // based on the rendering backend used. | |
5522 | + if (!prevVnode) { | |
5523 | + // initial render | |
5524 | + vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */); | |
5525 | + } else { | |
5526 | + // updates | |
5527 | + vm.$el = vm.__patch__(prevVnode, vnode); | |
5528 | + } | |
5529 | + restoreActiveInstance(); | |
5530 | + // update __vue__ reference | |
5531 | + if (prevEl) { | |
5532 | + prevEl.__vue__ = null; | |
5533 | + } | |
5534 | + if (vm.$el) { | |
5535 | + vm.$el.__vue__ = vm; | |
5536 | + } | |
5537 | + // if parent is an HOC, update its $el as well | |
5538 | + if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) { | |
5539 | + vm.$parent.$el = vm.$el; | |
5540 | + } | |
5541 | + // updated hook is called by the scheduler to ensure that children are | |
5542 | + // updated in a parent's updated hook. | |
5543 | + }; | |
5544 | + | |
5545 | + Vue.prototype.$forceUpdate = function () { | |
5546 | + var vm = this; | |
5547 | + if (vm._watcher) { | |
5548 | + vm._watcher.update(); | |
5549 | + } | |
5550 | + }; | |
5551 | + | |
5552 | + Vue.prototype.$destroy = function () { | |
5553 | + var vm = this; | |
5554 | + if (vm._isBeingDestroyed) { | |
5555 | + return | |
5556 | + } | |
5557 | + callHook(vm, 'beforeDestroy'); | |
5558 | + vm._isBeingDestroyed = true; | |
5559 | + // remove self from parent | |
5560 | + var parent = vm.$parent; | |
5561 | + if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) { | |
5562 | + remove(parent.$children, vm); | |
5563 | + } | |
5564 | + // teardown watchers | |
5565 | + if (vm._watcher) { | |
5566 | + vm._watcher.teardown(); | |
5567 | + } | |
5568 | + var i = vm._watchers.length; | |
5569 | + while (i--) { | |
5570 | + vm._watchers[i].teardown(); | |
5571 | + } | |
5572 | + // remove reference from data ob | |
5573 | + // frozen object may not have observer. | |
5574 | + if (vm._data.__ob__) { | |
5575 | + vm._data.__ob__.vmCount--; | |
5576 | + } | |
5577 | + // call the last hook... | |
5578 | + vm._isDestroyed = true; | |
5579 | + // invoke destroy hooks on current rendered tree | |
5580 | + vm.__patch__(vm._vnode, null); | |
5581 | + // fire destroyed hook | |
5582 | + callHook(vm, 'destroyed'); | |
5583 | + // turn off all instance listeners. | |
5584 | + vm.$off(); | |
5585 | + // remove __vue__ reference | |
5586 | + if (vm.$el) { | |
5587 | + vm.$el.__vue__ = null; | |
5588 | + } | |
5589 | + // release circular reference (#6759) | |
5590 | + if (vm.$vnode) { | |
5591 | + vm.$vnode.parent = null; | |
5592 | + } | |
5593 | + }; | |
5594 | +} | |
5595 | + | |
5596 | +function updateChildComponent ( | |
5597 | + vm, | |
5598 | + propsData, | |
5599 | + listeners, | |
5600 | + parentVnode, | |
5601 | + renderChildren | |
5602 | +) { | |
5603 | + if (true) { | |
5604 | + isUpdatingChildComponent = true; | |
5605 | + } | |
5606 | + | |
5607 | + // determine whether component has slot children | |
5608 | + // we need to do this before overwriting $options._renderChildren. | |
5609 | + | |
5610 | + // check if there are dynamic scopedSlots (hand-written or compiled but with | |
5611 | + // dynamic slot names). Static scoped slots compiled from template has the | |
5612 | + // "$stable" marker. | |
5613 | + var newScopedSlots = parentVnode.data.scopedSlots; | |
5614 | + var oldScopedSlots = vm.$scopedSlots; | |
5615 | + var hasDynamicScopedSlot = !!( | |
5616 | + (newScopedSlots && !newScopedSlots.$stable) || | |
5617 | + (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) || | |
5618 | + (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key) | |
5619 | + ); | |
5620 | + | |
5621 | + // Any static slot children from the parent may have changed during parent's | |
5622 | + // update. Dynamic scoped slots may also have changed. In such cases, a forced | |
5623 | + // update is necessary to ensure correctness. | |
5624 | + var needsForceUpdate = !!( | |
5625 | + renderChildren || // has new static slots | |
5626 | + vm.$options._renderChildren || // has old static slots | |
5627 | + hasDynamicScopedSlot | |
5628 | + ); | |
5629 | + | |
5630 | + vm.$options._parentVnode = parentVnode; | |
5631 | + vm.$vnode = parentVnode; // update vm's placeholder node without re-render | |
5632 | + | |
5633 | + if (vm._vnode) { // update child tree's parent | |
5634 | + vm._vnode.parent = parentVnode; | |
5635 | + } | |
5636 | + vm.$options._renderChildren = renderChildren; | |
5637 | + | |
5638 | + // update $attrs and $listeners hash | |
5639 | + // these are also reactive so they may trigger child update if the child | |
5640 | + // used them during render | |
5641 | + vm.$attrs = parentVnode.data.attrs || emptyObject; | |
5642 | + vm.$listeners = listeners || emptyObject; | |
5643 | + | |
5644 | + // update props | |
5645 | + if (propsData && vm.$options.props) { | |
5646 | + toggleObserving(false); | |
5647 | + var props = vm._props; | |
5648 | + var propKeys = vm.$options._propKeys || []; | |
5649 | + for (var i = 0; i < propKeys.length; i++) { | |
5650 | + var key = propKeys[i]; | |
5651 | + var propOptions = vm.$options.props; // wtf flow? | |
5652 | + props[key] = validateProp(key, propOptions, propsData, vm); | |
5653 | + } | |
5654 | + toggleObserving(true); | |
5655 | + // keep a copy of raw propsData | |
5656 | + vm.$options.propsData = propsData; | |
5657 | + } | |
5658 | + | |
5659 | + // fixed by xxxxxx update properties(mp runtime) | |
5660 | + vm._$updateProperties && vm._$updateProperties(vm); | |
5661 | + | |
5662 | + // update listeners | |
5663 | + listeners = listeners || emptyObject; | |
5664 | + var oldListeners = vm.$options._parentListeners; | |
5665 | + vm.$options._parentListeners = listeners; | |
5666 | + updateComponentListeners(vm, listeners, oldListeners); | |
5667 | + | |
5668 | + // resolve slots + force update if has children | |
5669 | + if (needsForceUpdate) { | |
5670 | + vm.$slots = resolveSlots(renderChildren, parentVnode.context); | |
5671 | + vm.$forceUpdate(); | |
5672 | + } | |
5673 | + | |
5674 | + if (true) { | |
5675 | + isUpdatingChildComponent = false; | |
5676 | + } | |
5677 | +} | |
5678 | + | |
5679 | +function isInInactiveTree (vm) { | |
5680 | + while (vm && (vm = vm.$parent)) { | |
5681 | + if (vm._inactive) { return true } | |
5682 | + } | |
5683 | + return false | |
5684 | +} | |
5685 | + | |
5686 | +function activateChildComponent (vm, direct) { | |
5687 | + if (direct) { | |
5688 | + vm._directInactive = false; | |
5689 | + if (isInInactiveTree(vm)) { | |
5690 | + return | |
5691 | + } | |
5692 | + } else if (vm._directInactive) { | |
5693 | + return | |
5694 | + } | |
5695 | + if (vm._inactive || vm._inactive === null) { | |
5696 | + vm._inactive = false; | |
5697 | + for (var i = 0; i < vm.$children.length; i++) { | |
5698 | + activateChildComponent(vm.$children[i]); | |
5699 | + } | |
5700 | + callHook(vm, 'activated'); | |
5701 | + } | |
5702 | +} | |
5703 | + | |
5704 | +function deactivateChildComponent (vm, direct) { | |
5705 | + if (direct) { | |
5706 | + vm._directInactive = true; | |
5707 | + if (isInInactiveTree(vm)) { | |
5708 | + return | |
5709 | + } | |
5710 | + } | |
5711 | + if (!vm._inactive) { | |
5712 | + vm._inactive = true; | |
5713 | + for (var i = 0; i < vm.$children.length; i++) { | |
5714 | + deactivateChildComponent(vm.$children[i]); | |
5715 | + } | |
5716 | + callHook(vm, 'deactivated'); | |
5717 | + } | |
5718 | +} | |
5719 | + | |
5720 | +function callHook (vm, hook) { | |
5721 | + // #7573 disable dep collection when invoking lifecycle hooks | |
5722 | + pushTarget(); | |
5723 | + var handlers = vm.$options[hook]; | |
5724 | + var info = hook + " hook"; | |
5725 | + if (handlers) { | |
5726 | + for (var i = 0, j = handlers.length; i < j; i++) { | |
5727 | + invokeWithErrorHandling(handlers[i], vm, null, vm, info); | |
5728 | + } | |
5729 | + } | |
5730 | + if (vm._hasHookEvent) { | |
5731 | + vm.$emit('hook:' + hook); | |
5732 | + } | |
5733 | + popTarget(); | |
5734 | +} | |
5735 | + | |
5736 | +/* */ | |
5737 | + | |
5738 | +var MAX_UPDATE_COUNT = 100; | |
5739 | + | |
5740 | +var queue = []; | |
5741 | +var activatedChildren = []; | |
5742 | +var has = {}; | |
5743 | +var circular = {}; | |
5744 | +var waiting = false; | |
5745 | +var flushing = false; | |
5746 | +var index = 0; | |
5747 | + | |
5748 | +/** | |
5749 | + * Reset the scheduler's state. | |
5750 | + */ | |
5751 | +function resetSchedulerState () { | |
5752 | + index = queue.length = activatedChildren.length = 0; | |
5753 | + has = {}; | |
5754 | + if (true) { | |
5755 | + circular = {}; | |
5756 | + } | |
5757 | + waiting = flushing = false; | |
5758 | +} | |
5759 | + | |
5760 | +// Async edge case #6566 requires saving the timestamp when event listeners are | |
5761 | +// attached. However, calling performance.now() has a perf overhead especially | |
5762 | +// if the page has thousands of event listeners. Instead, we take a timestamp | |
5763 | +// every time the scheduler flushes and use that for all event listeners | |
5764 | +// attached during that flush. | |
5765 | +var currentFlushTimestamp = 0; | |
5766 | + | |
5767 | +// Async edge case fix requires storing an event listener's attach timestamp. | |
5768 | +var getNow = Date.now; | |
5769 | + | |
5770 | +// Determine what event timestamp the browser is using. Annoyingly, the | |
5771 | +// timestamp can either be hi-res (relative to page load) or low-res | |
5772 | +// (relative to UNIX epoch), so in order to compare time we have to use the | |
5773 | +// same timestamp type when saving the flush timestamp. | |
5774 | +// All IE versions use low-res event timestamps, and have problematic clock | |
5775 | +// implementations (#9632) | |
5776 | +if (inBrowser && !isIE) { | |
5777 | + var performance = window.performance; | |
5778 | + if ( | |
5779 | + performance && | |
5780 | + typeof performance.now === 'function' && | |
5781 | + getNow() > document.createEvent('Event').timeStamp | |
5782 | + ) { | |
5783 | + // if the event timestamp, although evaluated AFTER the Date.now(), is | |
5784 | + // smaller than it, it means the event is using a hi-res timestamp, | |
5785 | + // and we need to use the hi-res version for event listener timestamps as | |
5786 | + // well. | |
5787 | + getNow = function () { return performance.now(); }; | |
5788 | + } | |
5789 | +} | |
5790 | + | |
5791 | +/** | |
5792 | + * Flush both queues and run the watchers. | |
5793 | + */ | |
5794 | +function flushSchedulerQueue () { | |
5795 | + currentFlushTimestamp = getNow(); | |
5796 | + flushing = true; | |
5797 | + var watcher, id; | |
5798 | + | |
5799 | + // Sort queue before flush. | |
5800 | + // This ensures that: | |
5801 | + // 1. Components are updated from parent to child. (because parent is always | |
5802 | + // created before the child) | |
5803 | + // 2. A component's user watchers are run before its render watcher (because | |
5804 | + // user watchers are created before the render watcher) | |
5805 | + // 3. If a component is destroyed during a parent component's watcher run, | |
5806 | + // its watchers can be skipped. | |
5807 | + queue.sort(function (a, b) { return a.id - b.id; }); | |
5808 | + | |
5809 | + // do not cache length because more watchers might be pushed | |
5810 | + // as we run existing watchers | |
5811 | + for (index = 0; index < queue.length; index++) { | |
5812 | + watcher = queue[index]; | |
5813 | + if (watcher.before) { | |
5814 | + watcher.before(); | |
5815 | + } | |
5816 | + id = watcher.id; | |
5817 | + has[id] = null; | |
5818 | + watcher.run(); | |
5819 | + // in dev build, check and stop circular updates. | |
5820 | + if ( true && has[id] != null) { | |
5821 | + circular[id] = (circular[id] || 0) + 1; | |
5822 | + if (circular[id] > MAX_UPDATE_COUNT) { | |
5823 | + warn( | |
5824 | + 'You may have an infinite update loop ' + ( | |
5825 | + watcher.user | |
5826 | + ? ("in watcher with expression \"" + (watcher.expression) + "\"") | |
5827 | + : "in a component render function." | |
5828 | + ), | |
5829 | + watcher.vm | |
5830 | + ); | |
5831 | + break | |
5832 | + } | |
5833 | + } | |
5834 | + } | |
5835 | + | |
5836 | + // keep copies of post queues before resetting state | |
5837 | + var activatedQueue = activatedChildren.slice(); | |
5838 | + var updatedQueue = queue.slice(); | |
5839 | + | |
5840 | + resetSchedulerState(); | |
5841 | + | |
5842 | + // call component updated and activated hooks | |
5843 | + callActivatedHooks(activatedQueue); | |
5844 | + callUpdatedHooks(updatedQueue); | |
5845 | + | |
5846 | + // devtool hook | |
5847 | + /* istanbul ignore if */ | |
5848 | + if (devtools && config.devtools) { | |
5849 | + devtools.emit('flush'); | |
5850 | + } | |
5851 | +} | |
5852 | + | |
5853 | +function callUpdatedHooks (queue) { | |
5854 | + var i = queue.length; | |
5855 | + while (i--) { | |
5856 | + var watcher = queue[i]; | |
5857 | + var vm = watcher.vm; | |
5858 | + if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) { | |
5859 | + callHook(vm, 'updated'); | |
5860 | + } | |
5861 | + } | |
5862 | +} | |
5863 | + | |
5864 | +/** | |
5865 | + * Queue a kept-alive component that was activated during patch. | |
5866 | + * The queue will be processed after the entire tree has been patched. | |
5867 | + */ | |
5868 | +function queueActivatedComponent (vm) { | |
5869 | + // setting _inactive to false here so that a render function can | |
5870 | + // rely on checking whether it's in an inactive tree (e.g. router-view) | |
5871 | + vm._inactive = false; | |
5872 | + activatedChildren.push(vm); | |
5873 | +} | |
5874 | + | |
5875 | +function callActivatedHooks (queue) { | |
5876 | + for (var i = 0; i < queue.length; i++) { | |
5877 | + queue[i]._inactive = true; | |
5878 | + activateChildComponent(queue[i], true /* true */); | |
5879 | + } | |
5880 | +} | |
5881 | + | |
5882 | +/** | |
5883 | + * Push a watcher into the watcher queue. | |
5884 | + * Jobs with duplicate IDs will be skipped unless it's | |
5885 | + * pushed when the queue is being flushed. | |
5886 | + */ | |
5887 | +function queueWatcher (watcher) { | |
5888 | + var id = watcher.id; | |
5889 | + if (has[id] == null) { | |
5890 | + has[id] = true; | |
5891 | + if (!flushing) { | |
5892 | + queue.push(watcher); | |
5893 | + } else { | |
5894 | + // if already flushing, splice the watcher based on its id | |
5895 | + // if already past its id, it will be run next immediately. | |
5896 | + var i = queue.length - 1; | |
5897 | + while (i > index && queue[i].id > watcher.id) { | |
5898 | + i--; | |
5899 | + } | |
5900 | + queue.splice(i + 1, 0, watcher); | |
5901 | + } | |
5902 | + // queue the flush | |
5903 | + if (!waiting) { | |
5904 | + waiting = true; | |
5905 | + | |
5906 | + if ( true && !config.async) { | |
5907 | + flushSchedulerQueue(); | |
5908 | + return | |
5909 | + } | |
5910 | + nextTick(flushSchedulerQueue); | |
5911 | + } | |
5912 | + } | |
5913 | +} | |
5914 | + | |
5915 | +/* */ | |
5916 | + | |
5917 | + | |
5918 | + | |
5919 | +var uid$2 = 0; | |
5920 | + | |
5921 | +/** | |
5922 | + * A watcher parses an expression, collects dependencies, | |
5923 | + * and fires callback when the expression value changes. | |
5924 | + * This is used for both the $watch() api and directives. | |
5925 | + */ | |
5926 | +var Watcher = function Watcher ( | |
5927 | + vm, | |
5928 | + expOrFn, | |
5929 | + cb, | |
5930 | + options, | |
5931 | + isRenderWatcher | |
5932 | +) { | |
5933 | + this.vm = vm; | |
5934 | + if (isRenderWatcher) { | |
5935 | + vm._watcher = this; | |
5936 | + } | |
5937 | + vm._watchers.push(this); | |
5938 | + // options | |
5939 | + if (options) { | |
5940 | + this.deep = !!options.deep; | |
5941 | + this.user = !!options.user; | |
5942 | + this.lazy = !!options.lazy; | |
5943 | + this.sync = !!options.sync; | |
5944 | + this.before = options.before; | |
5945 | + } else { | |
5946 | + this.deep = this.user = this.lazy = this.sync = false; | |
5947 | + } | |
5948 | + this.cb = cb; | |
5949 | + this.id = ++uid$2; // uid for batching | |
5950 | + this.active = true; | |
5951 | + this.dirty = this.lazy; // for lazy watchers | |
5952 | + this.deps = []; | |
5953 | + this.newDeps = []; | |
5954 | + this.depIds = new _Set(); | |
5955 | + this.newDepIds = new _Set(); | |
5956 | + this.expression = true | |
5957 | + ? expOrFn.toString() | |
5958 | + : undefined; | |
5959 | + // parse expression for getter | |
5960 | + if (typeof expOrFn === 'function') { | |
5961 | + this.getter = expOrFn; | |
5962 | + } else { | |
5963 | + this.getter = parsePath(expOrFn); | |
5964 | + if (!this.getter) { | |
5965 | + this.getter = noop; | |
5966 | + true && warn( | |
5967 | + "Failed watching path: \"" + expOrFn + "\" " + | |
5968 | + 'Watcher only accepts simple dot-delimited paths. ' + | |
5969 | + 'For full control, use a function instead.', | |
5970 | + vm | |
5971 | + ); | |
5972 | + } | |
5973 | + } | |
5974 | + this.value = this.lazy | |
5975 | + ? undefined | |
5976 | + : this.get(); | |
5977 | +}; | |
5978 | + | |
5979 | +/** | |
5980 | + * Evaluate the getter, and re-collect dependencies. | |
5981 | + */ | |
5982 | +Watcher.prototype.get = function get () { | |
5983 | + pushTarget(this); | |
5984 | + var value; | |
5985 | + var vm = this.vm; | |
5986 | + try { | |
5987 | + value = this.getter.call(vm, vm); | |
5988 | + } catch (e) { | |
5989 | + if (this.user) { | |
5990 | + handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\"")); | |
5991 | + } else { | |
5992 | + throw e | |
5993 | + } | |
5994 | + } finally { | |
5995 | + // "touch" every property so they are all tracked as | |
5996 | + // dependencies for deep watching | |
5997 | + if (this.deep) { | |
5998 | + traverse(value); | |
5999 | + } | |
6000 | + popTarget(); | |
6001 | + this.cleanupDeps(); | |
6002 | + } | |
6003 | + return value | |
6004 | +}; | |
6005 | + | |
6006 | +/** | |
6007 | + * Add a dependency to this directive. | |
6008 | + */ | |
6009 | +Watcher.prototype.addDep = function addDep (dep) { | |
6010 | + var id = dep.id; | |
6011 | + if (!this.newDepIds.has(id)) { | |
6012 | + this.newDepIds.add(id); | |
6013 | + this.newDeps.push(dep); | |
6014 | + if (!this.depIds.has(id)) { | |
6015 | + dep.addSub(this); | |
6016 | + } | |
6017 | + } | |
6018 | +}; | |
6019 | + | |
6020 | +/** | |
6021 | + * Clean up for dependency collection. | |
6022 | + */ | |
6023 | +Watcher.prototype.cleanupDeps = function cleanupDeps () { | |
6024 | + var i = this.deps.length; | |
6025 | + while (i--) { | |
6026 | + var dep = this.deps[i]; | |
6027 | + if (!this.newDepIds.has(dep.id)) { | |
6028 | + dep.removeSub(this); | |
6029 | + } | |
6030 | + } | |
6031 | + var tmp = this.depIds; | |
6032 | + this.depIds = this.newDepIds; | |
6033 | + this.newDepIds = tmp; | |
6034 | + this.newDepIds.clear(); | |
6035 | + tmp = this.deps; | |
6036 | + this.deps = this.newDeps; | |
6037 | + this.newDeps = tmp; | |
6038 | + this.newDeps.length = 0; | |
6039 | +}; | |
6040 | + | |
6041 | +/** | |
6042 | + * Subscriber interface. | |
6043 | + * Will be called when a dependency changes. | |
6044 | + */ | |
6045 | +Watcher.prototype.update = function update () { | |
6046 | + /* istanbul ignore else */ | |
6047 | + if (this.lazy) { | |
6048 | + this.dirty = true; | |
6049 | + } else if (this.sync) { | |
6050 | + this.run(); | |
6051 | + } else { | |
6052 | + queueWatcher(this); | |
6053 | + } | |
6054 | +}; | |
6055 | + | |
6056 | +/** | |
6057 | + * Scheduler job interface. | |
6058 | + * Will be called by the scheduler. | |
6059 | + */ | |
6060 | +Watcher.prototype.run = function run () { | |
6061 | + if (this.active) { | |
6062 | + var value = this.get(); | |
6063 | + if ( | |
6064 | + value !== this.value || | |
6065 | + // Deep watchers and watchers on Object/Arrays should fire even | |
6066 | + // when the value is the same, because the value may | |
6067 | + // have mutated. | |
6068 | + isObject(value) || | |
6069 | + this.deep | |
6070 | + ) { | |
6071 | + // set new value | |
6072 | + var oldValue = this.value; | |
6073 | + this.value = value; | |
6074 | + if (this.user) { | |
6075 | + try { | |
6076 | + this.cb.call(this.vm, value, oldValue); | |
6077 | + } catch (e) { | |
6078 | + handleError(e, this.vm, ("callback for watcher \"" + (this.expression) + "\"")); | |
6079 | + } | |
6080 | + } else { | |
6081 | + this.cb.call(this.vm, value, oldValue); | |
6082 | + } | |
6083 | + } | |
6084 | + } | |
6085 | +}; | |
6086 | + | |
6087 | +/** | |
6088 | + * Evaluate the value of the watcher. | |
6089 | + * This only gets called for lazy watchers. | |
6090 | + */ | |
6091 | +Watcher.prototype.evaluate = function evaluate () { | |
6092 | + this.value = this.get(); | |
6093 | + this.dirty = false; | |
6094 | +}; | |
6095 | + | |
6096 | +/** | |
6097 | + * Depend on all deps collected by this watcher. | |
6098 | + */ | |
6099 | +Watcher.prototype.depend = function depend () { | |
6100 | + var i = this.deps.length; | |
6101 | + while (i--) { | |
6102 | + this.deps[i].depend(); | |
6103 | + } | |
6104 | +}; | |
6105 | + | |
6106 | +/** | |
6107 | + * Remove self from all dependencies' subscriber list. | |
6108 | + */ | |
6109 | +Watcher.prototype.teardown = function teardown () { | |
6110 | + if (this.active) { | |
6111 | + // remove self from vm's watcher list | |
6112 | + // this is a somewhat expensive operation so we skip it | |
6113 | + // if the vm is being destroyed. | |
6114 | + if (!this.vm._isBeingDestroyed) { | |
6115 | + remove(this.vm._watchers, this); | |
6116 | + } | |
6117 | + var i = this.deps.length; | |
6118 | + while (i--) { | |
6119 | + this.deps[i].removeSub(this); | |
6120 | + } | |
6121 | + this.active = false; | |
6122 | + } | |
6123 | +}; | |
6124 | + | |
6125 | +/* */ | |
6126 | + | |
6127 | +var sharedPropertyDefinition = { | |
6128 | + enumerable: true, | |
6129 | + configurable: true, | |
6130 | + get: noop, | |
6131 | + set: noop | |
6132 | +}; | |
6133 | + | |
6134 | +function proxy (target, sourceKey, key) { | |
6135 | + sharedPropertyDefinition.get = function proxyGetter () { | |
6136 | + return this[sourceKey][key] | |
6137 | + }; | |
6138 | + sharedPropertyDefinition.set = function proxySetter (val) { | |
6139 | + this[sourceKey][key] = val; | |
6140 | + }; | |
6141 | + Object.defineProperty(target, key, sharedPropertyDefinition); | |
6142 | +} | |
6143 | + | |
6144 | +function initState (vm) { | |
6145 | + vm._watchers = []; | |
6146 | + var opts = vm.$options; | |
6147 | + if (opts.props) { initProps(vm, opts.props); } | |
6148 | + if (opts.methods) { initMethods(vm, opts.methods); } | |
6149 | + if (opts.data) { | |
6150 | + initData(vm); | |
6151 | + } else { | |
6152 | + observe(vm._data = {}, true /* asRootData */); | |
6153 | + } | |
6154 | + if (opts.computed) { initComputed(vm, opts.computed); } | |
6155 | + if (opts.watch && opts.watch !== nativeWatch) { | |
6156 | + initWatch(vm, opts.watch); | |
6157 | + } | |
6158 | +} | |
6159 | + | |
6160 | +function initProps (vm, propsOptions) { | |
6161 | + var propsData = vm.$options.propsData || {}; | |
6162 | + var props = vm._props = {}; | |
6163 | + // cache prop keys so that future props updates can iterate using Array | |
6164 | + // instead of dynamic object key enumeration. | |
6165 | + var keys = vm.$options._propKeys = []; | |
6166 | + var isRoot = !vm.$parent; | |
6167 | + // root instance props should be converted | |
6168 | + if (!isRoot) { | |
6169 | + toggleObserving(false); | |
6170 | + } | |
6171 | + var loop = function ( key ) { | |
6172 | + keys.push(key); | |
6173 | + var value = validateProp(key, propsOptions, propsData, vm); | |
6174 | + /* istanbul ignore else */ | |
6175 | + if (true) { | |
6176 | + var hyphenatedKey = hyphenate(key); | |
6177 | + if (isReservedAttribute(hyphenatedKey) || | |
6178 | + config.isReservedAttr(hyphenatedKey)) { | |
6179 | + warn( | |
6180 | + ("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop."), | |
6181 | + vm | |
6182 | + ); | |
6183 | + } | |
6184 | + defineReactive$$1(props, key, value, function () { | |
6185 | + if (!isRoot && !isUpdatingChildComponent) { | |
6186 | + { | |
6187 | + if(vm.mpHost === 'mp-baidu'){//百度 observer 在 setData callback 之后触发,直接忽略该 warn | |
6188 | + return | |
6189 | + } | |
6190 | + //fixed by xxxxxx __next_tick_pending,uni://form-field 时不告警 | |
6191 | + if( | |
6192 | + key === 'value' && | |
6193 | + Array.isArray(vm.$options.behaviors) && | |
6194 | + vm.$options.behaviors.indexOf('uni://form-field') !== -1 | |
6195 | + ){ | |
6196 | + return | |
6197 | + } | |
6198 | + if(vm._getFormData){ | |
6199 | + return | |
6200 | + } | |
6201 | + var $parent = vm.$parent; | |
6202 | + while($parent){ | |
6203 | + if($parent.__next_tick_pending){ | |
6204 | + return | |
6205 | + } | |
6206 | + $parent = $parent.$parent; | |
6207 | + } | |
6208 | + } | |
6209 | + warn( | |
6210 | + "Avoid mutating a prop directly since the value will be " + | |
6211 | + "overwritten whenever the parent component re-renders. " + | |
6212 | + "Instead, use a data or computed property based on the prop's " + | |
6213 | + "value. Prop being mutated: \"" + key + "\"", | |
6214 | + vm | |
6215 | + ); | |
6216 | + } | |
6217 | + }); | |
6218 | + } else {} | |
6219 | + // static props are already proxied on the component's prototype | |
6220 | + // during Vue.extend(). We only need to proxy props defined at | |
6221 | + // instantiation here. | |
6222 | + if (!(key in vm)) { | |
6223 | + proxy(vm, "_props", key); | |
6224 | + } | |
6225 | + }; | |
6226 | + | |
6227 | + for (var key in propsOptions) loop( key ); | |
6228 | + toggleObserving(true); | |
6229 | +} | |
6230 | + | |
6231 | +function initData (vm) { | |
6232 | + var data = vm.$options.data; | |
6233 | + data = vm._data = typeof data === 'function' | |
6234 | + ? getData(data, vm) | |
6235 | + : data || {}; | |
6236 | + if (!isPlainObject(data)) { | |
6237 | + data = {}; | |
6238 | + true && warn( | |
6239 | + 'data functions should return an object:\n' + | |
6240 | + 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function', | |
6241 | + vm | |
6242 | + ); | |
6243 | + } | |
6244 | + // proxy data on instance | |
6245 | + var keys = Object.keys(data); | |
6246 | + var props = vm.$options.props; | |
6247 | + var methods = vm.$options.methods; | |
6248 | + var i = keys.length; | |
6249 | + while (i--) { | |
6250 | + var key = keys[i]; | |
6251 | + if (true) { | |
6252 | + if (methods && hasOwn(methods, key)) { | |
6253 | + warn( | |
6254 | + ("Method \"" + key + "\" has already been defined as a data property."), | |
6255 | + vm | |
6256 | + ); | |
6257 | + } | |
6258 | + } | |
6259 | + if (props && hasOwn(props, key)) { | |
6260 | + true && warn( | |
6261 | + "The data property \"" + key + "\" is already declared as a prop. " + | |
6262 | + "Use prop default value instead.", | |
6263 | + vm | |
6264 | + ); | |
6265 | + } else if (!isReserved(key)) { | |
6266 | + proxy(vm, "_data", key); | |
6267 | + } | |
6268 | + } | |
6269 | + // observe data | |
6270 | + observe(data, true /* asRootData */); | |
6271 | +} | |
6272 | + | |
6273 | +function getData (data, vm) { | |
6274 | + // #7573 disable dep collection when invoking data getters | |
6275 | + pushTarget(); | |
6276 | + try { | |
6277 | + return data.call(vm, vm) | |
6278 | + } catch (e) { | |
6279 | + handleError(e, vm, "data()"); | |
6280 | + return {} | |
6281 | + } finally { | |
6282 | + popTarget(); | |
6283 | + } | |
6284 | +} | |
6285 | + | |
6286 | +var computedWatcherOptions = { lazy: true }; | |
6287 | + | |
6288 | +function initComputed (vm, computed) { | |
6289 | + // $flow-disable-line | |
6290 | + var watchers = vm._computedWatchers = Object.create(null); | |
6291 | + // computed properties are just getters during SSR | |
6292 | + var isSSR = isServerRendering(); | |
6293 | + | |
6294 | + for (var key in computed) { | |
6295 | + var userDef = computed[key]; | |
6296 | + var getter = typeof userDef === 'function' ? userDef : userDef.get; | |
6297 | + if ( true && getter == null) { | |
6298 | + warn( | |
6299 | + ("Getter is missing for computed property \"" + key + "\"."), | |
6300 | + vm | |
6301 | + ); | |
6302 | + } | |
6303 | + | |
6304 | + if (!isSSR) { | |
6305 | + // create internal watcher for the computed property. | |
6306 | + watchers[key] = new Watcher( | |
6307 | + vm, | |
6308 | + getter || noop, | |
6309 | + noop, | |
6310 | + computedWatcherOptions | |
6311 | + ); | |
6312 | + } | |
6313 | + | |
6314 | + // component-defined computed properties are already defined on the | |
6315 | + // component prototype. We only need to define computed properties defined | |
6316 | + // at instantiation here. | |
6317 | + if (!(key in vm)) { | |
6318 | + defineComputed(vm, key, userDef); | |
6319 | + } else if (true) { | |
6320 | + if (key in vm.$data) { | |
6321 | + warn(("The computed property \"" + key + "\" is already defined in data."), vm); | |
6322 | + } else if (vm.$options.props && key in vm.$options.props) { | |
6323 | + warn(("The computed property \"" + key + "\" is already defined as a prop."), vm); | |
6324 | + } | |
6325 | + } | |
6326 | + } | |
6327 | +} | |
6328 | + | |
6329 | +function defineComputed ( | |
6330 | + target, | |
6331 | + key, | |
6332 | + userDef | |
6333 | +) { | |
6334 | + var shouldCache = !isServerRendering(); | |
6335 | + if (typeof userDef === 'function') { | |
6336 | + sharedPropertyDefinition.get = shouldCache | |
6337 | + ? createComputedGetter(key) | |
6338 | + : createGetterInvoker(userDef); | |
6339 | + sharedPropertyDefinition.set = noop; | |
6340 | + } else { | |
6341 | + sharedPropertyDefinition.get = userDef.get | |
6342 | + ? shouldCache && userDef.cache !== false | |
6343 | + ? createComputedGetter(key) | |
6344 | + : createGetterInvoker(userDef.get) | |
6345 | + : noop; | |
6346 | + sharedPropertyDefinition.set = userDef.set || noop; | |
6347 | + } | |
6348 | + if ( true && | |
6349 | + sharedPropertyDefinition.set === noop) { | |
6350 | + sharedPropertyDefinition.set = function () { | |
6351 | + warn( | |
6352 | + ("Computed property \"" + key + "\" was assigned to but it has no setter."), | |
6353 | + this | |
6354 | + ); | |
6355 | + }; | |
6356 | + } | |
6357 | + Object.defineProperty(target, key, sharedPropertyDefinition); | |
6358 | +} | |
6359 | + | |
6360 | +function createComputedGetter (key) { | |
6361 | + return function computedGetter () { | |
6362 | + var watcher = this._computedWatchers && this._computedWatchers[key]; | |
6363 | + if (watcher) { | |
6364 | + if (watcher.dirty) { | |
6365 | + watcher.evaluate(); | |
6366 | + } | |
6367 | + if (Dep.SharedObject.target) {// fixed by xxxxxx | |
6368 | + watcher.depend(); | |
6369 | + } | |
6370 | + return watcher.value | |
6371 | + } | |
6372 | + } | |
6373 | +} | |
6374 | + | |
6375 | +function createGetterInvoker(fn) { | |
6376 | + return function computedGetter () { | |
6377 | + return fn.call(this, this) | |
6378 | + } | |
6379 | +} | |
6380 | + | |
6381 | +function initMethods (vm, methods) { | |
6382 | + var props = vm.$options.props; | |
6383 | + for (var key in methods) { | |
6384 | + if (true) { | |
6385 | + if (typeof methods[key] !== 'function') { | |
6386 | + warn( | |
6387 | + "Method \"" + key + "\" has type \"" + (typeof methods[key]) + "\" in the component definition. " + | |
6388 | + "Did you reference the function correctly?", | |
6389 | + vm | |
6390 | + ); | |
6391 | + } | |
6392 | + if (props && hasOwn(props, key)) { | |
6393 | + warn( | |
6394 | + ("Method \"" + key + "\" has already been defined as a prop."), | |
6395 | + vm | |
6396 | + ); | |
6397 | + } | |
6398 | + if ((key in vm) && isReserved(key)) { | |
6399 | + warn( | |
6400 | + "Method \"" + key + "\" conflicts with an existing Vue instance method. " + | |
6401 | + "Avoid defining component methods that start with _ or $." | |
6402 | + ); | |
6403 | + } | |
6404 | + } | |
6405 | + vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm); | |
6406 | + } | |
6407 | +} | |
6408 | + | |
6409 | +function initWatch (vm, watch) { | |
6410 | + for (var key in watch) { | |
6411 | + var handler = watch[key]; | |
6412 | + if (Array.isArray(handler)) { | |
6413 | + for (var i = 0; i < handler.length; i++) { | |
6414 | + createWatcher(vm, key, handler[i]); | |
6415 | + } | |
6416 | + } else { | |
6417 | + createWatcher(vm, key, handler); | |
6418 | + } | |
6419 | + } | |
6420 | +} | |
6421 | + | |
6422 | +function createWatcher ( | |
6423 | + vm, | |
6424 | + expOrFn, | |
6425 | + handler, | |
6426 | + options | |
6427 | +) { | |
6428 | + if (isPlainObject(handler)) { | |
6429 | + options = handler; | |
6430 | + handler = handler.handler; | |
6431 | + } | |
6432 | + if (typeof handler === 'string') { | |
6433 | + handler = vm[handler]; | |
6434 | + } | |
6435 | + return vm.$watch(expOrFn, handler, options) | |
6436 | +} | |
6437 | + | |
6438 | +function stateMixin (Vue) { | |
6439 | + // flow somehow has problems with directly declared definition object | |
6440 | + // when using Object.defineProperty, so we have to procedurally build up | |
6441 | + // the object here. | |
6442 | + var dataDef = {}; | |
6443 | + dataDef.get = function () { return this._data }; | |
6444 | + var propsDef = {}; | |
6445 | + propsDef.get = function () { return this._props }; | |
6446 | + if (true) { | |
6447 | + dataDef.set = function () { | |
6448 | + warn( | |
6449 | + 'Avoid replacing instance root $data. ' + | |
6450 | + 'Use nested data properties instead.', | |
6451 | + this | |
6452 | + ); | |
6453 | + }; | |
6454 | + propsDef.set = function () { | |
6455 | + warn("$props is readonly.", this); | |
6456 | + }; | |
6457 | + } | |
6458 | + Object.defineProperty(Vue.prototype, '$data', dataDef); | |
6459 | + Object.defineProperty(Vue.prototype, '$props', propsDef); | |
6460 | + | |
6461 | + Vue.prototype.$set = set; | |
6462 | + Vue.prototype.$delete = del; | |
6463 | + | |
6464 | + Vue.prototype.$watch = function ( | |
6465 | + expOrFn, | |
6466 | + cb, | |
6467 | + options | |
6468 | + ) { | |
6469 | + var vm = this; | |
6470 | + if (isPlainObject(cb)) { | |
6471 | + return createWatcher(vm, expOrFn, cb, options) | |
6472 | + } | |
6473 | + options = options || {}; | |
6474 | + options.user = true; | |
6475 | + var watcher = new Watcher(vm, expOrFn, cb, options); | |
6476 | + if (options.immediate) { | |
6477 | + try { | |
6478 | + cb.call(vm, watcher.value); | |
6479 | + } catch (error) { | |
6480 | + handleError(error, vm, ("callback for immediate watcher \"" + (watcher.expression) + "\"")); | |
6481 | + } | |
6482 | + } | |
6483 | + return function unwatchFn () { | |
6484 | + watcher.teardown(); | |
6485 | + } | |
6486 | + }; | |
6487 | +} | |
6488 | + | |
6489 | +/* */ | |
6490 | + | |
6491 | +var uid$3 = 0; | |
6492 | + | |
6493 | +function initMixin (Vue) { | |
6494 | + Vue.prototype._init = function (options) { | |
6495 | + var vm = this; | |
6496 | + // a uid | |
6497 | + vm._uid = uid$3++; | |
6498 | + | |
6499 | + var startTag, endTag; | |
6500 | + /* istanbul ignore if */ | |
6501 | + if ( true && config.performance && mark) { | |
6502 | + startTag = "vue-perf-start:" + (vm._uid); | |
6503 | + endTag = "vue-perf-end:" + (vm._uid); | |
6504 | + mark(startTag); | |
6505 | + } | |
6506 | + | |
6507 | + // a flag to avoid this being observed | |
6508 | + vm._isVue = true; | |
6509 | + // merge options | |
6510 | + if (options && options._isComponent) { | |
6511 | + // optimize internal component instantiation | |
6512 | + // since dynamic options merging is pretty slow, and none of the | |
6513 | + // internal component options needs special treatment. | |
6514 | + initInternalComponent(vm, options); | |
6515 | + } else { | |
6516 | + vm.$options = mergeOptions( | |
6517 | + resolveConstructorOptions(vm.constructor), | |
6518 | + options || {}, | |
6519 | + vm | |
6520 | + ); | |
6521 | + } | |
6522 | + /* istanbul ignore else */ | |
6523 | + if (true) { | |
6524 | + initProxy(vm); | |
6525 | + } else {} | |
6526 | + // expose real self | |
6527 | + vm._self = vm; | |
6528 | + initLifecycle(vm); | |
6529 | + initEvents(vm); | |
6530 | + initRender(vm); | |
6531 | + callHook(vm, 'beforeCreate'); | |
6532 | + !vm._$fallback && initInjections(vm); // resolve injections before data/props | |
6533 | + initState(vm); | |
6534 | + !vm._$fallback && initProvide(vm); // resolve provide after data/props | |
6535 | + !vm._$fallback && callHook(vm, 'created'); | |
6536 | + | |
6537 | + /* istanbul ignore if */ | |
6538 | + if ( true && config.performance && mark) { | |
6539 | + vm._name = formatComponentName(vm, false); | |
6540 | + mark(endTag); | |
6541 | + measure(("vue " + (vm._name) + " init"), startTag, endTag); | |
6542 | + } | |
6543 | + | |
6544 | + if (vm.$options.el) { | |
6545 | + vm.$mount(vm.$options.el); | |
6546 | + } | |
6547 | + }; | |
6548 | +} | |
6549 | + | |
6550 | +function initInternalComponent (vm, options) { | |
6551 | + var opts = vm.$options = Object.create(vm.constructor.options); | |
6552 | + // doing this because it's faster than dynamic enumeration. | |
6553 | + var parentVnode = options._parentVnode; | |
6554 | + opts.parent = options.parent; | |
6555 | + opts._parentVnode = parentVnode; | |
6556 | + | |
6557 | + var vnodeComponentOptions = parentVnode.componentOptions; | |
6558 | + opts.propsData = vnodeComponentOptions.propsData; | |
6559 | + opts._parentListeners = vnodeComponentOptions.listeners; | |
6560 | + opts._renderChildren = vnodeComponentOptions.children; | |
6561 | + opts._componentTag = vnodeComponentOptions.tag; | |
6562 | + | |
6563 | + if (options.render) { | |
6564 | + opts.render = options.render; | |
6565 | + opts.staticRenderFns = options.staticRenderFns; | |
6566 | + } | |
6567 | +} | |
6568 | + | |
6569 | +function resolveConstructorOptions (Ctor) { | |
6570 | + var options = Ctor.options; | |
6571 | + if (Ctor.super) { | |
6572 | + var superOptions = resolveConstructorOptions(Ctor.super); | |
6573 | + var cachedSuperOptions = Ctor.superOptions; | |
6574 | + if (superOptions !== cachedSuperOptions) { | |
6575 | + // super option changed, | |
6576 | + // need to resolve new options. | |
6577 | + Ctor.superOptions = superOptions; | |
6578 | + // check if there are any late-modified/attached options (#4976) | |
6579 | + var modifiedOptions = resolveModifiedOptions(Ctor); | |
6580 | + // update base extend options | |
6581 | + if (modifiedOptions) { | |
6582 | + extend(Ctor.extendOptions, modifiedOptions); | |
6583 | + } | |
6584 | + options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions); | |
6585 | + if (options.name) { | |
6586 | + options.components[options.name] = Ctor; | |
6587 | + } | |
6588 | + } | |
6589 | + } | |
6590 | + return options | |
6591 | +} | |
6592 | + | |
6593 | +function resolveModifiedOptions (Ctor) { | |
6594 | + var modified; | |
6595 | + var latest = Ctor.options; | |
6596 | + var sealed = Ctor.sealedOptions; | |
6597 | + for (var key in latest) { | |
6598 | + if (latest[key] !== sealed[key]) { | |
6599 | + if (!modified) { modified = {}; } | |
6600 | + modified[key] = latest[key]; | |
6601 | + } | |
6602 | + } | |
6603 | + return modified | |
6604 | +} | |
6605 | + | |
6606 | +function Vue (options) { | |
6607 | + if ( true && | |
6608 | + !(this instanceof Vue) | |
6609 | + ) { | |
6610 | + warn('Vue is a constructor and should be called with the `new` keyword'); | |
6611 | + } | |
6612 | + this._init(options); | |
6613 | +} | |
6614 | + | |
6615 | +initMixin(Vue); | |
6616 | +stateMixin(Vue); | |
6617 | +eventsMixin(Vue); | |
6618 | +lifecycleMixin(Vue); | |
6619 | +renderMixin(Vue); | |
6620 | + | |
6621 | +/* */ | |
6622 | + | |
6623 | +function initUse (Vue) { | |
6624 | + Vue.use = function (plugin) { | |
6625 | + var installedPlugins = (this._installedPlugins || (this._installedPlugins = [])); | |
6626 | + if (installedPlugins.indexOf(plugin) > -1) { | |
6627 | + return this | |
6628 | + } | |
6629 | + | |
6630 | + // additional parameters | |
6631 | + var args = toArray(arguments, 1); | |
6632 | + args.unshift(this); | |
6633 | + if (typeof plugin.install === 'function') { | |
6634 | + plugin.install.apply(plugin, args); | |
6635 | + } else if (typeof plugin === 'function') { | |
6636 | + plugin.apply(null, args); | |
6637 | + } | |
6638 | + installedPlugins.push(plugin); | |
6639 | + return this | |
6640 | + }; | |
6641 | +} | |
6642 | + | |
6643 | +/* */ | |
6644 | + | |
6645 | +function initMixin$1 (Vue) { | |
6646 | + Vue.mixin = function (mixin) { | |
6647 | + this.options = mergeOptions(this.options, mixin); | |
6648 | + return this | |
6649 | + }; | |
6650 | +} | |
6651 | + | |
6652 | +/* */ | |
6653 | + | |
6654 | +function initExtend (Vue) { | |
6655 | + /** | |
6656 | + * Each instance constructor, including Vue, has a unique | |
6657 | + * cid. This enables us to create wrapped "child | |
6658 | + * constructors" for prototypal inheritance and cache them. | |
6659 | + */ | |
6660 | + Vue.cid = 0; | |
6661 | + var cid = 1; | |
6662 | + | |
6663 | + /** | |
6664 | + * Class inheritance | |
6665 | + */ | |
6666 | + Vue.extend = function (extendOptions) { | |
6667 | + extendOptions = extendOptions || {}; | |
6668 | + var Super = this; | |
6669 | + var SuperId = Super.cid; | |
6670 | + var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {}); | |
6671 | + if (cachedCtors[SuperId]) { | |
6672 | + return cachedCtors[SuperId] | |
6673 | + } | |
6674 | + | |
6675 | + var name = extendOptions.name || Super.options.name; | |
6676 | + if ( true && name) { | |
6677 | + validateComponentName(name); | |
6678 | + } | |
6679 | + | |
6680 | + var Sub = function VueComponent (options) { | |
6681 | + this._init(options); | |
6682 | + }; | |
6683 | + Sub.prototype = Object.create(Super.prototype); | |
6684 | + Sub.prototype.constructor = Sub; | |
6685 | + Sub.cid = cid++; | |
6686 | + Sub.options = mergeOptions( | |
6687 | + Super.options, | |
6688 | + extendOptions | |
6689 | + ); | |
6690 | + Sub['super'] = Super; | |
6691 | + | |
6692 | + // For props and computed properties, we define the proxy getters on | |
6693 | + // the Vue instances at extension time, on the extended prototype. This | |
6694 | + // avoids Object.defineProperty calls for each instance created. | |
6695 | + if (Sub.options.props) { | |
6696 | + initProps$1(Sub); | |
6697 | + } | |
6698 | + if (Sub.options.computed) { | |
6699 | + initComputed$1(Sub); | |
6700 | + } | |
6701 | + | |
6702 | + // allow further extension/mixin/plugin usage | |
6703 | + Sub.extend = Super.extend; | |
6704 | + Sub.mixin = Super.mixin; | |
6705 | + Sub.use = Super.use; | |
6706 | + | |
6707 | + // create asset registers, so extended classes | |
6708 | + // can have their private assets too. | |
6709 | + ASSET_TYPES.forEach(function (type) { | |
6710 | + Sub[type] = Super[type]; | |
6711 | + }); | |
6712 | + // enable recursive self-lookup | |
6713 | + if (name) { | |
6714 | + Sub.options.components[name] = Sub; | |
6715 | + } | |
6716 | + | |
6717 | + // keep a reference to the super options at extension time. | |
6718 | + // later at instantiation we can check if Super's options have | |
6719 | + // been updated. | |
6720 | + Sub.superOptions = Super.options; | |
6721 | + Sub.extendOptions = extendOptions; | |
6722 | + Sub.sealedOptions = extend({}, Sub.options); | |
6723 | + | |
6724 | + // cache constructor | |
6725 | + cachedCtors[SuperId] = Sub; | |
6726 | + return Sub | |
6727 | + }; | |
6728 | +} | |
6729 | + | |
6730 | +function initProps$1 (Comp) { | |
6731 | + var props = Comp.options.props; | |
6732 | + for (var key in props) { | |
6733 | + proxy(Comp.prototype, "_props", key); | |
6734 | + } | |
6735 | +} | |
6736 | + | |
6737 | +function initComputed$1 (Comp) { | |
6738 | + var computed = Comp.options.computed; | |
6739 | + for (var key in computed) { | |
6740 | + defineComputed(Comp.prototype, key, computed[key]); | |
6741 | + } | |
6742 | +} | |
6743 | + | |
6744 | +/* */ | |
6745 | + | |
6746 | +function initAssetRegisters (Vue) { | |
6747 | + /** | |
6748 | + * Create asset registration methods. | |
6749 | + */ | |
6750 | + ASSET_TYPES.forEach(function (type) { | |
6751 | + Vue[type] = function ( | |
6752 | + id, | |
6753 | + definition | |
6754 | + ) { | |
6755 | + if (!definition) { | |
6756 | + return this.options[type + 's'][id] | |
6757 | + } else { | |
6758 | + /* istanbul ignore if */ | |
6759 | + if ( true && type === 'component') { | |
6760 | + validateComponentName(id); | |
6761 | + } | |
6762 | + if (type === 'component' && isPlainObject(definition)) { | |
6763 | + definition.name = definition.name || id; | |
6764 | + definition = this.options._base.extend(definition); | |
6765 | + } | |
6766 | + if (type === 'directive' && typeof definition === 'function') { | |
6767 | + definition = { bind: definition, update: definition }; | |
6768 | + } | |
6769 | + this.options[type + 's'][id] = definition; | |
6770 | + return definition | |
6771 | + } | |
6772 | + }; | |
6773 | + }); | |
6774 | +} | |
6775 | + | |
6776 | +/* */ | |
6777 | + | |
6778 | + | |
6779 | + | |
6780 | +function getComponentName (opts) { | |
6781 | + return opts && (opts.Ctor.options.name || opts.tag) | |
6782 | +} | |
6783 | + | |
6784 | +function matches (pattern, name) { | |
6785 | + if (Array.isArray(pattern)) { | |
6786 | + return pattern.indexOf(name) > -1 | |
6787 | + } else if (typeof pattern === 'string') { | |
6788 | + return pattern.split(',').indexOf(name) > -1 | |
6789 | + } else if (isRegExp(pattern)) { | |
6790 | + return pattern.test(name) | |
6791 | + } | |
6792 | + /* istanbul ignore next */ | |
6793 | + return false | |
6794 | +} | |
6795 | + | |
6796 | +function pruneCache (keepAliveInstance, filter) { | |
6797 | + var cache = keepAliveInstance.cache; | |
6798 | + var keys = keepAliveInstance.keys; | |
6799 | + var _vnode = keepAliveInstance._vnode; | |
6800 | + for (var key in cache) { | |
6801 | + var cachedNode = cache[key]; | |
6802 | + if (cachedNode) { | |
6803 | + var name = getComponentName(cachedNode.componentOptions); | |
6804 | + if (name && !filter(name)) { | |
6805 | + pruneCacheEntry(cache, key, keys, _vnode); | |
6806 | + } | |
6807 | + } | |
6808 | + } | |
6809 | +} | |
6810 | + | |
6811 | +function pruneCacheEntry ( | |
6812 | + cache, | |
6813 | + key, | |
6814 | + keys, | |
6815 | + current | |
6816 | +) { | |
6817 | + var cached$$1 = cache[key]; | |
6818 | + if (cached$$1 && (!current || cached$$1.tag !== current.tag)) { | |
6819 | + cached$$1.componentInstance.$destroy(); | |
6820 | + } | |
6821 | + cache[key] = null; | |
6822 | + remove(keys, key); | |
6823 | +} | |
6824 | + | |
6825 | +var patternTypes = [String, RegExp, Array]; | |
6826 | + | |
6827 | +var KeepAlive = { | |
6828 | + name: 'keep-alive', | |
6829 | + abstract: true, | |
6830 | + | |
6831 | + props: { | |
6832 | + include: patternTypes, | |
6833 | + exclude: patternTypes, | |
6834 | + max: [String, Number] | |
6835 | + }, | |
6836 | + | |
6837 | + created: function created () { | |
6838 | + this.cache = Object.create(null); | |
6839 | + this.keys = []; | |
6840 | + }, | |
6841 | + | |
6842 | + destroyed: function destroyed () { | |
6843 | + for (var key in this.cache) { | |
6844 | + pruneCacheEntry(this.cache, key, this.keys); | |
6845 | + } | |
6846 | + }, | |
6847 | + | |
6848 | + mounted: function mounted () { | |
6849 | + var this$1 = this; | |
6850 | + | |
6851 | + this.$watch('include', function (val) { | |
6852 | + pruneCache(this$1, function (name) { return matches(val, name); }); | |
6853 | + }); | |
6854 | + this.$watch('exclude', function (val) { | |
6855 | + pruneCache(this$1, function (name) { return !matches(val, name); }); | |
6856 | + }); | |
6857 | + }, | |
6858 | + | |
6859 | + render: function render () { | |
6860 | + var slot = this.$slots.default; | |
6861 | + var vnode = getFirstComponentChild(slot); | |
6862 | + var componentOptions = vnode && vnode.componentOptions; | |
6863 | + if (componentOptions) { | |
6864 | + // check pattern | |
6865 | + var name = getComponentName(componentOptions); | |
6866 | + var ref = this; | |
6867 | + var include = ref.include; | |
6868 | + var exclude = ref.exclude; | |
6869 | + if ( | |
6870 | + // not included | |
6871 | + (include && (!name || !matches(include, name))) || | |
6872 | + // excluded | |
6873 | + (exclude && name && matches(exclude, name)) | |
6874 | + ) { | |
6875 | + return vnode | |
6876 | + } | |
6877 | + | |
6878 | + var ref$1 = this; | |
6879 | + var cache = ref$1.cache; | |
6880 | + var keys = ref$1.keys; | |
6881 | + var key = vnode.key == null | |
6882 | + // same constructor may get registered as different local components | |
6883 | + // so cid alone is not enough (#3269) | |
6884 | + ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '') | |
6885 | + : vnode.key; | |
6886 | + if (cache[key]) { | |
6887 | + vnode.componentInstance = cache[key].componentInstance; | |
6888 | + // make current key freshest | |
6889 | + remove(keys, key); | |
6890 | + keys.push(key); | |
6891 | + } else { | |
6892 | + cache[key] = vnode; | |
6893 | + keys.push(key); | |
6894 | + // prune oldest entry | |
6895 | + if (this.max && keys.length > parseInt(this.max)) { | |
6896 | + pruneCacheEntry(cache, keys[0], keys, this._vnode); | |
6897 | + } | |
6898 | + } | |
6899 | + | |
6900 | + vnode.data.keepAlive = true; | |
6901 | + } | |
6902 | + return vnode || (slot && slot[0]) | |
6903 | + } | |
6904 | +}; | |
6905 | + | |
6906 | +var builtInComponents = { | |
6907 | + KeepAlive: KeepAlive | |
6908 | +}; | |
6909 | + | |
6910 | +/* */ | |
6911 | + | |
6912 | +function initGlobalAPI (Vue) { | |
6913 | + // config | |
6914 | + var configDef = {}; | |
6915 | + configDef.get = function () { return config; }; | |
6916 | + if (true) { | |
6917 | + configDef.set = function () { | |
6918 | + warn( | |
6919 | + 'Do not replace the Vue.config object, set individual fields instead.' | |
6920 | + ); | |
6921 | + }; | |
6922 | + } | |
6923 | + Object.defineProperty(Vue, 'config', configDef); | |
6924 | + | |
6925 | + // exposed util methods. | |
6926 | + // NOTE: these are not considered part of the public API - avoid relying on | |
6927 | + // them unless you are aware of the risk. | |
6928 | + Vue.util = { | |
6929 | + warn: warn, | |
6930 | + extend: extend, | |
6931 | + mergeOptions: mergeOptions, | |
6932 | + defineReactive: defineReactive$$1 | |
6933 | + }; | |
6934 | + | |
6935 | + Vue.set = set; | |
6936 | + Vue.delete = del; | |
6937 | + Vue.nextTick = nextTick; | |
6938 | + | |
6939 | + // 2.6 explicit observable API | |
6940 | + Vue.observable = function (obj) { | |
6941 | + observe(obj); | |
6942 | + return obj | |
6943 | + }; | |
6944 | + | |
6945 | + Vue.options = Object.create(null); | |
6946 | + ASSET_TYPES.forEach(function (type) { | |
6947 | + Vue.options[type + 's'] = Object.create(null); | |
6948 | + }); | |
6949 | + | |
6950 | + // this is used to identify the "base" constructor to extend all plain-object | |
6951 | + // components with in Weex's multi-instance scenarios. | |
6952 | + Vue.options._base = Vue; | |
6953 | + | |
6954 | + extend(Vue.options.components, builtInComponents); | |
6955 | + | |
6956 | + initUse(Vue); | |
6957 | + initMixin$1(Vue); | |
6958 | + initExtend(Vue); | |
6959 | + initAssetRegisters(Vue); | |
6960 | +} | |
6961 | + | |
6962 | +initGlobalAPI(Vue); | |
6963 | + | |
6964 | +Object.defineProperty(Vue.prototype, '$isServer', { | |
6965 | + get: isServerRendering | |
6966 | +}); | |
6967 | + | |
6968 | +Object.defineProperty(Vue.prototype, '$ssrContext', { | |
6969 | + get: function get () { | |
6970 | + /* istanbul ignore next */ | |
6971 | + return this.$vnode && this.$vnode.ssrContext | |
6972 | + } | |
6973 | +}); | |
6974 | + | |
6975 | +// expose FunctionalRenderContext for ssr runtime helper installation | |
6976 | +Object.defineProperty(Vue, 'FunctionalRenderContext', { | |
6977 | + value: FunctionalRenderContext | |
6978 | +}); | |
6979 | + | |
6980 | +Vue.version = '2.6.11'; | |
6981 | + | |
6982 | +/** | |
6983 | + * https://raw.githubusercontent.com/Tencent/westore/master/packages/westore/utils/diff.js | |
6984 | + */ | |
6985 | +var ARRAYTYPE = '[object Array]'; | |
6986 | +var OBJECTTYPE = '[object Object]'; | |
6987 | +// const FUNCTIONTYPE = '[object Function]' | |
6988 | + | |
6989 | +function diff(current, pre) { | |
6990 | + var result = {}; | |
6991 | + syncKeys(current, pre); | |
6992 | + _diff(current, pre, '', result); | |
6993 | + return result | |
6994 | +} | |
6995 | + | |
6996 | +function syncKeys(current, pre) { | |
6997 | + if (current === pre) { return } | |
6998 | + var rootCurrentType = type(current); | |
6999 | + var rootPreType = type(pre); | |
7000 | + if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) { | |
7001 | + if(Object.keys(current).length >= Object.keys(pre).length){ | |
7002 | + for (var key in pre) { | |
7003 | + var currentValue = current[key]; | |
7004 | + if (currentValue === undefined) { | |
7005 | + current[key] = null; | |
7006 | + } else { | |
7007 | + syncKeys(currentValue, pre[key]); | |
7008 | + } | |
7009 | + } | |
7010 | + } | |
7011 | + } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) { | |
7012 | + if (current.length >= pre.length) { | |
7013 | + pre.forEach(function (item, index) { | |
7014 | + syncKeys(current[index], item); | |
7015 | + }); | |
7016 | + } | |
7017 | + } | |
7018 | +} | |
7019 | + | |
7020 | +function _diff(current, pre, path, result) { | |
7021 | + if (current === pre) { return } | |
7022 | + var rootCurrentType = type(current); | |
7023 | + var rootPreType = type(pre); | |
7024 | + if (rootCurrentType == OBJECTTYPE) { | |
7025 | + if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) { | |
7026 | + setResult(result, path, current); | |
7027 | + } else { | |
7028 | + var loop = function ( key ) { | |
7029 | + var currentValue = current[key]; | |
7030 | + var preValue = pre[key]; | |
7031 | + var currentType = type(currentValue); | |
7032 | + var preType = type(preValue); | |
7033 | + if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) { | |
7034 | + if (currentValue != pre[key]) { | |
7035 | + setResult(result, (path == '' ? '' : path + ".") + key, currentValue); | |
7036 | + } | |
7037 | + } else if (currentType == ARRAYTYPE) { | |
7038 | + if (preType != ARRAYTYPE) { | |
7039 | + setResult(result, (path == '' ? '' : path + ".") + key, currentValue); | |
7040 | + } else { | |
7041 | + if (currentValue.length < preValue.length) { | |
7042 | + setResult(result, (path == '' ? '' : path + ".") + key, currentValue); | |
7043 | + } else { | |
7044 | + currentValue.forEach(function (item, index) { | |
7045 | + _diff(item, preValue[index], (path == '' ? '' : path + ".") + key + '[' + index + ']', result); | |
7046 | + }); | |
7047 | + } | |
7048 | + } | |
7049 | + } else if (currentType == OBJECTTYPE) { | |
7050 | + if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) { | |
7051 | + setResult(result, (path == '' ? '' : path + ".") + key, currentValue); | |
7052 | + } else { | |
7053 | + for (var subKey in currentValue) { | |
7054 | + _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + ".") + key + '.' + subKey, result); | |
7055 | + } | |
7056 | + } | |
7057 | + } | |
7058 | + }; | |
7059 | + | |
7060 | + for (var key in current) loop( key ); | |
7061 | + } | |
7062 | + } else if (rootCurrentType == ARRAYTYPE) { | |
7063 | + if (rootPreType != ARRAYTYPE) { | |
7064 | + setResult(result, path, current); | |
7065 | + } else { | |
7066 | + if (current.length < pre.length) { | |
7067 | + setResult(result, path, current); | |
7068 | + } else { | |
7069 | + current.forEach(function (item, index) { | |
7070 | + _diff(item, pre[index], path + '[' + index + ']', result); | |
7071 | + }); | |
7072 | + } | |
7073 | + } | |
7074 | + } else { | |
7075 | + setResult(result, path, current); | |
7076 | + } | |
7077 | +} | |
7078 | + | |
7079 | +function setResult(result, k, v) { | |
7080 | + // if (type(v) != FUNCTIONTYPE) { | |
7081 | + result[k] = v; | |
7082 | + // } | |
7083 | +} | |
7084 | + | |
7085 | +function type(obj) { | |
7086 | + return Object.prototype.toString.call(obj) | |
7087 | +} | |
7088 | + | |
7089 | +/* */ | |
7090 | + | |
7091 | +function flushCallbacks$1(vm) { | |
7092 | + if (vm.__next_tick_callbacks && vm.__next_tick_callbacks.length) { | |
7093 | + if (Object({"VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) { | |
7094 | + var mpInstance = vm.$scope; | |
7095 | + console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid + | |
7096 | + ']:flushCallbacks[' + vm.__next_tick_callbacks.length + ']'); | |
7097 | + } | |
7098 | + var copies = vm.__next_tick_callbacks.slice(0); | |
7099 | + vm.__next_tick_callbacks.length = 0; | |
7100 | + for (var i = 0; i < copies.length; i++) { | |
7101 | + copies[i](); | |
7102 | + } | |
7103 | + } | |
7104 | +} | |
7105 | + | |
7106 | +function hasRenderWatcher(vm) { | |
7107 | + return queue.find(function (watcher) { return vm._watcher === watcher; }) | |
7108 | +} | |
7109 | + | |
7110 | +function nextTick$1(vm, cb) { | |
7111 | + //1.nextTick 之前 已 setData 且 setData 还未回调完成 | |
7112 | + //2.nextTick 之前存在 render watcher | |
7113 | + if (!vm.__next_tick_pending && !hasRenderWatcher(vm)) { | |
7114 | + if(Object({"VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG){ | |
7115 | + var mpInstance = vm.$scope; | |
7116 | + console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid + | |
7117 | + ']:nextVueTick'); | |
7118 | + } | |
7119 | + return nextTick(cb, vm) | |
7120 | + }else{ | |
7121 | + if(Object({"VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG){ | |
7122 | + var mpInstance$1 = vm.$scope; | |
7123 | + console.log('[' + (+new Date) + '][' + (mpInstance$1.is || mpInstance$1.route) + '][' + vm._uid + | |
7124 | + ']:nextMPTick'); | |
7125 | + } | |
7126 | + } | |
7127 | + var _resolve; | |
7128 | + if (!vm.__next_tick_callbacks) { | |
7129 | + vm.__next_tick_callbacks = []; | |
7130 | + } | |
7131 | + vm.__next_tick_callbacks.push(function () { | |
7132 | + if (cb) { | |
7133 | + try { | |
7134 | + cb.call(vm); | |
7135 | + } catch (e) { | |
7136 | + handleError(e, vm, 'nextTick'); | |
7137 | + } | |
7138 | + } else if (_resolve) { | |
7139 | + _resolve(vm); | |
7140 | + } | |
7141 | + }); | |
7142 | + // $flow-disable-line | |
7143 | + if (!cb && typeof Promise !== 'undefined') { | |
7144 | + return new Promise(function (resolve) { | |
7145 | + _resolve = resolve; | |
7146 | + }) | |
7147 | + } | |
7148 | +} | |
7149 | + | |
7150 | +/* */ | |
7151 | + | |
7152 | +function cloneWithData(vm) { | |
7153 | + // 确保当前 vm 所有数据被同步 | |
7154 | + var ret = Object.create(null); | |
7155 | + var dataKeys = [].concat( | |
7156 | + Object.keys(vm._data || {}), | |
7157 | + Object.keys(vm._computedWatchers || {})); | |
7158 | + | |
7159 | + dataKeys.reduce(function(ret, key) { | |
7160 | + ret[key] = vm[key]; | |
7161 | + return ret | |
7162 | + }, ret); | |
7163 | + //TODO 需要把无用数据处理掉,比如 list=>l0 则 list 需要移除,否则多传输一份数据 | |
7164 | + Object.assign(ret, vm.$mp.data || {}); | |
7165 | + if ( | |
7166 | + Array.isArray(vm.$options.behaviors) && | |
7167 | + vm.$options.behaviors.indexOf('uni://form-field') !== -1 | |
7168 | + ) { //form-field | |
7169 | + ret['name'] = vm.name; | |
7170 | + ret['value'] = vm.value; | |
7171 | + } | |
7172 | + | |
7173 | + return JSON.parse(JSON.stringify(ret)) | |
7174 | +} | |
7175 | + | |
7176 | +var patch = function(oldVnode, vnode) { | |
7177 | + var this$1 = this; | |
7178 | + | |
7179 | + if (vnode === null) { //destroy | |
7180 | + return | |
7181 | + } | |
7182 | + if (this.mpType === 'page' || this.mpType === 'component') { | |
7183 | + var mpInstance = this.$scope; | |
7184 | + var data = Object.create(null); | |
7185 | + try { | |
7186 | + data = cloneWithData(this); | |
7187 | + } catch (err) { | |
7188 | + console.error(err); | |
7189 | + } | |
7190 | + data.__webviewId__ = mpInstance.data.__webviewId__; | |
7191 | + var mpData = Object.create(null); | |
7192 | + Object.keys(data).forEach(function (key) { //仅同步 data 中有的数据 | |
7193 | + mpData[key] = mpInstance.data[key]; | |
7194 | + }); | |
7195 | + var diffData = this.$shouldDiffData === false ? data : diff(data, mpData); | |
7196 | + if (Object.keys(diffData).length) { | |
7197 | + if (Object({"VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) { | |
7198 | + console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + this._uid + | |
7199 | + ']差量更新', | |
7200 | + JSON.stringify(diffData)); | |
7201 | + } | |
7202 | + this.__next_tick_pending = true; | |
7203 | + mpInstance.setData(diffData, function () { | |
7204 | + this$1.__next_tick_pending = false; | |
7205 | + flushCallbacks$1(this$1); | |
7206 | + }); | |
7207 | + } else { | |
7208 | + flushCallbacks$1(this); | |
7209 | + } | |
7210 | + } | |
7211 | +}; | |
7212 | + | |
7213 | +/* */ | |
7214 | + | |
7215 | +function createEmptyRender() { | |
7216 | + | |
7217 | +} | |
7218 | + | |
7219 | +function mountComponent$1( | |
7220 | + vm, | |
7221 | + el, | |
7222 | + hydrating | |
7223 | +) { | |
7224 | + if (!vm.mpType) {//main.js 中的 new Vue | |
7225 | + return vm | |
7226 | + } | |
7227 | + if (vm.mpType === 'app') { | |
7228 | + vm.$options.render = createEmptyRender; | |
7229 | + } | |
7230 | + if (!vm.$options.render) { | |
7231 | + vm.$options.render = createEmptyRender; | |
7232 | + if (true) { | |
7233 | + /* istanbul ignore if */ | |
7234 | + if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') || | |
7235 | + vm.$options.el || el) { | |
7236 | + warn( | |
7237 | + 'You are using the runtime-only build of Vue where the template ' + | |
7238 | + 'compiler is not available. Either pre-compile the templates into ' + | |
7239 | + 'render functions, or use the compiler-included build.', | |
7240 | + vm | |
7241 | + ); | |
7242 | + } else { | |
7243 | + warn( | |
7244 | + 'Failed to mount component: template or render function not defined.', | |
7245 | + vm | |
7246 | + ); | |
7247 | + } | |
7248 | + } | |
7249 | + } | |
7250 | + | |
7251 | + !vm._$fallback && callHook(vm, 'beforeMount'); | |
7252 | + | |
7253 | + var updateComponent = function () { | |
7254 | + vm._update(vm._render(), hydrating); | |
7255 | + }; | |
7256 | + | |
7257 | + // we set this to vm._watcher inside the watcher's constructor | |
7258 | + // since the watcher's initial patch may call $forceUpdate (e.g. inside child | |
7259 | + // component's mounted hook), which relies on vm._watcher being already defined | |
7260 | + new Watcher(vm, updateComponent, noop, { | |
7261 | + before: function before() { | |
7262 | + if (vm._isMounted && !vm._isDestroyed) { | |
7263 | + callHook(vm, 'beforeUpdate'); | |
7264 | + } | |
7265 | + } | |
7266 | + }, true /* isRenderWatcher */); | |
7267 | + hydrating = false; | |
7268 | + return vm | |
7269 | +} | |
7270 | + | |
7271 | +/* */ | |
7272 | + | |
7273 | +function renderClass ( | |
7274 | + staticClass, | |
7275 | + dynamicClass | |
7276 | +) { | |
7277 | + if (isDef(staticClass) || isDef(dynamicClass)) { | |
7278 | + return concat(staticClass, stringifyClass(dynamicClass)) | |
7279 | + } | |
7280 | + /* istanbul ignore next */ | |
7281 | + return '' | |
7282 | +} | |
7283 | + | |
7284 | +function concat (a, b) { | |
7285 | + return a ? b ? (a + ' ' + b) : a : (b || '') | |
7286 | +} | |
7287 | + | |
7288 | +function stringifyClass (value) { | |
7289 | + if (Array.isArray(value)) { | |
7290 | + return stringifyArray(value) | |
7291 | + } | |
7292 | + if (isObject(value)) { | |
7293 | + return stringifyObject(value) | |
7294 | + } | |
7295 | + if (typeof value === 'string') { | |
7296 | + return value | |
7297 | + } | |
7298 | + /* istanbul ignore next */ | |
7299 | + return '' | |
7300 | +} | |
7301 | + | |
7302 | +function stringifyArray (value) { | |
7303 | + var res = ''; | |
7304 | + var stringified; | |
7305 | + for (var i = 0, l = value.length; i < l; i++) { | |
7306 | + if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') { | |
7307 | + if (res) { res += ' '; } | |
7308 | + res += stringified; | |
7309 | + } | |
7310 | + } | |
7311 | + return res | |
7312 | +} | |
7313 | + | |
7314 | +function stringifyObject (value) { | |
7315 | + var res = ''; | |
7316 | + for (var key in value) { | |
7317 | + if (value[key]) { | |
7318 | + if (res) { res += ' '; } | |
7319 | + res += key; | |
7320 | + } | |
7321 | + } | |
7322 | + return res | |
7323 | +} | |
7324 | + | |
7325 | +/* */ | |
7326 | + | |
7327 | +var parseStyleText = cached(function (cssText) { | |
7328 | + var res = {}; | |
7329 | + var listDelimiter = /;(?![^(]*\))/g; | |
7330 | + var propertyDelimiter = /:(.+)/; | |
7331 | + cssText.split(listDelimiter).forEach(function (item) { | |
7332 | + if (item) { | |
7333 | + var tmp = item.split(propertyDelimiter); | |
7334 | + tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim()); | |
7335 | + } | |
7336 | + }); | |
7337 | + return res | |
7338 | +}); | |
7339 | + | |
7340 | +// normalize possible array / string values into Object | |
7341 | +function normalizeStyleBinding (bindingStyle) { | |
7342 | + if (Array.isArray(bindingStyle)) { | |
7343 | + return toObject(bindingStyle) | |
7344 | + } | |
7345 | + if (typeof bindingStyle === 'string') { | |
7346 | + return parseStyleText(bindingStyle) | |
7347 | + } | |
7348 | + return bindingStyle | |
7349 | +} | |
7350 | + | |
7351 | +/* */ | |
7352 | + | |
7353 | +var MP_METHODS = ['createSelectorQuery', 'createIntersectionObserver', 'selectAllComponents', 'selectComponent']; | |
7354 | + | |
7355 | +function getTarget(obj, path) { | |
7356 | + var parts = path.split('.'); | |
7357 | + var key = parts[0]; | |
7358 | + if (key.indexOf('__$n') === 0) { //number index | |
7359 | + key = parseInt(key.replace('__$n', '')); | |
7360 | + } | |
7361 | + if (parts.length === 1) { | |
7362 | + return obj[key] | |
7363 | + } | |
7364 | + return getTarget(obj[key], parts.slice(1).join('.')) | |
7365 | +} | |
7366 | + | |
7367 | +function internalMixin(Vue) { | |
7368 | + | |
7369 | + Vue.config.errorHandler = function(err) { | |
7370 | + console.error(err); | |
7371 | + /* eslint-disable no-undef */ | |
7372 | + var app = getApp(); | |
7373 | + if (app && app.onError) { | |
7374 | + app.onError(err); | |
7375 | + } | |
7376 | + }; | |
7377 | + | |
7378 | + var oldEmit = Vue.prototype.$emit; | |
7379 | + | |
7380 | + Vue.prototype.$emit = function(event) { | |
7381 | + if (this.$scope && event) { | |
7382 | + this.$scope['triggerEvent'](event, { | |
7383 | + __args__: toArray(arguments, 1) | |
7384 | + }); | |
7385 | + } | |
7386 | + return oldEmit.apply(this, arguments) | |
7387 | + }; | |
7388 | + | |
7389 | + Vue.prototype.$nextTick = function(fn) { | |
7390 | + return nextTick$1(this, fn) | |
7391 | + }; | |
7392 | + | |
7393 | + MP_METHODS.forEach(function (method) { | |
7394 | + Vue.prototype[method] = function(args) { | |
7395 | + if (this.$scope && this.$scope[method]) { | |
7396 | + return this.$scope[method](args) | |
7397 | + } | |
7398 | + // mp-alipay | |
7399 | + if (typeof my === 'undefined') { | |
7400 | + return | |
7401 | + } | |
7402 | + if (method === 'createSelectorQuery') { | |
7403 | + /* eslint-disable no-undef */ | |
7404 | + return my.createSelectorQuery(args) | |
7405 | + } else if (method === 'createIntersectionObserver') { | |
7406 | + /* eslint-disable no-undef */ | |
7407 | + return my.createIntersectionObserver(args) | |
7408 | + } | |
7409 | + // TODO mp-alipay 暂不支持 selectAllComponents,selectComponent | |
7410 | + }; | |
7411 | + }); | |
7412 | + | |
7413 | + Vue.prototype.__init_provide = initProvide; | |
7414 | + | |
7415 | + Vue.prototype.__init_injections = initInjections; | |
7416 | + | |
7417 | + Vue.prototype.__call_hook = function(hook, args) { | |
7418 | + var vm = this; | |
7419 | + // #7573 disable dep collection when invoking lifecycle hooks | |
7420 | + pushTarget(); | |
7421 | + var handlers = vm.$options[hook]; | |
7422 | + var info = hook + " hook"; | |
7423 | + var ret; | |
7424 | + if (handlers) { | |
7425 | + for (var i = 0, j = handlers.length; i < j; i++) { | |
7426 | + ret = invokeWithErrorHandling(handlers[i], vm, args ? [args] : null, vm, info); | |
7427 | + } | |
7428 | + } | |
7429 | + if (vm._hasHookEvent) { | |
7430 | + vm.$emit('hook:' + hook, args); | |
7431 | + } | |
7432 | + popTarget(); | |
7433 | + return ret | |
7434 | + }; | |
7435 | + | |
7436 | + Vue.prototype.__set_model = function(target, key, value, modifiers) { | |
7437 | + if (Array.isArray(modifiers)) { | |
7438 | + if (modifiers.indexOf('trim') !== -1) { | |
7439 | + value = value.trim(); | |
7440 | + } | |
7441 | + if (modifiers.indexOf('number') !== -1) { | |
7442 | + value = this._n(value); | |
7443 | + } | |
7444 | + } | |
7445 | + if (!target) { | |
7446 | + target = this; | |
7447 | + } | |
7448 | + target[key] = value; | |
7449 | + }; | |
7450 | + | |
7451 | + Vue.prototype.__set_sync = function(target, key, value) { | |
7452 | + if (!target) { | |
7453 | + target = this; | |
7454 | + } | |
7455 | + target[key] = value; | |
7456 | + }; | |
7457 | + | |
7458 | + Vue.prototype.__get_orig = function(item) { | |
7459 | + if (isPlainObject(item)) { | |
7460 | + return item['$orig'] || item | |
7461 | + } | |
7462 | + return item | |
7463 | + }; | |
7464 | + | |
7465 | + Vue.prototype.__get_value = function(dataPath, target) { | |
7466 | + return getTarget(target || this, dataPath) | |
7467 | + }; | |
7468 | + | |
7469 | + | |
7470 | + Vue.prototype.__get_class = function(dynamicClass, staticClass) { | |
7471 | + return renderClass(staticClass, dynamicClass) | |
7472 | + }; | |
7473 | + | |
7474 | + Vue.prototype.__get_style = function(dynamicStyle, staticStyle) { | |
7475 | + if (!dynamicStyle && !staticStyle) { | |
7476 | + return '' | |
7477 | + } | |
7478 | + var dynamicStyleObj = normalizeStyleBinding(dynamicStyle); | |
7479 | + var styleObj = staticStyle ? extend(staticStyle, dynamicStyleObj) : dynamicStyleObj; | |
7480 | + return Object.keys(styleObj).map(function (name) { return ((hyphenate(name)) + ":" + (styleObj[name])); }).join(';') | |
7481 | + }; | |
7482 | + | |
7483 | + Vue.prototype.__map = function(val, iteratee) { | |
7484 | + //TODO 暂不考虑 string,number | |
7485 | + var ret, i, l, keys, key; | |
7486 | + if (Array.isArray(val)) { | |
7487 | + ret = new Array(val.length); | |
7488 | + for (i = 0, l = val.length; i < l; i++) { | |
7489 | + ret[i] = iteratee(val[i], i); | |
7490 | + } | |
7491 | + return ret | |
7492 | + } else if (isObject(val)) { | |
7493 | + keys = Object.keys(val); | |
7494 | + ret = Object.create(null); | |
7495 | + for (i = 0, l = keys.length; i < l; i++) { | |
7496 | + key = keys[i]; | |
7497 | + ret[key] = iteratee(val[key], key, i); | |
7498 | + } | |
7499 | + return ret | |
7500 | + } | |
7501 | + return [] | |
7502 | + }; | |
7503 | + | |
7504 | +} | |
7505 | + | |
7506 | +/* */ | |
7507 | + | |
7508 | +var LIFECYCLE_HOOKS$1 = [ | |
7509 | + //App | |
7510 | + 'onLaunch', | |
7511 | + 'onShow', | |
7512 | + 'onHide', | |
7513 | + 'onUniNViewMessage', | |
7514 | + 'onError', | |
7515 | + //Page | |
7516 | + 'onLoad', | |
7517 | + // 'onShow', | |
7518 | + 'onReady', | |
7519 | + // 'onHide', | |
7520 | + 'onUnload', | |
7521 | + 'onPullDownRefresh', | |
7522 | + 'onReachBottom', | |
7523 | + 'onTabItemTap', | |
7524 | + 'onShareAppMessage', | |
7525 | + 'onResize', | |
7526 | + 'onPageScroll', | |
7527 | + 'onNavigationBarButtonTap', | |
7528 | + 'onBackPress', | |
7529 | + 'onNavigationBarSearchInputChanged', | |
7530 | + 'onNavigationBarSearchInputConfirmed', | |
7531 | + 'onNavigationBarSearchInputClicked', | |
7532 | + //Component | |
7533 | + // 'onReady', // 兼容旧版本,应该移除该事件 | |
7534 | + 'onPageShow', | |
7535 | + 'onPageHide', | |
7536 | + 'onPageResize' | |
7537 | +]; | |
7538 | +function lifecycleMixin$1(Vue) { | |
7539 | + | |
7540 | + //fixed vue-class-component | |
7541 | + var oldExtend = Vue.extend; | |
7542 | + Vue.extend = function(extendOptions) { | |
7543 | + extendOptions = extendOptions || {}; | |
7544 | + | |
7545 | + var methods = extendOptions.methods; | |
7546 | + if (methods) { | |
7547 | + Object.keys(methods).forEach(function (methodName) { | |
7548 | + if (LIFECYCLE_HOOKS$1.indexOf(methodName)!==-1) { | |
7549 | + extendOptions[methodName] = methods[methodName]; | |
7550 | + delete methods[methodName]; | |
7551 | + } | |
7552 | + }); | |
7553 | + } | |
7554 | + | |
7555 | + return oldExtend.call(this, extendOptions) | |
7556 | + }; | |
7557 | + | |
7558 | + var strategies = Vue.config.optionMergeStrategies; | |
7559 | + var mergeHook = strategies.created; | |
7560 | + LIFECYCLE_HOOKS$1.forEach(function (hook) { | |
7561 | + strategies[hook] = mergeHook; | |
7562 | + }); | |
7563 | + | |
7564 | + Vue.prototype.__lifecycle_hooks__ = LIFECYCLE_HOOKS$1; | |
7565 | +} | |
7566 | + | |
7567 | +/* */ | |
7568 | + | |
7569 | +// install platform patch function | |
7570 | +Vue.prototype.__patch__ = patch; | |
7571 | + | |
7572 | +// public mount method | |
7573 | +Vue.prototype.$mount = function( | |
7574 | + el , | |
7575 | + hydrating | |
7576 | +) { | |
7577 | + return mountComponent$1(this, el, hydrating) | |
7578 | +}; | |
7579 | + | |
7580 | +lifecycleMixin$1(Vue); | |
7581 | +internalMixin(Vue); | |
7582 | + | |
7583 | +/* */ | |
7584 | + | |
7585 | +/* harmony default export */ __webpack_exports__["default"] = (Vue); | |
7586 | + | |
7587 | +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ 3))) | |
7588 | + | |
7589 | +/***/ }), | |
7590 | +/* 3 */ | |
7591 | +/*!***********************************!*\ | |
7592 | + !*** (webpack)/buildin/global.js ***! | |
7593 | + \***********************************/ | |
7594 | +/*! no static exports found */ | |
7595 | +/***/ (function(module, exports) { | |
7596 | + | |
7597 | +var g; | |
7598 | + | |
7599 | +// This works in non-strict mode | |
7600 | +g = (function() { | |
7601 | + return this; | |
7602 | +})(); | |
7603 | + | |
7604 | +try { | |
7605 | + // This works if eval is allowed (see CSP) | |
7606 | + g = g || new Function("return this")(); | |
7607 | +} catch (e) { | |
7608 | + // This works if the window reference is available | |
7609 | + if (typeof window === "object") g = window; | |
7610 | +} | |
7611 | + | |
7612 | +// g can still be undefined, but nothing to do about it... | |
7613 | +// We return undefined, instead of nothing here, so it's | |
7614 | +// easier to handle this case. if(!global) { ...} | |
7615 | + | |
7616 | +module.exports = g; | |
7617 | + | |
7618 | + | |
7619 | +/***/ }), | |
7620 | +/* 4 */ | |
7621 | +/*!**********************************************************!*\ | |
7622 | + !*** C:/Users/Administrator/Desktop/gulu-vue/pages.json ***! | |
7623 | + \**********************************************************/ | |
7624 | +/*! no static exports found */ | |
7625 | +/***/ (function(module, exports) { | |
7626 | + | |
7627 | + | |
7628 | + | |
7629 | +/***/ }), | |
7630 | +/* 5 */ | |
7631 | +/*!*******************************************************!*\ | |
7632 | + !*** ./node_modules/@dcloudio/uni-stat/dist/index.js ***! | |
7633 | + \*******************************************************/ | |
7634 | +/*! no static exports found */ | |
7635 | +/***/ (function(module, exports, __webpack_require__) { | |
7636 | + | |
7637 | +"use strict"; | |
7638 | +/* WEBPACK VAR INJECTION */(function(uni) {var _package = __webpack_require__(/*! ../package.json */ 6);function _createSuper(Derived) {return function () {var Super = _getPrototypeOf(Derived),result;if (_isNativeReflectConstruct()) {var NewTarget = _getPrototypeOf(this).constructor;result = Reflect.construct(Super, arguments, NewTarget);} else {result = Super.apply(this, arguments);}return _possibleConstructorReturn(this, result);};}function _possibleConstructorReturn(self, call) {if (call && (typeof call === "object" || typeof call === "function")) {return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self) {if (self === void 0) {throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _isNativeReflectConstruct() {if (typeof Reflect === "undefined" || !Reflect.construct) return false;if (Reflect.construct.sham) return false;if (typeof Proxy === "function") return true;try {Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));return true;} catch (e) {return false;}}function _getPrototypeOf(o) {_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {return o.__proto__ || Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass, superClass) {if (typeof superClass !== "function" && superClass !== null) {throw new TypeError("Super expression must either be null or a function");}subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });if (superClass) _setPrototypeOf(subClass, superClass);}function _setPrototypeOf(o, p) {_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {o.__proto__ = p;return o;};return _setPrototypeOf(o, p);}function _classCallCheck(instance, Constructor) {if (!(instance instanceof Constructor)) {throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target, props) {for (var i = 0; i < props.length; i++) {var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);}}function _createClass(Constructor, protoProps, staticProps) {if (protoProps) _defineProperties(Constructor.prototype, protoProps);if (staticProps) _defineProperties(Constructor, staticProps);return Constructor;} | |
7639 | + | |
7640 | +var STAT_VERSION = _package.version; | |
7641 | +var STAT_URL = 'https://tongji.dcloud.io/uni/stat'; | |
7642 | +var STAT_H5_URL = 'https://tongji.dcloud.io/uni/stat.gif'; | |
7643 | +var PAGE_PVER_TIME = 1800; | |
7644 | +var APP_PVER_TIME = 300; | |
7645 | +var OPERATING_TIME = 10; | |
7646 | + | |
7647 | +var UUID_KEY = '__DC_STAT_UUID'; | |
7648 | +var UUID_VALUE = '__DC_UUID_VALUE'; | |
7649 | + | |
7650 | +function getUuid() { | |
7651 | + var uuid = ''; | |
7652 | + if (getPlatformName() === 'n') { | |
7653 | + try { | |
7654 | + uuid = plus.runtime.getDCloudId(); | |
7655 | + } catch (e) { | |
7656 | + uuid = ''; | |
7657 | + } | |
7658 | + return uuid; | |
7659 | + } | |
7660 | + | |
7661 | + try { | |
7662 | + uuid = uni.getStorageSync(UUID_KEY); | |
7663 | + } catch (e) { | |
7664 | + uuid = UUID_VALUE; | |
7665 | + } | |
7666 | + | |
7667 | + if (!uuid) { | |
7668 | + uuid = Date.now() + '' + Math.floor(Math.random() * 1e7); | |
7669 | + try { | |
7670 | + uni.setStorageSync(UUID_KEY, uuid); | |
7671 | + } catch (e) { | |
7672 | + uni.setStorageSync(UUID_KEY, UUID_VALUE); | |
7673 | + } | |
7674 | + } | |
7675 | + return uuid; | |
7676 | +} | |
7677 | + | |
7678 | +var getSgin = function getSgin(statData) { | |
7679 | + var arr = Object.keys(statData); | |
7680 | + var sortArr = arr.sort(); | |
7681 | + var sgin = {}; | |
7682 | + var sginStr = ''; | |
7683 | + for (var i in sortArr) { | |
7684 | + sgin[sortArr[i]] = statData[sortArr[i]]; | |
7685 | + sginStr += sortArr[i] + '=' + statData[sortArr[i]] + '&'; | |
7686 | + } | |
7687 | + // const options = sginStr.substr(0, sginStr.length - 1) | |
7688 | + // sginStr = sginStr.substr(0, sginStr.length - 1) + '&key=' + STAT_KEY; | |
7689 | + // const si = crypto.createHash('md5').update(sginStr).digest('hex'); | |
7690 | + return { | |
7691 | + sign: '', | |
7692 | + options: sginStr.substr(0, sginStr.length - 1) }; | |
7693 | + | |
7694 | +}; | |
7695 | + | |
7696 | +var getSplicing = function getSplicing(data) { | |
7697 | + var str = ''; | |
7698 | + for (var i in data) { | |
7699 | + str += i + '=' + data[i] + '&'; | |
7700 | + } | |
7701 | + return str.substr(0, str.length - 1); | |
7702 | +}; | |
7703 | + | |
7704 | +var getTime = function getTime() { | |
7705 | + return parseInt(new Date().getTime() / 1000); | |
7706 | +}; | |
7707 | + | |
7708 | +var getPlatformName = function getPlatformName() { | |
7709 | + var platformList = { | |
7710 | + 'app-plus': 'n', | |
7711 | + 'h5': 'h5', | |
7712 | + 'mp-weixin': 'wx', | |
7713 | + 'mp-alipay': 'ali', | |
7714 | + 'mp-baidu': 'bd', | |
7715 | + 'mp-toutiao': 'tt', | |
7716 | + 'mp-qq': 'qq' }; | |
7717 | + | |
7718 | + return platformList["mp-weixin"]; | |
7719 | +}; | |
7720 | + | |
7721 | +var getPackName = function getPackName() { | |
7722 | + var packName = ''; | |
7723 | + if (getPlatformName() === 'wx' || getPlatformName() === 'qq') { | |
7724 | + // 兼容微信小程序低版本基础库 | |
7725 | + if (uni.canIUse('getAccountInfoSync')) { | |
7726 | + packName = uni.getAccountInfoSync().miniProgram.appId || ''; | |
7727 | + } | |
7728 | + } | |
7729 | + return packName; | |
7730 | +}; | |
7731 | + | |
7732 | +var getVersion = function getVersion() { | |
7733 | + return getPlatformName() === 'n' ? plus.runtime.version : ''; | |
7734 | +}; | |
7735 | + | |
7736 | +var getChannel = function getChannel() { | |
7737 | + var platformName = getPlatformName(); | |
7738 | + var channel = ''; | |
7739 | + if (platformName === 'n') { | |
7740 | + channel = plus.runtime.channel; | |
7741 | + } | |
7742 | + return channel; | |
7743 | +}; | |
7744 | + | |
7745 | +var getScene = function getScene(options) { | |
7746 | + var platformName = getPlatformName(); | |
7747 | + var scene = ''; | |
7748 | + if (options) { | |
7749 | + return options; | |
7750 | + } | |
7751 | + if (platformName === 'wx') { | |
7752 | + scene = uni.getLaunchOptionsSync().scene; | |
7753 | + } | |
7754 | + return scene; | |
7755 | +}; | |
7756 | +var First__Visit__Time__KEY = 'First__Visit__Time'; | |
7757 | +var Last__Visit__Time__KEY = 'Last__Visit__Time'; | |
7758 | + | |
7759 | +var getFirstVisitTime = function getFirstVisitTime() { | |
7760 | + var timeStorge = uni.getStorageSync(First__Visit__Time__KEY); | |
7761 | + var time = 0; | |
7762 | + if (timeStorge) { | |
7763 | + time = timeStorge; | |
7764 | + } else { | |
7765 | + time = getTime(); | |
7766 | + uni.setStorageSync(First__Visit__Time__KEY, time); | |
7767 | + uni.removeStorageSync(Last__Visit__Time__KEY); | |
7768 | + } | |
7769 | + return time; | |
7770 | +}; | |
7771 | + | |
7772 | +var getLastVisitTime = function getLastVisitTime() { | |
7773 | + var timeStorge = uni.getStorageSync(Last__Visit__Time__KEY); | |
7774 | + var time = 0; | |
7775 | + if (timeStorge) { | |
7776 | + time = timeStorge; | |
7777 | + } else { | |
7778 | + time = ''; | |
7779 | + } | |
7780 | + uni.setStorageSync(Last__Visit__Time__KEY, getTime()); | |
7781 | + return time; | |
7782 | +}; | |
7783 | + | |
7784 | + | |
7785 | +var PAGE_RESIDENCE_TIME = '__page__residence__time'; | |
7786 | +var First_Page_residence_time = 0; | |
7787 | +var Last_Page_residence_time = 0; | |
7788 | + | |
7789 | + | |
7790 | +var setPageResidenceTime = function setPageResidenceTime() { | |
7791 | + First_Page_residence_time = getTime(); | |
7792 | + if (getPlatformName() === 'n') { | |
7793 | + uni.setStorageSync(PAGE_RESIDENCE_TIME, getTime()); | |
7794 | + } | |
7795 | + return First_Page_residence_time; | |
7796 | +}; | |
7797 | + | |
7798 | +var getPageResidenceTime = function getPageResidenceTime() { | |
7799 | + Last_Page_residence_time = getTime(); | |
7800 | + if (getPlatformName() === 'n') { | |
7801 | + First_Page_residence_time = uni.getStorageSync(PAGE_RESIDENCE_TIME); | |
7802 | + } | |
7803 | + return Last_Page_residence_time - First_Page_residence_time; | |
7804 | +}; | |
7805 | +var TOTAL__VISIT__COUNT = 'Total__Visit__Count'; | |
7806 | +var getTotalVisitCount = function getTotalVisitCount() { | |
7807 | + var timeStorge = uni.getStorageSync(TOTAL__VISIT__COUNT); | |
7808 | + var count = 1; | |
7809 | + if (timeStorge) { | |
7810 | + count = timeStorge; | |
7811 | + count++; | |
7812 | + } | |
7813 | + uni.setStorageSync(TOTAL__VISIT__COUNT, count); | |
7814 | + return count; | |
7815 | +}; | |
7816 | + | |
7817 | +var GetEncodeURIComponentOptions = function GetEncodeURIComponentOptions(statData) { | |
7818 | + var data = {}; | |
7819 | + for (var prop in statData) { | |
7820 | + data[prop] = encodeURIComponent(statData[prop]); | |
7821 | + } | |
7822 | + return data; | |
7823 | +}; | |
7824 | + | |
7825 | +var Set__First__Time = 0; | |
7826 | +var Set__Last__Time = 0; | |
7827 | + | |
7828 | +var getFirstTime = function getFirstTime() { | |
7829 | + var time = new Date().getTime(); | |
7830 | + Set__First__Time = time; | |
7831 | + Set__Last__Time = 0; | |
7832 | + return time; | |
7833 | +}; | |
7834 | + | |
7835 | + | |
7836 | +var getLastTime = function getLastTime() { | |
7837 | + var time = new Date().getTime(); | |
7838 | + Set__Last__Time = time; | |
7839 | + return time; | |
7840 | +}; | |
7841 | + | |
7842 | + | |
7843 | +var getResidenceTime = function getResidenceTime(type) { | |
7844 | + var residenceTime = 0; | |
7845 | + if (Set__First__Time !== 0) { | |
7846 | + residenceTime = Set__Last__Time - Set__First__Time; | |
7847 | + } | |
7848 | + | |
7849 | + residenceTime = parseInt(residenceTime / 1000); | |
7850 | + residenceTime = residenceTime < 1 ? 1 : residenceTime; | |
7851 | + if (type === 'app') { | |
7852 | + var overtime = residenceTime > APP_PVER_TIME ? true : false; | |
7853 | + return { | |
7854 | + residenceTime: residenceTime, | |
7855 | + overtime: overtime }; | |
7856 | + | |
7857 | + } | |
7858 | + if (type === 'page') { | |
7859 | + var _overtime = residenceTime > PAGE_PVER_TIME ? true : false; | |
7860 | + return { | |
7861 | + residenceTime: residenceTime, | |
7862 | + overtime: _overtime }; | |
7863 | + | |
7864 | + } | |
7865 | + | |
7866 | + return { | |
7867 | + residenceTime: residenceTime }; | |
7868 | + | |
7869 | + | |
7870 | +}; | |
7871 | + | |
7872 | +var getRoute = function getRoute() { | |
7873 | + var pages = getCurrentPages(); | |
7874 | + var page = pages[pages.length - 1]; | |
7875 | + var _self = page.$vm; | |
7876 | + | |
7877 | + if (getPlatformName() === 'bd') { | |
7878 | + return _self.$mp && _self.$mp.page.is; | |
7879 | + } else { | |
7880 | + return _self.$scope && _self.$scope.route || _self.$mp && _self.$mp.page.route; | |
7881 | + } | |
7882 | +}; | |
7883 | + | |
7884 | +var getPageRoute = function getPageRoute(self) { | |
7885 | + var pages = getCurrentPages(); | |
7886 | + var page = pages[pages.length - 1]; | |
7887 | + var _self = page.$vm; | |
7888 | + var query = self._query; | |
7889 | + var str = query && JSON.stringify(query) !== '{}' ? '?' + JSON.stringify(query) : ''; | |
7890 | + // clear | |
7891 | + self._query = ''; | |
7892 | + if (getPlatformName() === 'bd') { | |
7893 | + return _self.$mp && _self.$mp.page.is + str; | |
7894 | + } else { | |
7895 | + return _self.$scope && _self.$scope.route + str || _self.$mp && _self.$mp.page.route + str; | |
7896 | + } | |
7897 | +}; | |
7898 | + | |
7899 | +var getPageTypes = function getPageTypes(self) { | |
7900 | + if (self.mpType === 'page' || self.$mp && self.$mp.mpType === 'page' || self.$options.mpType === 'page') { | |
7901 | + return true; | |
7902 | + } | |
7903 | + return false; | |
7904 | +}; | |
7905 | + | |
7906 | +var calibration = function calibration(eventName, options) { | |
7907 | + // login 、 share 、pay_success 、pay_fail 、register 、title | |
7908 | + if (!eventName) { | |
7909 | + console.error("uni.report \u7F3A\u5C11 [eventName] \u53C2\u6570"); | |
7910 | + return true; | |
7911 | + } | |
7912 | + if (typeof eventName !== 'string') { | |
7913 | + console.error("uni.report [eventName] \u53C2\u6570\u7C7B\u578B\u9519\u8BEF,\u53EA\u80FD\u4E3A String \u7C7B\u578B"); | |
7914 | + return true; | |
7915 | + } | |
7916 | + if (eventName.length > 255) { | |
7917 | + console.error("uni.report [eventName] \u53C2\u6570\u957F\u5EA6\u4E0D\u80FD\u5927\u4E8E 255"); | |
7918 | + return true; | |
7919 | + } | |
7920 | + | |
7921 | + if (typeof options !== 'string' && typeof options !== 'object') { | |
7922 | + console.error("uni.report [options] \u53C2\u6570\u7C7B\u578B\u9519\u8BEF,\u53EA\u80FD\u4E3A String \u6216 Object \u7C7B\u578B"); | |
7923 | + return true; | |
7924 | + } | |
7925 | + | |
7926 | + if (typeof options === 'string' && options.length > 255) { | |
7927 | + console.error("uni.report [options] \u53C2\u6570\u957F\u5EA6\u4E0D\u80FD\u5927\u4E8E 255"); | |
7928 | + return true; | |
7929 | + } | |
7930 | + | |
7931 | + if (eventName === 'title' && typeof options !== 'string') { | |
7932 | + console.error('uni.report [eventName] 参数为 title 时,[options] 参数只能为 String 类型'); | |
7933 | + return true; | |
7934 | + } | |
7935 | +}; | |
7936 | + | |
7937 | +var PagesJson = __webpack_require__(/*! uni-pages?{"type":"style"} */ 7).default; | |
7938 | +var statConfig = __webpack_require__(/*! uni-stat-config */ 8).default || __webpack_require__(/*! uni-stat-config */ 8); | |
7939 | + | |
7940 | +var resultOptions = uni.getSystemInfoSync();var | |
7941 | + | |
7942 | +Util = /*#__PURE__*/function () { | |
7943 | + function Util() {_classCallCheck(this, Util); | |
7944 | + this.self = ''; | |
7945 | + this._retry = 0; | |
7946 | + this._platform = ''; | |
7947 | + this._query = {}; | |
7948 | + this._navigationBarTitle = { | |
7949 | + config: '', | |
7950 | + page: '', | |
7951 | + report: '', | |
7952 | + lt: '' }; | |
7953 | + | |
7954 | + this._operatingTime = 0; | |
7955 | + this._reportingRequestData = { | |
7956 | + '1': [], | |
7957 | + '11': [] }; | |
7958 | + | |
7959 | + this.__prevent_triggering = false; | |
7960 | + | |
7961 | + this.__licationHide = false; | |
7962 | + this.__licationShow = false; | |
7963 | + this._lastPageRoute = ''; | |
7964 | + this.statData = { | |
7965 | + uuid: getUuid(), | |
7966 | + ut: getPlatformName(), | |
7967 | + mpn: getPackName(), | |
7968 | + ak: statConfig.appid, | |
7969 | + usv: STAT_VERSION, | |
7970 | + v: getVersion(), | |
7971 | + ch: getChannel(), | |
7972 | + cn: '', | |
7973 | + pn: '', | |
7974 | + ct: '', | |
7975 | + t: getTime(), | |
7976 | + tt: '', | |
7977 | + p: resultOptions.platform === 'android' ? 'a' : 'i', | |
7978 | + brand: resultOptions.brand || '', | |
7979 | + md: resultOptions.model, | |
7980 | + sv: resultOptions.system.replace(/(Android|iOS)\s/, ''), | |
7981 | + mpsdk: resultOptions.SDKVersion || '', | |
7982 | + mpv: resultOptions.version || '', | |
7983 | + lang: resultOptions.language, | |
7984 | + pr: resultOptions.pixelRatio, | |
7985 | + ww: resultOptions.windowWidth, | |
7986 | + wh: resultOptions.windowHeight, | |
7987 | + sw: resultOptions.screenWidth, | |
7988 | + sh: resultOptions.screenHeight }; | |
7989 | + | |
7990 | + | |
7991 | + }_createClass(Util, [{ key: "_applicationShow", value: function _applicationShow() | |
7992 | + | |
7993 | + { | |
7994 | + if (this.__licationHide) { | |
7995 | + getLastTime(); | |
7996 | + var time = getResidenceTime('app'); | |
7997 | + if (time.overtime) { | |
7998 | + var options = { | |
7999 | + path: this._lastPageRoute, | |
8000 | + scene: this.statData.sc }; | |
8001 | + | |
8002 | + this._sendReportRequest(options); | |
8003 | + } | |
8004 | + this.__licationHide = false; | |
8005 | + } | |
8006 | + } }, { key: "_applicationHide", value: function _applicationHide( | |
8007 | + | |
8008 | + self, type) { | |
8009 | + | |
8010 | + this.__licationHide = true; | |
8011 | + getLastTime(); | |
8012 | + var time = getResidenceTime(); | |
8013 | + getFirstTime(); | |
8014 | + var route = getPageRoute(this); | |
8015 | + this._sendHideRequest({ | |
8016 | + urlref: route, | |
8017 | + urlref_ts: time.residenceTime }, | |
8018 | + type); | |
8019 | + } }, { key: "_pageShow", value: function _pageShow() | |
8020 | + | |
8021 | + { | |
8022 | + var route = getPageRoute(this); | |
8023 | + var routepath = getRoute(); | |
8024 | + this._navigationBarTitle.config = PagesJson && | |
8025 | + PagesJson.pages[routepath] && | |
8026 | + PagesJson.pages[routepath].titleNView && | |
8027 | + PagesJson.pages[routepath].titleNView.titleText || | |
8028 | + PagesJson && | |
8029 | + PagesJson.pages[routepath] && | |
8030 | + PagesJson.pages[routepath].navigationBarTitleText || ''; | |
8031 | + | |
8032 | + if (this.__licationShow) { | |
8033 | + getFirstTime(); | |
8034 | + this.__licationShow = false; | |
8035 | + // console.log('这是 onLauch 之后执行的第一次 pageShow ,为下次记录时间做准备'); | |
8036 | + this._lastPageRoute = route; | |
8037 | + return; | |
8038 | + } | |
8039 | + | |
8040 | + getLastTime(); | |
8041 | + this._lastPageRoute = route; | |
8042 | + var time = getResidenceTime('page'); | |
8043 | + if (time.overtime) { | |
8044 | + var options = { | |
8045 | + path: this._lastPageRoute, | |
8046 | + scene: this.statData.sc }; | |
8047 | + | |
8048 | + this._sendReportRequest(options); | |
8049 | + } | |
8050 | + getFirstTime(); | |
8051 | + } }, { key: "_pageHide", value: function _pageHide() | |
8052 | + | |
8053 | + { | |
8054 | + if (!this.__licationHide) { | |
8055 | + getLastTime(); | |
8056 | + var time = getResidenceTime('page'); | |
8057 | + this._sendPageRequest({ | |
8058 | + url: this._lastPageRoute, | |
8059 | + urlref: this._lastPageRoute, | |
8060 | + urlref_ts: time.residenceTime }); | |
8061 | + | |
8062 | + this._navigationBarTitle = { | |
8063 | + config: '', | |
8064 | + page: '', | |
8065 | + report: '', | |
8066 | + lt: '' }; | |
8067 | + | |
8068 | + return; | |
8069 | + } | |
8070 | + } }, { key: "_login", value: function _login() | |
8071 | + | |
8072 | + { | |
8073 | + this._sendEventRequest({ | |
8074 | + key: 'login' }, | |
8075 | + 0); | |
8076 | + } }, { key: "_share", value: function _share() | |
8077 | + | |
8078 | + { | |
8079 | + this._sendEventRequest({ | |
8080 | + key: 'share' }, | |
8081 | + 0); | |
8082 | + } }, { key: "_payment", value: function _payment( | |
8083 | + key) { | |
8084 | + this._sendEventRequest({ | |
8085 | + key: key }, | |
8086 | + 0); | |
8087 | + } }, { key: "_sendReportRequest", value: function _sendReportRequest( | |
8088 | + options) { | |
8089 | + | |
8090 | + this._navigationBarTitle.lt = '1'; | |
8091 | + var query = options.query && JSON.stringify(options.query) !== '{}' ? '?' + JSON.stringify(options.query) : ''; | |
8092 | + this.statData.lt = '1'; | |
8093 | + this.statData.url = options.path + query || ''; | |
8094 | + this.statData.t = getTime(); | |
8095 | + this.statData.sc = getScene(options.scene); | |
8096 | + this.statData.fvts = getFirstVisitTime(); | |
8097 | + this.statData.lvts = getLastVisitTime(); | |
8098 | + this.statData.tvc = getTotalVisitCount(); | |
8099 | + if (getPlatformName() === 'n') { | |
8100 | + this.getProperty(); | |
8101 | + } else { | |
8102 | + this.getNetworkInfo(); | |
8103 | + } | |
8104 | + } }, { key: "_sendPageRequest", value: function _sendPageRequest( | |
8105 | + | |
8106 | + opt) {var | |
8107 | + | |
8108 | + url = | |
8109 | + | |
8110 | + | |
8111 | + opt.url,urlref = opt.urlref,urlref_ts = opt.urlref_ts; | |
8112 | + this._navigationBarTitle.lt = '11'; | |
8113 | + var options = { | |
8114 | + ak: this.statData.ak, | |
8115 | + uuid: this.statData.uuid, | |
8116 | + lt: '11', | |
8117 | + ut: this.statData.ut, | |
8118 | + url: url, | |
8119 | + tt: this.statData.tt, | |
8120 | + urlref: urlref, | |
8121 | + urlref_ts: urlref_ts, | |
8122 | + ch: this.statData.ch, | |
8123 | + usv: this.statData.usv, | |
8124 | + t: getTime(), | |
8125 | + p: this.statData.p }; | |
8126 | + | |
8127 | + this.request(options); | |
8128 | + } }, { key: "_sendHideRequest", value: function _sendHideRequest( | |
8129 | + | |
8130 | + opt, type) {var | |
8131 | + | |
8132 | + urlref = | |
8133 | + | |
8134 | + opt.urlref,urlref_ts = opt.urlref_ts; | |
8135 | + var options = { | |
8136 | + ak: this.statData.ak, | |
8137 | + uuid: this.statData.uuid, | |
8138 | + lt: '3', | |
8139 | + ut: this.statData.ut, | |
8140 | + urlref: urlref, | |
8141 | + urlref_ts: urlref_ts, | |
8142 | + ch: this.statData.ch, | |
8143 | + usv: this.statData.usv, | |
8144 | + t: getTime(), | |
8145 | + p: this.statData.p }; | |
8146 | + | |
8147 | + this.request(options, type); | |
8148 | + } }, { key: "_sendEventRequest", value: function _sendEventRequest() | |
8149 | + | |
8150 | + | |
8151 | + | |
8152 | + {var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},_ref$key = _ref.key,key = _ref$key === void 0 ? '' : _ref$key,_ref$value = _ref.value,value = _ref$value === void 0 ? "" : _ref$value; | |
8153 | + var route = this._lastPageRoute; | |
8154 | + var options = { | |
8155 | + ak: this.statData.ak, | |
8156 | + uuid: this.statData.uuid, | |
8157 | + lt: '21', | |
8158 | + ut: this.statData.ut, | |
8159 | + url: route, | |
8160 | + ch: this.statData.ch, | |
8161 | + e_n: key, | |
8162 | + e_v: typeof value === 'object' ? JSON.stringify(value) : value.toString(), | |
8163 | + usv: this.statData.usv, | |
8164 | + t: getTime(), | |
8165 | + p: this.statData.p }; | |
8166 | + | |
8167 | + this.request(options); | |
8168 | + } }, { key: "getNetworkInfo", value: function getNetworkInfo() | |
8169 | + | |
8170 | + {var _this = this; | |
8171 | + uni.getNetworkType({ | |
8172 | + success: function success(result) { | |
8173 | + _this.statData.net = result.networkType; | |
8174 | + _this.getLocation(); | |
8175 | + } }); | |
8176 | + | |
8177 | + } }, { key: "getProperty", value: function getProperty() | |
8178 | + | |
8179 | + {var _this2 = this; | |
8180 | + plus.runtime.getProperty(plus.runtime.appid, function (wgtinfo) { | |
8181 | + _this2.statData.v = wgtinfo.version || ''; | |
8182 | + _this2.getNetworkInfo(); | |
8183 | + }); | |
8184 | + } }, { key: "getLocation", value: function getLocation() | |
8185 | + | |
8186 | + {var _this3 = this; | |
8187 | + if (statConfig.getLocation) { | |
8188 | + uni.getLocation({ | |
8189 | + type: 'wgs84', | |
8190 | + geocode: true, | |
8191 | + success: function success(result) { | |
8192 | + if (result.address) { | |
8193 | + _this3.statData.cn = result.address.country; | |
8194 | + _this3.statData.pn = result.address.province; | |
8195 | + _this3.statData.ct = result.address.city; | |
8196 | + } | |
8197 | + | |
8198 | + _this3.statData.lat = result.latitude; | |
8199 | + _this3.statData.lng = result.longitude; | |
8200 | + _this3.request(_this3.statData); | |
8201 | + } }); | |
8202 | + | |
8203 | + } else { | |
8204 | + this.statData.lat = 0; | |
8205 | + this.statData.lng = 0; | |
8206 | + this.request(this.statData); | |
8207 | + } | |
8208 | + } }, { key: "request", value: function request( | |
8209 | + | |
8210 | + data, type) {var _this4 = this; | |
8211 | + var time = getTime(); | |
8212 | + var title = this._navigationBarTitle; | |
8213 | + data.ttn = title.page; | |
8214 | + data.ttpj = title.config; | |
8215 | + data.ttc = title.report; | |
8216 | + | |
8217 | + var requestData = this._reportingRequestData; | |
8218 | + if (getPlatformName() === 'n') { | |
8219 | + requestData = uni.getStorageSync('__UNI__STAT__DATA') || {}; | |
8220 | + } | |
8221 | + if (!requestData[data.lt]) { | |
8222 | + requestData[data.lt] = []; | |
8223 | + } | |
8224 | + requestData[data.lt].push(data); | |
8225 | + | |
8226 | + if (getPlatformName() === 'n') { | |
8227 | + uni.setStorageSync('__UNI__STAT__DATA', requestData); | |
8228 | + } | |
8229 | + if (getPageResidenceTime() < OPERATING_TIME && !type) { | |
8230 | + return; | |
8231 | + } | |
8232 | + var uniStatData = this._reportingRequestData; | |
8233 | + if (getPlatformName() === 'n') { | |
8234 | + uniStatData = uni.getStorageSync('__UNI__STAT__DATA'); | |
8235 | + } | |
8236 | + // 时间超过,重新获取时间戳 | |
8237 | + setPageResidenceTime(); | |
8238 | + var firstArr = []; | |
8239 | + var contentArr = []; | |
8240 | + var lastArr = [];var _loop = function _loop( | |
8241 | + | |
8242 | + i) { | |
8243 | + var rd = uniStatData[i]; | |
8244 | + rd.forEach(function (elm) { | |
8245 | + var newData = getSplicing(elm); | |
8246 | + if (i === 0) { | |
8247 | + firstArr.push(newData); | |
8248 | + } else if (i === 3) { | |
8249 | + lastArr.push(newData); | |
8250 | + } else { | |
8251 | + contentArr.push(newData); | |
8252 | + } | |
8253 | + });};for (var i in uniStatData) {_loop(i); | |
8254 | + } | |
8255 | + | |
8256 | + firstArr.push.apply(firstArr, contentArr.concat(lastArr)); | |
8257 | + var optionsData = { | |
8258 | + usv: STAT_VERSION, //统计 SDK 版本号 | |
8259 | + t: time, //发送请求时的时间戮 | |
8260 | + requests: JSON.stringify(firstArr) }; | |
8261 | + | |
8262 | + | |
8263 | + this._reportingRequestData = {}; | |
8264 | + if (getPlatformName() === 'n') { | |
8265 | + uni.removeStorageSync('__UNI__STAT__DATA'); | |
8266 | + } | |
8267 | + | |
8268 | + if (data.ut === 'h5') { | |
8269 | + this.imageRequest(optionsData); | |
8270 | + return; | |
8271 | + } | |
8272 | + | |
8273 | + if (getPlatformName() === 'n' && this.statData.p === 'a') { | |
8274 | + setTimeout(function () { | |
8275 | + _this4._sendRequest(optionsData); | |
8276 | + }, 200); | |
8277 | + return; | |
8278 | + } | |
8279 | + this._sendRequest(optionsData); | |
8280 | + } }, { key: "_sendRequest", value: function _sendRequest( | |
8281 | + optionsData) {var _this5 = this; | |
8282 | + uni.request({ | |
8283 | + url: STAT_URL, | |
8284 | + method: 'POST', | |
8285 | + // header: { | |
8286 | + // 'content-type': 'application/json' // 默认值 | |
8287 | + // }, | |
8288 | + data: optionsData, | |
8289 | + success: function success() { | |
8290 | + // if (process.env.NODE_ENV === 'development') { | |
8291 | + // console.log('stat request success'); | |
8292 | + // } | |
8293 | + }, | |
8294 | + fail: function fail(e) { | |
8295 | + if (++_this5._retry < 3) { | |
8296 | + setTimeout(function () { | |
8297 | + _this5._sendRequest(optionsData); | |
8298 | + }, 1000); | |
8299 | + } | |
8300 | + } }); | |
8301 | + | |
8302 | + } | |
8303 | + /** | |
8304 | + * h5 请求 | |
8305 | + */ }, { key: "imageRequest", value: function imageRequest( | |
8306 | + data) { | |
8307 | + var image = new Image(); | |
8308 | + var options = getSgin(GetEncodeURIComponentOptions(data)).options; | |
8309 | + image.src = STAT_H5_URL + '?' + options; | |
8310 | + } }, { key: "sendEvent", value: function sendEvent( | |
8311 | + | |
8312 | + key, value) { | |
8313 | + // 校验 type 参数 | |
8314 | + if (calibration(key, value)) return; | |
8315 | + | |
8316 | + if (key === 'title') { | |
8317 | + this._navigationBarTitle.report = value; | |
8318 | + return; | |
8319 | + } | |
8320 | + this._sendEventRequest({ | |
8321 | + key: key, | |
8322 | + value: typeof value === 'object' ? JSON.stringify(value) : value }, | |
8323 | + 1); | |
8324 | + } }]);return Util;}();var | |
8325 | + | |
8326 | + | |
8327 | + | |
8328 | +Stat = /*#__PURE__*/function (_Util) {_inherits(Stat, _Util);var _super = _createSuper(Stat);_createClass(Stat, null, [{ key: "getInstance", value: function getInstance() | |
8329 | + { | |
8330 | + if (!this.instance) { | |
8331 | + this.instance = new Stat(); | |
8332 | + } | |
8333 | + return this.instance; | |
8334 | + } }]); | |
8335 | + function Stat() {var _this6;_classCallCheck(this, Stat); | |
8336 | + _this6 = _super.call(this); | |
8337 | + _this6.instance = null; | |
8338 | + // 注册拦截器 | |
8339 | + if (typeof uni.addInterceptor === 'function' && "development" !== 'development') { | |
8340 | + _this6.addInterceptorInit(); | |
8341 | + _this6.interceptLogin(); | |
8342 | + _this6.interceptShare(true); | |
8343 | + _this6.interceptRequestPayment(); | |
8344 | + }return _this6; | |
8345 | + }_createClass(Stat, [{ key: "addInterceptorInit", value: function addInterceptorInit() | |
8346 | + | |
8347 | + { | |
8348 | + var self = this; | |
8349 | + uni.addInterceptor('setNavigationBarTitle', { | |
8350 | + invoke: function invoke(args) { | |
8351 | + self._navigationBarTitle.page = args.title; | |
8352 | + } }); | |
8353 | + | |
8354 | + } }, { key: "interceptLogin", value: function interceptLogin() | |
8355 | + | |
8356 | + { | |
8357 | + var self = this; | |
8358 | + uni.addInterceptor('login', { | |
8359 | + complete: function complete() { | |
8360 | + self._login(); | |
8361 | + } }); | |
8362 | + | |
8363 | + } }, { key: "interceptShare", value: function interceptShare( | |
8364 | + | |
8365 | + type) { | |
8366 | + var self = this; | |
8367 | + if (!type) { | |
8368 | + self._share(); | |
8369 | + return; | |
8370 | + } | |
8371 | + uni.addInterceptor('share', { | |
8372 | + success: function success() { | |
8373 | + self._share(); | |
8374 | + }, | |
8375 | + fail: function fail() { | |
8376 | + self._share(); | |
8377 | + } }); | |
8378 | + | |
8379 | + } }, { key: "interceptRequestPayment", value: function interceptRequestPayment() | |
8380 | + | |
8381 | + { | |
8382 | + var self = this; | |
8383 | + uni.addInterceptor('requestPayment', { | |
8384 | + success: function success() { | |
8385 | + self._payment('pay_success'); | |
8386 | + }, | |
8387 | + fail: function fail() { | |
8388 | + self._payment('pay_fail'); | |
8389 | + } }); | |
8390 | + | |
8391 | + } }, { key: "report", value: function report( | |
8392 | + | |
8393 | + options, self) { | |
8394 | + this.self = self; | |
8395 | + // if (process.env.NODE_ENV === 'development') { | |
8396 | + // console.log('report init'); | |
8397 | + // } | |
8398 | + setPageResidenceTime(); | |
8399 | + this.__licationShow = true; | |
8400 | + this._sendReportRequest(options, true); | |
8401 | + } }, { key: "load", value: function load( | |
8402 | + | |
8403 | + options, self) { | |
8404 | + if (!self.$scope && !self.$mp) { | |
8405 | + var page = getCurrentPages(); | |
8406 | + self.$scope = page[page.length - 1]; | |
8407 | + } | |
8408 | + this.self = self; | |
8409 | + this._query = options; | |
8410 | + } }, { key: "show", value: function show( | |
8411 | + | |
8412 | + self) { | |
8413 | + this.self = self; | |
8414 | + if (getPageTypes(self)) { | |
8415 | + this._pageShow(self); | |
8416 | + } else { | |
8417 | + this._applicationShow(self); | |
8418 | + } | |
8419 | + } }, { key: "ready", value: function ready( | |
8420 | + | |
8421 | + self) { | |
8422 | + // this.self = self; | |
8423 | + // if (getPageTypes(self)) { | |
8424 | + // this._pageShow(self); | |
8425 | + // } | |
8426 | + } }, { key: "hide", value: function hide( | |
8427 | + self) { | |
8428 | + this.self = self; | |
8429 | + if (getPageTypes(self)) { | |
8430 | + this._pageHide(self); | |
8431 | + } else { | |
8432 | + this._applicationHide(self, true); | |
8433 | + } | |
8434 | + } }, { key: "error", value: function error( | |
8435 | + em) { | |
8436 | + if (this._platform === 'devtools') { | |
8437 | + if (true) { | |
8438 | + console.info('当前运行环境为开发者工具,不上报数据。'); | |
8439 | + } | |
8440 | + // return; | |
8441 | + } | |
8442 | + var emVal = ''; | |
8443 | + if (!em.message) { | |
8444 | + emVal = JSON.stringify(em); | |
8445 | + } else { | |
8446 | + emVal = em.stack; | |
8447 | + } | |
8448 | + var options = { | |
8449 | + ak: this.statData.ak, | |
8450 | + uuid: this.statData.uuid, | |
8451 | + lt: '31', | |
8452 | + ut: this.statData.ut, | |
8453 | + ch: this.statData.ch, | |
8454 | + mpsdk: this.statData.mpsdk, | |
8455 | + mpv: this.statData.mpv, | |
8456 | + v: this.statData.v, | |
8457 | + em: emVal, | |
8458 | + usv: this.statData.usv, | |
8459 | + t: getTime(), | |
8460 | + p: this.statData.p }; | |
8461 | + | |
8462 | + this.request(options); | |
8463 | + } }]);return Stat;}(Util); | |
8464 | + | |
8465 | + | |
8466 | +var stat = Stat.getInstance(); | |
8467 | +var isHide = false; | |
8468 | +var lifecycle = { | |
8469 | + onLaunch: function onLaunch(options) { | |
8470 | + stat.report(options, this); | |
8471 | + }, | |
8472 | + onReady: function onReady() { | |
8473 | + stat.ready(this); | |
8474 | + }, | |
8475 | + onLoad: function onLoad(options) { | |
8476 | + stat.load(options, this); | |
8477 | + // 重写分享,获取分享上报事件 | |
8478 | + if (this.$scope && this.$scope.onShareAppMessage) { | |
8479 | + var oldShareAppMessage = this.$scope.onShareAppMessage; | |
8480 | + this.$scope.onShareAppMessage = function (options) { | |
8481 | + stat.interceptShare(false); | |
8482 | + return oldShareAppMessage.call(this, options); | |
8483 | + }; | |
8484 | + } | |
8485 | + }, | |
8486 | + onShow: function onShow() { | |
8487 | + isHide = false; | |
8488 | + stat.show(this); | |
8489 | + }, | |
8490 | + onHide: function onHide() { | |
8491 | + isHide = true; | |
8492 | + stat.hide(this); | |
8493 | + }, | |
8494 | + onUnload: function onUnload() { | |
8495 | + if (isHide) { | |
8496 | + isHide = false; | |
8497 | + return; | |
8498 | + } | |
8499 | + stat.hide(this); | |
8500 | + }, | |
8501 | + onError: function onError(e) { | |
8502 | + stat.error(e); | |
8503 | + } }; | |
8504 | + | |
8505 | + | |
8506 | +function main() { | |
8507 | + if (true) { | |
8508 | + uni.report = function (type, options) {}; | |
8509 | + } else { var Vue; } | |
8510 | +} | |
8511 | + | |
8512 | +main(); | |
8513 | +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"])) | |
8514 | + | |
8515 | +/***/ }), | |
8516 | +/* 6 */ | |
8517 | +/*!******************************************************!*\ | |
8518 | + !*** ./node_modules/@dcloudio/uni-stat/package.json ***! | |
8519 | + \******************************************************/ | |
8520 | +/*! exports provided: _from, _id, _inBundle, _integrity, _location, _phantomChildren, _requested, _requiredBy, _resolved, _shasum, _spec, _where, author, bugs, bundleDependencies, deprecated, description, devDependencies, files, gitHead, homepage, license, main, name, repository, scripts, version, default */ | |
8521 | +/***/ (function(module) { | |
8522 | + | |
8523 | +module.exports = {"_from":"@dcloudio/uni-stat@next","_id":"@dcloudio/uni-stat@2.0.0-26920200421003","_inBundle":false,"_integrity":"sha512-Aa6R66ZF2pIK9XB+Y7QbSW2GficyNTcdT7fnxFw5gY1eeY+u8oT7rTpZrL1W2qKbqf2FbsNPDjZrg1nRj6RxkQ==","_location":"/@dcloudio/uni-stat","_phantomChildren":{},"_requested":{"type":"tag","registry":true,"raw":"@dcloudio/uni-stat@next","name":"@dcloudio/uni-stat","escapedName":"@dcloudio%2funi-stat","scope":"@dcloudio","rawSpec":"next","saveSpec":null,"fetchSpec":"next"},"_requiredBy":["#USER","/","/@dcloudio/vue-cli-plugin-uni"],"_resolved":"https://registry.npmjs.org/@dcloudio/uni-stat/-/uni-stat-2.0.0-26920200421003.tgz","_shasum":"c08ebc00afa71edd9ed388fc4bf411e42d458ac5","_spec":"@dcloudio/uni-stat@next","_where":"/Users/guoshengqiang/Documents/dcloud-plugins/release/uniapp-cli","author":"","bugs":{"url":"https://github.com/dcloudio/uni-app/issues"},"bundleDependencies":false,"deprecated":false,"description":"","devDependencies":{"@babel/core":"^7.5.5","@babel/preset-env":"^7.5.5","eslint":"^6.1.0","rollup":"^1.19.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-clear":"^2.0.7","rollup-plugin-commonjs":"^10.0.2","rollup-plugin-copy":"^3.1.0","rollup-plugin-eslint":"^7.0.0","rollup-plugin-json":"^4.0.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-replace":"^2.2.0","rollup-plugin-uglify":"^6.0.2"},"files":["dist","package.json","LICENSE"],"gitHead":"a7035ab7f2a83dbc2c75090de34f68e5a01224a7","homepage":"https://github.com/dcloudio/uni-app#readme","license":"Apache-2.0","main":"dist/index.js","name":"@dcloudio/uni-stat","repository":{"type":"git","url":"git+https://github.com/dcloudio/uni-app.git","directory":"packages/uni-stat"},"scripts":{"build":"NODE_ENV=production rollup -c rollup.config.js","dev":"NODE_ENV=development rollup -w -c rollup.config.js"},"version":"2.0.0-26920200421003"}; | |
8524 | + | |
8525 | +/***/ }), | |
8526 | +/* 7 */ | |
8527 | +/*!***************************************************************************!*\ | |
8528 | + !*** C:/Users/Administrator/Desktop/gulu-vue/pages.json?{"type":"style"} ***! | |
8529 | + \***************************************************************************/ | |
8530 | +/*! no static exports found */ | |
8531 | +/***/ (function(module, exports, __webpack_require__) { | |
8532 | + | |
8533 | +"use strict"; | |
8534 | +Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default = { "pages": { "pages/index/index": { "navigationBarTitleText": "商城一览" }, "pages/cart/cart": { "navigationBarTitleText": "购物车" }, "pages/user/user": { "navigationBarTitleText": "我的" } }, "globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "uni-app", "navigationBarBackgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8" } };exports.default = _default; | |
8535 | + | |
8536 | +/***/ }), | |
8537 | +/* 8 */ | |
8538 | +/*!**************************************************************************!*\ | |
8539 | + !*** C:/Users/Administrator/Desktop/gulu-vue/pages.json?{"type":"stat"} ***! | |
8540 | + \**************************************************************************/ | |
8541 | +/*! no static exports found */ | |
8542 | +/***/ (function(module, exports, __webpack_require__) { | |
8543 | + | |
8544 | +"use strict"; | |
8545 | +Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default = { "appid": "" };exports.default = _default; | |
8546 | + | |
8547 | +/***/ }), | |
8548 | +/* 9 */, | |
8549 | +/* 10 */, | |
8550 | +/* 11 */, | |
8551 | +/* 12 */, | |
8552 | +/* 13 */, | |
8553 | +/* 14 */ | |
8554 | +/*!**********************************************************************************************************!*\ | |
8555 | + !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js ***! | |
8556 | + \**********************************************************************************************************/ | |
8557 | +/*! exports provided: default */ | |
8558 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
8559 | + | |
8560 | +"use strict"; | |
8561 | +__webpack_require__.r(__webpack_exports__); | |
8562 | +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return normalizeComponent; }); | |
8563 | +/* globals __VUE_SSR_CONTEXT__ */ | |
8564 | + | |
8565 | +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). | |
8566 | +// This module is a runtime utility for cleaner component module output and will | |
8567 | +// be included in the final webpack user bundle. | |
8568 | + | |
8569 | +function normalizeComponent ( | |
8570 | + scriptExports, | |
8571 | + render, | |
8572 | + staticRenderFns, | |
8573 | + functionalTemplate, | |
8574 | + injectStyles, | |
8575 | + scopeId, | |
8576 | + moduleIdentifier, /* server only */ | |
8577 | + shadowMode, /* vue-cli only */ | |
8578 | + components, // fixed by xxxxxx auto components | |
8579 | + renderjs // fixed by xxxxxx renderjs | |
8580 | +) { | |
8581 | + // Vue.extend constructor export interop | |
8582 | + var options = typeof scriptExports === 'function' | |
8583 | + ? scriptExports.options | |
8584 | + : scriptExports | |
8585 | + | |
8586 | + // fixed by xxxxxx auto components | |
8587 | + if (components) { | |
8588 | + if (!options.components) { | |
8589 | + options.components = {} | |
8590 | + } | |
8591 | + var hasOwn = Object.prototype.hasOwnProperty | |
8592 | + for (var name in components) { | |
8593 | + if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) { | |
8594 | + options.components[name] = components[name] | |
8595 | + } | |
8596 | + } | |
8597 | + } | |
8598 | + // fixed by xxxxxx renderjs | |
8599 | + if (renderjs) { | |
8600 | + (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() { | |
8601 | + this[renderjs.__module] = this | |
8602 | + }); | |
8603 | + (options.mixins || (options.mixins = [])).push(renderjs) | |
8604 | + } | |
8605 | + | |
8606 | + // render functions | |
8607 | + if (render) { | |
8608 | + options.render = render | |
8609 | + options.staticRenderFns = staticRenderFns | |
8610 | + options._compiled = true | |
8611 | + } | |
8612 | + | |
8613 | + // functional template | |
8614 | + if (functionalTemplate) { | |
8615 | + options.functional = true | |
8616 | + } | |
8617 | + | |
8618 | + // scopedId | |
8619 | + if (scopeId) { | |
8620 | + options._scopeId = 'data-v-' + scopeId | |
8621 | + } | |
8622 | + | |
8623 | + var hook | |
8624 | + if (moduleIdentifier) { // server build | |
8625 | + hook = function (context) { | |
8626 | + // 2.3 injection | |
8627 | + context = | |
8628 | + context || // cached call | |
8629 | + (this.$vnode && this.$vnode.ssrContext) || // stateful | |
8630 | + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional | |
8631 | + // 2.2 with runInNewContext: true | |
8632 | + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { | |
8633 | + context = __VUE_SSR_CONTEXT__ | |
8634 | + } | |
8635 | + // inject component styles | |
8636 | + if (injectStyles) { | |
8637 | + injectStyles.call(this, context) | |
8638 | + } | |
8639 | + // register component module identifier for async chunk inferrence | |
8640 | + if (context && context._registeredComponents) { | |
8641 | + context._registeredComponents.add(moduleIdentifier) | |
8642 | + } | |
8643 | + } | |
8644 | + // used by ssr in case component is cached and beforeCreate | |
8645 | + // never gets called | |
8646 | + options._ssrRegister = hook | |
8647 | + } else if (injectStyles) { | |
8648 | + hook = shadowMode | |
8649 | + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } | |
8650 | + : injectStyles | |
8651 | + } | |
8652 | + | |
8653 | + if (hook) { | |
8654 | + if (options.functional) { | |
8655 | + // for template-only hot-reload because in that case the render fn doesn't | |
8656 | + // go through the normalizer | |
8657 | + options._injectStyles = hook | |
8658 | + // register for functioal component in vue file | |
8659 | + var originalRender = options.render | |
8660 | + options.render = function renderWithStyleInjection (h, context) { | |
8661 | + hook.call(context) | |
8662 | + return originalRender(h, context) | |
8663 | + } | |
8664 | + } else { | |
8665 | + // inject component registration as beforeCreate hook | |
8666 | + var existing = options.beforeCreate | |
8667 | + options.beforeCreate = existing | |
8668 | + ? [].concat(existing, hook) | |
8669 | + : [hook] | |
8670 | + } | |
8671 | + } | |
8672 | + | |
8673 | + return { | |
8674 | + exports: scriptExports, | |
8675 | + options: options | |
8676 | + } | |
8677 | +} | |
8678 | + | |
8679 | + | |
8680 | +/***/ }) | |
8681 | +]]); | |
8682 | +//# sourceMappingURL=../../.sourcemap/mp-weixin/common/vendor.js.map | |
0 | 8683 | \ No newline at end of file | ... | ... |
unpackage/dist/dev/mp-weixin/pages/cart/cart.js
... | ... | @@ -0,0 +1,186 @@ |
1 | +(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["pages/cart/cart"],{ | |
2 | + | |
3 | +/***/ 23: | |
4 | +/*!**************************************************************************************!*\ | |
5 | + !*** C:/Users/Administrator/Desktop/gulu-vue/main.js?{"page":"pages%2Fcart%2Fcart"} ***! | |
6 | + \**************************************************************************************/ | |
7 | +/*! no static exports found */ | |
8 | +/***/ (function(module, exports, __webpack_require__) { | |
9 | + | |
10 | +"use strict"; | |
11 | +/* WEBPACK VAR INJECTION */(function(createPage) {__webpack_require__(/*! uni-pages */ 4);__webpack_require__(/*! @dcloudio/uni-stat */ 5); | |
12 | +var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2)); | |
13 | +var _cart = _interopRequireDefault(__webpack_require__(/*! ./pages/cart/cart.vue */ 24));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} | |
14 | +createPage(_cart.default); | |
15 | +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["createPage"])) | |
16 | + | |
17 | +/***/ }), | |
18 | + | |
19 | +/***/ 24: | |
20 | +/*!*******************************************************************!*\ | |
21 | + !*** C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue ***! | |
22 | + \*******************************************************************/ | |
23 | +/*! no static exports found */ | |
24 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
25 | + | |
26 | +"use strict"; | |
27 | +__webpack_require__.r(__webpack_exports__); | |
28 | +/* harmony import */ var _cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cart.vue?vue&type=template&id=2e8f6dbb& */ 25); | |
29 | +/* harmony import */ var _cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cart.vue?vue&type=script&lang=js& */ 27); | |
30 | +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__)); | |
31 | +/* harmony import */ var _cart_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cart.vue?vue&type=style&index=0&lang=css& */ 29); | |
32 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 14); | |
33 | + | |
34 | +var renderjs | |
35 | + | |
36 | + | |
37 | + | |
38 | + | |
39 | + | |
40 | +/* normalize component */ | |
41 | + | |
42 | +var component = Object(_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( | |
43 | + _cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], | |
44 | + _cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__["render"], | |
45 | + _cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], | |
46 | + false, | |
47 | + null, | |
48 | + null, | |
49 | + null, | |
50 | + false, | |
51 | + _cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__["components"], | |
52 | + renderjs | |
53 | +) | |
54 | + | |
55 | +component.options.__file = "C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue" | |
56 | +/* harmony default export */ __webpack_exports__["default"] = (component.exports); | |
57 | + | |
58 | +/***/ }), | |
59 | + | |
60 | +/***/ 25: | |
61 | +/*!**************************************************************************************************!*\ | |
62 | + !*** C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?vue&type=template&id=2e8f6dbb& ***! | |
63 | + \**************************************************************************************************/ | |
64 | +/*! exports provided: render, staticRenderFns, recyclableRender, components */ | |
65 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
66 | + | |
67 | +"use strict"; | |
68 | +__webpack_require__.r(__webpack_exports__); | |
69 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./cart.vue?vue&type=template&id=2e8f6dbb& */ 26); | |
70 | +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__["render"]; }); | |
71 | + | |
72 | +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); | |
73 | + | |
74 | +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); | |
75 | + | |
76 | +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_template_id_2e8f6dbb___WEBPACK_IMPORTED_MODULE_0__["components"]; }); | |
77 | + | |
78 | + | |
79 | + | |
80 | +/***/ }), | |
81 | + | |
82 | +/***/ 26: | |
83 | +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ | |
84 | + !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?vue&type=template&id=2e8f6dbb& ***! | |
85 | + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ | |
86 | +/*! exports provided: render, staticRenderFns, recyclableRender, components */ | |
87 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
88 | + | |
89 | +"use strict"; | |
90 | +__webpack_require__.r(__webpack_exports__); | |
91 | +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); | |
92 | +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); | |
93 | +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); | |
94 | +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); | |
95 | +var components | |
96 | +var render = function() { | |
97 | + var _vm = this | |
98 | + var _h = _vm.$createElement | |
99 | + var _c = _vm._self._c || _h | |
100 | +} | |
101 | +var recyclableRender = false | |
102 | +var staticRenderFns = [] | |
103 | +render._withStripped = true | |
104 | + | |
105 | + | |
106 | + | |
107 | +/***/ }), | |
108 | + | |
109 | +/***/ 27: | |
110 | +/*!********************************************************************************************!*\ | |
111 | + !*** C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?vue&type=script&lang=js& ***! | |
112 | + \********************************************************************************************/ | |
113 | +/*! no static exports found */ | |
114 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
115 | + | |
116 | +"use strict"; | |
117 | +__webpack_require__.r(__webpack_exports__); | |
118 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./cart.vue?vue&type=script&lang=js& */ 28); | |
119 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__); | |
120 | +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); | |
121 | + /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); | |
122 | + | |
123 | +/***/ }), | |
124 | + | |
125 | +/***/ 28: | |
126 | +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ | |
127 | + !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?vue&type=script&lang=js& ***! | |
128 | + \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ | |
129 | +/*! no static exports found */ | |
130 | +/***/ (function(module, exports, __webpack_require__) { | |
131 | + | |
132 | +"use strict"; | |
133 | +Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; // | |
134 | +// | |
135 | +// | |
136 | +// | |
137 | +// | |
138 | +// | |
139 | +// | |
140 | +// | |
141 | +// | |
142 | +var _default = | |
143 | +{ | |
144 | + data: function data() { | |
145 | + return { | |
146 | + title: 'Hello' }; | |
147 | + | |
148 | + }, | |
149 | + onLoad: function onLoad() { | |
150 | + | |
151 | + }, | |
152 | + methods: {} };exports.default = _default; | |
153 | + | |
154 | +/***/ }), | |
155 | + | |
156 | +/***/ 29: | |
157 | +/*!****************************************************************************************************!*\ | |
158 | + !*** C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?vue&type=style&index=0&lang=css& ***! | |
159 | + \****************************************************************************************************/ | |
160 | +/*! no static exports found */ | |
161 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
162 | + | |
163 | +"use strict"; | |
164 | +__webpack_require__.r(__webpack_exports__); | |
165 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./cart.vue?vue&type=style&index=0&lang=css& */ 30); | |
166 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); | |
167 | +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); | |
168 | + /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_cart_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); | |
169 | + | |
170 | +/***/ }), | |
171 | + | |
172 | +/***/ 30: | |
173 | +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ | |
174 | + !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/cart/cart.vue?vue&type=style&index=0&lang=css& ***! | |
175 | + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ | |
176 | +/*! no static exports found */ | |
177 | +/***/ (function(module, exports, __webpack_require__) { | |
178 | + | |
179 | +// extracted by mini-css-extract-plugin | |
180 | + if(false) { var cssReload; } | |
181 | + | |
182 | + | |
183 | +/***/ }) | |
184 | + | |
185 | +},[[23,"common/runtime","common/vendor"]]]); | |
186 | +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/cart/cart.js.map | |
0 | 187 | \ No newline at end of file | ... | ... |
unpackage/dist/dev/mp-weixin/pages/cart/cart.json
unpackage/dist/dev/mp-weixin/pages/cart/cart.wxml
unpackage/dist/dev/mp-weixin/pages/cart/cart.wxss
... | ... | @@ -0,0 +1,37 @@ |
1 | + | |
2 | +.content { | |
3 | + display: -webkit-box; | |
4 | + display: -webkit-flex; | |
5 | + display: flex; | |
6 | + -webkit-box-orient: vertical; | |
7 | + -webkit-box-direction: normal; | |
8 | + -webkit-flex-direction: column; | |
9 | + flex-direction: column; | |
10 | + -webkit-box-align: center; | |
11 | + -webkit-align-items: center; | |
12 | + align-items: center; | |
13 | + -webkit-box-pack: center; | |
14 | + -webkit-justify-content: center; | |
15 | + justify-content: center; | |
16 | +} | |
17 | +.logo { | |
18 | + height: 200rpx; | |
19 | + width: 200rpx; | |
20 | + margin-top: 200rpx; | |
21 | + margin-left: auto; | |
22 | + margin-right: auto; | |
23 | + margin-bottom: 50rpx; | |
24 | +} | |
25 | +.text-area { | |
26 | + display: -webkit-box; | |
27 | + display: -webkit-flex; | |
28 | + display: flex; | |
29 | + -webkit-box-pack: center; | |
30 | + -webkit-justify-content: center; | |
31 | + justify-content: center; | |
32 | +} | |
33 | +.title { | |
34 | + font-size: 36rpx; | |
35 | + color: #8f8f94; | |
36 | +} | |
37 | + | ... | ... |
unpackage/dist/dev/mp-weixin/pages/index/index.js
... | ... | @@ -0,0 +1,194 @@ |
1 | +(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["pages/index/index"],[ | |
2 | +/* 0 */, | |
3 | +/* 1 */, | |
4 | +/* 2 */, | |
5 | +/* 3 */, | |
6 | +/* 4 */, | |
7 | +/* 5 */, | |
8 | +/* 6 */, | |
9 | +/* 7 */, | |
10 | +/* 8 */, | |
11 | +/* 9 */, | |
12 | +/* 10 */, | |
13 | +/* 11 */, | |
14 | +/* 12 */, | |
15 | +/* 13 */, | |
16 | +/* 14 */, | |
17 | +/* 15 */ | |
18 | +/*!****************************************************************************************!*\ | |
19 | + !*** C:/Users/Administrator/Desktop/gulu-vue/main.js?{"page":"pages%2Findex%2Findex"} ***! | |
20 | + \****************************************************************************************/ | |
21 | +/*! no static exports found */ | |
22 | +/***/ (function(module, exports, __webpack_require__) { | |
23 | + | |
24 | +"use strict"; | |
25 | +/* WEBPACK VAR INJECTION */(function(createPage) {__webpack_require__(/*! uni-pages */ 4);__webpack_require__(/*! @dcloudio/uni-stat */ 5); | |
26 | +var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2)); | |
27 | +var _index = _interopRequireDefault(__webpack_require__(/*! ./pages/index/index.vue */ 16));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} | |
28 | +createPage(_index.default); | |
29 | +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["createPage"])) | |
30 | + | |
31 | +/***/ }), | |
32 | +/* 16 */ | |
33 | +/*!*********************************************************************!*\ | |
34 | + !*** C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue ***! | |
35 | + \*********************************************************************/ | |
36 | +/*! no static exports found */ | |
37 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
38 | + | |
39 | +"use strict"; | |
40 | +__webpack_require__.r(__webpack_exports__); | |
41 | +/* harmony import */ var _index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=74c52b3e& */ 17); | |
42 | +/* harmony import */ var _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js& */ 19); | |
43 | +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__)); | |
44 | +/* harmony import */ var _index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.vue?vue&type=style&index=0&lang=css& */ 21); | |
45 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 14); | |
46 | + | |
47 | +var renderjs | |
48 | + | |
49 | + | |
50 | + | |
51 | + | |
52 | + | |
53 | +/* normalize component */ | |
54 | + | |
55 | +var component = Object(_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( | |
56 | + _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], | |
57 | + _index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__["render"], | |
58 | + _index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], | |
59 | + false, | |
60 | + null, | |
61 | + null, | |
62 | + null, | |
63 | + false, | |
64 | + _index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__["components"], | |
65 | + renderjs | |
66 | +) | |
67 | + | |
68 | +component.options.__file = "C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue" | |
69 | +/* harmony default export */ __webpack_exports__["default"] = (component.exports); | |
70 | + | |
71 | +/***/ }), | |
72 | +/* 17 */ | |
73 | +/*!****************************************************************************************************!*\ | |
74 | + !*** C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?vue&type=template&id=74c52b3e& ***! | |
75 | + \****************************************************************************************************/ | |
76 | +/*! exports provided: render, staticRenderFns, recyclableRender, components */ | |
77 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
78 | + | |
79 | +"use strict"; | |
80 | +__webpack_require__.r(__webpack_exports__); | |
81 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./index.vue?vue&type=template&id=74c52b3e& */ 18); | |
82 | +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__["render"]; }); | |
83 | + | |
84 | +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); | |
85 | + | |
86 | +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); | |
87 | + | |
88 | +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_template_id_74c52b3e___WEBPACK_IMPORTED_MODULE_0__["components"]; }); | |
89 | + | |
90 | + | |
91 | + | |
92 | +/***/ }), | |
93 | +/* 18 */ | |
94 | +/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ | |
95 | + !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?vue&type=template&id=74c52b3e& ***! | |
96 | + \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ | |
97 | +/*! exports provided: render, staticRenderFns, recyclableRender, components */ | |
98 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
99 | + | |
100 | +"use strict"; | |
101 | +__webpack_require__.r(__webpack_exports__); | |
102 | +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); | |
103 | +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); | |
104 | +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); | |
105 | +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); | |
106 | +var components | |
107 | +var render = function() { | |
108 | + var _vm = this | |
109 | + var _h = _vm.$createElement | |
110 | + var _c = _vm._self._c || _h | |
111 | +} | |
112 | +var recyclableRender = false | |
113 | +var staticRenderFns = [] | |
114 | +render._withStripped = true | |
115 | + | |
116 | + | |
117 | + | |
118 | +/***/ }), | |
119 | +/* 19 */ | |
120 | +/*!**********************************************************************************************!*\ | |
121 | + !*** C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?vue&type=script&lang=js& ***! | |
122 | + \**********************************************************************************************/ | |
123 | +/*! no static exports found */ | |
124 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
125 | + | |
126 | +"use strict"; | |
127 | +__webpack_require__.r(__webpack_exports__); | |
128 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./index.vue?vue&type=script&lang=js& */ 20); | |
129 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__); | |
130 | +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); | |
131 | + /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); | |
132 | + | |
133 | +/***/ }), | |
134 | +/* 20 */ | |
135 | +/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ | |
136 | + !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?vue&type=script&lang=js& ***! | |
137 | + \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ | |
138 | +/*! no static exports found */ | |
139 | +/***/ (function(module, exports, __webpack_require__) { | |
140 | + | |
141 | +"use strict"; | |
142 | +Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; // | |
143 | +// | |
144 | +// | |
145 | +// | |
146 | +// | |
147 | +// | |
148 | +// | |
149 | +// | |
150 | +// | |
151 | +// | |
152 | +// | |
153 | +var _default = | |
154 | +{ | |
155 | + data: function data() { | |
156 | + return { | |
157 | + title: 'Hello' }; | |
158 | + | |
159 | + }, | |
160 | + onLoad: function onLoad() { | |
161 | + | |
162 | + }, | |
163 | + methods: {} };exports.default = _default; | |
164 | + | |
165 | +/***/ }), | |
166 | +/* 21 */ | |
167 | +/*!******************************************************************************************************!*\ | |
168 | + !*** C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?vue&type=style&index=0&lang=css& ***! | |
169 | + \******************************************************************************************************/ | |
170 | +/*! no static exports found */ | |
171 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
172 | + | |
173 | +"use strict"; | |
174 | +__webpack_require__.r(__webpack_exports__); | |
175 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./index.vue?vue&type=style&index=0&lang=css& */ 22); | |
176 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); | |
177 | +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); | |
178 | + /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); | |
179 | + | |
180 | +/***/ }), | |
181 | +/* 22 */ | |
182 | +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ | |
183 | + !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/index/index.vue?vue&type=style&index=0&lang=css& ***! | |
184 | + \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ | |
185 | +/*! no static exports found */ | |
186 | +/***/ (function(module, exports, __webpack_require__) { | |
187 | + | |
188 | +// extracted by mini-css-extract-plugin | |
189 | + if(false) { var cssReload; } | |
190 | + | |
191 | + | |
192 | +/***/ }) | |
193 | +],[[15,"common/runtime","common/vendor"]]]); | |
194 | +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/index/index.js.map | |
0 | 195 | \ No newline at end of file | ... | ... |
unpackage/dist/dev/mp-weixin/pages/index/index.json
unpackage/dist/dev/mp-weixin/pages/index/index.wxml
unpackage/dist/dev/mp-weixin/pages/index/index.wxss
... | ... | @@ -0,0 +1,44 @@ |
1 | + | |
2 | +.content { | |
3 | + display: -webkit-box; | |
4 | + display: -webkit-flex; | |
5 | + display: flex; | |
6 | + -webkit-box-orient: vertical; | |
7 | + -webkit-box-direction: normal; | |
8 | + -webkit-flex-direction: column; | |
9 | + flex-direction: column; | |
10 | + -webkit-box-align: center; | |
11 | + -webkit-align-items: center; | |
12 | + align-items: center; | |
13 | + -webkit-box-pack: center; | |
14 | + -webkit-justify-content: center; | |
15 | + justify-content: center; | |
16 | +} | |
17 | +.searchBar { | |
18 | + width: calc(100% - 16rpx * 2); | |
19 | + display: -webkit-box; | |
20 | + display: -webkit-flex; | |
21 | + display: flex; | |
22 | + -webkit-box-pack: center; | |
23 | + -webkit-justify-content: center; | |
24 | + justify-content: center; | |
25 | + -webkit-box-align: center; | |
26 | + -webkit-align-items: center; | |
27 | + align-items: center; | |
28 | + -webkit-box-sizing: border-box; | |
29 | + box-sizing: border-box; | |
30 | + margin: 16rpx 16rpx; | |
31 | + padding: 0rpx 16rpx; | |
32 | + background-color: #F8F8F8; | |
33 | +} | |
34 | +.searchIpt { | |
35 | + height: 64rpx; | |
36 | + width: 100%; | |
37 | + padding: 16rpx; | |
38 | + font-size: 28rpx; | |
39 | + -webkit-box-sizing: border-box; | |
40 | + box-sizing: border-box; | |
41 | +} | |
42 | + | |
43 | + | |
44 | + | ... | ... |
unpackage/dist/dev/mp-weixin/pages/user/user.js
... | ... | @@ -0,0 +1,186 @@ |
1 | +(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["pages/user/user"],{ | |
2 | + | |
3 | +/***/ 31: | |
4 | +/*!**************************************************************************************!*\ | |
5 | + !*** C:/Users/Administrator/Desktop/gulu-vue/main.js?{"page":"pages%2Fuser%2Fuser"} ***! | |
6 | + \**************************************************************************************/ | |
7 | +/*! no static exports found */ | |
8 | +/***/ (function(module, exports, __webpack_require__) { | |
9 | + | |
10 | +"use strict"; | |
11 | +/* WEBPACK VAR INJECTION */(function(createPage) {__webpack_require__(/*! uni-pages */ 4);__webpack_require__(/*! @dcloudio/uni-stat */ 5); | |
12 | +var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2)); | |
13 | +var _user = _interopRequireDefault(__webpack_require__(/*! ./pages/user/user.vue */ 32));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} | |
14 | +createPage(_user.default); | |
15 | +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["createPage"])) | |
16 | + | |
17 | +/***/ }), | |
18 | + | |
19 | +/***/ 32: | |
20 | +/*!*******************************************************************!*\ | |
21 | + !*** C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue ***! | |
22 | + \*******************************************************************/ | |
23 | +/*! no static exports found */ | |
24 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
25 | + | |
26 | +"use strict"; | |
27 | +__webpack_require__.r(__webpack_exports__); | |
28 | +/* harmony import */ var _user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user.vue?vue&type=template&id=14649eca& */ 33); | |
29 | +/* harmony import */ var _user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user.vue?vue&type=script&lang=js& */ 35); | |
30 | +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__)); | |
31 | +/* harmony import */ var _user_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./user.vue?vue&type=style&index=0&lang=css& */ 37); | |
32 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 14); | |
33 | + | |
34 | +var renderjs | |
35 | + | |
36 | + | |
37 | + | |
38 | + | |
39 | + | |
40 | +/* normalize component */ | |
41 | + | |
42 | +var component = Object(_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( | |
43 | + _user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], | |
44 | + _user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__["render"], | |
45 | + _user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], | |
46 | + false, | |
47 | + null, | |
48 | + null, | |
49 | + null, | |
50 | + false, | |
51 | + _user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__["components"], | |
52 | + renderjs | |
53 | +) | |
54 | + | |
55 | +component.options.__file = "C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue" | |
56 | +/* harmony default export */ __webpack_exports__["default"] = (component.exports); | |
57 | + | |
58 | +/***/ }), | |
59 | + | |
60 | +/***/ 33: | |
61 | +/*!**************************************************************************************************!*\ | |
62 | + !*** C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?vue&type=template&id=14649eca& ***! | |
63 | + \**************************************************************************************************/ | |
64 | +/*! exports provided: render, staticRenderFns, recyclableRender, components */ | |
65 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
66 | + | |
67 | +"use strict"; | |
68 | +__webpack_require__.r(__webpack_exports__); | |
69 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./user.vue?vue&type=template&id=14649eca& */ 34); | |
70 | +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__["render"]; }); | |
71 | + | |
72 | +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); | |
73 | + | |
74 | +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); | |
75 | + | |
76 | +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_template_id_14649eca___WEBPACK_IMPORTED_MODULE_0__["components"]; }); | |
77 | + | |
78 | + | |
79 | + | |
80 | +/***/ }), | |
81 | + | |
82 | +/***/ 34: | |
83 | +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ | |
84 | + !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?vue&type=template&id=14649eca& ***! | |
85 | + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ | |
86 | +/*! exports provided: render, staticRenderFns, recyclableRender, components */ | |
87 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
88 | + | |
89 | +"use strict"; | |
90 | +__webpack_require__.r(__webpack_exports__); | |
91 | +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); | |
92 | +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); | |
93 | +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; }); | |
94 | +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; }); | |
95 | +var components | |
96 | +var render = function() { | |
97 | + var _vm = this | |
98 | + var _h = _vm.$createElement | |
99 | + var _c = _vm._self._c || _h | |
100 | +} | |
101 | +var recyclableRender = false | |
102 | +var staticRenderFns = [] | |
103 | +render._withStripped = true | |
104 | + | |
105 | + | |
106 | + | |
107 | +/***/ }), | |
108 | + | |
109 | +/***/ 35: | |
110 | +/*!********************************************************************************************!*\ | |
111 | + !*** C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?vue&type=script&lang=js& ***! | |
112 | + \********************************************************************************************/ | |
113 | +/*! no static exports found */ | |
114 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
115 | + | |
116 | +"use strict"; | |
117 | +__webpack_require__.r(__webpack_exports__); | |
118 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./user.vue?vue&type=script&lang=js& */ 36); | |
119 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__); | |
120 | +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); | |
121 | + /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); | |
122 | + | |
123 | +/***/ }), | |
124 | + | |
125 | +/***/ 36: | |
126 | +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ | |
127 | + !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?vue&type=script&lang=js& ***! | |
128 | + \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ | |
129 | +/*! no static exports found */ | |
130 | +/***/ (function(module, exports, __webpack_require__) { | |
131 | + | |
132 | +"use strict"; | |
133 | +Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; // | |
134 | +// | |
135 | +// | |
136 | +// | |
137 | +// | |
138 | +// | |
139 | +// | |
140 | +// | |
141 | +// | |
142 | +var _default = | |
143 | +{ | |
144 | + data: function data() { | |
145 | + return { | |
146 | + title: 'Hello' }; | |
147 | + | |
148 | + }, | |
149 | + onLoad: function onLoad() { | |
150 | + | |
151 | + }, | |
152 | + methods: {} };exports.default = _default; | |
153 | + | |
154 | +/***/ }), | |
155 | + | |
156 | +/***/ 37: | |
157 | +/*!****************************************************************************************************!*\ | |
158 | + !*** C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?vue&type=style&index=0&lang=css& ***! | |
159 | + \****************************************************************************************************/ | |
160 | +/*! no static exports found */ | |
161 | +/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
162 | + | |
163 | +"use strict"; | |
164 | +__webpack_require__.r(__webpack_exports__); | |
165 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./user.vue?vue&type=style&index=0&lang=css& */ 38); | |
166 | +/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); | |
167 | +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); | |
168 | + /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_user_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); | |
169 | + | |
170 | +/***/ }), | |
171 | + | |
172 | +/***/ 38: | |
173 | +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ | |
174 | + !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/Administrator/Desktop/gulu-vue/pages/user/user.vue?vue&type=style&index=0&lang=css& ***! | |
175 | + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ | |
176 | +/*! no static exports found */ | |
177 | +/***/ (function(module, exports, __webpack_require__) { | |
178 | + | |
179 | +// extracted by mini-css-extract-plugin | |
180 | + if(false) { var cssReload; } | |
181 | + | |
182 | + | |
183 | +/***/ }) | |
184 | + | |
185 | +},[[31,"common/runtime","common/vendor"]]]); | |
186 | +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/user/user.js.map | |
0 | 187 | \ No newline at end of file | ... | ... |
unpackage/dist/dev/mp-weixin/pages/user/user.json
unpackage/dist/dev/mp-weixin/pages/user/user.wxml
unpackage/dist/dev/mp-weixin/pages/user/user.wxss
... | ... | @@ -0,0 +1,37 @@ |
1 | + | |
2 | +.content { | |
3 | + display: -webkit-box; | |
4 | + display: -webkit-flex; | |
5 | + display: flex; | |
6 | + -webkit-box-orient: vertical; | |
7 | + -webkit-box-direction: normal; | |
8 | + -webkit-flex-direction: column; | |
9 | + flex-direction: column; | |
10 | + -webkit-box-align: center; | |
11 | + -webkit-align-items: center; | |
12 | + align-items: center; | |
13 | + -webkit-box-pack: center; | |
14 | + -webkit-justify-content: center; | |
15 | + justify-content: center; | |
16 | +} | |
17 | +.logo { | |
18 | + height: 200rpx; | |
19 | + width: 200rpx; | |
20 | + margin-top: 200rpx; | |
21 | + margin-left: auto; | |
22 | + margin-right: auto; | |
23 | + margin-bottom: 50rpx; | |
24 | +} | |
25 | +.text-area { | |
26 | + display: -webkit-box; | |
27 | + display: -webkit-flex; | |
28 | + display: flex; | |
29 | + -webkit-box-pack: center; | |
30 | + -webkit-justify-content: center; | |
31 | + justify-content: center; | |
32 | +} | |
33 | +.title { | |
34 | + font-size: 36rpx; | |
35 | + color: #8f8f94; | |
36 | +} | |
37 | + | ... | ... |
unpackage/dist/dev/mp-weixin/project.config.json
... | ... | @@ -0,0 +1,33 @@ |
1 | +{ | |
2 | + "description": "项目配置文件。", | |
3 | + "packOptions": { | |
4 | + "ignore": [] | |
5 | + }, | |
6 | + "setting": { | |
7 | + "urlCheck": false | |
8 | + }, | |
9 | + "compileType": "miniprogram", | |
10 | + "libVersion": "2.9.2", | |
11 | + "appid": "touristappid", | |
12 | + "projectname": "gulu-vue", | |
13 | + "simulatorType": "wechat", | |
14 | + "simulatorPluginLibVersion": {}, | |
15 | + "condition": { | |
16 | + "search": { | |
17 | + "current": -1, | |
18 | + "list": [] | |
19 | + }, | |
20 | + "conversation": { | |
21 | + "current": -1, | |
22 | + "list": [] | |
23 | + }, | |
24 | + "game": { | |
25 | + "current": -1, | |
26 | + "list": [] | |
27 | + }, | |
28 | + "miniprogram": { | |
29 | + "current": -1, | |
30 | + "list": [] | |
31 | + } | |
32 | + } | |
33 | +} | |
0 | 34 | \ No newline at end of file | ... | ... |
unpackage/dist/dev/mp-weixin/sitemap.json
unpackage/dist/dev/mp-weixin/sitemap7.json
unpackage/dist/dev/mp-weixin/static/logo.png
3.93 KB
unpackage/dist/dev/mp-weixin/static/tab-cart-current.png
2.89 KB
unpackage/dist/dev/mp-weixin/static/tab-cart.png
2.85 KB
unpackage/dist/dev/mp-weixin/static/tab-home-current.png
3.97 KB
unpackage/dist/dev/mp-weixin/static/tab-home.png
3.87 KB
unpackage/dist/dev/mp-weixin/static/tab-my-current.png
1.31 KB
unpackage/dist/dev/mp-weixin/static/tab-my.png
2.89 KB